- Materiais requisitados:
- Impressão 3D das peças necessárias:
- Hardware e esquemas:
- Montando o robô:
- Programando o Arduino para o robô bípede:
- Aplicativo para Android baseado em processamento:
- Funcionamento do robô bípede controlado por Bluetooth:
Bem-vindo a mais um projeto em que construiremos um pequeno robô que pode andar e dançar. O projeto tem como objetivo ensinar como fazer pequenos robôs de hobby usando Arduino e como programar seus servo motores para tais aplicações. Ao final do projeto você poderá fazer este robô que anda e dança que recebe o comando de um celular Android para realizar algumas ações pré-definidas. Você também pode usar o programa (fornecido no final do tutorial) para manipular facilmente as ações do seu próprio robô, controlando a posição dos servo motores usando o monitor serial. Ter uma impressora 3D tornará este projeto mais interessante e legal. Mas, se você não tiver um, pode usar qualquer um dos serviços online ou apenas usar um pouco de papelão para construir o mesmo.
Materiais requisitados:
A seguir estão os materiais necessários para construir este robô:
- Arduino nano
- Servo SG90 - 4Nos
- Palitos de berg machos
- Módulo Bluetooth HC-05 / HC-06
- impressora 3d
Como você pode ver, este robô impresso em 3D requer um mínimo de peças eletrônicas para ser construído para manter o custo do projeto o mais baixo possível. Este projeto tem apenas um propósito conceitual e lúdico e ainda não possui nenhuma aplicação em tempo real.
Impressão 3D das peças necessárias:
A impressão 3D é uma ferramenta incrível que pode contribuir muito na construção de projetos de protótipos ou na experimentação de novos designs mecânicos. Se você ainda não descobriu os benefícios de uma impressora 3D ou como ela funciona, pode ler o Guia para iniciantes em impressão 3D.
Neste projeto, o corpo do robô mostrado acima é totalmente impresso em 3D. Você pode baixar os arquivos STL aqui. Carregue esses arquivos em seu software de impressão 3D como o Cura e imprima-os diretamente. Usei uma impressora muito básica minha para imprimir todas as peças. A impressora é FABX v1 da 3ding que tem um preço acessível com um volume de impressão de 10 cm cúbicos. O preço barato vem com uma compensação com baixa resolução de impressão e nenhum cartão SD ou função de retomada de impressão. Estou usando um software chamado Cura para imprimir os arquivos STL. As configurações que usei para imprimir os materiais são fornecidas abaixo, você pode usá-las ou alterá-las com base na sua impressora.
Depois de imprimir todas as peças, limpe os suportes (se houver) e verifique se os orifícios na perna e na barriga são grandes o suficiente para acomodar um parafuso. Caso contrário, use uma agulha para aumentar ligeiramente o orifício. Suas peças impressas em 3D terão a aparência abaixo.
Hardware e esquemas:
O Hardware para este Robô Arduino Bípede Controlado por Telefone Móvel é realmente simples. O esquema completo é mostrado na imagem abaixo
Usei uma placa Perf para fazer as conexões acima. Certifique-se de que seu circuito também caiba dentro da cabeça do robô. Assim que a sua placa Perf estiver pronta, ela deve se parecer com a seguinte.
Montando o robô:
Assim que o Hardware e as peças impressas em 3D estiverem prontas, podemos montar o robô. Antes de consertar os motores certifique-se de posicionar os motores nos ângulos abaixo para que o programa funcione perfeitamente.
Número do motor |
Lugar de motor |
Posição do motor |
1 |
Motor do quadril esquerdo |
110 |
2 |
Motor do quadril direito |
100 |
4 |
Motor do Tornozelo Direito |
90 |
5 |
Motor do quadril direito |
80 |
Esses ângulos podem ser definidos usando o programa fornecido no final do tutorial. Basta fazer o upload do programa para o seu Arduino após fazer as conexões acima e digitar o seguinte no monitor serial (Nota: a taxa de transmissão é 57.600).
1, 100, 110
2,90.100
4,80,90
5,70,80
Seu monitor serial deve ficar parecido com isto depois de colocar todos os seus motores em posição.
Assim que os motores estiverem ajustados nos ângulos correspondentes, monte-os conforme mostrado na figura acima.
Se você está confuso sobre como montar os motores, siga o vídeo no final deste tutorial. Assim que o robô estiver montado, é hora de programar nosso robô dançante
Programando o Arduino para o robô bípede:
Programar o robô BBB ( Bluetooth Biped Bob ) é a parte mais interessante e divertida deste tutorial. Se você é muito bom em programar servo motores com Arduino, eu recomendo que você faça seu programa. Bt, se você quiser aprender como usar servo motores para aplicações robóticas como esta, então este programa será muito útil. Você pode aprender mais sobre a programação do arduino em nossa categoria de projetos do arduino.
O programa completo é fornecido no final deste tutorial, ou você pode baixar o código completo aqui. Vou explicar os segmentos do mesmo abaixo. O programa é capaz de controlar as ações dos Robôs através de monitor serial ou Bluetooth. Você também pode fazer seus próprios movimentos controlando cada motor individual usando o monitor serial.
servo1.attach (3); servo2.attach (5); servo4.attach (9); servo5.attach (10);
As linhas de código acima são utilizadas para mencionar qual servo motor está conectado a qual pino do Arduino. Aqui, em nosso caso, os Servo 1,2,4 e 5 são conectados aos pinos 3,5,9 e 10, respectivamente.
Bot_BT.begin (9600); // inicia a comunicação Bluetooth em 9600 baudrate Serial.begin (57600);
Como dito anteriormente, nosso robô ambulante pode trabalhar com comandos Bluetooth e também com comandos do monitor serial. Portanto, a comunicação serial Bluetooth funciona com uma taxa de bauds de 9600 e a comunicação serial funciona com uma taxa de bauds de 57600. O nome do nosso objeto Bluetooth aqui é “Bot_BT”.
switch (motor) {case 1: // Para motor one {Serial.println ("Executing motor one"); if (num1
A caixa da chave mostrada acima é usada para controlar os servo motores individualmente. Isso ajudará a fazer seus próprios movimentos criativos com seu robô. Com este segmento de código, você pode simplesmente dizer o número do motor, do ângulo e do ângulo, para fazer um determinado motor se mover para um local desejado.
Por exemplo, se quisermos mover o motor número 1, que é o motor do quadril esquerdo, de sua localização padrão de 110 graus para 60 graus. Podemos simplesmente escrever “1.110,60” no monitor serial do Arduino e pressionar Enter. Isso será útil para fazer seus próprios movimentos complexos com o seu robô. Depois de experimentar todos os ângulos e ângulos, você pode fazer seus próprios movimentos e repeti-los tornando-os uma função.
if (Serial.available ()> 0) // Lê o que está chegando por meio de Serial {gmotor = Serial.parseInt (); Serial.print ("Número selecionado->"); Serial.print (gmotor); Serial.print (","); gnum1 = Serial.parseInt (); Serial.print (gnum1); Serial.print ("grau,"); gnum2 = Serial.parseInt (); Serial.print (gnum2); Serial.println ("grau"); bandeira = 1; }
Se um dado de série estiver disponível, o número antes do primeiro “,” é considerado gmotor e então o número antes do segundo “,” é considerado gnum1 e o número depois do segundo “,” é considerado gnum2.
if (Bot_BT.available ()) // Lê o que está chegando por Bluetooth {BluetoothData = Bot_BT.read (); Serial.print ("Entrada de BT:"); Serial.println (BluetoothData); }
Se o Bluetooth receber alguma informação, a informação recebida é armazenada na variável “BluetoothData”. Essa variável é então comparada aos valores predefinidos para executar uma ação específica.
if (flag == 1) call (gmotor, gnum1, gnum2); // chama o respectivo motor para a ação // Executa as funções de acordo com a comunicação recebida pelo monitor Serial ou Bluetooth // if (gmotor == 10) left_leg_up (); if (gmotor == 11) right_leg_up (); if (gmotor == 12) move_left_front (); if (gmotor == 13) move_right_front (); if (BluetoothData == 49 - gmotor == 49) say_hi (); if (BluetoothData == 50 - gmotor == 50) walk1 (); if (BluetoothData == 51 - gmotor == 51) walk2 (); if (BluetoothData == 52 - gmotor == 52) dance1 (); if (BluetoothData == 53 - gmotor == 53) dance2 (); if (BluetoothData == 54 - gmotor == 54) {test (); test (); test ();}
É aqui que as funções são chamadas com base nos valores recebidos do monitor serial ou do Bluetooth. Conforme mostrado acima, a variável gmotor terá o valor do monitor serial e BluetoothData terá o valor do dispositivo Bluetooth. Os números de 10,11,12 até 53,54 são números predefinidos.
Por exemplo, se você inserir o número 49 no monitor serial. A função say_hi () será executada e o robô acenará para você um oi.
Todas as funções são definidas dentro da página “Bot_Functions”. Você pode abri-lo e ver o que realmente acontece dentro de cada função. Todas essas funções foram criadas experimentando-se desde o anjo até o anjo de cada motor usando a caixa de chave explicada acima. Se você tiver alguma dúvida, pode usar a seção de comentários para postá-los e ficarei feliz em ajudá-lo.
Aplicativo para Android baseado em processamento:
O aplicativo Android para controlar o robô foi construído usando o modo de processamento Android. Se você quiser fazer algumas alterações no aplicativo, pode baixar o programa de processamento completo aqui.
Se você simplesmente deseja usar o aplicativo, pode baixá-lo aqui como um arquivo APK e instalá-lo diretamente no seu celular.
Nota: Seu módulo Bluetooth deve se chamar HC-06, caso contrário, o aplicativo não será capaz de se conectar ao seu módulo Bluetooth.
Assim que o aplicativo estiver instalado, você pode emparelhar o módulo Bluetooth com o seu telefone e, em seguida, iniciar o aplicativo. Deve ser parecido com isso abaixo.
Se você deseja tornar seu aplicativo mais atraente ou se conectar a qualquer outro dispositivo que não seja o Hc-06. Você pode usar o código de processamento e fazer algumas alterações nele e, em seguida, fazer upload do código diretamente para o seu telefone.
Funcionamento do robô bípede controlado por Bluetooth:
Assim que seu Hardware, Aplicativo Android e Arduino Sketch estiverem prontos, é hora de se divertir com nosso robô. Você pode controlar o robô do aplicativo Bluetooth usando os botões no aplicativo ou diretamente do monitor serial usando um dos comandos a seguir, conforme mostrado na imagem abaixo.
Cada comando fará com que o robô execute algumas tarefas peculiares e você também pode adicionar mais ações com base na sua criatividade.
O Robot também pode ser alimentado por um adaptador de 12V ou usando uma bateria de 9V. Esta bateria pode ser facilmente posicionada abaixo da placa Perf e também pode ser coberta com a Cabeça do Robô.
O funcionamento completo deste robô controlado por telefone inteligente pode ser encontrado no vídeo abaixo.