Propaganda
O Natal está aqui novamente, e se é o seu feriado favorito do ano ou o faz suar 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 que elas se destaquem?
Neste projeto, construiremos uma matriz de LED 8 x 8 ativada por movimento e à prova de intempéries a partir do zero... por menos de US $ 20. Ele foi projetado para caber no centro de uma guirlanda de porta de Natal padrão, embora possa ser usado em qualquer lugar da casa. E como é alimentado por bateria, em qualquer lugar longe de casa também!
Lista de peças
Para este projeto, você precisará de:
- Arduino.
- Eu usei o Nano pelo tamanho pequeno, mas você pode usar praticamente qualquer Microcontrolador compatível com Arduino Guia de compra do Arduino: Qual placa você deve adquirir?Existem tantos tipos diferentes de placas Arduino por aí que você seria perdoado por estar confuso. Qual você deve comprar para o seu projeto? Vamos ajudar, com este guia de compra do Arduino! consulte Mais informação .
- 64 x LEDs vermelhos.
- Resistores de 8 x 220 Ohm.
- Sensor de movimento PIR.
- Muitos Arduino starter kits O que está incluído no kit inicial do Arduino? [MakeUseOf explica]Eu introduzi anteriormente o hardware de código aberto do Arduino aqui no MakeUseOf, mas você precisará mais do que apenas o Arduino real para criar algo com ele e realmente começar. Os "kits iniciais" do Arduino são ... consulte Mais informação vem com estes. Comprei um pacote múltiplo de Amazon por US $ 10.
- 1 pedaço de placa de prototipagem.
- O usado aqui foi de 9 x 7 cm, mas você pode usar o tamanho que desejar.
- Bateria 7-12v.
- Uma bateria simples é usada aqui por razões de orçamento, mas uma carregador de banco móvel Os melhores Pokemon Go Power BanksO Pokemon Go supera a bateria de um telefone. Para espremer um pouco mais de suco de Pokemon no seu telefone, é necessário um banco de potência. Mas qual é a melhor bateria por aí? consulte Mais informação pode durar ainda mais.
- Pedaços curtos variados de arame.
- Caixa Tupperware ou compartimento semelhante à prova de intempéries.
- Verifique se ele será grande o suficiente para caber todos os seus componentes dentro!
- Guirlanda de Natal
- Qualquer um serve, apenas certifique-se de que a caixa do gabinete caiba dentro dela.
- Ferro de solda e solda.
Embora não seja estritamente necessário, pois você pode soldar os componentes diretamente no Nano, também achei uma pequena placa de ensaio muito útil durante o teste. Uma pistola de cola quente também ajuda a juntar todas as peças.
Este projeto requer muita solda e, para iniciantes, pode parecer assustador. Pessoalmente, ainda sou muito iniciante em soldagem e achei que não era tão desafiador ou demorado quanto parece. Se você também não conhece a solda, aqui estão algumas boas dicas para ajudar Aprenda a soldar, com essas dicas e projetos simplesVocê está um pouco intimidado com o pensamento de um ferro quente e metal fundido? Se você deseja começar a trabalhar com eletrônicos, precisará aprender a soldar. Vamos ajudar. consulte Mais informação .
Se você realmente não gosta da idéia de soldar, esse projeto também é possível com Tiras de LED Projeto de fim de semana: construa uma tela gigante de pixel LEDAdoro pixels de LED: brilhantes, fáceis de controlar, baratos e muito versáteis. Hoje, vamos transformá-los em uma grande tela de pixels que pode ser pendurada na parede. consulte Mais informação ou uma matriz de LED pronta que você pode ter no seu kit inicial. Alguns ajustes de código serão necessários se você decidir seguir esse caminho.
Configurando o Arduino
Começaremos com o diagrama de circuitos do Arduino e os fios que conectaremos ao sensor PIR e à matriz de LEDs.
Inside the Matrix
Agora, faça nossa matriz de LED 8 x 8. É uma boa idéia começar por criar uma linha e uma coluna da matriz, para garantir que seja exatamente onde você deseja na placa de prototipagem.
Na foto acima, todos os LEDs são posicionados de modo que os ânodos (a perna mais longa e positiva) fiquem na parte superior da placa de proteção. Isso é importante, pois criaremos colunas de ânodos comuns juntando-os e linhas de cátodos comuns (a perna mais curta e negativa). Conseguir isso agora salvará dores de cabeça mais tarde!
Vamos construir uma matriz catódica de linha comum, este diagrama mostra como está tudo conectado.
Pode parecer um pouco assustador no começo, mas é uma configuração bastante simples. Em cada linha, todos os cátodos são unidos da direita para a esquerda e, em seguida, anexados a um de nossos pinos do Arduino. Depois disso, fazemos o mesmo para cada coluna de ânodos. Dessa forma, dependendo de qual coluna aplicamos energia e de qual linha nos unimos ao solo, podemos ativar qualquer LED individual na matriz.
Que comece a solda
Comece colocando sua primeira linha de LEDs. Verifique se todos os ânodos estão voltados para o topo e vire-o. Descobri que adicionar outro LED em cada canto e prender outro pedaço de protoboard na parte superior usando um cordão elástico ajudou a manter tudo no lugar.
Agora, um a um, dobre a perna (curta) do cátodo de cada LED para a esquerda, para que todos se sobreponham. É mais fácil começar pelo lado esquerdo e trabalhar direito. Se você estiver usando um pedaço maior de placa de proteção, poderá soldá-los primeiro na placa e conectá-los usando as almofadas. Cuidado para não unir nenhum dos cátodos a outras linhas na placa ou a qualquer um dos ânodos!
Repita esse processo para todas as oito linhas e, quando terminar, deverá ter algo parecido com isto:
Anodos de salto!
As colunas de ânodos são um pouco mais complicadas. No diagrama acima, os ânodos se curvam cada vez que cruzam uma fila de cátodos. Isso ocorre porque eles não podem tocar nas linhas. Devemos dobrar os ânodos sobre as linhas do cátodo e anexá-los um ao outro. Você pode achar que usar uma caneta para dobrar as pernas ajuda muito.
Faça isso para cada linha de ânodos e conecte um resistor a cada ânodo superior. Você provavelmente achará mais fácil colocar o resistor no próximo orifício no protoboard e unir as pastilhas usando solda. Agora você deve ter algo parecido com isto:
Parabéns! A matriz do LED está completa. Verifique sua solda cuidadosamente nesta fase para garantir que não haja quebras e que nenhuma das colunas esteja tocando nas linhas. Não se preocupe se não parecer bonito, só precisamos que funcione! Agora você pode verificar cada LED individualmente conectando 5v a qualquer extremidade da coluna e aterrando em qualquer extremidade da linha.
Desde que tudo esteja bem, conecte os fios de conexão a cada coluna e cada linha e conecte-os ao seu Arduino, conforme mostrado no diagrama acima.
Vamos começar a codificar
Abra o IDE do Arduino e escolha sua placa e porta. Se você é novo no Arduino, confira este Guia de Introdução. Introdução ao Arduino: Guia para iniciantesO Arduino é uma plataforma de prototipagem eletrônica de código aberto baseada em hardware e software flexível e fácil de usar. Destina-se a artistas, designers, entusiastas e qualquer pessoa interessada em criar objetos ou ambientes interativos. consulte Mais informação
Digite esse código no editor. É um código bastante denso se você não estiver familiarizado com ele, mas está disponível aqui totalmente anotado para ajudar a entender como ele funciona.
const int row [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 = LOW; int val = 0; bool pirTrigger = false; const int pirLockTime = 12000; int pirCountdown = pirLockTime; pixels int [8] [8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; booleano typedef CHAR_MAP_NAME [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, 0}, }; const CHAR_MAP_NAME threedownthreein = {{0, 0, 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] = { & blank, & threedownthreein, & blank, & blank, & threedownthreein. }; void setup () {para (int i = 0; i <8; i ++) {pinMode (linha [i], SAÍDA); pinMode (col [i], SAÍDA); // sensor de movimento pinMode (pirPin, INPUT); digitalWrite (col [i], LOW); } } void screenSetup () {const CHAR_MAP_NAME * thisMap = charMap [currentCharIndex]; para (int x = 0; x <8; x ++) {for (int y = 0; y <8; y ++) {bool on = (* thisMap) [x] [y]; if (ativado) {pixels [x] [y] = ALTO; } else {pixels [x] [y] = BAIXO; currentCharIndex ++; if (currentCharIndex> = noOfFrames) {currentCharIndex = 0; }} void refreshScreen () {for (int currentRow = 0; currentRow <8; currentRow ++) {digitalWrite (linha [currentRow], LOW); for (int currentCol = 0; currentCol <8; currentCol ++) {int thisPixel = pixels [currentRow] [currentCol]; digitalWrite (col [currentCol], thisPixel); if (thisPixel == HIGH) {digitalWrite (col [currentCol], LOW); }} digitalWrite (linha [currentRow], HIGH); }} void loop () {val = digitalRead (pirPin); if (val == ALTO) {pirTrigger = true; } else if (val == LOW && pirCountdown <= 0) {pirTrigger = false; pirCountdown = pirLockTime; } if (pirTrigger == true && pirCountdown> 0) {refreshScreen (); contagem regressiva--; pirCountdown--; if (countDown <= 0) {countDown = refreshSpeed; screenSetup (); } } }
As partes importantes a entender são:
o refreshSpeed variável. Essa variável determina como o tempo entre cada tela é atualizado. Um número maior significa uma espera mais longa.
A const CHAR_MAP_NAMEs. É aqui que você coloca cada mapa de caracteres (ou quadro, se for mais fácil pensar neles dessa maneira) que deseja exibir.
o noOfFrames variável. Isso determina quantos quadros são exibidos em uma reprodução completa. Observe que pode ser diferente do número de mapas de caracteres. Por exemplo, se você quisesse exibir “A CAT”, seria necessário definir apenas quatro quadros distintos: em branco, um UMA, uma C e um T.
Agora, quando o sensor de movimento detectar movimento, a tela do LED deverá piscar o LED três vezes para baixo e três polegadas no canto superior esquerdo. Se não for exibido corretamente, verifique novamente sua fiação para garantir que tudo esteja no lugar certo! Quando você adiciona sua própria imagem ou mensagem, ela pode ser cortada mais cedo ou ser reproduzida por muito tempo. Tente alterar o pirLockTime variável até que seja reproduzido pelo tempo desejado.
O processo de adicionar cada quadro ao visor de LED pode ser um pouco tedioso, por isso criamos esta planilha para facilitar um pouco a criação de texto e imagens para sua matriz de LEDs (faça uma cópia da Planilha do Google para editá-la).
Usando a planilha, você pode copiar suas criações diretamente no código.
Faça valer os elementos
Agora que temos uma matriz de LEDs em funcionamento, precisamos de uma maneira de sobreviver ao clima de inverno. Embora esse método possa não resistir a uma tempestade tropical ou ser mergulhado na piscina, deve ser o suficiente para manter todos os componentes eletrônicos a salvo dos elementos.
Usei uma caixa redonda da Tupperware com 15 cm de diâmetro e 6 cm de profundidade, pois se encaixava perfeitamente em meus componentes. Corte uma janela na tampa um pouco maior que a sua matriz de LED e prenda uma película plástica transparente nela, certificando-se de não deixar espaço para a entrada de líquido. O plástico resistente de algumas embalagens funcionaria melhor, mas era tudo o que eu tinha. Você também pode anexar algumas montagens para o protoboard, embora ambos os trabalhos possam ser facilmente executados com fita impermeável forte.
Em seguida, faça um pequeno orifício embaixo da janela e depois amplie-o com cuidado e lentamente até que o sensor PIR possa apenas encaixar. Você quer que ele caiba da maneira mais confortável possível.
Conecte seu sensor PIR e preencha todas as lacunas que puder ver com fita adesiva ou cola quente.
Limpe qualquer fita ou cola que possa impedir o fechamento adequado da caixa e adicione todos os seus componentes à caixa junto com a bateria. Aqui, uma simples bateria AA foi usada, conectada diretamente ao pino VCC do Nano. Alguns pequenos pedaços de cortiça foram adicionados à parte externa do recinto para ajudar a pendurar a construção no centro da grinalda.
E nós somos feitos
Depois que a caixa estiver selada, pendure-a com sua guirlanda de Natal e aguarde as reações dos visitantes à sua bem-vinda pessoal de US $ 20 de alta tecnologia! Você pode até dar um passo adiante e criar incríveis Decorações DIY Decorações de Natal impressas em 3D para férias geeks perfeitasPor que não economizar dinheiro neste Natal e imprimir em 3D alguns adornos festivos para sua casa? consulte Mais informação para outros lugares da casa também!
Neste projeto, construímos um sistema de matriz de LED independente a partir do zero, que é ativado por movimento e pode sobreviver ao ar livre, exceto nas condições climáticas mais adversas. Essa compilação será útil muito tempo depois que a temporada de férias terminar em outros projetos, e a mesma técnica pode ser usada para criar gabinetes à prova de intempéries baratos para outros projetos também.
Você construiu algo para dar uma reviravolta no seu Natal? Você está planejando algum presente de Natal com tema DIY este ano? Deixe-nos saber nos comentários abaixo!
Ian Buckley é jornalista freelancer, músico, intérprete e produtor de vídeo que vive em Berlim, Alemanha. Quando ele não está escrevendo ou no palco, está mexendo com eletrônicos ou códigos DIY, na esperança de se tornar um cientista louco.