Cos’è Raspberry Pi?
Raspberry Pi è un dispositivo, che in gergo elettronico viene classificato come “single-board computer” ovvero è un vero e proprio computer realizzato su una singola scheda.
Si può quindi assimilare ad una classica scheda madre di un computer ma molto più piccola e dalle prestazioni leggermente ridotte.
Difatti, Raspberry Pi proprio come un normale computer è composto da microprocessore, memorie RAM, memorie ROM e altre periferiche di input e output.
La storia di Raspberry Pi
Raspberry Pi nasce, dopo vari anni di prove, nel 2012 con l’obbiettivo di incoraggiare e appassionare studenti, e i “non addetti ai lavori”, al mondo dell’elettronica rendendolo più semplice e divertente.
Dal 2012 ad oggi Raspberry Pi ha avuto un enorme successo nel campo della prototipazione e dell’hobbistica diventando un dispositivo da avere in qualsiasi laboratorio per dar anima ai propri progetti fai da te.
I modelli di Raspberry Pi rilasciati in commercio sono molteplici e di vario genere, per adempiere a tutte le esigenze dei makers. In questo articolo andremo anche a confrontare vari dispositivi attualmente in commercio.
Cosa differenzia Raspberry Pi dai suoi simili e perché preferirlo?
Uno dei principali competitor di Raspberry Pi in ambito hobbistico è Arduino ma anche se possono sembrare simili, come vedremo a breve, sono totalmente diversi.
Le loro differenze riguardano sia il lato hardware che il lato software. Prima di andare a vedere le differenze è necessaria una breve introduzione su che cos’è Arduino.
Arduino nasce nel 2005 con lo stesso scopo di Raspberry ovvero avvicinare molte persone al mondo dell’elettronica in un modo più divertente.
È stato infatti molto apprezzato dal pubblico per la sua semplicità di utilizzo, il basso costo, e la varietà di progetti realizzabili. Arduino è sostanzialmente una scheda basata su un microcontrollore prodotto da Atmel.
Questo microcontrollore, per funzionare, ha bisogno di vari componenti elettronici da aggiungere all’esterno come ad esempio il circuito di alimentazione, il circuito di programmazione, il circuito temporizzatore e tutto ciò è già saldato sulla scheda di Arduino per cui l’utente non dovrà aggiungere nulla.
Ecco perché Arduino ha avuto molto successo, proprio perché su una singola scheda era presente tutta l’elettronica che faceva funzionare al meglio il microcontrollore presente, senza che l’utente progettasse nulla.
Andiamo quindi a vedere le differenze tra Raspberry Pi e Arduino:
Il microcontrollore
Una prima differenza è già stata citata. Raspberry Pi è basata su un microprocessore mentre Arduino è basato su un microcontrollore. E qui c’è da fare un’ulteriore distinzione tra microprocessore e microcontrollore.
Sostanzialmente un microprocessore è un dispositivo progettato unicamente con l’obietto di eseguire calcoli che deve fare quindi nel migliore possibile ed efficiente ed è composto principalmente dalla CPU.
Un microcontrollore, invece, è stato progettato con l’obbiettivo di avere su un unico componente elettronico CPU, memorie, e altri dispositivi. Questo fa sì che il microcontrollore sia meno abile nell’eseguire calcoli complessi ed è tipicamente più lento.
Dato che Raspberry Pi contiene un microprocessore ed essendo in grado di eseguire in modo più efficiente operazioni complesse, al suo interno può essere installato un vero e proprio sistema operativo come windows (proprio come il vostro computer di casa), o più comunemente viene installato Linux.
Arduino invece non può eseguire programmi avanzati come un sistema operativo, ma può solo eseguire piccoli programmi scritti dall’utente e poi trasferiti tramite cavo USB ad Arduino
Il sistema operativo
La presenza di un sistema operativo su Raspberry fa si che esso sia in grado di eseguire più programmi contemporaneamente (multi-tasking).
Infatti, uno dei compiti primari per cui viene progettato un sistema operativo è proprio quello di gestire la memoria affinché il microprocessore possa eseguire più programmi in contemporanea.
Va da sé che Arduino, non avendo al suo interno un sistema operativo, non può eseguire più programmi contemporaneamente ma solo e soltanto uno, cioè quello che viene caricato dall’utente in memoria.
Inoltre, se l’utente proverà a caricare un secondo programma, in memoria non ci saranno due programmi ma solo quello inserito più recentemente in quanto la memoria viene sovrascritta.
Avere un sistema operativo a bordo fa sì che sia molto più semplice anche gestire delle periferiche come ad esempio, un monitor, una tastiera, un mouse, un collegamento ethernet o wi-fi, ecc…
Infatti si può notare come su Raspberry Pi siano già presenti delle porte USB, Ethernet, HDMI ed entrambe queste periferiche possano essere utilizzare contemporaneamente.
Al contrario, Arduino non avendo un sistema operativo, non ha a disposizione tutte queste periferiche sulla scheda principale. Se si volessero utilizzare bisognerebbe comprare dell’hardware aggiuntivo ovvero gli shield.
Come abbiamo potuto vedere a differenza di Arduino, Raspberry Pi è un dispositivo molto più potente, flessibile e adatto a qualsiasi progetto essendo a tutti gli effetti un piccolo computer.
Come si può comandare Raspberry?
Abbiamo visto che Raspberry è a tutti gli effetti un computer con un sistema operativo a bordo. Ma come possiamo fargli fare quello che vogliamo noi e ad esempio utilizzarlo in un nostro progetto?
Semplice, attraverso la scrittura di un programma! Un programma non è nient’altro che un insieme di istruzioni che noi decidiamo di far eseguire al nostro Raspberry.
Ad esempio, leggere il valore in uscita da un sensore, fare operazioni matematiche, attivare degli attuatori, stampare sul monitor dei dati, eseguire delle funzioni e molto altro.
Questo programma viene scritto utilizzando un linguaggio di programmazione, ovvero un linguaggio che il nostro Raspberry può capire, e come qualsiasi lingua, anche un linguaggio di programmazione segue delle regole ben precise che variano quindi in base al linguaggio scelto. Raspberry può essere programmato utilizzando vari linguaggi di programmazione ma il più utilizzato è Python.
Python è un linguaggio di programmazione nato intorno agli anni ’90, è molto apprezzato dai programmatori per la sua elevata flessibilità e semplicità di utilizzo. Per scoprire di più su Python potete visitare il sito (https://www.python.org/)
Confronto tra alcuni Raspberry in commercio
Come detto prima esistono molti Raspberry Pi in commercio, ognuno con le sue caratteristiche che lo rendono quindi adatto per eseguire vari compiti. Andiamo quindi ad elencarne alcuni:
RASPBERRY PI 1 A+
Partiamo con un modello basilare, il Raspberry Pi 1 A+. Con un processore BCM2835 a 700MHz e una memoria RAM di 512 MB è un ottimo dispositivo per accedere in questo mondo, complice anche il suo basso costo. A causa dell’assenza del Bluetooth, della porta Ethernet, del Wi-fi è ottimo per piccoli progetti che non richiedono di interfacciarsi con altri dispositivi.
RASPBERRY PI 1 B+
Questo è evoluzione del Raspberry Pi 1 A+. Mantiene inalterato il processore e la memoria RAM ma differenza del suo fratello minore che ha una sola porta USB questo Raspberry ha ben 4 porte USB e una porta Ethernet.
Questo Raspberry può già essere utilizzato come un piccolo computer in quanto è possibile collegare ad esempio una tastiera, un mouse e un cavo LAN per il collegamento ad Internet.
RASPBERRY PI 3B+
Un modello molto più evoluto è il Pi 3 B+, grazie al suo processore BCM2837B0 con una velocità di 1,4 GHz e una memoria RAM di 1GB è un dispositivo molto potente, per questo può essere utilizzato proprio come un piccolo computer o per progetti molto complessi. È inoltre dotato di porta Ethernet, 4 porte USB, Wi-fi e Bluetooth 4.2. Le sue molteplici connessioni lo rendono adatto per progetti dove è richiesta un’elevata connettività tra vari dispositivi.
RASPBERRY PI 4 B
L’ultimo prodotto di Raspberry è il Pi 4 B. Equipaggia un processore BCM2711 l’ultimo progettato per Raspberry con una velocità di 1,5 GHz. Può essere acquistato con varie dimensioni di memorie RAM, è disponibile con RAM da 1GB, 2GB e 4GB. Su questo modello, la connettività è potenziata avendo 2 porte USB2 e 2 porte USB3 con una maggiore velocità di trasferimento dei dati, è presente la porta Ethernet, il Wi-fi e il Bluetooth 5.0 per una connettività ancora più veloce.
Esempi di progetti realizzabili con Raspberry Pi
Andiamo a vedere ora alcuni esempi di progetti che è possibile realizzare utilizzando Raspberry Pi e alcuni sensori.
ILLUMINAZIONE AUTOMATIZZATA DI UNA STANZA
Se volete avere un’illuminazione costante nella vostra stanza adattando la luce artificiale con quella naturale, questo progetto farà per voi.
Il sensore “Breakout sensore di luminosità e colore BH1745” è un sensore di luminosità e di colore ovvero vi restituisce informazioni riguardo a quanta luce è presente nella stanza e al colore di un oggetto che vi è posto d’avanti.
Possiamo quindi utilizzarlo per capire quanta luce naturale è presente nella stanza e quindi regolare di conseguenza una lampada per raggiungere una luminosità adeguata.
Senza utilizzare formule e grafici, per poter capire che valore viene restituito dal sensore ad una determinata luminosità possiamo scoprirlo in modo “empirico”.
Possiamo ad esempio registrare il valore (in uscita dal sensore) in tre momenti diversi della giornata ad esempio, al mattino (quando la luce del sole è più intensa), prima del tramonto, e dopo il tramonto. In questo caso avremo tre valori diversi di illuminazione naturale.
A questo punto non dovremmo far altro che decidere a quale valore di illuminazione deve rimanere costante la nostra stanza. Se la luce naturale supera la soglia da noi impostata allora la lampada deve rimanere spenta (in quanto c’è sufficiente luce).
Quando la luce naturale scende sotto la soglia prestabilita allora la lampada si accenderà lentamente fino a quando, dopo il tramonto, la luce naturale sarà assente e la lampada sarà accesa completamente.
STAZIONE METEREOLOGICA
È possibile anche monitorare temperatura, pressione, umidità e qualità dell’aria della vostra casa con Raspberry. Per questo progetto i sensori più adatti sono i seguenti:
- Breakout Sensore Qualità dell’Aria SGP30 di Pimoroni
- Breakout BME280: Sensore di Temperatura, Pressione, Umidità.
Il primo sensore, come dice il nome misura la qualità dell’aria ovvero misura la quantità di TVOC (composti organici volatili) e la presenza di CO2 (anidride carbonica).
Una volta acquisiti i dati dai due sensori potete visualizzarli su un display o un monitor ed indicare dei livelli di soglia oltre i quali non è consigliato andare, avvisandoti tramite un messaggio sul cellulare o una spia luminosa se un parametro supera la soglia impostata.
ALLARME CON SENSORE DI MOVIMENTO
Con questo progetto è possibile controllare il movimento di una porta, una finestra e avvisarvi se viene aperta o chiusa. Il sensore adatto a questo scopo è il MSA301 3DoF Breakout Sensore di Movimento
È un accelerometro a tre assi che vi restituirà informazioni sull’accelerazione con cui un oggetto viene spostato lateralmente, in altezza e in profondità.
Potete ad esempio installarlo su una porta e quando essa verrà aperta il sensore rileverà un’accelerazione e potrete azionare un allarme, che può essere un segnale sonoro, un messaggio sul cellulare o un’e-mail.
CONCLUSIONE
Come abbiamo potuto constatare, Raspberry è un dispositivo dalle molteplici possibilità.
Sia che lo vogliate utilizzare come computer sia che lo vogliate utilizzare come parte principale di un vostro progetto unito ai suoi sensori, Raspberry non vi deluderà, consentendovi una maggiore creatività e possibilità di creare i vostri progetti in modo semplice e divertente.