Você quer aprender como construir seu próprio robô? Há vários tipos diferentes que você pode fazer sozinho. A maioria das pessoas quer ver o robô realizar a tarefa simples de seguir do ponto A para o ponto B. Você pode fazer um robô usando apenas componentes analógicos ou comprar um kit para iniciantes. Fazer seu próprio robô é uma ótima maneira de aprender eletrônica e programação.
Passos
-
Junte os materiais. Para fazer um robô básico, você precisará de vários componentes simples. Praticamente todos podem ser encontrados em uma loja de eletrônicos ou on-line. Alguns kits básicos podem incluir todos esses componentes também. Esse robô não exige solda:
- Arduino Uno (ou outro microcontrolador) [1] X Fonte de pesquisa .
- 2 servos de rotação contínua.
- 2 rodas que se encaixem nos servos.
- 1 rodízio.
- 1 placa de ensaio sem solda (procure por uma com duas linhas positivas e duas negativas de cada lado).
- 1 sensor de distância com cabo conector de quatro pinos.
- 1 miniswitch com botão e resistor de 10kΩ.
- 1 barra de pinos.
- 1 caixa para 6 pilhas AA com tomada de alimentação de 9V DC.
- 1 conjunto de cabos jumper ou cabo flat.
- Fita dupla face forte ou cola quente.
-
Vire a caixa de pilhas para que a parte de trás fique para cima. Você construirá o corpo do robô usando a caixa como base.
-
Alinhe os dois servos no final da caixa de pilhas. Essa deve ser a ponta por onde sai o fio da caixa. As partes inferiores dos dois servos devem ficar em contato, e os mecanismos de rotação de cada um devem ficar voltados para as laterais da caixa de pilhas. É importante que os servos fiquem alinhados da maneira correta para que as rodas permaneçam retas. Os cabos dos servos devem sair da parte de trás da caixa de pilhas.
-
Prenda os servos com a fita ou a cola. [2] X Fonte de pesquisa Eles devem ficar bem presos à caixa de pilhas. A parte de trás deles deve ficar alinhada com a parte de trás da caixa de pilhas.
- Os servos agora deverão ocupar a metade inferior da caixa de pilhas.
-
Prenda a placa de ensaio perpendicularmente ao espaço aberto da caixa de pilhas. Ela deve ficar pendurada na frente da caixa apenas um pouco e se estender para além de cada lado. Prenda-a bem antes de continuar. A fileira A deve ficar mais perto dos servos.
-
Prenda o microcontrolador Arduino à parte de cima dos servos. Se você tiver prendido os servos direito, deverá haver um espaço plano criado pelo contato deles. Prenda a placa Arduino a esse espaço de modo que os conectores USB e de alimentação dela fiquem voltados para trás, longe da placa de ensaio. A frente do Arduino deve apenas sobrepor de leve a placa de ensaio.
-
Coloque as rodas nos servos. Pressione com firmeza as rodas no mecanismo rotatório do servo. Você pode precisar usar bastante força, pois as rodas foram feitas para ficarem bem encaixadas, de modo a se obter a melhor tração.
-
Prenda o rodízio ao fundo da placa de ensaio. Se você virar o chassi, deverá ver um pouco da placa de ensaio saindo da caixa de pilhas. Prenda o rodízio a essa peça estendida usando algo para elevá-lo se necessário. O rodízio age como a roda dianteira, permitindo que o robô vire facilmente em qualquer direção. [3] X Fonte de pesquisa
- Caso tenha comprado um kit, o rodízio pode ter vindo com alguns suportes que você pode usar para que ele alcance o chão.
Publicidade
-
Solte dois conectores de três pinos. Você os usará para conectar os servos à placa de ensaio. Empurre os pinos pelo conector de modo que eles saiam à mesma distância dos dois lados.
-
Insira os dois conectores nos pinos 1 a 3 e 6 a 8 da fileira E da placa de ensaio. Veja se eles estão bem inseridos. [4] X Fonte de pesquisa
-
Conecte os cabos servos nos conectores, com o cabo preto do lado esquerdo (pinos 1 e 6). Eles conectarão os servos à placa de ensaio. O servo esquerdo deve ser conectado ao conector esquerdo, e o servo direito, ao direito.
-
Ligue os cabos jumper vermelhos dos pinos C2 e C7 aos pinos positivos (vermelhos). Use a fileira vermelha na parte de trás da placa de ensaio, mais próxima do resto do chassi.
-
Conecte os cabos jumper pretos dos pinos B1 e B6 aos pinos terra (azuis). Use a fileira azul na parte de trás da placa. Não os conecte à fileira vermelha.
-
Ligue os cabos jumper brancos dos pinos 12 e 13 do Arduino a A3 e A8. Assim, o Arduino poderá controlar os servos e virar as rodas.
-
Prenda o sensor à frente da placa de ensaio. Ele não é conectado às fileiras de alimentação externa da placa, mas sim à primeira fileira de pinos com letras (J). Coloque-o no centro, com o mesmo número de pinos disponíveis de cada lado.
-
Conecte um cabo jumper preto do pino I14 ao primeiro pino azul disponível à esquerda do sensor para aterrar esse componente.
-
Ligue um cabo jumper preto do pino I17 ao primeiro pino vermelho disponível à direita do sensor para alimentar o componente.
-
Conecte os cabos jumper brancos do pino I15 ao pino 9 do Arduino, e do I16 ao pino 8. Eles enviarão informações do sensor ao microcontrolador.Publicidade
-
Vire o robô de lado para que você possa ver as pilhas na caixa. Oriente-o de modo que o cabo da caixa de pilhas saia da parte de baixo para a esquerda.
-
Conecte um cabo vermelho à segunda mola à esquerda, contando a partir da parte inferior. A caixa de baterias deve estar orientada da maneira correta.
-
Ligue um cabo preto à ultima mola da parte inferior direita. Esses dois cabos ajudarão a fornecer a voltagem correta ao Arduino. [5] X Fonte de pesquisa
-
Conecte os cabos vermelho e preto aos pinos vermelho e azul mais à direita, na parte de trás da placa de circuito. O cabo preto deve ser ligado ao pino azul 30, e o cabo vermelho, ao pino vermelho 30.
-
Ligue um cabo preto do pino GND do Arduino à fileira azul de trás. Conecte-o ao pino 28.
-
Ligue um cabo preto da fileira azul de trás à fileira azul da frente. Ele deverá estar no pino 29 das duas fileiras. Não conecte as fileiras vermelhas, pois você provavelmente vai danificar o Arduino.
-
Ligue um cabo vermelho da fileira vermelha frontal , saindo do pino 30, ao pino de 5 V do Arduino. Ele vai alimentar o Arduino.
-
Insira o switch com botão no espaço entre as fileiras nos pinos 24 a 26. Esse switch permitirá a você desligar o robô sem precisar desconectar a alimentação.
-
Conecte um fio vermelho do H24 à fileira vermelha no próximo pino disponível à direita do sensor. Ele vai alimentar o botão.
-
Use o resistor para conectar o H26 à fileira azul. Ligue-o ao pino logo ao lado do cabo preto que foi conectado há alguns passos atrás.
-
Conecte um cabo branco do G26 ao pino 2 do Arduino. Ele permitirá que o Arduino registre o botão.Publicidade
-
Baixe e instale o Arduino IDE. Esse é o ambiente de desenvolvimento do Arduino. Ele permite a você programar instruções a serem enviadas ao microcontrolador. Você pode baixá-lo de graça em arduino.cc/en/main/software . Descompacte o arquivo baixado com um clique duplo e mova a pasta de dentro dele para um local de fácil acesso. Você não vai instalar o programa, mas apenas executá-lo da pasta clicando duas vezes em arduino.exe . [6] X Fonte de pesquisa
-
Conecte a caixa de pilhas ao Arduino. Ligue o conector traseiro da bateria ao conector do Arduino para alimentá-lo.
-
Conecte o Arduino a seu computador usando o USB. O Windows provavelmente não vai reconhecer o dispositivo.
-
Pressione . ⊞ Win + R e digite devmgmt.msc para abrir o Gerenciador de Dispositivos.
-
Clique com o botão direito sobre o "Dispositivo desconhecido" na seção "Outros dispositivos" e selecione "Atualizar o software do driver". Se não vir essa opção, clique em "Propriedades", selecione a aba "Driver" e clique em "Atualizar Driver".
-
Selecione "Procurar software de driver no computador" . Essa opção permitirá a você selecionar o driver que veio com o Arduino IDE.
-
Clique em "Procurar..." e navegue para a pasta que você extraiu antes. Você encontrará uma pasta "drivers" dentro dela.
-
Selecione a pasta “drivers” e clique em "OK" . Confirme que deseja continuar se for avisado a respeito de softwares desconhecidos.Publicidade
-
Inicie o Arduino IDE dando um clique duplo no arquivo arduino.exe da pasta IDE. Você receberá um projeto em branco.
-
Cole o seguinte código para fazer seu robô ir para frente. O código abaixo fará seu Arduino mover-se continuamente para frente.
#include <Servo.h> // adiciona a biblioteca "Servo" ao programa // o seguinte código cria dois objetos servo Servo leftMotor ; Servo rightMotor ; void setup () { leftMotor . attach ( 12 ); // Se você tiver trocado acidentalmente os números dos pinos dos servos, pode mudá-los aqui. rightMotor . attach ( 13 ); } void loop () { leftMotor . write ( 180 ); // com a rotação contínua, 180 diz ao servo para se mover a toda velocidade para frente. rightMotor . write ( 0 ); // se ambos os comandos estiverem em 180, o robô andará em círculos, pois os servos ficarão virados. O "0" diz ao servo para andar a toda velocidade para trás. }
-
Compile e envie a programação. Clique no botão de seta para a direita no canto superior esquerdo para compilar e enviar a programação ao Arduino conectado.
- Pode ser melhor levantar o robô, pois ele continuará andando para frente depois que a programação for enviada.
-
Adicione a funcionalidade do botão. Acrescente o seguinte código à seção "void loop()" para habilitar o botão, 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 dos servos, que diz a eles para pararem de girar rightMotor . write ( 90 ); } }
-
Envie e teste seu código. Com o código para o botão adicionado, você pode testar o robô. Ele deverá continuar seguindo em frente até que você pressione o botão, e nesse momento ele vai parar de se mover. O código completo ficará assim:
#include <Servo.h> // o seguinte código 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 ); }
Publicidade
Vídeo do wikiHow: Como Construir Um Robô Em Casa
Exemplo
O seguinte código usará o sensor ligado ao robô para fazê-lo virar para a esquerda sempre que ele encontrar um obstáculo. Veja os comentários no código para saber detalhes do que faz cada parte. O código abaixo representa toda a programação.
#include
<Servo.h>
Servo
leftMotor
;
Servo
rightMotor
;
const
int
serialPeriod
=
250
;
// limita a saída para o console para uma vez a cada quarto de segundo
unsigned
long
timeSerialDelay
=
0
;
const
int
loopPeriod
=
20
;
// define a frequência com que o sensor faz uma leitura para 20 ms, uma frequência de 50 Hz
unsigned
long
timeLoopDelay
=
0
;
// designa as funções TRIG e ECHO aos pinos do Arduino. Ajuste os números se tiver feito conexões diferentes
const
int
ultrasonic2TrigPin
=
8
;
const
int
ultrasonic2EchoPin
=
9
;
int
ultrasonic2Distance
;
int
ultrasonic2Duration
;
// define os dois estados possíveis para o robô: para frente (DRIVE_FORWARD) ou para a esquerda (TURN_LEFT)
#define DRIVE_FORWARD 0
#define TURN_LEFT 1
int
state
=
DRIVE_FORWARD
;
// 0 = para frente (PADRÃO), 1 = para a esquerda
void
setup
()
{
Serial
.
begin
(
9600
);
// configurações dos pinos do sensor
pinMode
(
ultrasonic2TrigPin
,
OUTPUT
);
pinMode
(
ultrasonic2EchoPin
,
INPUT
);
// designa os motores aos pinos Arduino
leftMotor
.
attach
(
12
);
rightMotor
.
attach
(
13
);
}
void
loop
()
{
if
(
digitalRead
(
2
)
==
HIGH
)
// detecta o botão
{
while
(
1
)
{
leftMotor
.
write
(
90
);
rightMotor
.
write
(
90
);
}
}
debugOutput
();
// imprime mensagens de depuração ao 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 for detectado
{
if
(
ultrasonic2Distance
>
6
||
ultrasonic2Distance
<
0
)
// se não houver nada na frente do robô. A ultrasonicDistance (distância ultrassônica) será negativa para alguns sensores ultrassônicos se não houver obstáculo
{
// drive forward
rightMotor
.
write
(
180
);
leftMotor
.
write
(
0
);
}
else
// se houver um objeto à frente
{
state
=
TURN_LEFT
;
}
}
else
if
(
state
==
TURN_LEFT
)
// se um obstáculo for detectado, vire para a esquerda
{
unsigned
long
timeToTurnLeft
=
500
;
// leva cerca de 0,5 segundos para virar em 90 graus. Você pode precisar ajustar esse valor se as rodas tiverem um tamanho diferente do exemplo.
unsigned
long
turnStartTime
=
millis
();
// salva o tempo em que o giro começa
while
((
millis
()
-
turnStartTime
)
<
timeToTurnLeft
)
// fica nesse loop até que timeToTurnLeft passe
{
// vira para a esquerda. Lembre-se de que, quando ambos estiverem em "180", ele vai virar
rightMotor
.
write
(
180
);
leftMotor
.
write
(
180
);
}
state
=
DRIVE_FORWARD
;
}
}
void
readUltrasonicSensors
()
{
// para o ultrassônico 2. Você pode precisar alterar esses comandos se usar um sensor diferente.
digitalWrite
(
ultrasonic2TrigPin
,
HIGH
);
delayMicroseconds
(
10
);
// mantém o pino trig alto por pelo menos 10 microssegundos
digitalWrite
(
ultrasonic2TrigPin
,
LOW
);
ultrasonic2Duration
=
pulseIn
(
ultrasonic2EchoPin
,
HIGH
);
ultrasonic2Distance
=
(
ultrasonic2Duration
/
2
)
/
29
;
}
// o código a seguir serve para depurar erros no console.
void
debugOutput
()
{
if
((
millis
()
-
timeSerialDelay
)
>
serialPeriod
)
{
Serial
.
print
(
"ultrasonic2Distance: "
);
Serial
.
print
(
ultrasonic2Distance
);
Serial
.
print
(
"cm"
);
Serial
.
println
();
timeSerialDelay
=
millis
();
}
}
Vídeo
Referências
- ↑ https://www.robotshop.com/community/tutorials/show/how-to-make-a-robot-lesson-4-understanding-microcontrollers
- ↑ https://learn.adafruit.com/Cardboard-Robot-Inchworm/add-the-electronics
- ↑ http://makezine.com/projects/building-a-simple-arduino-robot/
- ↑ http://www.ladyada.net/learn/arduino/lesson3.html
- ↑ https://www.arduino.cc/en/main/standalone
- ↑ https://learn.sparkfun.com/tutorials/installing-arduino-ide/all
Sobre este guia wikiHow
Para montar um robô simples que ande sozinho, compre um kit para iniciantes, ou compre todas as peças de que precisará em uma loja de eletrônicos. Serão necessários um microcontrolador, ou o que será o cérebro do seu robô; um par de servos de rotação contínua, para direcionar as rodas; rodas que encaixem nos servos; um rodízio; uma placa de ensaio sem solda para fazer os circuitos; uma caixa para pilhas; um sensor de distância; um mini switch com botão e um conjunto de cabos jumper. Fixe os servos na caixa para pilhas com fita dupla face forte ou cola quente, de modo que as pontas rotativas dos servos fiquem grudadas na parte longa da caixa de pilhas. Acople a placa de ensaio à caixa de pilhas, perto dos servos, com cola quente ou fita dupla face. Posicione o microcontrolador no espaço livre acima dos servos e fixe-o bem. Encaixe as rodas nos eixos dos servos. Cole o rodízio na parte da frente da placa. O rodízio gira e desliza para qualquer lado, funcionando como a roda frontal do robô. Encaixe o sensor de distância à frente da placa. Ligue os componentes, conectando os servos, o microcontrolador, o mini switch e a caixa de pilhas à placa. Conecte o microcontrolador a um computador com um cabo USB. Suba um programa de controle básico do computador ao microcontrolador. Seu robô pode andar para frente, para trás, parar e desviar de obstáculos. Teste o robô em uma superfície plana e lisa e descubra o que ele pode fazer. Continue lendo para saber mais dicas, incluindo informações sobre o software Arduino.