robot controlado por infrarojo

Upload: barifer

Post on 07-Jul-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Robot Controlado Por Infrarojo

    1/15

    Robot controlado por Infrarrojos

    Para empezar debemos identificar todas las partes que necesitaremos para la

    construcción de un robot de tipo vehículo:

    - 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. n mi caso, tal y como se ve en la si!uiente ima!en, he

    dise"ado e impreso en #$ un chasis en plástico P%&, perfecto para sujetar '

    servomotores y un &rduino ()*. $ispone de un peque"o cajón trasero para poder

    !uardar una batería de + y justo debajo de dicho cajón -&unque no se ve en la

    ima!en, una rueda loca. $el mismo modo necesitará unas ruedas para desplazarse.

    )o es necesario que sean tan bestias como las que utilizo yo :D.- Microcontrolador: )ecesitará un cerebro para poder controlarlo, en mi caso

    utilizo un Arduino UNO, aunque cualquier otro &rduino o microcontrolador es

    válido.

    - Motores: Todo vehículo necesita de motor, yo voy a utilizar  2 servomotores

    trucados de modo que sean capaces de irar !"#$. Podemos ver como

    trucar un servomotor para que !ire #/01 en este tutorial: %C&mo trucar servos

    'utaba (!##!)*

    - +river de potencia para motores: Para poder alimentar los motores

    independientemente del control, deberemos utilizar un driver de potencia que permita

    el !iro en ambos sentidos de los motores. 2isten muchos drivers de potencia,

    el ,2!+ es un driver formado interiormente por un doble puente en 3 capaz de

    manejar car!as peque"as como por ejemplo, motores de corriente continua. s muy

    sencillo de utilizar, económico y suficiente para este proyecto. &quí podemos ver su

    datasheet: ,2!+ .uadruple /al0-/ +rivers

    - Alimentaci&n del con1unto: stos robots normalmente necesitan de

    varias tensiones de alimentaci&n para poder alimentar correctamente todas

    las partes. 4omo no es muy eficaz disponer de ' o # baterías para alimentar unmismo conjunto, he realizado un 5shield casero6 para &rduino ()* donde conectar7

    una batera de 3 como la de la ima!en.

    ste shield diri!irá por una parte los + de la batería al pin in de &rduino. ste pin

    in acepta tensiones recomendadas de entre 8 y 9', que posteriormente re!ulará

    a para la alimentación del microcontrolador &tme!a#';P.

    http://electronicavm.wordpress.com/2011/11/18/como-trucar-servos-futaba-s3003/http://electronicavm.wordpress.com/2011/11/18/como-trucar-servos-futaba-s3003/http://electronicavm.wordpress.com/2011/11/18/como-trucar-servos-futaba-s3003/http://www.ti.com/lit/ds/symlink/l293.pdfhttp://www.ti.com/lit/ds/symlink/l293.pdfhttp://electronicavm.wordpress.com/2011/11/18/como-trucar-servos-futaba-s3003/http://electronicavm.wordpress.com/2011/11/18/como-trucar-servos-futaba-s3003/

  • 8/18/2019 Robot Controlado Por Infrarojo

    2/15

     & su vez, el shield dispone de un reulador de tensi&n ,M45#", que re!ulará

    los + de la batería a / para la alimentación de los motores.

  • 8/18/2019 Robot Controlado Por Infrarojo

    3/15

    %a construcción del robot es a elección de cada uno evidentemente, yo decidí poner

    los servomotores en la parte delantera y una rueda loca detrás.

    (na vez construido el robot, entremos en la electrónica que hará funcionar el

    conjunto.

    9l microcontrolador en mi caso es una placa Arduino UNO sobre la

    que va montado un shield casero que he realizado, veamos el esquema

    electr&nico de dicho shield:

     &quí pod7is descar!ar los archivos del dise"o del shield, tanto el esquema electrónico

    como el layout de la placa: Shield para robot controlado por infrarrojos en

    OrCAD 10.5.

    (Link actualiado !5"0!"!015#.

    https://mega.co.nz/#!Kc1nWZzK!nmdI8oow3ienTqJjOoS3y51QWcmHHKOnlL-GlBQQ0PAhttps://mega.co.nz/#!Kc1nWZzK!nmdI8oow3ienTqJjOoS3y51QWcmHHKOnlL-GlBQQ0PAhttps://mega.co.nz/#!Kc1nWZzK!nmdI8oow3ienTqJjOoS3y51QWcmHHKOnlL-GlBQQ0PAhttps://mega.co.nz/#!Kc1nWZzK!nmdI8oow3ienTqJjOoS3y51QWcmHHKOnlL-GlBQQ0PA

  • 8/18/2019 Robot Controlado Por Infrarojo

    4/15

    4omo he hecho otras veces, he dividido el esquema electrónico en # partes

    numeradas:

    9l cuadro n;mero

  • 8/18/2019 Robot Controlado Por Infrarojo

    5/15

    numerando los pines observamos los si!uientes:

    -

  • 8/18/2019 Robot Controlado Por Infrarojo

    6/15

    cumplirán los valores dados en la tabla u ocurrirá e2actamente lo contrario a lo que

    e2plica la tabla.

    - y B /9A (7ND AN+ >6OUN+: stos pines irán conectados a @)$?

  • 8/18/2019 Robot Controlado Por Infrarojo

    7/15

    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 // i!reria "nrarro$os

     

    // Pin donde va conectado el sensor T%&P1'()

    #deine "*P"N +, 

    // "nstancia de la li!reria "*

    NE"*rcv ir"*P"N

     

    // Pines de los motores

    #deine motor1Pin1

    #deine motor1Pin2 10

    #deine motor2Pin1 ,

    #deine motor2Pin2

     

    // odi3os correspondientes a los !otones del mando a distancia

    #deine +E+NTE 4144,22)0

    #deine +T*+% 4010)(,)40#deine E*E5+ 42')222'20

    #deine "678"E*+ ()102,)0

    #deine %T&P 40'')2,0

     

    unsi3ned lon3 ircode // 9aria!le para almacenar el codi3o reci!ido

     

    void setup

      // eclaramos los motores como salida

      pin;odemotor1Pin1< &8TP8T

      pin;odemotor1Pin2< &8TP8T

      pin;odemotor2Pin1< &8TP8T

      pin;odemotor2Pin2< &8TP8T 

    ir.!e3in // "niciamos la recepcion inrarro$a

    =

     

    void loop

      w>ile ir.availa!le // ;ientras ?ue el sensor este disponi!le...

     

      // eemos almacenamos el codi3o en la varia!le ircode

      ircode A ir.read

     

    i ircode AA +E+NTE adelante //%i el codi3o reci!ido A +E+NTE

      i ircode AA +T*+% atras //9amos >acia adelanteB ...  i ircode AA E*E5+ derec>a

      i ircode AA "678"E*+ iC?uierda

      else i ircode AA %T&P parar

      =

    =

     

    void adelante // "r adelante

  • 8/18/2019 Robot Controlado Por Infrarojo

    8/15

    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

      di3italDritemotor1Pin1< 5"5

      di3italDritemotor1Pin2< &D

      di3italDritemotor2Pin1< 5"5

      di3italDritemotor2Pin2< &D

    =

     

    void atras // "r atras

      di3italDritemotor1Pin1< &D

      di3italDritemotor1Pin2< 5"5

      di3italDritemotor2Pin1< &D

      di3italDritemotor2Pin2< 5"5

    void derec>a // "r a la derec>a

      di3italDritemotor1Pin1< &D

      di3italDritemotor1Pin2< 5"5

      di3italDritemotor2Pin1< 5"5

      di3italDritemotor2Pin2< &D

    =

     

    void iC?uierda // "r a la iC?uierda

      di3italDritemotor1Pin1< 5"5

      di3italDritemotor1Pin2< &D  di3italDritemotor2Pin1< &D

      di3italDritemotor2Pin2< 5"5

    =

     

    void parar // Parar motores

      di3italDritemotor1Pin1< &D

      di3italDritemotor1Pin2< &D

      di3italDritemotor2Pin1< &D

      di3italDritemotor2Pin2< &D

    =

    sto es todo, un robot sencillo y muy Etil si lo utilizamos de un modo didactico.

    4ualquier duda, crítica o corrección, en los comentarios.

  • 8/18/2019 Robot Controlado Por Infrarojo

    9/15

     VIDEO DEL ROBOT: https://www.youtube.co/watch! "#$$%fO&'(o)I

    6ecepci&n 76 con Arduino*

    3ace tiempo que ven!o queriendo toquetear un poco las tecnolo!ías inalámbricas, yaque nos permiten la transmisión de datos entre dos puntos sin necesidad de utilizar

    cables para conectarlos, lo que es una !ran ventaja en muchos proyectos.

    3oy por hoy, hay muchos tipos de tecnolo!ía inalámbrica como Jifi, bluetooth,

    radiofrecuencia, infrarrojos, !prs, !sm, etc. Fo me voy a centrar en los in0rarro1os.

    sta tecnolo!ía conocida como 7r+A -7n0rared +ata

    AssociationI es desarrollada por 3P, D>< y =3&GP allá por 9++# y está basada

    en rayos de luz que se mueven en el espectro infrarrojo.-Dnvisible a los ojos humanos.

    =e trata de mediante emisores y receptores -normalmente leds de ondas infrarrojas,

    establecer comunicación desde un punto al otro. s necesario que emisor y receptor

    se 5vean6, sin obstáculos de por medio.

    2isten muchos protocolos de comunicación infrarroja, ya que este tipo de tecnolo!ía

    inalámbrica se ha utilizado en muchos dispositivos como portátiles, móviles, P$&Ks, y

    los que más conocemos y se!uro todos tenemos en casa, los mandos de 3.

    Fo voy a utilizar el protocolo )4, protocolo que utilizan los mandos universales de

    T.

    (iue leyendoKK

     

    http://electronicavm.wordpress.com/2011/09/20/recepcion-ir-con-arduino-protocolo-nec/http://electronicavm.wordpress.com/2011/09/20/recepcion-ir-con-arduino-protocolo-nec/

  • 8/18/2019 Robot Controlado Por Infrarojo

    10/15

    Para empezar, necesitamos de un receptor de infrarrojos. Fo en mi caso, destroz7 un

    T de ';6 hace tiempo para reciclaje electrónico, y uno de los componentes

    reciclados fue un receptor  (O8

  • 8/18/2019 Robot Controlado Por Infrarojo

    11/15

    BI l comando J5 bitsI

    "I l inverso ló!ico del comando J5 bitsI

    4I (n pulso de /'. Ms para indicar el final de la transmisión del mensaje.

    %a si!uiente ima!en ilustra perfectamente el mensaje transmitido en la pulsación de

    una tecla de un mando a distancia para una dirección 00000000b y un

    comando 90990909b.

    Para mi suerte, e2iste una librería para &rduino que se encar!a de recibir esta se"al y

    entre!arnos un códi!o he2adecimal a partir de los B bytes -#' bits enviados por el

    mando para poder distin!uir cada una de las teclas que hemos pulsado y así poder

    confi!urar las teclas del mando a nuestro antojo.

    %a librería en cuestión, se llama N9C76rcv y podemos descar!arla de aquí:

     'C)*rc+

     &parcamos la librería un momento y procedemos al montaje del circuito, utilizando el

    esquema que viene en el datasheet del receptor T=*P9'#; para conectarlo al

     &rduino.

    http://lemio.nl/files/necirrcv.ziphttp://lemio.nl/files/necirrcv.zip

  • 8/18/2019 Robot Controlado Por Infrarojo

    12/15

    $ondevemos que el DG Geceiver -T=*P9'#; se conecta por su pin s a una resistencia

    -900O valen y esta a . l pin @)$ conectado a masa. F el pin *(T, al

    microcontrolador, que en nuestro caso será el &rduino.

    %isto el circuito y conectado al &rduino, el si!uiente paso será recibir los c&dios

    de los botones del mando que vayamos a utilizar en nuestro proyecto, por lo

    que car!amos en el entorno de &rduino el e1emplo que viene en la

    librería N9C76rcv y lo ejecutamos.

    ste ejemplo viene preparado para mostrar por el =erial

  • 8/18/2019 Robot Controlado Por Infrarojo

    13/15

    Fa utilizando estos códi!os o su correspondiente en decimal -&l mostrarlos por el

    serial monitor quitamos el formateo en he2adecimal de modo que

    quede: (erial.println-ircode podemos controlar cualquier tipo de elemento

    conectado al &rduino con un mando de T.

    Fo sin complicarme mucho, conect7 un led 6>= al Arduino y con el mando a

    distancia podemoscontrolar el apaado y encendido de los distintos

    colores del led.

    stá pro!ramado para controlar el led de la si!uiente manera.

     Q 4on el botón E8oerF del mando apa!amos el led.

     Q 4on el botón E

  • 8/18/2019 Robot Controlado Por Infrarojo

    14/15

     Q &rchivos librería protocolo )4 para &rduino: 'C)*rc+

    L 4ódi!o ejemplo de control de un led G@> con mando a distancia: Led*)*.pde

    ,ed6>=76*pde// %Fetc> para controlar un led *G con un

    // mando a distancia "* con protocolo NE

    #include HDPro3ram.>I

    #include HNE"*rcv.>I //i!reria del protocolo NE

    #deine "*P"N ) // Pin del receptor "*

    NE"*rcv ir"*P"N

    int ro$o A //Pin del color *&J& del led *G

    int verde A 10 //Pin del color 9E*E del led *G

    int aCul A 11 //Pin del color +68 del led *G

    lon3 power A 422)0)')0 //odi3o correspondiente al !oton P&DE* del

    mando a distancia

    lon3 !utro$o A 4112400 //odi3o correspondiente al !oton 1 del mando

    a distancia

    lon3 !utverde A 4144(20 //odi3o correspondiente al !oton 2 del mando

    a distancia

    lon3 !utaCul A 41'',240 //odi3o correspondiente al !oton ( del mando

    a distancia

    void setup

      //%erial.!e3in00 //"niciamos comunicacion serie

     

    ir.!e3in //"niciamos la recepcion "*

     

    pin;odero$o< &8TP8T

      pin;odeverdeile ir.availa!le

      ircode A ir.read //eemos el codi3o del !oton pulsado

     

    i ircode AA power //%i el !oton de power... apa3amos el led 

      di3italDritero$o< &D

      di3italDriteverde< &D

      di3italDriteaCul< &D

      =

      else i ircode AA !utro$o di3italDritero$o

  • 8/18/2019 Robot Controlado Por Infrarojo

    15/15

      else i ircode AA !utaCul di3italDriteaCul