Como construir um robô arduino 4wd para iniciantes

carros telecomandados são divertidos, com certeza, mas auto-condução

carros robóticos são ainda mais divertido. Neste tutorial, vamos construir um robô de quatro rodas que podem conduzir ao redor e evitar obstáculos. Eu comprei este kit 4WD completo a partir AliExpress, mas você poderia facilmente comprar a maioria destes componentes a partir de uma loja de eletrônicos e colocá-lo junto a si mesmo.

Eu recomendo a leitura através de todas as instruções antes de começar, como que vai fazer algumas coisas claras que pode ser confuso na primeira vez. Além disso, este pode ser parecido com um longo projeto, avançado devido ao comprimento das instruções, mas é realmente muito simples. Não há necessidade de ser intimidado - este é um projeto de nível iniciante que você pode obter alguns resultados satisfatórios com, em seguida, construir sobre como você aprende mais. Não gostam deste estilo de robô? Aqui está um pouco mais robôs Arduino você pode facilmente construir em seu lugar.8 Arduino Robots Você pode construir para menos de $ 1258 Arduino Robots Você pode construir para menos de $ 125consulte Mais informação

Aqui está o que temos, depois de tomar tudo para fora da embalagem:

Arduino-bot-peças

Para começar, vamos anexar os motores e a ponte H (o cartão que fornece energia aos motores) para a parte inferior do chassi. Em primeiro lugar, prender os quatro suportes de metal (que está rectangular, blocos de metal perfurada) para cada motor, utilizando dois parafusos longos e duas porcas.

Arduino-bot-colchete

Você vai precisar para se certificar de que eles estão ligados corretamente, então confira a imagem abaixo para certificar-se de que o lado do bloco com dois furos terão de enfrentar para baixo. Note-se que os fios em cada motor estão apontando em direção ao centro do chassi.

Arduino-bot-motores

Agora, cada motor pode ser ligado ao chassis por meio de duas cavilhas curtas na parte inferior de cada suporte de metal. Aqui está uma visão da parte inferior do chassi para que você possa ver onde os parafusos devem ser:

motor-parafusos-inferior-vista

O próximo passo é o de garantir a ponte H (que é o bordo vermelho, no meu kit) para o chassis. Você pode querer esperar até que todos os fios estão ligados à ponte H antes de fazer isso, mas isso é com você (eu achei que fosse mais fácil). Uma breve nota: o meu kit estava faltando um número de elementos de fixação, então eu usei fita isolante para proteger a ponte. No entanto, você pode ver aqui, onde os parafusos e porcas teria ido:

h-ponte-parafusos

Agora que a ponte H foi anexado, você pode começar a fiação até a fonte de alimentação. Porque suporte da bateria de seis AA vem com um adaptador DC, você precisa se quer cortar a ponta (que eu fiz) ou fios jumper correm para as próprias baterias.

-Bateria-titular-CC removido

Não importa como você decidir fazê-lo, você vai correr o fio positivo à porta identificada como “VMS” eo fio negativo para o rotulado como “GND” na ponte. Aperte os fixadores e verifique se eles são seguros. Então, você vai conectar os fios do motor. Em ambos os lados, há um conjunto de dois um ports- é rotulado de “MOTORA” eo outro “MOTORB.” Ambos fios vermelhos em cada lado vai entrar na porta verde mais central, e ambos os fios pretos vai para o exterior. Esta imagem deve torná-la mais clara:

H-Ponte-motores-wired-up

Descobri que eu tinha que tirar um pouco da habitação fora dos fios do motor para chegar a este trabalho. Agora que você tem os motores e a fonte de alimentação todos os fios para cima, deslize as rodas para os eixos de transmissão motor, e anexar os quatro eixos de cobre nos locais mostram na imagem abaixo (cada eixo de cobre precisa de um pequeno parafuso). Este robô está começando a tomar forma!

Roda-on-eixos de transmissão

