PartyKit:PartyBot
Contenido
|
Introducción
Concepto de robot modular
Estructura básica : Hardware
Definición de capas básicas
Las capas que se han definido como básicas para el PartyKit Bot son las siguientes:
- Chasis o Base para el robot: Esta capa servirá de soporte para elementos básicos como los actuadores, ciertos sensores y el resto de capas.
- Capa de Alimentación: La capa de alimentación incluye la batería que alimentará a todos los elementos del robot, tanto las capas, como actuadores. También incluye la electrónica para estabilizar la tensión de alimentación que irá a elementos que lo necesiten como el PIC en la capa de control.
- Capa de Sensores: En esta capa se han intentado concentrar todos los sensores que va a utilizar el bot para relacionarse con el mundo exterior. Pero como se detalla en la descripción del chasis hay sensores en esa capa, que por motivos prácticos deben de ubicarse físicamente en aquella y no en esta. De todos modos, las conexiones de los sensores montados en el chasis también pasarán por esta capa, al igual que los actuadores (servos).
- Capa de Control: La capa de control monta el microcontrolador, el cerebro del bot. A ella se conectan el resto las capas, y desde esta capa se gestionarán todas las tareas del bot.
- Capa de Comunicaciones: En esta capa se concentra la lógica de comunicaciones con sistemas remotos. La idea inicial para introducir esta capa, es el control remoto del bot desde, por ejemplo, un PC.
Todas ellas se detallan en los siguientes capítulos.
Chasis
Esta capa conforma la estructura del robot. La forma que se ha diseñado, albergará :
- Los Actuadores: En el caso del PartyKit Robot se va a tratar de 2 servos. Estos van a ser dos servos trucados para rotación continua.
- Los Sensores básicos de contacto (o bumpers): Para permitir la detección de colisiones.
- Los Sensores de codificación de giro de las ruedas: Para permitir controlar las vueltas que dan las ruedas y por tanto tener control de la distancia que se desplaza nuestro robot. Aunque solo sea relativamente exacta.
- Las sujeciones para todas las demás capas.
Estas son algunas imágenes del modelo 3D del chasis del robot especificando las partes mencionadas.

El chasis ha sido creado con material rígido. PVC o Metacrilato son igualmente válidos.
La lámina del material elegido tiene un grosor de 5 mm para permitir atornillar en los cantos de la lámina.

Valga como guia para el montaje del kit, la siguiente secuencia de imágenes. Por un lado la imagen 3D creada con Google Sketchup, y por otro lado una imagen de un prototipo real.
Para la construcción del mismo, además de estas imágenes, serán útiles los planos que se muestran en la sección Planos para la construcción, donde están los planos con las
A la lámina principal se le atornillan perpendicularmente las 2 láminas para la sujeción de los servos:

La lámina que va al frente del bot, tiene 2 hendiduras para dejar paso a los cables de los servos.

Y sobre ellos se fijan los servos:

A continuación se inserta la rueda loca que dará soporte a la parte trasera del robot.
La rueda loca es una rueda de pequeñas dimensiones fácil de encontrar en ferreterías.

Las ruedas pueden ser montadas sobre las astas de los servos. Sobre ellas hablamos un poco más abajo (Las Ruedas), donde se dan más detalles de sus dimensiones, etc...

Para que el PartyKit pueda crecer, se incorporan las varillas, que son simples varillas de rosca de 4 mm, que insertamos en los agujeros que ya tenemos preparados en la plancha base. Para fijarlos, utilizamos tuercas y arandelas por la parte inferior y superior.

Una vez que tenemos esta estructura montada, la siguiente parte es montar la otra plancha de metacrilato(o PVC) que dará soporte a los resortes de los bumpers y a los codificadores que apoyan sobre las ruedas. La distancia entre la base y esta plancha, se puede crear mediante separadores de aluminio (cilindros de aluminio huecos de diámetro interior de algo más de los 4 mm de nuestra varilla), o también con tuercas (cosa que será más difícil de regular a la misma altura para las 3 varillas).

