Javier Valcarce's Personal Website

RoboPerrín/v1

From JavierValcarce.Es

You are at: Home > Hardware > RoboPerrín/v1
Jump to: navigation, search

This article or section is still a stub. Este artículo o sección es todavía un esbozo.

La primera versión del robot recibe las órdenes a través del puerto serie del ATmega8. En la placa Arduino, este puerto serie está conectado al chip FTDI que es una interfaz entre RS232/TTL y USB, por lo que roboperrín estará conectado en realidad por puerto USB aunque para el software será como si fuese (aparentemente) por puerto serie.


Hardware

Lista de la compra

Lista de materiales para construir RoboPerrín
Material Cantidad Precio total (€)
Caja de Meccano Multimodels (40 modelos) 2 2*40=80
Placa Arduino (micro AVR ATmega8/168) 1 25
Servos Futaba 3003 (hay que trucarlos para rotación continua) 2 2*12=24
IC L293B 1 3
Placa de inserción pequeña 1 9
Cable de conexión para placa de inserción (1 rollo de 10m) 1 1
Pack de 4 pilas recargables AA de 2Ah+ 1 16
Cargador de pilas recargables 1 20
Cajetín para 4 pilas AA 1 0.5
Pila 6F22 (las cuadradas de 9v) recargable 150mAh+ 1 10
Clip para pila 6F22 1 0.5
Conector de alimentación 1 0.5
Dos orugas para las ruedas (la cinturilla ancha de goma de unos calzoncillos boxer) 2 No tiene precio

Estructura

RoboPerrín consiste básicamente en

  • Un chasis[1] hecho con piezas de Meccano. Con una caja de piezas creo que es suficiente pero por si acaso compra dos, así podrás hacer un chasis más chulo.
  • Dos servos acoplados al chasis y lógicamente a las ruedas. Los servos vienen con unas piezas de plástico y unos tornillos para acoplar los servos a casi cualquier cosa que tenga donde agarrar. Acoplarlos a piezas de Meccano es muy fácil.
  • Hay 4 ruedas, las 2 traseras son las que tienen los servos.
  • En cada lado, las ruedas van unidas mediante una oruga. La oruga es imprescindible, sin ella el robot no puede girar, pruébalo y verás la diferencia.
  • El ordenador (cerebro) de RoboPerrín es un microcontrolador AVR ATmega8, en lugar de usar un micro "pelado" vamos a usar la placa de desarrollo Arduino, que tiene un micro ATmega8 más el correspondiente oscilador y un adaptador (chip FTDI) de puerto serie a USB. La placa va unida al chasis por detrás con un tornillo.
  • El robot lleva una placa de inserción (también llamada de prototipos) en el tejado para acoplar varios periféricos al microcontrolador, como por ejemplo altavoces, leds, sensores de IR, GPS, etc.
  • Circuito L293B (puente H integrado) para suministrar potencia a los servos.
  • La conexión del micro con los distintos circuitos sobre la placa de inserción la puedes hacer con cable semirígido de prototipos o cable plano.

Qué es un servo y para qué sirve

Un servomotor es un motor controlado electrónicamente, generalmente mediante un ordenador (microcontrolador). RoboPerrín usa 2 servos Futaba S3003 trucados para rotación continua.

Qué es un puente H de transistores y para qué sirve

Un puente H de transistores es una disposición de 4 transistores de potencia en forma de "H", sirven para hacer circular, a voluntad, una elevada corriente en un sentido o en otro. El control del puente es "todo o nada", es decir, un puente H no permite amplificar señales.

  • Si la corriente gira en un sentido, el motor DC gira a derechas
  • Si la corriente gira en el otro sentido, el motor DC gira a izquierdas

No voy a explicar esto a fondo porque existen ya muy buenas páginas sobre el tema. Afortunadamente existen puentes H integrados, como el clásico L293B (~3€) para corrientes de hasta 2A.

Los servos normalmente ya llevan el puente H integrado dentro del propio motor (motor + puente H + caja reductora + electrónica de control) pero como nosotros hemos trucado el servo Futaba S3003 quitándole el puente H interno, ahora debemos poner uno externo (el chip L293B).

Actualmente, hay también en el mercado servos de rotación continua que son sólo un poco más caros que los clásicos Futaba S3003, merece la pena echarles un vistazo ya que permiten ahorrarnos el L293B, conectarlos directamente al microcontrolador y por tanto simplificar el cableado.

Montaje paso a paso. Conexionado

This article or section is still a stub. Este artículo o sección es todavía un esbozo.

  1. Trucar los servos Futaba S3003 tal y como se explica en esta excelente guía. Los servos vienen con unas piezas para su acople, acoplarlo a estructuras de Meccano es muy fácil
  2. Armar el chasis del robot con las piezas de Meccano. No tiene porqué ser exactamente igual al que hemos hecho nosotros, puedes hacer otro diseño. En ese caso, antes de empezar a construir el cacharro, piensa dónde y cómo vas a poner los servos, la placa Arduino y la batería/pilas. Esta es la descripción de cómo montar el chasis que hemos hecho nosotros
    1. POR HACER: PONER FOTOS DE CADA PASO...
    2. POR HACER: PONER FOTOS DE CADA PASO...
    3. ...
    4. ...
    5. ...
  3. Monta la placa de inserción y sujétala al chasis con celofán o una goma.
  4. Monta todos los circuitos en la placa de inserción (el L293B) y conectalo a Arduino con cable rígido de prototipos o bien cable paralelo y tiras de postes macho-macho. POR HACER: DIAGRAMA DE CONEXIÓN
  5. Conectar Arduino al PC mediante el cable USB, compilar y cargar el software en la placa Arduino
  6. Abre HyperTerminal (Minicom en Linux) y conéctate al puerto serie COM4 (/dev/ttyUSB0) o el que puerto que corresponda al puerto serie virtual (USB). Pulsa RESET en la placa Arduino, tras unos segundos verás lo siguiente en el terminal:
RoboPerrin 0.1
Usage with keyboard:
SPACE - Start/Stop motors
    w - Go ahead
    s - Go back
    a - Turn left
    d - Turn right

Envía algunas órdenes a RoboPerrín (teclas w, s, a, d) para que se mueva. Al menos eso debería hacer, si no lo hace es porque has conectado mal los cables, revísalo y prueba otra vez ;-)

Vista por detrás, sin el techo
Vista por detrás, sin el techo
RoboPerrín listo para la batalla
RoboPerrín listo para la batalla

Software

Fuente: roboperrin_v1.pde

Este es el software completo de Roboperrín_v1 para la placa Arduino, equipada con un microcontrolador ATmega8 de Atmel. Ojo, las nuevas versiones de Arduino llevan el ATmega168 por lo que el código puede que no compile, tendrás de modificarlo muy ligeramente, las diferencias entre el ATmega8 y el ATmega168 son mínimas.