Agora, definir que parte do chassis de lado e pegar o outro que vai sentar-se no topo. O próximo passo é anexar o Arduino de novo, eu tive que usar fita isolante, mas você deve ser capaz de proteger melhor seu com alguns parafusos e porcas.

Arduino-chassis

O próximo passo requer o micro servo, a travessa preto, o suporte do servo (que consiste em três peças de plástico preto), e alguns pequenos parafusos. Usar um dos parafusos pontiagudos maiores no kit para fixar a travessa preto para o micro servo:

negro-barra-micro servo;

Em seguida virar o servo de cabeça para baixo para o anel de plástico preto de suporte. Certifique-se de que os fios que saem do servo estão enfrentando na mesma direção que o faz mais parte do titular (novamente, veja a imagem abaixo), e utilizar quatro minúsculos parafusos para fixar a barra (existem quatro furos na detentor que alinhe com os furos na barra transversal).

servo-preto-ring

Video: Arduino para Iniciantes - Aula 05 - Protoboard - Projeto Carro de Controle Remoto - Parte 1

Aqui está o que parece após ele está conectado:

anel de bordo de fundo

Por último, tomar as outras duas peças de suporte do servo e encaixá-los para o servo (existem ranhuras nas partes laterais que correspondem a aba de plástico sobre o servo).



completou-servo-titular

Agora que o titular do servo é completa, pode ser montado no chassis.

De servo-suporte montado

Aqui é onde os parafusos ir:

servo-titular-chassis-parafusos

É hora de dar o nosso robô alguns olhos. Anexar o sensor ultra-sónico para titular o servo usando dois laços zip.

ultrassónica-sensor de zip-laços

Se você estiver trabalhando a partir do mesmo kit como eu sou, você recebeu uma blindagem do sensor Arduino. Nós não vai usá-lo nesta compilação, mas você pode colocá-la no topo do UNO agora se você quiser (como eu tenho na imagem abaixo). Apenas alinhe os pinos na parte inferior do escudo com as portas de E / S no Arduino e pressione para conectá-los. Você não precisa dele neste momento, mas escudos pode vir a calhar.O Top 4 Arduino escudos para Superpower seus projetosO Top 4 Arduino escudos para Superpower seus projetosVocê comprou um starter kit Arduino, você seguiu todos os guias básicos, mas agora você bateu uma pedra de tropeço - você precisa de mais bits e bobs para realizar seu sonho de eletrônicos. Felizmente, se você tem ...consulte Mais informação

Arduino-sensor de escudo

Video: Como fazer seu primeiro robô!

Se você conectar um blindagem do sensor ou não, agora você vai precisar de quatro fios para ligar o sensor ultra-sônica para o Arduino. Há quatro pinos no sensor, VCC, GND, TRIG, e ECHO. Conectar VCC para o pino 5V no Arduino, GND a GND, e TRIG e ECHO para pinos I / O 12 e 13.

Agora, pega a parte inferior do chassis, e se conectar seis fios jumper aos pinos de E / S da ponte H (que está marcado ENA, IN1, IN2, IN3, IN4 e ENB). Tome nota do que de cor dos fios são conectados a quais portas, como você vai precisar saber mais tarde.

h-bridge-fios

Agora é hora de começar a colocar essa coisa juntos. Agarrar a parte superior do chassis e configurá-lo no topo dos veios de cobre ligados à parte inferior, e puxar os fios ligados à ponte em H através do orifício no centro do chassis. Ligar os seis fios para portas de E / S como se segue:

  • ENA a porta I / O 11
  • ENB a porta I / O 10
  • A1 a porta I / O 5
  • A2 a porta I / O 6
  • B1 a porta I / O 4
  • B2 a porta I / O 3

arduino-bot-fiação

Agora, use quatro parafusos curtos para fixar a parte superior do chassi para os eixos de cobre. Definir suporte da bateria de seis AA na parte superior do chassis (parafuso-lo para baixo se você pode), anexar suporte de célula do 9V para o Arduino, e este bot está pronto para balançar!

