Como construir um robô em casa (com fotos)

Índice:

Como construir um robô em casa (com fotos)
Como construir um robô em casa (com fotos)

Vídeo: Como construir um robô em casa (com fotos)

Vídeo: Como construir um robô em casa (com fotos)
Vídeo: 1 1 Importando Imagens para o SketchUp 2024, Abril
Anonim

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ô

1123333 1
1123333 1

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
1123333 2
1123333 2

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.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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ô

1123333 9
1123333 9

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.

1123333 10
1123333 10

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.

1123333 11
1123333 11

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.

1123333 12
1123333 12

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).

1123333 13
1123333 13

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.

1123333 14
1123333 14

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.

1123333 15
1123333 15

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.

1123333 16
1123333 16

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.

1123333 17
1123333 17

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.

1123333 18
1123333 18

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

1123333 19
1123333 19

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.

1123333 20
1123333 20

Etapa 2. Conecte um fio vermelho à segunda mola da esquerda na parte inferior

Certifique-se de que a bateria esteja orientada corretamente.

1123333 21
1123333 21

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.

1123333 22
1123333 22

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.

1123333 23
1123333 23

Etapa 5. Conecte um fio preto do pino GND no Arduino ao trilho azul traseiro

Conecte-o no pino 28 no trilho azul.

1123333 24
1123333 24

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.

1123333 25
1123333 25

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.

1123333 26
1123333 26

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.

1123333 27
1123333 27

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.

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Etapa 2. Conecte a bateria ao Arduino

Conecte a tomada de volta da bateria no conector do Arduino para fornecer energia.

1123333 32
1123333 32

Etapa 3. Conecte o Arduino em seu computador via USB

O Windows provavelmente não reconhecerá o dispositivo.

1123333 33
1123333 33

Etapa 4. Pressione

⊞ Win + R e digite devmgmt.msc.

Isso iniciará o Gerenciador de dispositivos.

1123333 34
1123333 34

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".

1123333 35
1123333 35

Etapa 6. Selecione "Procurar software de driver em meu computador

" Isso permitirá que você selecione o driver que veio com o IDE do Arduino.

1123333 36
1123333 36

Etapa 7. Clique em "Procurar" e navegue até a pasta que você extraiu anteriormente

Você encontrará uma pasta "drivers" dentro.

1123333 37
1123333 37

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ô

1123333 38
1123333 38

Etapa 1. Inicie o Arduino IDE clicando duas vezes no arquivo arduino.exe na pasta IDE

Você será saudado com um projeto em branco.

1123333 39
1123333 39

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". }

1123333 40
1123333 40

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

1123333 41
1123333 41

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); }}

1123333 42
1123333 42

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 (); }}

Recomendado: