Pruebas con el robot programable (1)

El robot programable de nuestras clases posee dos motores de corriente continua con reducción a engranajes y encoder de ranuras, un circuito integrado L293D para el manejo de la corriente de los motores y un microcontrolador PIC16F876A con bootloader como centro de control. Utiliza 4 pilas recargables de 1,5V

El primer montaje en las pruebas originales sobre una placa de prototipo, con un cableado «desprolijo»Versión desprolija

La placa de prototipo con el cableado prolijo, que asegura la comprensión visual y evita fallas por el movimiento del cableadoVersión desprolija

Fue construido sobre una base estándar comprada en China a través de e-Bay, con dos motores con reducción, encoder de ranura y rueda, rueda loca y portapilas. Este kit se compra en eBay por entre 10 y 17 dólares, dependiendo de los proveedores y de las ofertas, y con envío gratis. En la aduana argentina se paga un 50% sobre el valor del envío (yo pagué 5 kits a un valor de us$13 cada uno, así que puestos aquí me costaron 13 + 6,5 = us$ 19,5 o $166 [la cotización del día que escribo esto es $8,50 por 1 dólar, si no se dispone de dólar a precio oficial, pagando con tarjeta el valor es de alrededor de $12 por dólar]). Si lo buscan en Mercadolibre (Argentina) lo encontrarán a $525, o sea, un precio unas 3 veces superior.


En la clase de robótica programamos una secuencia de movimientos en el robot con microcontrolador (el primero que es programable y no por «reflejos»). Primero avance-giro-avance, luego avance-giro-avance-giro-avance, y por último varios avances y giros. Ya que aún no implementamos una comprobación exacta del avance de las ruedas con el encoder de ranura, debemos ajustar el tiempo del giro para lograr que el movimiento sea una L, una U, y una O.

La programación más «íntima» de este robot está realizada en código ASM (Assembler), pero para facilitar el aprendizaje creé una serie de macros que tienen nombres en castellano y que facilitan totalmente la comprensión de cómo funciona el programaProgramación con macros

Cada macro contiene instrucciones en ASM específico para el microcontrolador, como se ve en esta imagen. En el momento de ensamblarse el programa estas macros con mnemónicos tan manejables son reemplazadas por las instrucciones básicas en el idioma del microcontroladorContenido de las macros

En este caso, vemos aquí el código interno para una de las posibles macros de retardo (el manejo de tiempos es imprescindible cuando se programan movimientos)Contenido de una de las subrutinas de retardo posibles