El robot és de petites dimensions, de 13x13cm aproximadament, i es basa en una placa amb microcontrolador conegut com Arduino. El robot està format per sensors que detecten objectes clars i foscos, per LEDs, per sensors que detecten col·lisions...
L'objectiu és aconseguir una petita representació d'un robot de rescat capaç de moure's a través d'un camí, trobar una víctima i retornar al seu lloc inicial.
L'objectiu és aconseguir una petita representació d'un robot de rescat capaç de moure's a través d'un camí, trobar una víctima i retornar al seu lloc inicial.
L'Ardubot és un robot de tipus diferencial. Els robots diferencials són aquells que controlen la trajectòria mitjançant la diferència de velocitat de la seva roda dreta i esquerra. L'Ardubot es manté sobre dues rodes accionades independentment i un tercer punt de suport que únicament serveix per mantenir l'equilibri.
Els robots diferencials tenen una característica peculiar que els proporciona alguns avantatges davant altres models ja que poden girar sobre el seu propi eix sense desplaçar-se transversalment. Si fem girar les dues rodes a la mateixa velocitat però en sentit contrari el robot girarà sobre el seu propi eix. Tanmateix si fem girar les dues rodes del robot a la mateixa velocitat i en el mateix sentit aquest avançarà en línia recta endavant o enrere segons el sentit de gir. Per tal de fer girar el robot cal jugar amb velocitats diferents per les dues rodes. Si es vol que el robot giri cap a la dreta s'haurà d'augmentar la velocitat de la roda esquerra. També cal tenir en compte que com més gran sigui la diferència de velocitat més tancada serà la corba de la trajectòria.
Els robots diferencials tenen una característica peculiar que els proporciona alguns avantatges davant altres models ja que poden girar sobre el seu propi eix sense desplaçar-se transversalment. Si fem girar les dues rodes a la mateixa velocitat però en sentit contrari el robot girarà sobre el seu propi eix. Tanmateix si fem girar les dues rodes del robot a la mateixa velocitat i en el mateix sentit aquest avançarà en línia recta endavant o enrere segons el sentit de gir. Per tal de fer girar el robot cal jugar amb velocitats diferents per les dues rodes. Si es vol que el robot giri cap a la dreta s'haurà d'augmentar la velocitat de la roda esquerra. També cal tenir en compte que com més gran sigui la diferència de velocitat més tancada serà la corba de la trajectòria.
Motors de CC
L'Ardubot s'acciona mitjançant dos motors de corrent continu amb un reductor per engranatges.
Tot i que la tensió nominal dels motors és de 12V, en el cas de l'Ardubot s'alimenten a una tensió inferior ja que la bateria que fa servir només dóna 9V. No obstant això no és un impediment ja que els motors de corrent continu poden operar en un ample rang de tensions, en el cas d'aquests es poden alimentar fins a 24V. Els engranatges reductors permeten augmentar el parell de sortida del sistema, és a dir, augmentar el parell aplicat a les rodes al mateix temps que es redueix la velocitat. |
Entrades i sortides digitals
Sobre l'Ardubot hi ha presents tres LEDs de diferents colors i un polsador destinats a permetre una certa interacció amb el robot. Els tres leds de color verd, taronja i vermell es poden controlar mitjançant tres ports digitals de l'Arduino.
Per tal de poder influir sobre el funcionament del robot com per exemple inici i parada es disposa d'un polsador que actua sobre una entrada digital de l'Arduino.
Per tal de poder influir sobre el funcionament del robot com per exemple inici i parada es disposa d'un polsador que actua sobre una entrada digital de l'Arduino.
Pantalla LCD
Si no fem prou amb els LEDs es pot indicar estats i missatges mitjançant la pantalla LCD del robot. La pantalla LCD (acrònim anglès de Liquid Crystal Display), és l'aplicació més comuna de la tecnologia del cristall líquid.
En aquest cas es tracta d'un LCD estàndard de dues línies de 16 caràcters cada una.
L'únic inconvenient podria ser el fet que el display comparteix alguns dels ports amb els tres LEDs explicats anteriorment i per tant no es poden fer servir els dos sistemes de forma simultània, o es fan servir els LEDs o es fa servir la pantalla LCD.
En aquest cas es tracta d'un LCD estàndard de dues línies de 16 caràcters cada una.
L'únic inconvenient podria ser el fet que el display comparteix alguns dels ports amb els tres LEDs explicats anteriorment i per tant no es poden fer servir els dos sistemes de forma simultània, o es fan servir els LEDs o es fa servir la pantalla LCD.
BumperPer tal de poder detectar quan el robot xoca amb algun obstacle l'Ardubot ve equipat amb un sensor per contacte o un bumper. Un mètode molt senzill i al mateix temps molt eficaç per ser robust i fiable.
El bumper del robot, en aquest cas, ve equipat amb dos polsadors que detecten els xocs amb obstacles. Segons si es detecta un xoc amb el sensor dret, esquerra o els dos es pot determinar amb quina orientació s'ha xocat i actuar d'acord amb aquest fet. |
SnifferL'Ardubot està equipat amb quatre sensors òptics. Els sensors òptics permeten determinar la presència d'objectes reflectants. A l'interior de cada un d'aquests sensors hi ha un díode emissor de llum infraroja i un fototransistor.
Si el sensor es topa amb un objecte de color clar aquest reflectirà la llum de forma que incideix sobre el fototransistor a l'interior del sensor i aquest entra en conducció (1 digital). Si en canvi es tracta d'un objecte fosc la llum serà absorbida per l'objecte de forma que el fototransistor no conduirà corrent (0 digital).
|
Altres funcions de l'Ardubot
- Lectura del nivell de bateria: La bateria està connectada a una entrada analògica de l'Arduino amb un divisor de tensió ja que que el valor màxim per una entrada analògica és de 5V i la bateria a plena càrrega pot superar els 9V. Es fixa una resistència a un cert valor i l'altre ha de ser un potenciòmentre per poder fer una calibració.
- Encoders: Un encoder òptic en permet determinar el desplaçament que ha realitzat i la velocitat a la qual es desplaça. Aquest encoder es basa en un sensor òptic de reflexió que detecta les marques sobre un disc rotatori. A l'Ardubot tenen un funcionament semblant als sniffers, amb una etiqueta codificada amb sectors blancs i negres sobre cada roda del robot.
- Càlculs d'odometria: La odometria ens permet calcular els increments de posició del robot en els eixos cartesians (X i Y) i l'angle en el qual es troba el robot respecte al sistema de coordenades. Aquests càlculs poden ser efectuats sabent els polsos per volta de l'encoder, del radi de la roda del robot i el nombre de polsos comptats per calcular el desplaçament realitzat per la roda dreta i esquerra. Tanmateix es necessitarà saber els desplaçaments de cada roda per poder calcular l'increment d'angle de la posició del robot. I finalment es descomposa el desplaçament en els components dels eixos cartesians en funció de l'angle.
- Càlcul de velocitat: Primerament cal conèixer l'angle que ha rodat la roda del robot en un determinat instant de temps conegut. Llavors podem calcular la velocitat lineal de cada roda del robot a partir:
Pràctiques possibles amb el robot
1. LED controlat per polsador2. Semàfor5. Llenguatge per anomenar els sniffers |
3. Pantalla LCD4. Càlcul de la bateriaTan per calcular la bateria, la velocitat, i altres opcions que parteixen de la llibreria "Ardubot" creada per la UdG s'ha d'utilitzar el programa antic de la placa Arduino, ja que amb el més actualitzat no funciona.
|
Objectiu final del robot
L'objectiu final del robot és que, gràcies a tots els seus components, sigui capaç de seguir un camí de línies blanques, en un fons negre. El robot hauria de ser controlat per la placa d'Arduino i amb llibreries concretes per tal de facilitar el treball a l'hora de programar. Quan el robot sortís de les respectives línies que hauria de seguir ell mateix, s'hauria de col·locar correctament amb el fi d'arribar a trobar "la víctima" en qualsevol dels rectangles blancs del circuit. Al trobar "la víctima" ho hauria d'avisar per la seva pantalla LCD i tornar fins al seu lloc d'inici amb el fi de deixar la víctima.