Mudanças entre as edições de "Garoando em linha"
m |
|||
(21 revisões intermediárias por um outro usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
Kit sendo desenvolvido para o [[Nós Robôs]] constituido de todos componentes necessários para um seguidor de linha básico, com um tutorial passo-a-passo. |
Kit sendo desenvolvido para o [[Nós Robôs]] constituido de todos componentes necessários para um seguidor de linha básico, com um tutorial passo-a-passo. |
||
− | A proposta é ser o mais didático possível e preparado para quem tem pouco ou nenhum conhecimento em Arduino, eletrônica ou robótica. Nesta página haverá conteúdo um pouco menos amigável, porém ideal para se estudar após compreender tudo contido no [ |
+ | A proposta é ser o mais didático possível e preparado para quem tem pouco ou nenhum conhecimento em Arduino, eletrônica ou robótica. Nesta página haverá conteúdo um pouco menos amigável, porém ideal para se estudar após compreender tudo contido no [[Garoando em linha#Passo-a-Passo|Passo-a-Passo]]. |
==Responsáveis== |
==Responsáveis== |
||
Linha 27: | Linha 27: | ||
File:p4macho_garoando.jpg| 1x Adaptador P4 Macho |
File:p4macho_garoando.jpg| 1x Adaptador P4 Macho |
||
File:Motor drive shield.JPG|1x Motor Drive Shield L293D |
File:Motor drive shield.JPG|1x Motor Drive Shield L293D |
||
− | File:IRsensor.JPG| |
+ | File:IRsensor.JPG|6x Sensores de Refletância Infravermelhos |
File:Hc-sr04-ultrasonic-sensor-500x500.jpg|1x Sensor de Ultrasom |
File:Hc-sr04-ultrasonic-sensor-500x500.jpg|1x Sensor de Ultrasom |
||
File:ArduinoUno R3.jpg|1x Arduino Uno R3 (ou compatível)"*" |
File:ArduinoUno R3.jpg|1x Arduino Uno R3 (ou compatível)"*" |
||
Linha 39: | Linha 39: | ||
Há incluso no kit um pequeno manual de montagem que apresenta todos componentes básicos e um passo-a-passo de como montá-lo. |
Há incluso no kit um pequeno manual de montagem que apresenta todos componentes básicos e um passo-a-passo de como montá-lo. |
||
− | O mesmo pode ser acessado |
+ | O mesmo pode ser acessado em formato PDF abaixo: |
+ | <code> |
||
+ | [https://garoa.net.br/wiki/Arquivo:Assemble_garoando.pdf Clique aqui para baixar] |
||
+ | </code> |
||
Futuramente será incluído um manual mais amigável e didático, por enquanto está disponível apenas o fornecido pelo fabricante do chassi. |
Futuramente será incluído um manual mais amigável e didático, por enquanto está disponível apenas o fornecido pelo fabricante do chassi. |
||
===Motores=== |
===Motores=== |
||
+ | [[Arquivo:Motores_garoando.jpg|200px]] |
||
{| class="wikitable" |
{| class="wikitable" |
||
Linha 75: | Linha 79: | ||
===Sensor de Ultrasom HC-SR04=== |
===Sensor de Ultrasom HC-SR04=== |
||
+ | [[Arquivo:Hc-sr04-ultrasonic-sensor-500x500.jpg|200px]] |
||
+ | |||
+ | {| class="wikitable" |
||
+ | |- |
||
+ | ! Pinagem |
||
+ | | VCC || Trig (Disparo) || Echo (Recepção) || GND |
||
+ | |} |
||
{| class="wikitable" |
{| class="wikitable" |
||
Linha 96: | Linha 107: | ||
| 0,3 cm |
| 0,3 cm |
||
|} |
|} |
||
+ | ===Pinos utilizados pelo Motor Drive Shield L293D=== |
||
+ | Todos os '''pinos analógicos estão livres''' e acessíveis pelo próprio shield L293D sem a necessidade de um screw (wing) shield. Estes pinos também podem ser utilizados como '''pinos digitais 14 a 19'''. |
||
+ | Há também uma linha de '''5V''' e uma de '''GND''' juntamente dos pinos A0-A5. |
||
+ | |||
+ | Os pinos digitais '''2''' (acessível pelo shield L293D) e '''13''' '''não são utilizados'''. |
||
+ | |||
+ | O pino digital '''11''' só é utilizado se o motor DC 1 ou stepper 1 estiver sendo utilizado. |
||
+ | |||
+ | O pino digital '''3''' só é utilizado se o motor DC 2 ou stepper 1 estiver sendo utilizado. |
||
+ | |||
+ | O pino digital '''5''' só é utilizado se o motor DC 3 ou stepper 2 estiver sendo utilizado. |
||
+ | |||
+ | O pino digital '''6''' só é utilizado se o motor DC 4 ou stepper 2 estiver sendo utilizado. |
||
+ | |||
+ | Os pinos digitais '''4''', '''7''', '''8''' e '''12''' são utilizados se qualquer motor/stepper estiver sendo utilizado através do 74HC595 serial-to-parallel. |
||
+ | |||
+ | Os pinos digitais '''9''' e '''10''' são utilizados nos servos, #1 e #2 respectivamente. |
||
===Montagem do Arduino e Shield=== |
===Montagem do Arduino e Shield=== |
||
Linha 102: | Linha 130: | ||
==Software== |
==Software== |
||
+ | |||
+ | Há um repositório no GitHub destinado para que sejam disponibilizados todos sketches produzidos para este kit. |
||
+ | |||
+ | https://github.com/haoji/Garoando-em-Linha |
||
+ | |||
+ | Já está disponível um sketch padrão e uma versão especial para o evento [[Jovem Hacker]]. |
||
===Arduino IDE=== |
===Arduino IDE=== |
||
Linha 108: | Linha 142: | ||
====Como instalar==== |
====Como instalar==== |
||
====Sensor de Ultrasom HC-SR04==== |
====Sensor de Ultrasom HC-SR04==== |
||
+ | Esta biblioteca torna obter leituras com o HC-SR04 muito mais fácil com código amigável. |
||
+ | |||
+ | [[Arquivo:HC-SR04medindo_garoando.jpg|500px]] |
||
+ | |||
+ | Foto de [http://www.jra.so/ J.Rodrigo] do [http://www.ardublog.com Ardublog]. |
||
+ | |||
=====Onde baixar===== |
=====Onde baixar===== |
||
A biblioteca está disponível no GitHub: https://github.com/haoji/Ultrasonic-HC-SR04 |
A biblioteca está disponível no GitHub: https://github.com/haoji/Ultrasonic-HC-SR04 |
||
+ | <code> |
||
− | Clique aqui para baixar: https://github.com/haoji/Ultrasonic-HC-SR04/archive/master.zip |
||
+ | [https://github.com/haoji/Ultrasonic-HC-SR04/archive/master.zip Clique aqui para baixar] |
||
+ | </code> |
||
− | Copie a pasta "Ultrasonic" para a pasta "libraries". Veja [https://garoa.net.br/wiki/Garoando_em_linha#Como_instalar |
+ | Copie a pasta "Ultrasonic" para a pasta "libraries". Veja [https://garoa.net.br/wiki/Garoando_em_linha#Como_instalar como Instalar] se tiver dúvidas. |
=====Alterando TimeOut Padrão===== |
=====Alterando TimeOut Padrão===== |
||
Linha 143: | Linha 185: | ||
// J.Rodrigo ( www.jra.so ) |
// J.Rodrigo ( www.jra.so ) |
||
// more info at www.ardublog.com |
// more info at www.ardublog.com |
||
+ | |||
#include <Ultrasonic.h> |
#include <Ultrasonic.h> |
||
+ | |||
Ultrasonic ultrasonic(5,6); // (Trig PIN,Echo PIN) |
Ultrasonic ultrasonic(5,6); // (Trig PIN,Echo PIN) |
||
+ | |||
void setup() { |
void setup() { |
||
Serial.begin(9600); |
Serial.begin(9600); |
||
Linha 152: | Linha 197: | ||
digitalWrite(7, LOW); // GND mode |
digitalWrite(7, LOW); // GND mode |
||
} |
} |
||
+ | |||
void loop() |
void loop() |
||
{ |
{ |
||
Linha 167: | Linha 213: | ||
// J.Rodrigo ( www.jra.so ) |
// J.Rodrigo ( www.jra.so ) |
||
// more info at www.ardublog.com |
// more info at www.ardublog.com |
||
+ | |||
#include <Ultrasonic.h> |
#include <Ultrasonic.h> |
||
+ | |||
Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN) |
Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN) |
||
+ | |||
void setup() { |
void setup() { |
||
Serial.begin(9600); |
Serial.begin(9600); |
||
} |
} |
||
+ | |||
void loop() |
void loop() |
||
{ |
{ |
||
Linha 178: | Linha 228: | ||
delay(100); |
delay(100); |
||
} |
} |
||
+ | </code> |
||
+ | =====Exemplo: Exibir distância em um display LCD===== |
||
+ | <code> |
||
+ | // Ultrasonic - Library for HR-SC04 Ultrasonic Ranging Module. |
||
+ | // Rev.4 (06/2012) |
||
+ | // J.Rodrigo ( www.jra.so ) |
||
+ | // more info at www.ardublog.com |
||
+ | |||
+ | #include <Ultrasonic.h> |
||
+ | #include <LiquidCrystal.h> |
||
+ | |||
+ | LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // LCD arduino library |
||
+ | |||
+ | Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN) |
||
+ | |||
+ | void setup() { |
||
+ | lcd.begin(16, 2); |
||
+ | } |
||
+ | |||
+ | void loop() |
||
+ | { |
||
+ | lcd.clear(); |
||
+ | lcd.setCursor(0, 0); |
||
+ | lcd.print(ultrasonic.Ranging(CM)); // CM (centímetros) ou INC (inches - polegadas) |
||
+ | lcd.print("cm"); |
||
+ | delay(100); |
||
+ | } |
||
+ | </code> |
||
+ | |||
+ | =====Exemplo: Obter tempo em ms do disparo à recepção===== |
||
+ | <code> |
||
+ | // Ultrasonic - Library for HR-SC04 Ultrasonic Ranging Module. |
||
+ | // Rev.4 (06/2012) |
||
+ | // J.Rodrigo ( www.jra.so ) |
||
+ | // more info at www.ardublog.com |
||
+ | |||
+ | #include <Ultrasonic.h> |
||
+ | |||
+ | Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN) |
||
+ | |||
+ | void setup() { |
||
+ | Serial.begin(9600); |
||
+ | } |
||
+ | |||
+ | void loop() |
||
+ | { |
||
+ | Serial.print(ultrasonic.Timing()); |
||
+ | Serial.println(" ms" ); // milisegundos |
||
+ | delay(100); |
||
+ | } |
||
+ | </code> |
||
+ | |||
+ | =====Exemplo: Utilizar mais de um sensor em conjunto===== |
||
+ | <code> |
||
+ | // Ultrasonic - Library for HR-SC04 Ultrasonic Ranging Module. |
||
+ | // Rev.4 (06/2012) |
||
+ | // J.Rodrigo ( www.jra.so ) |
||
+ | // more info at www.ardublog.com |
||
+ | |||
+ | #include <Ultrasonic.h> |
||
+ | |||
+ | Ultrasonic ultraleft(9,8); // (Trig PIN,Echo PIN) |
||
+ | Ultrasonic ultraright(6,7); // (Trig PIN,Echo PIN) |
||
+ | |||
+ | void setup() { |
||
+ | Serial.begin(9600); |
||
+ | } |
||
+ | |||
+ | void loop() |
||
+ | { |
||
+ | Serial.print("Left: "); |
||
+ | Serial.print(ultraleft.Ranging(CM)); // CM (centímetros) ou INC (inches - polegadas) |
||
+ | Serial.print(" cm " ); |
||
+ | delay(50); |
||
+ | Serial.print("Right: "); |
||
+ | Serial.print(ultraright.Ranging(CM)); // CM (centímetros) ou INC (inches - polegadas) |
||
+ | Serial.println(" cm" ); |
||
+ | delay(50); |
||
+ | } |
||
</code> |
</code> |
||
====Motor Drive Shield L293D==== |
====Motor Drive Shield L293D==== |
||
+ | =====Onde baixar===== |
||
− | Biblioteca: https://github.com/haoji/Adafruit-Motor-Shield-library |
||
+ | A biblioteca está disponível no GitHub: https://github.com/haoji/Adafruit-Motor-Shield-library |
||
+ | |||
+ | <code> |
||
+ | [https://github.com/haoji/Adafruit-Motor-Shield-library/archive/master.zip Clique aqui para baixar] |
||
+ | </code> |
||
+ | |||
+ | Renomeie a pasta baixada para "AFMotor" e a mova para a pasta "libraries". Veja [https://garoa.net.br/wiki/Garoando_em_linha#Como_instalar como Instalar] se tiver dúvidas. |
||
+ | |||
+ | =====Exemplo: Controlando um motor DC===== |
||
+ | |||
+ | <code> |
||
+ | // AFMotor - Biblioteca para o Motor Drive Shield L293D. |
||
+ | // Ladyada ( adafruit.com ) |
||
+ | // mais info em learn.adafruit.com/adafruit-motor-shield/ |
||
+ | |||
+ | #include <AFMotor.h> |
||
+ | |||
+ | AF_DCMotor motor(2, MOTOR12_64KHZ); // cria motor #2, 64KHz pwm |
||
+ | |||
+ | void setup() { |
||
+ | Serial.begin(9600); |
||
+ | Serial.println("Testando motor!"); |
||
+ | |||
+ | motor.setSpeed(200); // define a velocidade para 200/255 |
||
+ | } |
||
+ | |||
+ | void loop() { |
||
+ | Serial.print("tick"); |
||
+ | |||
+ | motor.run(FORWARD); // girar para a frente |
||
+ | delay(1000); |
||
+ | |||
+ | Serial.print("tock"); |
||
+ | motor.run(BACKWARD); // girar para trás |
||
+ | delay(1000); |
||
+ | |||
+ | Serial.print("tack"); |
||
+ | motor.run(RELEASE); // parado |
||
+ | delay(1000); |
||
+ | } |
||
+ | </code> |
||
===Sketch=== |
===Sketch=== |
||
Linha 200: | Linha 370: | ||
* Praticamente tudo sobre o Motor Drive Shield L293D com biblioteca: http://learn.adafruit.com/downloads/pdf/adafruit-motor-shield.pdf |
* Praticamente tudo sobre o Motor Drive Shield L293D com biblioteca: http://learn.adafruit.com/downloads/pdf/adafruit-motor-shield.pdf |
||
+ | |||
+ | * Arduino Playground, Adafruit Motor Shield: http://playground.arduino.cc/Main/AdafruitMotorShield |
||
+ | |||
+ | * Mais sobre o Motor Shield: http://learn.adafruit.com/adafruit-motor-shield/ |
||
Edição atual tal como às 12h26min de 21 de fevereiro de 2017
Kit sendo desenvolvido para o Nós Robôs constituido de todos componentes necessários para um seguidor de linha básico, com um tutorial passo-a-passo.
A proposta é ser o mais didático possível e preparado para quem tem pouco ou nenhum conhecimento em Arduino, eletrônica ou robótica. Nesta página haverá conteúdo um pouco menos amigável, porém ideal para se estudar após compreender tudo contido no Passo-a-Passo.
Responsáveis
Visão Geral
Dimensões
Hardware
Componentes do Kit
"*" Não incluso dentro do kit pois há vários disponíveis no Garoa
Montagem do Chassi
Há incluso no kit um pequeno manual de montagem que apresenta todos componentes básicos e um passo-a-passo de como montá-lo.
O mesmo pode ser acessado em formato PDF abaixo:
Clique aqui para baixar
Futuramente será incluído um manual mais amigável e didático, por enquanto está disponível apenas o fornecido pelo fabricante do chassi.
Motores
Voltagem | DC 3V | DC 5V | DC 6V |
---|---|---|---|
Corrente | 100mA | 100mA | 120mA |
Taxa de Redução | 48:1 | ||
RPM (Com pneu) | 100 | 190 | 240 |
Diametro do Pneu | 66mm | ||
Velocidade (m/minuto) | 20 | 39 | 48 |
Peso do Motor | 50g | ||
Tamanho do Motor | 70mm*22mm*18mm | ||
Ruído | <65dB |
Sensor de Ultrasom HC-SR04
Pinagem | VCC | Trig (Disparo) | Echo (Recepção) | GND |
---|
Voltagem | DC 5V |
---|---|
Corrente (em repouso) | < 2 mA |
Saída | Alto 5V / Baixo 0V |
Ângulo | < 15º |
Distância | 2 a 450 cm |
Resolução | 0,3 cm |
Pinos utilizados pelo Motor Drive Shield L293D
Todos os pinos analógicos estão livres e acessíveis pelo próprio shield L293D sem a necessidade de um screw (wing) shield. Estes pinos também podem ser utilizados como pinos digitais 14 a 19. Há também uma linha de 5V e uma de GND juntamente dos pinos A0-A5.
Os pinos digitais 2 (acessível pelo shield L293D) e 13 não são utilizados.
O pino digital 11 só é utilizado se o motor DC 1 ou stepper 1 estiver sendo utilizado.
O pino digital 3 só é utilizado se o motor DC 2 ou stepper 1 estiver sendo utilizado.
O pino digital 5 só é utilizado se o motor DC 3 ou stepper 2 estiver sendo utilizado.
O pino digital 6 só é utilizado se o motor DC 4 ou stepper 2 estiver sendo utilizado.
Os pinos digitais 4, 7, 8 e 12 são utilizados se qualquer motor/stepper estiver sendo utilizado através do 74HC595 serial-to-parallel.
Os pinos digitais 9 e 10 são utilizados nos servos, #1 e #2 respectivamente.
Montagem do Arduino e Shield
Montagem dos Sensores
Software
Há um repositório no GitHub destinado para que sejam disponibilizados todos sketches produzidos para este kit.
https://github.com/haoji/Garoando-em-Linha
Já está disponível um sketch padrão e uma versão especial para o evento Jovem Hacker.
Arduino IDE
Bibliotecas
Como instalar
Sensor de Ultrasom HC-SR04
Esta biblioteca torna obter leituras com o HC-SR04 muito mais fácil com código amigável.
Foto de J.Rodrigo do Ardublog.
Onde baixar
A biblioteca está disponível no GitHub: https://github.com/haoji/Ultrasonic-HC-SR04
Clique aqui para baixar
Copie a pasta "Ultrasonic" para a pasta "libraries". Veja como Instalar se tiver dúvidas.
Alterando TimeOut Padrão
Por padrão a biblioteca limita o alcance do sensor a ~51cm utilizando um timeout de 3ms. O timeout limita o tempo de execução da função pulsein() para obter resultados mais precisos.
A fórmula para se obter o timeout é a seguinte:
centímetros * 58 = timeout
Substitua:
Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN)
Por:
Ultrasonic ultrasonic(9,8,3000); // (Trig PIN,Echo PIN, Timeout máximo em µs )
E modifique 3000 pelo valor em µs adequado obtido pela fórmula acima
Exemplo: Plug & Play
Inserir o sensor nos pinos digitais 7, 6, 5, 4 virado para o lado oposto ao Arduino.
Veja: https://github.com/elrodri/Ultrasonic-HC-SR04/wiki/Plug-&-Play
// Ultrasonic - Library for HR-SC04 Ultrasonic Ranging Module.
// Rev.4 (06/2012)
// J.Rodrigo ( www.jra.so )
// more info at www.ardublog.com
#include <Ultrasonic.h>
Ultrasonic ultrasonic(5,6); // (Trig PIN,Echo PIN)
void setup() {
Serial.begin(9600);
pinMode(4, OUTPUT); // VCC pin
pinMode(7, OUTPUT); // GND ping
digitalWrite(4, HIGH); // VCC +5V mode
digitalWrite(7, LOW); // GND mode
}
void loop()
{
Serial.print(ultrasonic.Ranging(CM)); // CM (centímetros) ou INC (inches - polegadas)
Serial.println(" cm" );
delay(100);
}
Exemplo: Exibir distância no console serial
// Ultrasonic - Library for HR-SC04 Ultrasonic Ranging Module.
// Rev.4 (06/2012)
// J.Rodrigo ( www.jra.so )
// more info at www.ardublog.com
#include <Ultrasonic.h>
Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN)
void setup() {
Serial.begin(9600);
}
void loop()
{
Serial.print(ultrasonic.Ranging(CM)); // CM (centímetros) ou INC (inches - polegadas)
Serial.println(" cm" );
delay(100);
}
Exemplo: Exibir distância em um display LCD
// Ultrasonic - Library for HR-SC04 Ultrasonic Ranging Module.
// Rev.4 (06/2012)
// J.Rodrigo ( www.jra.so )
// more info at www.ardublog.com
#include <Ultrasonic.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // LCD arduino library
Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN)
void setup() {
lcd.begin(16, 2);
}
void loop()
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(ultrasonic.Ranging(CM)); // CM (centímetros) ou INC (inches - polegadas)
lcd.print("cm");
delay(100);
}
Exemplo: Obter tempo em ms do disparo à recepção
// Ultrasonic - Library for HR-SC04 Ultrasonic Ranging Module.
// Rev.4 (06/2012)
// J.Rodrigo ( www.jra.so )
// more info at www.ardublog.com
#include <Ultrasonic.h>
Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN)
void setup() {
Serial.begin(9600);
}
void loop()
{
Serial.print(ultrasonic.Timing());
Serial.println(" ms" ); // milisegundos
delay(100);
}
Exemplo: Utilizar mais de um sensor em conjunto
// Ultrasonic - Library for HR-SC04 Ultrasonic Ranging Module.
// Rev.4 (06/2012)
// J.Rodrigo ( www.jra.so )
// more info at www.ardublog.com
#include <Ultrasonic.h>
Ultrasonic ultraleft(9,8); // (Trig PIN,Echo PIN)
Ultrasonic ultraright(6,7); // (Trig PIN,Echo PIN)
void setup() {
Serial.begin(9600);
}
void loop()
{
Serial.print("Left: ");
Serial.print(ultraleft.Ranging(CM)); // CM (centímetros) ou INC (inches - polegadas)
Serial.print(" cm " );
delay(50);
Serial.print("Right: ");
Serial.print(ultraright.Ranging(CM)); // CM (centímetros) ou INC (inches - polegadas)
Serial.println(" cm" );
delay(50);
}
Motor Drive Shield L293D
Onde baixar
A biblioteca está disponível no GitHub: https://github.com/haoji/Adafruit-Motor-Shield-library
Clique aqui para baixar
Renomeie a pasta baixada para "AFMotor" e a mova para a pasta "libraries". Veja como Instalar se tiver dúvidas.
Exemplo: Controlando um motor DC
// AFMotor - Biblioteca para o Motor Drive Shield L293D.
// Ladyada ( adafruit.com )
// mais info em learn.adafruit.com/adafruit-motor-shield/
#include <AFMotor.h>
AF_DCMotor motor(2, MOTOR12_64KHZ); // cria motor #2, 64KHz pwm
void setup() {
Serial.begin(9600);
Serial.println("Testando motor!");
motor.setSpeed(200); // define a velocidade para 200/255
}
void loop() {
Serial.print("tick");
motor.run(FORWARD); // girar para a frente
delay(1000);
Serial.print("tock");
motor.run(BACKWARD); // girar para trás
delay(1000);
Serial.print("tack");
motor.run(RELEASE); // parado
delay(1000);
}
Sketch
Passo-a-Passo
Referências
- Datasheet sensor de refletância infravermelho TCRT5000: http://www.vishay.com/docs/83760/tcrt5000.pdf
- Datasheet sensor de ultrasom HC-SR04: http://www.micropik.com/PDF/HCSR04.pdf
- Exemplo de uso do TCRT5000: http://www.bajdi.com/analogread-from-a-tcrt5000-sensor/
- Outro exemplo de uso do TCRT5000: http://www.bajdi.com/volga-the-line-following-robot/
- Exemplo de uso do HC-SR04 utilizando biblioteca que já devolve a distância em cm: http://letsmakerobots.com/node/30209
- Praticamente tudo sobre o Motor Drive Shield L293D com biblioteca: http://learn.adafruit.com/downloads/pdf/adafruit-motor-shield.pdf
- Arduino Playground, Adafruit Motor Shield: http://playground.arduino.cc/Main/AdafruitMotorShield
- Mais sobre o Motor Shield: http://learn.adafruit.com/adafruit-motor-shield/