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
intledHigh = 12;
02
intledEsquerda = 4;
03
intledDireita = 3;
04
05
voidsetup() {
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
voidloop() {
20
21
if(Serial.available() > 0)
22
{
23
intentrada = 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
voidfrente(){
52
digitalWrite(11, HIGH);
53
digitalWrite(10, LOW);
54
digitalWrite(ledDireita, LOW);
55
digitalWrite(ledEsquerda, LOW);
56
digitalWrite(ledHigh, HIGH);
57
58
}
59
voidre(){
60
digitalWrite(11, LOW);
61
digitalWrite(10, HIGH);
62
digitalWrite(ledDireita, LOW);
63
digitalWrite(ledEsquerda, LOW);
64
digitalWrite(ledHigh, HIGH);
65
66
}
67
voidparar(){
68
digitalWrite(11, LOW);
69
digitalWrite(10, LOW);
70
digitalWrite(ledDireita, LOW);
71
digitalWrite(ledEsquerda, LOW);
72
digitalWrite(ledHigh, LOW);
73
}
74
75
voiddireita(){
76
digitalWrite(7, HIGH);
77
digitalWrite(6, LOW);
78
digitalWrite(ledDireita, HIGH);
79
digitalWrite(ledEsquerda, LOW);
80
}
81
82
voidesquerda(){
83
digitalWrite(7, LOW);
84
digitalWrite(6, HIGH);
85
digitalWrite(ledDireita, LOW);
86
digitalWrite(ledEsquerda, HIGH);
87
88
}
89
voidcentro(){
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:
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!
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)