Anem a veure com instal·lar alguns programes i extensions al nostre Ubuntu de 32 bits per poder programar la targeta Arduino de forma gràfica amb l’editor fora de línia Scratch 2 del MIT.
1- ## Requisit previ, instal·lar librxtx-java
sudo apt-get install librxtx-java
2- Instal·la Adobe Air amb les següents instruccions per a Ubuntu:
2.1- ## Crea l’usuari root al nostre ubuntu amb l’ordre
sudo passwd
2.2- $$ Baixa el script per fer la instal·lació des de la web de Noobslab amb l’ordre:
wget http://drive.noobslab.com/data/apps/AdobeAir/adobe-air.sh
(Aquesta ordre sembla que no funciona des de dins de la xarxa de centres públics de la GVA, descarregueu-se aquest fitxer en la vostra casa).
2.3- $$ Aneu on heu baixat aquest fitxer amb el terminal, suposem que és la carpeta /home/tecnologia
cd /home/tecnologia
i canvieu els permisos d’execució de l’script baixat amb l’ordre:
chmod +x adobe-air.sh
2.4- ## Executeu el script amb l’ordre:
sudo ./adobe-air.sh
El programa Adobe Air us demanarà la contrasenya de roor ( pot ser diferent de la de sudo però cal haver creat l’usuari roor al pas 2.1 ) i farà la instal·lació de la versió 2.6 d’Adobe Air
3- Instal·lem Scratch 2 baixant-lo de la web seua.
4- El programa crearà un enllaç a l’escriptori per executar Scratch 2.
5- Instal·leu Arduino en Linux. Ací teniu algunes instruccions si no sabeu fer això.
6- Carregueu el StandardFirmata firmware a la targeta (des de “Fitxer > Exemples > Firmata > StandardFirmata “).
7- $$ Baixar el zip amb el codi font de l’extensió A4S que està fent Damellis des de l’adreça:
wget https://github.com/damellis/A4S/archive/master.zip
i descomprimir-lo, llavors es crearà la carpeta A4S-master que podem deixar en /home/tecnologia o en /opt si no volem que els alumnes l’esborren.
8- $$ Llança el servidor A4S emprant el script “run.sh” des del terminal.
Passa el nom del port que escriurà la targeta Arduino en format llegible per Linux
cd /home/tecnologia/A4S-master
./run.sh /dev/ttyACM0
Veuràs que tens problemes si no tens el java d’Oracle i si el tens també hauràs d’arreglar alguna coseta com t’explicaré ara.
8.1 ## Posa el java d’Oracle en Ubuntu. (salta aquest pas si ja tens el java d’Oracle)
Executa les següents ordres una a una,
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
sudo update-java-alternatives -s java-7-oracle
Per canviar entre diferents versions de Java cal utilitzar l’ordre de terminal:
sudo update-alternatives –config java
8.2 Si tens el java d’Oracle a l’executar l’ordre ( ./run.sh /dev/ttyACM0)
tindràs l’error:
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread “main” java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1865)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1119)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
at A4S.main(A4S.java:76)
$$ Per resoldre aquest error per una bona temporada et cal buscar la llibreria rxtxSerial que el java d’Oracle no troba, ho pots amb l’ordre
locate librxtxSerial
que retornarà aquestes dues ratlles si has instal·lat librxtx-java al pas 1.
/usr/lib/jni/librxtxSerial-2.2pre1.so
/usr/lib/jni/librxtxSerial.so
Ara sols caldria copiar la llibreria librxtxSerial.so al java d’Oracle, però cal mirar quina versió de java tens instal·lada per defecte amb l’ordre
sudo update-alternatives –config java
que retornarà les ratlles semblants a aquestes:
Hi ha 5 possibilitats per a l’alternativa java (que proveeix /usr/bin/java).
Selecció Camí Prioritat Estat
————————————————————
0 /usr/lib/jvm/java-8-oracle/jre/bin/java 1082 mode automàtic
1 /opt/java/jdk1.8.0_31/bin/java 1 mode manual
2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 mode manual
3 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java 1070 mode manual
* 4 /usr/lib/jvm/java-7-oracle/jre/bin/java 1081 mode manual
5 /usr/lib/jvm/java-8-oracle/jre/bin/java 1082 mode manual
Premeu retorn per a mantenir l’opció per defecte[*], o introduïu un número de selecció: (Premeu retorn i no canvieu res)
El vostre java per defecte està en *4 /usr/lib/jvm/java-7-oracle/jre/bin/java
Caldrà que copieu la llibreria librxtxSerial.so al java per defecte d’Oracle amb l’ordre:
sudo cp ‘/usr/lib/jni/librxtxSerial.so’ ‘/usr/lib/jvm/java-7-oracle/jre/lib/i386’
Ara a l’executar l’ordre ./run.sh /dev/ttyACM0 veureu les ratlles
Stable Library
=========================================
Native lib Version = RXTX-2.2pre2
Java lib Version = RXTX-2.1-7
WARNING: RXTX Version mismatch
Jar version = RXTX-2.1-7
native lib Version = RXTX-2.2pre2
HTTPExtensionExample helper app started on Departament/127.0.1.1
que indiquen que el servidor A4S ja comunica amb la targeta Arduino, ara ja podeu iniciar Scratch 2 i carregar l’extensió A4S amb el blocs per escriure al port USB on hem posat Arduino. No tanqueu aquest terminal on està el procés A4S executant-se si no voleu matar-lo.
la segona vegada que vulgam iniciar aquest servidor crearen un script de bash gràfic a l’escriptori i li donarem permís d’execució, i posarem dins les ratlles aquestes:
#!/bin/bash
cd /home/tecnologia/A4S-master
./run.sh /dev/ttyACM0
i així no caldrà que els alumnes utilitzen per a res el terminal.
9- Amb el servidor A4S en marxa ja siga amb un script de bash o amb el terminal iniciem Scratch 2.
10- Mentre es prem la tecla majuscules «Shift» del teclat, aneu i premeu «Fitxer» al menú Scratch. Podeu veure «Import Experimental Extension» o «Import Experimental HTTP Extension» a la part inferior del menú. Premeu sobre aquesta opció.
11- Navegeu fins el directori /home/tecnologia/A4S-master que conté A4S i seleccioneu el fitxer A4S.s2e
12- Podeu veure l’extensió A4S i els blocs es troben en la categoria «Més blocs» de l’editor Scratch. Si el servidor A4S està executant-se, apareixerà un punt verd a la vora del títol «A4S».
Ara sols falta posar un led al port 13 i fer un programeta per comprovar si açò funciona després de tanta faena. Us deixe la prova que a mi m’ha funcionat amb aquestes instruccions.
Ara ens cal instal·lar això en un ordinador del centre i clonar-lo amb Clonezilla, i ja podem fer-ho enguany doncs el curs proper quan entre la LOMQE al País Valencià les hores per construir robots i programar-los en Tecnologia a la ESO baixaran a la meitat. En altres comunitats el conseller/a de torn a anunciat que augmentaran les hores autonòmiques per Tecnologia / Dibuix tècnic però a València la Consellera Català calla i otorga. Tenim el que votem!!!
2 comments
Funciona molt bé. Gràcies per la aportació!!!
La instal·lació en LliureX és un poc més senzilla. He publicat un manual adaptant les teues instruccions ací: http://wikimanuals.edutictac.es/index.php?title=Instal%C2%B7lar_Scratch_2_per_a_programar_Arduino
Salutacions.
Author
Hola Daniel,
Ja havia provat que la instal·lació en Lliurex 14 i havia vist que és més senzilla. ( http://gnuéscultura.eu/?p=1408 )
El que em va faltar dir és que si a l’arrancar l’ordinador tens un pendrive usb connectat a l’ordinador , quan poses el usb amb arduino després has de modificar l’ordre per el servidor A4S reconega la targeta Arduino i en lloc de posar
./run.sh /dev/ttyACM0
et caldrà posar
./run.sh /dev/ttyACM1
Una solució alternativa és arrancar l’ordinador i posar la targeta USB Arduino abans que qualsevol pendrive per tal que el dispositiu Arduino siga el primer que pille l’ordinador i tinga assignat el punt de muntatge /dev/ttyACM0
Gràcies Daniel per ajudar-me a difondre Scratch2 i Arduino entre els docents valencians.