El robot educatiu UABot

UABot és un robot educatiu dissenyat de forma que pugui ser personalitzat per a cada aplicació. Es basa en una plataforma oberta sobre microcontrolador que permet realitzar l'interconnexionat que es desitgi d'acord amb l’aplicació a realitzar.

La facilitat de personalització de l'UABot està estretament lligada amb la versatilitat del processador que utilitza. Està basat en el microcontrolador de la casa Atmel, l’ ATmega128. La figura següent mostra la disposició dels components sobre el robot.

Les principals característiques del robot són:

- Detector davanter d’obstacles. Consta de dos emissors d’IR i un receptor d’IR amb filtre de 38KHz. Permet detectar un objecte que es col·loqui al davant del robot fins a una distància de 50 cm.
- Detector d’obstacle per costat. Té una parella emissor/receptor d’IR en cada costat que poden ser emprats com a detectors d’obstacle pels costats. Donat que s’empra una entrada analògica, pot detectar des de molt a prop fins a 20 cm.
- Disposa de dos sensors de llum, un a cada costat. Tenen una construcció en RC que permet que, no només puguin detectar valors discrets de canvi de llum, sinó que també pugui ser avaluat la temporització en el que es realitza un canvi d’il·luminació.
- Té un detector de línia compost per 4 sensors d’IR a prop disposats pel seguiment de línia i detecció de punts d’encreuament. La seva construcció permet detectar la línia des de mig centímetre fins a dos centímetres de distància.
- Disposa de leds de visualització d’acció. Es poden personalitzar segons l’ús que se’n vulgui fer.
- La motricitat del robot pot ser realitzada per servomotors com per motors DC. En el cas d’emprar servomotors s’ha previst un connector de tres pins (propi dels servomotors) per a cada servomotor. Si es desitja controlar el robot amb motors DC s’ha preparat la placa base per a col·locar un circuit en pont en H que permeti fer el control del robot per PWM.
- La placa base del robot conté un circuit MAX232 que permet establir fins a 2 canals de comunicació sèrie RS232 full-dúplex amb el robot. També s’ha previst un connector de 20 terminals al que se li acobla directament el circuit Bluemore200 de la casa Eikon que permet establir la comunicació amb un host emprant Bluetooth. Així el funcionament del robot es pot controlar directament des d’un PC sense necessitat d’estar-hi acoblat per fil.
- Conté un piezzobuzzer i un micròfon amb circuiteria de preamplificació que li permeten fer tasques de seguiment de so.
- El robot es pot programar pel port paral·lel, emprant el connector ISP que porta la placa ETAVR, i emprant JTAG, mitjançant el port que s’ha preparat en la placa.
- El robot pot ser alimentat des de 5V fins a 10V. Porta dos terminals diferents de connexió d’alimentació i internament té un regulador de baixa caiguda de tensió a 5V. S'ha previst poder introduir opcionalment un regulador de 3.3V (o el que es desitgi) per a components alimentats a diferent tensió.
- La pròpia disposició de la placa permet personalitzar de forma fàcil el funcionament del robot segons la funcionalitat que se li vulgui aplicar.

El microcontrolador ATmega128 que s’empra ve ja muntat sobre una placa ET-AVR funcionant a una freqüència base de rellotge de 16MHz. Entre les principals característiques d’aquest microcontrolador cal anomenar:

- Fins a 54 ports d’entrada/sortida, tots ells compartits amb altres entrada/sortida dels components interns de què consta el microcontrolador.
- Té dos timers de 8 bits i dos de 16 bits, amb possibilitat de generar fins a 8 senyals PWM, totes elles multiplexades en ports d’entrada/sortida. Els timers poden produir interrupció per overflow i per comparació amb registres comparadors interns. A més, tots els timers disposen de prescaler amb valors programables (fins a 8 valors predeterminats) entre 1 i 1024.
- Disposa d’un conversor analògic/digital que pot multiplexar fins a 8 entrades d’un port d’entrada/sortida.
- Té un comparador analògic que permet ser emprar com a trigger.
- Disposa de dos ports USART per a la transmissió i recepció de senyal sèrie emprant el protocol RS232.
- Es pot programar emprant el programador ISP (port paral·lel) mitjançant un protocol MISO, o bé es pot emprar un programador que empra el port JTAG (per un port sèrie o pel port USB). El programador JATG també es pot emprar com a depurador. Cal tenir en compta que el programador JTAG empra 4 línies del port analògic.

La figura mostra la distribució dels principals components sobre la placa base del robot. En els expansors ATmega s’hi connecta el microcontrolador. A cada pin del microcontrolador li correspon una expansió de 3 pins de l'expansor, el que permet personalitzar fàcilment el funcionament del robot en cada aplicació.

