Quando publicamos o post Controle motor DC 12V com o Motor Shield Arduino, recebemos várias mensagens dos leitores, com dúvidas sobre como utilizar as portas que “sobram” no shield para ligar lâmpadas e sensores. Por isso vamos apresentar um projeto de um Robô seguidor de linha, por muito conhecido também por robô segue faixa.
Segundo o fabricante deste shield, as portas utilizadas pelos motores são as seguintes :
- Controle de motores DC : Pinos 11, 3, 5 e 6
- Controle de motores de passo : Pinos 4, 7, 8 e 12
- Controle de servo motores : Pinos 9 e 10
Desta forma, as portas que podemos utilizar livremente são as 6 portas analógicas, assim como as digitais 2 e 13, isso se estivermos falando de um Arduino Uno. Em um Arduino Mega, por exemplo, todas as demais portas também estarão disponíveis.
Montando um Robô Seguidor de Linha:
Um bom exemplo de utilização deste Arduino motor shield é em aplicações de robótica, como por exemplo na montagem de um robô seguidor de linha. Para facilitar sua vida existem Kits de chassi para robôs com 2 ou 4 rodas e é claro que você encontra na MakerHero tudo o que precisa:
Esses kits já vem com motores, suporte de baterias, acessórios e você só precisa adicionar o Arduino (ou outra placa de sua preferência), os sensores e o circuito controlador de motores. Para o caso do Arduino, recomendamos a utilização do Motor Shield citado acima, já que ele se encaixa perfeitamente em um Arduino Uno economizando espaço na montagem do robô.
Podemos utilizar como sensor os LDR´s (resistores dependentes de luz), ou então sensores ópticos reflexivos, como o TCRT5000, que terão a função de “enxergar” a linha e transmitir essa informação para o Arduino.
Projeto Robô Seguidor de Linha:
Para o nosso “carrinho” segue faixa, vamos utilizar 3 sensores ópticos ligados lado a lado. Conforme a linha for detectada (ou não), cada sensor enviará ao Arduino as informações sobre a intensidade do sinal infravermelho refletido, e o programa usará essas informações para calcular a velocidade de cada motor. A ilustração abaixo mostra, de forma resumida, como os sensores se comportam:
Transportando essa idéia para o nosso motor shield, vamos utilizar as portas A0, A1 e A2 para ligação dos sensores. O motor da esquerda será ligado ao conector M1, e o motor da direita ao conector M4, utilizando a própria alimentação do Arduino (mantenha o jumper PWR na placa).
Demonstramos a ligação dos sensores em uma protoboard, utilizando resistores de 330 ohms para o led infravermelho (parte superior/azul do sensor), e resistores de 10 K na parte inferior (receptor) :
A maneira mais conveniente de ligar os sensores ao shield é utilizar uma barra de pinos (macho ou fêmea) soldada à placa, como na imagem abaixo :
Controle do Robô Seguidor de Linha com Arduino:
Para acionar o circuito vamos utilizar, com algumas adaptações, o programa criado por Michael McRoberts e disponível no livro Arduíno Básico. Adicionamos as funções da biblioteca AFMotor, responsável por comandar o motor shield. A biblioteca AFMotor pode ser encontrada nesse link. Descompacte a pasta, renomeie para AFMotor, e coloque essa pasta dentro da pasta LIBRARIES do programa (IDE) do seu Arduino. Não esqueça de sair e carregar a IDE novamente para que a biblioteca seja reconhecida pelo programa.
//Programa : Motor shield com sensor TCRT5000 //Adaptacoes : MakerHero // //Baseado no programa original de Michael McRoberts #include <AFMotor.h> AF_DCMotor motor_esq(1); //Seleciona o motor 1 AF_DCMotor motor_dir(4); //Seleciona o motor 4 int SENSOR1, SENSOR2, SENSOR3; //deslocamentos de calibracao int leftOffset = 0, rightOffset = 0, centre = 0; //pinos para a velocidade e direcao do motor int speed1 = 3, speed2 = 11, direction1 = 12, direction2 = 13; //velocidade inicial e deslocamento de rotacao int startSpeed = 70, rotate = 30; //limiar do sensor int threshold = 5; //velocidades iniciais dos motores esquerdo e direito int left = startSpeed, right = startSpeed; //Rotina de calibracao do sensor void calibrate() { for (int x=0; x<10; x++) //Executa 10 vezes para obter uma media { delay(100); SENSOR1 = analogRead(0); SENSOR2 = analogRead(1); SENSOR3 = analogRead(2); leftOffset = leftOffset + SENSOR1; centre = centre + SENSOR2; rightOffset = rightOffset + SENSOR3; delay(100); } //obtem a media para cada sensor leftOffset = leftOffset /10; rightOffset = rightOffset /10; centre = centre / 10; //calcula os deslocamentos para os sensores esquerdo e direito leftOffset = centre - leftOffset; rightOffset = centre - rightOffset; } void setup() { calibrate(); delay(3000); } void loop() { //utiliza a mesma velocidade em ambos os motores left = startSpeed; right = startSpeed; //le os sensores e adiciona os deslocamentos SENSOR1 = analogRead(0) + leftOffset; SENSOR2 = analogRead(1); SENSOR3 = analogRead(2) + rightOffset; //Se SENSOR1 for maior do que o sensor do centro + limiar, // vire para a direita if (SENSOR1 > SENSOR2+threshold) { left = startSpeed + rotate; right = startSpeed - rotate; } //Se SENSOR3 for maior do que o sensor do centro + limiar, // vire para a esquerda if (SENSOR3 > (SENSOR2+threshold)) { left = startSpeed - rotate; right = startSpeed + rotate; } //Envia os valores de velocidade para os motores motor_esq.setSpeed(left); motor_esq.run(FORWARD); motor_dir.setSpeed(right); motor_dir.run(FORWARD); }
Conforme o motor e chassi que for utilizar, você deve ajustar os parâmetros de velocidade (startSpeed) e deslocamento de rotação (rotate), evitando que os motores girem muito rápido ou muito devagar.
Gostou? Deixe seu comentário logo abaixo.
Exelente , gostei muito , Parabens.
Posso colocar um potenciômetro de 500 k nesse robô,quero que ele seja rápido e vou fazer ele ligar no controle será que da certo ?
Alzilone
Talvez um potenciômetro de 500K seja muito. De repente um de 10K deva ser melhor para a utilização.
Abraços!
Diogo – Equipe MakerHero
ola eu não percebi porque esta usando um carrinho com duas rodas e outro carrinho com quatro.
se me podesse ajudar agradecia.
Boas eu estou fazendo uma prova de aptidão e estou fazendo um robo em que transporta comida e se move usando o seguidor de linha mas a programação está dando um problema e não sei resolver você poderia me ajudar?
está aqui o código
// seguidor de linha
#include
AF_DCMotor motor_esq(1); //Seleciona o motor 1
AF_DCMotor motor_dir(4); //Seleciona o motor 4
int SENSOR1, SENSOR2, SENSOR3;
//deslocamentos de calibracao
int leftOffset = 0, rightOffset = 0, centre = 0;
//pinos para a velocidade e direcao do motor
int speed1 = 3, speed2 = 11, direction1 = 12, direction2 = 13;
//velocidade inicial e deslocamento de rotacao
int startSpeed = 70, rotate = 30;
//limiar do sensor
int threshold = 5;
//velocidades iniciais dos motores esquerdo e direito
int left = startSpeed, right = startSpeed;
//sensor de linha
#define left 22
#define center 24
#define right 26
//SENSOR DE COR
int s0 = 30;
int s1 = 32;
int s2 = 34;
int s3 = 36;
int out = 38;
//Variaveis cores
int red = 0;
int green = 0;
int blue = 0;
// sensor ultrasónico
//Trig e Echo pin
#define trigPin 7
#define echoPin 6
//Definir variaveis ( sensor ultrasónico)
long duration;
int distance;
const int distanceMin=30; //DISTÂNCIA MINIMA EM cm
//Motor A (ESQUERDA)
int ENA = 8;
int IN1 = 9;
int IN2 = 10;
int IN3 = 4;
int IN4 = 5;
int ENB = 3;
int velocidade = 200;
//seguidor de linha
void calibrate()
{
for (int x=0; x SENSOR2+threshold)
{
left = startSpeed + rotate;
right = startSpeed – rotate;
}
//Se SENSOR3 for maior do que o sensor do centro + limiar,
// vire para a esquerda
if (SENSOR3 > (SENSOR2+threshold))
{
left = startSpeed – rotate;
right = startSpeed + rotate;
}
//Envia os valores de velocidade para os motores
motor_esq.setSpeed(left);
motor_esq.run(FORWARD);
motor_dir.setSpeed(right);
motor_dir.run(FORWARD);
}
//Deteta a cor (SENSOR DE COR)
Serial.print(“Vermelho :”);
Serial.print(red, DEC);
Serial.print(” Verde : “);
Serial.print(green, DEC);
Serial.print(” Azul : “);
Serial.print(blue, DEC);
Serial.println();
delay(200);
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
//Ler a cor vermelha
red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
digitalWrite(s3, HIGH);
//Ler a cor azul
blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
digitalWrite(s2, HIGH);
//Ler a cor verde
green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
// SET UP SENSOR ULTRASÓNICO
long duracion, distancia;
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
duracion=pulseIn(echoPin,HIGH);
distancia=duracion/58;
Serial.println(String(distancia)+”cm(front)”);
delay(100);
//CONTROLO DO MOTOR – MOTOR A (ESQUERDA) : motorPin1, motorPin2 & MOTOR B (DIREITA) : motorpin3, motorPin4
if (distancia<distanceMin) {
// ESTE CÓDICO VAI PARAR OS MOTORES QUANDO A DISTANCIA FOR MENOR DO QUE A DISTANCIA MINIMA (LIMITE)
//digitalWrite(IN1, LOW);
// digitalWrite(IN2, LOW);
//digitalWrite(IN3, LOW);
// digitalWrite(IN4, LOW);
//Para o motor A
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
//Para o motor B
digitalWrite(IN3, HIGH);
digitalWrite(IN4, HIGH);
digitalWrite(13,LOW); //DESLIGA O LED
digitalWrite(12,HIGH); //LIGA O LED
delay(3000);//TEMPO 3 SEGUNDOS
}
// OS MOTORES COMEÇAM QUANDO A DISTÂNCIA FOR MAIOR DO QUE A DISTÂNCIA MINIMA(LITIME)
else {
digitalWrite(12,LOW);//O LED DESLIGA
digitalWrite(13,HIGH);
//ESTE CÓDICO FAZ OS MOTORES TRABALHAREM NO SENTIDO DOS PONTEIROS DO RELÓGIO
//digitalWrite(IN1, LOW);
//digitalWrite(IN2, HIGH);
//digitalWrite(IN3, LOW);
//digitalWrite(IN4, HIGH);
//Gira o Motor A no sentido horario
analogWrite(ENA, velocidade);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
//Gira o Motor B no sentido horario
analogWrite(ENB, velocidade);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
}
Boa tarde,
Em quais pinos do sensor vc ligou os fios no desenho. Lá não mostra.
E quais foram ligados.
Nilton,
Você pode olhar para seu sensor exatamente como esta na imagem e então fazer a ligação 🙂
Abraços!
Diogo – Equipe MakerHero
vcs teriam essa progamaçao para placa uno ?
Isabela,
A programação do post foi feita no UNO.
Abraços!
Diogo – Equipe MakerHero
estou construindo o meu robô, comecei a fazer a programação do arduino mas toda vez que eu confirmo da erro na parte #include
o que eu ? me ajuda por favor
Olá, Isabela,
Você deve baixar e instalar a biblioteca AFMotor: https://github.com/adafruit/Adafruit-Motor-Shield-library/zipball/master
Para instalar, basta extrair o arquivo .zip na pasta Documentos>Arduino>Libraries.
Abraços!
Diogo – Equipe MakerHero
Muito obrigada
boa noite, fiz o que você disse mas,infelizmente continua dando errado, você poderia explicar melhor ou outra opção?
vocês tem essa programação para placa o R3?
vocês tem loja física, se tiverem, onde é´?
Isabela,
Preciso que você descreva o erro para que eu possa ajudar. Abra um tópico lá no fórum 🙂
Abraços!
Diogo – Equipe MakerHero
Arduino: 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Placa:”Arduino/Genuino Uno”
O sketch usa 1882 bytes (5%) de espaço de armazenamento para programas. O máximo são 32256 bytes.
Variáveis globais usam 29 bytes (1%) de memória dinâmica, deixando 2019 bytes para variáveis locais. O máximo são 2048 bytes.
Ocorreu um erro enquanto o sketch era carregado
Este relatório teria mais informações com
“Mostrar a saida detalhada durante a compilação”
opção pode ser ativada em “Arquivo -> Preferências”
Bom dia! Estou precisando de um programação para controlar simultaneamente 4 guindastes através de um controle, de forma a produzir movimento em uma peça central em diversas direções dentro de um espaço retangular. Eu consigo fazer essa movimentação usando os guindastes independentes, entretanto tenho que operar todos, e o processo é lento sem muita precisão, utilizo guinchos de 12 vol que asão utilizados em viuculos of road.
Como poderia me ajudar a desenvolver essa função.
Boa noite,
Primeiramente parabéns pelo tutorial, muito bom!!!
Tenho um chassi de duas rodas conforme modelo acima. Neste caso onde conecto os sensores reflexivos. E também gostaria de perguntar se posso utilizar o sensor seguidor de linha trilha line track faixa Arduíno neste projeto.
Olá Edson,
Os sensores precisam ficar na parte de baixo do chassi, além de ficarem na frente.
Geralmente os módulos de seguidor de linha usam o mesmo tipo de sensor, o sensor reflexivo. Portanto, você pode usar um módulo pronto no seu projeto usando a mesma ideia desse tutorial.
Abraço!
Rosana – Equipe MakerHero
Bom dia Rosana,
Obrigado pelo retorno.
Mas no case chassi duas rodas em como “prender” este dois sensores na parte debaixo?
E no caso do outro tipo de sensor que comentei eu não entendi se da certo?
oi tudo bom, cara nao tem como vc me passar o codigo dos 4 motores
Boa noite, Estou iniciando meus estudos com Arduino em um projeto da escola estadual onde trabalho, Mogi das Cruzes, Vamos adquirir a base para o seguidor de linha mas primeiro fizemos a programação. O Arduino está acusando erros nas linhas onde está escrito calibragem ( ). Qual valor deveremos inserir ou o que fazer para que o programa “rode” corretamente. Meus alunos trabalham com o kit Arduino Uno e são da primeira série do Ensino Médio. Grata;
Olá Josana!
Não é necessário inserir nenhum valor para que o programa compile sem erros.
Primeiramente você precisa baixar a biblioteca nessa link: https://github.com/adafruit/Adafruit-Motor-Shield-library/zipball/master
Depois descompacte a pasta, renomeie para AFMotor, e coloque essa pasta dentro da pasta LIBRARIES do programa (IDE) do seu Arduino.
Não esqueça de sair e carregar a IDE novamente para que a biblioteca seja reconhecida pelo programa.
Verifique se seu computador não está traduzindo o código para o português.
Boa sorte no projeto e conte com a gente!
Rosana – Equipe MakerHero
Boa noite! Estou tentando programar um robot seguidor de linha, para isso estou usando dois tracker sensor HW-006 V1.2. como posso adaptar a função calibrate? Obrigado
Olá,
Você pode colocar esse problema com mais detalhes no nosso fórum? Lá o pessoal pode te ajudar melhor nisso.
Abraços!
Rosana – Equipe FelipeFlop
VIsh, já consegui fazer um mini drone e controlar carrinho via bluetooth, e quando se trata de fazer um carrinho de seguidor de linha não alcancei ainda nesse!
Tudo está ok até conectar os motores na M1 e M4 da motorShield. To aqui quebrando a cabeça desde ontem até agora, nem sei o que fazer mais não.
Quando coloco o carrinho na linha ele nao obedece corretamente e as vezes a roda nao gira ou fica saindo do lugar.
Eu comprei esse kit https://www.makerhero.com/produto/kit-chassi-2wd-robo-para-arduino/…
Tem algo diferente que eu deveria fazer em relação a esse kit ao que nao está nas especificações daqui ?
A velocidade? rotação ?
Pq os sensores estão ok. Não sei o que está errado.
São as pilhas ? Minhas pilhas são a Panasonic Power alkaline AA 1.5V.
Eu as conecto diretamente na PWR_EXT ? Foi assim como coloquei como vcs explicaram no outro forum
Coloquei o codigo igual ao que está aqui, e tentei de varias formas. Testei os motores ainda pra ver se estavam com defeito, e tudo ok, os sensores tbm tudo ok. Alguém pode me ajudar a desvendar isso ?
Boa noite amigo, eu estou com um projeto em andamento utilizando a motor shield também porém preciso do desenho desta motor shield para ser utilizado no fritzing, você poderia me fornecer o projeto de desenho que foram utilizados nas ilustrações?
Muito obrigado!!
Olá Jean!
Infelizmente não temos mais esse desenho.
Abraços!
André – Equipe MakerHero
Boa tarde
Construi um carro robot com base no arduino no entanto não sei o que se passa ele anda só à roda poderá ajudar me a perceber onde esta o problema?
Obrigada
Bom dia. Na programação tem duas variáveis, rotate e threshold . O que seria estas variáveis?
Olá Marcelo!
O threshold é o limiar do sensor, a partir de qual valor ele vai considerar para virar.
O rotate é quanto de velocidade a mais, ou a menos, que ele vai considerar para fazer as curvas.
Abraços!
André – Equipe MakerHero
Boa tarde, os meus motores não estão girando na mesma velocidade, um está mais rápido que o outro, o que pode estar ocasionando este problema ?
Olá Vinícius!
Você experimentou ligar os dois (um de cada vez) no 5 V para ver se a velocidade é diferente mesmo?
Abraços!
André – Equipe MakerHero
Sim eu fiz isso, ligando cada um de uma vez eles giram com a mesma velocidade, o problema é que quando os dois vão ser ligados juntos não estão girando na mesma velocidade, o que faz com que ao invés de seguir a linha o carrinho fique girando.
Olá Vinícius!
Você tem que rever a sua programação, parece algum erro nela.
Abraços!
André – Equipe MakerHero
Tenho uma dúvida! Caso eu fosse realizar a programação sem o uso de bibliotecas, utilizando apenas as portas PWM em quais pinos seria o controle de velocidade dos motores, e quais os pinos para o controle da direção dos motores?
Olá Mateus!
Você pode entrar na biblioteca e ver quais pinos são definidos. Provavelmente esta informação está no começo do código.
Abraços!
André – Equipe MakerHero
Precisava de um código Fuzzy
Preciso de um código que funcione com um Arduino Nano, uma POnte-H L298N e um módulo Bluetooth HC_08 para Iphone 4. Me ajuda aí.
Olá Rafael!
Você pode adaptar esse código para as suas necessidades.
Abraços!
André – Equipe MakerHero
Pessoal, estou precisando fazer um robô seguidor de linha com arduíno e ponte h, ele vai trabalhar como um garçom, ou seja ele tem que ir e voltar pra o lugar que quando quero. Estou com dificuldade de fazer ele parar e depois fazer o retorno, ele já tá seguindo linha, mas não consigo fazer ele parar onde eu quero. Vcs tem alguma dica?
Muito obrigado, se puderem me responder no e-mail [email protected].
Olá Pedro!
Para fazer o robô parar é necessário colocar mais algo no trajeto dele.
Podes colocar uma linha prateada do lado, para ele perceber que chegou na seção prateada e deve parar. Pode colocar até um sensor a mais só pra isso.
Abraços!
André – Equipe MakerHero
Como eu poderia eliminar a calibração no programa? Quero comprar um sensor com potenciômetro.
Olá Fabiano!
Ao retirar a calibração do programa ele pode não funcionar corretamente.
Abraços!
André – Equipe MakerHero
Olá, gostaria de uma ajuda, vou fazer um robô seguidor de linha para uma competição, como faço para deixar ele mais rápido. Quais são os Conselhos em todos os critérios para ter um carro mais veloz? (que tipo usar) entre eles . Desde já muito obrigado !
Bom dia, eu não consigo compilar e nem verificar a programação. Eu uso o programa Arduíno 1.6.12
Olá, a linha falada acima nas instruções que o carrinho a segue, depende de qual material? Fita isolante? ….
É possível substituir o Motor Shield pela ponte H ? Estou tendo dificuldades em fazer essa troca
Opa grande amigo estou com um projeto para além destes componentes, com ultrasonic, preciso saber como conseguir incluir, já que o robô terá que desviar das coisas a sua frente….
Outra coisa posso utilizar esses comandos assim?
AF_DCMotor motor_esq(1, 2);
AF_DCMotor motor_dir(3, 4);
Olá.
Estou com um problema no Projeto do robô seguidor de linha.
Meu nome é Rafael Henriques e fiz esse projeto com um Arduino Mega.
Fiz o esquema dos sensores com a Alimentação Vcc 5+ pelo próprio Shield na pinagem próxima as entradas dos sensores a1, a2 e a3. A alimentação do Shield foi feita através de 4 pilhas AA e foi dividida para alimentar também ( em paralelo) o Arduino Mega.
Quando terminei de fazer o carro seguidor de linha, a saída para o Motor M1 tinha como saída 1 V enquanto a saída do Motor M2 tinha 1,6 V o que gerava um descompasso no prosseguir do robô.
Utilizei a programação que você disponibilizou acima.
Tem alguma ideia de qual pode ser o problema?
Alguém mais esteve com o mesmo problema?
Agradeço desde já a atenção e dedicação ao projeto.
Um abraço.
Boa tarde Adilson, estou montando o seguidor de linha só que estou utilizando o shield l298. como faço a alteração do programa
Achei que a maneira como foi explicado é de extrema importância para o aprendizado
como seria feito se fosse com controle PID
Boa tarde Sr. Adilson.
Gostaria de saber como fazer a calibragem deste sensor https://www.makerhero.com/pd-42bb99-modulo-sensor-ir-5-canais-para-robo-seguidor-de-linha.html?ct=&p=1&s=1
No carrinho acima.
O que mudaria na programação?
Atenciosamente,
Rogerio
Boa tarde.
Você saberia dizer se se seria possível a adaptação de uma garra ou quem sabe até mesmo um Braço Robótico sobre o carro??
Boa tarde.
Você saberia dizer se se seria possível a adaptação de uma garra ou quem sabe até mesmo um Braço Robótico sobre o carro?
Gostaria de utilizar esse mesmo materiais e programação no meu projeto robô seguidor de linha mais vou precisar de um LDR para dar a partida, como posso acrescentar na programação. Também preciso de um orçamento de tudo que é necessario.
Olá!! boa tarde eu queria a lista de material dos equipamentos para eu monta meu robo… onde eu posso encontra? minha pergunta era essa desde ja muito obrigado.
Olá, é possível utilizar a mesma ideia para um AGV?
Essa programação esta estranha, estou usando os mesmo componentes, comprado na loja, e esse mesmo codigo. porem, o sensor do centro ta travando uma roda e girando a outra mais rapdo, e os outros dois nao fazem nada. nao e o sensor porque ja mudei e eles funcionam. é uma pena que nao tenhamos nenhum suporte de ajuda. nunca mais compro nada aqui. presciso do projeto funcionando amanha, e ate agora nenhuma resposta
Boa noite,
Estou com o mesmo problema que você. Já passei a alimentar o conjunto Arduíno + Shield pela alimentação externa do Arduíno e não do Shield. Já conferi o circuito na protoboard. Até alimentar com bateria de 9V já tentei.
O fato é que parece que o sensores não estão atuando.
Você conseguiu resolver esse problema?
No aguardo…
Olá voce está fornecendo pouca corrente para os motores.
Boa Noite. Qual é a logica desses sensores? o que faz ele identificar apenas as linhas pretas e não o chão completo. Espero ter uma resposta, ja que sou cliente ha um bom tempo.
grande a logica é que o led emite a luz no chao preferencialmente claro e o receptor capta essa frequencia de luminosidade,quando ele emitir na linha que é preta, a frequencia da luminosidade é diferente.
Olá, muito bom o projeto funciona perfeitamente, gostaria de aprofundar e saber como ficaria a minha programação se a pista fosse preta e as linhas fossem brancas, ou seja o inverso da forma atual.
Boa noite, gostaria de saber mais sobre as ligacoes principalmente as: int speed1 = 3, speed2 = 11, direction1 = 12, direction2 = 13;
//limiar do sensor
int threshold = 5;
Tenho que ter esse trabalho funcionando ate sabado. Meeeeee
Ajudaaaa
Agradecido desde já
Bom dia. Onde consigo o modelo em pdf do carro, orte das placas para eu mesmo cortar o mdf ou o acrilico? jah procurei na internet toda
Alguém pode me ajuda ?
CONSTRUIR ROBÔ:
• no chão uma moeda de R$0,10 está distante horizontalmente 300mm de uma garrafa PET de 2L (sem tampa e com 500ml de líquido)
• Desafio: colocar a moeda dentro da garrafa no menor tempo sem derramar o líquido
Como eu faço para alimentar os motores separado da alimentaçao da placa? Pois o motor requer uma corrente maior que a placa suporta.
Esta é a função da Ponte h, que é responsável por controlar o motor.
Como faço pra conseguir a imagem do TCRT5000 do Fritizing?
Eu fiz uma programação para seguir faixa utilizando Arduino UNO, Shield L293D, 2 motores DC, 4 sensores de refletância e bateria de lipo de 7,4V 1200mA, porém ao colocar o robô no percurso ele passa reto. Já diminuimos a velocidade e nada, o que poderia ser?
Eu aconselho tentar com 2 sensores. Veja este que fiz com apenas 2 sensores.
https://www.youtube.com/watch?v=-FoCBOEuszQ
Veja também com o celular se os sensores TCRT5000 estão funcionando.
Faça com 2 sensores, que é mais fácil e depois pode aumentar pra quantos quiser.
Ei estou fazendo o seu projeto qual o tamanho dos jumpers que vc usou , voce fez eles ?
Olá Thiago. O tamanho dos jumpers(fio) é sempre o menor possível para que a montagem fique o mais bonito possível. Fique a vontade pra fazer mais perguntas aqui ou lá no YouTube e quando conseguir nos avise. Valeu.
Amigo, gostaria de fazer um seguidor de linha com o Arduíno uno controlando 2 servomotores, quais componentes eu Preciso? Vc tem essas peças para vender?
Boa noite eu troquei o Sensor Óptico Reflexivo TCRT5000 simples por um que vem já na placa com o regulador de intensidade porem o carrinho não lê a linha negra nossa pista a linha é negra e a outra pista a linha é azul.
não conseguimos regular para ele seguir a linha quando liga ele lê o piso todo o que devo fazer estou usando todas as peças adquiridas com você ou seja somente o sensor que usei o que já vem numa plaquinha
Bom dia!
Existe a possibilidade de fazer esse projeto com a ponte h e não com o motor shield? qual ligação devo fazer da ponte h para o arduino?
Abraços.
Olá, gostaria de saber se o projeto do carro segue linha, postado acima aguenta transportar uma carga de 0,5Kg ?.
Olá,
Gostaria de saber se esse projeto funcionaria com um Ardumoto no lugar desse Shield específico.
Obrigada.
Boa Tarde,
gostaria de saber como identificar o ânodo e o cátodo do sensor pois, não estou conseguindo, identificar .
poderia mostra como montar .
Atenciosamente
Olá estou fazendo um robô seguidor igual ao seu mas estou com duvida em qual a distancia de um sensor para o outro? Você diz que eles ficam um do lado do outro, mas a distancia seria a da protoboard como esta na imagem?
OLa, gostaria se saber oque tenho qui fazer para o robô seguir uma linha branca ???
Bom dia mais uma vez.Eu armei na protoboard de acordo como está na imagem.E os motores dc tbm iguais. Na hora de testar os sensores,não acontece nada.Os fios vermelho e preto são os dois pra 5 V? Cadê a GND? Não entendi.Por favor, preciso resolver isso.Em aguardo.
montei um chassi conforme o post com os msm componentes porem nao estou conseguindo fazer o mesmo ler linha
Olá, eu tenho uns sensores infravermelhos ,só que dos separados.O branco e preto.Receptor e emissor respectivamente. Eu poderia usá-los ao invés desses sensores? Daria no mesmo?
Em aguardo.
Bom dia Israel,
A idéia é a mesma, pode usar sim.
Abraço
Adilson – Equipe MakerHero
Olá!
Estou utilizando o kit chassi 4WD e o Motor Shield L293D Driver Ponte H em um projeto, mas estou com um problema. Estou alimentando o motor shield com uma bateria de 9V, mas o carrinho, quando está no chão, não consegue se mover, só apenas quando as rodas não tocam o chão. Será que é a alimentação?
Agradeço pela sua ajuda.
Oi Alberto! Isso aconteceu comigo também. Eu alterei a velocidade de rotação dos motores no código e deu certo. Eles precisam girar mais rápido para que a velocidade dê um impulso maior no carro.
Boa tarde Alberto,
Sim, me parece uma questão de alimentação. Por favor dê uma olhada neste link com informações sobre a alimentação deste motor shield: https://learn.adafruit.com/adafruit-motor-shield/power-requirements
Abraço!
Adilson – Equipe MakerHero
Boa tarde Adilson!
O que pode ser feito na programação para inverter o giro de um dos motores, por exemplo para fazer uma manobra de meia volta sobre a linha?
Como é o sketch se eu utilizar somente 2x sensores? Alguém pode me ajuda?
Boa noite, eu tenho aqui 2x Ir Tcrt5000 Lm393 ( https://prntscr.com/87231v ) e queria saber como eu conecto eles no motor shield.
Também estou com essa dúvida.!
No caso dessa alimentação, posso utilizar as 4 pilhas de 1,5v (6v), e conectar na protoboard, para que assim os sensores enviem as informaçoes para o motor shield? Ou deverei retirar o pwr e conectar as pilhas no pwr ext?
Bom dia Joziane,
Depende do motor que você vai utilizar. Recomendamos ligar no pwr ext.
Abraço
Adilson – Equipe MakerHero
Então, Adilson, pq no tutorial acima indica-se não retirar o pwr ext? Estou utilizando os mesmos componentes.
Não retirar o pwr que eu quis dizer acima.
Bom dia Joziane,
Se você for utilizar pilhas para os motores, ligue no EXT_PWR, retirando o jumper da placa.
Neste post, eu mostro como utilizar alimentação externa com o motor shield: https://www.makerhero.com/controle-motor-dc-arduino-motor-shield/
Abraço
Adilson – Equipe MakerHero
Então, Adilson, faço a alimentação com as pilhas de 6v no pwr ext, e a alimentação de 5v pro circuito com os sensores utilizo outra bateria? Ou é spo conectar no pino 5v do motor shield?
Obrigada pela atenção!
Felipe você tem esse sensores para vender?
Bom dia Maicon,
O sensor óptico reflexivo você encontra na nossa loja: https://www.makerhero.com/pd-6b912-sensor-optico-reflexivo-tcrt5000.html
Abraço
Adilson – Equipe MakerHero
Olá Filipe!
Mesmo olhando os comentários anteriores, não consegui compreender como será feita a alimentação, e como faço para o carrinho parar de movimentar em determinado momento.
Bom dia Joziane,
Para efetuar esse tipo de movimento e parada, você terá que mexer na programação.
Abraço
Adilson – Equipe MakerHero
Obrigado por “nenhuma resposta e retirada de meu post” sobre as dúvidas de funcionamento deste shield de quatro motores utilizados no projeto. Não quis ser desagradável quando perguntei se era normal, mesmo com a retirada do junmper do shield ele continuar mandando tensão para os motores, mesmo sem ter alimentação externa. Acho como cliente que merecia um pouquinho de atenção e respeito como consumidor. Abraço
Boa tarde Adeilson,
Respondemos o seu comentário e ele não foi retirado. Esperamos ter ajudado de alguma forma.
Abraço.
Adilson – Equipe MakerHero
ta ocorrendo um erro na progamacao :
Arduino: 1.6.0 (Windows 8), Placa:”Arduino Uno”
projeto_SENAI.ino:6:1: error: ‘AF_DCMotor’ does not name a type
projeto_SENAI.ino:7:1: error: ‘AF_DCMotor’ does not name a type
projeto_SENAI.ino: In function ‘void loop()’:
projeto_SENAI.ino:79:3: error: ‘motor_esq’ was not declared in this scope
projeto_SENAI.ino:80:17: error: ‘FORWARD’ was not declared in this scope
projeto_SENAI.ino:81:3: error: ‘motor_dir’ was not declared in this scope
Erro compilando.
Este relatório deveria ter mais informações
“Mostrar saída verbosa durante a compilação”
habilitado em Arquivo > Preferências.
Bom dia Gabriel,
A biblioteca foi instalada corretamente ?
Grato.
Adilson – Equipe MakerHero
Olá, comprei o kit 2 rodas, tudo funcionando perfeitamente!
Agora quero medir a velocidade, o que posso usar nos discos de encoder para tal funcionalidade?
Obrigado,
Bom dia, queria tirar uma dúvida como posso fazer o robô identificar uma linha verde no meio de várias linhas pretas.
Obrigada!!
Boa noite Jaqueline,
Nesse caso talvez o mais indicado seja um sensor de cor, como o TCS230 ou TCS3200.
Abraço.
Adilson – Equipe MakerHero
Olá. Comprei todos os componentes no site e estou com uma dúvida. Como faço para fazer a ligação do suporte de bateria no arduino? Só com as 4 pilhas (6v) ele consegue movimentar os motores? Abraço.
Boa noite Eduardo,
Vai depender dos motores que você estiver utilizando, mas de qualquer forma recomendamos uma alimentação separada para os motores.
Abraço.
Adilson – Equipe MakerHero
Olá, estou tentando construir esse projeto e estou com uma dúvida. A entrada de energia de 5V é conectada no Arduino? Se sim posso fornecer no arduino pelo plug preto 9V?
Basicamente é essa minha dúvida, não entendi como vai encaixar o fornecimento de energia.
Se puder ajudar, muito obrigado. Parabéns pelo Site.
Boa noite Otávio,
Exato. Você vai alimentar o Arduino com, por exemplo, uma bateria de 9V, e ligar os pinos 5V e GND na protoboard, conforme a imagem.
Abraço.
Adilson – Equipe MakerHero
bom dia estou fazendo o seguidor de linha e usei o mesmo programa do seu site mas não estou conseguindo fazer ele ler a linha pois tenho tudo completo e os motores um deles fica mais rápido que o outro preciso colocar essa configuraraçao para ele rotacionar correto
int startSpeed = 150, rotate = 50;
//limiar do sensor
int threshold = 5;
mas o limiar do sensor não estou conseguindo acertar ele não responde o programa
gostaria de uma força nessa veleu
Olá amigo, recentemente comprei o kit disponível no site Filip-Flop para montar o robô seguidor de linha. Porém, após gravar o programa acima, realizar todas as montagens e testado os sensores, o robô não segue a linha. Os motores estão girando com rotações diferentes. Já troquei as posições dos sensores também.
Os motores giram muito rápido e o robô não segue a linha. Já tentei alterar os valores do startSpeed e do rotate e não consigo ajuste ideal. Os motores são os mesmos que vêm no Kit. Poderia me dar alguma idéia de algo que possa estar errrado?
Obrigado.
LDR´s (resistores dependentes de luz) como posso utilizar no lugar dos sensores opistóticos reflexivos?
Obrigado
Boa tarde Hector,
Use o LDR da mesma forma, como se fosse uma chave. Coloque uma fonte de luz direcionada ao LDR (LED, laser, etc), e você terá a alteração de 0 e 1 na porta do Arduino.
Abraço.
Adilson – Equipe MakerHero
Olá, montei um projeto igual mostrado acima, com os mesmos materiais, e a mesma programação, mas estou enfrentando alguns problemas. Os sensores não detectam a linha e os motores giram de formas desiguais.
Não consigo fazer meu sensores funcionar. Nem o emissor de IR nem o sensor. Os dois estão ligados a uma protoboard como demonstrado, porém a alimentação de 5v vem do shield e estou utilizando as portas 8, 10 e 12 do meu Mega 2560. Já troquei as portas no programa. Não sei o que fazer!! 🙁
Como faço para montar o mesmo projeto com o chassi de 4 rodas da loja de vocês?
Como ligo os motores e o que muda na programação?
Desde já agradeço.
Bom dia Israel,
Não temos o programa pronto para utilização com o chassi de 4 rodas, mas você pode utilizar esse programa como base e adapta-lo.
Abraço.
Adilson – Equipe MakerHero
BOA TARDE MEU CARO AMIGO !
EU TENHO UM SHIELD DO TIPO: L 293D COM 2 MOTORES E DUAS RODAS + UM RDUINO UNO R3.
TENHO TAMBÉM UM SENSOR ULTRASSÔNICO HC SR04.
E GOSTARIA DE FAZER UM ROBOZINHO COM TAIS PEÇAS, VOSSA EXCELÊNCIA, PODERIA ME FORNECER ALGUMA INFORMAÇÃO NESSE SENTIDO ? POIS, O SENSOR QUE TENHO DIFERE DO QUE VOCE APRESENTA DOS 3 SENSOR INFRA-RED QUE TEM NO SEGUIDOR DE LINHA.
INFORMO QUE JÁ COMPREI CONTIGO PELO (ML).
SEM MAIS,
AGRADEÇO SEUS PRÉSTIMOS !
ANDRÉ.
Bom dia André,
Não temos nenhum programa pronto com esta configuração.
Abraço.
Adilson – Equipe MakerHero
Boa tarde!
Fiz exatamente como está no site, porém os motores não giram, preciso empurrar o carrinho para eles vencerem a inércia. Deu pra perceber que os motores não têm força, daí coloquei quatro pilhas para alimentar o shield (6 volts) e uma bateria de 9 volts na alimentação do Arduíno, e nada…
O que pode estar acontecendo, minha plataforma é com dois motores CC 3 V com redução acoplada.
No aguardo
Boa tarde Diego,
Você tem a especificação dos motores, principalmente a amperagem exigida ? Pelo que você está relatando, as pilhas não tem força suficiente para acionar o motor.
Grato.
Adilson – Equipe MakerHero
Boa noite Washington,
Que tipo de alimentação você está utilizando para o motor ?
Grato.
Adilson – Equipe MakerHero
Eu fiz um teste utilizando apenas a alimentação do arduino.
Att
Washington
Olá, gostaria de saber se é possível conectar um sensor de distância ultrassônico, para detectar obstáculos no motor shield ?.
Boa noite Leandro,
É possível sim, pois o shield não utiliza todos os pinos do Arduino, muitos estão disponíveis para uso.
Abraço.
Adilson – Equipe MakerHero
Olá, comprei um Arduino Uno, sensores e acho que um chassi de duas rodas na MakerHero. Gostaria de que vc fizesse um tutorial de como faz os dois motores dc funcionarem pelo Arduino com uma comunicação wireless.
Boa tarde José,
Boa sugestão. Em breve estaremos divulgando um post especifico utilizando Arduino e Wireless Shield.
Obrigado e um abraço !
Adilson – Equipe MakerHero
Bom dia, gostaria de saber qual o software utilizado para simular o circuito.
Estou usando o fritzing e nao encontrei o sensor optico reflexivo TCRT5000.
Obrigado.
Pra mim montar um seguidor de linha branca e utilizar um motor mais rápido será que ele faz o seu percurso correto?
Boa tarde Juliano,
O tempo de resposta dos sensores geralmente é rápido, mas só testando mesmo para ter certeza.
Abraço.
Adilson – Equipe MakerHero
Estou com o mesmo problema. Não encontrei no Fritizing o TCRT5000.
Prezado, montei um seguidor de linha conforme se segue neste tutorial, inclusive eu e meus colegas adiquirimos partes de seu site e estamos com alguns problemas se for possível ajudar. O robo algumas vezes segue sem problema algum e em outras ele se perde ja no inicio esse problema se da pela calibração do sensor? Há um modo de corrigir isto? ou pode ser outro problema? grato
Meu caro!! Montei o seguidor de linha com um chassi que adquiri de seu site o com duas rodas, só que estou tendo um probleminha, a rotação dos motores não está bem igual, ou seja, uma roda esta mais pesada que a outra com isso uma fica mais rapida e a outra mais lenta, tentei corrigir na programação mas não deu muito certo. Tem alguma dica para me ajudar fiz modificações nas linhas 56 e 57 do sketch, mais uma pergunta se quiser aumentar a velocidade do carrinho modifico nesta linha mesmo? Desde já grato pela ajuda.
Boa tarde, eu gostaria de saber se tem como fazer este circuito com arduino Uno , e se tem que fazer modificações quais seriam elas? Por favor. Obrigado
Bom dia,
Preciso fazer um seguidor de faixa com 4 motores. Você pode me passar lista dos materiais que necessito já com os links de cada para fazer a compra.
bom dia ,teria como vc me passar a lista do material necessário para montagem desse porjeto.
Boa tarde Alexsandro,
No post utilizamos o motor shield, 2 motores DC, 3 sensores TCRT5000, e resistores de 10 K e 330ohms para ligação dos sensores. Temos também o kit chassis para o robô, se você precisar.
Esse material você encontra na nossa loja MakerHero.
Abraço.
Adilson – Equipe MakerHero
Quanto tento instalar a biblioteca AFMotor .h aparece mensagem de erro dizendo que a biblioteca não pode conter numeros ou algo assim não entidi muito bem , mas renomiei e nada acontece sempre a mesma mensagem de erro . Como se instala esta biblioteca ???
Boa tarde Flavio,
A biblioteca não pode conter espaços ou caracteres especiais. Veja se não é esse o problema, por favor.
Abraço.
Adilson – Equipe MakerHero
Olá,
Gostaria de saber o torque do motor e se posso alimenta-lo com 8 volts.
Boa tarde Gabriel,
Qual motor você está pensando em utilizar ?
Adilson – Equipe MakerHero
O motor da primeira foto.
prezado, este sketch para ser usado em um Arduino Mega é o mesmo ou tenho de realizar modificações nele, estou começando com o Arduino e adquiri um Mega e tenho que montar um seguidor de linha como este.
Boa tarde Rafael,
Sim, pode ser usado o mesmo esquema de ligação.
Grato.
Adilson – Equipe MakerHero
Boa noite!
Estou montando um seguidor de linha, mas tenho apenas resistores de 300 ohms no momento. Posso usá-los nos LDR’s ou apenas resistores de 330 ohms?
Muito obrigado!
sensores ópticos reflexivos*, aliás! Uso o TCRT5000. Foi mal :’)
Boa tarde Eduardo,
Pode usar os de 300 sim, sem problemas.
Abraço.
Adilson – Equipe MakerHero
Olá,
como faço pra usar as portas digitais?
Não vejo lugar para a solda dos pinos digitais do Arduino
Boa tarde Felipe,
Verifiquei e a placa não vem com nenhum lugar para solda dos pinos digitais. O que você pode fazer é adaptar alguma outra barra de pinos, de forma que você tenha um pino “sobrando” para a parte de cima do shield.
Dependendo do seu projeto, uma outra alternativa é utilizar os pinos analógicos como pinos digitais.
Abraço !
Adilson – Equipe MakerHero
Obrigado desde ja.
Mais uma dúvida: quais pinos digitais estarão disponíveis?
Boa tarde Felipe,
Segundo o fabricante, nesse Shield são utilizados os seguintes pinos :
Pinos utilizados para controle de motores DC : Pinos 11, 3, 5 e 6
Pinos utilizados para controle de motores de passo : Pinos 4, 7, 8 e 12
Pinos utilizados para controle de servo motores : Pinos 9 e 10
Desta forma, os demais pinos estão disponíveis para uso.
Abraço.
Adilson – Equipe MakerHero
da pra fazer o robô sem a ponte H
Olá,
Não é recomendável.
Abraço!
Rosana – Equipe MakerHero
Cara tenho uma dúvida… caso eu faça um sensor de linha com fototransisitor e LED IR o que eu teria que alterar no código para que o mesmo funcione?Me de um exemplo do que alterar… desde já agradeço!
Oi Walace,
A ligação vai ser praticamente a mesma, pq o TCR5000 é composto por um fototransistor e um LED IR, no mesmo módulo.
Abraço.
Adilson – Equipe MakerHero
Boa Noite,
Estou com muita dificuldade para fazer uma programação que ligasse 3 motores DC, comprei o arduino, a placa motor shield de vocês, já baixei a biblioteca “AF_Motor”, só que não obtenho solução ao meu problema, qualquer ajuda é bem vinda.
Grato.
Boa tarde Gabriel,
Você pode utilizar as informações desse post e criar mais uma linha para referenciar o motor 3, o código fica mais ou menos assim :
AF_DCMotor motor_um(1); //Seleciona o motor 1
AF_DCMotor motor_dois(2); //Seleciona o motor 2
AF_DCMotor motor_tres(3); //Seleciona o motor 3
Depois, dentro do programa, basta utilizar o nome do motor correspondente para enviar os comandos individualmente.
Abraço.
Adilson – Equipe MakerHero
Amigo eu fiz tudo direitinho aki mas o robo na segue a linha ele nem anda!vc poderia medizer o que e?
Boa noite,
Teriamos que dar uma olhada no seu projeto. Que tipo de motor você está utilizando ?
Grato.
Adilson – Equipe MakerHero
Amigo outra coisa o desenho do shield você fez no fritzing? Se sim, poderia postar o arquivo .fzz dele, ou onde encontro?Pois não achei esse modelo de shield no programa…
Bom dia, infelizmente não temos esse shield para o Fritzing, foi desenhado à parte.
Adilson – Equipe MakerHero
Amigo queria tirar algumas dúvidas, fiz um projeto e controlo o carrinho pelo smartphone, utilizo esse mesmo shield, até tirei umas dúvidas com você e você ajudou…
O problema agora é que tipo, se eu alimentar o arduino pela USB o carrinho funciona beleza, mas se alimento com as 4 pilhas ele começa a dar umas travadas e não consegue ligar os dois motores, so consegue no máximo um e lento. Já troquei as pilhas funciona 5 min e parou.
Daí queria saber se posso ligar mais 4 pilhas a porta p2 do arduino, visto que já tenho 4, ligadas no shield. Isso começou a acontece depois que coloquei o bluetooth HC-06 que consome 5v também. Se eu tirar o bluetooth e mandar o robo ficar indo para frente ele funciona perfeito só com as pilhas, mas se colocar o bluetooth já era…
Até mais!
Bom dia,
Você pode usar sim uma fonte separada para o Arduino, e outra para os motores. A documentação do motor shield recomenda que, dependendo do tipo de motor, se use não só uma fonte de alimentação externa exclusiva para os motores, como também recomenda baterias de NiMH (Níquel Metal Hidreto).
O problema do seu circuito, aparentemente, é só a parte de alimentação. Resolvendo isso, deve funcionar corretamente.
Abraço !
Adilson – Equipe MakerHero
Utilize bateria de lithium ion ou lithium polimero.