Cose che ho letto

martedì 22 ottobre 2013

Installare PySerial su Intel Galileo

Come installare manualmente PySerial su Intel Galileo Arduino, senza pip, easy install o altri script
Una delle caratteristiche vincenti di Galielo, è quella di supportare nativamente Python e di conseguenza la maggior parte delle librerie disponibili per questo linguaggio. 
Tra le più importanti per il mondo embedded e hobbystico in generale c'è PySerial, che consente di comunicare in maniera semplice con altre periferiche.

For the english version of this article, click here

Premessa

Se siete finiti a leggere qui, vi siete probabilmente accorti che non è disponibile tra i moduli già presenti nel sistema operativo Yacto, distribuito da Intel per Galileo, e probabilmente non lo sarà in tempi brevi, visto che il packet manager OPKG non può essere aggiornato a un nuovo elenco di pacchetti disponibili. Per constatarlo basta andare a leggere il file di configurazione
  • vi /etc/opkg/opkg.conf 
E constatare che non c'è nessun URL a cui puntereste con il comando
  • opkg update
Non sono neanche disponibili i classici strumenti di installazione automatica di moduli, come PIP o EASY INSTALL, e non potete procedere alla loro installazione manuale, o a quella dei singoli moduli, come fareste di solito
  • python setup.py install
Perchè la maggior parte dei file risede su server che richiedono connessioni HTTPS, non supportata dalla versione di Python per Yacto, e difficilmente potrete aggirare manualmente questo limite.
Oppure le dipendenze sono troppo diverse per potere essere soddisfatte manualmente una per una.

Installazione manuale

Ci procuriamo il pacchetto PySerial più adatto al sistema su cui ci troviamo. Io per la massima compatibilità ho optato per OpenWRT, altra famosa distribuzione Linux per dispositivi embedded, disponibile per molti tipi di architetture, tra cui Intel x886
  • wget http://downloads.openwrt.org/backfire/10.03.1/x86_generic/packages/pyserial_2.4-1_x86.ipk
Estraiamo il contenuto del pacchetto
  • tar xvfz pyserial_2.4-1_x86.ipk
  • tar xvfz data.tar.gz
    • ./
      ./usr/
      ./usr/lib/
      ./usr/lib/python2.6/
      ./usr/lib/python2.6/site-packages/
      ./usr/lib/python2.6/site-packages/serial/
      ./usr/lib/python2.6/site-packages/serial/serialutil.py
      ./usr/lib/python2.6/site-packages/serial/serialposix.py
 Ci spostiamo nella cartella superiore alle librerie
  • cd ./usr/lib/python2.6/site-packages/
Ricompattiamo i file che ci interessano
  • tar -czf serial.tar.gz serial
Trasferiamo l'archivio su Galileo nella cartella dove lo andremo a estrarre, ad esempio usando il comando SCP da un pc nella stessa rete a cui è colleato, con ip ad esempio 192.168.1.112
  • scp serial.tar.gz root@192.168.1.112:/usr/lib/python2.7/site-packages/
Spostiamoci sulla consolle di Galileo

  • cd /usr/lib/python2.7/site-packages/
  • tar xvf serial.tar.gz 
    • serial/
      serial/serialcli.py
      serial/serialwin32.py
      serial/serialutil.py
      serial/sermsdos.py
      serial/serialposix.py
      serial/serialjava.py
      serial/__init__.py
A questo punto avremo all'interno della directory site-packages, una cartella serial contenente le librerie.
Possiamo testare il corretto funzionamento dei moduli, lanciando Python e aprendo sul computer l'IDE di Galileo e il monitor seriale. Dovremmo poter visualizzare i messaggi inviati


Per il momento non è possibile sfruttare questa comunicazione per scambaire dati tra il programma python e lo sketch che gira su arduino. Al contrario di quanto potreste leggere nella seconda parte di questa risposta
Seguiranno aggiornamenti

Nessun commento:

Posta un commento