mBlock és un entorn de programació molt bàsic pensat per a robots i plaques de MakeBlock, té el gran avantatge de que recollix tot el necessari per a donar els primers passos en el món de la programació. Tant si disposem d'un robot mBot amb totes les seues extensions, com si tan sols volem programar una placa amb Arduino, mBlock ens proporcionarà totes les ferramentes necessàries per a poder treballar.
mBlock està basat en el llenguatge de programació Scratch, pel que resulta fàcil i intuïtiu de programar. A més un avantatge important que presenta respecte a altres entorns és que es poden traduir els blocs de Scratch a C directament. Açò és interessant si volem introduir C als alumnes que ja han vist Scratch.
Per a instal·lar mBlock podem descarregar-nos el paquet d'instal·lació des de 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 les següents opcions:
Opció | Detalls |
---|---|
Esconde el escenario | Si al nostre programa no anem a necessitar l'escenari podem 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 traduir el nostre programa en Scratch a C i carregar-lo directament 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, llavors 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 connectar-se al robot. Per a això anem al menú Conectar > Puerto Serie i podem veure com ens apareix el port /dev/ttyUSB0. Si no ens apareix és perquè no ha detectat el usb, això pot ser perquè no hem connectat 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 Actualitzar firmware, quan hagem seleccionat el usb eixes opcions ja podran ser escollides. Podem comprovar 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 construint. 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 apareixeran totes les funcions corresponents al Robot mBot. Per a poder veure les funcions hem de polsar en el botó Robot. 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 placa ja preparada amb el xip ATMEGA per a utilitzar els connectors RJ25 de MakeBlock) així com el Mega Pi, que és altre dispositiu de MakeBlock per a poder controlar diversos motors.
Com podràs veure, en tots ells és necessari realitzar una xicoteta inversió econòmica en les plaques. Si disposem 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 diferents components 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 detecten 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 funiona 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 despré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 llegisca 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 desconnectar de l'ordinador per a poder utilitzar el robot de manera autònoma.
El mBlock en Arduino s'utilitza 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 mode Arduino.
En el nostre exemple anem a crear un programa amb 4 posadors i 4 leds, dos dels leds els encenem amb dos polsadors 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 fent click sobre algun altre 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 necessitat de tenir un cable usb enganxat 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 poder accedir al port com a sudoer però no com amb altre usuari.
Per a donar permisos als usuaris podem executar els següents comandaments al terminal:
sudo usermod -G dialout -a NOM_USUARI sudo usermod -G tty -a NOM_USUARI