Você quer aprender como fazer seu próprio robô? Existem muitos tipos diferentes de robôs, que você mesmo pode construir. A maioria das pessoas deseja ver um robô realizar a tarefa fácil de mover-se do ponto A para o ponto B. Você pode construir um robô totalmente com componentes analógicos ou comprar um kit inicial. Fazer seu próprio robô é uma ótima maneira de aprender eletrônica e programação de computadores.
Etapa
Parte 1 de 5: Montando o robô
Etapa 1. Monte seus componentes
Para construir um robô básico, você precisará de alguns componentes simples. Você pode encontrar a maioria ou todos esses componentes em sua loja local de eletrônicos, ou em alguns varejistas online. Alguns kits incluem todos esses componentes. Este robô não requer solda:
- Arduino Uno (ou outro microcontrolador)
- 2 servos 360 graus
- 2 rodas combinando com servo
- 1 roda livre
- 1 placa de teste (placa de ensaio ou placa de projeto) que não foi soldada (procure uma placa de teste que tenha duas linhas positivas e negativas em cada lado)
- 1 sensor de proximidade (com cabo conector de quatro pinos)
- 1 botão de pressão
- 1 resistor 10kΩ
- 1 cabo USB A para B
- 1 conjunto de cabeçalhos quebráveis
- 1 porta-pilhas AA de 6 x com tomada de alimentação de 9 Vcc
- 1 pacote de 22. cabos de jumper ou cabo único
- Isolamento para frente e para trás (fita dupla) ou pistola de cola
Etapa 2. Vire o compartimento da bateria para que sua parte traseira plana fique voltada para cima
Você construirá o corpo do robô usando o compartimento da bateria como base.
Etapa 3. Organize dois servos voltados para a mesma direção no final do compartimento da bateria
Essa extremidade é a extremidade em que o cabo sai da bateria. Os servos devem tocar a parte inferior e o mecanismo de rotação de cada servo deve estar voltado para fora das laterais do compartimento da bateria. É importante que esses servos estejam dispostos corretamente para que as rodas fiquem retas. Os cabos do servo devem sair da parte traseira do compartimento da bateria.
Etapa 4. Cole os servos com seu isolamento ou cola
Certifique-se de que o servo está firmemente conectado ao compartimento da bateria. A parte traseira do servo deve estar alinhada com a parte traseira do compartimento da bateria.
Agora, os servos devem ocupar metade do espaço na parte de trás do compartimento da bateria
Etapa 5. Cole a placa de teste perpendicularmente ao espaço restante no compartimento da bateria
Esta placa de teste ficará ligeiramente suspensa na frente do compartimento da bateria e se estenderá para ambos os lados. Certifique-se de que a placa de teste está apertada antes de prosseguir. A linha “A” deve estar mais próxima do servo.
Etapa 6. Conecte o microcontrolador Arduino à parte superior do servo
Se você conectar o servo corretamente, deve haver uma parte plana dos dois servos se tocando. Cole a placa Arduino neste ponto plano para que os conectores de alimentação USB e Arduino fiquem voltados para baixo (longe da placa de teste). A frente do Arduino se sobreporá à placa de teste.
Etapa 7. Instale as rodas nos servos
Pressione firmemente as rodas no servomecanismo rotativo. Isso pode exigir uma força considerável, pois as rodas são projetadas para ter orifícios que correspondem exatamente ao formato da ponta do servo.
Etapa 8. Instale a roda livre na parte inferior da placa de teste
Se você virar o robô de cabeça para baixo, verá uma pequena placa de teste pendurada no compartimento da bateria. Prenda a roda livre a esta parte suspensa. Use uma cunha, se necessário. A roda livre funciona como a roda dianteira que permite ao robô girar em qualquer direção com facilidade.
Se você comprou um kit, a roda livre pode ter algumas cunhas que você pode usar para garantir que a roda esteja livre para tocar o solo
Parte 2 de 5: Conectando o Robô
Etapa 1. Corte dois cabeçalhos de 3 pinos
Você vai usar isso para conectar o servo à placa de teste. Empurre os pinos para baixo através dos cabeçalhos, para que saiam a uma distância igual em ambos os lados.
Etapa 2. Insira os dois conectores nos pinos 1-3 e 6-8 na linha E da placa de teste
Certifique-se de que eles estão inseridos com firmeza ou firmeza.
Etapa 3. Conecte os fios do servo com o conector, com o fio preto no lado esquerdo (pinos 1 e 6)
Isso conectará o servo à placa de teste. Certifique-se de que o servo esquerdo está conectado ao conector esquerdo e o servo direito está conectado ao conector direito.
Etapa 4. Conecte o fio de jumper vermelho dos pinos C2 e C7 ao pino de trilho vermelho (positivo)
Certifique-se de usar o trilho vermelho na parte de trás da placa de teste (mais perto do resto do corpo do robô).
Etapa 5. Conecte o fio jumper preto dos pinos B1 e B6 ao pino de trilho azul (terra)
Certifique-se de usar o trilho azul na parte traseira da placa de teste. Não conecte o cabo ao pino vermelho do trilho.
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 o servo e gire a roda.
Etapa 7. Prenda o sensor na parte frontal da placa de teste
O sensor não é montado no barramento de alimentação externo na placa de teste, mas nas duas primeiras fileiras de pinos com as letras (J). Certifique-se de colocá-lo bem no meio com um número igual de pinos vazios de cada lado.
Etapa 8. Conecte o fio jumper preto do pino I14 ao primeiro pino de trilho azul à esquerda do sensor
Isso irá aterrar o sensor.
Etapa 9. Conecte o fio de jumper vermelho do pino I17 ao primeiro pino de trilho vermelho à direita do sensor
Isso fornecerá energia ao sensor.
Etapa 10. Conecte os fios de jumper brancos do pino I15 ao pino 9 no Arduino e de I16 ao pino 8
Isso fornecerá informações do sensor ao microcontrolador.
Parte 3 de 5: Instalando o cabo de alimentação
Etapa 1. Vire o robô para que você possa ver o compartimento da bateria dentro
Organize o compartimento da bateria de forma que o cabo saia pela parte inferior esquerda.
Etapa 2. Conecte o fio vermelho com a segunda mola da esquerda na parte inferior
Certifique-se de que o compartimento da bateria esteja devidamente alinhado ou voltado para a direção correta.
Etapa 3. Conecte o fio preto com a última mola no canto inferior direito
Esses dois fios ajudarão a fornecer a voltagem certa para o Arduino.
Etapa 4. Conecte os fios vermelho e preto aos pinos vermelho e azul que estão no lado direito na parte traseira da placa de teste
O fio preto deve ir para o pino de trilho azul no pino 30. O fio vermelho deve ir para o pino de trilho vermelho no pino 30.
Etapa 5. Conecte o fio preto do pino GND no Arduino à parte traseira do trilho azul
Conecte o fio ao pino 28 no trilho azul.
Etapa 6. Conecte o fio preto da parte traseira do trilho azul à frente do trilho azul no pino 29 para ambos os trilhos
Não conecte o trilho vermelho, pois você pode danificar o Arduino.
Etapa 7. Conecte o fio vermelho da frente do trilho vermelho no pino 30 ao pino 5V no Arduino
Isso fornecerá energia ao Arduino.
Etapa 8. Insira a chave do botão de pressão no espaço entre os pinos 24-26
Esta opção permitirá que você desligue o robô sem ter que desligar a energia.
Etapa 9. Conecte o fio vermelho de H24 ao trilho vermelho no próximo pino vazio à direita do sensor
Isso fornecerá energia ao botão.
Etapa 10. Use um resistor para conectar H26 ao trilho azul
Conecte-o ao pino diretamente ao lado do fio preto que você acabou de conectar nas etapas anteriores.
Etapa 11. Conecte o fio branco do G26 ao pino 2 no Arduino
Isso permitirá que o Arduino detecte os botões.
Parte 4 de 5: Instalando o software Arduino
Etapa 1. Baixe e extraia o IDE do Arduino
É aqui que o Arduino é desenvolvido 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 no arquivo e movendo a pasta que ele contém para um local de fácil acesso. Na verdade, você não instalará o programa; em vez disso, apenas executará a partir de uma pasta que foi extraída clicando duas vezes em arduino.exe.
Etapa 2. Conecte o compartimento da bateria ao Arduino
Insira o soquete traseiro da bateria no conector do Arduino para ligá-lo.
Etapa 3. Insira o Arduino em seu computador via USB
Provavelmente, o Windows não reconhecerá o dispositivo.
Etapa 4. Pressione
Win + R e digite devmgmt.msc.
Este comando irá abrir o Gerenciador de Dispositivos.
Etapa 5. Clique com o botão direito em Dispositivo desconhecido em 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 os drivers integrados que vêm com o IDE do Arduino.
Etapa 7. Clique em Procurar e abra a pasta extraída anteriormente
Você encontrará a pasta de drivers nele.
Etapa 8. Selecione a pasta de drivers e clique em OK
Confirme que deseja continuar se for avisado sobre software desconhecido.
Parte 5 de 5: robôs de programação
Etapa 1. Abra o Arduino IDE clicando duas vezes no arquivo arduino.exe na pasta IDE
Você será saudado com um projeto em branco.
Etapa 2. Cole ou cole o código a seguir para tornar seu robô avançado
O código abaixo manterá seu Arduino funcionando.
#include // adiciona a biblioteca “Servo” ao programa // o comando a seguir cria dois objetos servo Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // se você acidentalmente trocou os números dos pinos do seu servo, você pode trocar os números aqui rightMotor.attach (13); } void loop () {leftMotor.write (180); // com uma rotação de 360 graus (rotação contínua), o número 180 instrui o servo a se mover “para frente” em velocidade total. rightMotor.write (0); // se ambos os valores forem 180, o robô girará em um círculo porque o servo está invertido. “0” diz ao robô para se mover “para trás” em velocidade total. }
Etapa 3. Crie e carregue o programa
Clique no botão de seta para a direita no canto superior esquerdo para criar e fazer upload de um programa para o Arduino conectado.
Você pode levantar o robô da superfície, pois o robô continuará a andar para frente após o upload do programa
Etapa 4. Adicionar uma função de interruptor de parada (interruptor de interrupção)
Adicione o seguinte código à seção "void loop ()" do seu código para adicionar uma função de interruptor de parada na parte superior da função "write ()".
if (digitalRead (2) == HIGH) // este comando é executado quando o botão é pressionado no pino 2 Arduino {while (1) {leftMotor.write (90); // "90" é a posição neutra para o servo, que diz ao servo para parar de girar para a direitaMotor.write (90); }}
Etapa 5. Faça o upload e verifique o seu código
Com o código do interruptor de parada já adicionado, você pode fazer o upload do código e testar o robô. O robô deve continuar em frente até que você pressione o botão de parada, o que fará com que o robô pare. O código completo ficará assim:
#include // o comando a seguir cria dois objetos Servo leftMotor servo; 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); }
Exemplo
O código a seguir usará sensores instalados no robô para fazê-lo virar à esquerda sempre que o robô encontrar um obstáculo. Veja os comentários no código para obter detalhes sobre como usar cada parte. O código abaixo é o programa completo.
#include Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // este código fornece ao retardo de tempo de saída do console a cada 1/4 de segundo (250 ms) unsigned long timeSerialDelay = 0; const int loopPeriod = 20; // este código define a frequência de leitura do sensor para 20 ms, que é 50 Hz sem sinal long timeLoopDelay = 0; // este código atribui as funções TRIG e ECHO aos pinos no Arduino. Ajuste os números aqui se você conectá-los de maneira diferente const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // este código define dois estados possíveis do robô: continuar em frente ou virar à esquerda #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = continuar em frente (DEFAULT), 1 = virar à esquerda void setup () {Serial.begin (9600); // este sensor determina a configuração do pino pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // isso atribui o motor aos pinos do Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // este código detecta uma '' parada '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // este código imprime mensagens de depuração no console serial if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // este código instrui o sensor a ler e armazenar dados sobre a distância medida stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // se nenhum obstáculo for 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 obstáculos {// 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 este valor se as suas rodas diferirem em tamanho do tamanho no exemplo unsigned long turnStartTime = millis (); // mantenha a condição quando o robô começa a girar enquanto ((millis () - turnStartTime) <timeToTurnLeft) // mantém este ciclo até que timeToTurnLeft (500) tenha passado {// vire à esquerda, lembre-se de que quando ambos estão "180", o robô irá girar. rightMotor.write (180); leftMotor.write (180); } estado = DRIVE_FORWARD; }} void readUltrasonicSensors () {// isso é para ultrassônico 2. Você pode precisar alterar este comando se estiver usando um sensor diferente. digitalWrite (ultrasonic2TrigPin, HIGH); atrasoMicrosegundos (10); // puxar o pino TRIG para cima 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 (); }}