Robô da LEGO e Arduino, evitando obstáculos





Adoramos LEGO e Crazy Circuits [componentes eletrônicos compatíveis com LEGO / aprox. trad.], então decidimos combiná-los em um robô simples e interessante que pode evitar obstáculos. Mostraremos como montar esse robô e descreveremos o processo em detalhes. Sua versão do robô pode não ser exatamente igual à nossa.



Aqui está uma lista dos componentes eletrônicos e peças LEGO necessários. Sinta-se à vontade para fazer experiências com eles.















Componentes



Eletrônicos





Para nosso projeto, selecionamos uma pequena fonte de alimentação externa que se encaixa perfeitamente em nosso robô. Você pode ter que projetar seu próprio para sua fonte de alimentação externa ou para um conjunto de baterias.



Lego



Usamos vários detalhes, mas recomendamos que você faça como achar adequado e com base no que tiver em mãos. É importante que você tenha uma maneira de conectar os servos na parte inferior, o sensor ultrassônico de forma que ele olhe para frente e, de alguma forma, prenda a placa e a fonte de alimentação. Para fazer isso, você pode usar fita dupla-face, elásticos, velcro. Existem links para nossas peças na loja BrickOwl, no entanto, você pode comprá-los onde LEGO e conjuntos compatíveis são vendidos.





Etapa 1: construir o chassi LEGO







Começamos com uma placa LEGO 6 × 12, que era o tamanho mínimo com o qual estávamos satisfeitos. Você pode usar um maior, mas menor já será mais difícil.



A largura do robô foi ditada pela fonte de alimentação externa que tínhamos disponível, uma vez que precisávamos da capacidade de deslizá-lo no lugar. Uma bateria maior exigirá um robô maior.



O chassi deve ser alto o suficiente para acomodar a bateria e a placa na parte superior.



Etapa 2: adicionar rodas































Cada servo deve ser colocado embaixo do chassi. Como resultado, precisamos dos seguintes componentes:



  • Eixo 4 LEGO com tampão (87083)
  • Hub LEGO (32123/42136)
  • Tijolo redondo de LEGO 2 x 2 (3941/6143)


Para consertar dois motores, você precisa de 4 peças de cada um dos componentes. Depois de prendê-los, adicione uma roda: LEGO Wedge Belt Wheel (4185/49750).



Tal como acontece com outros modelos LEGO, existem inúmeras opções! Obtivemos sucesso com os componentes que listamos, mas você pode tentar outra coisa.



Etapa 3: adicione o vídeo



















Nosso rolo permite que o robô role em um avião sobre duas rodas motorizadas, atuando como uma terceira roda - isso torna mais fácil para o robô girar e se mover.



Para protegê-lo, os seguintes detalhes foram necessários:



  • LEGO EV3 Technic Ball Pivots Set 5003245
  • LEGO Technic Cross Block Beam 3 com quatro pinos (48989/65489)
  • LEGO Technic Brick 1 x 6 com furos (3894)


Na versão anterior, usamos apenas peças de Lego redondas para a "perna" e funcionou bem em uma superfície lisa. Mas não funcionou em carpete ou piso não liso. Se você não tem um rolo, considere usar esta "perna".



Etapa 4: adicionar um sensor de distância















O sensor ultrassônico de distância deve ser fixado na frente do robô para que ele “veja” para onde está indo e entenda quando parar para não colidir com um obstáculo.



Para o sensor, imprimimos em 3D uma caixa compatível com LEGO. O modelo está postado em Thingiverse: www.thingiverse.com/thing : 3171004



Se você não tem uma impressora 3D, descubra como segurar o sensor usando peças de LEGO, fita adesiva, elásticos, abraçadeiras , etc. É importante que ele olhe para frente - para onde o robô está indo quando se move para frente.



Etapa 5: adicionar a placa



















A taxa é o cérebro de toda a operação. Ele fica em cima de tijolos de LEGO, por isso é fácil de anexar.



Normalmente, a placa de robótica é usada em conjunto com uma fita condutora que permite mexer em circuitos elétricos diretamente na parte superior do LEGO, mas como temos apenas dois motores e um sensor de distância, eles podem ser conectados diretamente aos pinos na placa.



Colocamos a placa de forma que o cabo de alimentação USB seja fácil de conectar. Tivemos a sorte de encontrar um cabo USB muito curto no decodificador.



Agora você pode conectar o sensor e os motores!



Para o sensor: o conector de eco deve ser conectado ao pino 3 da placa, o conector do gatilho ao pino 5, VCC a 5 V, Gnd a GND. Assim, o sensor receberá energia e se comunicará com a placa.



Então você precisa conectar cada um dos motores. É fácil de fazer - fios marrons para GND, fios vermelhos para 5V, fios laranja para D6 para o motor esquerdo e D9 para o direito.



Etapa 6: programe a placa de robótica







Antes que o robô possa funcionar, o código deve ser carregado no microcontrolador. Antes de fazer isso, certifique-se de ter a versão mais recente do Arduino IDE instalada em seu computador . Carregamos



nosso código para o repositório no GitHub:



github.com/BrownDogGadgets/CrazyCircuits/tree/master/Projects/Avoidance%20Robot



O código é simples, há muitos comentários nele para deixar claro o que é responsável por quê.



Você também precisará da biblioteca



NewPing bitbucket.org/teckel12/arduino-new-ping/wiki/Home



Etapa 7: deixe o robô andar















Depois de construir um robô e carregar o código nele, você pode prosseguir para os testes!



A maneira mais fácil é conectar uma fonte de alimentação externa e deixar o robô seguir em frente. Se você colocar sua mão na frente dele, ele terá que se mover para trás, se virar e avançar novamente (certifique-se de que ele não saia da mesa!)



. Construímos uma "arena" hexagonal simples de papelão para que o robô tivesse um lugar para andar. Não tenha medo de experimentar o que você tem.



Etapa 8: desenvolvimento adicional











Se você está interessado em desenvolver este projeto, aqui ficam as perguntas para você:



- O que você aprendeu ao montar o robô?

- o que influenciou sua escolha de peças?

- O robô irá mais rápido se suas rodas forem aumentadas?



Existem duas variáveis ​​no código, corrigindo-as, você alterará a hora em que o robô faz o rollback quando um obstáculo é detectado e a hora em que ele gira. Experimente trocar goBackwardTime e turnRightTime e veja como isso afeta o comportamento do robô.



//     

int goBackwardTime = 1000;

//    

int turnRightTime = 1000;




Veja também:






All Articles