Índice:
- Etapa 1: O que você precisa
- Etapa 2: construir o circuito
- Etapa 3: o código
- Etapa 4: construir a caixa
- Etapa 5: Construindo Bug Butts
- Etapa 6: Prepare a caixa do projeto
- Etapa 7: Traga o poder
- Etapa 8: Modifique o Nano se necessário
- Etapa 9: Conecte o interior
- Etapa 10: use
- Etapa 11: indo além …
Vídeo: Arduino Fireflies: 11 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Uma das coisas que anseio nos verões na Pensilvânia são os vaga-lumes no meu quintal. Recentemente, aprendi sozinho a programação Adruino com o propósito de fazer este projeto simples. É um ótimo programa para começar e é fácil o suficiente para qualquer programador, do novato ao especialista, construir, modificar e se divertir em apenas alguns minutos. Vamos começar.
Etapa 1: O que você precisa
Para fazer seus bugs piscarem, você precisará destes componentes:
- Arduino. Comecei com o Nano, mas qualquer microcontrolador compatível com Arduino serve.
- LEDs amarelos, 5 mm. Você pode usar até 6 deles.
- Resistores. Você precisará de um resistor por LED para limitar a corrente. Usei 470 ohms, mas qualquer coisa acima de 150 ohms deve servir para proteger seu microcontrolador.
- Placa de ensaio.
- Jumper wire.
Para concluir o projeto de seu quintal, você precisará de:
- Caixa de projeto à prova de intempéries.
- Bateria de 9 volts com um conector. (Por favor, veja as notas no final desta seção.)
- Trocar. (Eu escolhi esses interruptores à prova d'água. Se você não estiver usando isso fora, qualquer interruptor servirá.)
- Alguns metros de fio para colocar os LEDs no jardim. Usei cerca de 10 pés de fio Ethernet Cat5 por LED.
- Um pequeno breadboard ou algum perfboard.
- Um prensa-cabo à prova de intempéries através do qual passam os fios de LED. (Você pode omitir isso se não estiver usando fora também.)
- Tubulação termorretrátil para proteger suas pontas de insetos LED.
- Tiras verdes de velcro (ou seja, velcro) para fixar os vaga-lumes de LED em plantas e postes em seu jardim.
-
Cabeçalhos machos para conectar componentes em sua pequena placa de ensaio.
Ferramentas:
- Brocas para a caixa do projeto. (Use esta oportunidade para dar um passo em frente. Você ficará feliz por ter feito isso).
- Pistola de cola quente.
- Ferro de solda.
- Ferramenta rotativa (ou seja, Dremel) para criar espaço na caixa do projeto, se necessário.
Algumas notas aqui:
1. A escolha da bateria foi para uma inicialização rápida e fácil. Usar uma bateria de 9 volts permanentemente é um desperdício. É melhor usar um suporte de bateria AA 4x para uma vida mais longa (no entanto, você precisará de uma caixa de projeto maior para encaixá-lo).
2. Se você decidir desconstruir um cabo Ethernet Cat 5 para os fios, certifique-se de que sejam de núcleo de cobre e envolva-os cuidadosamente em torno de um pouco de PVC para mantê-los organizados enquanto você trabalha. Novamente, usei cerca de 10 pés de fio por LED. Se você quiser espalhar as luzes por toda a parte, use fios mais longos!
3. Por último, todos os links que forneci são meras sugestões. Leia todo este Instructable antes de construir ou comprar qualquer coisa, pois você terá uma melhor compreensão de como gostaria de proceder pessoalmente.
Etapa 2: construir o circuito
Este projeto usa os pinos de modulação de largura de pulso em seu Arduino. O microcontrolador tem 6 desses pinos e você pode usar quantos quiser. O circuito é bastante simples. Conecte toda a energia dos pinos de modulação por largura de pulso (PWM) D3, D5, D6, D9, D10 e D11 às extremidades positivas de seus LEDs. Conecte as extremidades negativas aos resistores e, em seguida, a um aterramento comum. (Os resistores podem ficar na frente ou atrás do LED. Não faz diferença, a menos que você queira se proteger contra curtos-circuitos em correntes mais altas.) Incluí alguns esquemas para ajudar com a fiação. (Os diagramas foram criados usando o software de design Fritzing.)
Etapa 3: o código
Se você for um programador experiente, achará este código simplista. É um ótimo código para começar a aprender, pois apresenta o uso de variáveis, modos de pino, funções e até mesmo um gerador aleatório. O código não é tão compacto quanto pode ser, pois tenho certeza de que o mesmo efeito pode ser obtido com matrizes, etc.
Os comentários do código apresentam a lógica de cada seção. Todo o código está embutido aqui e você pode baixar o esboço abaixo.
/*
Este script pisca 6 LEDs (amarelo, é claro) em ordem aleatória em intervalos aleatórios usando PWM. Cada LED é controlado por sua própria função. * / led1 int = 3; // LED conectado ao pino 3 do PWM, etc. Usei todos os 6 pinos do PWM. int led2 = 5; int led3 = 6; int led4 = 9; int led5 = 10; int led6 = 11; longo randnum; // randnum controla o intervalo de tempo entre flashes e long randbug; // randbug controla qual bug acende. void setup () {pinMode (led1, OUTPUT); // Definindo todos os pinos PWM como saídas. pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (led6, OUTPUT); } void loop () {randbug = random (3, 12); // randbug escolhe aleatoriamente uma função para executar, // assim, escolhe aleatoriamente um bug para acender. if (randbug == 3) {bug1 (); } if (randbug == 5) {bug2 (); } if (randbug == 6) {bug3 (); } if (randbug == 9) {bug4 (); } if (randbug == 10) {bug5 (); } if (randbug == 11) {bug6 (); }} / * * Cada uma dessas funções funciona da mesma maneira. 'For loops' aumenta e diminui * a saída daquele pino para controlar o brilho do LED. * 'randnum' é um intervalo de tempo aleatório entre 10 e 3000 ms * e escolhe um intervalo de tempo entre flashes de bug. * 'delay 10' é apenas para o efeito de fade. * / void bug1 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue - = 5) {analogWrite (led1, fadeValue); atraso (10); } atraso (randnum); } void bug2 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue - = 5) {analogWrite (led2, fadeValue); atraso (10); } atraso (randnum); } void bug3 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue - = 5) {analogWrite (led3, fadeValue); atraso (10); } atraso (randnum); } void bug4 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue - = 5) {analogWrite (led4, fadeValue); atraso (10); } atraso (randnum); } void bug5 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue - = 5) {analogWrite (led5, fadeValue); atraso (10); } atraso (randnum); } void bug6 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue - = 5) {analogWrite (led6, fadeValue); atraso (10); } atraso (randnum); }
Etapa 4: construir a caixa
Depois de atualizar seu Arduino com o código e fazer seus vaga-lumes trabalharem da maneira que você gosta, você pode querer colocá-los no jardim; isso significa uma caixa de projeto e um pouco de redução de calor para manter o Arduino e os LEDs secos. Vamos fazer!
Etapa 5: Construindo Bug Butts
- Corte os condutores do LED em cerca de 5 mm.
- Descasque e estanhe as pontas dos fios que você está usando, também cerca de 5 mm.
- Deslize um tubo termorretrátil de 1 mm sobre cada extremidade do fio.
- Solde o LED ao fio. (Neste ponto, você deve escolher qual fio em seu par será positivo e qual será negativo. Eu escolhi o fio sólido como positivo e o fio branco como negativo. Mantenha essa estratégia durante todo o projeto para evitar dores de cabeça mais tarde!)
- Deslize o termorretrátil totalmente sobre o fio desencapado e os condutores de LED. Passe uma chama rápida sobre eles para reduzi-los aos fios.
- Deslize outro pedaço de termorretrátil sobre o LED e os fios com a lente do LED para fora e derreta no lugar.
- Deslize alguns pedaços de termorretrátil no fio por toda a extensão e derreta-o a cada poucos metros para manter o fio arrumado.
Etapa 6: Prepare a caixa do projeto
- Use uma ferramenta rotativa com uma broca de tambor de lixa para limpar qualquer plástico desnecessário em sua caixa de projeto. (Tenha cuidado para não cortar nenhum suporte de parafuso que você possa precisar para montar sua caixa de volta.)
- Decida onde você deseja que seu switch fique e que os fios de LED saiam. Eu sugiro os lados, mas use o que sempre funcionar com suas necessidades.
- Use a broca de tamanho apropriado para fazer orifícios para o prensa-cabo e a chave.
Observação: na foto acima, você verá que fiz um "cabo falso". Este é um pacote de 6 pares de fios que usei para os LEDs com termorretrátil para agrupá-los. Usei-o para ter certeza de que o prensa-cabo se encaixaria perfeitamente no conjunto de cabos real e também para testar a resistência à água da caixa quando o interruptor, o prensa-cabo e a tampa foram colocados. (Depois de ficar submerso por 24 horas em 6 polegadas de água, tinha muito pouca umidade dentro. Eu ficaria feliz em chamar esta caixa de "resistente às intempéries".)
Etapa 7: Traga o poder
- Determine a quantidade de bateria e de fio do interruptor necessária para alcançar o Arduino, colocando todos os três componentes na caixa do projeto. Corte os fios do switch e do conector da bateria de 9V. Retire e estanhe as pontas. Deslize um pouco de termorretrátil no lugar para a próxima etapa.
- Corte dois pinos de cabeçalho machos de sua tira (mas mantenha-os grudados).
- Solde o fio vermelho do conector da bateria de 9 V em uma extremidade do interruptor. Solde a outra extremidade da chave em um pino macho da plataforma. Solde o cabo preto da bateria no outro pino macho da plataforma.
- Conforme mostrado no diagrama acima, os pinos de cabeçalho irão para a placa de ensaio para alimentar o Nano no VIN (positivo) e no GND (negativo). O pino VIN pode lidar com 7 a 12 volts. Se você planeja alimentar seu Arduino de uma forma diferente da bateria de 9 V, use um pino de alimentação diferente.
Etapa 8: Modifique o Nano se necessário
Como minha caixa de projeto era bem rasa, precisei remover os pinos do cabeçalho ICSP para caber. Esses pinos são uma interface secundária com seu Arduino. Removê-los não danificará seu Nano, pois você sempre pode carregar scripts através da porta USB.
Nota: Se seu Nano veio precisando de pinos de cabeçalho para serem soldados, simplesmente omita esses pinos ao montar seu Arduino.
Etapa 9: Conecte o interior
- Conecte a porta da prensa-cabo à caixa do projeto no orifício que você fez para ela. Se você está confuso sobre como usar um prensa-cabo, este vídeo que encontrei no YouTube mostra um sendo montado. (avançar para 0:57.) O seu pode ter uma arruela de borracha. Isso vai entre a caixa do projeto e a porca externa do prensa-cabo.
- Junte as pontas soltas dos fios do LED. Aproveite este tempo para cortá-los em um comprimento igual, tira e estanhe as pontas. Passe as pontas pela tampa da prensa-cabo e use um pedaço de termorretrátil para unir as pontas, deixando comprimento suficiente para alcançar a placa de ensaio no interior da caixa.
- Alimente o feixe de fio através da porta da prensa-cabo na caixa do projeto e gire a tampa da prensa-cabo para travar os fios no lugar, de preferência em torno do termorretrátil que você usou para agrupá-los.
- Separe os fios terra dos fios positivos (lembrando-se de quais você escolheu antes). Solde todos os fios de aterramento em um único aterramento. Prenda um fio curto desse grupo e finalize com 1 cabeçote macho. Use termorretrátil para proteger as juntas de solda nuas.
- Solde os cabeçotes machos nas extremidades de cada fio positivo. Novamente, use termorretrátil.
- Insira os cabeçalhos macho de extremidade positiva na placa de ensaio para conectar aos pinos PWM no Arduino.
- Insira o aterramento comum na placa de ensaio de modo que passe por um resistor limitador de corrente e depois para GND no Arduino.
- Coloque a bateria e encaixe a chave no orifício da caixa que você perfurou anteriormente. Encaixe a arruela de borracha entre a caixa do projeto e a tampa de rosca. Conecte os cabos de alimentação na placa de ensaio.
- Encaixe ou aparafuse a tampa na caixa. Você Terminou!
Nota: Observe nos esquemas e nos estágios de desenvolvimento que usei um resistor limitador de corrente por LED. Normalmente, cada LED deve ter seu próprio resistor, visto que, normalmente, mais de um LED é aceso ao mesmo tempo. O código não permite que mais de um LED seja aceso por vez, portanto, usar apenas um resistor é bom para proteger o Arduino. Isso também economiza espaço na pequena placa de ensaio ou tempo de soldagem de cada LED com um resistor em linha. Dito isso … AVISO !!! Se você planeja alterar o código para que mais de um LED seja iluminado por vez, você precisará de resistores separados para cada LED.
Etapa 10: use
Use tiras de velcro ou gotas de cola quente para afixar os LEDs em plantas, cercas, flamingos rosa ou qualquer outra coisa em seu quintal. Use-os dentro, colocando-os em prateleiras de vinho, atrás de cortinas ou até mesmo pendurando os fios no teto para um efeito flutuante 3D no escuro! Seria um ótimo toque para festas, casamentos, filmes e fotografia.
Etapa 11: indo além …
Como afirmado antes, esta é uma versão inicial deste projeto, mas é cheia de muito potencial! Execute mais LEDs conectando um registrador de deslocamento (consulte este instrutível por JColvin91 para saber como.) Adicione um sensor de luz, carregador solar e temporizador para um recurso "configure e esqueça"! Mexa com o código para adicionar seu próprio sinalizador aos bugs. Compartilhe o que você faz e aproveite !!
ATUALIZAÇÃO: nas últimas duas semanas desde que este Instructable foi publicado, muitos colaboradores sugeriram melhorias brilhantes no código, hardware e execução deste projeto. Aconselho enfaticamente que, se você planeja construir isso, leia os comentários e as respostas para ter ideias sobre como fazer esses vaga-lumes de maneiras que não planejei. É no espírito de criação de código aberto que dou as boas-vindas a todas as ideias que ajudem a evoluir este projeto para mais do que eu pensava ser possível … e agradeço a todos que fizeram isso acontecer.
Ir. Faço!!!
Recomendado:
Howto: Instalando Raspberry PI 4 Headless (VNC) com Rpi-imager e imagens: 7 etapas (com imagens)
Howto: Instalando Raspberry PI 4 Headless (VNC) com Rpi-imager e imagens: Eu pretendo usar este Rapsberry PI em um monte de projetos divertidos em meu blog. Sinta-se à vontade para dar uma olhada. Eu queria voltar a usar meu Raspberry PI, mas não tinha um teclado ou mouse no meu novo local. Já fazia um tempo desde que configurei um Raspberry
Gesture Hawk: robô controlado por gestos manuais usando interface baseada em processamento de imagens: 13 etapas (com imagens)
Gesture Hawk: Robô controlado por gestos manuais usando uma interface baseada em processamento de imagem: Gesture Hawk foi apresentado no TechEvince 4.0 como uma interface homem-máquina baseada em processamento de imagem simples. Sua utilidade reside no fato de que nenhum sensor adicional ou vestível, exceto uma luva, é necessário para controlar o carro robótico que funciona em diferentes
Como desmontar um computador com etapas e imagens fáceis: 13 etapas (com imagens)
Como desmontar um computador com etapas e imagens fáceis: Esta é uma instrução sobre como desmontar um PC. A maioria dos componentes básicos é modular e facilmente removível. No entanto, é importante que você seja organizado sobre isso. Isso ajudará a evitar que você perca peças e também a fazer a remontagem e
Jar of Fireflies: 18 Steps (with pictures)
Jar of Fireflies: Este projeto usa LEDs verdes de montagem em superfície junto com um microcontrolador AVR ATTiny45 para simular o comportamento de vaga-lumes em uma jarra. (observação: o comportamento do vaga-lume neste vídeo foi bastante acelerado para ser mais fácil de representar em um breve
Sincronizando Fireflies: 7 etapas (com imagens)
Sincronizando vaga-lumes: você já se perguntou como centenas e milhares de vaga-lumes são capazes de se sincronizar? Como funciona, que eles sejam capazes de piscar todos juntos sem ter uma espécie de vaga-lume chefe? Este instrutível dá uma solução e mostra