moway, programació amb mowaygui
Post on 28-Mar-2016
232 Views
Preview:
DESCRIPTION
TRANSCRIPT
Esteve Guil Vidal
Daniel Lee Hsueh
Curs 2009 - 2010
IES Torre del Palau
MOWAY Programació amb MowayGUI
Í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
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
2
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
3
- 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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
4
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
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
Figura 2. Memòria EPROM
inserida en un microcontrolador.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
5
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.
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.
Figura 3. Microcontrolador PIC.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
6
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
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
7
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
8
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
9
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).
Figura 4. Microrobot Fix.
Figura 5. Microrobot Aràcnid
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
10
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 en
l’àmbit de 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 se li
anomena “robot de
butxaca”. Els materials
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à.
Figura 6. Components del Moway.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
11
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
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
12
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à
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
13
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
PORT A
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)
PORT B
RB1 O Transmissor sensors de línia
RB2 O Transmissor infraroig
RB4 O LED inferior dret (R)
RB6 O LED superior verd
PORT C
RC6 O LED inferior esquerre (L)
RC7 I/O Pas lliure
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:
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
14
- 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 el
microcontrolador envia les
instruccions al sistema motriu
que conté un mòdul d’expansió
anomenat PIC16F687 que
s’encarrega de controlar els
motors, mitjançant una connexió
de bus I2C. D’aquesta manera es
deixa lliure al microcontrolador
d’aquesta tasca i pot encarregar-
se 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 8. Esquema del Sistema Motriu del Moway.
Figura 9. Imatge d’un encoder.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
15
Figura 10. Grup de sensors i indicadors.
Figura 5. Grup de sensors i indicadors
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 I/O PIC
Pin1 O Vcc
Pin2 O GND
Pin3 O Vcc_Batt
Pin4 I RB5
Pin5 I/O SDA
Pin6 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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
16
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
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 11. Detecció de blanc.
Figura 12. Detecció de un color.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
17
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
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 13. Detecció de negre
Figura 14. Sensors d’obstacle
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
18
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 I/O Sensor
PORT A
RA1 I Receptor infraroig dret
RA3 I Receptor infraroig esquerre
PORT B
RB2 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
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.
Figura 15. Sensors de llum Avago.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
19
Pin PIC I/O Sensor
PORT A
RA0 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 I/O Sensor
PORT A
RA4 O LED superior vermell
RB4 O LED inferior dret
PORT B
RB6 O LED superior verd
RC6 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
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
20
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 I/O Sensor
PORT C
RC7 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
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
21
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ó:
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 Pin Descripció
1 Vcc Tensió de alimentació del mòdul
2 Vss GND
3 CE Chip Enable
4 CSN Chip Select del SPI
5 SCK Rellotge del bus SPI
6 SDI Entrada de dades al mòdul RF del bus SPI (MOSI)
7 SDO Sortida de dades del mòdul RF del bus SPI (MISO)
8 IRQ Sortida interrupció
Taula 8. Connexions del mòdul d’expansió RF.
Figura 16. Mòdul d’expansió RF.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
22
En la figura contigua es pot observar l’esquema dels components que formen el mòdul de RF.
Figura 17. Esquema mòdul RF
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
23
4. Control del Moway
En aquest apartat es tractaran
els diversos fonaments que
són necessaris per poder
comprendre quin é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.
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.
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.
Figura 18. Moway Center.
Figura19. Base Moway.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
24
4.2. Moway Center
Moway Center és un software bàsic
que permet controlar des d’un
ordinador el robot Moway. 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
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
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.
Figura 20. Part Principal Moway Center.
Figura 21. Moway Status.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
25
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.
Secció 3: Bateria
Ens permet saber la càrrega de la bàteria.
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 22. Accions de Moway Center.
Figura 23. Càrrega de la Bateria.
Figura 24. RF de Moway Center.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
26
Secció 5: Informació
Mostra informació a l’usuari sobre els processos i el software 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 25. Informació de Moway Center.
Figura 26. RF de Moway Center.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
27
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
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
s’uneixen a base mitjançant fletxes.
Figura 27. Base Moway i mòdul RF.
Figura 28. Finestra de treball de MowayGUI.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
28
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
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
29
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
Assigna un valor a una
variable ja creada.
Assigna un valor (llum,
obstacle o línea)dels sensors
a una variable
Consulta el sistema motriu, i
l’assigna a una variable.
Va recte i es pot regular la
velocitat, el temps o l’espai
que ha de recórrer.
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.
Fa una rotació sobre roda o
centre i es regulable el temps
o l’angle que forma.
Posa a 0 la distancia
del
comptaquilòmetres i
el temps.
Suma i resta las
variables que vulguis.
Activa o desactiva el
mòdul de radiofreqüència
Al canal i direcció que
vols.
Encén, apaga, o
parpellejar els díodes
LED.
Va a una subrutina que
has creat prèviament.
Espera el temps que li
poses per executar la
següent ordre.
Figura 29. Mòduls de MowayGUI.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
30
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:
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.
Comprova si una variable és >,<
o = a un valor determinat.
Comprova si un sensor capta >,
< o = a un valor determinat.
Envia una dada a un altre
moway amb mateix canal i
diferent direcció.
Comprova si ha rebut cap dada.
Comprova el valor
digital del sensor
d’obstacles.
Comprova el valor
digital del sensor de
línea.
Es realitza una
comparació amb el
sistema motriu.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
31
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
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.
Figura 31. Moway RC Center
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
32
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
33
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
34
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
35
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
Figura 32. Programa de calibració d’obstacles.
b) Calibració dels sensors de línia
Figura 33. Programa de calibració de superfície.
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.
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
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
36
5.1.1.2. Moway 1 Reaccionar és que la condició anirà per la sortida afirmativa, els obstacles son blancs.
Prova Nº
Esquema Descripció de la condició X
i reacciona a distància “d”(mm)
Valor del sensor
Esquerra i Dreta
1
d= 15mm
106 222
2
d= 45mm
0 0
3
d= 20mm
1 No check
4
d= 44mm
No check 1
5 toca la paret
3 0
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
37
Taula 9. Calibració dels sensors d’obstacle de Moway 1.
6
no reacciona
- -
7
reacciona
- -
8 tocant paret
0 117
9
reacciona
10 reacciona
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
38
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
39
Moway 2
Es faran les mateixes proves que a Moway 1.
Prova Nº
Esquema Descripció de la condició X i reacciona a
distància “d”(mm)
Valor del sensor
Esquerra i Dreta
1
d= 25mm
121
100
2
d= 40mm
0 0
3
d= 30mm
88 No
check
4
d= 25mm
No check
100
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
40
5 tocant paret
143 0
6
reacciona
- -
7
reacciona
- -
8 tocant paret
0 104
9
no reacciona
- -
10 reacciona
- -
Taula 10. Calibració de sensors d’obstacle de Moway
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
41
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
42
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
43
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
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 34. Laberint de fusta per a Moway.
Figura 35. Programació Laberint.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
44
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
45
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.
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
Figura 37. Diagrama programació Llum.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
46
- 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
detecta un obstacle se’n va cap a obstacle.
Figura 38. Programació Sumo
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
47
Observacións:
Les condicions de comprovar obstacle no
serveixen ja que no tenen be calibrats els
sensors.
Figura 39. Sumo Moway
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
48
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
49
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.
Microrobot Moway. Programació amb MowayGUI. Esteve Guil i Daniel Lee
50
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.
top related