SlideShare una empresa de Scribd logo
1 de 13
Archive All • Download Newest
Arduino&Raspberrypi

Tutorial: store Arduino data with RaspBerry PI to MySql | Daviom
daviom.com
Arduino (hardware) - Wikipedia
it.wikipedia.org
Raspberry Pi - Wikipedia
it.wikipedia.org
Archive All • Download Newest
Tutorial: store Arduino data with RaspBerry PI to MySql | Daviom

daviom.com
Type of post: tutorial Target Audience: programmer, Arduinoers, casual geeks
Requisites: knowledge of sql, Python, Arduino code (Java) Keywords: Arduino,
RaspBerry Pi, PHP, Tutorial, Linux Material needed: an Arduino Board (Uno or Due) and
a temperature sensor, a RaspBerry PI with RaspBian OS In this tutorial you will learn
how to connect an analog input to your Arduino Board (like a temperature sensor) and to
send the data to a RaspBerry PI, then, thanks to a Python script, you will store the data
received into a MySql database for further use.
Spoiler alert: this tutorial is a project realised during an Arduino workshop
@inthefab www.thefab.org
//Build a temperature sensor with Arduino

First, build a simple temperature sensor: if you use Fritzing you can find an
example in File -> Open Example -> Arduino -> Sensors -> Temperature Sensor. Either
way, you can skip all the LEDs and build it as shown here
SPECIAL_IMAGE-http://www.daviom.com/wpcontent/uploads/2013/04/TemperaturSensor-daviom1.png-REPLACE_ME
We are
using an LM35 sensor: if you use a different one, please adjust the code. The important
part here is to read the data so we will focus on that.
Ok, so what we have here is a simple sensor in our board. We receive what the
sensor reads and we print it together with an identifier key. This key is crucial for security
issues: since we will put our data in a database the key will be the identifier of our project
(we will store that key into a MySql table but more on that later).
If you connect the board and upload to code as you would normally you should
see on the Serial Monitor of the Arduino IDE the temperature and the key.
//Install a LAMP server on your RaspBerry PI

Now, on the RaspBerry PI side: we assume that you have already installed
MySql, Python and Apache. If not, follow this nice tutorial:
In order to access your RaspBerry PI you have 2 choices: either you connect a
monitor or you can ssh via a Terminal. To do the latter you have to open a Terminal
window and ssh pi@IP_ADDRESS; if you don’t know the IP address of your RaspBerry
PI, you can scan for it using the PI Finder script (only for MAC users) that you find on
ivanx.com ; when prompted for password, the default one for RaspBian is “raspberry”.
Ok, now that you have a LAMP server (the “P” of PHP is not really needed here
but if you want to use the database later it could be useful) let’s create the database.
//Create the tables in MySQL
First, here’s what we will do: we will create 2 tables. One will store all our
projects and the other one will store all the data (this will result in a huge table so if you
want to scale this thing up you’ll have to come up with a different solution). This is the
schema:
SPECIAL_IMAGE-http://www.daviom.com/wp-content/uploads/2013/04/daviom-dbraspberry1.png-REPLACE_ME
On the Terminal / Shell of the raspberry pi type
mysql -u root -p and put your password when asked for it. You should see mysql >
then type:
Remember the identifier “xyz123″ that we print on the Arduino port? Let’s insert
it into the table ard_project
//Listen to the Arduino port with Python and store data in MySQL

Ok, pause. We have an Arduino Board that prints on a port the value of a
thermometer together with a project identifier. We also have a database to store the value
and to check if the Arduino Project is “authorised” via our identifier. By the way, if you
have different boards or projects you can connect them and assign different identifiers so
that you will be able to easily query the one you were looking for.
What we are missing here is a way to connect everything, and here it comes the
Python script. Python is already pre-installed in RaspBian so you should not have
problems.
For our script you will need 2 libraries: pySerial and MySQLdb. In order to check
if you have them type python in your console and you should see: >>> then type import
serial (then enter) and import MySQLdb. If nothing happens you are ready to go, if not
check http://pyserial.sourceforge.net/ in order to install pySerial and http://mysqlpython.sourceforge.net/MySQLdb.html for MySQLdb.
Next, connect your Arduino Board to RaspBerry and create a new file on it (put
it where you want, maybe it’s easier in the Document folder for testing purposes) with
sudo nano arduino2mysql.py and copy-paste (adapting to your needs, of course):
So what the code does is that it listen for the port for 50 times and pause 2
seconds after each iteration for a total of 100 seconds.
In order to test it go where you have created your Python script and type python
arduino2mysql.py
That’s it. You have created an Arduino 2 RaspBerry PI 2 Mysql workflow. You
can now extend it using PHP and build your own webservice on top. If you have
questions do not hesitate to contact us!
daviom.com
Arduino (hardware) - Wikipedia

it.wikipedia.org
SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/3/38/Arduino_Le
onardo.jpg/250px-Arduino_Leonardo.jpg-REPLACE_ME Arduino è una scheda
elettronica di piccole dimensioni con un microcontrollore e circuiteria di contorno, utile
per creare rapidamente prototipi e per scopi hobbistici e didattici. Con Arduino si possono
realizzare in maniera relativamente rapida e semplice piccoli dispositivi come controllori
di luci, di velocità per motori, sensori di luce, temperatura e umidità e molti altri progetti
che utilizzano sensori, attuatori e comunicazione con altri dispositivi. Arduino è fornito
con un semplice ambiente di sviluppo integrato per la programmazione. Tutto il software
a corredo di Arduino è libero, e gli schemi circuitali sono distribuiti come hardware
libero.
Dopo la sua nomina a CEO di Intel Brian Krzanich decide che la società produrrà
schede Arduino dotate di processore Intel. Per la prima volta un colosso americano decide
di avvicinarsi al mondo dell'open hardware.
Arduino comprende una piattaforma hardware per il physical computing
sviluppata presso l'Interaction Design Institute, un istituto di formazione post-dottorale
con sede a Ivrea, fondato da Olivetti e Telecom Italia[1]. Il nome della scheda deriva da
quello di un bar di Ivrea (che richiama a sua volta il nome di Arduino d'Ivrea, Re d'Italia
nel 1002) frequentato da alcuni dei fondatori del progetto[2].
Questa si basa su un circuito stampato che integra un microcontrollore con pin
connessi alle porte I/O, un regolatore di tensione e quando necessario un'interfaccia USB
che permette la comunicazione con il computer. A questo hardware viene affiancato un
ambiente di sviluppo integrato (IDE) multipiattaforma (per Linux, Apple Macintosh e
Windows). Questo software permette anche ai novizi di scrivere programmi con un
linguaggio semplice e intuitivo derivato da C e C++ chiamato Wiring, liberamente
scaricabile e modificabile.
Arduino può essere utilizzato per lo sviluppo di oggetti interattivi stand-alone e
può anche interagire, tramite collegamento, con software residenti su computer, come
Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider, Vvvv.
La piattaforma hardware Arduino è spesso distribuita agli hobbisti in versione
pre-assemblata, acquistabile in internet o in negozi specializzati. La particolarità del
progetto è che le informazioni sull'hardware e soprattutto i progetti sono disponibili per
chiunque: si tratta quindi di un hardware open source, distribuito nei termini della licenza
Creative Commons Attribution-ShareAlike 2.5[3]. In questo modo, chi lo desidera può
legalmente auto-costruirsi un clone di Arduino o derivarne una versione modificata,
scaricando gratuitamente lo schema elettrico e l'elenco dei componenti elettronici
necessari[3]. Questa possibilità ha consentito lo sviluppo di prodotti Arduino compatibili
da parte di piccole e medie aziende in tutto il mondo, quindi oggi è possibile scegliere tra
un'enorme quantità di schede Arduino compatibili. Ciò che accomuna questi prodotti
inerenti elettronica sperimentale e sviluppo è il codice sorgente per l'ambiente di sviluppo
integrato e la libreria residente che sono resi disponibili, e concessi in uso, secondo i
termini legali di una licenza libera, GPLv2.
Grazie alla base software comune ideata dai creatori del progetto, per la comunità
Arduino è stato possibile sviluppare programmi per connettere a questo hardware più o
meno qualsiasi oggetto elettronico, computer, sensori, display o attuatori. Dopo anni di
sperimentazione è oggi possibile fruire di un database di informazioni vastissimo.
Il team di Arduino è composto da Massimo Banzi, David Cuartielles, Tom Igoe,
Gianluca Martino, e David Mellis. Il progetto prese avvio in Italia a Ivrea nel 2005, con
lo scopo di rendere disponibile, a progetti di Interaction design realizzati da studenti, un
dispositivo per il controllo che fosse più economico rispetto ai sistemi di prototipazione
allora disponibili. I progettisti riuscirono a creare una piattaforma di semplice utilizzo ma
che, al tempo stesso, permetteva una significativa riduzione dei costi rispetto ad altri
prodotti disponibili sul mercato. A ottobre 2008 in tutto il mondo erano già stati venduti
più di 50.000 esemplari di Arduino.
SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/4/4e/ArduinoBre
adboard.jpeg/220px-ArduinoBreadboard.jpeg-REPLACE_ME
SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/it/thumb/1/15/Arduino_uno.jpg/22
0px-Arduino_uno.jpg-REPLACE_ME
SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/1/17/Arduino_Di
ecimila.jpg/220px-Arduino_Diecimila.jpg-REPLACE_ME
SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Arduino_Du
emilanove_retro.JPG/220px-Arduino_Duemilanove_retro.JPG-REPLACE_ME
SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/9/92/Flexible_Lil
ypad_Arduino.jpg/220px-Flexible_Lilypad_Arduino.jpg-REPLACE_ME L'hardware
originale Arduino è interamente realizzato in Italia dalla Smart Projects, mentre i cloni
della scheda possono essere realizzati da chiunque in qualsiasi parte del mondo.
Una scheda Arduino tipica consiste in un microcontrollore a 8-bit AVR prodotto
dalla Atmel, con l'aggiunta di componenti complementari per facilitarne l'incorporazione
in altri circuiti. In queste schede sono usati chip della serie megaAVR - nello specifico i
modelli ATmega8, ATmega168, ATmega328, ATmega1280 e ATmega2560.
Molte schede includono un regolatore lineare di tensione a 5 volt e un oscillatore
a cristallo a 16 MHz, sebbene alcune implementazioni, come ad esempio la piccola
LilyPad[4], abbiano un clock di 8 MHz e facciano a meno dello stabilizzatore di tensione.
Fino a oggi sono state commercializzate 14 versioni dell'hardware Arduino.[3]
Serial Arduino, programmata con una porta seriale DB9. Fa uso del
microcontroller ATmega8
Arduino Extreme, con interfaccia di programmazione USB, facente uso del chip
ATmega8
Arduino Mini, una versione in miniatura facente uso di un ATmega168 a
montaggio superficiale
Arduino Nano, una versione ancora più piccola della Mini, utilizzante lo stesso
controller ATmega168 SMD e alimentata tramite USB
LilyPad Arduino, un progetto minimalista (scheda circolare dal diametro di
50mm, per circa 8mm di spessore), per applicazione su indumenti, con lo stesso
ATmega168 in versione SMD[4]
Arduino NG, con un'interfaccia USB per programmare e usare un ATmega8
Arduino NG plus, con interfaccia di programmazione USB, con un ATmega168
Arduino BT, con interfaccia di programmazione Bluetooth e con un ATmega168
Arduino Diecimila, con interfaccia di programmazione USB e con un ATmega168
in un package DIL28
Arduino Duemilanove, facente uso del chip Atmega168 (o Atmega328 nelle
versioni più recenti) e alimentata in corrente continua tramite USB, con commutazione
automatica tra le sorgenti di alimentazione
Arduino Mega, che fa uso di un ATmega1280 a montaggio superficiale per I/O e
memoria addizionale.
Arduino Uno, evoluzione della Duemilanove con un differente chip,
programmabile e più economico, dedicato alla conversione USB-seriale.
Arduino Mega2560, che fa uso di un ATmega2560 ed è un'evoluzione
dell'Arduino Mega.
Arduino Due, che fa uso di un Atmel SAM3X8E ARM Cortex-M3 CPU.
In alcuni casi il microcontroller della scheda è pre-programmato con un
bootloader che semplifica il caricamento dei programmi sulla memoria flash incorporata
nel chip.
A livello concettuale, tutte le schede sono programmate attraverso una porta
seriale RS-232, ma il modo in cui questa funzionalità è implementata nell'hardware varia
da versione a versione. Le schede seriali Arduino contengono un semplice circuito
inverter che permette la conversione tra il livello della RS-232 e il livello dei segnali
TTL.
Le versioni attuali di Arduino sono gestite via USB: la versione Uno utilizza un
microcontrollore Atmega8U2 programmato come convertitore USB-seriale mentre le
precedenti versioni Diecimila e Duemilanove usavano chip adattatori USB-seriale, come
gli FT232 di FTDI. Alcune varianti, come la Arduino Mini e la versione non ufficiale
Boarduino, usano una scheda o un cavo adattatore USB-seriale staccabile.
Per implementare il comportamento interattivo, Arduino è fornita di funzionalità
di input/output (I/O), grazie alle quali essa riceve i segnali raccolti da sensori esterni. Il
comportamento della scheda è gestito dal microcontroller in base ai valori provenienti dai
sensori e alle decisioni determinate dal particolare programma in esecuzione in quel
momento sulla scheda. L'interazione con l'esterno avviene attraverso attuatori pilotati dal
programma attraverso i canali di output in dotazione.
A tale scopo, Arduino è dotata di molti dei connettori di input/output per
microcontroller in uso su altri circuiti. Tutti i pin di I/O sono collocati sulla parte
superiore della scheda mediante connettori femmina da 0,1". Inoltre sono disponibili
commercialmente molte schede applicative plug-in, note come "shields".
Le schede Barebones e Boarduino, due cloni compatibili con la Arduino, sono
dotate di connettori maschio sul lato inferiore del circuito in modo da poter essere
connesse a una breadboard senza necessità di effettuare saldature.
I/O digitale La Arduino Uno, ad esempio, che ha soppiantato la Duemilanove, offre 14
connettori per l'I/O digitale (numerati da 0 a 13). La direzione di funzionamento, input o
output, è decisa dallo sketch programmato sull'IDE.
Sei dei canali I/O possono produrre segnali Pulse-width modulation (PWM).
Attraverso i segnali PWM è possibile, ad esempio, regolare l'intensità di luminosità di un
LED o la velocità di rotazione di un motorino elettrico[5]. L'hardware di tre dei pin di I/O
(9, 10 e 11) implementa la possibilità di gestirli direttamente attraverso la funzione
analogWrite(), che permette di controllare la PWM del segnale in uscita in maniera
efficiente, senza dover eseguire linee di codice appositamente predisposte[6]. La funzione
accetta due parametri, il primo dei quali è il pin pilotato mentre il secondo rappresenta
l'intensità della modulazione (espressa su una scala da 0 a 255): così, ad esempio,
analogWrite(9, 128) attiverà un led collegato al pin 9 al 50% della sua luminosità[7].
I/O analogico Sempre sulla Uno, sono presenti altri 6 connettori specificamente dedicati
a ingressi di segnali analogici (collegati quindi ad una ADC), cioè valori di tensione letti
da sensori esterni i cui valori, fino a un massimo di 5 Volt, sono convertiti in 1024 livelli
discreti (da 0 a 1023). Questi 6 connettori possono essere riprogrammati (sempre dal
codice dello sketch sull'IDE) per funzionare come normali entrate/uscite digitali.
Nella seguente tabella sono riepilogate le dotazioni dell'hardware dei vari modelli:
L'alimentazione della scheda può avvenire attraverso la porta USB del computer,
o attraverso la maggior parte degli alimentatori USB, oppure attraverso un adattatore in
corrente continua a 9 volt, con connettore cilindrico (diametro 2,1 mm e positivo
centrale). In quest'ultimo caso, la scheda commuta automaticamente sull'alimentazione
esterna quando il connettore dell'alimentatore esterno è inserito, mentre commuta
autonomamente sull'alimentazione USB in caso di disconnessione del connettore. La
Arduino-NG e la Arduino Diecimila, versioni meno recenti, necessitano di essere
commutate a mano, azionando uno switch ubicato tra la porta USB e l'ingresso
dell'alimentazione esterna.
L'enorme quantità e l'estrema variabilità d'uso e di componenti rendono difficile
definire univocamente una scheda Arduino compatibile. Solitamente, contiene un
microcontroller a 8 16 o 32 bit AVR, PIC o ARM, con clock variabile tra gli 1 e 96 MHz.
Molte schede incorporano componenti aggiuntivi pensati per i più svariati utilizzi.
La programmazione può avvenire tramite il protocollo ISP e un'altra scheda
Arduino utilizzata come programmatore, tramite la usb (in alcuni casi il microcontrollore
contiene usb hardware) oppure grazie a un programmatore esterno dedicato.
SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Arduino_ID
E_-_v0011_Alpha.png/250px-Arduino_IDE_-_v0011_Alpha.png-REPLACE_ME
L'ambiente di sviluppo integrato (IDE) di Arduino è un'applicazione
multipiattaforma scritta in Java, ed è derivata dall'IDE creato per il linguaggio di
programmazione Processing e per il progetto Wiring. È concepita per iniziare alla
programmazione artisti e altri neofiti, che siano a digiuno di pratica nello sviluppo di
software. Per permettere la stesura del codice sorgente, l'IDE include un editore di testo
dotato inoltre di alcune particolarità, come il syntax highlighting, il controllo delle
parentesi, e l'indentazione automatica. L'editor è inoltre in grado di compilare e lanciare il
programma eseguibile in una sola passata e con un solo click. In genere non vi è bisogno
di creare dei Makefile o far girare programmi dalla riga di comando.
Benché gli schemi hardware e il sorgente software siano resi disponibili con
licenze copyleft, il nome Arduino e il logo sono marchi registrati e possono essere usati
solo dietro permesso. Il documento che esprime la politica d'uso del nome "Arduino"
mette l'accento su come il progetto sia aperto a incorporare lavori altrui nel prodotto
ufficiale.[9]
Quale conseguenza di queste convenzioni sulla protezione del nome, un gruppo di
utilizzatori ha effettuato un "fork" (nel senso esteso del termine) dell'Arduino Diecimila,
distribuendo una scheda equivalente chiamata "Freeduino"; il nome volutamente non è
registrato ed è quindi liberamente utilizzabile.
Banzi, Massimo (marzo 2009). Getting Started with Arduino. Make Books (prima
edizione): pp. 128 (in inglese).
Sciamanna, Lucio (2010). [www.sanditlibri.it Arduino il microprocessore per
tutti]. Sandit: pp. 140 (in italiano). ISBN 978-88-95990-71-2
Schmidt, Maik (2011). Il manuale di Arduino. Apogeo: pp. 242 (in italiano).
ISBN 978-88-503-3044-7
Margolis, Michael (2011). Arduino progetti e soluzioni. Tecniche Nuove: pp. 625
(in italiano). ISBN 978-88-481-2539-0
Majocchi, Simone (giugno 2012). Arduino UNO Programmazione avanzata e
Librerie di sistema. Vispa Edizioni: pp. 224 (in italiano). ISBN 978-88-907430-2-3
Commons contiene immagini o altri file su Arduino
it.wikipedia.org
Raspberry Pi - Wikipedia

it.wikipedia.org
Raspberry Pi
SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Raspberry_
Pi_Beta_Board.jpg/350px-Raspberry_Pi_Beta_Board.jpg-REPLACE_ME
Versione beta della scheda, con in vista i connettori GPIO in alto a sinistra Classe di
computer single-board Paese d'origine Regno Unito Produttore Raspberry Pi
Foundation Presentazione 2011 Inizio commercializzazione Inizio 2012[1] Prezzo di
lancio 25 e 35 USD
(GBP ~£16 e ~£22) CPU ARM1176JZF-S 700 MHz[2] Frequenza 700 MHz (overclock
fino a 1 Ghz) FPU 68882 MMU non presente RAM di serie 256 MB o 512 MB Tastiera
incorporata no Display incorporato no Scheda video Broadcom VideoCore IV[2]
Comunicazione Ethernet 10/100 (solo Modello B) Unita ottica no Disco rigido no
Porte 1 USB (2 sul Modello B); 1 Ethernet (Modello B) SO di serie Linux (Debian
GNU/Linux, Fedora e Arch Linux),[3] Sito Web raspberrypi.org Il Raspberry Pi è un
single-board computer (un calcolatore implementato su una sola scheda elettronica)
sviluppato nel Regno Unito dalla Raspberry Pi Foundation. Il suo lancio al pubblico è
avvenuto alla fine del mese di febbraio 2012[1]. Attualmente, viene venduto in due
versioni, al prezzo di 25 e 35 dollari statunitensi.
L'idea di base è la realizzazione di un dispositivo economico, concepito per
stimolare l'insegnamento di base dell'informatica e della programmazione nelle scuole[1]
[4][5][6][7].
Il progetto ruota attorno a un System-on-a-chip (SoC) Broadcom BCM2835[2],
che incorpora un processore ARM1176JZF-S a 700 MHz, una GPU VideoCore IV, e 256
o 512 Megabyte di memoria. Il progetto non prevede né hard disk né una unità a stato
solido, affidandosi invece a una scheda SD per il boot e per la memoria non volatile[8].
La scheda è stata progettata per ospitare sistemi operativi basati su un kernel
Linux o RISC OS[3][9].
Lo sviluppo del dispositivo è portato avanti dalla Raspberry Pi Foundation,
organizzazione di beneficenza registrata presso la Charity Commission for England and
Wales[10]. Il suo scopo è "promuovere lo studio dell'informatica e di argomenti correlati,
soprattutto a livello scolastico, e di riportare uno spirito di divertimento
nell'apprendimento del computer"[11] La fondazione Raspberry Pi promuoverà
principalmente l'apprendimento nel linguaggio di programmazione Python[12][13], ma
sosterrà anche l'uso del BBC BASIC[14], del C[12] e del Perl[12]. Saranno disponibili
molti altri linguaggi[13] supportati da Linux e ARM.
Le prime concezioni del Raspberry Pi, nel 2006, si basavano sul microcontrollore
Atmel ATmega644. Gli schemi e il layout del circuito stampato di questo prototipo sono
disponibili per il download libero e per l'autocostruzione[15] L'amministratore Eben
Upton mise insieme un gruppo di insegnanti, accademici e appassionati di computer, per
concepire un oggetto capace di incoraggiare i bambini, fornendo loro know-how e
ispirazione[16].
La Raspberry Pi Foundation fu fondata nel maggio 2009, a Caldecote, villaggio
del South Cambridgeshire, nel Regno Unito, con lo statuto giuridico di organizzazione
caritatevole registrata, regolata dalla Charity Commission for England and Wales[10].
La prima versione del prototipo basata su ARM era montata su una scheda grande
grosso modo come una chiave USB[17], con una porta USB su un lato e una porta HDMI
sull'altro[17].
Nel mese di agosto 2011 furono realizzate cinquanta versioni alpha della scheda.
Queste schede erano funzionalmente identiche al progettato modello B[18]. Versioni di
prova della scheda mostravano l'ambiente desktop LXDE su Debian, Quake 3 a 1080p,
[19] e video Full HD H.264 su HDMI.[20]
Nel mese di ottobre 2011 vi è stata la scelta del logo all'interno di un numero di
proposte dei membri della comunità: dopo aver stilato una rosa contenente sei proposte,
la scelta finale ha richiesto vari giorni. Il disegno scelto si basava su una buckyball[21].
Nel corso dello stesso mese si stava lavorando a una versione di sviluppo di RISC
OS[22], oggetto di una dimostrazione pubblica[9][23].
Nel mese di dicembre 2011 sono state assemblate e testate un centinaio di versioni
beta del modello B Beta[24]. Il layout della componentistica usato nella versione beta è
lo stesso di quella destinata alla produzione, salvo un errore di sbrogliatura nel progetto
del circuito stampato scoperto e risolto prima di avviare la produzione[25]. Le schede
Beta ebbero una dimostrazione pubblica con avvio da Linux: in quell'occasione veniva
proposta la riproduzione di un trailer a 1080p e l'esecuzione di una demo del benchmark
OpenGL ES Samurai, prodotto dalla finlandese Rightware (ex Futuremark)[17].
Le prime 10 schede furono messe all'asta su eBay nelle prime settimane del
2012[26][27]. Una è stata comprata da un anonimo e donata al museo inglese The Centre
for Computing History, ubicato nel Suffolk[28]. Le dieci schede (il cui prezzo di vendita
totale ammontava a £220) hanno raccolto complessivamente più di £16.000[29], con
l'aggiudicazione dell'ultimo esemplare messo all'asta, etichettato con numero di serie #01,
con una quotazione di £3.500.[30]
Il primo lotto di 10.000 schede è stato prodotto a Taiwan[31] e in Cina[31][32],
anziché nel Regno Unito. Questo è dovuto agli effetti delle politiche dei dazi, dal
momento che i diritti doganali sono dovuti sui singoli componenti ma non sui prodotti
finiti, rendendo poco conveniente l'importazione dei componenti dall'Oriente per il
successivo assemblaggio in Occidente. I fabbricanti cinesi avevano inoltre stimato in 4
settimane i tempi di attesa per l'esecuzione dell'ordine, in confronto alle 12 settimane
richieste nel Regno Unito. I risparmi ottenuti dalla delocalizzazione possono essere
reinvestiti nelle attività di ricerca e sviluppo della fondazione[32].
La vendita del modello B del Rasperberry Pi è partita ufficialmente mercoledì 29
febbraio 2012 alle ore 06:00 GMT: la fondazione non ha condotto una vendita in proprio,
ma si è appoggiata a due grandi distributori specializzati nel campo elettronico, Farnell e
RS Components, anche perché in grado di garantire una distribuzione mondiale più
capillare, grazie alle ramificazioni e alle filiali in vari paesi del globo.
A settembre 2012 è stata annunciata una revisione del PCB. Novità principali
della scheda sono la capacità di ricevere l'alimentazione tramite un Hub USB alimentato
e la disponibilità del debug via JTAG; come novità minori si ha la correzione di un difetto
di collegamento tramite HDMI (lasciando il Raspberry Pi non alimentato su una catena
HDMI, potevano insorgere problemi nell'utilizzo delle funzionalità Consumer Electronics
Control per gli altri dispositivi), il circuito di reset è stato rinnovato, è stato aggiunto un
connettore di espansione addizionale, aggiunti i fori di montaggio e apportate correzioni
alla serigrafia. Sono inoltre presenti cambiamenti ai GPIO e ai canali I2C[33] Si noti che
la dicitura "Raspberry 2.0" comparsa in alcuni siti è concettualmente sbagliata: le
modifiche apportate comportano unicamente la correzione di alcuni dettagli progettuali,
nulla che giustifichi l'incremento nel numero di versione da 1.0 a 2.0, come riportato
anche nel sito del produttore. La scheda ha semplicemente subito una revisione al circuito
che sistema problemi minori, come riportato anche sul sito del produttore:[34] infatti, è il
circuito stampato che è alla seconda versione, non la scheda nel suo complesso che
mantiene gli stessi identici componenti.
SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/0/09/Raspberry_
Pi_board.jpg/350px-Raspberry_Pi_board.jpg-REPLACE_ME
La fondazione
distribuisce due modelli, entrambi dotati di 256 megabyte di RAM: il Model A costa 25
USD, ha una singola porta USB ed è privo di controller Ethernet. Il Model B è
equipaggiato con due porte USB ed un controller Ethernet 10/100[35] e costa 35 Dollari.
A partire del 15 ottobre 2012 il Model B monta 512 Megabyte di RAM[36]
Sebbene il Modello A non abbia una porta Ethernet RJ45, può comunque accedere
a una rete attraverso la porta USB, facendo uso di adattatori Ethernet o Wi-Fi con
alimentazione autonoma. In maniera analoga ai moderni computer, Raspberry Pi è
compatibile con tastiere e mouse generici collegabili tramite porta USB[8].
Raspberry Pi usa il sistema operativo Linux. È previsto in futuro che Raspberry
sia distribuito in bundle con Debian GNU/Linux, Iceweasel, Calligra Suite e Python[1].
Raspberry PI non è fornito di un real-time clock[1], così un sistema operativo
deve usare un network time server, o chiedere l'ora all'utente al bootstrap per avere
accesso a data e ora per la marca temporale. Tuttavia è facile aggiungere un real time
clock (come il DS1307) con batteria tampone, attraverso l'interfaccia I²C.
Model A e Model B sono entrambi riferimenti culturali[42] ai computer britannici
BBC Micro, modelli originali sviluppati dalla Acorn Computers, alla quale si deve anche
l'originario sviluppo dei processori ARM (l'architettura del Raspberry Pi) e del sistema
operativo RISC OS, che sarà in grado di girare su tali piattaforme hardware[9].
Il 19 febbraio 2012, la Raspberry Pi Foundation ha messo a disposizione per il
download un proof of concept di immagine che può essere caricata su SD Card per
produrre un sistema operativo preliminare. L'immagine si basa su Debian 6.0 (Squeeze),
con un ambiente desktop LXDE e un browser Midori, più vari strumenti di
programmazione. L'immagine può anche girare sull'emulatore QEMU, permettendo di
emulare Raspberry Pi su varie altre piattaforme[43]. La Fondazione ha realizzato una
release ottimizzata di Fedora, raccomandandola come sistema operativo[44]. È
disponibile anche una versione di Arch Linux[45]
Esistono distribuzioni per l'utilizzo del Raspberry Pi come Media Center basate su
XBMC: OpenELEC, XBian e RaspBMC.
Il software di monitoraggio di rete Overlook Fing è stato portato su piattaforma
Raspberry Pi[46] rendendo possibile installare sentinelle di monitoraggio a basso costo in
reti remote.
Il software open source Aseba per la programmazione semplice ed efficiente di
robot è disponibile su Raspberry PI. Utilizzando il Raspberry PI in unione con Aseba e il
robot Thymio II è possibile creare a costi veramente contenuti un vero e proprio
laboratorio didattico di Robotica. Il robot Thymio II è stato sviluppato nell'ambito del
programma NCCR Robotics dalla collaborazione tra l'Ecole Polytechnique Fédérale de
Lausanne (EPFL) e l'Ecole Cantonale d'Art de Lausanne (écal).
Mojang e 4J Studios stanno sviluppando una versione di Minecraft per questa
piattaforma.
Dato che il progetto ha come obiettivo la riduzione dei costi, la decodifica in
hardware di alcuni formati multimediali non è supportata perché richiedono una specifica
licenza.
Il dispositivo può riprodurre in hardware formati liberi, quali H.264, mentre per
riprodurre i formati MPEG-2 e VC-1 è possibile acquistare la relativa licenza abilitando
l'hardware alla decodifica.[47][48]
Nel Regno Unito, a gennaio 2012, sono giunte manifestazioni di interesse da parte
di scuole, sia del settore statale sia di quello privato, con un netto sbilanciamento su
quest'ultimo settore, dal quale sono pervenute richieste cinque volte superiori. Si spera
che le aziende sponsorizzino l'acquisto presso le scuole più svantaggiate[16].
(EN) Raspberry Pi Foundation, sito ufficiale della fondazione
(EN) Informazioni tecniche su Raspberry Pi, da eLinux.org
(EN) Broadcom BCM2835 Embedded Multimedia Applications Processor,
broadcom.com
(EN) Boradcom - BCM2835 ARM Peripherals (abbreviated datasheet)
(EN) SMSC LAN9512 USB 2.0 Hub and 10/100 Ethernet Controller, smsc.com
(EN) Article and Video, Article, da BBC.co.uk
(EN) Psst, kid... Wanna learn how to hack? The £25 computer to teach youngsters
real computing skills, The Register
(EN) Raspberry Pi Interview With Eben Upton, da Robots.net
(EN) Blog about Raspberry Pi and ARM based Linux devices
(EN) Raspberry Pi gpio pinout, da Panu.it
Rpy-Italia, portale italiano sul Raspberry PI
it.wikipedia.org
♦
Archive All • Download Newest
Arduino&raspberry pi - Un connubio vincente

