1. Introducció
L'mBlock és un entorn de programació molt bàsic pensat per a robots i plaques de MakeBlock; té el gran avantatge de recollir tot el necessari per a fer els primers passos en el món de la programació. Tant si disposem d'un robot mBot amb totes les extensions, com si tan sols volem programar una placa amb Arduino, l'mBlock ens proporcionarà totes les eines necessàries per a poder treballar.
L'mBlock està basat en el llenguatge de programació Scratch, per la qual cosa resulta fàcil i intuïtiu a l'hora de programar. A més, un avantatge important que presenta respecte d'altres entorns és que es poden traduir els blocs de Scratch a C directament. Això és interessant si volem introduir C a l'alumnat que ja ha vist Scratch.
2. Instal·lació de l'mBlock
Per a instal·lar l'mBlock podem descarregar-nos el paquet d'instal·lació des de la 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 clic sobre l'executable de l'mBlock.
3. Entorn de l'mBlock
Quan iniciem l'mBlock apareixerà la pantalla següent:
El programa pot canviar l'entorn segons les nostres necessitats. Per a això, anem al menú Edita i trobarem les opcions següents:
Opció | Detalls |
---|---|
Amaga l'escenari | Si no necessitem l'escenari podem llevar-lo. |
Escenari xicotet | És el mateix entorn però l'escenari es redueix per a tindre més espai per als nostres blocs. |
Mode turbo | Accelera el dibuixat de l'escenari. |
Mode Arduino | Amb el mode Arduino podem traduir el nostre programa en Scratch a C i carregar-lo directament a l'Arduino. |
Tenim també el menú Idioma i Fitxer en què podem triar l'idioma i guardar i obrir projectes.
4. Càrrega del microprogramari
D'acord amb el que volem fer, haurem de triar un tipus de microprogramari diferent, aleshores anem al menú Plaques i triem el model de placa o robot que utilitzarem.
Una vegada tenim definida la placa, hem de definir com s'ha de connectar al robot. Per a això, anem al menú Connecta > Port sèrie i podem veure que apareix el port /dev/ttyUSB0. Si no és així, és perquè no ha detectat l'USB; això pot ser perquè no hem connectat correctament l'USB o perquè no tenim permisos per a escriure-hi.
Aleshores apareixeran tots els dispositius que tenim connectats. Seleccionem el port en què tenim connectat el dispositiu que volem programar (en aquest cas /dev/ttyUSB0).
Podem veure que no podem seleccionar «Actualitza el microprogramari»; quan hàgem seleccionat l'USB aquestes opcions ja podran triar-se. Podem comprovar que s'ha connectat a la placa si en el nom de la finestra apareix la paraula "Connectat".
Ara hem d'actualitzar el microprogramari de la placa. EL microprogramari servirà per a poder executar els blocs sense necessitat d'haver de carregar-lo a la placa. Cosa molt útil quan tractem de depurar el programa que estem construint. Fem clic a «Actualitza el microprogramari», i quan acabe de carregar-lo apareixerà una finestra que avisarà que el microprogramari ja està actualitzat.
Ara ja podem començar a programar la placa.
5. MakeBlock
En funció del microprogramari que triem apareixen unes funcions, així, per exemple, si triem el microprogramari per a fer un projecte en l'mBot, apareixeran totes les funcions corresponents al robot mBot. Per a poder veure les funcions hem de polsar en el botó Robot. Aquest carregarà tots els mòduls de l'mBot.
Igualment podem fer el mateix amb tots els robots derivats de l'mBot, com ara 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 un altre dispositiu de MakeBlock per a poder controlar diversos motors.
Com es pot veure, en tots aquests cal realitzar una xicoteta inversió econòmica en les plaques. Si disposem ja d'Arduino UNO als nostres centres, també podem optar per adquirir un shield ME UNO Shield (un shield és una placa que s'integra perfectament en la placa Arduino UNO i està dissenyat per a aquesta) per a poder utilitzar els components de MakeBlock.
El gran avantatge que tenen aquest tipus de plaques és que el fet de muntar un projecte amb diferents components es torna pràcticament trivial, ja que sols cal anar connectant connectors RJ25.
6. Programant un mBot (seguidor de línia negra)
Per a començar a programar un mBot, haurem d'haver carregat prèviament el microprogramari de l'mBot.
Abans de començar a programar qualsevol dispositiu, hem de definir clarament què volem que faça. Així, definirem les condicions següents:
- El robot seguirà una línia negra i quan se n'isca tornarà altra vegada a la línia.
- Si troba cap obstacle el robot pararà.
Una vegada tinguem definit què volem que faça, haurem de veure com ho implementem. Per a implementar-ho utilitzarem els dos sensors que detecten clar/obscur, un a l'esquerra i un altre a la dreta i el sensor d'ultrasons que tenim davant de l'mBot:
Tindríem un diagrama de blocs com aquest:
I que implementaríem en Scratch d'aquesta manera:
Una de les opcions a les quals podem traure profit a l'hora de programar un mBot, és la de crear blocs en l'mBlock (com funcions quan programem). En aquest cas hem creat dos blocs per a facilitar la nostra programació un poc. Cal tindre 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 d'exemple d'ací .
6.1. Depuració i càrrega del programa
Una vegada tenim el programa fet, podem anar provant-lo si tenim el microprogramari de l'mBot carregat a la placa; per a això, simplement polsem sobre qualsevol bloc i veurem com apareix un contorn groc en el programa, això significa que està funcionant:
Així mateix, també podem conéixer l'estat d'un sensor arrossegant un bloc solt on es llija específicament del sensor i polsar-hi damunt. En fer-ho, donarà l'estat del sensor:
Una vegada ja hàgem depurat el programa i ens hàgem assegurat que tot funciona correctament, podem carregar el programa a la placa. Per a això, haurem d'anar a Edita > Mode Arduino i podrem veure el codi en C.
Fem clic a Puja a Arduio i es carregarà el programa en el nostre robot, de manera que ja podrem desconnectar-lo de l'ordinador per a utilitzar-lo.
7. Arduino en l'mBlock
L'mBlock en Arduino s'utilitza de manera similar a l'mBot. La diferència principal és que no hi ha tants blocs per a Arduino com per a l'mBlock. Per a començar a programar en Arduino, la primera cosa que hem de fer es carregar el microprogramari per a la nostra placa Arduino, en aquest cas Arduino UNO.
Una vegada tenim carregat el microprogramari ja podem programar en Arduino. Hem de tindre en compte que podem treballar en Arduino de dues maneres: una és utilitzant el microprogramari de l'mBlock i l'altra és en mode Arduino.
En el nostre exemple crearem un programa amb quatre polsadors i quatre leds, dos dels leds els encenem amb dos polsadors i els altres dos amb dos botons de l'escenari de treball. Els altres dos polsadors els utilitzarem per a moure el panda cap avant i per a fer-lo girar.
Per a entrar en cada figura de l'escenari hem de fer doble clic 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 clic en un 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 eixides simplement fent clic sobre algun bloc. D'aquesta manera donarà el resultat d'aquesta entrada.
És possible que només necessitem programar l'Arduino per a controlar algun procés, i no siga necessari utilitzar l'escenari. Per a això, anem a Edita > Mode Arduino i veurem que apareix un entorn sense escenari. És més, totes les opcions per a interactuar amb l'escenari estan inhabilitades. El programa que creem aleshores es traduirà automàticament a C i es carregarà directament a Arduino. D'aquesta manera tindrem un programa autònom sense haver de tindre el cable USB enganxat a l'Arduino.
A més, si necessitem funcionalitats que no tenim en l'mBlock, podem editar el programa amb l'IDE d'Arduino.
8. Problemes comuns
Podem trobar-nos amb la situació que no puguem escriure al port perquè el nostre usuari no tinga permisos d'escriptura al port USB. Un exemple d'això és poder accedir al port com a «sudoer» però no com a usuari normal.
Per a donar permisos als usuaris podem executar al terminal les ordres següents:
sudo usermod -G dialout -a NOM_USUARI sudo usermod -G tty -a NOM_USUARI