Índice:

LaserKitty !!: 7 etapas (com imagens)
LaserKitty !!: 7 etapas (com imagens)

Vídeo: LaserKitty !!: 7 etapas (com imagens)

Vídeo: LaserKitty !!: 7 etapas (com imagens)
Vídeo: Laserkitty 2024, Outubro
Anonim
Image
Image
Pegue Suas Coisas
Pegue Suas Coisas

É uma verdade universalmente reconhecida que um único gato em posse de boa sorte deve estar precisando de um brinquedo a laser. Tal como acontece com cavalheiros solteiros que desejam futuras esposas, algumas precauções devem ser observadas. Mas isso não é verdade para qualquer coisa que realmente valha a pena ter?

Se você tiver dúvidas sobre animais de estimação e segurança do laser, pule para o final deste manual antes de comentar. Se você está preocupado com uma futura esposa, ou mesmo com a atual, provavelmente precisará procurar outro lugar.

Agora, você pode ir até sua loja de animais local e comprar um apontador laser e talvez até mesmo alguma engenhoca que acrescente automação rudimentar. Você economizaria algum dinheiro e poderia devolvê-lo se não funcionasse. Ou você pode construir algo sozinho. Já existem muitos exemplos, mas aqui está minha contribuição para o cânone. Possui:

  • Controle total do smartphone
  • Modos manual, automático e programado
  • Interface de aplicativo personalizada
  • Status do sistema sincronizado entre vários clientes da web
  • Status do sistema espelhado no LaserKitty !! em si
  • Restrições configuráveis de intervalo de pan e tilt
  • Comprimentos e frequências de sessão de tempo de jogo configuráveis
  • Janelas de jogo configuráveis
  • Página de configuração com as configurações atuais instantâneas
  • Sincronização de tempo NTP
  • Gerenciador de WiFi para fácil configuração em novas redes
  • Gerador de tons para tocar o tema Missão impossível antes de cada sessão de jogo: seu gato pode ou não apreciar a ironia.
  • Notificações pushbullet para todos os seus dispositivos quando uma nova sessão de playtime começa
  • Posição inicial configurável para que a brincadeira termine na tigela de comida ou brinquedo estacionário
  • Todas as configurações armazenadas na EEPROM para não perdidas na queda de energia
  • E muito mais! Bem, não realmente, só isso.

Etapa 1: pegue suas coisas

Isso é o que eu usei:

  • Um miniconjunto de pan e tilt. Certamente, este não é o mais barato que você pode encontrar e precisa de algumas modificações para nossos propósitos. Eu escolhi porque parece um pouco mais legal do que os conjuntos de plástico do porão de pechincha. Como um bônus inesperado, seu design permite uma maneira muito fácil de montar o laser. Ele vem com alguns micro servos, mas eu recomendo fortemente que você compre um monte de outros extras para fins de substituição. Você vai precisar de pelo menos um servo extra (um quebrado está bom).
  • Um cerco. É doloroso pagar US $ 8 por uma caixa de plástico e você definitivamente poderia encontrar algo adequado por menos. Porém, algo sobre o tamanho do gabinete vinculado está certo.
  • Uma placa de desenvolvimento baseada em ESP8266. Usei o NodeMCU. Não é exagero dizer que amo essas coisas. Fácil de usar no Arduino IDE e com muita memória flash para suas páginas da web. Também barato e, na minha experiência, muito difícil de fritar.
  • Um mini laser. Dez por US $ 6 incluindo Amazon Prime. Você está brincando comigo?? Agora só preciso descobrir o que fazer com os outros nove.
  • Uma campainha passiva para os tons.
  • Um relé de dois canais. Eu uso isso para ligar e desligar os servos e o laser. Você pode eliminar esse componente, conforme explicarei mais tarde.
  • Fonte de alimentação 5VDC. Esperançosamente, você terá um desses espalhados por algum aparelho há muito esquecido, mas se não algo barato e alegre que possa produzir em torno de 1A de 5 VCC é o que você precisa.
  • Consumíveis diversos, como resistores, LEDs, fio de conexão, termorretrátil, solda, cola quente. O de sempre. Eu também usei um conector cilíndrico para a fonte de alimentação de 5 VCC de minha coleção embaraçosamente grande de placas knock-off do Arduino destruídas.
  • Por último, mas não menos importante, um decalque de vinil para aquele toque final caprichoso.

