Moway, programació amb MowayGUI

Page 1

MOWAY Programaci贸 amb MowayGUI

Esteve Guil Vidal Daniel Lee Hsueh Curs 2009 - 2010 IES Torre del Palau


ÍNDEX 1. INTRODUCCIÓ.................................................................................................................1 2. TECNOLOGIA DE MICROROBOTS....................................................................................2 2.1. Tecnologies d’automatització...................................................................................2 2.2. Sistemes programables micros.................................................................................3 2.2.1. El Microprocessador.....................................................................................3 2.2.2. El Microcontrolador......................................................................................4 2.2.3. Programació..................................................................................................5 2.3. Autòmats programables electrònics.........................................................................6 2.3.1. Funcionament bàsic d’un autòmat................................................................7 2.3.2. Programació de l’autòmat.............................................................................8 2.4. Microrobots............................................................................................................8 2.4.1. Estructura de un microrobot.........................................................................8 2.4.2. Tipus de microrobots....................................................................................9 3. MOWAY: CONCEPTES BÀSICS........................................................................................10 3.1. Esquema general...................................................................................................11 3.2. Sistema de control.................................................................................................11 3.3. Sistema Motriu......................................................................................................13 3.4. Sensors i indicadors...............................................................................................15 3.4.1. Sensors de línia..........................................................................................16 3.4.2. Sensors d’obstacle.....................................................................................17 3.4.3. Sensor de Llum..........................................................................................18 3.4.4. Grup de indicadors LED..............................................................................19 3.4.5. Connector d’expansió................................................................................19 3.4.6. Pad Lliure...................................................................................................20 3.5. Sistema de alimentació..........................................................................................20 3.6. Mòdul de expansió de Radiofreqüència (RF)..........................................................20 4. CONTROL DEL ROBOT...................................................................................................23 4.1. Base Moway..........................................................................................................23 4.2. Moway Center.......................................................................................................24 4.2.1. Part Principal.................................................................................................24


4.2.2. Radio Freqüència..........................................................................................27 4.3. Programació de Moway.........................................................................................27 4.3.1. Programació amb MowayGUI........................................................................27 4.3.2. MPLAB IDE.....................................................................................................32 4.3.3. CCS Compiler.................................................................................................33 5. PROJECTE DE PROGRAMACIÓ.......................................................................................34 5.1. Plantejaments.......................................................................................................34 5.1.1. Calibració dels Moway................................................................................34 5.1.2. Estudi de les diferents possibilitats............................................................41 5.2. Projectes o programes realitzats............................................................................42 5.2.1. Projecte 1: Laberint....................................................................................43 5.2.2. Projecte 2: Llum.........................................................................................44 5.2.3. Projecte 3: Sumo........................................................................................46 6. CONCLUSIONS.............................................................................................................48 7. BIBLIOGRAFIA..............................................................................................................50


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

1. Introducció Aquest treball de recerca consisteix en l’explicació de quin és el funcionament bàsic de un microrobot Moway. Per tal d’arribar a aquest objectiu s’exposaran les bases de les actuals tecnologies de microrobots donant a conèixer els fonaments bàsics. També s’inclouen unes pràctiques de programació amb MowayGUI, que es un llenguatge gràfic d’alt nivell, que permetran conèixer les possibilitats de les que disposa el Moway. Per tant, es dedueix que els objectius del treball són els següents: 1. Saber què és, com funciona i con s’utilitza el microrobot Moway. 2. Saber realitzar programacions amb MowayGUI per fer pràctiques amb el microrobot. El propòsit inicial a l’hora de fer les practiques difereix bastant de l’actual, ja que després de arribar a conèixer quins són els límits del Moway al llarg de tot el temps d’experimentació, les programacions finals han hagut d’adaptar-se a aquest factors. Finalment són tres projectes: Laberint, Llum i Sumo, noms que intrínsicament descriuen el que farà el robot Moway, i que s’explicaran molt més extensament en els conseqüents apartats. L’estructuració del treball és molt senzilla. Està dividit principalment en dos apartats a dir, la part que explica els conceptes del microrobot Moway, i la segona que engloba la part pràctica. Per tant, des del capítol 2 fins al capítol 4 formen la primera part i el 5 conté la part pràctica. Les fonts d’informació utilitzades per obtenir les dades s’han extret principalment de pàgines virtuals web, llibres de robòtica i de manuals de fabricants de components utilitzats en la robòtica.

1


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

2. Tecnologia de Microrobots Aquí comença un apartat en el que s’exposaran diversos conceptes bàsics que cal saber i entendre per comprendre correctament el funcionament del robot Moway i poder analitzar la seva programació. La forma en que es tractarà la informació en aquest apartat es partint des de conceptes bàsics, que s’aniran aplicant a altres àmbits de manera que s’arribarà al punt que interessa: saber que és un microrobot, els tipus que es poden trobar i quina és la seva estructura bàsica. 2.1. Tecnologies d’automatització L’automatització d’una màquina o procés consisteix en la incorporació d’un dispositiu tecnològic, anomenat generalment automatisme, que s’encarrega de controlar-ne el funcionament. Aquest, pot reaccionar davant les situacions que es presenten. A continuació es mostra els sistema de control que més utilitzat: sistema de control en llaç tancat, on hi ha un continu flux d’informació de la màquina o procés al sistema de control i a la inversa.

Figura 1. Diagrama de funcionament de l’autòmat. El procés és el següent: 

La informació es recollida pel grup de sensors o transductors. La planta o procés sotmet la informació a canvis físics, i ho fa de una manera prèviament establerta.

Seguidament la informació es recollida pel captador i la envia al comparador que la processa i genera unes ordres que arribaran altra cop al procés.

El controlador filtra les ordres del comparador i pot fer diverses funcions: -

Proporcionar informació de l’estat i evolució del sistema.

-

Modificar paràmetres de control.

2


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Prendre el comandament total del sistema.

Els actuadors transformen les ordres rebudes en magnituds o canvis físics en el sistema.

Dins de les tecnologies de l’automatització es troben les cablejades i les programables. Dins de les programables troben també diferents tipus entre els quals hi ha els micros (Microprocessadors i Microcontroladors). Aquest tipus són les que s’explicaran més detalladament en el següent punt, ja que són els que seran útils més endavant. 2.2. Sistemes programables micros Aquests inclouen els suport material (hardware) i els programes (software). En aquest grup es troben els microprocessadors i els microcontroladors, que generalment es confonen però no volen dir el mateix. 2.2.1. El Microprocessador El microprocessador és una circuit integrat construït sobre una base de materials semiconductors, que té la funció bàsica de descodificar i executar un programa. Va aparèixer als anys setanta amb la reducció dràstica dels volum dels ordinadors i l’augment de velocitat de treball, ja que treballava amb paraules curtes de entre 4 i 16 bits (unitats de mesura digitals), quan abans treballaven amb paraules de 64 bits. En un sol circuit integrat hi havia les funcions de CPU i la unitat de control. Més tard els microcomputadors integraven també la memòria i la unitat de E/S. Les seves parts principals són quatre: 

La CPU o unitat central de processament.

La unitat de Control.

Unitat de Memòria.

La unitat de entrada i sortida d’informació (E/S).

Les diverses parts del microprocessador estan unides pels busos, que duen els senyals a cadascun dels blocs. Un Bus de comunicació té la funció de porta ordres d’un component el microprocessador a altre o també permet connectar-lo als perifèrics. Els tipus que es tractaran en apartats següents són els busos SPI i el I2C. L’encapsulat es la carcassa que conté tots els components i permet connectar-lo a una base.

3


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Com s’ha dit els microprocessadors estan integrats principalment per la CPU i la unitat de control, però perquè es pugui comunicar amb l’exterior són necessaris els perifèrics, que són principalment dos tipus: 

Memòries: també hi ha dos subtipus. -

EPROM o PROM coneguda com a memòria només de lectura, guarda la memòria del programa a executar, les instruccions que vol que es vol que executi el microprocessador. El tipus més utilitzat són les EEPROM ja que pot se programat,

esborrat

i

reprogramat

electrònicament, a diferència de les EPROM

que

han

d’esborrar-se

mitjançant raigs ultraviolats (Figura 2). -

RAM o memòria de dades s’utilitza per guardar els dades que es generen durant la execució del programa.

Port d’entrada i sortida (E/S). Permeten la

Figura 2. Memòria EPROM inserida en un microcontrolador.

comunicació del microprocessador amb l’exterior, connexions d’entrada i sortida de dades. Cada port estableix un conjunt de Pins que són cadascuna de les “potes” que té el microcontrolador. Els pins poden ser d’entrada o de sortida (Input & Output) de dades. Per tant, cada conjunt de pins (port) està destinat a una funció específica, a controlar un grup de sensors, de llums, etc. En el següent esquema (Figura 3) es pot observar un microcontrolador, de la marca Microchip, que s’anomena PIC16F87A, que és un dels més coneguts i utilitzats avui dia. La figura no mostra un microprocessador, però en aquest apartat els elements són iguals. Després d’haver vist a grans trets com funciona un microprocessador es veurà un altre tipus de micros anomenat microcontrolador. 2.2.2. Microcontrolador El microcontrolador és una microcomputador orientat al control de processos. Aquest, a diferència del microprocessador, integra en una sola unitat CPU, memòries (RAM i ROM), ports

4


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

E/S, comptadors i temporitzadors. Per tant, tot i que no són el mateix, els elements que els componen són els mateixos. Les instruccions per a control es troben en la memòria EPROM mentre que les dades del procés es troben en la memòria RAM. El microcontrolador no funciona si el programa no es troba en la memòria. Un cop inserit, la CPU llegeix les instruccions i les duu a terme de manera seqüencial. Figura 3. Microcontrolador PIC.

Tal i com s’ha pogut observar molts dels elements del

microprocessador són els mateixos que en un microcontrolador amb l’avantatge de que en aquest últim tot està integrat dins d’un mateixa carcassa. 2.2.3. Programació Generalment per poder programar un microprocessador es necessari saber diversos llenguatges, ja que cada fabricant n’utilitza un tipus diferent, però que en la base s’assemblen. A diferència dels microprocessadors, els microcontroladors tenen una gran avantatge, i és que tenen la possibilitat de programar-los en un llenguatge estàndard de nivell mitjà, com el C. Però, el fet de programar en un llenguatge d’alt nivell fa que sigui necessari convertir-lo en un llenguatge codi que el microcontrolador pugui entendre, es necessària una compilació. Per tant, si el programa és complex, quan es compila el codi que generat és massa gran i no pot ser emmagatzemat a la memòria. Els llenguatges de programació es poden classificar segons la proximitat que tinguin al llenguatge amb el que treballa el microcontrolador, anomenat llenguatge màquina, i per tant en trobem diversos tipus: 1. Llenguatge de baix nivell: són els que s’aproximen molt al llenguatge màquina del microcontrolador i per tant els que a l’hora de transcriure les ordres, pot interpretar de la millor manera.

5


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

2. Llenguatge de nivell mitjà: són uns dels més utilitats ja que tenen característiques que els permeten apropar-se molt al llenguatge màquina del microcontrolador però que a la vagada té elements que els caracteritzen com a llenguatge intuïtiu. Aquest és el cas del llenguatge C. 3. Llenguatges d’alt nivell: són aquells en el que el grau de complexitat per a la programació és més entenedor i senzill per a l’usuari, però que necessiten més grau de compilació. 4. Llenguatge gràfics, visuals o de digrames: són els més assequibles per a aquells que s’inicien en la programació, o fins i tot per als usuaris més experimentats, però necessiten un alt grau de compilació, per tant acabant ocupant massa espai, i són molt més limitats, ja que ofereixen menys possibilitats per a l’explotació de tots els mitjans dels que disposa el microcontrolador i els perifèrics. Un exemple és Moway GUI, un entorn de programació que es propi del robot Moway, i que s’analitzarà més endavant per saber com s’utilitza. 2.3. Autòmats programables electrònics En aquest apartat estudiarem un àmbit d’aplicació pràctica dels elements que s’acaben d’analitzar que tenen una gran importància per a la industria avui dia. Aquest són els autòmats programables electrònics. L’autòmat programable, també anomenat PLC, és un màquina digital que es pot programar, és a dir, que s’hi pot introduir un conjunt d’ordres definides, i que està constituïda per la unitat central de control (CPU) i la unitat d’E/S que són els seus elements bàsics. La seva funció principal per a la qual s’ha dissenyat és per controlar, a temps real y en ambient industrial, processos seqüencials. Dins de la CPU troben el processador i la memòria. Les unitats d’E/S adapten el corrent exterior de 220 – 380V (CA) o 24V (CC) a la tensió interna del sistema: 5V. Els autòmats poden distingir en tres tipus que es classifiquen segons el llenguatge que utilitzen: 

Autòmats finits

Autòmats a pila

Màquines de Turing

El seu funcionament és bastant simple ja que els processador treballa de manera seqüencial, és a dir, interpreta les instruccions una per una, però a gran velocitat (microsegon). D’aquesta funció s’encarrega la unitat de CPU, es a dir control intern i extern de l’autòmat. L’altre component

6


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

fonamental és la unitat de memòria que consta de la memòria ROM i de la RAM. La ROM emmagatzema els programes per al correcte funcionament de l’autòmat, el programa de comprovació quan s’engega (que permet saber que tots els components funcionen correctament) i el programa d’exploració de la memòria RAM. Aquesta té també dues vessants: -

Memòria programada emmagatzema les instruccions que ha d’executar l’autòmat.

-

Memòria E/S emmagatzema les instruccions procedents dels estats d’entrada, es a dir els resultats del programa en el curs de la seva execució.

El sistema de entrades i sortides (E/S), recull la informació del procés que s’ha executat (Entrades), i la informació de les accions de control del procés (Sortides). També es troben diferents subtipus de entrades i de sortides: discretes, analògiques, numèriques i especials. D’altra banda, perquè sigui necessària l’aplicació de l’autòmat es requereixen els perifèrics com els equips de programació, visualitzadors, etc. 2.3.1. Funcionament bàsic d’un autòmat Quan l’autòmat o PLC es posa en funcionament el primer que fa és una comprovació de que tots els components bàsics com les memòries, les comunicacions i els elements d’E/S funcionin correctament. Després d’això, que és un procés molt ràpid, la CPU farà una cosa o altre depenent del mode en el que es trobi: RUN (corre) l’autòmat comença la exploració del programa i la execució de les instruccions; STOP (parat) esperaria sense fer res fins que s’activés el mode RUN. Si es passa de mode RUN a mode STOP, o simplement deixem sense alimentació els sistema durant un interval de temps determinat la CPU atura el procés d’exploració i desactiva les sortides. Mentre es manté el mode RUN activat la CPU realitza diagnosis del sistema cada cert temps. Si es produeix un error durant la exploració es pararia el sistema. El temps d’execució es mesura en milisegons per cada mil instruccions. Aquesta variable depèn de la quantitat de instruccions, el tipus i així com de la execució de subrutines (que són grups de instruccions). Per poder reduir els temps d’execució de les instruccions és poden combinar més d’un processador, o connectar-hi mòduls d’expansió en els que el processador delega funcions.

7


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

2.3.2. Programació de l’autòmat La programació del autòmat depèn de la unitat de control que el compongui, ja que depenent del fabricant s’utilitzarà un llenguatge o altre. Això es pot veure en l’apartat anterior 2.2.3. Programació. 2.4. Microrobots Després de que s’hagi exposat el que és un autòmat programable electrònic, s’analitzarà una de les aplicacions d’aquests autòmats. Aquests són els microrobots. Per definir correctament què és un microrobot cal saber i entendre que no és un robot de dimensions reduïdes, sinó que és aquell que té una programació per acomplir una petita tasca, però que en cooperació amb altres microrobots poden fer una tasca global. Els conceptes bàsics amb els que es va fundar la idea de un microrobot són mobilitat, governabilitat, autonomia, polivalència, i repetibilitat. A principis dels anys 90 del segle passat els interessats en aquest àmbit van començar a fer avenços en quant a la reducció del pes, del volum, el cost i el consum d’energia dels productes electrònics, cosa que juntament amb l’aparició dels microchips, van propiciar la creació dels microrobots. 2.4.1. Estructura de un microrobot L’estructura del microrobot és l’element que funciona com a base en la que es podran col·locar els components que integren el conjunt físic del microrobot. Pot ser de diversos tipus. 

Estructures metàl·liques: formada per peces metàl·liques assegurades amb cargols, té una gran resistència però són més pesades i no són gaire elàstiques.

Estructures plàstiques: això implica que les dimensions finals del robot són més reduïdes.

Estructures a mesura: són estructures de diversos materials, que s’adapten a les necessitats del microrobot.

8


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

2.4.2. Tipus de microrobots Una manera de classificar els microrobots és parlar dels fixos (Figura 4) que actuen en un medi limitat en l’espai, i els mòbils que gracies a aquesta capacitat poden arribar a altres entorns. Aquests últims són els més utilitzats

en

l’actualitat

i

exemples

d’aquests són els voladors i els aràcnids

Figura 5. Microrobot Aràcnid

(Figura 5).

Figura 4. Microrobot Fix.

9


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

3. MOWAY: CONCEPTES BÀSICS El propòsit d’aquest apartat és el explicar per què es fabrica el robot Moway, quines són les parts que el componen, què funció tenen i com actuen en el conjunt. Per tant es pretén entendre els conceptes bàsics de funcionament de l’aparell per després saber cóm actuarà. El primer que es farà es definir el concepte de robot Moway i per a què ha estat ideat i dissenyat. Moway és robot autònom de dimensions reduïdes, programable i dissenyat per poder realitzar aplicacions pràctiques de robòtica, ja sigui en l’àmbit de la docència o de la investigació. El seu objectiu principal és ser una eina útil per a aquells que

s’introdueixen

l’àmbit

de

en la

microrobòtica i també per a aquells que ja tenen experiència

i

desitgen

realitzar aplicacions més complexes de robòtica. El disseny exterior del robot es molt compacte i de un pes aproximat d’uns 100g, cosa que li permet desplaçar-se amb facilitat sense opció de quedar-se estancat. Per aquesta raó popularment anomena butxaca”.

se

li

“robot

de

Els

materials

Figura 6. Components del Moway.

són d’una considerable resistència mecànica i té un muntatge fix i correctament ajustat, considerant-lo de forma relativa dins dels àmbits en que es desenvoluparà.

10


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Pel que fa al seu hardware està dotat d’un conjunt de sensors i dispositius que li permeten desenvolupar-se en un determinat entorn real (Figura 1). També consta de un grup motriu que li permet desplaçar-se en un terreny llis. Tot es processat mitjançant un microcontrolador on es poden connectar els diferents bus de comunicacions i els perifèrics. 3.1. Esquema general A continuació es mostra l’esquema d’un robot Moway on es poden distingir els seus components principals i més importants.

5

1

2

4

3

Figura 7. Esquema de les parts internes del Moway. 1. Microcontrolador 2. Sistema Motriu 3. Grup de sensors i de indicadors 4. Sistema d’alimentació 5. Connector d’expansió 3.2. Sistema de Control Els robots Moway estan dotats d’uns microcontrolador del tipus PIC (Peripheral Interface Controler), més específicament el model PIC16F876A fabricat per l’empresa Microchip Tecnology

11


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Inc. que treballa a una freqüència màxima de 4Mhz, entre 0.2 – 5V. Aquest microcontrolador pertany a la subfamília dels microcontroladors PIC16F87X. Les especificacions més importants d’aquest microcontrolador són les següents: 

CPU d’arquitectura RISC (Reduced Instruction Set Computer) i de 8bits, que es refereix a la longitud de les dades que utilitzen les instruccions, i que depèn de la capacitat del cable bus de dades i dels registres de la CPU.

Set reduït de 35 instruccions, que se s’executen totes en un mateix cicle.

Arquitectura Harvard, es dir la memòria del programa i la memòria de dades estan separades i per tant es pot accedir per busos diferents i millorar la velocitat de treball.

Memòria de Programa Flash: 8192 paraules de 14 bits.

Memòria de dades SRAM: 368 bytes. És de tipus volàtil, es dir no conserva les dades després de que es desconnecti de la font d’alimentació.

Memòria de dades EEPROM: 256 bytes, de duració de fins a un milió de cicles.

Líneas de E/S 22

Comunicacions per USART (Universal Synchronous Asynchronous Reciever Transmiter).

Perifèrics MSSP per a busos I2C i SPI.

Perifèrics de control de Motors

Suport per a USB

Comparadors de tensió: 2

Temporitzadors: 3

Convertidor analògic – digital (ADC) de 10 bits i de 5 canals.

Oscil·lador o temporitzador de tipus XT (Xtal, Crystal): estable, i de freqüència de fins a 4Mhz. Això suposa la connexió de un cristall de quars o ressonador ceràmic entre les potes OSC1/CLKIN y OSC2/CLKOUT del dispositiu.

Encapsulat de 28 pastilles.

Les terminals o potes del microcontrolador poden tenir més d’una funció (multiplexació), depenent de com es configurin internament per software.

La programació és pot fer en assemblador o també en llenguatges de més alt nivell com el C, sempre que s’utilitzi un compilador correcte però en la elecció del llenguatge s’haurà

12


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

de tenir en compte també la complexitat del programa i la quantitat d’instruccions, ja que la memòria és limitada i una instrucció en C sol suposar diverses en assemblador. A continuació es mostren les connexions entre els diferents ports i terminals del microcontrolador amb els perifèrics. Pin PIC (Microcontrolador)

I/O(Input/Output)

Sensor

RA0

I

Llum

RA1

I

Receptor infraroig dret (R)

RA2

I

Receptor sensor línia dret (R)

RA3

I

Receptor infraroig esquerre (L)

RA4

O

LED superior vermell

RA5

I

Receptor sensor línia esquerre (L)

RB1

O

Transmissor sensors de línia

RB2

O

Transmissor infraroig

RB4

O

LED inferior dret (R)

RB6

O

LED superior verd

RC6

O

LED inferior esquerre (L)

RC7

I/O

Pas lliure

PORT A

PORT B

PORT C

Taula 1. Connexions entre el PIC i la resta de components.

3.3. Sistema Motriu El sistema motriu del robot Moway és aquell que li permet desplaçar-se, i a més pot captar informació com la velocitat, la distància recorreguda, l’angle de gir, etc. El conjunt consta de una part mecànica i d’una part electrònica, per dur a terme aquestes dues funcions principals, i que el Moway pugui desenvolupar-se de forma adequada en els diversos entorns. Aquest conjunt s’anomena servomotor. Aquest ha de tenir presents i controlar diferents paràmetres que seran essencials per al correcte desplaçament del robot:

13


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

-

Velocitat de cada motor, controlat de forma independent.

-

Control del temps en cada ordre amb una precisió de 100 ms.

-

Distància recorreguda en cada ordre amb precisió de 1.7mm.

-

Distància recorreguda des del començament dels ordres.

-

Angle que gira el robot.

Per poder dur a terme el control d’aquests

paràmetres

microcontrolador

envia

el les

instruccions al sistema motriu que conté un mòdul d’expansió anomenat

PIC16F687

s’encarrega de

que

controlar els

motors, mitjançant una connexió de bus I2C. D’aquesta manera es deixa lliure al microcontrolador

Figura 8. Esquema del Sistema Motriu del Moway.

d’aquesta tasca i pot encarregarse millor de la resta d’ordres i instruccions que ha d’interpretar i processar i per tant treballar molt més ràpid. El control es dut a terme gràcies a un element anomenat encoder (Figura 9). S’anomena encoder a un dispositiu que ens permet controlar el moviment angular. Actua proporcionant informació sobre la posició de l’eix de gir respecte de la posició inicial. Està constituïts per elements òptics i genera un senyal de sortida digital. El que munta el robot s’anomena encoder absolut. Aquests tenen un gran avantatge i és que proporcionen informació sobre una posició concreta. El procés de funcionament és el següent: 1. Un disc està dividit en diversos sectors, que són de forma alternativa blancs i negres. El disc es solidari a l’engranatge de la roda. Un Figura 9. Imatge d’un encoder.

14


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

emissor de raigs infraroigs envia una senyal que rebota al disc i es captat per un receptor. Per tant, si la zona és de color negre el senyal no rebotarà i això s’interpretarà com a bit 0, però si en canvi la zona és blanca el senyal rebota i s’interpreta com a bit 1. 2. El microcontrolador analitza el senyal, ja que mesurant l’ample del pols pot saber la velocitat exacta de la roda. 3. A continuació el microcontrolador enviarà una ordre als motors mitjançant un pont H (Figura 8), controlat per senyal PWM, és a dir per modulació de l’ample del pols, i d’aquesta manera els motors faran que el Moway es desplaci d’una manera o altre. En el cas en el que durant la interpretació i processament de dades el microcontrolador trobi una instrucció que indiqui desplaçament només a de enviar una ordre de moviment amb els paràmetres correctes, que depenent de la programació del microcontrolador, és a dir el llenguatge que s’hagi utilitzat, i els motors executaran l’ordre. Seguidament es mostra un quadre on es poden veure les connexions de la unitat de control i el grup servomotor. Motor Pin1 Pin2 Pin3 Pin4 Pin5 Pin6

I/O PIC O Vcc O GND O Vcc_Batt I RB5 I/O SDA I/O SCL Taula 2. Connexions entre el sistema motriu i el PIC.

3.4. Sensors i indicadors En aquest apartat s’explicaran els diversos sensors que integra el robot Moway però no s’aprofundirà massa en aspectes tècnics

de

funcionament

sinó

que

l’objectiu és poder entendre el concepte de manera bàsica.

Figura 10. Grup de sensors i indicadors. Figura 5. Grup de sensors i indicadors 15


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

El grup de sensors i indicadors està constituït pels següents tipus, que es poden observar en la figura 5: -

Dos sensors d’obstacle frontals.

-

Dos sensors detectors de línia inferiors.

-

Sensor superior de llum.

-

Quatre díodes LED (Laterals, superior verd i superior vermell).

-

Connector de expansió per a accessoris.

-

Un pad lliure.

3.4.1. Sensors de Línia Els sensors de línia són de tipus de reflexió optoacobladors fabricats per la empresa Kingbright i el model s’anomena KTIR0711S. Es troben en la part inferior anterior del robot. Utilitzen la reflexió d’un raig infraroig emès per un LED per poder detectar la intensitat del color de la superfície en la que es troba el robot, que es captada per un receptor d’alta sensibilitat que detecta el reflex del raig en el sòl. Els sensors es troben connectats a dos dels pots o entrades analògics del microcontrolador. Per tant, el senyal que rep és de tipus analògic i pot distingir entre diversos tons a part del contrast entre blanc i negre. Llavors, quan rep el senyal l’interpreta mirant el

Figura 11. Detecció de blanc.

voltatge amb que arriba la senyal. En podem distingir tres situacions: Cas 1 (Figura 11): La superfície és de color blanc, i es reflecteix gran part de la llum infraroja que emet el LED, i per tant el voltatge que obtenim pel receptor és molt baix.

Figura 12. Detecció de un color.

16


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Cas 2 (Figura 7): Quant la superfície és de color la intensitat amb la que es reflexa el raig no és tant alta com en la superfície totalment blanca. Però el sensor no es del tot apte per diferenciar entre el rang de colors, no és un sensor de color. Cas 3 (Figura 8): La superfície és negre i Figura 13. Detecció de negre

absorbeix tot el raig i per tant el receptor no rep cap senyal, el voltatge és elevat. 3.4.2. Sensors d’obstacle

El sensor d’obstacle és a aquell que es troba integrat dins del conjunt que forma el robot Moway, situat a la part anterior. Consta de diversos components (Figura 14) però el conjunt té com a funció detectar la presència d’obstacles o cossos que es trobin davant del robot, i també saber-ne a que distància es troben. El primer que fa es enviar un senyal de llum infraroja, un pols de 70us, mitjançant una font KPA3010-F3C de la marca Kingbright, situada en la part central del frontal del robot. Aquest senyal rebotarà sobre l’obstacle d’una manera o altre, depenent de la distància a la que es trobi i també del color del mateix, que preferiblement ha de ser el més clar possible perquè d’aquesta manera els raigs no siguin absorbits, i el senyal pugui ser captat de forma precisa. Després, dos

Figura 14. Sensors d’obstacle

17


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

receptors PT100F0MP del fabricant Sharp, situats als extrems de la part frontal detecten l’objecte si és que reben la llum infraroja. Les sortides dels receptors estan connectades a dues entrades analògiques del microcontrolador PIC de manera que capta de forma digital si hi ha o no obstacle, però també pot saber a quina distància es troben els objectes mitjançant el ADC. La distància de entrada digital és de aproximadament 30mm, tot i que pot variar bastant depenent del robot. A més d’aquests elements el material de la pantalla frontal del robot permet filtrar parts dels raigs infrarojos que arriben de la llum ambiental, perquè no interfereixin amb el senyal que emet el sensor. En la següent taula podem veure les connexions entre el microcontrolador i els sensors d’obstacles. Pin PIC PORT A RA1 RA3 PORT B RB2

I/O

Sensor

I I

Receptor infraroig dret Receptor infraroig esquerre

O Transmissor infraroig Taula 3. Connexions entre sensor d’obstacle i PIC.

3.4.3. Sensor de Llum El sensor de llum és aquell que permet captar la intensitat de la llum que arriba a la part frontal del robot. La llum passa per una obertura en la part superior del robot, orientada cap a endavant, que està protegida per una pantalla transparent. El sensor s’anomena APDS-9002 i pertany a la empresa Avago Technologies, i és un dels més utilitzats en el món de la tecnologia de telèfons mòbils ja que té una gran Figura 15. Sensors de llum Avago.

precisió i permet captar la llum ambiental. La recepció

és de tipus analògica ja que permet saber el percentatge de llum que capta en cada moment, i també si aquest disminueix o augmenta respecte de la última lectura. Per tant, el receptor està connectat a un dels ports analògic del microcontrolador. En la taula es veu la connexió del sensor amb el mateix.

18


Microrobot Moway. Programació amb MowayGUI.

Pin PIC

I/O

PORT A RA0

Esteve Guil i Daniel Lee

Sensor

I Llum Taula 4. Connexions entre el PIC i el sensor de Llum.

3.4.4. Grup de indicadors LED El grup de indicadors està compost per 4 díodes LED: 

Dos LED’s frontals: es troben darrera de la pantalla inferior frontal que fa filtre dels raigs infraroigs, i només es poden veure quan s’encenen. Cadascun situat a banda i banda del filtre, són de color vermell, i es controlen mitjançant sortides digitals del microcontrolador. Quan s’utilitza el sensor d’obstacles es recomana no utilitzar-los ja que poden distorsionar el seu funcionament.

LED’s verd i vermell superiors: es situen a la mateixa obertura que el sensor de llum, i també es connecten al microcontrolador gràcies a sortides digitals. Igual que en el cas anterior també es vital que quan utilitzem el sensor de llum aquests no s’encenguin.

Pin PIC PORT A RA4 RB4 PORT B RB6 RC6

I/O

Sensor

O O

LED superior vermell LED inferior dret

O LED superior verd O LED inferior esquerre Taula 5. Connexions entre el PIC i els diversos LED.

3.4.5. Connector d’expansió El connector d’expansió permet a l’usuari del robot ampliar el hardware del mateix amb mòduls comercials (que ja es venen com a accessoris) o circuits electrònics que el propi usuari fabriqui o desitgi. El connector es fa mitjançant de un Bus de tipus I2C/SPI comercial. Les connexions de l’expansor amb el microcontrolador es poden veure en la taula següent: Pin Expansió

I/O

PIC

Pin1

O

Vcc 2,8v

Pin2

O

GND

19


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Pin3

I/O/CCP1

RC2

Pin4

I/O/ICSPDAT

RB7

Pin5

I/O/I2C/SPI

RC3

Pin6

I/O/SPI

RC5

Pin7

I/O/I2C/SPI

RC4

Pin8

I/O/INT

RB0

Taula 6. Connexions entre PIC i el connector d’expansió. 3.4.6. Pad Lliure La microcontrolador del robot té un Pad o connexió lliure per poder ampliar-hi altres circuits electrònics. Està situat al costat dels sensors de línia i només si pot accedir obrint el robot. La següent taula mostra el port i el pin del Pad lliure. Pin PIC PORT C RC7

I/O

Sensor

I/O Pad lliure Taula 7. Connexions entre el Pad lliure i el PIC

3.5. Sistema de Alimentació El sistema de alimentació o abastament del robot Moway està format bàsicament per una bateria del tipus LiPo. Està situada en la part posterior del robot, i és recarregable mitjançant una connexió USB del robot a l’ordinador gracies a la connexió amb la Base Moway, que és un element del que es parlarà en els següents apartats. És molt compacte i lleugera cosa que facilita el desplaçament del robot. La duració depèn de l’ús dels sensors i llums que faci el robot i dels motors, lògicament. El temps de càrrega aproximat es de 2h. Un avantatge és que no és necessari que estigui totalment descarregada per poder-la endollar. 3.6. Mòdul de Expansió de Radiofreqüència (RF) El mòdul de comunicació per radiofreqüència s’anomena BZI-RF2GH4 (Figura x) està basat en un altre component anomenat transceptor nRF24L01 fabricat per “Nordic Semiconductors”. En aquest circuit es troben en una mateixa base tots els elements necessaris per establir una comunicació inalàmbrica bidireccional de radio freqüència, és a dir, que poden rebre o enviar dades els diversos integrants de la comunicació. El mòdul es connecta amb el microcontrolador

20


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

mitjançant un bus SPI, gracies al connector d’expansió que es troba en la part superior del robot i que hi permet connectar-hi qualsevol tipus de mòdul que sigui compatible amb el robot Moway i estigui dins de les possibilitats del llenguatge de programació. Algunes de les característiques més rellevants del mòdul RF són les següents: 

Distància màxima de recepció de dades: 25m

Nombre de canals: 128

Tamany: 40x20 mm

Tensió mínima d’alimentació:

Figura 16. Mòdul d’expansió RF.

1.9V 

Tensió màxima d’alimentació: 3.6V

Velocitat màxima de transmissió de dades 2000kbps (Kilobytes per segon).

Temperatures de treball: entre -40 i 85 ºC

Freqüència màxima de treball: 2.4GHz

Freqüència màxima del bus SPI: 8MHz

Una de les principals possibilitats d’aquest mòdul és que permet la comunicació de l’ordinador amb el Moway, i també la comunicació entre els mateixos robots. En següents apartats s’observarà més detalladament com es pot dur això a terme. Número del Pin 1 2 3 4 5 6 7 8

Pin Vcc Vss CE CSN SCK SDI SDO IRQ

Descripció Tensió de alimentació del mòdul GND Chip Enable Chip Select del SPI Rellotge del bus SPI Entrada de dades al mòdul RF del bus SPI (MOSI) Sortida de dades del mòdul RF del bus SPI (MISO) Sortida interrupció Taula 8. Connexions del mòdul d’expansió RF.

21


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

En la figura contigua es pot observar l’esquema dels components que formen el mòdul de RF.

Figura 17. Esquema mòdul RF

22


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

4. Control del Moway En aquest apartat es tractaran els diversos fonaments que són

necessaris

comprendre

per

quin

poder és

el

funcionament intern del robot Moway, com es pot controlar i regular, i per tant quina és la seva programació, per tal de que acompleixi unes ordres segons unes condicions que seran

principalment

ambientals.

Figura 18. Moway Center.

4.1. Base Moway La base Moway és una targeta electrònica que funciona com a annex del robot Moway, que s’encarrega de tres funcions: recarregar la bateria mitjançant un port USB, transmissió de la programació per al robot i per últim de la comunicació per radio freqüència del robot amb l’ordinador. Aquesta es connecta al robot gracies a un orifici que es troba sota la pantalla frontal de protecció contra els raigs infraroigs. L’element clau és un component anomenat PIC18F2550 també de la empresa Microchip, que és l’encarregat de produir els senyals de gravació del Moway, controlar la càrrega de la bateria i de gestionar les comunicacions amb el PC i el robot Moway. Figura19. Base Moway.

Per tal de que l’usuari tingui control sobre aquests elements

existeix un software o programa d’ordinador anomenat Moway Center i que es pot obtenir en la pàgina web oficial de Moway robot.

23


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

4.2. Moway Center Moway Center és un software bàsic que

permet

ordinador

el

controlar

des

robot

Moway.

d’un Si

s’inicialitza el programa es mostra que la finestra està dividida per seccions, en funció del que es vulgui canviar, comprovar o simplement observar. Però es diferencien clarament dos parts: Principal i Radio Freqüència (Figura x). 4.2.1. Part Principal La part principal de Moway Center es la que permet el observar l’estat en

Figura 20. Part Principal Moway Center. que es troba el robot Moway. Està dividida en 5 seccions: 

Secció 1: Moway Status

Secció 2: Accions

Secció 3: Bateria

Secció 4: RF

Secció 5: Informació

Secció 1: Moway Status

Figura 21. Moway Status.

Aquesta part de Moway Center ens informa del estat en que es troba el robot respecte l’ordinador (Figura 21), i pot ser de tres formes: 1. Connectat: El robot està connectat a la base Moway i engegat, i és l’unic estat en el que podem programar-lo. 2. Apagat: Està connectat a la base Moway però està apagat.

24


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

3. Desconnectat: El robot no està connectat a la base. Secció 2: Accions Aquesta secció (Figura 22) està integrada per tres icones que permeten fer tres accions: 1. Gravar: Permet inscriure en el robot la programació desitjada perquè aquest la executi. L’arxiu a de ser de tipus “.HEX”. 2. Llegir: Permet llegir la memòria del programa que conté el robot Moway, 3. Esborrar: s’elimina el programa que hi hagi en la memòria del robot.

Figura 22. Accions de Moway Center. Secció 3: Bateria Ens permet saber la càrrega de la bàteria.

Figura 23. Càrrega de la Bateria. Secció 4: Radio Freqüència És una icona que ens permet amagar o obrir la segona part de Moway Center que controla la Radio Freqüència.

Figura 24. RF de Moway Center.

25


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Secció 5: Informació Mostra informació a l’usuari sobre els processos i el software de Moway Center.

Figura 25. Informació de Moway Center. 4.2.2. Radio Freqüència La segona part de s’ha esmentat anteriorment que es diu que forma Moway Center és la que ens permet enviar i rebre dades a través dels mòduls de comunicació inalàmbrica (Figura 26). Per poder utilitzar aquesta funció es necessari tenir connectat a la base Moway aquest mòdul, tal i com es mostra en la figura x.

Figura 26. RF de Moway Center.

26


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Està dividit a la vegada en 4 seccions (Figura x): 

Secció 1: Configura el mòdul RF mitjançant la introducció de un canal i de una direcció.

Secció 2: Permet enviar les dades.

Secció 3: El destinatari rebrà les dades configurades anteriorment.

Secció

4:

Si

l’integrant

que

Figura 27. Base Moway i mòdul RF.

participa en la comunicació envia alguna dada a la base, es mostrarà automàticament especificant la direcció de l’emissor i l’hora d’arribada. 4.3. Programació de Moway El robot Moway pot ser programat de tres formes diferents: MowayGUI, MPlab ensamblador i CCS Compiler. Aquests programes, com s’observarà a continuació són de nivells diferents. MowayGUI és un llenguatge gràfic o visual; CCS Compiler té un llenguatge de nivell mitjà, però grans possibilitats de programació; i MPlab té un llenguatge de baix nivell i que per tant és el més proper al llenguatge màquina del microprocessador. 4.3.1. MowayGUI

MowayGUI (Moway

Graphic User

Interface) és una de les formes de programació que té el robot. Es basa en un diagrama de fluxos, està format per organigrames on els diversos blocs

Figura 28. Finestra de treball de MowayGUI.

s’uneixen a base mitjançant fletxes.

27


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Aquest programa o llenguatge de programació és el que s’ha utilitzat a l’hora de realitza aquest projecte, i per tant la programació amb aquest entorn s’explicarà més detalladament. També s’esmentaran els avantatges i els inconvenients d’utilitzar MowayGUI respecte dels altres dos, elements que s’han comprovat al llarg del temps de desenvolupament del projecte present. L’avantatge principal d’utilitzar aquest programa es deu a la facilitat per entendre la dinàmica amb que cal desenvolupar-lo ja que es basa en inserir blocs en una quadricula matriu que s’enllacen entre ells mitjançant fletxes per indicar l’ordre i successions de les accions. A més una vegada creat el projecte hi ha la possibilitat de veure el codi d’aquest, és a dir, en successions escrites. D’altra banda té errors que resulten una incomoditat enorme alhora de crear un programa. El límit del programa està marcat per un màxim de complexitat, és a dir, el programa no pot tenir massa informació ja que aleshores no es pot compilar de forma correcta, i més la quadricula base també té altura i amplada màximes. Un altre inconvenient que s’ha pogut experimentar amb la practica també referent amb la programació, és que als inicis de la investigació quan es creava un nou arxiu o programa, es feia el diagrama d’instruccions, es modificava i es guarda el projecte més tard no es podia obrir altre cop. Amb el temps i experimentació es va entendre que per poder eliminar un mòdul que es trobi en el diagrama, primer i de manera imprescindible s’havia d’esborrar qualsevol fletxa que sortís d’aquell mòdul. Si no es fa amb aquest ordre es produeix un error en el programa que no permet guardar-lo correctament per després tornar obrir-lo. Va ser un problema difícil de captar ja que no hi ha cap font que s’hagi pogut trobar que ho indiqui. 4.3.1.1. Utilització de MowayGUI En aquest apartat s’explicaran les nocions bàsiques per entendre com es pot programar amb MowayGUI i quines possibilitats hi ha. Els següents apartats expliquen els diferents tipus d’elements que es poden inserir en la quadrícula base, que formen la programació. a) Inici i final Tot programa ha de contenir un element d’inici però no és necessari un de final ja que es possible que el conjunt de procés de les instruccions acabi amb una fletxa que indiqui que ha de tornar a

28


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

repetir part de les instruccions de manera indefinida, es a dir un bucle infinit. Però en una subrutina si que és necessari un element final per indicar que les instruccions de la subrutina s’han acabat i que segueixi interpretant els passos de la part principal. b) Fletxes Fan de connectors entre els blocs, i indiquen les entrades i les sortides dels mòduls i les condicions. c) Mòduls Posa a 0 la distancia del comptaquilòmetres i el temps.

Assigna un valor a una variable ja creada.

Assigna un valor (llum, obstacle o línea)dels sensors a una variable

Suma i resta las variables que vulguis.

Consulta el sistema motriu, i l’assigna a una variable.

Activa o desactiva el mòdul de radiofreqüència Al canal i direcció que vols.

Va recte i es pot regular la velocitat, el temps o l’espai que ha de recórrer.

Encén, apaga, o parpellejar els díodes LED.

Fa una corba i es pot dir cap a l’esquerra o a la dreta, indicar al velocitat de les dues rodes i el temps o distancia.

Va a una subrutina que has creat prèviament.

Espera el temps que li poses per executar la següent ordre.

Fa una rotació sobre roda o centre i es regulable el temps o l’angle que forma. Figura 29. Mòduls de MowayGUI.

29


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

d) Condicionals Les condicions serveixen per veure si és afirmativa o negativa la condició i a conseqüència fa un ordre o altre, aquestes tenen una entrada i dues sortides, on la sortida és la recció que fa en cas d’afirmació o negació clar que sempre està la possibilitat de que tant si és afirmativa o negativa vagi al mateix lloc. Les condicions possibles són les següents:

Comprova si una variable és >,< o = a un valor determinat.

Comprova el valor digital del sensor d’obstacles.

Comprova si un sensor capta >, < o = a un valor determinat.

Comprova el valor digital del sensor de línea.

Es realitza una comparació amb el sistema motriu.

Envia una dada a un altre moway amb mateix canal i diferent direcció.

Comprova si ha rebut cap dada. Figura 30. Condicionals de MowayGUI. e) Subrutina Els mòduls de subrutina serveixen perquè si una part es repeteix molt es pot posar en una subrutina i crear un mòdul que s’adreci a la subrutina. Hi ha un màxim possible de crear 6 subrutines amb diversos noms. 4.3.1.2. Gravació Es pot gravar directament des del programa, i a més s’indica l’estat en que es troba el moway, desconnectat, encès o apagat a més d’indicar-te el percentatge de la càrrega de la bateria.

30


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

També s’inclou un programa per controlar el moway des del ordinador amb radiofreqüència. Aquest control pot canvia de canal i a més el que fa es enviar una senyal al moway per que l’executi, per tant no fa falta utilitzar el programa inclòs, sinó que el mateix usuari pot fer-lo. 4.3.1.3. Moway RC Center Aquest programa serveix per controlar el Moway directament des del ordinador utilitzant el mòdul de RF connectat a la base Moway, tal i com es mostra la imatge de Figura 31 i altre mòdul de RF connectat a un dels Moway, es poden utilitzar simultàniament dos Moway, la única condició és que els dos tingui un mateix canal. Aquest programa presenta quin grau d’obstacle detecta i actualitza les dades cada segon. Les dades poden ser sobre el sensor d’obstacle dret i esquerra, el sensor de línia dret i esquerra i el percentatge de la llum rebuda, a més, es poden fer moviments de corba i moviments recte, encendre i apagar els LEd i canviar la velocitat i grau de corba. Aquestes dues variables poden suposar un problema si no s’utilitzen bé. La velocitat es regula amb una barra vertical, quan més amunt es senyali més ràpid circularà, però si es posa al màxim no podrà fer corbes perquè realment l’ordre mana que vagin les dues rodes a màxima velocitat. Però llavors, una corba vol dir que un giri més ràpid que l’altre, aquest factor no podrà ser possible amb la màxima velocitat del Moway. El mateix passa amb el grau de gir, el gir es Figura 31. Moway RC Center

varia en una barra horitzontal on més a la

dreta vol dir més grau de gir, però si està al mínim vol dir que no girarà mai, ja que la barra marca la diferencia de velocitat de les dues rodes, però si no hi ha diferencia anirà igual de ràpid, per això serà un moviment rectilini. Tampoc pot girar a mínima velocitat, igualment les dues barres estan sincronitzades perquè no es produeixin tals errors.

31


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

El Moway RC Center es pot utilitzar amb el teclat o amb el ratolí, si s’utilitza el teclat llavors per fer un moviment s’ha de prémer davant o enrere i si vols fer una corba serà davant més el costat o enrere més el costat, ja que si només es fa l’esquerra o dreta no es mourà a més en quan es deixi de pitjar deixarà de moure’s. En canvi amb el ratolí pitgis on pitgis farà el moviment contínuament fins que es torni a pitjar una segona vegada. Moway RC Center està dividit en diverses seccions:      

Secció 1: Es connecta i es desconnecta del Moway, i es canvia de canal. Secció 2: Es realitza els moviments desitjats amb canvis de gir i velocitat. Secció 3: Encén i apaga els leds Secció 4: Dona informació de les possibles accions. Secció 5: Mostra l’estat de la base i la versió del firmware. Secció 6: Representa en número la detecció de cada sensor. - Sensors d’obstacle: van de 0 a 255, on el 255 vol dir que l’obstacle el té molt a prop, i el 0 vol dir que no té obstacle. Un obstacle reflectant ajuda a que el sensor d’obstacle el detecti com més a 255 en comparació amb un objecte a la mateixa distancia , i un obstacle obscur fa que no rebi absolutament res, per tant es com si no hagués obstacle. - Sensors de línea: que van de 0 a 255, on el 255 expressa que no es retorna els rajos per tant o està en una superfície molt obscura o no té superfície. Una superfície reflectant ajuda a que tendeixi més a 0. - Sensor de llum: Detecta en percentatge el grau de llum que rep, on el 0 expressa obscuritat total per al Moway. - Comptaquilòmetres: expressa en cm el recorregut que ha fet el Moway, i a més té una icona que pot recomençar el comptaquilòmetres.

4.3.2 MPLAB IDE

El MPLAB IDE és una de les formes de programar el Moway, i s’utilitza molt per els microcontroladors PIC, a més la mateixa empresa Microchip és el fabricant d’aquest microcontrolador que porta el Moway. Al programar amb MPLAB IDE crea els arxius en fitxers hexadecimals (.hex) que s’han de passar al robot mitjançant Moway Center que és un programa que s’inclou al CD i que s’ha explicat en apartats anteriors. Aquest programa es preferible quan es tracta d’un programació llarga, ja que a diferència del MowayGUI no està tan limitat, i el seu temps de resposta és millor.

32


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

A continuació s’explicarà la forma d’utilitzar-lo. Per obtenir aquest programa es pot descarregar gratuïtament des de la pagina oficial del Microchip, i si pot ser és recomanable utilitzar la versió 7.3 o posterior. 1. Es clica a project wizard a la barra d’eines. 2. S’escull el PIC instal·lat a aquest Moway que en aquest cas es PIC16F876A. 3. S’escull l’eina del ensamblador que es el MPSAM 4. S’escriu el nom del projecte i la seva ubicació 5. S’afegeix les llibreries lib_mot_moway_10.inc lib_sen_moway_10.inc. 6. Finalment s’ha creat el projecte però encara faltarà crear un arxiu .ASM 7. Després s’obre el projecte i es crea un nou arxiu(NewFile) que es guardarà en la mateixa carpeta que el projecte com a Main.asm que serà el fitxer principal. 8. S’afegeix el fitxer principal al projecte amb PROJECTE/ADD Files to Project. Per començar el projecte han de constar les dades següents: 1. list p=16F876A. 2. #include "P16F876A.INC" 3. S’afegeix els vector inici i final i s’inclouen les llibreries. 4. A partir d’aquí es desenvolupa el procés del moway. Aquest programa és una bona manera de començar el nivell baix en programació tot i que és millor descarregar-se el manual del Microchip, ja que al manual moway no explica detalladament la manera d’utilitzar tal programa. 4.3.3. CCS Compiler És una altra de les possibilitats que ofereix el Moway per ser programat, s’assembla bastant a la explicació anterior del mplab, però es una alternativa no gratuïta. El que fa és utilitzar la forma de programació en C i llavors la converteix en format .hex. No es té constància de la utilització d’aquest programa ja que a més que no és gratuït, no s’ha tingut temps d’observar la seva forma de programació. Encara que es sembli bastant al mplab, les formes utilitzades canvien lleugerament.

33


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

5. Projectes de programació Aquest apartat canvia la dinàmica seguida fins ara ja que passa a explica la part pràctica de la programació, es a dir els diversos projectes que permetran veure els coneixements aplicats. S’explicaran quines són les tres pràctiques realitzades que mostren com aplicar els coneixements adquirits de com es pot programar amb MowayGUI. 5.1. Plantejaments: Programes de proves. Abans de començar a fer els diferents projectes s’han hagut de realitzar una sèrie de proves i experimentacions per poder saber quins eren els factors rellevants a tenir compte per poder aconseguir les programacions desitjades. 5.1.1. Calibració dels Moways Els robots Moway presenten una desigualtat a l’hora de rebre les informacions sobre l’entorn, és a dir, els sensors d’obstacles en una mateixa distancia i amb mateixa llum, no presenten el mateix grau de detecció i de sensibilitat cosa que també passa amb els sensors de línea. Per aquest motiu s’ha fet les proves per veure com i a quina distancia reaccionaven. Per dur a terme tals projectes s’han hagut d’utilitzar el MowayGUI i la radiofreqüència, ja que aquest permet visualitzar quant detecta cada sensor. Pot variar segons quin tipus d’obstacle és i del color, l’estàndard dels obstacles utilitzats són de color blanc no reflectant, a més pot influir una mica la llum del ambient però no s’ha tingut en compte ja que és un valor mínim.

34


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

5.1.1.1. Programes de calibració A continuació expliquem els diferents programes de calibració per poder saber els valors del sensors de Moway. a) Calibració de obstacle

Aquest projecte realitza la tasca següent: 1. Moviment recte. 2. Si el compleix la condició X 3. Si la condició anterior és certa es para. On la condició X representa les possibles opcions entre els sensors esquerra i dreta: -

Hi ha obstacle.

-

No hi ha obstacle.

-

No comprovar.

Figura 32. Programa de calibració d’obstacles. b) Calibració dels sensors de línia

Aquest projecte realitza la tasca següent: 1. Comprova si la superfície on es troba és X 2. Si la condició anterior és certa s'iluminarà la llum verda. On la condició X representa les possibles opcions entre els sensors esquerra i dreta: -

Blanc

-

Negre

-

No comprovar

Figura 33. Programa de calibració de superfície.

35


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

5.1.1.2. Moway 1 Reaccionar és que la condició anirà per la sortida afirmativa, els obstacles son blancs. Descripció de la condició X Valor del sensor Prova i reacciona a distància Esquema Nº Esquerra i Dreta “d”(mm)

106

222

0

0

1

No check

No check

1

3

0

1 d= 15mm

2 d= 45mm

3 d= 20mm

4 d= 44mm

5 toca la paret

36


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

6 -

-

-

-

0

117

no reacciona

7 reacciona

8

9

tocant paret

reacciona

10

reacciona Taula 9. Calibració dels sensors d’obstacle de Moway 1.

37


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Observacions: -

El sensor d’obstacle dret va millor a més que detecta un obstacle 24mm abans que l’esquerra. El dret sol tenir 100 més que l’esquerra, i el màxim és de 255.

-

Prova 2: en aquest cas s’han d’intercanviar les fletxes.

-

Prova 5: serveix per veure si en apropar-se a una paret lateral es corregiria, i efectivament, però tarda 2s a adonar-se que està tocant una paret.

-

Prova 6: no reacciona ja que el dret sempre és més que l’esquerra i l’obstacle és perpendicular a la seva direcció.

-

Prova 7: per que reaccioni necessita que la paret estigui inclinada uns 45* respecte la normal.

-

Prova 8: reacciona, a més de que en paral·lel amb la paret lateral ja detecta.

-

Prova 9: reacciona, però no és bo que reaccioni, és una mostra de que no estan ben calibrats els sensor ja que és impossible en cas de que els dos sensor funcionessin bé.

-

Proba 10: Reacciona encara que es degut al desequilibri entre dreta i esquerra.

38


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Moway 2 Es faran les mateixes proves que a Moway 1. Valor del sensor Prova Nº

Esquema

Descripció de la condició X i reacciona a distància “d”(mm)

Esquerra i Dreta

121

100

0

0

88

No check

No check

100

1 d= 25mm

2 d= 40mm

3 d= 30mm

4 d= 25mm

39


Microrobot Moway. Programació amb MowayGUI.

5

Esteve Guil i Daniel Lee

143

0

-

-

-

-

0

104

-

-

-

-

tocant paret

6 reacciona

7 reacciona

8

tocant paret

9

no reacciona

10

reacciona Taula 10. Calibració de sensors d’obstacle de Moway

40


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Observació i dificultats: -

Detecta 1cm abans el dret que l’esquerra.

-

Prova5: En paral·lel ja detecta per això no tocaria la paret i es corregiria.

-

Prova6: reacciona, i no hauria de reaccionar.

-

Prova7: si el 6 ja reacciona és obvi que el 7 segur.

-

Prova 8: reacciona per tant en cas de tocar paret es corregiria

-

Prova9: no reacciona, encara que pot ser es degut que el sensor dret es mes que l’esquerra.

-

Prova10: reacciona amb només 1 cm de inclinació de la normal.

Els sensors de línea tampoc són ideals, per això s’ha utilitzat els dos extrems: blanc i negre. Moway 2

Esquerra

Dreta

Moway 1

Esquerra

Dreta

Blanc

28

20

Blanc

18

24

Negre

224

222

Negre

219

226

Sense superfície

246

245

Sense superfície

245

248

Taula 11. Valors del sensors de línia. 5.1.2. Estudi de les diferents possibilitats En aquest apartat el que es pretén es veure programacions amb MowayGUI que no s’han inclòs en el treball o que no s’han pogut portar a la pràctica per problemes de complexitat, de experiència o simplement errors tècnics del mateix programa. A continuació es mostren els programes abans citats: 

Aparcament: El Moway detecta una zona on es pugui estacionar i veu si hi ha espai suficient. En que cas que hi hagi, realitza una maniobra per poder aparcar. Però el problema es que no té cap manera d’esbrinar si hi ha o no una zona estacionable ja que no disposa de sensors laterals.

41


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Laberint amb radio freqüència: el robot comença un laberint amb punts morts i com pot equivocar-se de sentit i girar cap al sentit contrari, llavors envia els girs correctes a l’altre moway perquè quan faci el laberint i no s’equivoqui, però també va resultar massa llarg per el MowayGUI.

Laberint i sumo: Aquest projecte tenia per objectiu unir-ne dos en un mateix pla d’instruccions, es a dir, en una mateixa programació. La idea era fer un taulell que integres un laberint amb una pista de sumo en el seu centre, perquè tots dos robots després de resoldre el laberint es posessin a jugar a sumo. Però una vegada realitzat i fets els programes de proves es va veure que no complia correctament amb la segona part, i el conjunt d’instruccions era massa llarg i no compilava d’una forma correcte les instruccions. També hi ha la possibilitat de que el robot mateix no interpretés bé les instruccions perquè es saltava ordres en la execució.

Sumo amb perdre i guanyar: el problema, es pensa que probablement era el mateix que en els projectes anteriors, ja que no arriba a fer un conjunt de instruccions i es queda mitja interpretació.

5.2. Projectes realitzats Aquesta part és una de les fonamentals del treball, ja que constitueix l’aplicació dels coneixement obtinguts fins ara en els àmbits de la programació en un entorn gràfic i del funcionament del microrobot Moway. Els projectes que finalment s’inclouen a continuació són tres: Laberint, Llum i Sumo. El laberint permet utilitzar els sensors d’obstacle del Moway per poder resoldre un laberint. La Llum, és un projecte en el que hi ha una connexió de radio freqüència entre els dos microrobots, en el que un dels dos està programat de tal manera que es capaç de seguir un feix de llum, i enviar-li a l’altre microrobot els moviments que ell mateix realitza. Per últim, el projecte sumo intenta imitar aquest esport, de manera que els dos microrobots s’han d’empenyes l’un a l’altre fins que un dels dos aconsegueix quedar-se en la zona de joc, que està delimitada per una banda negra, sobre un fons de color blanc, cosa que permet utilitzar també el sensor de línia. Tot i així aquest projecte també utilitza la comunicació per RF, de manera que fins que el primer en engegar-se no detecta l’altre Moway el joc no comença. A continuació es passaran a exposar pas per pas la forma en que segueix les instruccions de les programacions fetes amb MowayGUI.

42


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

5.2.1. Projecte 1: Laberint Tal i com breument s’ha fet referència, l’objectiu d’aquesta pràctica és que un robot Moway resolgui un laberint tal i com el que es mostra en la Figura 34, construït amb fusta reciclada. L’única condició que ha de complir aquest laberint, és que si hi ha una bifurcació, el camí que porti el microrobot a la sortida no ha d’estar enmig de una paret lateral, ja que Moway no Figura 34. Laberint de fusta per a Moway.

disposa de sensors d’obstacle laterals. Exemple d’això ho indica la “x” en la Figura 33.

A continuació s’explicarà pas per pas el que va fent el microrobot Moway, les instruccions

del

diagrama

de

programació de MowayGUI (Figura 35). El robot comença anant recte fins que un dels sensors detecta només per l’esquerra o només per la dreta. Si una de les afirmacions anteriors es compleix llavors giren 25o cap al costat contrari on s’ha produït la detecció d’obstacle. Llavors comprova si hi ha obstacles tant a la dreta com a l’esquerra, si es produeix aquesta afirmació voldrà dir que té la paret de front i girarà a l’esquerra,

i

posarà

el

comptaquilòmetres a 0. Això serveix per veure si al cap d’uns centímetres Figura 35. Programació Laberint.

43


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

detecta obstacle. Si és el cas gira 180 o a la dreta i finalment si la torna a trobar en uns centímetres llavors girarà a la dreta, ja que si al girar detecta obstacle voldrà dir que s’ha equivocat de lloc al girar i rectifica. Observació: -

Donat que el robot no té els sensors ben calibrats les condicions de només hi ha a l’esquerra o només hi ha a la dreta obstacles queden inutilitzables i s’han utilitzat altres condicions de comparació.

-

Donat que els girs del robot no són sempre precisos, el robot se’n va cap a la paret i es fa necessari la condició de comparativa de sensors.

-

En produir-se la condició de que hi ha obstacle de front s’apropa 20mm més, ja que sinó el gir no es produeix bé.

La demostració del resultat d’aquesta programació es troba en l’Annex 1 vídeo 01, adjunt a aquest treball. 5.2.2. Projecte 2: Llum Aquest segon projecte és un dels que utilitza el mòdul d’expansió de radio freqüència per a la comunicació entre els dos robots. Per tant, al utilitzar els dos Moway, també hi haurà dues programacions diferents, en funció de les instruccions que faci cadascun d’ells. a) Llum imitador Aquest microrobot realitzarà els mateixos moviments que l’altre teòricament (Figura 36). Activa la radiofreqüència en canal 0 Direcció 2, comprova si ha rebut ca p ordre i si no la rep parpadeja la llum vermella si la rep, la assigna a la variable Llum i després compara si és 1 , 2 , 3 o 6 que fa referència al moviment. Recte si és 1, rotació esquerra si es dos, rotació dreta si es 3 i es para si es 6. Figura 36. Llum Imitador.

44


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

b) Llum seguidor de feix Aquesta altra programació té com a objectiu seguir un feix de llum, i enviar els moviments que fa a l’altre Moway mitjançant la RF (Figura 37). El robot activa la radiofreqüència pel canal 0 i direcció 1. Per tal de que dos robots es puguin comunicar han de tenir el mateix canal i diferent direcció diferent. Transmet un 3 i gira cap a la dreta, llavors comprova si la llum rebuda és major que 10, si no ho és torna a transmetre un 3, si ho és fa un moviment recte i assigna la llum rebuda a la variable llum. A continuació transmet un 1 i va recte, si la llum augmenta o és igual llavors segueix recte i si no ho és assigna la llum que rep a la variable llum , i gira cap a l’esquerra , una vegada ha girat comprova si el gir ha fet augmentar o disminuir la llum que rep, així compara si la llum que rep és major que la variable llum i si és major torna al principi. Si és menor girarà 20o a la dreta.

Figura 37. Diagrama programació Llum.

Abans de cada moviment transmet un valor : si es recte transmet , si rota a l’esquerra transmet un 2 i si gira cap a la dreta transmet un 3.

Observacions: -

Per tal de que dos robots es puguin comunicar han de tenir el mateix canal i direcció diferent.

-

Com que no sap si a la dreta hi ha més llum o a l’esquerra se li posa una variable per comparar si ha fet bé el gir o si no l’ha fet bé gira el doble per compensar l’error d’abans.

-

S’ha posat la transmissió abans del moviment perquè s’ha observat que l’altre robot reaccionava més lent

45


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

-

No transmet res quan està el mòdul de parat donat que en realitat no està mai parat.

-

Transmet en tot moment a direcció 2 que és la direcció de l’altre robot.

El resultat d’aquest projecte es troba a l’Annex 1 vídeo 02. 5.2.3. Projecte 3: Sumo L’última de les pràctiques de programació amb MowayGUI és Sumo, que té com a objectiu que un dels dos Moway que es trobi dins d’una zona determinada faci fora a l’altre. També utilitza la RF per poder saber quan els dos microrobots poden començar el combat. La zona on s’executa es una taula de fusta blanca amb els límits marcats per una cinta negra (Figura 38). Es creen 2 variables: arriba i comença . Els dos encenen els mòduls de RF amb el mateix canal però direcció diferent, es mouen recte i comproven si arriba és 1 si no ho és posa intenta rebre una data i si ho és encendrà una llum vermella. Desprès segueixen així fins que detectin una línea, en detectar-la si abans arriba és 1 llavors enviarà una data, si no ho és llavors envia una data si no pot la torna a enviar, desprès espera a rebre una data per començar el sumo, que serà assignada a la variable començar. Una vegada rebuda, comença el sumo, si capta una línea gira 130*, després va cap endavant, si Figura 38. Programació Sumo

detecta un obstacle se’n va cap a obstacle.

46


Microrobot Moway. Programaci贸 amb MowayGUI.

Esteve Guil i Daniel Lee

Observaci贸ns: Les condicions de comprovar obstacle no serveixen ja que no tenen be calibrats els sensors.

Figura 39. Sumo Moway

47


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

6. Conclusions Arribats a aquest punt cal recordar quins eren els objectius que es plantejaven a l’inicià el treball de recerca: 1. Aprendre a utilitzar el microrobot Moway per poder explorar les seves possibilitats i aplicacions, i en general, comprendre la dinàmica de la programació de robots. 2. Realitzar una pràctica després d’aprendre els coneixements bàsics. S’han assolit fins al punt de saber programar amb MowayGUI i de poder fer tres projectes o pràctiques que han permès utilitzar tots els medis dels que disposa el robot Moway, i saber quina és la estructura bàsica de un microrobot. Però tot i així hi ha certs projectes o pràctiques que no s’han pogut dur a terme, a causa de limitacions del robot i del llenguatge de programació. Els que s’ha aconseguit demostrar amb aquest treball són diversos punts a tenir en compte. El primer a dir és que la programació amb MowayGUI està molt limitada, es a dir que no permet explorar totes possibilitats del microrobot Moway. També s’ha vist i comprovat que en certes aplicacions el Moway podria ser molt més eficaç o útil si disposes de més quantitat de sensors, de més elements que li permetin captar més informació del seu entorn. Un altre fet interessant és que cada robot es diferent a la resta, es a dir que tot i que continguin exactament els mateixos components no són iguals, els sensors capten de forma diferent l’ambient, la seva sensibilitat i precisió són diferents i això és un dels grans impediments que s’han trobat a l’hora de poder fer les programacions dels robots perquè realitzessin certes tasques. A partir del punt al que s’ha arribat en el present treball es podrien ampliar molt més els horitzons del microrobot Moway, es a dir, el Moway es pot programar amb altres llenguatges que s’apropen més al llenguatge màquina i que per tant tenen moltes més funcions possibles que permeten aplicar d’altres maneres els medis dels que disposa el robot. Probablement si s’hagués disposat de més temps es podria haver arribat a aprendre a programar en MPLAB i amb CCS Compiler. També una altra cosa a esmentar es que hi ha la possibilitat d’ampliar els medis del Moway amb altres accessoris que es poden col·locar en el connector d’expansió, però dels que no s’ha tingut disponibilitat.

48


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

Pensem que és un treball molt interessant ja que és un tema que sempre ens havia atret bastant i del que havíem tingut curiositat per saber-ne més, però del que també pensavem que era massa complex, per allò de dir que un s’endinsa en lo desconegut. Però gràcies a aquest treball hem pogut introduir-nos mínimament en el món de la robòtica i experimentar amb la programació. Tot i així ens hauria agradat disposar de més temps per gaudir-ne i aprofundir més en el tema.

49


Microrobot Moway. Programació amb MowayGUI.

Esteve Guil i Daniel Lee

7. Bibliografia Pàgines web: En general totes les pàgines web indicades tracten temes de robòtica, de components o tenien suports visuals que han sigut profitosos per al treball. www.mouser.com www.sagitron.net www.microchip.com www.ieev.uma.es www.superrobotica.com www.docs-europe.electrocomponents.com www.msebilbao.com www.robotic-lab.com www.webs.ono.com/tutoriales_robotica Llibres: Tecnologia Industrial 2n Batxillerat. Editorial: Edebe.

50


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.