Doncs aqui deixo el video del Pang. No feu massa cas de l’ornamentació del menjador… l’estem renovant pas a pas..
La versió 1.0 del Pang es pot control·lar mitjançant uns CGIs (mooolt senzills) instal·lats al router. La pàgina web l’únic que fà es fer crides asincrones als scripts i ja està.
El tema del video es més complicat. La càmera IP ve amb un control ActiveX però això no em serveix per incrustar-ho en navegadors diferents a IE. L’Applet que m’estic currant ha resultat més complicat del què em pensava perquè sembla que haig de tenir en compte el temps de latència de la xarxa quan es llegeix l’stream que enxufa l’mjpeg (encara no sé ni què es..).
Ja fa uns dies que he “acabat” la primera versió del Pang
Aqui deixo una imatge:
Encara li falta polir l’interface web per a control·lar-lo de forma remota. La càmera funciona amb un control ActiveX el que em limita a fer-ho servir amb IE. Per això m’estic currant un Applet que pugui llegir el format mjpeg de la càmera però es més difícil del que pensava…. o es que m’estic rovellant…
La propera versió del Pang inclourà un sistema per poder-lo engegar a distància per mitjà d’un telèfon mòbil.
Properament un video amb el Pang campan pels passadissos..
Una vegada en Pang sembla que comença a funcionar, m’he hagut de fixar en el tema de la font d’alimentació. Fins ara s’alimentava de la xarxa mitjançant un parell de transformadors (el del router i un per alimentar l’SSC ) però per dotar en Pang de certa autonomia haig de fer servir bateries (recarregables).
Quina bateria haig de fer servir?….. doncs una que em permeti maniobrar el robot una estona ( mes de 30 minuts a ser possible). Per això cal saber quin es el consum (en mA) del robot….
Aquest robot consumeix força mes que no pas en Ping ( potser pel nom?). El manteniment de la conexio Wifi es un forat energètic considerable. A més també tenim la càmera, que no sé quan gasta però m’imagino que ronda el centenar de miliampers. Però sobretot, on hi haurà mes despesa energètica és en els servomotors ja que s’han d’encarregar de moure tot el conjunt… i em fa l’efecte que no serà precisament lleuger.
En total la despesa de current en miliampers pot ser de 700 mA (uuuooouuu!)
Per aquesta raó he triat aquesta bateria de NiMh
Batery
Aquesta bateria es de 9,6V i 3700 mAh, això vol dir que teoricament pot sostenir 3700 mA en 1 hora. Si el Pang gasta 700 mA aleshores pot mantenir-se “despert” 5,1 hores!! Ja veurem que això no es veritat….
El que té aquesta bateria, es que pesa 530 g. i això vol dir més feina pels servos….. Ja podràn amb tant de pes?
Ha estat un procés més llarg del que em pensava tot i que no hi he dedicat massa temps.. Tota la configuració del router se m’ha fet força pesada per què tenia el linux rovelladet, però al final he pogut configurar-lo perquè es conecti com a client a la xarxa wifi que tinc a casa.
El segon punt és aconseguir comunicar el router amb el servocontrolador. Es força senzill, l’únic tema, és que s’ha d’adaptar la senyal de retorn del servocontrolador perquè es TTL ( 5v) i en canvi el router funciona a 3.3v. Per fer-ho he optat per tirar pel dret amb un divisor de tensió de dues resistències.
Després de tenir tot el muntatje fet, m’he adonat que amb la versió que havia posat de l’OpenWRT al router no podia modificar fàcilment la velocitat de transferència sèrie ( bauds) i no he tingut més remei que recompilar el kernel per tal d’incloure l’stty. En fi, que he estat força distret…
Miraculosament ara ja funciona.
Un video amb les tripes del Pang funcionant:
En propers posts explicaré el protocol que fa servir el servocontrolador i el tema de la bateria… que ja m’ha arrivat… peazo bateria! ( igual un pel gran)
Actualment estic embarcat en el meu segon projecte en el món de la “robòtica” per aficionats. Així com en l’anterior projecte em vaig planteigar un robot autònom que fos capaç “d’evitar” obstacles, en aquest segon projecte intento realitzar un robot per control remot en una xarxa Wifi. El fet que el robot estigui conectat a una xarxa em pot donar la versatilitat de controlar-lo des de qualsevol punt ( del mon?).
De fet aquesta idea no es meva ni de bon tros. Estic seguint els pasos descrits en aquest site.
Bàsicament es tracta d’agafar un router inalàmbric, canviar-li el firmware per un linux OpenWrt, accedir al port sèrie del router, conectar-lo a un servocontroller i posar-hi els servos que es vulgui!
Ara com ara ja tinc la majoria de peçes necessàries:
El router és el fantàstic WRT54GS de Linksys
El controller es el Micro Serial Controller de Pololu
Els motors son 2 servos continus de GWS
Una càmera IP que em vaig agenciar a Ebay
Un últim servo per a poder moure la càmera
A veure com va derivant el projecte. De moment ja tinc el router amb el firmware OpenWrt..
Al primer projecte que vaig fer el vaig bateigar Ping! La meva inventiva pels noms no es massa espectacular ( com es pot comprovar ) però em va semblar adient.
Es tracta de un petit robot amb 2 motors i 3 rodes. 2 a la part del davant motoritzades i la del darrere que simplement guia la trajectoria ( o no, com es pot comprovar al video). Aquesta configuració es de les més senzilles per començar en la robòtica, ja que saps del cert que les 3 rodes estaran continuament al terra i tota l’energia derivada als motors s’aprofita.
Aquest és en ping. Els actuadors son dos motors GW3 Solarbotic amb reductors integrats. També tenim un servo parallax pel control del “cap”.
El “cap”, està compost per un sensor d’ultrasons Ping )) de la casa Parallax. És mooolt fàcil de fer servir i amb només 3 cables (dos per alimentació i un de dades ) pots tenir un sensor de distàncies acoplat al microcontrollador.
El cor del robot és un microcontrolador open source anomenat Arduino i basat en un xip Atmel 168. Últimament s’ha fet molt popular per a projectes DIY pel seu baix preu, per la gran versatilitat i sobretot per un entorn de programació d’alt nivell molt asequible. Aquest entorn IDE permet programar en Process, un llenguatge d’alt nivell semblant al C o al Java.
I per últim una mica de hardware casolà:
Per tal de poder controlar els dos motors en els dos sentits de la marxa ens cal un H-Bridge. Aquesta és la feina de l’integrat L293D que actua com a driver de motor. L’Arduino per si sol no es capaç de controlar els motors perquè requerèixen de massa intensitat ( una sortida de l’Arduino només dona un màxim de 50 mA) i l’opció de control per transistor només és viable en el cas que el motor giri en un sol sentit. A part de L293D ( la D indica diodes de protecció ) a la placa també hi vaig afegir un típic regulador LM7805 per baixar la tensió d’alimentació dels 9V als 5V requerits.
L’alimentació d’en Ping està composta per una pila de 9V de tota la vida i una bateria de 6 piles de 1,5V que sumen 9V. La pila de 9V sola no es capaç d’alimentar els dos motors, el servo i el microcontrolador. Per això les piles de 1,5V van millor perquè generen més intensitat en el mateix periòde de temps ( mAh).
Aqui un video d’en ping intenant correr per la cuina:
Com es pot veure al video, en Ping té uns quants defectes. El primer i més important es la programació. No evita com cal les pareds, però és un tema que es pot solucionar fàcilment. El segon es el cos. Crec que en un nou disseny, en Ping hauria de ser una mica més circular….
Un bon amic em va comentar que volia veure les meves “creacions” robòtiques i això m’ha portat a fer aquest blog sobre els projectes que he fet. Robòtica no sé si se’n pot dir. Per a mi és un hobby i considero que els robots que he fet son joguines una mica més complexes del normal.
Doncs a veure si puc explicar una mica el que he anat fent i el que vull fer….