Processing è un linguaggio di programmazione "C like" quasi del tutto identico al linguaggio C usato da Arduino. Ultimamente, con la versione 3.0.1, è stata aggiunta una libreria specifica per usare la GPIO del Raspberry, pertanto adesso possono essere realizzati sketch per RPi esattamente come su Arduino. Processing è diventato quindi il linguaggio ponte di congiunzione tra le due schede e se avete una certa esperienza nel programmare Arduino adesso non avete più scuse per non utilizzare anche Raspberry. Vediamo come iniziare ad utilizzare questo linguaggio e qualche esempio della sua sintassi. Se avete letto il mio precedente articolo sui linguaggi di programmazione a disposizione per RPi, adesso, potete aggiungere anche Processing.
Partiamo
Il linguaggio Processing (Figura 1), basato su Java, è nato a inizio secolo (nel 2001 per essere precisi) per eseguire lavori grafici e come linguaggio orientato alla semplicità e alla didattica, riscuotendo un certo successo soprattutto in ambito accademico. Da quest'anno, la realizzazione di una specifica libreria per comandare la GPIO del Raspberry Pi lo affianca al Python e al C, anche se non può essere ancora considerato una alternativa all'altezza. Ad ogni modo lo troveranno immediato e semplicissimo quanti provengono dall'universo Arduino che potranno addirittura riadattare intere parti di codice senza riscriverle.
Andiamo con ordine e iniziamo per prima cosa l'installazione, potete effettuare il download dal sito Internet (https://processing.org) oppure, ed io l'ho trovato molto comodo e migliore come via di installazione, usando curl:
curl https://processing.org/download/install-arm.sh | sudo sh
In questo modo installiamo tutto con un solo comando, ci ritroveremo anche la relativa voce sotto il menù Programmazione. Potete anche lanciare l'IDE da riga di comando digitando direttamente "processing", fate procedere il comando da "sudo" per ottenere i privilegi necessari altrimenti potreste non poter utilizzare le porte GPIO. La libreria di Processing infatti lavora con i file di sistema /sys/class/gpio/ per cui, per poterli modificare, sarà necessario avere i privilegi massimi.
Processing è multi piattaforma per cui potete installarlo anche su Windows 7/8/10, Linux ed OS X ed usarlo come un qualsiasi altro linguaggio di programmazione. Sul Raspberry, lanciando l'IDE, otterrete più o meno quello visualizzato in figura 2.
Se avete usato almeno una volta Arduino non potrete non riconoscerne la somiglianza dell'ambiente (in pratica è identico cambia solo il colore). [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2270 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.
Lo sviluppo di processing permette un conubio perfetto tra c e raspberry pi. Inoltre gli utenti di arduino avranno la possibilita’ di mettere a confronto le applicazioni sviluppate.
Ottimo, Processing è il linguaggio di programmazione che preferisco di più. Stasera farò delle prove. Esiste il comando per abilitare il Pull-Up quando la GPIO è settata come ingresso? Oltre alle porte ci sono librerie per gestire display, come gli lcd 16×2?
Grazie in anticipo per la risposta.
Ciao, per quanto riguarda pull-up o pull-down dovresti trovare un po tutto nell’articolo, nota bene come sono usati GPIO.HIGH o GPIO.LOW quando associati ad un pulsante. Per le librerie di gestione display non mi risulta ancora nulla di disponibile. Valuta però la possibilità di usare I2C.
Scusami non mi sono spiegato bene, intendevo il pull-up interno al micro, per evitare di collegare una resistenza esterna. In Wiring si abilita col comando: pinMode(Pin, INPUT_PULLUP);
Stesso comando è valido per Processing?
Ho usato Processing con il Leap Motion. Non ha ancora preso molto piede come linguaggio. Con il Raspberry PI uso unicamente C++ o Python, li trovo meno pesanti in esecuzione.
Quali sono le differenze tra Processing e WiringPI ?
Dovrei provare a convertire un progetto fatto per Arduino e sembrerebbe che entrambe le librerie possano fare la stessa cosa, avendo in gran parte le stesse API.
Ciao, spero di aver capito bene la domanda, però Processing è un linguaggio mentre WiringPI è solo una libreria per il C. Per contro, effettivamente, sono praticamente identiche da un punto di vista realizzativo, entrambe leggono e controllano lo stato delle cartelle GPIO in Linux. In pratica bisogna solo cambiare la sintassi delle varie istruzioni.
Sì, hai capito. Comunque mi sono spiegato male io.
So che Wiring (e quindi anche WiringPI suppongo) è basato sul linguaggio Processing.
Effettivamente devo ancora iniziare l’attività di porting da Arduino a Raspberry e quindi non ho ancora magari informazioni complete.
Da quello che dici mi sembra di capire che con l’utilizzo di Processing faccio girare gli sketch dall’IDE, mentre con la libreria WiringPI devo compilare con gcc per ottenere l’eseguibile.
Con Arduino una volta compilato lo sketch (e quindi l’IDE ha aggiunto anche le parti di sistema a basso livello) viene scaricato sul processore e rimane residente fino a nuova programmazione.
Il mio dubbio nello specifico era cercare di capire come con i due sistemi posso ottenere un eseguibile da lanciare a riga di comando.
Grazie
WiringPI è scritto in C e ne trovi i sorgenti su GIT (non si basa su Processing).
Come dici tu Arduino carica lo sketch mentre Processing lo esegue direttamente. Per usare WiringPI invece si deve compilare.
C’è però la possibilità di eseguire lo sketch da Shell (io personalmente non ho mai provato) realizzando un batch che lancia con l’opportuna sintassi “processing-java”.
Prova ad eseguire “processing-java –help” per la corretta sintassi.
Come posso collegare il mio Raspberry al computer?
Dipende. Se vuoi avere solo la riga di comando si usa la connessione SSH.
Il modo più semplice è quello di usare un cavo ethernet.
Configuri la scheda la LAN su PC con indirizzo statico (es, 10.0.0.1) e la connessione eth0 sul raspberry con un altro indirizzo statico (es. 10.0.0.2). Colleghi il cavo e con Putty installato sul PC selezioni l’indirizzo IP del Raspberry ed il gioco è fatto.
Buonasera a tutti,
Sto approcciando ora per la prima volta alla Raspberry pi (ho ricevuto il modello 3 grazie all’abbonamento platinum?) e avevo alcune domande. Mi piacerebbe molto addentrarmi in questo campo (processing e simili) ma davvero non saprei da dove cominciare. Come linguaggi di programmazione conosco c, c++ e java (fatti tutti come corsi ad ingegneria) e come conoscenze di elettronica ho giusto le basi (elettrotecnica fatta e fondamenti di elettronica digitale in programma). Fatta questa lunghissima premessa (mi scuso per la prolissità), come inizio? Cioè, a livello di componentistica hardware (breadboard, led etc) cosa mi consigliate?
Ringrazio chiunque leggera tutto questo commento?
Io personalmente consiglio di iniziare con un qualche kit di componenti e sensori (ottimo p.e. il kit da 37 sensori che trovi in rete, Amazon, Element 14, Adafruit e altri…). Con questi, una breadbord, led, resistenze e pulsanti iniziare a esplorare in primis l’accensione di led e la pressione dei pulsanti per poi passare a monitorare i sensori usando sia le GPIO sia protocolli come I2C e UART. In pochi giorni dovresti raggiungere un know how sufficiente a creare piccoli progetti mettendoti in grado di poterne realizzare di molto più complessi.