En Progreso

Proyecto Mirage: Toma de requisitos

Llevo unas semanas bastante liado en el trabajo, sin ganas de hacer nada al llegar a casa, pero me ha dado tiempo a ir pensando en los requisitos que tendrá Mirage.

Concretamente tengo en mente las siguientes características / requisitos:

  • Control motores (3 señales para control unidireccional y freno).
  • 2-3 microswitches (selección de distintas configuraciones).
  • Señales Tx y Rx de USART (telemetría y ajustes de configuración).
  • Señales programación ICSP (In Circuit Serial Programming).
  • 6-8 entradas (sensores infrarrojos): irán 6 en la barra delantera y quizá 2 más en la parte trasera del robot.
  • Interruptor corriente.
  • Pulsador salida.

Con estos requisitos necesito unos 16 puertos de entrada/salida con dos señales PWM (Modulación por Ancho de Pulso) independientes para controlar la velocidad de cada uno de los motores (será un robot diferencial).

El microcontrolador elegido para adecuarse a los requisitos es el PIC16F876A de Microchip. Éste permite un máximo de 22 E/S, dos PWM por hardware, USART y una velocidad de reloj de hasta 20 Mhz que será más que suficiente para las necesidades.

Aparte de este controlador habrá que integrar algunos componentes más:

  • Driver de motores: el PIC es incapaz de suministrar más que unos pocos mA por sus puertos de E/S, así que hay que recurrir a uno de estos dispositivos para alimentar los motores. Aprovechando un pedido de baterías a Sparkfun he comprado éste porque me parece económico, relativamente potente (1.2 A por canal) y, añadiéndole unos pines, reutilizable para otros proyectos.
  • Regulador DC-DC variable: para obtener una tensión constante y superior a los 3.7v de la batería para alimentar los motores (a unos 6v) he recurrido a un regulador de Pololu.
  • Módulo USART Bluetooth: he comprado este módulo en Sure Electronics con la finalidad de poder comunicarme con el microcontrolador directamente desde el PC sin cables. La gracia de esto es poder realizar distintos ajustes (por ejemplo la velocidad máxima al tomar las curvas) sin tener que detener el robot y reprogramar el micro.
  • Barra de sensores infrarrojos: para detectar la línea construiré una plaquita que incorpore 6 sensores CNY70 junto a las resistencias apropiadas. La lectura de los sensores se transmite como una señal analógica, pero yo en el robot prefiero tomarla como digital, así que recurriré a un inversor (también incorporado en la barra de sensores) que convierta los valores analógicos a digitales.Todas estas funcionalidades planeo hacerlas de forma modular, en PCBs diferenciadas, conectadas entre sí mediante pines o cables. De esta forma me resultará mucho más sencillo cambiarlas en un futuro por otras más adecuadas o reutilizarlas en otros proyectos.El pedido de Sparkfun (unas baterías de 900 y 2000 mAh además del mencionado driver) me llegó a principios de semana, pero los otros dos (el módulo bluetooth y un cargador para las baterías) parece que todavía van a tardar lo suyo (vienen de China), así que mi intención es ir diseñando y construyendo los PCBs necesarios, alimentar de momento el robot con 3 pilas recargables (para obtener una tensión aproximada a la batería) y ya integrar el bluetooth más adelante.

Primer pedido para mi robot velocista

Después de un primer análisis por encima de los costes y tiempo de desarrollo de mi robot velocista creo que son ambos asumibles, así que el pasado fin de semana hice mi primer pedido de componentes para intentar tenerlo aquí lo antes posible.

Consultando diversos foros y blogs me he decantado por componentes mecánicos de la empresa Pololu, en concreto por los siguientes:

  • 1 x #1088 Pololu Wheel 32x7mm Pair – White = $6.98
  • 1 x #951 Pololu Ball Caster with 3/8″ Metal Ball = $2.99
  • 1 x #791 Pololu Adjustable Boost Regulator 2.5-9.5V = $11.95
  • 2 x #999 10:1 Micro Metal Gearmotor HP = $31.90
  • 1 x #1089 Pololu Micro Metal Gearmotor Bracket Extended Pair = $4.99

Como se puede apreciar, todo ellos son mecánicos (ruedas, motores y portamotores) a excepción de un regulador de intensidad que me permitirá subir la tensión de los 3,7v que proporciona la batería con la que tengo planeado alimentarlo hasta los 6v para los motores.

Este regulador por otro lado me permitirá mantener una tensión constante en los motores a medida que disminuya la carga (y por tanto la tensión) de la batería.

Los componentes de Pololu se pueden encontrar en bastantes webs, incluso en tiendas españolas como Juguetrónica, pero el mayor problema es que tengan todo esto en stock. Debido a esto finalmente hice el pedido en la propia web de Pololu, con el inconveniente de los gastos de envío. Éstos por correo certificado son prohibitivos (unos 35 dólares), así que he tenido que arriesgarme a pedirlo por correo ordinario (10 dólares) con la posibilidad de pérdida que ello implica.

Ya solo me queda cruzar los dedos para que primero me llegue y luego lo haga a tiempo e ir planificando la parte electrónica del robot.

Por cierto, ya tengo un nombre provisional para el robot: Mirage.

Sigo vivo y nuevo programa en proyecto

Pues sí, a pesar de mi inactividad prácticamente total en la web y foros habituales sigo por aquí.

El motivo de esta “desconexión” fue la búsqueda y posterior compra de mi pisito (allá por mayo-julio) y la obra de reparación y mejora que entre mi padre y yo estamos haciendo en él en mis pocos ratos libres desde entonces.

Las tareas más importantes ya están casi terminadas, así que ahora que voy sacando algo más de tiempo libre supongo que podré dedicarlo a mis hobbies.

Respecto a esto último, estoy trabajando a ratitos en un nuevo programa para PC. Lo que pretendo es crear una alternativa a Get Lyrical (del que soy el traductor al castellano y ya os hablé en su día), es decir, un programa que a partir de unas canciones en MP3 busque las letras de éstas (en LyricWiki), se las descargue y las inserte en el tag ID3 de estos ficheros.

No sé si ya existe algún programa que lo haga, pero por más que he buscado solo he encontrado el mencionado Get Lyrical, que si bien es una maravilla, tiene el inconveniente de depender de iTunes y MacOSX.

El mio como es lógico se ejecutará en PC, en principio con versión para Windows y Linux, ya os iré informando del progreso del mismo.

Por cierto, tengo que pensar en un nombre para el mismo… ¿alguna sugerencia?


Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815

Warning: Creating default object from empty value in /homepages/41/d280306396/htdocs/wp-includes/comment-template.php on line 815