El robot està pensat com a robot educatiu per a ser emprat en diferents vessants de l'ensenyament de la informàtica:

- Com a robot simple permet ser personalitzat de forma fixa per a poder ser emprat en entorns de secundària. En aquest cas la seva major utilitzat està en verificar les seves capacitats sensorials i motrius amb l’esperit que l’alumne entengui les funcions bàsiques dels components que configuren el robot.
- La filosofia del robot està pensada clarament per a què cobreixi un gap important que hi ha a nivell universitari, i en especial en enginyeries de l’àrea de les TIC. Quan s’analitzen aquestes titulacions es veu un gap important en la connexió entre els coneixements que s’imparteixen en matèries software i hardware. Els fonaments dels computadors i els algorismes i programació i estructura de dades són matèries independents en les que els professors poc incideixen en el nucli comú que els lliga, la programació a baix nivell. El fet que el robot permeti ser programat tant a nivell assemblador com a alt nivell (en C) fa que pugui ser un element clau en la impartició d’aquestes assignatures sota un ABP comú que agrupi aquestes matèries.
- I inclús a un nivell superior, la construcció del robot permet la introducció d’un sistema operatiu simple (un FreeRTOS) en el microcontrolador de forma que el robot pot actuar sota la supervisió d’un sistema operatiu en temps real.
- A nivell ja de recerca, la pròpia mida del robot fa que es pugui emprar en estudis de comportaments socials basats en microrobots o bé que se’l pugui emprar en camps com ara la intel·ligència artificial per a realitzar accions més pròpies de la recerca.

Documents i eines de treball

Documentació útil per a l'ús del robot:

- Manual d'ús de l'UABot. Document explicatiu del funcionament del robot i dels perifèrics. Es mostren algunes rutines de control dels perifèrics (en pseudoC) per entendre millor l'esquema de funcionament dels diferents drivers incorporats en el codi que controla el robot. També pot servir de base per a fer anar el robot programant directament (en C o en assemblador) el microcontrolador ATmega128, sense necessitat d'incorporar el control en temps real del FreeRTOS.
- Document de programació amb Python. El robot es fa servir en diferents pràctiques com a model per a la programació de rutines de ocmportament d'alt nivell en Python. Per independitzar el comportament del robot del maquinari s'ha incorporat en el robot el sistema operatiu en temps real FreeRTOS. En conseqüència, si es programa l'ATmega128 amb el codi .hex donat en l'apartat següent i s'instal·len els fitxers Python que es donen, el robot pot ser programat sense necessitat de conèixer el hardware que el configura. Aquest manual explica com programar el robot utilitzant Python.
- Pinout del robot. Fitxer gran de configuració del robot. Mostra com connectar els diferents sensors/actuadors als pins establerts en el ATmega128. Donat que tots els passos es mostren en imatges, el fitxer és molt gran (ocupa 68.6MB).
- Programació del UABot amb Python. És un fitxer empaquetat que conté els programes Python per programar a alt nivell i controlar el robot dels del PC (via cable sèrie o inalàmbric emprant Bluetooth, si es disposa del mòdul).
- Fitxer de configuració del microcontrolador del robot. A baix nivell el control del robot es realitza emprant el sistema operatiu en temps real FreeRTOS. Amb éll és amb qui es comunica el programa escrit a alt nivell amb Python. Aquest fitxer empaquetat conté el fitxer de configuració (.hex) del cor del UABot (el microcontrolador ATmega128)així com els fitxers originals i drivers de control del robot. És per a aquells que vulguin continuar desenvolpuant software a baix nivell del robot.
- FreeRTOS. Guia de personalització del FreeRTOS en el robot
- Placa base del robot. Disseny i màscares de la placa base del robot

Altre documentació complementària de components del robot:

- Treballant amb processadors de l'arquitectura AVR. Pàgina d'entrada de documentació per a l'assignatura de FC emprada en el projecte docent d'ùs de robots en informàtica
- Bluemore200. Link a la casa amb documentació sobre el mòdul Bluetooth emprat en el robot. Aquest mòdul transporta la sortida RS232 del robot a una connexió inalàmbrica per Bluetooth amb un host extern. Documents relacionats amb aquest mòdul:

· Datasheet
· Esquemàtic
· Document d'aplicació del módul
. Software. Programa de personalització de la transmissió del mòdul

- ET-AVR. Link al distribuïdor de la placa base del robot. El distribuidor disposa de molts perifèrics que es poden acoblar al robot.


WcN - UABot