Índice:
- Etapa 1: Lista de peças e impressão 3D
- Etapa 2: Montagem
- Etapa 3: Programação
- Etapa 4: dicas e truques bônus
Vídeo: ARCA (adorável Android com controle remoto): 4 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Este instrutível foi criado em cumprimento ao requisito do projeto do Makecourse na University of South Florida (www.makecourse.com).
ARCA é um adorável Android com controle remoto que é incrivelmente divertido de construir e brincar. O objetivo deste projeto era criar algo que qualquer pessoa pudesse entender e se relacionar, criando um robô que seja adorável e funcional.
O robô funciona exibindo diferentes emoções em uma matriz de 8 por 8 LED, essas emoções incluem alegria, sono, amor, raiva, bobagem e olhar para cima, para a esquerda e para a direita. O robô também opera como um carro RC e pode ir para a frente e virar à esquerda ou à direita. O robô avança ativando os dois motores das rodas, vira para a esquerda ao ligar o motor direito e vira à direita ligando o motor esquerdo. O design é muito simplista, mas funciona, e eu queria me concentrar muito na programação do Arduino, já que sou um programador de coração.
As versões mais recentes de todos os arquivos usados neste tutorial podem ser encontradas em meu Github ARCA Repository.
Etapa 1: Lista de peças e impressão 3D
As peças para este projeto podem ser impressas em 3D ou adquiridas online. Ao pensar na montagem, quis fazer da eficiência a chave e também tentar não (literalmente) reinventar a roda. A impressora 3D usada para este projeto foi uma Makerbot Replicator, se você quiser ter certeza de que suas impressões 3D são consistentes com as minhas, use esta impressora.
Componentes estruturais
- Caixa com furos nas laterais para as rodas e braços
- Tampa da caixa com orifícios para as rodas traseiras e um orifício para o sensor IR
- Braço esquerdo
- Braço direito
- Eixo para as duas rodas traseiras
- dois conectores de eixo para conectar a tampa ao eixo
- 4 rodas (motores também incluídos neste link)
- Parafusos pequenos (para encaixar nos motores)
Componentes elétricos
- Arduino Uno
- Placa de ensaio pequena (comprei o kit Arduino e veio com ele)
- Duas matrizes de pontos vermelhos MAX7219 com controle MCU
- Receptor infravermelho e remoto
- Dois transistores TIP 120
- Fios de conexão (usei muitos fios macho para fêmea, bem como macho para macho, e recomendo usar fios longos em vez de fios curtos)
- um resistor de 220 ohms
- Dois motores de engrenagem
- Pacotes de energia conectáveis por USB (os portáteis usados para telefones celulares)
Etapa 2: Montagem
Montagem Estrutural
As peças impressas em 3D provavelmente precisarão de alguma limpeza, e eu recomendo lixá-las com um grão fino e usar acetona (removedor de esmalte) para remover qualquer resíduo de cola usado no processo de impressão 3D. Algumas das peças podem não se encaixar perfeitamente, e foi necessário lixar o eixo para que ficasse perfeitamente redondo e se encaixasse corretamente nos orifícios.
As rodas precisam de alguns pequenos ajustes, precisam ser mais furadas para se ajustarem às dimensões do eixo na parte traseira e dos parafusos na frente. Use uma broca de 6 mm para perfurar os orifícios nas rodas para fazer orifícios maiores nas rodas.
Para esta montagem usei uma variedade de colas, mas descobri que o concreto líquido (cola de modelagem) era o melhor para segurar apesar do longo tempo de secagem, mas o epóxi era melhor para coisas que você precisa secar rapidamente e segurar bem, apesar de estar bagunçado.
O resto da montagem é bastante simples:
- Anexe os suportes do eixo na parte traseira da tampa da caixa, usando epóxi para selar
- Execute o eixo através dos suportes de eixo
- Cole as rodas no eixo usando concreto líquido
- Passe os braços pelos orifícios superiores e cole no suporte do braço usando epóxi
- Enrosque a tampa da caixa na caixa
- Use fita isolante na parte inferior da caixa onde as rodas estão
Montagem Elétrica
As rodas dianteiras são presas diretamente aos motores e você precisa usar um pequeno parafuso no motor para torná-lo longo o suficiente para passar pelo orifício do robô em cada lado. Deve haver um pequeno orifício no pino giratório do motor e você pode aparafusar o parafuso lá e colar a cabeça do parafuso na roda depois de empurrar o parafuso através do orifício na caixa.
A parte de trás da minha placa de ensaio tinha um suporte adesivo, mas você pode usar fita isolante para colá-la, se a sua não tiver. Fita isolante também foi usada para prender os componentes elétricos que não estavam na placa, por razões de segurança. Os MCUs com os visores de LED foram presos na parte de trás das órbitas com fita isolante e os motores também foram presos nas laterais da caixa perto dos orifícios com fita isolante. Usei fita isolante vermelha para torná-lo mais invisível, por precaução, e recomendo usar fita isolante de cor semelhante à sua versão do ARCA.
A placa de ensaio e os pinos são configurados como esta imagem de Fritzing. Se você quiser adicionar mais a este diagrama para personalizar o ARCA, você pode baixar o arquivo Fritzing em meu repositório Github e editá-lo como quiser.
Prendi os fios aos laços nos motores de engrenagem dobrando os fios ao redor dos laços, para mantê-los presos. Provavelmente seria uma ideia melhor soldar essas conexões se você tiver acesso ao ferro de soldar, mas esta é uma solução fácil se você não tiver um.
O pacote de força é conectado ao mesmo cabo usado para conectar o Arduino ao computador para fazer o download do seu programa, e este é apenas solto no robô para que possa ser facilmente removido e carregado.
Etapa 3: Programação
Aqui está o código que você pode carregar em seu ARCA para que funcione exatamente como o meu. Você também precisa das duas bibliotecas a seguir para usar o código.
Para fins de clareza e personalização, no entanto, vou orientá-lo no meu código. Sinta-se à vontade para pular esta etapa se não estiver personalizando seu robô ou não planeja mudar suas emoções.
Primeiro, incluo duas bibliotecas para uso em meu código, permitindo-me usar as funções e objetos dessas bibliotecas. Também estou definindo meus pinos aqui. Se você decidiu fazer seus pinos diferentes da minha configuração na etapa anterior, faça as alterações em seu código aqui com os pinos adequados.
A seguir, defini as emoções, declarei os objetos necessários para o sensor IR e os visores de LED 8 por 8 e defini algumas variáveis globais. As emoções são declaradas em uma matriz de bytes, onde cada um dos números hexadecimais na matriz representa as linhas na exibição 8 por 8 resultante. Para criar suas emoções personalizadas, recomendo desenhar a emoção que você queria em uma grade de 8 por 8 e, em seguida, escrever cada linha de número binário de 8 bits onde a luz apagada é um 0 e a luz acesa é um 1 e, em seguida, crie um número hexadecimal daí e coloquei em uma matriz de comprimento 8. Também defini algumas variáveis globais para usar no loop; as variáveis para o mecanismo de piscar e os indicadores para armazenar as emoções e defini-las para começar do ponto morto.
Agora chegamos ao loop de configuração, onde eu ligo o monitoramento serial para fins de teste, e isso deve ser útil para testar seu código com diferentes controles remotos IR. Em seguida, inicializei os objetos do olho esquerdo e direito usando funções da biblioteca de controle de LED. Também defini os pinos do motor de engrenagem para saída e iniciei o receptor IR.
No loop, ele essencialmente espera que o sinal de infravermelho mude o status quo do robô. Portanto, se um sinal de infravermelho for recebido e corresponder a um dos códigos de um botão específico, essa instrução if é acionada e define os valores do olho esquerdo e direito de acordo com as emoções. Se um botão de movimento for pressionado, como esquerda, direita, para frente e OK, os pinos são gravados digitalmente para serem ativados ou desativados, dependendo do botão pressionado. Apenas uma nota sobre os códigos do receptor IR: existe um código de amostra na biblioteca remota IR que lhe dará os códigos hexadecimais para o seu controle remoto, se nada estiver acontecendo quando você apertar os botões, abra este programa para se certificar de que os códigos estão corretos. Tudo o que você precisa fazer é alterar o número hexadecimal que acompanha cada botão.
Por fim, você tem a função que imprime as emoções nos displays 8 por 8. Isso usa as funções setRow da biblioteca de controle de LED e apenas percorre as matrizes que você criou e define as linhas de acordo. Recebe dois parâmetros: o array para o olho esquerdo e o array para o olho direito. Pode ser um ponteiro de bytes ou uma matriz de bytes (ou seja, o nome "neutro") que atua como um ponteiro.
Etapa 4: dicas e truques bônus
Certamente aprendi muito durante este projeto e gostaria de compartilhar algumas dicas adicionais aqui que se aplicam a este projeto e a outros projetos usando um Arduino.
- Existem muitos recursos online para o Arduino e os mais úteis, na minha opinião, vêm do site do Arduino, devido aos seus exemplos de código claros e concisos.
- Não reinvente a roda, pois há muitos kits e peças pré-construídas que você pode usar para tornar seu projeto mais fácil. Eu sou um programador e não um engenheiro mecânico e tive dificuldade em descobrir como faria esse robô funcionar, mas foi fácil encontrar algo para comprar online e implementá-lo em meu projeto em vez de literalmente reinventar o roda
- As bibliotecas são suas amigas no Arduino, bem como em todas as linguagens orientadas a objetos, e existem por uma razão. Emparelhe isso com microcontroladores e programar um LED de 8 por 8 é simples. Eu programei um desses manualmente antes e apenas um usa cerca de cada pino no Arduino e requer uma tonelada de código. Muito bagunçado e não muito divertido.
- As impressoras 3D são legais, mas não perfeitas, e não há problema em ter que lixar algumas coisas. Você prefere ir maior ao imprimir em 3D por esse motivo, porque na maioria dos casos você pode lixar um pouco para obter o ajuste perfeito.
- A energia pode ser um problema porque pensei no uso de energia realmente no último minuto e pensei que uma bateria de 5v resolveria o problema. Então, aparentemente de forma aleatória, às vezes um motor ou um display LED não funcionava. Depois de atualizar para o pacote de energia, não houve mais problemas, apesar de ser mais volumoso dentro do robô.
Recomendado:
O controle remoto da TV se torna um controle remoto de RF -- NRF24L01 + Tutorial: 5 etapas (com imagens)
O controle remoto da TV se torna um controle remoto RF || NRF24L01 + Tutorial: Neste projeto vou mostrar como usei o popular IC nRF24L01 + RF para ajustar o brilho de uma faixa de LED sem fio por meio de três botões inúteis de um controle remoto de TV. Vamos começar
Kit de controle remoto comum transformado em controle remoto de brinquedo RC de quatro canais: 4 etapas
Kit de controle remoto comum transformado em controle remoto de brinquedo RC de quatro canais:改造 方法 非常 简单。 只需 准备 一些 瓦楞纸 板, 然后 按照 视频 教程 完成 这个 电子 项目 并 为 您 服务。 玩具 车船 提供 远程 无线 控制。
Converta seu controle remoto IR em RF remoto: 9 etapas (com imagens)
Converta seu Remoto IR em Remoto RF: No Instructable de hoje, vou mostrar como você pode usar um módulo RF genérico sem um microcontrolador, o que nos levará a construir um projeto onde você pode converter um Remoto IR de qualquer dispositivo em um RF Controlo remoto. A principal vantagem de converter um
Controle seus aparelhos elétricos com seu controle remoto de TV (ir remoto) com display de temperatura e umidade: 9 etapas
Controle seus aparelhos elétricos com o controle remoto da TV (ir remoto) com visor de temperatura e umidade: oi, sou Abhay e é meu primeiro blog no Instructables e hoje vou mostrar como controlar seus aparelhos elétricos com o controle remoto da TV construindo este projeto simples. obrigado ao atl lab pelo apoio e fornecimento do material
Controle remoto remoto: 11 etapas (com imagens)
Controle remoto remoto: Eu tenho um bebê recém-nascido e ele não acha que deveria dormir tanto quanto minha esposa e eu poderíamos desejar que ele também. Uma coisa que o deixa feliz no berço é o móbile que fica pendurado sobre ele. Então, quando ele acordar, precisaremos de mais 25 minutos ou mais de sl