Los detalles de los bumpers y los codificadores apoyados sobre las ruedas se describen a continuación.
Los Servos
Los servos son servos analógicos modificados para rotación continua, como por ejemplo los Futaba 3003. Consulta el procedimiento de modificación de los servos para detalles [Poner Enlace]. Otra alternativa es que utilices servos ya diseñados para rotación continua como los Parallax Continuous Rotation Servo.
Las Ruedas
Las ruedas van fijadas directamente a las aspas de los servos.
Para crear las ruedas existen muchas opciones. Se puede optar por :
- Utilizar PVC o metacrilato y cortarlo en forma de circulo. Aunque esta opción harán que sean más imperfectas.
- Se pueden comprar hechas.
- Otra opción mejor es reutilizar ruedas de una maleta vieja.
La recomendación es que el modelo de rueda que se utilice y el modelo de rueda loca, estén equilibradas entre si, y mantengan la posición horizontal de las plataformas del robot. Si utilizas unas ruedas con un diámetro muy grande, la plataforma irá inclinada.
Para crear nuestro prototipo recomendamos que las ruedas tengan 60 mm de diámetro.
Bumpers y Codificadores de giro
Para dotarle al robot, tanto de bumpers trasero y delantero, como de codificadores de giro para las ruedas, se ha aprovechado un ratón de bola.
Las siguientes imágenes muestran un despiece de un ratón para aprovechar sus componentes:
Detalle de los codificadores, y los botones del ratón:
Aquí los componentes ya extraídos:
Los pulsadores del ratón tienen tres patillas, como muestra esta vista en detalle de uno de ellos.

...la central es común. Tenemos la siguiente tabla:
| Pin del switch | En Estado Pulsado | En Estado No Pulsado |
| Pin C | Central y C conectados | Abierto |
| Pin NC | Abierto | Central y NC conectados |
Los pulsadores una vez montados en el borde del chasis, tanto por la parte delantera como la trasera quedan así:

Los tornillos para fijarlos son de 2 mm de diametro.
Una vez fijados en el borde, el sistema de bisagra, más un tornillo colocado estratégicamente sobre la placa de la bisagra, apoyará sobre el pulsador como muestra la siguente imagen. Aquí se ve la bisagra como atornilla a la placa y a la plancha horizontal, y el tornillo que apoya sobre el pulsador:

En esta otra imagen se ve la placa del bumper completo y el tornillo sobre el pulsador:

Sobre las ruedas vamos a apoyar el eje de la rueda dentada del codificador de ratón. Una como esta:

Además hemos aprovechado parte de la estructura de soporte que existía en el ratón para no tener que fabricar un nuevo soporte.
Como el eje del codificador del ratón es muy delgado (en torno a 3 mm de diámetro. Ver la imagen anterior), tenemos que añadir algún elemento que modifique el diámetro, si no, la relación de vueltas de rueda / pulsos por vuelta sería muy alta:
Relación de giro = Diametro de Rueda / Diametro eje codificador
En nuestro caso con el eje que viene en el ratón :
Relación de giro = 60 mm / 3 mm = 20
Teniendo en cuenta que el codificador tiene 36 dientes, tendremos 36 pulsos a nivel alto, más 36 pulsos a nivel bajo, luego en total :
Pulsos totales por vuelta = 20 x 36 = 720 pulsos a nivel alto y otros 720 a nivel bajo.
Para sacar la relación de pulsos por centímetro recorrido:
(720 pasos/vuelta) / (188,496 mm/vuelta) = 3,82 pasos/mm ó 38,2 pasos/cm.
Para reducir este ratio, se añadió un anillo de goma al eje, como el que muestra la siguiente imagen:
De este modo se ha agrandando el diámetro hasta 12,5 mm.
Al rehacer los cálculos tenemos:
Relación de giro = 4,8
Pasos por vuelta = 172,8 pulsos/vuelta a nivel alto y otros tantos a nivel bajo.
Pasos por centímetro = 9,16 pulsos/cm a nivel alto y otros tantos a nivel bajo.
Es decir, que por cada cm que recorra una de las ruedas del bot, tendremos al menos 9 pulsos altos y 9 pulsos bajos. Este dato lo tenemos que tener en cuenta para realizar los cálculos desde el programa para el microcontrolador.
Estos son los componentes que hemos sacado del ratón para hacer los codificadores de giro:
Los dos de arriba son fototransistores. Como se puede ver tienen tres patillas. La centran es común y normalmente va a la alimentación positiva. Las otra dos patillas corresponden cada una a un emisor de cada foto transistor, de los dos que hay integrados en el componente. El diagrama lógico del componente sería algo así:
Los de abajo son diodos de infrarrojos. Como se ve en la imagen anterior, tienen un punto rojo, este señala el cátodo. El diagrama lógico de los mismo es este:
Para montar los componente en nuestro partybot, necesitamos polarizar tanto los diodos, como las salidas de los foto transistores para recoger la información precisa de los pulsos. Para ello el siguiente esquema nos permitirá obtener a su salida los pulsos perfectamente cuadrados de la señal que nos proporcionen los foto transistores al girar la rueda. El conector de pines, irá directamente pinchado a la placa de sensores:
La razón para incluir unos disparadores de Schmitt se puede ver claramente en la siguiente imagen tomada del osciloscopio. Estas señales proceden de un solo fototransistor mientras que la rueda giraba a una velocidad constante.
La de abajo es la señal tomada directamente de la patilla del fototransistor.
La señal de arriba es la salida rectificada por el disparador de Schmitt, con la cual alimentaremos un pin de entrada de nuestro microprocesador.
Aquí una imagen de la rueda, el codificador de giro del ratón, y el adaptador de goma de 12,5 mm de diámetro apoyando sobre la rueda. Todo ello con la electrónica de los codificadores de cuadratura montada, y los cables de conexión:
Capa de Alimentación
La capa de Alimentación, como el resto de capas, ha sido desarrolladas directamente sobre PCBs de un unas dimensiones de 76,2 mm x 76,2 mm (3 pulgadas x 3 pulgadas).
En general, en todas las capas se ha intentado incluir toda la electrónica y dispositivos necesarios para cumplir con la función para la que se han designado. El espacio disponible dentro de esos 76,2 mm x 76,2 mm, queda limitado además por los agujeros de paso de las varillas, que permiten a las placas ir fijas al chasis del bot.
El siguiente diagrama es válido para todas las capas. Es a escala 1:1 la PCB y la distribución de los taladros para la misma.
En concreto, la capa de alimentación incluye la batería. Se ha decidido por tamaño, peso y versatilidad una batería de Litio-Polímero (Li-Po) de 2 celdas que proporcionará 7,6 Voltios. Esta tensión será regulada y se obtendrán 5 Voltios para alimentar la lógica y otros dispositivos del bot.
La placa irá dotada de un conector hembra para DC, de modo que pueda ser alimentado externamente.
También tendrá un interruptor para encendido y apagado del bot.
El esquema de la capa de alimentación es el siguiente:
La PCB de Alimentación es la siguiente:
La lista de componentes utilizados es la siguiente:
- 1 Conector alimentación DC.
- 1 pares de pines (para conexión de batería Li-PO).
- 1 Conector de bornas con tornillo de 4 bocas.
- 1 78L05 encapsulado TO92.
- 3 diodos 1N4004.
- 1 condensador electrolítico 1uF
- 1 condensador electrolítico 0,1uF
- 1 Diodo LED verde.
- 1 Resistencia 1K 1/4 watt.
- 1 Switch de 2 posiciones.
La siguiente imagen muestra el modelo 3D con la placa de alimentación montada. Sobre el modelo solo se han destacado la posición de la batería(que es esa caja blanca) y el conector DC para alimentación externa que va en el frontal:
Capa de Sensores
La capa de sensores pretende concentrar toda la conectividad de sensores y actuadores del bot.
Algunos de ellos van físicamente soportados por la misma PCB, pero como es lógico, otros sensores van estratégicamente colocados en otras partes del robot, y en esta PCB se encuentra su punto de conexión. Por tanto, la electrónica de esta placa es mínima.
Los sensores que van montados físicamente sobre esta placa son los sensores infrarrojos GP2D120. El resto de sensores están físicamente montados en el chasis como se explicó en el apartado Chasis anteriormente.
La disposición de los GP2D120 es tal que permitan tener sus campos de detección de obstáculos en las cuatro direcciones del robot. La posición que se sugiere (como se puede ver en el modelo 3D de más abajo), es formando una especie de torre de dos pisos. Es decir, que están pareados juntando sus dorsos. En el primer piso los orientados hacia delante y hacia atrás, y en el segundo piso los orientados hacia la izquierda y hacia la derecha. De este modo conseguimos que estén más cerca del centro del robot, por tanto alejados del borde una distancia suficiente como para que ningún objeto externo al robot caiga dentro de la zona muerta de los sensores GP2D120, que se encuentra a menos de 4 cm del sensor.
La lista de los sensores del robot es la siguiente. Sirva también como tabla de referencia rápida (útil para el momento de la programación):
| Sensor | Tipo de Medición | Analógico/Digital | Ubicación en el Bot |
| Pulsador del ratón 1 | Detección de choques | Digital | Chasis / Parte Frontal |
| Pulsador del ratón 2 | Detección de choques | Digital | Chasis / Parte Trasera |
| Encoder de giro de ratón 1 | Cuenta X pasos por vuelta | Digital | Chasis / Sobre rueda izquierda |
| Encoder de giro de ratón 2 | Cuenta X pasos por vuelta | Digital | Chasis / Sobre rueda derecha |
| GP2D120 numero 1 | Distancia a los obstáculos | Analógico | Centro del chasis / Orientación: Derecha |
| GP2D120 numero 2 | Distancia a los obstáculos | Analógico | Centro del chasis / Orientación: Izquierda |
| GP2D120 número 3 | Distancia a los obstáculos | Analógico | Centro del chasis / Orientación: Frontal |
| GP2D120 número 4 | Distancia a los obstáculos | Analógico | Centro del chasis / Orientación: Trasera |
Respecto a la interconexión de la placa con las otras capas, tenemos 2 conectores IDC-10 se encargan de concentrar todas las lineas para comunicar con la placa de control que estará en la posición inmediatamente superior a esta.
La alimentación se toma de la capa de alimentación vía conectores de bornas.
Este es el esquema de la placa de Sensores:
Esta es una imagen del modelo 3D montado hasta la capa de sensores. Se han destacado los sensores IR, que van montados en esa disposición de torreta para estar lo suficientemente alejados del borde del robot como para que ningún objeto externo al robot caigan dentro de su zona muerta (menos de 4 cm del sensor).
Capa de Control
La capa de control del PartyBot ha sido creada para incluir una placa Pinguino. El cerebro del PartyBot será un Pinguino. Su programación y facilidad para modificar los mismos programas hará que sea muy sencillo de utilizar.
La PCB de control será un adaptador entre Pinguino y los interfaces con la placa de sensores. Serán necesario una serie de resistencia para adaptar las entradas/salidas.
A continuación dos imagenes de la capa de control con Pinguino ARDE 1.0 montado sobre ella:
Capa de Comunicaciones
La capa de comunicaciones está pendiente de desarrollo.
Construye un PartyKit Robot
Modelo 3D
Planos para construcción
Esquemas de placas
Esquemas de conexionado
Arquitectura Lógica : Software
Programa básico de control
Posibles desarrollos al programa básico
Alternativas a la capa de control
Arduino-AMR
Otro PIC
La capa de control es el cerebro del bot, y dentro de ella, la parte más importante, por supuesto, es el micro 18F4550.
El encapsulado físico elegido para la placa de control, ha sido el SMD. Según la propia datasheet del PIC:
La utilización/distribución que se ha hecho de los pines del PIC es la siguiente:
- LED en RA4
- Sensores IR: AN4 a AN7 (RA5 y RE0 a RE2)
- Odometría (4 pines) RB4 a RB7
- Servos en CCP1 y CCP2 (RC1 y RC2) - (Esto se hace de esta forma, porque si cambiamos a motores podremos usar el PWM).
- Comunicaciones RC4 a RC7: A la placa de comunicaciones.
- Bumpers: RB3 y RB2
Ordenado por Pines:
- RA0 a RA3: Reservado (Para futuros sensores analógicos)
- RA4: LED
- RA5: Sensor IR
- RA6: Oscilador / Reservado
- RA7: Oscilador / Reservado
- RB0 a RB2: Reservado (Para comunicaciones I2C o Interrupciones externas)
- RB3: Reservado
- RB4 a RB7: Odometría (RB6 y RB7 tambien programación).
- RC0: Reservado
- RC1 a RC2: Servos
- RC3: Reservado
- RC4 a RC7: Comunicaciones
- RD0 a RD7: Reservado
- RE0 a RE2: Sensores IR
- RE3: Reset / Programación / Reservado.
Esta es la PCB de la capa de control:
Esta es una imagen del modelo 3D con la placa de control incorporada:








