Tag Archives: Arduino

Raspberry PI vs. ArduinoLuglio 11, 2015

 

Relegate per lungo tempo al buio dei garages dei Makers che le hanno utilizzate per dare vita ad ogni sorta di oggetto, le schede Raspberry PI ed Arduino sono uscite alla luce del sole e attualmente sono state prese in considerazione anche dal mondo professionale soprattutto per velocizzare alcune fasi della prototipazione elettronica.

Proprio in questa nuova veste Gemax consulting ha preso in considerazione Raspberry PI ed Arduino per coadiuvare i propri clienti nelle fasi preliminari di prototipazione dei progetti in fase iniziale. Abbiamo dunque ritenuto utile, analizzare brevemente in questo articolo, le differenze salienti delle due piattaforme, per evidenziare le caratteristiche peculiari che potrebbero indirizzarne la scelta.

A prima vista scorrendo le caratteristiche principali di entrambe le piattaforme verrebbe da pensare che la partita tra Raspberry PI ed Arduino non sia giocata ad armi pari. Basti solo prendere in considerazione per esempio la velocità del processore di Raspberry PI pari 900Mz rispetto a quella di Arduino di appena 16Mz ed il fatto che il primo è un SoC (system on a chip) che permette di supportare una versione completa di linux, mentre il secondo è un microcontrollore con a disposizione una nutrita schiera di schede di espansione ma di limitate prestazioni.

Per questi motivi al momento della presentazione di Raspberry PI molti avevano giudicato Ardiuno come un prodotto superato ed obsoleto, ma andando più a fondo ci si rende che le cose non stanno proprio così, in quanto entrambi hanno ottime frecce al proprio arco per soddisfare esigenze specifiche.

Raspberry PI

RaspberryPI

Una piattaforma generalista per tutti gli scopi e tutte le applicazioni Raspberry PI è un computer a tutti gli effetti con processore dedicato, memoria RAM ed un driver grafico con uscita HDMI. Quasi sempre carica una versione dedicata ma completa dal sistema operativo Linux che permette di installare facilmente molti software già esistenti ma anche di realizzare applicazioni personalizzate basate su questo sistema operativo.

Raspberry PI non ha una flash interna per memorizzare il sistema operativo ed i programmi ma si deve utilizzare una SD card. Questo rende molto semplice, in fase di sviluppo e debug, passare da una immagine ad un’altra con differenti configurazioni e/o versioni di programmi installati.

A causa della connettività di rete indipendente del dispositivo è anche possibile configurarlo per l’accesso tramite SSH o trasferite file ad esso via FTP.

Arduino

Arduino

Semplice piattaforma basata su un microcontrollore, Arduino non è dunque un computer completo e per questo non può mettere in esecuzione un sistema operativo completo ma semplicemente eseguire un codice che il suo firmware è in grado di interpretare. Questa semplice struttura non permette dunque di avere accesso a tutte le funzionalità di base messe a disposizione da un sistema operativo ma l’esecuzione diretta del codice scritto permette un semplice e diretto controllo dell’hardware disponibile senza l’inevitabile overhead di un sistema operativo.

Il principale campo di applicazione di Arduino è all’interno di progetti che richiedano l’interfacciamento di sensori, dispositivi ed attuatori, dove la presenza di un sistema operativo potrebbe essere di intralcio per la gestione in tempo reale.

Alimentazione

I due sistemi hanno requisiti molto differenti tra loro. Raspberry PI richiede una alimentazione costante di 5V per rimanere accesso ed inoltre dovrebbe essere spento con uno shut down software come un computer tradizionale. Arduino invece comincia l’esecuzione del codice quando viene alimentato e termina quando viene disalimentato. Richiede una alimentazione compresa tra i 4,5V ed i 5,5V per cui non è necessario inserire una elettronica di alimentazione stabilizzata.

La portabilità, cioè la possibilità di essere alimentato attraverso batterie, risulta semplificata su Arduino in quanto non è necessario prevedere una elettronica di stabilizzazione dell’alimentazione e soprattutto non ci si deve preoccupare della mancanza di alimentazione imprevista in quanto non avendo un sistema operativo caricato non vi è alcun pericolo di corruzione di files. Cosa che invece potrebbe accadere utilizzando Raspberry PI.

Networking

Raspberry PI dispone di una Ethernet seriale integrata nella scheda che permette una facile configurazione e accesso alla rete. In caso di collegamento ad una rete wireless sarà sufficiente utilizzare un dispositivo USB Wi-Fi ed installare il corrispondente driver nel sistema operativo linux. Una volta connessi alla rete si ha disposizione un computer a tutti gli effetti dunque sarà possibile utilizzarne tutte le prerogative ben note, per esempio si può utilizzare Rapberry PI come VPN oppure print server.

Arduino non è stato costruito per essere collegato alla rete direttamente, per cui non ha una porta Ethernet integrata sulla scheda, si deve ricorrere ad una sheald esterna dotata di un proprio processore che deve essere pilotata attraverso delle librerie software aggiuntive.

Sensori

Entrambe i sistemi hanno delle porte di ingresso/uscita per pilotare sensori di vario genere ma sicuramente la gestione di questi ultimi è di molto semplificata utilizzando Arduino in quanto il microcontrollore integra già un serie di porte specializzate alla lettura e/o attuazione di segnali elettrici così che la gestione degli stessi tramite il codice risulta di gran lunga semplificata.

Raspberry PI d’altro canto è in grado di sopportare elaborazioni software molto più complicate e dunque non è raro il caso di trovarli entrambi utilizzati in progetti più complessi in cui la parte di acquisizione del dato ed attuazione vengano demandati ad Arduino e la parte di interfaccia utente ed elaborazione lasciata a Raspberry PI.

In conclusione

Quale è la piattaforma migliore? A questa domanda non esiste dunque una risposta univoca molto dipende dal tipo di progetto che si deve affrontare.

Quando si deve scegliere Arduino? Quando l’obbiettivo principale del progetto è quello di leggere dei sensori, cambiare valori elettrici per gestire motori, interfacciarsi con dispositivi elettronici. Dato il basso consumo di energia e la bassissima manutenzione richiesta Arduino è la giusta scelta quando il dispositivo deve rimanere accesso costantemente e funzionare senza interazione da parte dell’utente.

Quando si deve scegliere Raspberry PI? Quando c’è la necessita di gestire il progetto attraverso un computer vero e proprio. Un esempio per tutti quando si ha la necessità di fornire una interfaccia utente ed elaborare dati con una certa velocità.

In alcuni casi più complessi la scelta migliore è non scegliere, ma utilizzarli entrambi, ognuno al meglio delle proprie caratteristiche. In particolare si potrà utilizzare Arduino quale scheda di controllo a basso livello dei segnali da acquisire e/o attuare, mentre a Raspberry PI verrà demandata la parte di interazione con l’utente e la gestione del sistema a livello di set dei segnali.

ArduinoPLUSRaspberry

Questa collaborazione richiede dunque la necessità di instaurare un collegamento tra le due piattaforme. Ci sono varie opzioni per poterle collegare insieme, per esempio si può utilizzare la porta USB, o la porta ETHERNET oppure ancora utilizzare alcune porte di I/O. Anche in questo caso la scelta molto dipende da quanto è richiesto dalle specifiche di progetto.