Você quer aprender como construir seu próprio robô? Existem muitos tipos diferentes de robôs que você mesmo pode fazer. A maioria das pessoas quer ver um robô realizando as tarefas simples de mover-se do ponto A ao ponto B. Você pode fazer um robô totalmente com componentes analógicos ou comprar um kit inicial do zero! Construir seu próprio robô é uma ótima maneira de aprender tanto eletrônica quanto programação de computadores.
Passos
Parte 1 de 6: Montando o robô
Etapa 1. Reúna seus componentes
Para construir um robô básico, você precisará de vários componentes simples. Você pode encontrar a maioria, senão todos, esses componentes em sua loja local de eletrônicos, ou em vários varejistas online. Alguns kits básicos podem incluir todos esses componentes também. Este robô não requer solda:
- Arduino Uno (ou outro microcontrolador)
- 2 servos de rotação contínua
- 2 rodas que se encaixam nos servos
- 1 rodízio
- 1 breadboard pequeno sem solda (procure por um breadboard que tenha duas linhas positivas e negativas em cada lado)
- 1 sensor de distância (com cabo conector de quatro pinos)
- 1 mini interruptor de botão
- 1 resistor de 10kΩ
- 1 cabo USB A para B
- 1 conjunto de cabeçalhos separáveis
- 1 porta-pilhas AA 6 x com entrada de energia 9V DC
- 1 pacote de fios de ligação ou fio de conexão de calibre 22
- Fita dupla-face forte ou cola quente
Etapa 2. Vire a bateria de modo que a parte de trás plana fique para cima
Você construirá o corpo do robô usando a bateria como base.
Etapa 3. Alinhe os dois servos na extremidade da bateria
Este deve ser o fim pelo qual o fio da bateria está saindo. Os servos devem tocar a parte inferior, e os mecanismos de rotação de cada um devem estar voltados para as laterais da bateria. Os servos devem estar devidamente alinhados para que as rodas fiquem retas. Os fios para os servos devem sair da parte de trás da bateria.
Etapa 4. Fixe os servos com sua fita ou cola
Certifique-se de que eles estão firmemente presos à bateria. A parte traseira dos servos deve ser alinhada com a parte traseira da bateria.
Os servos agora devem ocupar a metade posterior da bateria
Etapa 5. Fixe a placa de ensaio perpendicularmente no espaço aberto da bateria
Ele deve ficar um pouco sobre a frente da bateria e se estender além de cada lado. Certifique-se de que está bem preso antes de prosseguir. A linha "A" deve estar mais próxima dos servos.
Etapa 6. Conecte o microcontrolador Arduino à parte superior dos servos
Se você conectou os servos corretamente, deve haver um espaço plano feito por eles se tocarem. Cole a placa do Arduino neste espaço plano de forma que os conectores USB e de alimentação do Arduino fiquem voltados para a parte traseira (longe da placa de ensaio). A parte frontal do Arduino deve apenas se sobrepor à placa de ensaio.
Etapa 7. Coloque as rodas nos servos
Pressione firmemente as rodas no mecanismo de rotação do servo. Isso pode exigir uma quantidade significativa de força, pois as rodas são projetadas para se encaixar o mais firmemente possível para a melhor tração.
Etapa 8. Prenda o rodízio na parte inferior da placa de ensaio
Se você virar o chassi, verá um pouco da placa de ensaio estendendo-se além da bateria. Prenda o rodízio a esta peça estendida, usando risers, se necessário. O rodízio atua como a roda dianteira, permitindo que o robô gire facilmente em qualquer direção.
Se você comprou um kit, o rodízio pode vir com alguns tirantes que você pode usar para garantir que o rodízio alcance o solo. eu
Parte 2 de 6: Conectando o Robô
Etapa 1. Quebre dois cabeçalhos de 3 pinos
Você os usará para conectar os servos à placa de ensaio. Empurre os pinos para baixo através do cabeçalho de forma que os pinos saiam a uma distância igual em ambos os lados.
Etapa 2. Insira os dois cabeçalhos nos pinos 1-3 e 6-8 na linha E da placa de ensaio
Certifique-se de que estão inseridos com firmeza.
Etapa 3. Conecte os cabos servo aos conectores, com o cabo preto no lado esquerdo (pinos 1 e 6)
Isso conectará os servos à placa de ensaio. Certifique-se de que o servo esquerdo está conectado ao cabeçalho esquerdo e o servo direito ao cabeçalho direito.
Etapa 4. Conecte os fios de jumper vermelhos dos pinos C2 e C7 aos pinos de trilho vermelhos (positivos)
Certifique-se de usar o trilho vermelho na parte traseira da placa de ensaio (mais perto do resto do chassi).
Etapa 5. Conecte os fios de jumper pretos dos pinos B1 e B6 aos pinos de trilho azuis (terra)
Certifique-se de usar o trilho azul na parte traseira da placa de ensaio. Não os conecte nos pinos de trilho vermelhos.
Etapa 6. Conecte os fios de jumper brancos dos pinos 12 e 13 no Arduino para A3 e A8
Isso permitirá que o Arduino controle os servos e gire as rodas.
Etapa 7. Conecte o sensor à frente da placa de ensaio
Ele não é conectado aos trilhos de alimentação externos da placa de ensaio, mas à primeira linha de pinos com letras (J). Certifique-se de colocá-lo no centro exato, com um número igual de pinos disponíveis em cada lado.
Etapa 8. Conecte um fio de jumper preto do pino I14 ao primeiro pino de trilho azul disponível à esquerda do sensor
Isso irá aterrar o sensor.
Etapa 9. Conecte um fio de jumper vermelho do pino I17 ao primeiro pino de trilho vermelho disponível à direita do sensor
Isso irá alimentar o sensor.
Etapa 10. Conecte os fios de jumper brancos do pino I15 ao pino 9 no Arduino e de I16 ao pino 8
Isso alimentará as informações do sensor para o microcontrolador.
Parte 3 de 6: Conectando a energia
Etapa 1. Vire o robô de lado para que você possa ver as baterias na embalagem
Oriente-o de forma que o cabo da bateria saia para a esquerda na parte inferior.
Etapa 2. Conecte um fio vermelho à segunda mola da esquerda na parte inferior
Certifique-se de que a bateria esteja orientada corretamente.
Etapa 3. Conecte um fio preto à última mola no canto inferior direito
Esses dois cabos ajudarão a fornecer a voltagem correta para o Arduino.
Etapa 4. Conecte os fios vermelho e preto aos pinos vermelho e azul da extrema direita na parte traseira da placa de ensaio
O cabo preto deve ser conectado ao pino de trilho azul no pino 30. O cabo vermelho deve ser conectado ao pino de trilho vermelho no pino 30.
Etapa 5. Conecte um fio preto do pino GND no Arduino ao trilho azul traseiro
Conecte-o no pino 28 no trilho azul.
Etapa 6. Conecte um fio preto do trilho azul traseiro ao trilho azul frontal no pino 29 para cada um
Não conecte os trilhos vermelhos, pois provavelmente você danificará o Arduino.
Etapa 7. Conecte um fio vermelho do trilho vermelho frontal no pino 30 ao pino de 5 V no Arduino
Isso fornecerá energia ao Arduino.
Etapa 8. Insira a chave de botão na lacuna entre as fileiras dos pinos 24-26
Esta chave permitirá que você desligue o robô sem ter que desconectar a energia.
Etapa 9. Conecte um fio vermelho de H24 ao trilho vermelho no próximo pino disponível à direita do sensor
Isso irá ligar o botão.
Etapa 10. Use o resistor para conectar H26 ao trilho azul
Conecte-o ao pino diretamente ao lado do fio preto que você conectou há algumas etapas.
Etapa 11. Conecte um fio branco do G26 ao pino 2 no Arduino
Isso permitirá que o Arduino registre o botão de ação.
Parte 4 de 6: Instalando o software Arduino
Etapa 1. Baixe e extraia o IDE do Arduino
Este é o ambiente de desenvolvimento do Arduino e permite que você programe instruções que podem ser carregadas em seu microcontrolador Arduino. Você pode baixá-lo gratuitamente em arduino.cc/en/main/software. Descompacte o arquivo baixado clicando duas vezes nele e mova a pasta dentro para um local de fácil acesso. Você não instalará o programa de fato. Em vez disso, você apenas executará a partir da pasta extraída clicando duas vezes em arduino.exe.
Etapa 2. Conecte a bateria ao Arduino
Conecte a tomada de volta da bateria no conector do Arduino para fornecer energia.
Etapa 3. Conecte o Arduino em seu computador via USB
O Windows provavelmente não reconhecerá o dispositivo.
Etapa 4. Pressione
⊞ Win + R e digite devmgmt.msc.
Isso iniciará o Gerenciador de dispositivos.
Etapa 5. Clique com o botão direito em "Dispositivo desconhecido" na seção "Outros dispositivos" e selecione "Atualizar software de driver
" Se você não vir essa opção, clique em "Propriedades", selecione a guia "Driver" e clique em "Atualizar driver".
Etapa 6. Selecione "Procurar software de driver em meu computador
" Isso permitirá que você selecione o driver que veio com o IDE do Arduino.
Etapa 7. Clique em "Procurar" e navegue até a pasta que você extraiu anteriormente
Você encontrará uma pasta "drivers" dentro.
Etapa 8. Selecione a pasta "drivers" e clique em "OK
" Confirme que deseja continuar se for avisado sobre software desconhecido.
Parte 5 de 6: Programando o robô
Etapa 1. Inicie o Arduino IDE clicando duas vezes no arquivo arduino.exe na pasta IDE
Você será saudado com um projeto em branco.
Etapa 2. Cole o código a seguir para fazer seu robô ir direto
O código abaixo fará com que seu Arduino avance continuamente.
#include // adiciona a biblioteca "Servo" ao programa // o seguinte cria dois objetos servo Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // se você acidentalmente trocou os números dos pinos de seus servos, você pode trocar os números aqui rightMotor.attach (13); } void loop () {leftMotor.write (180); // com rotação contínua, 180 diz ao servo para se mover em velocidade total "para frente". rightMotor. escrever (0); // se ambos estiverem em 180, o robô fará um círculo porque os servos foram invertidos. "0" diz para ele se mover em velocidade total "para trás". }
Etapa 3. Crie e carregue o programa
Clique no botão de seta para a direita no canto superior esquerdo para construir e fazer upload do programa para o Arduino conectado.
Você pode querer levantar o robô da superfície, pois ele continuará a se mover para frente assim que o programa for carregado
Etapa 4. Adicionar a funcionalidade do interruptor kill
Adicione o seguinte código à seção "void loop ()" do seu código para habilitar o switch kill, acima das funções "write ()".
if (digitalRead (2) == HIGH) // registra quando o botão é pressionado no pino 2 do Arduino {while (1) {leftMotor.write (90); // "90" é a posição neutra para os servos, que diz a eles para parar de girar para a direitaMotor.write (90); }}
Etapa 5. Faça upload e teste seu código
Com o código do switch kill adicionado, você pode fazer upload e testar o robô. Ele deve continuar a avançar até que você pressione o botão, momento em que para de se mover. O código completo deve ser assim:
#include // o seguinte cria dois objetos servo Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }
Parte 6 de 6: Exemplo
Etapa 1. Siga um exemplo
O código a seguir usará o sensor acoplado ao robô para fazê-lo virar para a esquerda sempre que encontrar um obstáculo. Veja os comentários no código para obter detalhes sobre o que cada parte faz. O código abaixo é o programa completo.
#include Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // isso limita a saída para o console a uma vez a cada 1/4 de segundo unsigned long timeSerialDelay = 0; const int loopPeriod = 20; // isso define a frequência com que o sensor faz uma leitura de 20 ms, que é uma frequência de 50 Hz sem sinal long timeLoopDelay = 0; // isso atribui as funções TRIG e ECHO aos pinos no Arduino. Faça ajustes nos números aqui se você conectou de forma diferente const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // isso define os dois estados possíveis para o robô: dirigir para frente ou virar à esquerda #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = avançar (DEFAULT), 1 = virar à esquerda void setup () {Serial.begin (9600); // essas configurações de pinos do sensor pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // isso atribui os motores aos pinos do Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // isso detecta a chave de eliminação {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // imprime mensagens de depuração no console serial if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // instrui o sensor a ler e armazenar as distâncias medidas stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // se nenhum obstáculo detectado {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // se não há nada na frente do robô. ultrasonicDistance será negativo para alguns ultrassônicos se não houver nenhum obstáculo {// drive forward rightMotor.write (180); leftMotor.write (0); } else // se houver um objeto na nossa frente {state = TURN_LEFT; }} else if (state == TURN_LEFT) // se um obstáculo for detectado, vire à esquerda {unsigned long timeToTurnLeft = 500; // leva cerca de 0,5 segundos para girar 90 graus. Você pode precisar ajustar isso se suas rodas forem de um tamanho diferente do exemplo long turnStartTime = millis (); // economize o tempo que começamos a girar enquanto ((millis () - turnStartTime) <timeToTurnLeft) // permaneça neste loop até que timeToTurnLeft tenha decorrido {// vire à esquerda, lembre-se de que quando ambos estiverem configurados para "180", ele girará. rightMotor.write (180); leftMotor.write (180); } estado = DRIVE_FORWARD; }} void readUltrasonicSensors () {// isso é para ultrassônico 2. Você pode precisar alterar esses comandos se usar um sensor diferente. digitalWrite (ultrasonic2TrigPin, HIGH); atrasoMicrosegundos (10); // mantém o pino trigonométrico alto por pelo menos 10 microssegundos digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duração / 2) / 29; } // o seguinte é para depurar erros no console. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}