Melhore a sua guirlanda de natal com um movimento ativado levou matriz
Natal está aqui de novo, e se é o seu feriado favorito do ano ou trá-lo para fora em um suor frio, as decorações estão começando a subir. Este ano, por que não incorporar alguma tecnologia DIY em suas decorações para fazê-los se destacar?
Conteúdo
Neste projeto será a construção de uma prova de intempéries, movimento ativado 8 x 8 LED matriz a partir do zero ... por menos de $ 20. Ele foi projetado para caber no centro de uma coroa de flores da porta do Natal padrão, embora possa ser usado em qualquer lugar ao redor da casa. E uma vez que é alimentado por bateria, em qualquer lugar longe da casa também!
Lista de peças
Para este projeto você vai precisar de:
- Arduino.
- Eu usei o Nano para seu pequeno tamanho, mas você pode usar quase qualquer microcontrolador Arduino compatível.
Embora não seja estritamente necessário, como você poderia soldar os componentes diretamente para o Nano, eu também encontrou uma pequena placa de ensaio muito útil durante o teste. A pistola de cola quente também ajuda a colocar todas as peças juntas.
Este projeto requer um monte de solda, e como um novato pode parecer assustadora. Eu, pessoalmente, sou ainda muito um iniciante em solda e achei que era não ser tão desafiador ou demorado quanto parece. Se você também é novo para soldar aqui estão alguns alguns boas dicas para ajudar.Aprenda a solda, com estas dicas simples e ProjetosAprenda a solda, com estas dicas simples e ProjetosVocê está um pouco intimidado pelo pensamento de um ferro quente e metal fundido? Se você quer começar a trabalhar com eletrônica, você vai precisar aprender a solda. Vamos ajudar.consulte Mais informação
Se você realmente não estão interessados na idéia de solda, este projecto também é possível com tiras de LED, ou uma matriz de LED ready-made que você pode ter no seu kit de arranque. Alguns ajustes de código será necessário se você decidir ir por esse caminho.
Configurando o Arduino
Vamos começar com o esquema de circuitos para o Arduino e os fios que serão inerentes ao nosso sensor PIR e matriz de LED.
Dentro da Matrix
Agora, para fazer nossa matriz LED 8 x 8. É uma boa idéia para começar a criar uma linha e uma coluna da matriz, para ter certeza que é exatamente onde você quer que ele na placa de prototipagem.
Na foto acima, todos os LEDs são colocados de modo que os ânodos (o mais longo, perna positiva) são para o topo da protoboard. Isto é importante, porque nós estaremos criando colunas de ânodos comuns, ligando-os juntos, e fileiras de cátodos comuns (o mais curto, pernas negativo). Conseguir isso agora vai poupar dores de cabeça mais tarde!
Vamos construir uma matriz comum cátodo fileira, este diagrama mostra como tudo está conectado.
Pode parecer um pouco difícil no começo, mas é bastante uma configuração simples. Em cada linha, todos os cátodos são unidos da direita para a esquerda, e em seguida, anexar a um dos nossos pinos do Arduino. Depois disso, nós fazemos o mesmo para cada coluna de ânodos. Desta forma, dependendo de qual coluna aplicamos poder, e qual linha nos unimos à terra, podemos transformar em qualquer indivíduo LED na matriz.
Deixe a solda Begin
Comece por colocar a sua primeira linha de LEDs. Certifique-se de todos os ânodos estão enfrentando o topo, e lançá-lo mais. Descobri que a adição de outro LED em cada esquina, e anexando um outro pedaço de protoboard em cima usando um cabo elástico ajudou a manter tudo no lugar.
Agora, uma a uma curva do cátodo (short) de perna de cada LED para a esquerda de modo que todos eles se sobrepõem uns com os outros. É mais fácil para começar a partir do lado esquerdo e trabalhar direito. Se você estiver usando um pedaço maior de protoboard, você pode solda-los para o conselho em primeiro lugar e conectá-los em conjunto, utilizando as almofadas. Tenha cuidado para não aderir a qualquer dos catodos de quaisquer outras linhas no quadro ou qualquer dos ânodos!
Repita esse processo para todas as oito linhas, e quando terminar você deve ter algo que é algo como isto:
Jumping Ânodos!
As colunas de ânodos são um pouco mais complicadas. No diagrama acima, a curva de ânodos de cada vez que atravessar uma fila de cátodos. Isso é porque eles não podem tocar as linhas em tudo. Devemos dobrar os ânodos sobre as linhas catódicos e anexá-los uns aos outros. Você pode achar que usando uma caneta para dobrar as pernas ajuda muito.
Faça isso para cada linha de ânodos, e anexar um resistor a cada ânodo superior. Você provavelmente vai achar que é mais fácil colocar o resistor no próximo buraco no protoboard e juntar-se as almofadas usando solda. Agora você deve ter algo como isto:
Parabéns! A matriz de LED está completa. Verifique se o seu solda completamente nesta fase para garantir que não há quebras e que nenhuma das colunas estão tocando as linhas. Não se preocupe se ele não parece muito, só precisamos que ele funcione! Você pode verificar cada LED individualmente agora, anexando 5v a qualquer uma das extremidades da coluna e do solo para qualquer da linha termina.
Video: Como fazer sua guirlanda de natal
Desde que tudo está bem, anexar ligar fios para cada coluna e cada linha, e anexá-las ao seu Arduino como mostrado no diagrama acima.
Video: 100 ideias legais de Guirlandas de Natal
Vamos começar Codificação
Abra o Arduino IDE e escolher o seu conselho e do porto. Se você é novo no Arduino, confira este Guia de Introdução.Começando com o Arduino: Guia de um novatoComeçando com o Arduino: Guia de um novatoArduino é uma plataforma electrónica de prototipagem de código aberto baseado em flexível e fácil de usar hardware e software. É destinado a artistas, designers, entusiastas e qualquer pessoa interessada em criar objetos ou ambientes interativos.consulte Mais informação
Introduza este código no editor. É um código muito denso se você não estiver familiarizado com ele, mas ele está disponível aqui totalmente anotada para ajudar a compreender como ele funciona.
const int linha[8] = {2,3,4,5,6,7,8,9}-const int col[8] ={10,11,12,14,15,16,17,18}-int pirPin = 19-int pirState = BAIXO-int val = 0-bool pirTrigger = falso-const int pirLockTime = 12000-int pirCountdown = pirLockTime-int píxeis[8][8]-const int refreshSpeed = 500-int contagem regressiva = refreshSpeed-int currentCharIndex = 0-typedef CHAR_MAP_NAME bool[8][8]-const CHAR_MAP_NAME em branco = {{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},}-const CHAR_MAP_NAME threedownthreein = {{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 1 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},}-const int noOfFrames = 5-const CHAR_MAP_NAME *charmap[noOfFrames] ={&em branco,&threedownthreein,&em branco,&em branco,&threedownthreein}-vazio configuração(){para (int Eu=0-Eult;8-Eu++){pinMode(linha[Eu], SAÍDA)-pinMode(col[Eu],SAÍDA)-//sensor de movimento pinMode(pirPin, ENTRADA)-digitalWrite(col[Eu], BAIXO)-}}vazio screenSetup(){const CHAR_MAP_NAME *thisMap = charmap[currentCharIndex]-para (int X = 0- X lt; 8- X++){para (int y = 0- y lt; 8- y++) { bool em = (*thisMap)[X][y]- E se(em) { píxeis[X][y] = ALTO- } outro { píxeis[X][y] = BAIXO- } } } currentCharIndex++- E se(currentCharIndexgt; =noOfFrames){currentCharIndex = 0-}}vazio refreshScreen(){para (int currentRow = 0- currentRow lt; 8- currentRow++){digitalWrite(linha[currentRow], BAIXO)-para (int currentCol = 0- currentCol lt; 8- currentCol++){int thisPixel = píxeis[currentRow][currentCol]-digitalWrite(col[currentCol], thisPixel)-E se (thisPixel == ALTO) {digitalWrite(col[currentCol], BAIXO)-}}digitalWrite(linha[currentRow], ALTO)-}}vazio laço(){val = digitalRead(pirPin)-E se (val == ALTO){pirTrigger = verdade-}outro E se (val == BAIXO && pirCountdown lt; =0) { pirTrigger=falso- pirCountdown = pirLockTime- } E se(pirTrigger==verdade && pirCountdown gt; 0){refreshScreen()-contagem regressiva---pirCountdown---E se(contagem regressiva lt; = 0){contagem regressiva = refreshSpeed-screenSetup()-}}}
As partes importantes para entender são:
o refreshSpeed variável. Esta variável determina como o tempo entre cada atualização da tela. Um número maior significa uma espera mais longa.
o const CHAR_MAP_NAMEs. Este é onde você coloca cada mapa de caracteres (ou quadro se é mais fácil pensar neles dessa forma) que você deseja exibir.
o noOfFrames variável. Isso determina quantos quadros são exibidos em um jogo cheio completamente. Observe que pode ser diferente do número de mapas de caracteres. Por exemplo, se você quisesse exibir “A CAT” você só precisa definir quatro quadros distintos: em branco, uma UMA, uma C e uma T.
Agora, quando o sensor de movimento detecta o movimento da tela LED deve piscar os três para baixo LED e três do canto superior esquerdo. Se ele não exibir corretamente, verificar sobre sua fiação novamente para se certificar que tudo está no lugar certo! Quando você adiciona sua própria imagem ou mensagem, ele pode ficar cortada cedo, ou jogar por muito tempo. Tente alterar o pirLockTime variável até que ela desempenha para a quantidade de tempo que você deseja.
O processo de adicionar cada quadro para o display LED pode ser um pouco entediante, por isso criamos esta planilha para torná-lo um pouco mais fácil para criar texto e imagens para o seu matriz de LED (fazer uma cópia da planilha do Google para que você possa editá-lo ).
Usando a planilha, você pode copiar as suas criações diretamente no código.
Torná-lo enfrentar as intempéries
Agora que temos uma matriz de trabalho LED, precisamos de uma maneira para que possa sobreviver ao inverno. Enquanto este método pode não resistir a uma tempestade tropical ou ser mergulhado na piscina, que deve ser suficiente para manter todos os componentes eletrônicos seguro dos elementos.
Eu usei uma caixa de Tupperware redondo que é de 15 cm de diâmetro e 6 cm de profundidade, uma vez que se encaixam meus componentes perfeitamente. Cortar uma janela na tampa ligeiramente maior do que a sua matriz de LED, e anexar um filme plástico transparente para ele, certificando-se de não deixar espaços para o líquido para entrar. Plástico resistente de algumas embalagens seria melhor trabalhar, mas isso era tudo que eu tinha. Você também pode anexar algumas montagens para o protoboard, embora ambos os trabalhos poderia facilmente ser feito com forte fita impermeável.
Em seguida, faça um pequeno buraco embaixo da janela, em seguida, com cuidado e lentamente alargá-la até que seu sensor PIR só pode apenas passar. Você quer isso para caber confortavelmente como possível.
Anexar o sensor PIR, e preencher eventuais lacunas que você pode ver com fita adesiva ou cola quente.
Limpe qualquer cola ou fita adesiva que pode parar a caixa de fechar corretamente, e adicionar todos os seus componentes para a caixa junto com sua bateria. Aqui, foi utilizada uma bateria AA simples, conectado diretamente ao pino VCC do Nano. Alguns pequenos pedaços de cortiça foram adicionados para o exterior do recinto para ajudar com suspensão da construção no centro da coroa de flores.
E estamos a fazer
Uma vez que a caixa é selada, pendurá-lo com sua coroa de flores Natal, e esperar por suas reações visitantes ao seu alta tecnologia sub $ 20 pessoal bem-vindos! Você poderia até mesmo ir um passo além e criar incrível decorações DIY para outros lugares ao redor da casa também!Decorações de Natal impressos em 3D para Perfect Geeky HolidaysDecorações de Natal impressos em 3D para Perfect Geeky HolidaysPor que não salvar-se algum dinheiro neste Natal e 3D imprimir alguns adornos festivos para sua casa?consulte Mais informação
Neste projeto nós construímos uma auto-contido sistema de matriz de LED a partir do zero, que é movimento ativado e pode sobreviver estar fora em todos, mas o mais inclemente do tempo. Esta compilação virá útil por muito tempo após a temporada de férias é longo em outros projetos, ea mesma técnica poderia ser usada para criar gabinetes à prova de intempéries baratos para outros projetos também.
Você construir qualquer coisa para dar seu Natal uma torção DIY? Você está planejando qualquer presentes de Natal temáticos DIY este ano? Deixe-nos saber nos comentários abaixo!