Arduino-bot-finais

Bem, quase pronto para o rock. Ele não tem personalidade suficiente ainda.

arduino-bad-bot

Aqui vamos nós. Agora, para dar-lhe um cérebro. Vamos fazer alguma programação.

A primeira coisa que vamos fazer é um teste para se certificar de que a ponte e os motores estão ligados corretamente. Aqui está um esboço rápido que vai dizer o bot para impulsionar por meio segundo, conduzir para trás por meio segundo, depois vire à esquerda e à direita:

// Motor Um dos pinos (enableA = permitir a motor, pinA1 = para a frente, para trás pinA2 =)
int enableA = 11-
int pinA1 = 6-
int pinA2 = 5-
//Motor B pinos (enabledB = permitir a motor, pinB2 = para a frente, para trás pinB2 =)
int enableB = 10-
int pinB1 = 4-
int pinB2 = 3-
//Isso permite que você execute o circuito uma única vez para testes
booleano execução = verdade-
vazio configuração() {
pinMode(EnableA, OUTPUT) -
pinMode(PinA1, OUTPUT) -
pinMode(PinA2, OUTPUT) -
pinMode(EnableB, OUTPUT) -
pinMode(PinB1, OUTPUT) -
pinMode(PinB2, OUTPUT) -
}
vazio laço() {
E se (corre) {
demora(2000) -
enableMotors() -
//Vá em frente
progressivo(200) -
//ir para trás
para trás(200) -
//Vire à esquerda
vire à esquerda(400) -
costa(200) -
//Vire à direita
vire à direita(400) -
costa(200) -
//Isso interrompe o loop
executar = falso-
}
}
//Definir os comandos H-ponte de alto nível
vazio enableMotors()
{
motorAOn() -
motorBOn() -
}
vazio disableMotors()
{
motorAOff() -
motorBOff() -
}
vazio progressivo(int Tempo)
{
motorAForward() -
motorBForward() -
demora(Tempo) -
}
vazio para trás(int Tempo)
{
motorABackward() -
motorBBackward() -
demora(Tempo) -
}
vazio vire à esquerda(int Tempo)
{
motorABackward() -
motorBForward() -
demora(Tempo) -
}
vazio vire à direita(int Tempo)
{
motorAForward() -
motorBBackward() -
demora(Tempo) -
}
vazio costa(int Tempo)
{
motorACoast() -
motorBCoast() -
demora(Tempo) -
}
vazio freio(int Tempo)
{
motorABrake() -
motorBBrake() -
demora(Tempo) -
}
//Definir os comandos H-ponte de baixo nível
//permitir motores
vazio motorAOn()
{
digitalWrite(EnableA, HIGH) -
}
vazio motorBOn()
{
digitalWrite(EnableB, HIGH) -
}
//desativar motores
vazio motorAOff()
{
digitalWrite(EnableB, LOW) -
}
vazio motorBOff()
{
digitalWrite(EnableA, LOW) -
}
//controlos do motor A
vazio motorAForward()
{
digitalWrite(PinA1, HIGH) -
digitalWrite(PinA2, LOW) -
}
vazio motorABackward()
{
digitalWrite(PinA1, LOW) -
digitalWrite(PinA2, HIGH) -
}
//controlos do motor B
vazio motorBForward()
{
digitalWrite(PinB1, HIGH) -
digitalWrite(PinB2, LOW) -
}
vazio motorBBackward()
{
digitalWrite(PinB1, LOW) -
digitalWrite(PinB2, HIGH) -
}
//costeando e frenagem
vazio motorACoast()
{
digitalWrite(PinA1, LOW) -
digitalWrite(PinA2, LOW) -
}
vazio motorABrake()
{
digitalWrite(PinA1, HIGH) -
digitalWrite(PinA2, HIGH) -
}
vazio motorBCoast()
{
digitalWrite(PinB1, LOW) -
digitalWrite(PinB2, LOW) -
}
vazio motorBBrake()
{
digitalWrite(PinB1, HIGH) -
digitalWrite(PinB2, HIGH) -
}
vista raw4wd-robô test.inohosted com ❤ por GitHub
Isso é um monte de código para um teste simples, mas a definição de todas essas funções faz com que seja mais fácil de ajustar mais tarde. (Big graças a Billwaa para o seu post sobre a utilização do H-ponte para definir essas funções.) Se algo deu errado, verificar todas as suas conexões e que os fios são conectados aos pinos corretos. Se tudo funcionar, é hora de passar para o teste de sensor. Para usar o sensor de ultra-som, você vai querer baixar a biblioteca NewPing, e depois usar Esboço gt; incluem Biblioteca gt; Adicionar .ZIP Biblioteca ... para carregar a biblioteca.