Então sim. Você está olhando para cerca de $ 50 no total. Você poderia fazer isso por menos, mas seu gatinho não merece o melhor?

Etapa 2: Ferramentas e recursos

Ferramentas e recursos
Ferramentas e recursos

Nada de especial no lado das ferramentas aqui. Apenas um ferro de solda decente, multímetro, furadeira e ferramentas manuais básicas. Uma fonte de alimentação de bancada é boa para fazer experiências com o laser, mas não é essencial.

Este projeto realmente explora os recursos do ESP8266 e, em particular, do NodeMCU. Se você está apenas começando com o ESP8266, não encontrei nenhum recurso centralizado melhor do que este. Fora isso, trata-se de pesquisar no Google para encontrar respostas para os problemas que surgiram ao longo do caminho.

Etapa 3: preparar o gabinete

Prepare o gabinete
Prepare o gabinete
Prepare o gabinete
Prepare o gabinete

Como já devo ter mencionado, pagar US $ 8 por uma caixa de plástico parece ultrajante. O que é ainda pior é bagunçar a coisa abrindo um buraco no lugar errado. Portanto, antes de ter à sua disposição a furadeira e / ou qualquer outro criador de caos à sua disposição, considere os erros que cometi.

  • Primeiro, você precisa pensar sobre onde todas as coisas se encaixarão. A boa notícia é que o gabinete que sugiro tem muito espaço, mesmo com a fiação muito desordenada que você vê aqui. Você pode até conseguir se safar com uma caixa menor, especialmente se eliminar os relés.
  • O mais importante é onde você montará o conjunto de pan e tilt na tampa. Minha primeira tentativa é mostrada aqui. Pensei em colocá-lo artisticamente fora do centro e um pouco atrás para estabilidade. Péssima ideia! Você precisa da montagem o mais próximo possível da lateral da tampa para que o gabinete em si não interfira com a viga em ângulos de inclinação elevados. Além disso, acho que o arranjo ideal seria montar o laser panorâmico perpendicular ao lado curto em vez de, como eu fiz, ao lado longo. Fiz de outra maneira por razões puramente estéticas, embora haja um pouco mais de potencial de interferência.
  • Como você pode ver, o NodeMCU é montado no Perfboard e poderia facilmente ter sido posicionado de forma que seu conector micro USB fosse acessível a partir de um slot na lateral ou traseira. Isso tornaria as atualizações de software mais fáceis (não há necessidade de tirar a tampa). Minha ideia original era usar a biblioteca Over-The-Air (OTA) para atualizações e você verá que meu código inclui essa funcionalidade, embora esteja comentado. O problema era que o gerador de tons e o OTA não tocavam bem juntos (o NodeMCU zerava repetidamente no meio da música). Esse problema provavelmente pode ser corrigido, mas nunca tive sucesso em atualizar os SPIFFS que não fossem via USB, então ter acesso ao conector USB teria sido bom. Quando descobri tudo isso, montei o NodeMCU no Perfboard de uma forma que significava que não era possível colocar o conector para fora da caixa sem muito barulho. Ah bem.
  • Se eu fizesse o projeto novamente, eu alinharia o LED RGB com o LED vermelho "ligado". (O objetivo do LED RGB é indicar em qual modo o LaserKitty !! está, sem ter que olhar para o aplicativo.)

A única parte um pouco complicada de realmente fazer os furos é o retangular para o servo pan. Usei uma furadeira e uma lima. Como você pode ver na minha primeira tentativa, é difícil torná-lo exatamente quadrado (ou retangular, eu acho). Mas quando o servo é montado, você não pode realmente ver isso.

Você precisará fazer três outros orifícios. Eles devem ser colocados na parte traseira da caixa e são usados para a tomada de alimentação, campainha e ponto de entrada para o servo de inclinação e a fiação do laser. Todos esses furos podem ser redondos e não apresentam dificuldade de fazer apenas com uma broca.

O uso liberal de cola quente mantém tudo no lugar (com exceção do servo pan, que é aparafusado à tampa usando as guias de montagem do servo).

Etapa 4: o conjunto de panorâmica e inclinação

O Conjunto Pan e Tilt
O Conjunto Pan e Tilt
O Conjunto Pan e Tilt
O Conjunto Pan e Tilt
O Conjunto Pan e Tilt
O Conjunto Pan e Tilt
O Conjunto Pan e Tilt
O Conjunto Pan e Tilt

