Arduino - Robo carrinho, controlado pela internet (ruby + sinatra)

Olá pessoal, saiu do formo em pouco tempo meu primeiro robo, nada mais é do que um carrinho de 1.99, que agora se tornou no carrinho arduinizado controlado pela internet!

Utilizei o CI L293B para controlar os 2 moteres DC (ponte H).

O robozinho foi montado em pouco tempo, por isso utilizei os 2 motores DC que já vem com o próprio carrinho. O motor DC traseiro faz com que o carrinho ande frente e ré.

O dianteiro possui uma engrenagem que faz girar as rodas para direita e esquerda, decidi usar estas mesmas engrenagens para esse projeto simples mas nos próximos a coisa vai sendo incrementada mais a fundo.

Foto do motorDC e engrenagem frontal ( direita e esquerda).

O que utilizei no projeto:

- Arduino Uno

- Protoboard

- 3 Leds

- 3 Resistores 220 ohms

- CI L293B (ponte H)

- 2 Motores DC

- Carrinho do 1.99

Foto Ponte H (ci L293B):

Fritzing:

Além dos controles de motores eu incrementei leds de direita e esquerda.

Joystick:

legenda:

F = frente

E = esquerda

D = Direita

R = ré

P = Parar ( para todas as ações de imediato)

C = centro (centralizar eixo frontal)

Código arduino:

01 int ledHigh = 12;
02 int ledEsquerda = 4;
03 int ledDireita = 3;
04  
05 void setup() {
06  
07 Serial.begin(9600);
08  
09 pinMode(11, OUTPUT);
10 pinMode(10, OUTPUT);
11 pinMode(7, OUTPUT);
12 pinMode(6, OUTPUT);
13 pinMode(ledHigh, OUTPUT);
14 pinMode(ledEsquerda, OUTPUT);
15 pinMode(ledDireita, OUTPUT);
16 digitalWrite(ledHigh, HIGH);
17 }
18  
19 void loop() {
20  
21 if(Serial.available() > 0)
22  {
23  int entrada = Serial.read();
24  
25 switch (entrada){
26  case 'f':
27  frente();
28  break;
29  
30 case 'r':
31  re();
32  break;
33  
34 case 'p':
35  parar();
36  
37  case 'c':
38  centro();
39  break;
40  
41  case 'd':
42  direita();
43  break;
44  
45 case 'e':
46  esquerda();
47  break;
48  }
49  }
50 }
51 void frente(){
52  digitalWrite(11, HIGH);
53  digitalWrite(10, LOW);
54  digitalWrite(ledDireita, LOW);
55  digitalWrite(ledEsquerda, LOW);
56  digitalWrite(ledHigh, HIGH);
57  
58 }
59 void re(){
60  digitalWrite(11, LOW);
61  digitalWrite(10, HIGH);
62  digitalWrite(ledDireita, LOW);
63  digitalWrite(ledEsquerda, LOW);
64  digitalWrite(ledHigh, HIGH);
65  
66 }
67 void parar(){
68  digitalWrite(11, LOW);
69  digitalWrite(10, LOW);
70  digitalWrite(ledDireita, LOW);
71  digitalWrite(ledEsquerda, LOW);
72  digitalWrite(ledHigh, LOW);
73 }
74  
75 void direita(){
76  digitalWrite(7, HIGH);
77  digitalWrite(6, LOW);
78  digitalWrite(ledDireita, HIGH);
79  digitalWrite(ledEsquerda, LOW);
80 }
81  
82 void esquerda(){
83  digitalWrite(7, LOW);
84  digitalWrite(6, HIGH);
85  digitalWrite(ledDireita, LOW);
86  digitalWrite(ledEsquerda, HIGH);
87  
88 }
89 void centro(){
90  digitalWrite(7, LOW);
91  digitalWrite(6, LOW);
92  digitalWrite(ledDireita, LOW);
93  digitalWrite(ledEsquerda, LOW);
94 }

Não esqueça que você pode testar o projeto usando a SerialMonitor da IDE do arduino, digitando as letras do teclado para executar cada função.

Se você quiser criar o sevidor ruby e sinatra estes post anteriores podem ajudar:

http://meetarduino.wordpress.com/2012/04/24/arduino-controlando-ser...

http://meetarduino.wordpress.com/2012/04/04/arduino-l293b-e-motor-dc/

http://meetarduino.wordpress.com/2012/04/09/sinatra-e-arduino-vamos...

Video do projeto:

Mais fotos:

Post original:

http://meetarduino.wordpress.com

Exibições: 1773

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de marcos.schwaab em 14 maio 2012 às 18:35

Tudo bom Marlon, voce não precisa de um ethernet shield ou sinal wifi para isso...pode usar o próprio cabo usb, o ruby tem uma biblioteca para a serialport estou enviando os dados para o arduino pelo cabo usb.

Resmumindo:

Você acessa o servidor que esta em um PC e este PC(servidor) está ligado via cabo USB no arduino....

A forma com que você envia os dados para o arduino, você quem escolhe.....eu usei o USB mesmo, pois meu orçamento ta curto pra comprar um Xbee wifi!

Abraçø

Comentário de Marlon Rodrigues de Souza em 14 maio 2012 às 18:12

como fez para controlar ele pela internet?? não da pra ver daqui o RJ45 ou algum tipo de sinal wireless??

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2017   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço