Professional Documents
Culture Documents
Para empezar debemos identificar todas las partes que necesitaremos para la
construccin de un robot de tipo vehculo:
- Chasis y ruedas: Todo robot necesita un cuerpo, un chasis que le d
estabilidad y robustez y que permitir que se unan el resto de piezas para
formar el conjunto del robot. En mi caso, tal y como se ve en la siguiente imagen, he
diseado e impreso en 3D un chasis en plstico PLA, perfecto para sujetar 2
servomotores y un Arduino UNO. Dispone de un pequeo cajn trasero para poder
guardar una batera de 9V y justo debajo de dicho cajn (Aunque no se ve en la
imagen), una rueda loca. Del mismo modo necesitar unas ruedas para desplazarse.
No es necesario que sean tan bestias como las que utilizo yo :D.
- Microcontrolador: Necesitar un cerebro para poder controlarlo, en mi caso
utilizo un Arduino UNO, aunque cualquier otro Arduino o microcontrolador es
vlido.
- Motores: Todo vehculo necesita de motor, yo voy a utilizar 2 servomotores
trucados de modo que sean capaces de girar 360. Podemos ver como
trucar un servomotor para que gire 360 en este tutorial: Cmo trucar servos
Futaba S3003?.
- Driver de potencia para motores: Para poder alimentar los motores
independientemente del control, deberemos utilizar un driver de potencia que permita
el giro en ambos sentidos de los motores. Existen muchos drivers de potencia,
el L293D es un driver formado interiormente por un doble puente en H capaz de
manejar cargas pequeas como por ejemplo, motores de corriente continua. Es muy
sencillo de utilizar, econmico y suficiente para este proyecto. Aqu podemos ver su
datasheet: L293D Quadruple Half-H Drivers
- Alimentacin del conjunto: Estos robots normalmente necesitan de
varias tensiones de alimentacin para poder alimentar correctamente todas
las partes. Como no es muy eficaz disponer de 2 o 3 bateras para alimentar un
mismo conjunto, he realizado un shield casero para Arduino UNO donde conectar
una batera de 9V como la de la imagen.
Este shield dirigir por una parte los 9V de la batera al pin Vin de Arduino. Este pin
Vin acepta tensiones recomendadas de entre 7V y 12V, que posteriormente regular
a 5V para la alimentacin del microcontrolador Atmega328P.
Bien, sabiendo las partes que necesitamos, vamos a ponernos manos a la obra:
Aqu podis descargar los archivos del diseo del shield, tanto el esquema electrnico
como el layout de la placa: Shield para robot controlado por infrarrojos en
OrCAD 10.5.
(Link actualizado 25-02-2015).
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Twitter: @iPadNanito
#include
#include
// Libreria Infrarrojos
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
digitalWrite(motor1Pin1,
digitalWrite(motor1Pin2,
digitalWrite(motor2Pin1,
digitalWrite(motor2Pin2,
HIGH);
LOW);
HIGH);
LOW);
LOW);
HIGH);
LOW);
HIGH);
LOW);
LOW);
LOW);
LOW);
5) El comando (8 bits)
6) El inverso lgico del comando (8 bits)
7) Un pulso de 562.5 s para indicar el final de la transmisin del mensaje.
La siguiente imagen ilustra perfectamente el mensaje transmitido en la pulsacin de
una tecla de un mando a distancia para una direccin 00000000b y un
comando 10110101b.
Para mi suerte, existe una librera para Arduino que se encarga de recibir esta seal y
entregarnos un cdigo hexadecimal a partir de los 4 bytes (32 bits) enviados por el
mando para poder distinguir cada una de las teclas que hemos pulsado y as poder
configurar las teclas del mando a nuestro antojo.
La librera en cuestin, se llama NECIRrcv y podemos descargarla de aqu:
NECIRrcv
Aparcamos la librera un momento y procedemos al montaje del circuito, utilizando el
esquema que viene en el datasheet del receptor TSOP1238 para conectarlo al
Arduino.
Donde
vemos que el IR Receiver (TSOP1238) se conecta por su pin Vs a una resistencia
(100 valen) y esta a 5V. El pin GND conectado a masa. Y el pin OUT, al
microcontrolador, que en nuestro caso ser el Arduino.
Listo el circuito y conectado al Arduino, el siguiente paso ser recibir los cdigos
de los botones del mando que vayamos a utilizar en nuestro proyecto, por lo
que cargamos en el entorno de Arduino el ejemplo que viene en la
librera NECIRrcv y lo ejecutamos.
Este ejemplo viene preparado para mostrar por el Serial Monitor los cdigos
correspondientes al botn que hayamos pulsado, como vemos en la siguiente imagen:
Cdigos Hexadecimales