Programmiamo Raspberry Pi con tutti i linguaggi

Programmare Raspberry Pi con i principali linguaggi di programmazione non è una cosa complicata ma al contrario semplice e alla portata di tutti. L'articolo presenta degli esempi pratici per accendere un Led tramite un pulsante. Tutto il codice è ben commentato, descritto e testato su una Raspberry B+ anche se non c'è alcun limite per il suo funzionamento su tutti gli altri modelli attualmente in commercio.

Poter utilizzare sempre il proprio linguaggio di programmazione preferito anche su nuovi ambienti è forse il desiderio di tutti gli sviluppatori. Anche se Raspberry Pi nasce per essere utilizzata con Python questo non esclude di poterla programmare ed interagire con il suo sistema di I/O anche con altri linguaggi.

Python è un linguaggio maturo e potente (l’unico difetto che gli possa attribuire è che non sia nativamente compilabile ma solo usando moduli e procedure esterne). Programmare in Python è spesso un piacere e non gli manca nulla, sia per lo sviluppo client/server sia per il web.

Se però Python non è il vostro linguaggio preferito oppure non volete investire tempo nel suo apprendimento allora sono certo che troverete utile quanto descritto di seguito. Affronteremo una serie di esempi in Python (come punto di paragone), C, Java, Shell, Bash e PHP per accendere e spegnere un LED gestendo un pulsante, le due operazioni alla base di ogni prototipo.

L’articolo è scritto partendo dal presupposto che il lettore conosca almeno uno dei linguaggi presi in esame nel resto del testo e abbia ovviamente una base di conoscenze elettroniche. La descrizione del codice si limita infatti a spiegarne il funzionamento base, non se sia la tecnica di programmazione migliore, lavoro che viene lasciato a chi legge.

IMPORTANTE: per ogni operazione descritta dovete avere i privilegi da amministratore pertanto suggerisco di eseguire per prima cosa il comando “sudo su” e digitare la vostra password, questo vi permetterà di non dover sempre anteporre SUDO ad ogni comando.


Note sulla scrittura del codice

Tutti i programmi qui descritti sono stati scritti con NANO, l’editor base presente in Raspbian. Non ci sono particolari accorgimenti per riscrivere i programmi, io per organizzazione ho creato una cartella “esempi” e delle sotto cartelle col nome del linguaggio, ma ovviamente voi potete strutturare come più vi piace.

home/pi/esempi/c
home/pi/esempi/bash
home/pi/esempi/java
home/pi/esempi/python

Unica eccezione sarà il codice PHP che deve essere posizionato in localhost, ma questo lo vedremo dopo.

Tutti i file hanno nome identico (PulsanteLed) ma con relativa estensione. Ecco quindi che avremo PulsanteLed.c, PulsanteLed.java, PulsanteLed.py, PulsanteLed.php e PulsanteLed.sh. Potete comunque chiamare i file come volete, adattate di conseguenza eventuali mie descrizioni o sintassi dei comandi che troverete nel testo.

 

Il progetto elettrico

Ovviamente la prima cosa è mettere insieme la componentistica e realizzare il circuito, guardiamo lo schema elettrico:

Schema visuale

Schema visuale

Schema elettrico

Schema elettrico

I componenti sono estremamente elementari:

  • un led di qualsiasi colore con la relativa resistenza da 330Ohm.
  • un pulsante a 4 o 5 piedini normalmente aperto e relativa resistenza da 1K.
Collegamenti Pin Raspberry

Collegamenti Pin Raspberry

Volendo dare una rapida descrizione al circuito diremo che quando si preme il pulsante porteremo a massa il pin 11. La resistenza da 1K è detta pull-up poiché mantiene alto lo stesso pin. Ad essere sinceri non sarebbe necessaria alcuna resistenza poiché già la RPi ha una resistenza interna che può essere usata sia come pull-up che come pull-down. Questo però è possibile se usassimo la tensione di riferimento da 3,3V, la stessa usata dai pin della GPIO. Nel nostro progetto utilizziamo i 5V pertanto è altamente consigliabile usare una resistenza per non rischiare di danneggiare il circuito.


Esempio base, Python

Non partire con Python sarebbe un grave affronto alla natura del RPi che come sappiamo ha nel proprio nome il post-fisso Pi che sta proprio per Python. Questo codice inoltre verrà usato come punto di paragone con i linguaggi che presenterò. Ma vediamo subito il codice: [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2739 parole ed è riservato agli abbonati PLATINUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici PREMIUM e PLATINUM e potrai fare il download (PDF) di tutti gli EOS-Book, Firmware e degli speciali MONOTEMATICI. ABBONATI ORA con PAYPAL è semplice e sicuro.

Abbonati alle riviste di elettronica

22 Commenti

  1. Ale Torri AT Lab 8 settembre 2015
  2. Gabriele Guizzardi. 8 settembre 2015
  3. Stefano Bettega Stefano Bettega 8 settembre 2015
  4. smania2000 smania2000 8 settembre 2015
  5. Gabriele Guizzardi. 9 settembre 2015
  6. Francesco Cornalba Francesco Cornalba 3 gennaio 2016
    • Gabriele Guizzardi. 3 gennaio 2016
      • Francesco Cornalba Francesco Cornalba 3 gennaio 2016
        • Gabriele Guizzardi. 3 gennaio 2016
  7. Gabriele Guizzardi. 3 gennaio 2016
  8. Massimo 4 gennaio 2016
    • Gabriele Guizzardi. 4 gennaio 2016
    • Maurizio Di Paolo Emilio Maurizio 4 gennaio 2016

Scrivi un commento

ESPertino è la nuova scheda per IoT compatibile ARDUINO.
Scopri come averla GRATIS!