CURS DE ROBTICA Per Roco Mrquez CONTINGUTS DEL
CURS DE ROBÒTICA Per Rocío Márquez
CONTINGUTS DEL CURS n Visió global del sistema Robotica Lego Dacta ¨ ¨ n La rajola programable RCX 1. 0 ¨ ¨ ¨ n Pantalla inicial L'administrador Configuració del Robolab Configuració del RCX El Programador Programació Pilot ¨ ¨ n Característiques tècniques El interface del RCX El firmware La torre de IR Elements d’entrada i eixida Programes integrats de l’ 1 al 5 Interface del Robolab ¨ ¨ ¨ n Presentació del RCX El Procés Presentació del software Robolab 2. 5. 4 Exemple de programa Plantilles nivells de Pilot Exercicis alternats Programació Inventor ¨ ¨ Plantilles nivells inventor (plantilles 1 a 4) Exercicis inventor
Visió global del sistema Robotica Lego Dacta
PRESENTACIÓ DEL RCX n n n El cor del sistema és el RCX, una computadora autònoma lego programable des d’un PC o Mac. Funciona com el cervell d'invencions amb el sistema Lego Dacta. Usa sensors, per a captar la informació, processa les dades i actua sobre les eixides.
EL PROCÉS n n n n El usuari construeix el seu propi invent. Crea el programa a l’ordinador. Transfereix el programa al RCX. Executa el programa. Correcció d'errades. Comprovació del programa. Depuració: Disseny (millores constructives) ¨ Programació (eficàcia i rapidesa) ¨
SOFTWARE ROBOLAB 2. 5. 4. n n n Robolab utilitza una edició especial de Lab. View amb algunes opcions i amb un interface d'usuari senzill, que el fa apte per a ser utilitzat persones sense experiència en programació. Robolab es basa en gràfics en compte de ser un llenguatge escrit com C o Basic. Disposa de les fases de programació: ¨ ¨ n Pilot Inventor En un nivell més avançat s'utilitza el Investigator: ¨ ¨ Permet entre altres arreplegar dades, fer-ne l’anàlisi i el tractament. Programes que interactuen amb l'entorn.
EXEMPLE DE PROGRAMA
La rajola programable RCX 1. 0.
CARACTERÍSTIQUES TÈCNIQUES DEL RCX 1. 0 n Processador: ¨ ¨ ¨ n Memòria RCX ¨ n 3 d'entrada 1 -2 -3 A/D de 0 -5 Volts 3 d'eixida A-B-C A/D de 0 -5 Volts 1 port infrarojos (per a comunicacions) Controls ¨ ¨ n 32 K SDRAM (6 per a programes d'usuari) Ports: ¨ ¨ ¨ n Microcontrolador Hitachi H 8 Memòria interna de 16 K ROM 512 bytes de SRAM On-Off: Encendre i apagar el RCX View: permet monitoritzar un port seleccionat per l'usuari. Prgm: Selecció de programa (1 -5) Run: Execució del programa (marxa/parada) Altres: ¨ ¨ ¨ So: poden produirse 6 tons diferents. Comptadors: 3 comptadors de 0 a 32767 Pot comunicar-se amb altres RCX. Relllotge Software. Alimentació 6 x 1, 5 V LR 06 o alterna de 9 -12 volts
INTERFACE DEL RCX n El RCX utilitza com interface una LCD, en què apareixen diversos símbols, vegem que signifiquen:
EL FIRMWARE n n Quan s'activa el RCX per primera vegada, ho fa amb la modalitat inicial. Açò significa que s'activa el codi que té emmagatzemat en la ROM. En aquesta modalitat la funcionalitat del RCX és la més bàsica: ¨ ¨ n n n Hi ha disponibles en el RCX 5 programes bàsics que poden executar-se. El botó View no funciona El rellotge del software no funciona La LCD només mostra un ninot i el número del programa Perquè aquestes funcions estiguen disponibles, així com la transferència del programes del PC, ha de baixar-se en primer lloc el firmwire des del PC una vegada. Durant el canvi de les piles, si el RCX roman sense alimentació durant més de 2 minuts, el firmware serà borrat de la memòria, en aquest cas ha de baixar-se de nou. Així doncs, el firmware haurà d'estar sempre instal·lat quan desitgem programar des de Robolab i enviar els programes al RCX NOTA: Si enviem un programa des del Robolab fins al RCX, sense enviar el firmware, Robolab enviarà aquest primer.
LA TORRE DE IR n El transmissor d'infarojos estableix la comunicació inalàmbrica entre l’ordinador i el RCX
ELEMENTS D'ENTRADA-EIXIDA
PROGRAMES INTEGRATS Programa 1: Energia constant n Programa 2: Sensors de contacte n Programa 3: Monitor del sensor de llum n Programa 4: Model mòbil n Programa 5: Cotxet de xoc n
PROGRAMA 1: Energia constant n Objectius: ¨ Proporcionar n Funcionament: ¨ Els n a ambdós motors energia constant ports d'eixida A i C operen a la màxima potència. Procés: ¨ Connectar els motors als ports i activar el programa 1 en el RCX. ¨ Comprovar el seu funcionament.
PROGRAMA 2: Sensors de contacte n Objectius: ¨ Control del motor connectat ¨ Així mateix, amb el motor C n al port A pel sensor 1. pel sensor 3. Funcionament: ¨ En executar el programa, s'activen els ports A i C, fins que el sensor corresponent siga polsat. n Procés: ¨ Connectar els motors als ports A i C. ¨ Connectar els sensors de contacte als ¨ Comprovar el seu funcionament. ports 1 i 3
PROGRAMA 3: Monitor del sensor de llum n Objectius: ¨ n Funcionament: ¨ n Fer avançar un model mòbil, fins que detecte un marge fosc. En executar el programa s'activen els ports d'eixida A i C, aleshores el model avançarà fins que trobe un marge fosc. Procés: Construir l’Acrorobot ¨ Connectar els motors als ports A i C i el sensor de llum al port 2. ¨ Comprovar el seu funcionament. ¨
PROGRAMA 4: Model mòbil n Objectius: ¨ n Funcionament: ¨ n Realitzar una seqüència de moviments amb un model mòbil i repetir la mateixa seqüència cinc vegades El programa realitza una seqüència que mou el mòbil avant i arrere. També s'incorporen retards de temps aleatoris entre 0 i 1 segon. Procés: ¨ ¨ ¨ Retirar els sensors dels ports de l’Acrorobot Executar el programa i comprovar el seu funcionament. Amb als membres del teu equip, observa els moviments i fes un esquema de la seqüència dels mateixos
PROGRAMA 5: Cotxet de xoc n Objectius: ¨ n Funcionament: ¨ n Construir un model mòbil que siga capaç de canviar de direcció quan trobe un obstacle en el seu camí. El model avança en una direcció. Quan troba un obstacle (sensor de contacte al port 1), dóna marxa enrere durant un segon i a continuació executa un gir i avança de nou. Es repeteix la seqüència fins que algú detinga el programa. Procés: ¨ ¨ Connectar els motors als ports A i C. Connectar el sensor de contacte al port 1. Executar el programa i comprovar el seu funcionament. Amb els membres del teu equip, observa els moviments i fes un esquema de la seqüència dels mateixos
Interface del Robolab
Pantalla inicial
L'administrador
Configuració del Robolab
Configuració del RCX
El Programador
Programació Pilot
NIVEL PILOT 1 n Tasques: ¨ ¨ ¨ Comprovar el funcionament del programa Canviar la direcció de gir del motor Canviar el temps de funcionament del motor
PROPOSTES DE TREBALL PER A PILOT NIVELL 1 n Exercici 1. 1: Connecta al port A un motor i que gire cap a la dreta durant 4 segons n Exercici 1. 2: Connecta al port A un motor i que gire cap a l'esquerra durant 6 segons n Exercici 1. 3: Connecta al port A una llum que s'il·lumine durant 8 segons. n Exercici 1. 4: Connecta al port A dos motors, programa i fes que el robot avance durant 6 segons. n Exercici 1. 5: Connecta al port A dos motors, programa i fes que el robot retrocedisca enrere durant 2 segons. n Exercici 1. 6: Intenta ara que el robot gire durant 6 segons. Quin problema hi ha?
NIVEL PILOT 2 n Tasques (després de cada faena, provar els canvis realitzats): n n Comprovar el funcionament del programa Canviar la direcció de gir del motor Canviar el nivell de potència en motor i làmpada Canviar el sensor al port d'entrada 2
PROPOSTES DE TREBALL PER A PILOT NIVELL 2 n Exercici 2. 1: canviar el cable del port A girant-lo 180º i girant 90º el cable connectat al port B. Executar el programa. Qué succeeix? n Exercici 2. 2: Dotar a l’Acrorobot d‘un altre sensor de contacte i conectar-lo apilat junt al sensor de contacte ja muntat en l’Acrorobot. Processar el programa, ¿Qué succeeix? n Exercici 2. 3: Partint de la plantilla original de Pilot 2, canviar la làmpada per un motor. Programar direccions de gir oposades en els motors. Canviar també el sensor de contacte per un rellotge de quatre segons. Processar el programa i observar els resultats. Com es mou ara el vehicle? Pots observar quina diferència hi ha amb l’exercici 2. 1? . Amb dos motors connectats al ports A i C, respectivament, i un sensor de contacte al port 2. n Exercici 2. 4: Programa i fes que el robot avance durant 6 segons n Exercici 2. 5: Programa i fes que el robot retrocedisca durant 2 segons. n Exercic 2. 6: Programa i fes que el robot gire durant 6 segons n Exercici 2. 7: Fes que el robot avance fins que xoque amb un objecte amb el sensor de contacte. n Exercici 2. 8: Podem fer que el robot avance i si xoca amb un objecte que s'il·llumine la bombeta?
NIVELL PILOT 3 n Tasques: ¨ ¨ ¨ Intenta esbrinar què fa el programa abans d'executar-lo. Comprovar el seu funcionament. També el cicle únic i continu. Fes algun canvi al programa. Guarda-lo, ix del programa i torna a carregar el programa.
PROPOSTA DE TREBALL PER A PILOT NIVELL 3 n Exercici 3. 1: ¨ Carregar la plantilla inicial del nivell pilot 3. Connecta un sensor de contacte al port 1, un motor al port A, una làmpada al B i un altre motor al C. ¨ Fer que el vehicle gire a la dreta, al mateix temps que la làmpada es mantinga encesa, fins que el sensor de contacte se solte, en eixe moment, el vehicle girarà en sentit contrari i la làmpada s'apagarà. El vehicle es mantindrà així fins que el sensor de contacte siga polsat de nou.
SOLUCIÓ
ALTRES PROPOSTES DE TREBALL PER A PILOT NIVELL 3 n n n Exercici 3. 2: programa i fes que el robot avance durant 6 segons i a continuació gire durant 4 segons. Exercici 3. 3: programa i fes que el robot avance durant 6 segons i a continuació que gire i s'engegue la bombeta durant 2 segons. Exercici 3. 4: fes que el robot avance fins que xoque amb un objecte i aleshores gire durant 3 segons i torne a avançar, repetint el mateix procés automàtic.
EL SENSOR DE LLUM Al nivell pilot 3, s'inclou l'opció d'esperar un canvi en el valor del sensor de llum n El sensor de llum llig el valor actual i espera un canvi de ± 5% n Quan el programa està en funcionament es mostra el valor que està llegint en eixe moment el RCX, al visor LCD n
EXERCICI AMB SENSOR DE LLUM n Exercici 3. 5: Carrega la plantilla inicial de pilot 3. Connectar un sensor de llum al port 2, els motors als ports A i C, i una làmpada al port B. ¨ Programa i fes que el robot gire en un sentit, i la làmpada continue apagada, fins que el sensor detecte foscor, moment en què canvia el sentit de gir i s'apaga la làmpada. Per a provar aquest programa situa el model enlairat, farem les proves desplaçant una cartolina blanca i negra per davant del sensor. ¨ n Observacions: Una vegada comprovat el programa anterior, situa el vehicle al cartró de proves, amb el sensor sobre el color blanc, funciona correctament? ¨ Situa ara el vehicle al cartró de proves, amb el sensor sobre el color negre, funciona correctament? ¨ Quines conclusions pots obtindre? ¨
SOLUCIÓ
ALTRES EXERCICIS AMB SENSOR DE LLUM n n n Exercici 3. 6: fes que el robot avance fins que detecte una línia negra i retrocedisca girant al mateix temps. Fes un bucle tancat. Exercici 3. 7: fes que el robot es moga per dins del cercle sense eixir-se’n. Exercici 3. 8: fes un programa amb el qual el robot traga els objectes de dins del cercle. Podem fer que el robot al mateix temps detecte els objectes que trau fora?
NIVELL PILOT 4 n Novetats: ¨ ¨ Programació en passos (núm. Il·limitat) Nous modificadors en sensors de contacte i sensor de llum.
NOUS MODIFICADORS n Modificador sensor de contacte: Al polsar / al soltar n Modificadors del sensor de llum: Major que / menor que Seleccionar valor de 0 -100
PROPOSTES AMB MODIFICADOR DEL SENSOR DE CONTACTE n Exercici 4. 1: Encendre la làmpada B usant potència màxima durant 3 segons. Engegar els motors A i C usant poca potència i fer-los girar en el mateix sentit fins que el sensor de contacte 1 siga polsat. Encén la làmpada una altra vegada i mou els motors anteriors a màxima potència durant 5 segons. n Exercici 4. 2: Engega els motors A i C i fes-los girar cap a l’esquerra fins que polsem el sensor de contacte 1. Encén la làmpada B durant 3 segons i para tots els actuadors. Què passa si fem la programació amb bucle tancat? n Exercici 4. 3: fes la progamació anterior però afegint el següent: cada vegada que polsem el sensor de contacte fes que s'il·lumine la làmpada durant 3 segons i es paren els motors. n Exercici 4. 4: Fes que el robot avance quan pressionem el sensor de contacte 1, fins que xoque amb objectes, i aleshores gire durant 3 segons, repetint el mateix procés automàtic. n Exercici 4. 5: fes que el cotxe avance fins que xoque amb objectes i aleshores gire durant 3 segons i torne a avançar repetint el mateix procés automàtic 3 vegades més. I per últim, que s'ature el robot i s'engegue la bombeta fins que pressionem el sensor de contacte.
PROPOSTES AMB MODIFICADOR DEL SENSOR DE LLUM n n …………………. . Exercici 4. 6: fes que el robot avance fins que detecte una línia negra i aleshores que s'ature i engegue una bombeta durant 3 segons. A continuació que retrocedisca i després que gire. Després, torna a repetir tot el procés fent un bucle tancat. n Exercici 4. 7: fes que el robot es moga per dins del cercle sense eixir-se’n. n Exercici 4. 8: fes que el robot seguisca una línia negra.
Programació Inventor
Inventor n En la fase INVENTOR, es distinguixen quatre nivells progresius, açò és, cadasqun dels nivells es disposa d’un nombre major d’opcions de programació disponibles.
Entorn de l’Inventor
Ajuda
Nivell Inventor 1 n n Carregar el programa del nivell 1 de Inventor i modificar-lo per tal d’obtindre el següent. Envia el programa al RCX i comprova-lo.
PROPOSTA DE TREBALL AMB NIVELL INVENTOR 1 Exercici 1. 1: Crear un programa que: n ¨ Espere a que el sensor de contacte siga presionat. ¨ Rote els motors en els ports A i C cap a l’esquerra durant sis segons. ¨ Tire enrere fins que el sensor de contacte siga presionat de nou.
Nivell Inventor 2 Al nivell 2, el mateixa que al nivell 1, els programes es fan enllaçant icones de comandos generals, però ara s’utilitzen modificadors enllaçats baix dels mateixos. Nous modificadors
MODIFICADORS n En la finestra de modificadors podem observar els nous modificadors de ports d’entrada, d’eixida, nivells de potència i constants. n A les figures podem observar el enllaç dels ports amb els modificadors. n Els ports ara també poden encadenarse. n Finalmente en estructures apareixen bots: incondicionals de saltar i aterrar, que ens permeten crear bucles.
NOVETATS
PROPOSTES DE TREBALL PER A NIVELL INVENTOR 2 n n Exercici 2. 1: Realitzar un programa que faça girar un model durant un temps aleatori cap a la dreta, després avançarà durant 3 segons en línea recta i de nou girarà cap a l’esquerra durant un altre temps aleatori. Observar que disposen de rellotges amb un interrogant per especificar directament el temps i també un rellotge amb un dau per a temps aleatoris.
n Exercici 2. 2: Crear un programa que: ¨ Espere fins que el sensor de contacte del port 3 siga presionat per a encendre a mitja potència la làmpada A. ¨ Mantinga la làmpada encesa fins que el sensor de contacte deixe de ser presionat. ¨ Apague la làmpada quan es solte el contacte del port 3 i després engegue els motors B i C durant 7 segons. n Exercici 2. 3: ¨ Crear un programa que incremente els nivells de potència en els motors A i C (desde 2 fins a 5) a intervals d’un segon.
ESTRUCTURES n n n Les estructures s’utilitzen per tal de controlar el flux d’execució d’un programa. Els comandaments botar i aterrar, permeten anar d’un lloc a un altre dintre d’un mateix programa. Asoles poden programar-se per parelles. Al següent exemple, es fa girar un motor durant 2 segons en cada sentit. El primer programa no és correcte, intenteu vore quin es l’errada abans de vore la sol·lució correcta.
n Exercici 2. 4: ¨ n Realitzar un programa que moga un vehicle cap a endavant a mitja potència. Quan el vehicle trobe un canvi de superficie de negre a blanc, emitix un so i encén un llum. Quan trobe altre canvi a negre, la làmpada s’apagarà i així succesivament. Ports: Port 2: infrarrojos ¨ Port A i C: motors ¨ Port B: làmpada ¨
Nivell Inventor 3 n n n En el nivell Inventor 3 s’afegixen noves funcions als submenús, i també tenim un nou submenú, música. La música pot convinar-se amb qualsevol altra programació. Aquest recurs pot utilitzar-se per tal d’indicar diferents accions o situacions a modo de codi, utilitzant diferents sons en cada cas.
SUBMENÚ MÚSICA
PROPOSTES DE TREBALL AMB NIVELL INVENTOR 3 n n n Exercici 3. 1: Realitzar un programa que genere una escala musical al RCX. Exercici 3. 2: Realitzar un programa que utilitze els modificadors de canvi d’octava i duració de les notes. Exercici 3. 3: Crear-ne una codificació de sos per a tres sucesos. Exemples: ¨ ¨ ¨ Activació d’un sensor de contacte. Accionament de motors. Inici de programa. Fi de programa. Etc.
ESTRUCTURES n n Al nivell inventor 3 disposem de noves estructures de control per controlar el flux d’execució del programa. A continuació, anem a comprovar el funcionament de cadasquna d’elles.
MULTITAREES Les multitarees s’utilitzen per activar més d’una tarea al mateix temps. n Fins ara, els programes han sigut sequencials, es a dir, cada comandament s’executa quan ha acabat l’anterior. n Amb la multitarea, més d’un comandament pot executar-se alhora. n
EXEMPLE DE MULTITAREA n En aquest exemple s’executen dues tarees simultànees, cadasquna amb el seu propi final, i cadasquna independent de l’altra. Comprova el seu funcionament.
Exercici 3. 4: ¨ Crear un programa amb 2 tarees que s’activen al mateix temps. ¨ La primera tarea encén el motor A a mitja potència fins que el sensor de llum al port 2 llitja un valor de 60. Després el motor s’atura. ¨ La segona tarea encén la làmpada del port B a potència 3 i augmenta el nivell de potència cada 2 segons. La làmpada s’apagarà després d’estar a màxima potència durant 5 segons
RECURSIONS n n Les recursions s’utilitzen per tal de repetir un cojunt de comandaments durant un determinat número de vegades. Pot incloure un modificador que especifique quantes vegades s’ha de repetir els comandaments, bucle finito. Quan no s’inclós el modificador, el comportament es igual als comandamentes botar i aterrar, bucle infinit. En altres llenguatges, en compter de recursions s’anomenen bucles.
Al següent exemple, es fa una recursió per tal de fer parpadejar una làmpada cinc vegades. Copia aquest programa i comprova el seu funcionament
CONDICIONALS n n Els comandaments condicionals s’utilitzen en els programes per tal de controlar el flux d’execució en funció de si es cumplix o no una condició. Com a resultat d’avaluar la condició, s’executaran uns comandaments i uns altres quan no cumplisca, ja que el programa agafarà un camí o un altre (bifurcació).
Al següent exemple es determina el sentit de gir d’un motor conectat al port A durant 2 segons en funció de l’estat del sensor de contacte conectat al port 1
n Exercici 3. 5: Realitzar un programa que verifique constantment el valor del sensor de llum conectat al port 2. ¨ Si està per davall de 50, la làmpada conectada al port B s’encendrà al màxim. ¨ Si està per damunt de 50, la làmpada s’apagarà. n Exercici 3. 6: Anem a controlar ara el robot amb una llanterna, de manera que el acrorobot seguisca la llum de la mateixa. ¨ Quan el robot no detecte la llanterna, romandrà quet i encendrà un llum. ¨ Controlar la direcció d’avançament del robot amb dos sensors de llum conectats als ports 1 i 3
Nivell Inventor 4 n n n El nivell de programació d’Inventor 4 és el més alt. Inclou tots els comandaments, modificadors i estructures dels nivells anteriors. S’incorporà la capacitat de comunicació de RCX a RCX i contenidors als que es pot asignar i manejar valors
COMANDAMENTS DE REINICI n El submenú de comandaments de reinici, te els comandaments que s’utilitzen per a reiniciar a zero: ¨ ¨ n El valor d’un contenidor. El cronometre. El valor d’un angle. La bustia S’utilitzen per a establer una referència o punt d’inici.
COMANDAMENTS DE CONTENIDOR n n n Els contenidors s’utilitzen per tal de seguir la pista de variables, podem: Contar quantes vegades a ocorregut algo i utilitzar eixe valor en un programa. Per exemple podem variar la velocitat d’un motor en funció de la quantitat de llum en una habitació. També es poden realitzar operacions aritmètiques amb els valors dels contenidors.
COMANDAMENTS DE BÚSTIA n n n Els comandaments de bústia s’utilitzen per a la comunicació de un RCX a un altre RCX. Cada RCX pot emprar el seu propi programa amb programes que envien o esperen informació (correu) d’un altre RCX. El valor del corrreu pot ser qualsevol modificador amb un bord blau.
MODIFICADORS n n n Els modificadors de voreres verdes, són com ja coneguen els modificadors de port, utilitzats per asignar els ports. Els modificadors de voreres marróns permeteixen tractar amb els contenidors. Els modificadors de voreres blaves permeten operar amb valors de nivell de potència, contenidors, rellotges, valors aleatoris, correus i constants numèriques.
PROPOSTES DE TREBALL AMB NIVELL INVENTOR 4 n Exercici 4. 1: Realitzar un programa que emitisca un so durant 5 segons, utilitzant el rellotge com element per a contar el temps.
n Exercici 4. 2: fer que una làmpada parpadeje tantes vegades com el sensor de contacte haja sigut polsat durant 10 segons
El programa anterior te un problema, espera una polsació més després dels 10 segons, i també conta esta última polsació sobre el sensor de contacte. n Intenta donar una explicació de perquè ocurrix açò. Millora el program per tal de que no ocurrisca. n
n n Aparenment el problema anterior està sol·lucionat, però si observen el RCX, després de lluir la làmpada, el programa no acaba com era d’esperar, sino que continua executant-se. Averigua per que es comporta d’aquesta manera. Intenta sol·lucionar aquest inconvenient.
n n Com ja hauràs observat, aquest programa tampoc te el comportament que s’esperava. Què ocurrix? Intenta averiguar-lo.
Exercici 4. 3: comandament a distància ROBOT A ROBOT B
Exercici 4. 4: Altra manera de fer un seguidor de linea
n Exercici 4. 5: fer que el programa seguidor de linea varie el valor de referència segons la llum ambiental i els possibles canvis que es pugan produir.
FIN
- Slides: 82