O logotipo é um derivado do logotipo da comunidade Arduino licenciado sob a licença Creative Commons CC-SA-BY-NC 3.0
Atualização: Anunciados os vencedores
Os vencedores do concurso foram anunciados. Por favor, consulte a publicação Meta para obter detalhes .
Para comemorar os 10 anos do Arduino , temos o orgulho de anunciar o primeiro evento de todos os tempos no Arduino Stack Exchange.
Tire suas placas e equipamentos de solda, desenterre os CIs e resistores. O primeiro concurso do Arduino Stack Exchange está ao virar da esquina. Nós estaremos procurando projetos interessantes que são construídos usando Arduinos. O concurso tem como objetivo compartilhar, discutir e fornecer feedback sobre os projetos nos quais você e outros membros estão trabalhando. Ver publicação do anúncio
Detalhes:
- O prêmio é uma camiseta oficial da Stack Exchange
- Limite de duas entradas por pessoa. Se mais de dois forem fornecidos, apenas os dois primeiros serão considerados.
- Clones são permitidos.
- Os projetos a serem considerados serão aceitos até 29 de março de 2014 às 16:00 UTC. A questão ainda permanecerá em aberto caso alguém queira mostrar seu projeto que eles fizeram no Dia do Arduino de 2014.
Visite o post Meta para discussão sobre este evento e mais informações.
Formato da resposta
Você pode postar até dois projetos (como duas respostas separadas) como inscrições para o concurso. Todas as entradas extras serão excluídas. Considere seguir o seguinte modelo para entradas:
título do projeto
Descrição muito breve
Descrição
Qual é o seu projeto? O que isso faz? Qual problema isso resolve?
desenhar
O que incluir nesta seção:
- Esquemas e outra documentação de projeto. O Fritzing é uma boa ferramenta para desenhar esquemas da placa de ensaio, como o mostrado no logotipo do projeto acima.
- Componentes usados para construir o projeto
- Imagens ou vídeo
Conclusão
Pensamentos finais. O que você aprendeu ao fazer este projeto? O que você faria de diferente se tivesse que começar de novo?
Você pode copiar / colar o seguinte texto se desejar usar este modelo.
# Project Title
**Very Brief Description**
# Description
What is your project? What does it do? What problem does it solve?
# Design
Things to include in this section:
- Schematics and other design documentation. [Fritzing][8] is a good tool for drawing breadboard schematics like the one shown in the project logo above.
- Components used to build the project
- Pictures or video
# Conclusion
Final thoughts. What did you learn from doing this project? What would you do differently if you had to start over?
Prémios
Existem dois prêmios! O vencedor será o envio, obtendo o número máximo de upvotes (downvotes não contam) e receberá uma camiseta Stack Exchange *! Haverá algo para o vice-campeão também. O segundo colocado será decidido a critério dos organizadores do evento.
* Certas restrições podem ser aplicadas. O transporte internacional pode demorar algumas semanas.
Onde envio meus projetos?
Poste seus projetos como respostas a este post.
Respostas:
Stateful questbox
Uma caixa com GPS que permite visitar alguns pontos antes de abrir
Descrição
É semelhante ao questbox , mas armazena uma pequena quantidade de informações na EEPROM ; portanto, você deve visitar dois ou três lugares diferentes antes de abrir.
desenhar
Hardware necessário:
Custo total de hardware: 137 $ + frete
Materiais adicionais:
Você pode encontrar instruções de montagem na página do relógio de sol (você pode comprar a maioria dos materiais)
Vou fazer o upload de um código stateful e postar um link aqui, infelizmente não receberei todos os hardware necessários a tempo, então isso é apenas uma ideia :)
Código escrito até agora :
Inspiração:
Conclusão
Aprendi a integrar muitos componentes e bibliotecas todos juntos, vou ter que viajar um pouco para testá-lo :)
O orçamento pode ser bastante reduzido, mudando um pouco o conceito:
fonte
Economia de energia para o usuário distraído de PC
Este dispositivo liga / desliga as luzes da minha mesa quando está escuro (ish) e sincronizado com o protetor de tela do meu PC.
Descrição
O projeto é pouco mais do que uma combinação de um sensor sensível à luz, um relé e algum código inteligente que monitora o protetor de tela no meu PC. Quando está anoitecendo e quando o protetor de tela não está ativo, acende as luzes sobre minha mesa. Quando eu sair da minha mesa, o protetor de tela será ativado, o que ativará a luz da mesa. Quando há luz suficiente durante o dia, as luzes não estão acesas. O problema resolvido é reduzir o desperdício de energia devido à iluminação do meu escritório quando eu sair da sala.
desenhar
Como o poder dos microcontroladores / Arduino é necessário apenas um pouco de hardware extra para criar um projeto útil. O mesmo vale para este projeto em que o hardware é pouco mais que:
simular este circuito - esquemático criado usando o CircuitLab
Conclusão
Aprendi como fazer a interface do PC através do link serial USB com o Arduino e como ler o estado atual do protetor de tela no meu PC. Se eu recomeçasse, usaria um controlador muito menor, pois realmente só preciso de uma única saída digital e uma única entrada analógica. Provavelmente, baseie o projeto no V-USB . O Arduino, no entanto, é excelente para a prova de conceito rápida e fácil (PoC). (O PoC está na minha mesa há pelo menos dois anos).
fonte
Eu acho que esse tipo de coisa mal se encaixa dentro das regras, mas é interessante o suficiente para eu achar que eu postaria de qualquer maneira.
Gerador de data e hora sincronizado com GPS de alta precisão para fins de aquisição de dados.
Este é um projeto bastante interessante que se destina a ser usado para fornecer uma maneira fácil de sincronizar vários sistemas independentes de aquisição de dados.
Basicamente, trabalho em um laboratório de pesquisa, e geralmente temos instrumentos que têm vários sistemas independentes de aquisição de dados, que podem ser fisicamente separados por até 15 metros. Precisamos ser capazes de correlacionar o tempo em que as amostras de cada sistema foram coletadas, o que pode ser difícil se você desejar resolver os tempos de amostragem com um alto grau de precisão. Usando algo como um sistema de aquisição de dados USB, apenas a latência USB pode introduzir várias centenas de milissegundos de latência desconhecida, que podem variar de aquisição a aquisição.
A solução anterior era um contador paralelo de 24 bits que era simplesmente transportado por toda parte, exigindo um enorme chicote de fios e era uma espécie de dor no traseiro.
Este sistema utiliza um módulo GPS de temporização especializado que pode sintetizar relógios de frequência arbitrários, que são de fase e frequência bloqueados nos relógios atômicos nos satélites GPS.
O MCU é responsável por vincular as mensagens de dados do GPS (eu tive que estender e otimizar fortemente um analisador de protocolo existente para os dados do GPS). O GPS está configurado para usar um protocolo binário proprietário e é todo analisado pelo analisador que escrevi.
O projeto passou por várias revisões (foto abaixo).
desenhar
Revisões!
Rev 1: Nunca funcionei, devido ao fato de que inicialmente eu esperava usar um software dPLL em um GPS muito mais barato, para sintetizar um relógio de frequência mais alta apenas da saída de 1 PPS. Provavelmente é possível fazê-lo funcionar, mas o investimento em tempo apenas não fez valer a pena. (e eu sou um codificador muito ruim)
Usou uma hélice de paralaxe MCU. A falta de linguagens compiladas decentes também foi uma questão importante.
Rev 2: Mudou para um ATmega2560. Trabalhou, tinha muitos aspectos de design descolados herdados da primeira rev. Principalmente, o uso continuado de registradores de deslocamento para a saída de 32 bits, apesar do número mais do que suficiente de E / S no ATmega2560.
Primeiro quadro que executou o Optiboot e foi programado inteiramente usando a cadeia de ferramentas padrão do Arduino, antes de me irritar com ela e começar a modificar a cadeia de ferramentas para melhor atender meus objetivos.
Rev 3: Também funcionou. A fiação incorporada ocorre porque esta placa incorporou um hub USB embutido para reduzir o número de portas USB necessárias (a interface FTDI requer 1 USB e o GPS também possui uma interface USB). Infelizmente, o GPS não enumerou corretamente, embora o dispositivo FTDI tenha funcionado bem, e eu usei esse hub em outro lugar sem problemas. Esquisito.
Como não tenho um depurador USB adequado, acabei de abandonar completamente o hub USB, em vez de tentar corrigir o problema. O GPS GPS não é realmente usado muito fora da configuração de qualquer maneira.
Rev 4: Versão semi-final do ATmega2560. Adicionado um LCD para o status do GPS, mexido com LEDs e assim por diante. Além disso, pegadas melhores para os possíveis super capacitores para manter o status do GPS quando não estiver energizado.
Esta é a última versão do Optiboot.
MStime
é oMSTOW
, ou Milissegundo de tempo da semana, que é o nome do valor dos dados do GPS que é emitido no registro de data e hora de saída. É uma variável de 32 bits que aumenta uma vez por milésimo de segundo e passa a cada semana. É uma parte mais obscura do padrão GPS.ITOW
é outro valor relacionado ao GPS, que corresponde ao sinal de 1PPS. A correlação entre os dois não é refletida corretamente no LCD, pois não tenho tempo de CPU para atualizar o LCD na taxa que gostaria. Essa foi realmente uma das principais coisas que melhoraram na atualização para os dispositivos Xmega.Rev 5: Switch de arquitetura completo. Agora usa um processador ATxmega128A1U. Não é mais o "Arduino", mas a capacidade de ter vários níveis de interrupção na série de processadores xmega me permitiu melhorar consideravelmente a estrutura do código.
Os dois cabos são de mim fazendo algumas experiências, o conselho funcionou bem sem eles também.
Ansioso:
Rev 6!
Adicione a capacidade de usar diferentes tamanhos de LCD, mais proteção ESD na conexão da antena GPS (que foi um problema), capacidade de usar uma bateria CR2032 para manter o relógio GPS em vez de super capacitores.
Além disso, rotulagem muito melhor dos LEDs de depuração e status.
E bônus Nyan-Cat!
(Essas placas estão prontas para serem fabricadas agora. Quando as conseguir, adicionarei fotos da placa real.)
Fiz alguns testes de longa duração entre duas das placas ATmega2560 e, em 72 horas, o erro de tempo do RMS entre as duas unidades foi de ~ 20 uS. Isso aconteceu com duas antenas completamente independentes também. Meu objetivo de design era <1 ms, então estou muito feliz com isso.
No geral, acho que isso faz um bom trabalho ilustrando como o Arduino pode ser uma ferramenta útil para a prototipagem precoce de produtos / sistemas "reais". Eu o uso para obter uma versão de teste inicial em execução com o mínimo de esforço e, quando estou confiante de que a ideia funcionará, na verdade trabalho para migrar para uma implementação completamente personalizada e específica para fins específicos.
Arquivos de design:
https://fake-server.no-ip.org/svn/FPGAStuff/DAQ%20systems/
(na série de diretórios "GPS Timestamp").
(Nota: os arquivos são do Altium Designer. Os arquivos não são águia).
Código fonte:
https://fake-server.no-ip.org/svn/Programming/Code/AVR/
Novamente, na série de diretórios "gpsTimeStamp".
Desculpe pelas fotos ruins do celular.
fonte
Sonic Ray Gun
Dois projetos de crianças
Estou trabalhando com duas crianças educadas em casa e estamos nos divertindo muito com um arduino. O primeiro projeto deles foi uma bomba falsa, como você vê nos filmes, com um cronômetro de contagem regressiva no LCD e um clássico "você corta o fio vermelho ou azul?" tipo de problema.
O projeto dois começou mostrando a eles o exemplo toneMelody e um pequeno alto-falante. Eles descobriram rapidamente que, se você aumentar a frequência para 15kHz, isso é bastante irritante para os adolescentes. Uma hora depois, eles haviam melhorado o design com um copo, rolo de papel higiênico e um interruptor feito de um clipe de papel que produzia uma pistola de raios sonora direcional.
Infelizmente não há fotos.
Conclusão
Não deixe crianças sem vigilância com um arduino.
fonte
(falso) Linux no Arduino
Recentemente, adquiri uma pequena tela LCD composta, com a qual comecei rapidamente a usar a biblioteca do Arduino TVout. O que veio depois? Linux!
Descrição
Enquanto brincava com a tela da TV e a biblioteca TVout, descobri que há um manipulador de terminal pré-fabricado para a TV. Logo comecei a experimentar usá-lo como um terminal de TV conectado a um teclado PS / 2. Houve alguns problemas com a biblioteca PS / 2 que eu usei, então fiz a transição para usar a biblioteca USB no meu Mega ADK junto com um teclado USB. Isso funcionou muito melhor. Agora para armazenamento.
Meu escudo de cartão SD não é compatível com o meu Mega, então eu o liguei de maneira um tanto aleatória ao SPI no final do quadro. Escrevi a manipulação de comandos para realizar algumas tarefas, como listar arquivos e localizar o tamanho do disco, espaço livre etc. A montagem inteira não está de forma alguma concluída, mas estou feliz com o progresso que fiz.
O código será realocado para o Github eventualmente, assista aos comentários.
desenhar
Desafios
Eu tive muitos problemas para concatenar os caracteres introduzidos na string que armazenava o comando atual porque eu não estava fazendo a conversão correta. Depois que eu descobri isso, eu também precisei corrigir o problema em que algumas chaves imprimiam lixo aleatório na tela. Isso foi causado pela leitura da memória antes das definições das letras, então alguns
if
esclareceram isso.Conclusão
Estou muito satisfeito com o código. Depois de adicionar mais alguns utilitários, colocarei no Github, então assista aos comentários. No geral, foi um projeto muito divertido. Eu aprendi como usar o Stino no processo.
fonte
ShiftLCD
Placa baseada em AVR, compatível com Arduino, montada na parte traseira de uma tela LCD de 8x1 a 20x4 caracteres.
Descrição
Acabei de projetar esta placa e a biblioteca personalizada para facilitar o uso e o LCD. Embora eles sejam bastante fáceis de usar no momento. Reduz o número de pinos de saída usados de 6 para 3. Ele também tem a opção de expandir a E / S adicionando mais registros de deslocamento àquele que aciona a tela. O processador usado é um ATTiny45 ou ATTiny85 que, após o uso do registro de deslocamento, possui os pinos digitais 1 (PWM) e 4 disponíveis e o pino analógico 2 (o mesmo pino do pino digital 4).
desenhar
Desafios
Um desafio imprevisto que enfrentei foi quando comecei a usar os pinos digitais 0-2 para executar o registro de turnos, que também eram os pinos de programação (MISO, MOSI, SCK). Assim, toda vez que eu reprogramava o dispositivo, o LCD recebia um monte de mensagens sem sentido, onde a energia teria que ser desligada para reiniciar a exibição. Resolvi esse problema movendo o pino de trava dos registradores de deslocamento para o pino digital 3, que não é um pino de programação. Resolver isso também resolveu outro problema para mim, porque quando movi o pino de trava, ele abriu o pino digital 1 que tinha uso de PWM, permitindo que mais coisas fossem feitas com a placa.
Conclusão
Concedido que esse pode não ser o produto ou a idéia mais legal, ele ainda tem seus usos. A resposta foi diretamente à pergunta: "O que você aprendeu ao fazer este projeto" Eu aprendi a projetar do início ao fim de uma placa PCB. Se eu pudesse fazer algo diferente, teria sido usar peças de montagem em superfície em vez de orifícios passados, mas novamente é apenas um protótipo, placa única.
fonte
Robô que aperta o botão.
Um robô de tiro a laser de quatro rodas e controle remoto de quatro libras que aperta botões.
Descrição
Eu fiz esse projeto ao longo do último ano letivo. Eu estava na aula de robótica e decidimos fazer uma competição. Cada equipe criaria um robô com um botão grande e uma maneira de pressionar outros botões. No final do ano, teríamos o concurso final, onde os três robôs tentariam apertar os botões um do outro.
Até o final do ano, meu robô funcionou apenas parcialmente. Em algum momento, todas as partes do robô estavam trabalhando, mas entre um Arduino frito, motoristas fritos, uma organização terrível de códigos e eu sendo a única pessoa da minha equipe a trabalhar no robô por um total de mais de cinco horas. não conseguia fazê-lo funcionar completamente.
Não toquei no meu robô há quase um ano, então sei que, se quisesse fazê-lo funcionar novamente, teria que religar o bot e reescrever o código. Posso decidir fazer isso algum dia, mas por enquanto vou trabalhar em projetos menos ambiciosos.
desenhar
Design geral
Informação / fluxo de eletricidade
Componentes
Código
Como não organizei meu código muito bem, espero que esse seja o código certo.
Mais fotos
Vídeo terrível de uma versão inicial lenta, sem braços, sem botões, sem laser e sem bluetooth.
https://www.youtube.com/watch?v=Q7MvE7-Xb0E
Conclusão
Eu sou realmente bom em fritar eletrônicos.
Esta foi a minha primeira experiência em uma oficina de máquinas real. Usei uma fresadora CNC, fresadora manual, torno e serra de fita. Se eu iniciasse um projeto como esse novamente, faria uma documentação muito melhor, para descobrir o que diabos estava fazendo um ano depois.
fonte
Telão LED de 4 dígitos para Arduino
Placa pequena com 4 dígitos de LED de 7 segmentos, gerenciada por 3 pinos.
Descrição
Quando comecei a trabalhar com o Arduino, queria uma maneira de exibir valores coletados por vários sensores que experimentei, mas não queria emitir esses valores
Serial
para um PC.Eu queria uma prancha pequena que pudesse ser reutilizada facilmente de um projeto para outro e queria poupar uma tábua de pão.
Atualmente, esta placa, junto com sua pequena biblioteca, permite a exibição de números de 4 dígitos e não fornece nenhuma corrente do Arduino durante a exibição (a corrente é originada somente ao comunicar à placa o novo valor a ser exibido daqui para frente).
desenhar
O design é bastante simples, pois eu decidi reutilizar um chip MAX-7219 para acionar minha tela de LED (eu tinha alguns deles à mão).
Graças a esse chip, o esquema era muito simples, mas era importante entender corretamente como usá-lo; felizmente, sua folha de dados era bastante clara.
O design original foi feito em uma placa de ensaio e usou quatro dígitos de LED de 7 segmentos ; mas exigia muita fiação para o meu gosto (preciso conectar segmentos por grupos de 4). Além disso, durante minha primeira experiência com dígitos de LED de 7 segmentos, fritei um: ele tinha 2 pinos de aterramento, mas conectei apenas um ao GND em vez de ambos :-(
Decidi então optar por um display de segmento 4x7, cátodo comum , com ânodos de segmento já conectados por 4 dígitos: são apenas 4 + 8 pinos!
Durante meus testes, encontrei uma biblioteca útil do Arduino para trabalhar com o MAX-7219 que decidi reutilizar. Eu construí minha própria biblioteca com uma API muito simples.
Após a integração, chegou a hora de tornar o design mais permanente; desde que eu tinha um monte de tiras na mão, decidi ir em frente.
Pesquisei e encontrei um designer de painel fácil para PC que usei para projetar minha placa.
O primeiro design do painel de controle não foi otimizado em termos de espaço e decidi não implementá-lo:
Depois, revi o design para otimizar o custo e o tamanho (apenas um pequeno painel de 50x75mm); isso foi fácil com o designer de tiras que encontrei antes:
Quando a placa ficou pronta, decidi verificar com um Arduino UNO e um sensor ultrassônico:
Parecia funcionar, exceto que muitas vezes eu tinha valores exibidos estranhos e inconsistentes; após investigação, descobri que era devido ao ruído acionado pela placa de vídeo, ruído que interferia no sensor. Eu só precisava adicionar uma tampa de desacoplamento o mais próximo possível dos pinos de alimentação atuais do sensor e isso funcionou perfeitamente (observe que a placa de vídeo já tinha tampas de desacoplamento para o chip MAX-7219).
Lista de peças:
Conclusão
30 anos após meus últimos experimentos em eletrônica, eu poderia pegar o vírus novamente com o Arduino e com esse primeiro projeto que, embora bastante simples, me ensinou várias coisas:
Se eu fosse começar esse projeto novamente hoje, eu:
fonte
Relógio de parede digital com controle remoto por radiofrequência (RF)
Um grande relógio de parede com display de 7 segmentos (40x30cm / 16x12 ") com controle remoto R / F.
Descrição
Este projeto apresenta um grande relógio de parede digital com display de 7 segmentos (40x30cm / 16x12 ") com controle remoto R / F. Ele possui os seguintes recursos:
desenhar
Os principais aspectos deste projeto foram os seguintes:
Abaixo estão os esquemas para o controlador e uma das placas de 7 segmentos:
Aqui estão algumas fotos das placas que eu projetei, gravei e montei e o controle remoto:
E, finalmente, aqui está uma foto de outra versão do relógio. Neste, estou fazendo os displays de 7 segmentos usando LEDs retangulares e componentes discretos.
Conclusão
Esse projeto levou muito tempo, esforço e aprendizado para chegar a esse estágio (nunca terminou, como eu aprendi), mas foi muito divertido. Algumas coisas que aprendi:
Estude todas as bibliotecas que você usará em seu projeto antes de atribuir pinos GPIO no seu controlador para evitar possíveis conflitos. Não tive a sorte de usar o mesmo pino PWM para controle de brilho associado ao temporizador VirtualWire, então tive que corrigir a placa para obter brilho e RF funcionando ao mesmo tempo.
O friso dos conectores KK molex e modu leva MUITO TEMPO !!
As peças de acrílico cortadas a laser são o futuro. Eles agregam muita qualidade ao dispositivo, mesmo que você seja desajeitado.
fonte
Rotador de antena de TV
Rotação de antena com controle remoto IR
Não consegue sair do sofá para ajustar a direção da antena da TV? E mesmo que você faça, algumas vezes a sua proximidade com a antena altera a recepção. Seria bom poder ajustar a antena do sofá. Usando o controle remoto da TV.
Componentes
Arduino Uno, receptor de infravermelho, motor de passo com placa de motorista, mancal de identificação 1 ", cabo de esfregona Swiffer, caixa de plástico,
Descrição
Use uma alça de esfregão Swiffer antiga como poste da antena. Consegui um rolamento de identificação de 1 pol. Na minha loja on-line favorita, na qual a alça da esfregona aperta e para. Furei um buraco na caixa de plástico grande o suficiente para que a alça da esfregona passasse, mas não para o mancal. orifício na extremidade da alça da esfregona para encaixar no eixo de um motor de passo 28BYJ-48 e prendeu a engenhoca na caixa, como mostrado. A alça da esfregona repousa sobre o rolamento e o rolamento é super colado na parte superior da caixa de plástico .
Utilizou a biblioteca stepper.h para girar o motor a partir de um Uno.
Desmontei um DVD player não utilizado e recuperei o receptor de infravermelho. Você pode desmontar qualquer aparelho de consumo que tenha um controle remoto e usar o receptor de infravermelho, ele funcionará. O receptor de IR usa a biblioteca IRremote.h. Usando o monitor serial, imprimi o código hexadecimal que correspondia aos dois botões no controle remoto da TV que desejo usar para operar o motor da antena. Um para girar para a esquerda, um para a direita.
Para economizar energia, use a função small_stepper.motorOff () para desligar as bobinas após cada movimento.
Conclusão
Este foi um projeto divertido que também foi útil para minha esposa. Não implementei nenhuma aceleração / desaceleração no movimento, o que pode ser bom, principalmente se a antena tiver mais inércia de rotação.
Edit: desculpe pela foto estar de lado! Está do lado certo no meu computador, não tenho idéia do porquê de estar online lateralmente.
fonte
A lâmpada bate à porta
Uma lâmpada que liga / desliga quando a mesa é batida. Atualmente em fase alfa, ainda com prototipagem, mas acho que é o projeto Arduino mais útil que existe. Gerador de brincadeira brega incluído ... de piadas knock-knock gravadas anteriormente. Nota: Eu sei que não posso ganhar nas regras, mas não há regra para entrar ... Também posso mostrar meu projeto.
Descrição
Até agora, expliquei praticamente tudo isso. Você bate e a luz acende e apaga. Atualmente, estou na tábua de pão. Estou usando um elemento piezo para detectar as batidas com vibrações. Paralelamente, tenho um resistor de 1 megaohm para proteger meu SMD do Arduino Uno.
Pensei nesse design depois de quase bater (haha punny) minha lâmpada da minha mesa enquanto procurava o pequeno interruptor. Eu não sou exatamente ... bem hábil . É bom bater na mesa e depois acender a luz. Também estou usando um SSR de comutador de força (relé de estado sólido: sem ruído) para controlá-lo com dois pinos do meu Arduino.
desenhar
Imagem tirada com a webcam em cima do monitor ... eek!
Componentes usados para construir o projeto:
Custo para mim: $ 3,30 USD + $ 0,02 USD (imposto) == Apenas $ 3,32!
Conclusão
No geral, é um projeto simples, mas é realmente útil. Essa é uma luta com meus projetos do Arduino: posso criar algo que realmente usaria ? Piscando um LED não vai exatamente ajudá-lo na vida. É divertido, mas é sobre isso.
O maior problema que eu enfrentei (e meio que ainda enfrento) não está recebendo um sinal suficientemente forte. Aprendi muito sobre sinais elétricos: descobri como encontrar o "pico" de um pulso e não apenas ler o pino em um intervalo aleatório e perder a voltagem mais alta. Eu tentaria obter um elemento piezo mais sensível. Um maior ajudaria. Estou tentando modificar meu circuito para não limitar tanto a tensão, mas proteger o Arduino. Algum tipo de fusível ajudaria nessa situação. Eu também estou brincando com valores de resistores. Ajudaria muito ter um escopo para isso, mas acho que não ...: P
Depois de aperfeiçoar o circuito, vou trabalhar em um PCB com um ATtiny ... e talvez até desenvolver alguns kits. Tentarei publicar minhas descobertas sobre como tornar o elemento mais sensível sem arriscar minha diretoria no processo.
Atualização de status: tenho estado muito ocupado recentemente. Vou pedir um diodo zener (4.3V) aqui em uma semana ou duas para remover o resistor de megaohm para evitar diluir o sinal enquanto protege o chip. Posso construir um simples amplificador de tensão aqui, se necessário (ao lado do zener) para tentar tornar o sensor mais sensível.
fonte
- Aprenda a criar seus próprios sensores sem fio de baixo custo e conectá-los ao mundo.
http://www.mysensors.org
Nós chamamos isso "Internet das Suas Coisas"
Descrição
Combinamos a plataforma Arduino com um pequeno transceptor de rádio em um mundo divertido e flexível de sensores sem fio de baixo custo.
Todos os detalhes minuciosos sobre a comunicação do sensor foram agrupados em uma biblioteca de software conveniente, para que você não precise se preocupar com eles.
É tão fácil quanto 1, 2, 3.
Leia mais sobre como a rede de sensores está sendo formada automaticamente usando nossa Biblioteca Arduino no site. Basicamente, forma uma rede em estrela e pode atingir centenas de metros.
No meio, você coloca um gateway Arduion ou Raspberry que coleta as informações dos seus sensores.
Projeto e esquemas
Aqui está um dos protótipos de sensores de movimento que criei para controlar a luz do jardim fora de minha casa. O status dos movimentos é enviado para o meu controlador HA, que acende a luz (via onda z) quando o movimento é detectado. Um sensor de luz (não na imagem) garante apenas a iluminação noturna.
Você encontrará todas as instruções de compilação aqui: http://www.mysensors.org/build/
Também existem outras instruções de construção fáceis de seguir para muitos outros sensores e atuadores sem fio. aqui estão alguns exemplos:
Sensor de distância, sensor de movimento, atuador de relé, umidade, luz, pressão, chuva, temperatura, ...
Conclusão
O projeto ainda está nos blocos de partida e esperamos fornecer plug-ins para uma lista crescente de controladores de automação residencial. A primeira coisa em nossa lista agora é fornecer um controlador DIY que fornece armazenamento em nuvem gratuito para os dados do sensor.
Até mais @ mysensors.org
/ Henrik Ekblad (o criador da Biblioteca Arduino de código aberto usada para a comunicação entre os sensores)
fonte
Caixa serial
Um monitor serial portátil em uma caixa
Descrição
Às vezes, é útil para um dispositivo (Arduino ou outro) gerar algumas informações de depuração via serial. Isso é ótimo se você tiver um computador em mãos com uma entrada serial apropriada. No entanto, esse nem sempre é o caso por vários motivos.
Este projeto é minha tentativa de resolver esse problema criando um monitor serial portátil alimentado por Arduino, que eu posso conectar a outros dispositivos no campo.
Por padrão, ele simplesmente exibirá o texto em um formato de rolagem; ou seja, o texto aparece na linha inferior e tudo sobe para abrir espaço quando mais chega. Isso significa que ele deve funcionar muito bem com todos os tipos de dispositivos genéricos. No entanto, também será possível usar seqüências de escape para controlar a tela com mais precisão, para que os dispositivos também possam ser programados especificamente para tirar proveito de seus recursos.
desenhar
O design consiste em um conjunto de 4 displays LCD alfanuméricos (16x2 caracteres cada), alinhados em uma caixa semelhante a esta:
Os monitores são da Epson EAX16027AR, que infelizmente não são compatíveis com o driver Hitachi HD44780 padrão. Como tal, tive que escrever minha própria biblioteca para eles.
Eu escolhi usar esses monitores (em vez de, por exemplo, um monitor grande) principalmente porque eu os tinha por aí e queria fazer algo interessante com eles. Eu também pensei que seria bastante útil poder controlar cada monitor independentemente para alguns aplicativos (por exemplo, exibir informações diferentes sobre cada um).
Em termos de design de circuito, os monitores são conectados em paralelo, com pinos de seleção de chip sendo usados para direcionar dados / comandos para cada um, conforme necessário.
Um ATMega328 será o cérebro da unidade final, com os dados seriais provenientes de uma linha de nível TTL (para conectar diretamente ao TX de um MCU semelhante) ou, opcionalmente, de um soquete D-sub RS232 de 9 pinos (para conectar ao vários outros sistemas). A unidade também terá um botão de contraste, um botão para limpar a tela e um botão para iniciar o modo de autoteste. No futuro, gostaria de adicionar botões que também permitem ao usuário percorrer um histórico de rolagem.
Abaixo está um layout de circuito muito preliminar (tive muitos problemas para que o Fritzing jogasse bem por algum motivo!). Ele inclui um registro de turno SIPO de 8 bits para acionar as linhas de dados dos LCDs, mostradas em verde. Você também pode ver as linhas de seleção de chips em laranja.
No momento, o projeto ainda está no estágio de protótipo de trabalho, conduzido a partir de uma placa Uno (clone). Abaixo, você pode ver uma foto em ação, exibindo o texto que foi passado via serial do meu computador.
Código fonte
Estou disponibilizando minha biblioteca de LCD no GitHub no link abaixo. Observe que está em um estágio inicial de desenvolvimento. Em um futuro próximo, pretendo torná-lo muito mais semelhante à biblioteca principal do LiquidCrystal, para facilitar a transição entre as duas.
Você pode encontrar algum código básico para o meu protótipo da Serial Box na pasta "examples".
Conclusão
Eu acho que o projeto está indo muito bem e fiquei extremamente satisfeito por fazer o protótipo funcionar. Meu principal desafio será montar tudo em uma caixa. Eu já comecei a cortar furos adequados para as telas, mas não sou muito experiente nesse tipo de coisa e estou achando bastante complicado alinhar tudo.
Eu vou chegar lá no final. Apenas pode não parecer muito bonito quando eu terminar! :)
fonte
Controlador de aquecimento
Você sabe como é - você define o aquecimento para ligar em um determinado momento e quantos dias você trabalha até tarde e ele está em pleno funcionamento por horas, ou você sai por alguns dias e esquece de desligá-lo? Ou a rara ocasião em que você chega em casa cedo e a casa está fria? Decidi que a maneira mais simples de contornar isso era construir um dispositivo que me permitisse ligar ou desligar o aquecimento por mensagem de texto / sms. Seria além do sistema de controle existente, para não perder a flexibilidade que isso pode proporcionar.
O projeto consiste em algumas partes principais: um clone do Arduino Uno, um escudo GSM Seeedstudio, um sensor de temperatura DHT22 e um SSR de 25 amp.
Como funciona:
Os controles de aquecimento existentes estão definidos como 'Desligados' e o novo controlador é conectado para substituí-los. O Uno está programado para responder a três mensagens diferentes - Ativado, Desativado e Consulta. No caso deste último, a unidade lerá o DHT22 e responderá ao remetente com a temperatura atual e o status da unidade (ativado ou desativado). Se o comando estiver Ativado ou Desativado, ele responderá com uma confirmação da ação executada. Depois que as mensagens são postas em ação, elas são excluídas; quaisquer mensagens que não estejam em conformidade com a estrutura de mensagens específica são deixadas na memória do cartão SIM e podem ser examinadas mais tarde, se desejado.
A energia da unidade é fornecida por uma fonte de alimentação de cinco volts e três ampères. Como os pinos de energia do Arduino estão simplesmente expondo o barramento interno de 5V da placa, decidi alimentar o conjunto através deles e configurar o escudo para extrair energia do Arduino.
A unidade possui três LEDs de status. Um verde para indicar que há energia, um azul para indicar que a placa GSM está "ativa" e uma vermelha para indicar o status do aquecimento. Estes são um complemento aos LEDs de status fornecidos no Arduino e na blindagem. Há também um botão de pressão que permite o controle manual do aquecimento, com um capacitor de 100nF para lidar com o retorno.
Próximo:
Grande parte do código depende de um bom atraso antigo () para dar ao escudo tempo suficiente para executar suas ações. Eu pretendo melhorar o código para que ele aguarde confirmação do escudo, em vez de assumir que ele fez o que foi solicitado dentro do tempo alocado! Também adicionarei um recurso 'ainda vivo' - em intervalos fixos, apague o LED azul, envie o comando AT para o escudo e, em um aviso, acenda o LED novamente. A blindagem está sob controle de software; portanto, se ela não responder, desligue-a e ligue-a novamente.
Todo o conjunto deve ser montado em um gabinete adequado e montado adjacente ao controlador existente. Eu tenho um interruptor de botão iluminado internamente que usarei em vez de um interruptor separado e um LED vermelho para lidar com a substituição.
A longo prazo, planejo adicionar um RTC, um LCD de 20 x 4 e botões adicionais para permitir que a unidade seja programada e funcione como uma chave horária.
A prototipagem já começou!
Conclusão.
Há algo um pouco decadente em acordar em um dia frio de inverno, enviar uma mensagem de texto / sms para ligar o aquecimento, rolar e voltar a dormir por uma hora! E quando você perceber que não a desligou em uma noite, poderá fazê-lo no conforto da sua cama!
fonte