robot: proyecto n00b0t | |
---|---|
Robot pequeño multiusos diseñado mientras se aprendia | |
https://arde.cc/foro/viewtopic.php?f=6&t=3404 | |
Palabras Claves | Robot, Siguelineas, Velocista, Laberinto, Libre, Arduino |
Versión – Fecha | 1.20 – julio-septiembre 2011 |
Licencia | Creative Commons 3 (por defecto) |
Autores / Colaboradores | Dip6 |
Tipo Robot |
Velocista/Siguelineas/Laberinto |
Concursos Presentados |
|
Premios | |
Web | http://n00b0t.tikitake.com |
Plataforma/Compilador | ATmega328 con el bootloader de Arduino |
Nivel Software | Medio |
Notas Software | Programar con Arduino |
Nivel Hardware | Medio |
Notas Hardware | libre |
introducción: proyecto n00b0t
N00b0t es un pequeño robot que que nace como un ejercicio de diseño electrónico y autoaprendizaje. Busca además servir como plataforma base siguelíneas que pueda actuar en laberintos o como velocista, para experimentación y pruebas de programación.
Sus principales características son:
- dimensiones reducidas (<= 10cm ø)
- aloja todos sus componentes en una única PCB
- emplea exclusivamente elementos through-hole de fácil montaje
- utiliza baterías estándar tipo AAA
- compatible con micromotores de 12mm tipo Sanyo 12GN NAXX (Pololu, Solarbotics, etc)
- directamente programable desde Arduino
Diseño
Teniendo en cuenta las limitaciones (autoimpuestas) de espacio, es fácil comprender que buena parte del tiempo dedicado al proyecto ha consistido en seleccionar los componentes adecuados, estudiar cómo integrarlos y encontrar el mejor diseño que permita una distribución adecuada de todos los elementos.
Formato
La primera decisión a tomar consistió en la selección de motores y ruedas, dado que indudablemente condicionaban el formato final del robot. En este caso fué sencillo decidirme por los micromotores tipo Sanyo con adaptadores y ruedas (de 32x7mm) Pololu; asequibles, fáciles de conseguir, e ideales en robots de reducidas dimensiones.
Tras varias pruebas, y manteniendo mi idea original de formato circular, me decidí por un diseño con los motores ligeramente desplazados hacia el exterior:
Componentes
Micro
ATmega328 con el bootloader de Arduino y pines TX/RX en placa para conexión directa.
Regulador StepUp
Siguiendo la idea (ya aplicada en otros robots) de conseguir una alimentación constante para que el rendimiento de los motores no se vea afectado por el nivel de carga de las baterías, decidí incluir un circuito regulador StepUp a 7v.
Lo cierto es que no me resultó fácil conseguir hacer funcionar un sistema de este tipo en una placa de pruebas (dado que la topología y el propio diseño físico del circuito suele jugar un papel fundamental), pero encontré que el conocido MC34063A es lo suficientemente permisivo…
Regulador Low Dropout
Obviamente, el resto de elementos necesitan también una alimentación constante pero a menor voltaje, de modo que incluí un regulador LDO a 5v y un filtro LC. Aunque un LM2937 nos puede servir, encontré especialmente interesante la serie MIC29XXX de Micrel en formato TO-220.
Sensores
Me decidí por un conjunto de 2 (para indicaciones de giro) + 5 (seguimiento de línea) sensores CNY70. Los dos primeros se leen en digital (por falta de entradas analógicas) “filtrados” con un 74HC14 y los cinco centrales en analógico.
Control de Motores
Se lleva a cabo con un L293D. Las señales de control se “normalizan” y “duplican” (para ahorrar un par de pines) con el 74HC14.
Prototipo
Si el proyecto en sí es complicado por razones de espacio, realizar un prototipo montando los componentes sobre una placa de topos y cableando “a mano” se convierte en todo un ejercicio de habilidad. No obstante, finalmente conseguí hacerlo operativo (eso sí, reduciendo el número de sensores a tres):
Y hacer las primeras pruebas de seguimiento http://www.youtube.com/watch?v=-Y10OlJbEqM
n00b0t 1.20
Lista de Modificaciones
+ se añade divisor de tensión (R9/R10) conectado a A0
+ se añade TSOP conectado a D2
+ se incluyen dos nuevos leds conectados a D3 y D4, aunque se mantienen los pines de conexión
+ se añade toma 5V & GND
+ perímetro Buzzer (12 mm) en tPlace
+ se añade un conector para baterías externas
+ se reubican los jumpers ON y LN
+ se reubican ligeramente los condensadores C1 y C4
+ se sustituye el buzzer TDK por un buzzer multi y se reubica ligeramente
+ se reorientan los CNY70
+ renombrado de componentes
+ ground plates Isolate aumentado a 12 mil
+ aislado de holes en ground planes en posiciones de contacto con tuerca/tornillo
+ cambio en package de LEDs
+ cambio en package de JQ
+ cambios en posicionamiento y names de algunas etiquetas
Archivos del proyecto
Fuentes (OSHW) y descargas en http://n00b0t.tikitake.com
n00b0t 1.00
Diseño
El trabajo dedicado al prototipo sirvió para corregir algún que otro error de concepto y decidir la distribución definitiva de componentes.
El diseño de la placa está realizado en Eagle, e incluye un buen numero de componentes creados de forma manual.
Documentación
Esquema noobot 1.00 N00b0t_1.00_-_Esquema y n00b0t_E002s
Guía de montaje Guia 1.00 N00b0t_1.00_-_Guía
Algoritmo Proporcional Derivativo
Primeras pruebas con un algoritmo PD y motores 56.8:1 http://www.youtube.com/watch?v=AUG60X5Q0Bc
Algoritmo Proporcional Derivado N00b0t_100_lineaPD_012
Coste Robot
Item |
Euros € |
servos | 12.00 |
componentes | 12.00 |
PCB | 1.00 |
… | |
Total: | 25.00€ |
Conclusión
Fue una gran oportunidad para el autoaprendizaje, quedando una plataforma libre para seguir avanzando.
Bibliografías
- Hilo principal en ARDE https://arde.cc/foro/viewtopic.php?f=6&t=3404
- Blog del proyecto http://n00b0t.tikitake.com
Componentes
- Adaptadores de baterías Keystone http://www.farnell.com/datasheets/66281.pdf
- Micromotores Sanyo http://news.thomasnet.com/pdf/454549.pdf
Referencias
- Application of the MC34063 Switching Regulator http://focus.ti.com/lit/an/slva252b/slva252b.pdf
- Building a DC-DC Power Supply that Works http://www.maxim-ic.com/app-notes/index.mvp/id/1897
- Micrel MIC29XXX LDO http://www.micrel.com/page.do?page=/product-info/products/mic29150.shtml
Agradecimientos
A ARDE.