Quando recebi o conjunto de panorâmica e inclinação, pensei ter cometido outro grande erro. Colocado conforme as instruções, ele realmente não é um mecanismo de pan e tilt, mas sim um design de inclinação e torção - apropriado para o uso pretendido como braço de robô. No entanto, um momento de reflexão tranquila permitiu-me ver que, na verdade, poderia ser montado de uma forma diferente para atingir o resultado desejado. Melhor ainda, a localização original do servo "twist" poderia ser usada como suporte para o laser.

Se você examinar a montagem concluída nessas fotos, terá uma ideia. Você ficará com um pequeno bloco de metal que não é necessário neste projeto.

O flash de inspiração que tive foi usar a localização original do segundo servo para montar o laser. Melhor ainda, se você decapitar um servo duff e perfurar a montagem do braço estriado, é o local de montagem perfeito para o laser! Só não subestime o esforço necessário para desmontar o servo. Há um pouco de carne para esses pequenos vigaristas!

Após a montagem e instalação no gabinete, E ANTES DE APLICAR ALIMENTAÇÃO, certifique-se de que a panorâmica faça uma panorâmica de 180 graus na face do gabinete. De uma forma ou de outra, depois de instalá-lo com sucesso, coloquei o suporte de panela de volta no lugar, de modo que as cabeças dos parafusos na base ficassem presas na parte elevada do servo onde o braço deveria ser montado. O resultado foi que o servo imediatamente desmontou suas engrenagens. Pelo lado bom, agora tenho outro servo duff para usar como montagem a laser.

Etapa 5: conecte-o

Wire It Up
Wire It Up

Espero que o esboço do Fritzing deixe as coisas claras. Alguns pontos para esclarecer melhor:

  • Conforme discutido mais tarde, eu queria tornar o laser o mais fraco possível, mantendo o brilho suficiente para torná-lo utilizável em todas as luzes, exceto nas mais fortes em ambientes internos. Com um pouco de experimentação, resolvi alimentá-lo de um pino de 3,3 VCC no Node MCU, adicionando um resistor de 22 Ohm em série para uma boa medida. Com esta configuração, ele consome cerca de 10mA, então, em teoria, poderia ser alimentado diretamente de um pino GPIO, mas achei isso muito fraco, mesmo sem o resistor.
  • O laser tem uma capacidade muito limitada de mudar o foco (colimação?) Que usei para aumentar o ponto e, assim, dispersar a energia do laser
  • Meu primeiro pensamento foi ligar e desligar os servos com um transistor, mas isso fez os servos enlouquecerem. Tenho certeza de que há um bom motivo para isso, mas como eu já tinha alguns relés à mão, peguei o caminho mais fácil e isolei totalmente a alimentação dos servos. E como os relés tinham dois canais, pensei em mudar o laser dessa forma também (os fios roxos são o sinal de controle do MCU). Também gosto do ruído de clique mecânico que esta solução produz. Você pode decidir de outra forma. Não mostrado, mas os relés são alimentados diretamente da fonte de 5 VCC - o NodeMCU poderia apenas ser capaz de alimentar um relé de dois canais diretamente, mas não havia razão para arriscar. Se você já usou esses relés antes, saberá que é necessário remover o jumper entre JD-VCC e VCC.
  • O LED RGB possui resistores limitadores de corrente de 220 Ohm em vermelho e verde e 100 Ohm em azul. O LED vermelho "ligado" tem um resistor de 450 Ohm, pois é alimentado por 5 VCC em vez de 3,3 VCC. Esses são apenas valores aproximados para obter bastante brilho e longevidade razoável.
  • A campainha está muito alta. Você pode querer adicionar um resistor à linha de sinal para atenuar o volume. Os tons podem ser desligados completamente através do software, mas algo intermediário pode ser bom.

Etapa 6: O Código

O código
O código
O código
O código
O código
O código
O código
O código

Apesar da explicação bastante prolixa do lado do hardware, 90% do esforço aqui foi para o código. Teria sido mais, mas eu "peguei emprestado" algum código excelente para o movimento do laser no modo automático a partir daqui. Não faz sentido reinventar a roda. Na verdade, você pode muito bem decidir seguir esse projeto em vez deste, ou misturar e combinar aspectos de ambos. Certamente, gosto da ideia de fazer alguns dos componentes com uma impressora 3-D, mas não tenho uma.

Meu código (encontrado no GitHub aqui) é dividido em três partes principais. Há o próprio esboço do Arduino, arquivos HTML com um monte de Javascript para o conteúdo do aplicativo e arquivos CSS associados para estilização. Usei este projeto para aprender um pouco mais sobre todos esses elementos de programação, começando de uma base muito baixa, especialmente no lado da interface do aplicativo. Tentei organizar um pouco o código, mas meu foco principal era apenas fazer a coisa funcionar. O código usa Websockets para comunicação bidirecional entre o servidor NodeMCU e os clientes conectados.

O código do Arduino é amplamente comentado, portanto, esperamos que seja fácil de seguir. Depois de baixá-lo do GitHub, cole o lote inteiro em uma pasta, carregue o esboço em seu MCU e, em seguida, carregue o conteúdo da subpasta "dados" em SPIFFS.

Na verdade, apague isso. Se você quiser usar o recurso de notificação Pushbullet, primeiro precisará de um token de acesso à API disponível aqui. Ele vai na linha 88 do código do Arduino. O Pushbullet funciona bem, mas se você estiver configurando uma conta no telefone pela primeira vez, poderá descobrir que precisa entrar, sair e entrar novamente antes que as notificações comecem a aparecer conforme definido nas configurações do seu telefone.

Existem três páginas da web - uma tela inicial, a interface do aplicativo real e uma página de configuração. Separar o conteúdo dessa forma torna o uso da interface muito mais parecido com um aplicativo, especialmente por causa das opções de configuração extensas (a captura de tela captura apenas parte dessas opções).

Uma peculiaridade de fazer o NodeMCU servir a várias páginas foi que tive que colocar todos os arquivos de imagem na pasta de dados diretamente - só não conseguia fazer funcionar se eles fossem colocados em subpastas. Incluí todas as imagens que usei no repositório GitHub para que ele funcione imediatamente, mas sem dúvida você desejará substituí-las por suas próprias imagens.

Etapa 7: Toques finais e segurança do laser

Toques finais e segurança do laser
Toques finais e segurança do laser
Toques finais e segurança do laser
Toques finais e segurança do laser
Toques finais e segurança do laser
Toques finais e segurança do laser

Apesar de seu custo de US $ 8 impressionante, o gabinete é, bem, bastante utilitário. Depois de vasculhar um pouco o Etsy, encontrei o gráfico de vinil que você vê no produto final (e que está espelhado na página do aplicativo). Enviado do Reino Unido, foi um pouco caro, mas definitivamente valeu a pena - e você ganha dois no caso de querer replicar o projeto. Como meu floreio artístico final, girei as pequenas "covinhas" nos olhos do gato para que fiquem olhando para o LED vermelho brilhante, que representa o ponto de laser. Dependendo do seu apetite por caprichos, você pode ou não optar por ir mais longe.

O arquivo HTML da tela inicial inclui código para adicionar um ícone à tela inicial do iPhone.

Por último, não devo ignorar as preocupações expressas sobre o uso de um laser para brincar com gatos. Existem duas objeções principais:

  • O laser pode cegar ou danificar os olhos do gato
  • Brincar com um ponto de laser é insatisfatório para os gatos porque eles nunca conseguem pegá-lo ou "matá-lo"

Há muita confusão nas entrelinhas sobre os dois tópicos, alguns aparentemente informados, outros nem tanto. Em última análise, você deve tomar suas próprias decisões sobre se este projeto, ou qualquer outro brinquedo a laser, é o certo para o seu gato. O que fiz foi tentar resolver o primeiro problema, tornando o laser o mais escuro possível, sem dificultar demais a visualização em níveis de luz razoáveis. Além disso, certifique-se de que qualquer gato usando o dispositivo não tenha propensão a olhar fixamente para o laser em vez de para o ponto - especialmente se você pretende usar o LaserKitty !! nos modos Auto ou Programado. Um dos objetivos do recurso de notificação Pushbullet é que ele seja usado em conjunto com uma câmera de monitoramento para que você seja lembrado de assistir ao jogo do seu gatinho enquanto estiver fora.

Quanto à segunda objeção, incluí a capacidade de salvar uma "posição inicial" para a qual o laser retornará após as sessões de jogo agendadas. Se você definir isso para apontar para um brinquedo estacionário ou para a tigela de comida do seu gatinho, esperançosamente, haverá alguma solução. Embora, com gatos, quem realmente sabe?

Recomendado: