mBlock és un entorn de programació molt bàsic pensat per a robots i plaques de MakeBlock, té un grtan avantatge de que recollix tot el necessari per a donar els primers passos en el món de la programació. Tant si dispossem d'un robot mBot amb totes les seues extensions, com si tan sols volem programar una placa amb Arduino, mBlock ens proporcioanarà totes les ferramentes necessàries per a poder treballar.
mBlock està basat en el llenguatge de programació Scratch, pel que resulta fàcil i intuitiu de programar. A més una vantatge important que presenta respecte a altres entorns és que es poden traduir els blocs de Scratch a C directament. Açò és interesant si volem introduïr C als alumnes que ja han vist Scratch.
Per a instal·lar mBlock podem descarregar-nos el paquet d'instal3lació desde la seua página web. En el nostre cas descarregarem la versió per a linux. Una vegada descarregat haurem de descomprimir el paquet per a poder iniciar el programa.
Iniciem el programa fent doble click sobre l'executable mBlock.
Només iniciar el mBlock ens apareixerà la següent pantalla:
El programa pot canviar l'entorn segons les nostres necessitat. Per a això anem al menú editar i ens trobarem amb le segëunts opcions:
Opció | Detalls |
---|---|
Esconde el escenario | Si al nostre programa no anem a necessitar l'escenari pdoem llevar-lo. |
Escenario pequeño | És el mateix entorn però l'escenari es redueix per a tenir més espai per als nostres blocs. |
Modo turbo | Accelera el dibuixat de l'escenari. |
Modo arduino | Amb el mode Arduino podem traduïr el nostre programa en Scratch a C i carregar-lo didrectament al nostre Arduino. |
Tenim també el menú Lenguaje i Archivo on podem escollir l'idioma i guardar i obrir projectes.
Segons el que volem fer haurem d'escollir un tipus de firmware diferent, lalvors haurem d'anar el menú Placas i escollim el model de placa o robot que anem a utilitzar.
Una vegada tinguem definida la placa, hem de definir com conectar-se al robot. Per a això anem al menú Conectar > Puerto Serie i podem verure com ens apareix el port /dev/ttyUSB0. Si no ens apareix és perquè no ha detectat el usb, això pot ser perquè no hem conectat correctament el usb o perquè no tenim permisos per a escriure en ell.
Llavors ens apareixeran tots els dispositius que tenim connectat. Seleccionem el port on tenim connectat el dispositiu que volem programar (en aquest cas /dev/ttyUSB0)
Podem veure com no podem seleccionar Actulitzar firmware, quan hagem seleccionat el usb eixes opcions ya podran ser escollides. Podem comprobar que s'ha connectat a la placa si en el nom de la finestra ens apareix la paraula "Connectat".
Ara hem d'actualitzar el firmware de la placa. EL firmware ens servirà per a poder executar els blocs sense necessitat de tenir que carregar-lo a la nostra placa. Cosa molt útil quan tractem de depurar el programa que estem construïnt. Li donem a actualitzar firmware, i quan acabe de carregar-lo ens apareixerà una finestra que ens avisarà de que el firmware ja està actualitzat.
Ara ka podrem començar a programar la nostra placa.
En funció del fimware que escollisques te van a aparèixer unes funcions, així, per exemple si escollim el firmware per a fer un projecte en mBot ens apreixeran totes les funcions correpesponents al Robot mBot. Per a poder veure les funcions hem de polsar en el botó Rbot. Aquest ens carregarà tots els mòduls de mBot.
Igualment podrem fer el mateix amb tots els robot derivats de mBot, com el mBot Ranger, també podem utilitzar el MakeBlock Me Orion (que és una palca ja preparada amb el xip ATMEGA per a utiltizar els connectors RJ25 de MakeBlock) així com el Mega Pi, que és altre dispositiu de MakeBlock per a pdoer controlar diversos motors.
Com podràs veure, en tots ells és necessari realitzar una xicoteta inversió econòmica en les plaques. Si dispossem ja de Arduino UNO als nostres centres també podem optar d'adquirir un shield ME UNO Shield (un shield és una placa que s'integra perfectament en la placa Arduino UNO i està dissenyada per a aquesta) per a poder utilitzar els components de MakeBlock.
El gran avantatge que tenen aquest tipus de plaques és que muntat un projecte amb diferetns compoenents es torna pràcticament trivial, ja sols hi ha que anar connectant connectors RJ25.
Per a començar a programar un mBot, hem d'haver carregat prèviament el firmware del mBot.
Abans de començar a programar qualsevol dispositiu hem de definir clarament que volem que faja. Així definirem les següents condicions:
Una vegada tinguem definit què volem que faja, hem de veure com ho implementem. Per a implementar-ho utilitzarem els dos sensors que detectec clar/obscur, un a la dreta i l'altre a l'esquerra i el sensor d'ultrasons que tenim davant del mBot:
Ens quedaria un diagrama de blocs com el següent:
Que implementaríem en Scratch d'aquesta manera:
Una de les opcions a les quals podem treure profit a l'hora de programa en mBot, és la de crear blocs en mBlock (com funions quan programem). En el nostre cas hem creat dos blocs per a facilitar la nostra programació un poc. Hi ha que tenir en compte a quins ports estan connectats els diferents sensors.
En aquest cas hem canviat un parell de coses i afegit una funció sirena deprés d'implementar el diagrama. Podem descarregar el programa exemple d'ací .
Una vegada tinguem el programa fet podem anar provant si tenim el firmware del mBot carregar a la nostra placa, per a això simplement polsem sobre qualsevol bloc i veurem com apareix un contorn groc en el programa. això significa que està funcionant:
Tanmateix, també podem conèixer l'estat d'un sensor arrastrant un bloc solt on el llegixca específicament del sensor i polsar sobre ell. Al polsar sobre ell en donarà l'estat del sensor:
Una vegada ja hagem depurat el programa i ens hagem assegurat de que tot funciona correctament, podem carregar el programa a la nostra placa. Així, haurem d'anar a Editar > Modo Arduino i podrem veure el codi en C.
Li donem a Pujar Arxiu i es carregarà el programa a la nostra placa, de manera que ha podrem desconectarla de l'ordinador per a poder utilitzar el robot de manera autònoma.
El mBlock en Arduino s'utiltiza de manera similar que en mBot. La principal diferència és que no existeixen tants blocs per a Arduino com per a mBlock. Per a començar a programar en Arduino, la primera cosa que hem de fer es carregar el firmware per a la nostra placa Arduino, en el nostre cas Arduino UNO.
Una vegada tinguem carregar el firmware ha podem programar en arduino. Hem de tindre en compte que podem treballar en Arduino de dues maneres, una de les maneres és utilitzant el firmware de mBlock i altra és en modo Arduino.
En el nostre exemple anem a crear un programa amb 4 posadors i 4 leds, dos dels leds els encenem amb dos pulsadors i els altre dos amb dos botons que controlarem l'escenari de treball, els quals faran moure el panda cap avant i girar.
Per a entrar en cada figura de l'escenari hem de fer doble click sobre la figura. El codi que té cada figura és el següent. El primer de tots és el codi de l'escenari principal.
Per a fer funcionar el codi simplement hem de fer click en una dels blocs de l'escenari i veurem com els blocs s'il·luminen. Així mateix, podem depurar el programa o analitzar el funcionament de les entrades i sortides simplement clickant sobre algun bloc. D'aquesta manera ens donarà el resultat d'aquesta entrada.
És possible que només necessitem programar l'Arduino per a controlar algún procés, i no ens siga necessari utilitzar l'escenari. Per a això anem a Editar > Mode Arduino i veurem que ens apareix un entorn sense escenari. És més, totes les opcions per a interactuar amb l'escenari estan deshabilitades. El programa que creem llavor serà traduït automàticament a C i carregar-lo directament a Arduino. D'aquesta manera tindrem un programa autònom sense necesitat de tenir un cable usb enfanxat al nostre Arduino.
A més, si necessitem funcionalitat que no tenim en el mBlock, podem editar el programa amb el IDE d'Arduino.
Podem trobar-nos amb la situació que no puguem escriure al nostre port perquè el nostre usuari no té permisos d'escriptura al port USB. Un exemple d'això és pdoer accedir al port com a sudoer però no com amb altre usuari.
Per a donar permisos als usuaris podem execuctar els següents commandaments al terminal:
sudo usermod -G dialout -a NOM_USUARIOsudo usermod -G tty -a NOM_USUARIO