Robot: proyecto n00b0t


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:

proyecto n00b0t

proyecto n00b0t

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):

proyecto n00b0t

proyecto n00b0t

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

proyecto n00b0t

proyecto n00b0t

 

 

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.

proyecto n00b0t

proyecto n00b0t

El diseño de la placa está realizado en Eagle, e incluye un buen numero de componentes creados de forma manual.

n00b0t_E002.brd

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

Componentes

Referencias

 


Agradecimientos

A ARDE.

 

Deja un comentario

Contacto Genérico

Puedes enviarnos un mensaje y lo veremos luego. Para más formas y emails de contacto aquí

Not readable? Change text.
0