Más contenido relacionado

Similar a Arduino&raspberry pi - Un connubio vincente

Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteMirco Sbrollini
 
Makers Italy: VR Neuron la risposta italiana alla piattaforma Raspberry pi
Makers Italy: VR Neuron la risposta italiana alla piattaforma Raspberry piMakers Italy: VR Neuron la risposta italiana alla piattaforma Raspberry pi
Makers Italy: VR Neuron la risposta italiana alla piattaforma Raspberry piRoberto Navoni
 
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012Mirco Piccin
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad ArduinoSimone Lusenti
 
Gam04 introduzione a-netduino_final
Gam04   introduzione a-netduino_finalGam04   introduzione a-netduino_final
Gam04 introduzione a-netduino_finalDotNetCampus
 
Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2Michele Maffucci
 
Arduino - Massimiliano D'Ambrosio
Arduino - Massimiliano D'AmbrosioArduino - Massimiliano D'Ambrosio
Arduino - Massimiliano D'Ambrosiofirenze-gtug
 
Linux Board. Corso di prototipazione rapida
Linux Board. Corso di prototipazione rapidaLinux Board. Corso di prototipazione rapida
Linux Board. Corso di prototipazione rapidaMultiverso
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to ArduinotrevisoAUG
 
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Gabriele Guizzardi
 
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of ThingsMirko Mancin
 
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2CSP Scarl
 