add-zip-biblioteca

Certifique-se que você vê a incluir instrução na parte superior do seu do esboço, se você não faça, batida Esboço gt; incluem Biblioteca gt; NewPing. Uma vez feito isso, carregar o seguinte esboço:

#incluir lt;NewPing.hgt;
//Diga ao Arduino onde o sensor é ligado
NewPing sonar(12, 13) -
longo polegadas-
vazio configuração() {
//Ative o monitor serial para que você possa ver a saída do sensor
Serial.início(9600) -
}
vazio laço() {
demora(50) -
//Ping o sensor para determinar a distância em polegadas
= polegadas sonar.ping_in() -
//Imprimir a distância em polegadas para o monitor serial
Serial.impressão(polegadas) -
Serial.impressão(" dentro.") -
Serial.impressão(" n") -
}
visualizar rawnewping_demo.inohosted com ❤ por GitHub

Carregar o esboço, e abrir o monitor serial usando Ferramentas gt; Serial monitor. Você deverá ver uma sequência rápida atualização dos números. Segurar sua mão na frente do sensor e ver se esse número muda. Mova sua mão dentro e para fora, e você deve obter uma medida de quão longe sua mão é a partir do sensor.

Video: Aprenda Arduino: Robótica para Iniciantes / robotics for beginners

sensor_test

Se tudo funcionou corretamente, é hora de colocá-lo todos juntos e deixar essa coisa correr! Aqui está o código para o robô agora. Como você provavelmente pode dizer, este é, basicamente, os dois esboços de teste juntos com um agregado if para controlar o comportamento do robô. Nós demos-lhe um comportamento muito simples para evitar obstáculos: se detectar algo menos do que quatro polegadas de distância, ele vai backup, vire à esquerda, e começar a se mover novamente. Aqui está um vídeo do bot em ação.

Dê seu robô é um pouco de vida

Uma vez que você tenha obtido esse comportamento funcionando corretamente, você pode adicionar mais complexo comportamento- fazer o suplente robô entre virar à esquerda e à direita, ou escolher randomly- soar um alarme se ele fica perto de algo- apenas girar, em vez de apoio para cima você `re realmente limitado apenas pela sua imaginação. Você pode usar praticamente qualquer coisa na sua starter kit Arduino para adicionar mais funcionalidades. Você vai notar também que não temos codificado nada para o servo ainda: você pode realmente faz “olhos” do seu robô frente e para trás. talvez usando-os a procurar um caminho em vez de apenas fazer backup sempre que encontra um obstáculo em frente.O que está em seu Arduino Starter Kit? [Arduino iniciantes]O que está em seu Arduino Starter Kit? [Arduino iniciantes]Confrontados com uma caixa cheia de componentes eletrônicos, é fácil de ser oprimido. Aqui está um guia para exatamente o que você vai encontrar no seu kit.consulte Mais informação

Deixe-nos saber se você decidir construir este robô ou outro, e diga-nos como você optar por personalizar o seu comportamento ou aparência. Se você tem dúvidas sobre este robô, publicá-las nos comentários abaixo, e eu vou ver se eu posso ajudar!


Artigos relacionados