[NALUG] Workshop@UniNA2014: "Quando gli GNU si dopano con il silicio"
[NALUG] Workshop@UniNA2014: "Quando gli GNU si dopano con il silicio"[NALUG] Workshop@UniNA2014: "Quando gli GNU si dopano con il silicio"
[NALUG] Workshop@UniNA2014: "Quando gli GNU si dopano con il silicio"gbr1
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerAlessandro Mascherin
 

Similar a Arduino&raspberry pi - Un connubio vincente (20)

Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolante
 
Makers Italy: VR Neuron la risposta italiana alla piattaforma Raspberry pi
Makers Italy: VR Neuron la risposta italiana alla piattaforma Raspberry piMakers Italy: VR Neuron la risposta italiana alla piattaforma Raspberry pi
Makers Italy: VR Neuron la risposta italiana alla piattaforma Raspberry pi
 
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
Arduino : l'esperienza di IRES FVG - OpenSourceDay2012
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad Arduino
 
Gam04 introduzione a-netduino_final
Gam04   introduzione a-netduino_finalGam04   introduzione a-netduino_final
Gam04 introduzione a-netduino_final
 
Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2Alfabeto di Arduino - lezione 2
Alfabeto di Arduino - lezione 2
 
Arduino - Massimiliano D'Ambrosio
Arduino - Massimiliano D'AmbrosioArduino - Massimiliano D'Ambrosio
Arduino - Massimiliano D'Ambrosio
 
Arduino primo v1
Arduino primo v1Arduino primo v1
Arduino primo v1
 
Linux Board. Corso di prototipazione rapida
Linux Board. Corso di prototipazione rapidaLinux Board. Corso di prototipazione rapida
Linux Board. Corso di prototipazione rapida
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to Arduino
 
Raspberry
RaspberryRaspberry
Raspberry
 
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
 
Arduino day 2017
Arduino day 2017Arduino day 2017
Arduino day 2017
 
Arduino galileo edison_udoo
Arduino galileo edison_udooArduino galileo edison_udoo
Arduino galileo edison_udoo
 
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
 
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2
 
Arduino ICT2016 [IT]
Arduino ICT2016 [IT]Arduino ICT2016 [IT]
Arduino ICT2016 [IT]
 
[NALUG] Workshop@UniNA2014: "Quando gli GNU si dopano con il silicio"
[NALUG] Workshop@UniNA2014: "Quando gli GNU si dopano con il silicio"[NALUG] Workshop@UniNA2014: "Quando gli GNU si dopano con il silicio"
[NALUG] Workshop@UniNA2014: "Quando gli GNU si dopano con il silicio"
 
Internet delle cose
Internet delle coseInternet delle cose
Internet delle cose
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
 

Arduino&raspberry pi - Un connubio vincente

  • 1. Archive All • Download Newest Arduino&Raspberrypi Tutorial: store Arduino data with RaspBerry PI to MySql | Daviom daviom.com Arduino (hardware) - Wikipedia it.wikipedia.org Raspberry Pi - Wikipedia it.wikipedia.org
  • 2. Archive All • Download Newest Tutorial: store Arduino data with RaspBerry PI to MySql | Daviom daviom.com Type of post: tutorial Target Audience: programmer, Arduinoers, casual geeks Requisites: knowledge of sql, Python, Arduino code (Java) Keywords: Arduino, RaspBerry Pi, PHP, Tutorial, Linux Material needed: an Arduino Board (Uno or Due) and a temperature sensor, a RaspBerry PI with RaspBian OS In this tutorial you will learn how to connect an analog input to your Arduino Board (like a temperature sensor) and to send the data to a RaspBerry PI, then, thanks to a Python script, you will store the data received into a MySql database for further use. Spoiler alert: this tutorial is a project realised during an Arduino workshop @inthefab www.thefab.org //Build a temperature sensor with Arduino First, build a simple temperature sensor: if you use Fritzing you can find an example in File -> Open Example -> Arduino -> Sensors -> Temperature Sensor. Either way, you can skip all the LEDs and build it as shown here SPECIAL_IMAGE-http://www.daviom.com/wpcontent/uploads/2013/04/TemperaturSensor-daviom1.png-REPLACE_ME We are using an LM35 sensor: if you use a different one, please adjust the code. The important part here is to read the data so we will focus on that. Ok, so what we have here is a simple sensor in our board. We receive what the sensor reads and we print it together with an identifier key. This key is crucial for security issues: since we will put our data in a database the key will be the identifier of our project (we will store that key into a MySql table but more on that later). If you connect the board and upload to code as you would normally you should see on the Serial Monitor of the Arduino IDE the temperature and the key. //Install a LAMP server on your RaspBerry PI Now, on the RaspBerry PI side: we assume that you have already installed MySql, Python and Apache. If not, follow this nice tutorial: In order to access your RaspBerry PI you have 2 choices: either you connect a monitor or you can ssh via a Terminal. To do the latter you have to open a Terminal window and ssh pi@IP_ADDRESS; if you don’t know the IP address of your RaspBerry PI, you can scan for it using the PI Finder script (only for MAC users) that you find on ivanx.com ; when prompted for password, the default one for RaspBian is “raspberry”. Ok, now that you have a LAMP server (the “P” of PHP is not really needed here but if you want to use the database later it could be useful) let’s create the database. //Create the tables in MySQL
  • 3. First, here’s what we will do: we will create 2 tables. One will store all our projects and the other one will store all the data (this will result in a huge table so if you want to scale this thing up you’ll have to come up with a different solution). This is the schema: SPECIAL_IMAGE-http://www.daviom.com/wp-content/uploads/2013/04/daviom-dbraspberry1.png-REPLACE_ME On the Terminal / Shell of the raspberry pi type mysql -u root -p and put your password when asked for it. You should see mysql > then type: Remember the identifier “xyz123″ that we print on the Arduino port? Let’s insert it into the table ard_project //Listen to the Arduino port with Python and store data in MySQL Ok, pause. We have an Arduino Board that prints on a port the value of a thermometer together with a project identifier. We also have a database to store the value and to check if the Arduino Project is “authorised” via our identifier. By the way, if you have different boards or projects you can connect them and assign different identifiers so that you will be able to easily query the one you were looking for. What we are missing here is a way to connect everything, and here it comes the Python script. Python is already pre-installed in RaspBian so you should not have problems. For our script you will need 2 libraries: pySerial and MySQLdb. In order to check if you have them type python in your console and you should see: >>> then type import serial (then enter) and import MySQLdb. If nothing happens you are ready to go, if not check http://pyserial.sourceforge.net/ in order to install pySerial and http://mysqlpython.sourceforge.net/MySQLdb.html for MySQLdb. Next, connect your Arduino Board to RaspBerry and create a new file on it (put it where you want, maybe it’s easier in the Document folder for testing purposes) with sudo nano arduino2mysql.py and copy-paste (adapting to your needs, of course): So what the code does is that it listen for the port for 50 times and pause 2 seconds after each iteration for a total of 100 seconds. In order to test it go where you have created your Python script and type python arduino2mysql.py That’s it. You have created an Arduino 2 RaspBerry PI 2 Mysql workflow. You can now extend it using PHP and build your own webservice on top. If you have questions do not hesitate to contact us! daviom.com
  • 4. Arduino (hardware) - Wikipedia it.wikipedia.org SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/3/38/Arduino_Le onardo.jpg/250px-Arduino_Leonardo.jpg-REPLACE_ME Arduino è una scheda elettronica di piccole dimensioni con un microcontrollore e circuiteria di contorno, utile per creare rapidamente prototipi e per scopi hobbistici e didattici. Con Arduino si possono realizzare in maniera relativamente rapida e semplice piccoli dispositivi come controllori di luci, di velocità per motori, sensori di luce, temperatura e umidità e molti altri progetti che utilizzano sensori, attuatori e comunicazione con altri dispositivi. Arduino è fornito con un semplice ambiente di sviluppo integrato per la programmazione. Tutto il software a corredo di Arduino è libero, e gli schemi circuitali sono distribuiti come hardware libero. Dopo la sua nomina a CEO di Intel Brian Krzanich decide che la società produrrà schede Arduino dotate di processore Intel. Per la prima volta un colosso americano decide di avvicinarsi al mondo dell'open hardware. Arduino comprende una piattaforma hardware per il physical computing sviluppata presso l'Interaction Design Institute, un istituto di formazione post-dottorale con sede a Ivrea, fondato da Olivetti e Telecom Italia[1]. Il nome della scheda deriva da quello di un bar di Ivrea (che richiama a sua volta il nome di Arduino d'Ivrea, Re d'Italia nel 1002) frequentato da alcuni dei fondatori del progetto[2]. Questa si basa su un circuito stampato che integra un microcontrollore con pin connessi alle porte I/O, un regolatore di tensione e quando necessario un'interfaccia USB che permette la comunicazione con il computer. A questo hardware viene affiancato un ambiente di sviluppo integrato (IDE) multipiattaforma (per Linux, Apple Macintosh e Windows). Questo software permette anche ai novizi di scrivere programmi con un linguaggio semplice e intuitivo derivato da C e C++ chiamato Wiring, liberamente scaricabile e modificabile. Arduino può essere utilizzato per lo sviluppo di oggetti interattivi stand-alone e può anche interagire, tramite collegamento, con software residenti su computer, come Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider, Vvvv. La piattaforma hardware Arduino è spesso distribuita agli hobbisti in versione pre-assemblata, acquistabile in internet o in negozi specializzati. La particolarità del progetto è che le informazioni sull'hardware e soprattutto i progetti sono disponibili per chiunque: si tratta quindi di un hardware open source, distribuito nei termini della licenza Creative Commons Attribution-ShareAlike 2.5[3]. In questo modo, chi lo desidera può legalmente auto-costruirsi un clone di Arduino o derivarne una versione modificata, scaricando gratuitamente lo schema elettrico e l'elenco dei componenti elettronici necessari[3]. Questa possibilità ha consentito lo sviluppo di prodotti Arduino compatibili da parte di piccole e medie aziende in tutto il mondo, quindi oggi è possibile scegliere tra un'enorme quantità di schede Arduino compatibili. Ciò che accomuna questi prodotti inerenti elettronica sperimentale e sviluppo è il codice sorgente per l'ambiente di sviluppo integrato e la libreria residente che sono resi disponibili, e concessi in uso, secondo i termini legali di una licenza libera, GPLv2.
  • 5. Grazie alla base software comune ideata dai creatori del progetto, per la comunità Arduino è stato possibile sviluppare programmi per connettere a questo hardware più o meno qualsiasi oggetto elettronico, computer, sensori, display o attuatori. Dopo anni di sperimentazione è oggi possibile fruire di un database di informazioni vastissimo. Il team di Arduino è composto da Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, e David Mellis. Il progetto prese avvio in Italia a Ivrea nel 2005, con lo scopo di rendere disponibile, a progetti di Interaction design realizzati da studenti, un dispositivo per il controllo che fosse più economico rispetto ai sistemi di prototipazione allora disponibili. I progettisti riuscirono a creare una piattaforma di semplice utilizzo ma che, al tempo stesso, permetteva una significativa riduzione dei costi rispetto ad altri prodotti disponibili sul mercato. A ottobre 2008 in tutto il mondo erano già stati venduti più di 50.000 esemplari di Arduino. SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/4/4e/ArduinoBre adboard.jpeg/220px-ArduinoBreadboard.jpeg-REPLACE_ME SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/it/thumb/1/15/Arduino_uno.jpg/22 0px-Arduino_uno.jpg-REPLACE_ME SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/1/17/Arduino_Di ecimila.jpg/220px-Arduino_Diecimila.jpg-REPLACE_ME SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Arduino_Du emilanove_retro.JPG/220px-Arduino_Duemilanove_retro.JPG-REPLACE_ME SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/9/92/Flexible_Lil ypad_Arduino.jpg/220px-Flexible_Lilypad_Arduino.jpg-REPLACE_ME L'hardware originale Arduino è interamente realizzato in Italia dalla Smart Projects, mentre i cloni della scheda possono essere realizzati da chiunque in qualsiasi parte del mondo. Una scheda Arduino tipica consiste in un microcontrollore a 8-bit AVR prodotto dalla Atmel, con l'aggiunta di componenti complementari per facilitarne l'incorporazione in altri circuiti. In queste schede sono usati chip della serie megaAVR - nello specifico i modelli ATmega8, ATmega168, ATmega328, ATmega1280 e ATmega2560. Molte schede includono un regolatore lineare di tensione a 5 volt e un oscillatore a cristallo a 16 MHz, sebbene alcune implementazioni, come ad esempio la piccola LilyPad[4], abbiano un clock di 8 MHz e facciano a meno dello stabilizzatore di tensione. Fino a oggi sono state commercializzate 14 versioni dell'hardware Arduino.[3] Serial Arduino, programmata con una porta seriale DB9. Fa uso del microcontroller ATmega8 Arduino Extreme, con interfaccia di programmazione USB, facente uso del chip ATmega8 Arduino Mini, una versione in miniatura facente uso di un ATmega168 a montaggio superficiale Arduino Nano, una versione ancora più piccola della Mini, utilizzante lo stesso controller ATmega168 SMD e alimentata tramite USB LilyPad Arduino, un progetto minimalista (scheda circolare dal diametro di 50mm, per circa 8mm di spessore), per applicazione su indumenti, con lo stesso ATmega168 in versione SMD[4] Arduino NG, con un'interfaccia USB per programmare e usare un ATmega8 Arduino NG plus, con interfaccia di programmazione USB, con un ATmega168
  • 6. Arduino BT, con interfaccia di programmazione Bluetooth e con un ATmega168 Arduino Diecimila, con interfaccia di programmazione USB e con un ATmega168 in un package DIL28 Arduino Duemilanove, facente uso del chip Atmega168 (o Atmega328 nelle versioni più recenti) e alimentata in corrente continua tramite USB, con commutazione automatica tra le sorgenti di alimentazione Arduino Mega, che fa uso di un ATmega1280 a montaggio superficiale per I/O e memoria addizionale. Arduino Uno, evoluzione della Duemilanove con un differente chip, programmabile e più economico, dedicato alla conversione USB-seriale. Arduino Mega2560, che fa uso di un ATmega2560 ed è un'evoluzione dell'Arduino Mega. Arduino Due, che fa uso di un Atmel SAM3X8E ARM Cortex-M3 CPU. In alcuni casi il microcontroller della scheda è pre-programmato con un bootloader che semplifica il caricamento dei programmi sulla memoria flash incorporata nel chip. A livello concettuale, tutte le schede sono programmate attraverso una porta seriale RS-232, ma il modo in cui questa funzionalità è implementata nell'hardware varia da versione a versione. Le schede seriali Arduino contengono un semplice circuito inverter che permette la conversione tra il livello della RS-232 e il livello dei segnali TTL. Le versioni attuali di Arduino sono gestite via USB: la versione Uno utilizza un microcontrollore Atmega8U2 programmato come convertitore USB-seriale mentre le precedenti versioni Diecimila e Duemilanove usavano chip adattatori USB-seriale, come gli FT232 di FTDI. Alcune varianti, come la Arduino Mini e la versione non ufficiale Boarduino, usano una scheda o un cavo adattatore USB-seriale staccabile. Per implementare il comportamento interattivo, Arduino è fornita di funzionalità di input/output (I/O), grazie alle quali essa riceve i segnali raccolti da sensori esterni. Il comportamento della scheda è gestito dal microcontroller in base ai valori provenienti dai sensori e alle decisioni determinate dal particolare programma in esecuzione in quel momento sulla scheda. L'interazione con l'esterno avviene attraverso attuatori pilotati dal programma attraverso i canali di output in dotazione. A tale scopo, Arduino è dotata di molti dei connettori di input/output per microcontroller in uso su altri circuiti. Tutti i pin di I/O sono collocati sulla parte superiore della scheda mediante connettori femmina da 0,1". Inoltre sono disponibili commercialmente molte schede applicative plug-in, note come "shields". Le schede Barebones e Boarduino, due cloni compatibili con la Arduino, sono dotate di connettori maschio sul lato inferiore del circuito in modo da poter essere connesse a una breadboard senza necessità di effettuare saldature. I/O digitale La Arduino Uno, ad esempio, che ha soppiantato la Duemilanove, offre 14 connettori per l'I/O digitale (numerati da 0 a 13). La direzione di funzionamento, input o output, è decisa dallo sketch programmato sull'IDE. Sei dei canali I/O possono produrre segnali Pulse-width modulation (PWM). Attraverso i segnali PWM è possibile, ad esempio, regolare l'intensità di luminosità di un LED o la velocità di rotazione di un motorino elettrico[5]. L'hardware di tre dei pin di I/O (9, 10 e 11) implementa la possibilità di gestirli direttamente attraverso la funzione
  • 7. analogWrite(), che permette di controllare la PWM del segnale in uscita in maniera efficiente, senza dover eseguire linee di codice appositamente predisposte[6]. La funzione accetta due parametri, il primo dei quali è il pin pilotato mentre il secondo rappresenta l'intensità della modulazione (espressa su una scala da 0 a 255): così, ad esempio, analogWrite(9, 128) attiverà un led collegato al pin 9 al 50% della sua luminosità[7]. I/O analogico Sempre sulla Uno, sono presenti altri 6 connettori specificamente dedicati a ingressi di segnali analogici (collegati quindi ad una ADC), cioè valori di tensione letti da sensori esterni i cui valori, fino a un massimo di 5 Volt, sono convertiti in 1024 livelli discreti (da 0 a 1023). Questi 6 connettori possono essere riprogrammati (sempre dal codice dello sketch sull'IDE) per funzionare come normali entrate/uscite digitali. Nella seguente tabella sono riepilogate le dotazioni dell'hardware dei vari modelli: L'alimentazione della scheda può avvenire attraverso la porta USB del computer, o attraverso la maggior parte degli alimentatori USB, oppure attraverso un adattatore in corrente continua a 9 volt, con connettore cilindrico (diametro 2,1 mm e positivo centrale). In quest'ultimo caso, la scheda commuta automaticamente sull'alimentazione esterna quando il connettore dell'alimentatore esterno è inserito, mentre commuta autonomamente sull'alimentazione USB in caso di disconnessione del connettore. La Arduino-NG e la Arduino Diecimila, versioni meno recenti, necessitano di essere commutate a mano, azionando uno switch ubicato tra la porta USB e l'ingresso dell'alimentazione esterna. L'enorme quantità e l'estrema variabilità d'uso e di componenti rendono difficile definire univocamente una scheda Arduino compatibile. Solitamente, contiene un microcontroller a 8 16 o 32 bit AVR, PIC o ARM, con clock variabile tra gli 1 e 96 MHz. Molte schede incorporano componenti aggiuntivi pensati per i più svariati utilizzi. La programmazione può avvenire tramite il protocollo ISP e un'altra scheda Arduino utilizzata come programmatore, tramite la usb (in alcuni casi il microcontrollore contiene usb hardware) oppure grazie a un programmatore esterno dedicato. SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Arduino_ID E_-_v0011_Alpha.png/250px-Arduino_IDE_-_v0011_Alpha.png-REPLACE_ME L'ambiente di sviluppo integrato (IDE) di Arduino è un'applicazione multipiattaforma scritta in Java, ed è derivata dall'IDE creato per il linguaggio di programmazione Processing e per il progetto Wiring. È concepita per iniziare alla programmazione artisti e altri neofiti, che siano a digiuno di pratica nello sviluppo di software. Per permettere la stesura del codice sorgente, l'IDE include un editore di testo dotato inoltre di alcune particolarità, come il syntax highlighting, il controllo delle parentesi, e l'indentazione automatica. L'editor è inoltre in grado di compilare e lanciare il programma eseguibile in una sola passata e con un solo click. In genere non vi è bisogno di creare dei Makefile o far girare programmi dalla riga di comando. Benché gli schemi hardware e il sorgente software siano resi disponibili con licenze copyleft, il nome Arduino e il logo sono marchi registrati e possono essere usati solo dietro permesso. Il documento che esprime la politica d'uso del nome "Arduino" mette l'accento su come il progetto sia aperto a incorporare lavori altrui nel prodotto ufficiale.[9] Quale conseguenza di queste convenzioni sulla protezione del nome, un gruppo di utilizzatori ha effettuato un "fork" (nel senso esteso del termine) dell'Arduino Diecimila,
  • 8. distribuendo una scheda equivalente chiamata "Freeduino"; il nome volutamente non è registrato ed è quindi liberamente utilizzabile. Banzi, Massimo (marzo 2009). Getting Started with Arduino. Make Books (prima edizione): pp. 128 (in inglese). Sciamanna, Lucio (2010). [www.sanditlibri.it Arduino il microprocessore per tutti]. Sandit: pp. 140 (in italiano). ISBN 978-88-95990-71-2 Schmidt, Maik (2011). Il manuale di Arduino. Apogeo: pp. 242 (in italiano). ISBN 978-88-503-3044-7 Margolis, Michael (2011). Arduino progetti e soluzioni. Tecniche Nuove: pp. 625 (in italiano). ISBN 978-88-481-2539-0 Majocchi, Simone (giugno 2012). Arduino UNO Programmazione avanzata e Librerie di sistema. Vispa Edizioni: pp. 224 (in italiano). ISBN 978-88-907430-2-3 Commons contiene immagini o altri file su Arduino it.wikipedia.org
  • 9. Raspberry Pi - Wikipedia it.wikipedia.org Raspberry Pi SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Raspberry_ Pi_Beta_Board.jpg/350px-Raspberry_Pi_Beta_Board.jpg-REPLACE_ME Versione beta della scheda, con in vista i connettori GPIO in alto a sinistra Classe di computer single-board Paese d'origine Regno Unito Produttore Raspberry Pi Foundation Presentazione 2011 Inizio commercializzazione Inizio 2012[1] Prezzo di lancio 25 e 35 USD (GBP ~£16 e ~£22) CPU ARM1176JZF-S 700 MHz[2] Frequenza 700 MHz (overclock fino a 1 Ghz) FPU 68882 MMU non presente RAM di serie 256 MB o 512 MB Tastiera incorporata no Display incorporato no Scheda video Broadcom VideoCore IV[2] Comunicazione Ethernet 10/100 (solo Modello B) Unita ottica no Disco rigido no Porte 1 USB (2 sul Modello B); 1 Ethernet (Modello B) SO di serie Linux (Debian GNU/Linux, Fedora e Arch Linux),[3] Sito Web raspberrypi.org Il Raspberry Pi è un single-board computer (un calcolatore implementato su una sola scheda elettronica) sviluppato nel Regno Unito dalla Raspberry Pi Foundation. Il suo lancio al pubblico è avvenuto alla fine del mese di febbraio 2012[1]. Attualmente, viene venduto in due versioni, al prezzo di 25 e 35 dollari statunitensi. L'idea di base è la realizzazione di un dispositivo economico, concepito per stimolare l'insegnamento di base dell'informatica e della programmazione nelle scuole[1] [4][5][6][7]. Il progetto ruota attorno a un System-on-a-chip (SoC) Broadcom BCM2835[2], che incorpora un processore ARM1176JZF-S a 700 MHz, una GPU VideoCore IV, e 256 o 512 Megabyte di memoria. Il progetto non prevede né hard disk né una unità a stato solido, affidandosi invece a una scheda SD per il boot e per la memoria non volatile[8]. La scheda è stata progettata per ospitare sistemi operativi basati su un kernel Linux o RISC OS[3][9]. Lo sviluppo del dispositivo è portato avanti dalla Raspberry Pi Foundation, organizzazione di beneficenza registrata presso la Charity Commission for England and Wales[10]. Il suo scopo è "promuovere lo studio dell'informatica e di argomenti correlati, soprattutto a livello scolastico, e di riportare uno spirito di divertimento nell'apprendimento del computer"[11] La fondazione Raspberry Pi promuoverà principalmente l'apprendimento nel linguaggio di programmazione Python[12][13], ma sosterrà anche l'uso del BBC BASIC[14], del C[12] e del Perl[12]. Saranno disponibili molti altri linguaggi[13] supportati da Linux e ARM. Le prime concezioni del Raspberry Pi, nel 2006, si basavano sul microcontrollore Atmel ATmega644. Gli schemi e il layout del circuito stampato di questo prototipo sono disponibili per il download libero e per l'autocostruzione[15] L'amministratore Eben Upton mise insieme un gruppo di insegnanti, accademici e appassionati di computer, per concepire un oggetto capace di incoraggiare i bambini, fornendo loro know-how e ispirazione[16]. La Raspberry Pi Foundation fu fondata nel maggio 2009, a Caldecote, villaggio del South Cambridgeshire, nel Regno Unito, con lo statuto giuridico di organizzazione
  • 10. caritatevole registrata, regolata dalla Charity Commission for England and Wales[10]. La prima versione del prototipo basata su ARM era montata su una scheda grande grosso modo come una chiave USB[17], con una porta USB su un lato e una porta HDMI sull'altro[17]. Nel mese di agosto 2011 furono realizzate cinquanta versioni alpha della scheda. Queste schede erano funzionalmente identiche al progettato modello B[18]. Versioni di prova della scheda mostravano l'ambiente desktop LXDE su Debian, Quake 3 a 1080p, [19] e video Full HD H.264 su HDMI.[20] Nel mese di ottobre 2011 vi è stata la scelta del logo all'interno di un numero di proposte dei membri della comunità: dopo aver stilato una rosa contenente sei proposte, la scelta finale ha richiesto vari giorni. Il disegno scelto si basava su una buckyball[21]. Nel corso dello stesso mese si stava lavorando a una versione di sviluppo di RISC OS[22], oggetto di una dimostrazione pubblica[9][23]. Nel mese di dicembre 2011 sono state assemblate e testate un centinaio di versioni beta del modello B Beta[24]. Il layout della componentistica usato nella versione beta è lo stesso di quella destinata alla produzione, salvo un errore di sbrogliatura nel progetto del circuito stampato scoperto e risolto prima di avviare la produzione[25]. Le schede Beta ebbero una dimostrazione pubblica con avvio da Linux: in quell'occasione veniva proposta la riproduzione di un trailer a 1080p e l'esecuzione di una demo del benchmark OpenGL ES Samurai, prodotto dalla finlandese Rightware (ex Futuremark)[17]. Le prime 10 schede furono messe all'asta su eBay nelle prime settimane del 2012[26][27]. Una è stata comprata da un anonimo e donata al museo inglese The Centre for Computing History, ubicato nel Suffolk[28]. Le dieci schede (il cui prezzo di vendita totale ammontava a £220) hanno raccolto complessivamente più di £16.000[29], con l'aggiudicazione dell'ultimo esemplare messo all'asta, etichettato con numero di serie #01, con una quotazione di £3.500.[30] Il primo lotto di 10.000 schede è stato prodotto a Taiwan[31] e in Cina[31][32], anziché nel Regno Unito. Questo è dovuto agli effetti delle politiche dei dazi, dal momento che i diritti doganali sono dovuti sui singoli componenti ma non sui prodotti finiti, rendendo poco conveniente l'importazione dei componenti dall'Oriente per il successivo assemblaggio in Occidente. I fabbricanti cinesi avevano inoltre stimato in 4 settimane i tempi di attesa per l'esecuzione dell'ordine, in confronto alle 12 settimane richieste nel Regno Unito. I risparmi ottenuti dalla delocalizzazione possono essere reinvestiti nelle attività di ricerca e sviluppo della fondazione[32]. La vendita del modello B del Rasperberry Pi è partita ufficialmente mercoledì 29 febbraio 2012 alle ore 06:00 GMT: la fondazione non ha condotto una vendita in proprio, ma si è appoggiata a due grandi distributori specializzati nel campo elettronico, Farnell e RS Components, anche perché in grado di garantire una distribuzione mondiale più capillare, grazie alle ramificazioni e alle filiali in vari paesi del globo. A settembre 2012 è stata annunciata una revisione del PCB. Novità principali della scheda sono la capacità di ricevere l'alimentazione tramite un Hub USB alimentato e la disponibilità del debug via JTAG; come novità minori si ha la correzione di un difetto di collegamento tramite HDMI (lasciando il Raspberry Pi non alimentato su una catena HDMI, potevano insorgere problemi nell'utilizzo delle funzionalità Consumer Electronics Control per gli altri dispositivi), il circuito di reset è stato rinnovato, è stato aggiunto un connettore di espansione addizionale, aggiunti i fori di montaggio e apportate correzioni
  • 11. alla serigrafia. Sono inoltre presenti cambiamenti ai GPIO e ai canali I2C[33] Si noti che la dicitura "Raspberry 2.0" comparsa in alcuni siti è concettualmente sbagliata: le modifiche apportate comportano unicamente la correzione di alcuni dettagli progettuali, nulla che giustifichi l'incremento nel numero di versione da 1.0 a 2.0, come riportato anche nel sito del produttore. La scheda ha semplicemente subito una revisione al circuito che sistema problemi minori, come riportato anche sul sito del produttore:[34] infatti, è il circuito stampato che è alla seconda versione, non la scheda nel suo complesso che mantiene gli stessi identici componenti. SPECIAL_IMAGE-//upload.wikimedia.org/wikipedia/commons/thumb/0/09/Raspberry_ Pi_board.jpg/350px-Raspberry_Pi_board.jpg-REPLACE_ME La fondazione distribuisce due modelli, entrambi dotati di 256 megabyte di RAM: il Model A costa 25 USD, ha una singola porta USB ed è privo di controller Ethernet. Il Model B è equipaggiato con due porte USB ed un controller Ethernet 10/100[35] e costa 35 Dollari. A partire del 15 ottobre 2012 il Model B monta 512 Megabyte di RAM[36] Sebbene il Modello A non abbia una porta Ethernet RJ45, può comunque accedere a una rete attraverso la porta USB, facendo uso di adattatori Ethernet o Wi-Fi con alimentazione autonoma. In maniera analoga ai moderni computer, Raspberry Pi è compatibile con tastiere e mouse generici collegabili tramite porta USB[8]. Raspberry Pi usa il sistema operativo Linux. È previsto in futuro che Raspberry sia distribuito in bundle con Debian GNU/Linux, Iceweasel, Calligra Suite e Python[1]. Raspberry PI non è fornito di un real-time clock[1], così un sistema operativo deve usare un network time server, o chiedere l'ora all'utente al bootstrap per avere accesso a data e ora per la marca temporale. Tuttavia è facile aggiungere un real time clock (come il DS1307) con batteria tampone, attraverso l'interfaccia I²C. Model A e Model B sono entrambi riferimenti culturali[42] ai computer britannici BBC Micro, modelli originali sviluppati dalla Acorn Computers, alla quale si deve anche l'originario sviluppo dei processori ARM (l'architettura del Raspberry Pi) e del sistema operativo RISC OS, che sarà in grado di girare su tali piattaforme hardware[9]. Il 19 febbraio 2012, la Raspberry Pi Foundation ha messo a disposizione per il download un proof of concept di immagine che può essere caricata su SD Card per produrre un sistema operativo preliminare. L'immagine si basa su Debian 6.0 (Squeeze), con un ambiente desktop LXDE e un browser Midori, più vari strumenti di programmazione. L'immagine può anche girare sull'emulatore QEMU, permettendo di emulare Raspberry Pi su varie altre piattaforme[43]. La Fondazione ha realizzato una release ottimizzata di Fedora, raccomandandola come sistema operativo[44]. È disponibile anche una versione di Arch Linux[45] Esistono distribuzioni per l'utilizzo del Raspberry Pi come Media Center basate su XBMC: OpenELEC, XBian e RaspBMC. Il software di monitoraggio di rete Overlook Fing è stato portato su piattaforma Raspberry Pi[46] rendendo possibile installare sentinelle di monitoraggio a basso costo in reti remote. Il software open source Aseba per la programmazione semplice ed efficiente di robot è disponibile su Raspberry PI. Utilizzando il Raspberry PI in unione con Aseba e il robot Thymio II è possibile creare a costi veramente contenuti un vero e proprio laboratorio didattico di Robotica. Il robot Thymio II è stato sviluppato nell'ambito del
  • 12. programma NCCR Robotics dalla collaborazione tra l'Ecole Polytechnique Fédérale de Lausanne (EPFL) e l'Ecole Cantonale d'Art de Lausanne (écal). Mojang e 4J Studios stanno sviluppando una versione di Minecraft per questa piattaforma. Dato che il progetto ha come obiettivo la riduzione dei costi, la decodifica in hardware di alcuni formati multimediali non è supportata perché richiedono una specifica licenza. Il dispositivo può riprodurre in hardware formati liberi, quali H.264, mentre per riprodurre i formati MPEG-2 e VC-1 è possibile acquistare la relativa licenza abilitando l'hardware alla decodifica.[47][48] Nel Regno Unito, a gennaio 2012, sono giunte manifestazioni di interesse da parte di scuole, sia del settore statale sia di quello privato, con un netto sbilanciamento su quest'ultimo settore, dal quale sono pervenute richieste cinque volte superiori. Si spera che le aziende sponsorizzino l'acquisto presso le scuole più svantaggiate[16]. (EN) Raspberry Pi Foundation, sito ufficiale della fondazione (EN) Informazioni tecniche su Raspberry Pi, da eLinux.org (EN) Broadcom BCM2835 Embedded Multimedia Applications Processor, broadcom.com (EN) Boradcom - BCM2835 ARM Peripherals (abbreviated datasheet) (EN) SMSC LAN9512 USB 2.0 Hub and 10/100 Ethernet Controller, smsc.com (EN) Article and Video, Article, da BBC.co.uk (EN) Psst, kid... Wanna learn how to hack? The £25 computer to teach youngsters real computing skills, The Register (EN) Raspberry Pi Interview With Eben Upton, da Robots.net (EN) Blog about Raspberry Pi and ARM based Linux devices (EN) Raspberry Pi gpio pinout, da Panu.it Rpy-Italia, portale italiano sul Raspberry PI it.wikipedia.org ♦ Archive All • Download Newest