26/11/13

UDOO quella fusione tra Arduino Due e Rasperry Pi model B

Le due aziende italiane Seco e Aidlab hanno raccolto attorno a sé ricercatori, studenti ed esperti per creare UDOO, una piattaforma open-source che unisce Raspberry Pi e Arduino. L'idea è di aiutare tutti a migliorare le proprie conoscenze e a esprimersi.

UDOO è un mini computer che unisce Raspberry Pi e Arduino Due (Arduino Due a 49 dollari per chi ama l'hardware open source) in una piattaforma che può eseguire tanto Linux quanto Android, e che si presta a una miriade di usi diversi. Un piccolo gioiello che sta trovando finanziatori e sostenitori su Kickstarter, e che trova le proprie origini in un team per buona parte italiano.


Dietro a UDOO, infatti, ci sono SECO (Arezzo, azienda di progettazione harware) e Aidlab (Siena, Interaction Design), oltre a un team internazionale di esperti nei vari settori. Tutti uniti nel realizzare "una potente piattaforma di prototipazione per lo sviluppo software e il design. È facile da usare in pochi passi potete cominciare a usarla e a creare i vostri progetti".


L'idea nasce nel 2012 da un incontro tra Daniele Conti, Antonio Rizzo e Maurizio Caporali, che s'interrogavano "sulle difficoltà che studenti e ricercatori avevano nel costruire dei prototipi interattivi a se stanti", e così "iniziammo a pensare ad una board che potesse avere la semplicità di Arduino nella gestione di sensori e al tempo stesso la flessibilità e la potenza di una computer vero e proprio", ci hanno spiegato gli autori del progetto.

-"L'idea di combinare un computer ARM con un hardware Arduino compatibile" piacque subito, e UDOO nacque in quel momento. "In seguito abbiamo iniziato a coinvolgere dei colleghi", distribuiti tra il Nord America e l'Europa".

-"L'idea è quella di mettere tutti, o quasi, nelle condizioni di realizzare le proprie idee – anche chi ha poche conoscenze quanto a programmazione o hardware. "Il nostro obiettivo è renderlo accessibile a chiunque abbia voglia di intraprendere un processo di alfabetizzazione sulle tecnologie digitali", continuano i portavoce di UDOO che abbiamo intervistato.

Dietro a UDOO, infatti, non c'è solo l'entusiasmo per i "giocattoli tecnologici", ma una riflessione profonda sulla società moderna. "La fruizione delle tecnologie avviene in gran parte a scatola chiusa, e questo è un problema sia perché comporta un sistema di produzione e fruizione a bassa sostenibilità sia perché le forme logiche che stanno dietro i comportamenti di queste tecnologie sono estranee a chi non ha seguito dei corsi di computer science".

ARM, SATA, Wi-Fi, ma soprattutto un'idea

"UDOO è un computer con hardware aperto a basso costo, dotato di un processore ARM Freescale i.MX6 per Android e Linux, insieme all'ARM SAM3X dell'Arduino Due, tutto sulla stessa scheda", si legge poi sulla pagina del progetto. La CPU può essere dual o quad-core (sono previste entrambe le versioni), e la piattaforma offre diverse connessioni I/O (SATA, microfono, cuffie, Ethernet, HDMI, etc.), nonché connettività Wi-Fi e Bluetooth. UDOO può gestire i video a 1080p con accelerazione hardware, ha un connettore dedicato alle videocamere e ospita il sistema operativo su scheda MicroSD, quindi è semplice passare da Android a una distribuzione Linux. Si può usare con l'alimentatore da 12 volt, oppure sfruttare il connettore dedicato alla batteria.

Dettagli tecnici a parte, UDOO è una piattaforma destinata ai cosiddetti "maker": vale a dire quella categoria di persone (forse dovremmo parlare ormai di generazione) che vuole realizzare i propri progetti sfruttando le tecnologie potenti ed economiche che oggi abbiamo a disposizione. In questo senso, UDOO fa gruppo non solo con Raspberry Pi o Arduino ma anche, per esempio, con le stampanti 3D di Makerbot.

Tutti oggetti e tecnologie cosiddetti "abilitanti", pronti a servire una schiera sempre più nutrita di progettisti, designer e inventori di ogni tipo. Ecco, UDOO è allora un simbolo del DIY (Do It Yourself), un fenomeno che sta prendendo piede e che, ci spiegano ancora gli scienziati, "è in costante crescita e UDOO è un ulteriore passo in tale processo. Le tecnologie abilitanti Arduino e/o di Raspberry Pi hanno permesso di ideare tante soluzioni interessanti e lo continueranno a fare. È qui che UDOO inizia a giocare il suo ruolo, per svolgerlo completamente con progetti che nascono dalle sue proprie potenzialità abilitanti".

24/11/13

Alcune applicazioni di Raspberry Pi

Raspberry Pi è un dispositivo informatico dalle potenzialità infinite. Ma, ad oggi, cosa è possibile fare con il mini computer britannico? Scopriamolo assieme...

Di Raspberry Pi abbiamo già parlato. Abbiamo già detto quali siano le meraviglie di questo mini computer e quali le sue specifiche tecniche. Resta ora da capire quali siano gli utilizzi pratici della scheda Raspberry Pi. A cosa può servire? In quali progetti Raspberry può essere utilizzato e dare il meglio di sé? Vediamo di scoprirlo assieme.

1) Educazione

Lo scopo principe per cui Raspberry Pi è stato ideato e realizzato è quello educativo. Un mini computer da 35 dollari a pezzo è la soluzione ideale per tutte le istituzioni scolastiche che vogliono dotarsi di una infrastruttura informatica moderna, efficiente e a basso costo. In particolare, Raspberry Pi è tagliato su misura per l'insegnamento della programmazione nelle scuole di ogni ordine e grado. In collaborazione con il gruppo di lavoro Computing at School (programmare a scuola, in italiano), la Raspberry Foundation sta realizzando una guida utente e un manuale di programmazione ritagliato sui componenti hardware del mini computer britannico.

2) Domotica

Date le sue dimensioni piuttosto ridotte e le sue specifiche tecniche di tutto rispetto, Raspberry Pi viene utilizzato spesso e volentieri come controller in un sistema di home automation. Con i suoi consumi ridotti e la possibilità di utilizzare software open source, una scheda Raspberry si adatta alla perfezione per il controllo della luminosità dell'impianto di illuminazione, per i sistemi di sicurezza casalinghi e tutti gli altri compiti inerenti il campo della domotica.

3) Server domestico

Utilizzando le adeguate schede di espansione, un Raspberry Pi può essere utilizzato anche come piccolo server personale. Certo, non avrà tutte le risorse necessarie per costruire un server degno del miglior data center del mondo, ma potrà comunque funzionare da piccolo servizio cloud personale.

4) Media Center

Occupando poche decine di centimetri quadrati, un Raspberry Pi può essere sistemato praticamente ovunque senza che se ne noti la presenza. Magari anche dietro il televisore di casa e farlo funzionare come media center di rete.
Installando sulla scheda di memoria flash una distribuzione come Raspbmc, si avrò a disposizione un sistema home theatre casalingo senza pari per qualità video e prezzo. Nel caso in cui si utilizzi il Raspberry Pi Model B lo si può collegare ad una LAN (local area network, rete domestica in italiano) e trasmettere sul televisore ad alta definizione del salotto di casa i film salvati su un disco rigido di rete o in un NAS (network attached storage).

5) Stazione meteo

Proteggendolo adeguatamente, un Raspberry Pi può essere impiegato anche come centralina di controllo di una piccola stazione di rilevazione delle condizioni climatiche.

6) Computer

Non bisogna mai dimenticare che Raspberry Pi è un computer, seppur in miniatura, e in questa veste riesce a dare il meglio di sé. Sul sito dell'omonima Fondazione è possibile trovare una delle tante distribuzioni – come Debian, Arch Linux e Fedora – appositamente modificate per sfruttarne al meglio le caratteristiche.
Magari proteggendolo con uno dei tanti case in plastica che si possono acquistare online per poche decine di euro – o dollari, dipende da dove si fa l'acquisto – si avrà a disposizione un dispositivo informatico portatile di tutto rispetto, in grado di svolgere la gran parte dei lavori solitamente svolti dal normale computer di casa. Con il vantaggio del minor ingombro, del minor consumo energetico e, cosa da non sottovalutare assolutamente, ad un prezzo assolutamente vantaggioso.

21/11/13

Raspberry Pi (Hardware e Software)

RASPBERRY IL PRIMO COMPUTER
SINGLE-BOARD












INTRODUZIONE:

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. 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.

Il progetto ruota attorno a un System-on-a-chip (SoC) Broadcom BCM2835, 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.
La scheda è stata progettata per ospitare sistemi operativi basati su un kernel Linux o RISC OS.

STORIA DEL PROGETTO:

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. 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.

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.

HARDWARE:

La prima versione del prototipo basata su ARM era montata su una scheda grande grosso modo come una chiave USB, con una porta USB su un lato e una porta HDMI sull'altro.
Nel mese di agosto 2011 furono realizzate cinquanta versioni alpha della scheda. Queste schede erano funzionalmente identiche al progettato modello B. Versioni di prova della scheda mostravano l'ambiente desktop LXDE su Debian, Quake 3 a 1080p, e video Full HD H.264 su HDMI.
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. Nel corso dello stesso mese si stava lavorando a una versione di sviluppo di RISC OS, oggetto di una dimostrazione pubblica.
Nel mese di dicembre 2011 sono state assemblate e testate un centinaio di versioni beta del modello B Beta. 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. 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).
Le prime 10 schede furono messe all'asta su eBay nelle prime settimane del 2012. Una è stata comprata da un anonimo e donata al museo inglese The Centre for Computing History, ubicato nel Suffolk. Le dieci schede (il cui prezzo di vendita totale ammontava a £220) hanno raccolto complessivamente più di £16.000, con l'aggiudicazione dell'ultimo esemplare messo all'asta, etichettato con numero di serie #01, con una quotazione di £3.500.
Il primo lotto di 10.000 schede è stato prodotto a Taiwan e in Cina, 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.

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 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: infatti, è il circuito stampato che è alla seconda versione, non la scheda nel suo complesso che mantiene gli stessi identici componenti.

CARATTERISTICHE:

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 e costa 35 Dollari. A partire del 15 Ottobre 2012 il Model B monta 512 Megabytes di RAM
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.
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, 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.

SOFTWARE:

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. La Fondazione ha realizzato una release ottimizzata di Fedora, raccomandandola come sistema operativo[44]. È disponibile anche una versione di Arch Linux.
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 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.

FORMATI SUPPORTATI:

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.

16/11/13

Arduino (Hardware e Software)

PARLIAMO DI COME E' FATTO ARDUINO!

Arduino Uno REV.3














L'Arduino è una schedina elettronica 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.

ARCHITETTURA:

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. 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.
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 ma 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. In questo modo, chi lo desideri 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. Questa possibilità ha consentito lo sviluppo di prodotti Arduino compatibili da parte di piccole e medie aziende in tutto il mondo, e infatti 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.

HARDWARE:

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, abbiano un clock di 8 MHz e facciano a meno dello stabilizzatore di tensione.

VERSIONI:

Fino a oggi sono state commercializzate 14 versioni dell'hardware Arduino.
-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 Nan:, 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
-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 Mega256: 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.

PROGRAMMAZIONE:

Inoltre, 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.

INPUT ed OUTPUT:

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. In base a tali valori, il comportamento della scheda è gestito dal microcontroller, in base 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 DIGITALI:
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. 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. 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à.
I/O ANALOGICI:
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.

ALIMENTAZIONE:

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.


ADESSO PARLIAMO DEL SOFTWARE DI ARDUINO
Il programma che viene utilizzato per programmare Arduino lo trovate nel sito ufficiale arduino.cc ed è a licenza libera!

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.

CARATTERISTICHE:

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.
L'ambiente di sviluppo integrato di Arduino è fornito di una libreria software C/C++ chiamata "Wiring" (dall'omonimo progetto Wiring): la disponibilità della libreria rende molto più semplice implementare via software le comuni operazioni di input/output. I programmi di Arduino sono scritti in C/C++, ma all'utilizzatore, per poter creare un file eseguibile, non è richiesto di scrivere un programma in C, ma solo di definire due funzioni:
setup()
– funzione invocata una sola volta all'inizio di un programma che può essere utilizzata per i settaggi iniziali;
loop()
– funzione invocata ripetutamente, la cui esecuzione si interrompe solo con lo spegnimento della scheda.

ESEMPI:

Un tipico esempio di programma per iniziare a far pratica con un microcontroller è quello, molto semplice, che permette l'accensione ripetuta di un LED. Nell'ambiente di sviluppo di Arduino, l'utilizzatore potrebbe farlo con un programma come il seguente:

#define LED_PIN 13

void setup () {
  pinMode (LED_PIN, OUTPUT);   // abilita il pin 13 per l'output digitale
}
void loop () {
  digitalWrite (LED_PIN, HIGH); // accende il LED
  delay (1000);         // aspetta 1 secondo (1000 millisecondi)
  digitalWrite (LED_PIN, LOW);  // spegne il LED
  delay (1000);         // aspetta un secondo
}

Scritto in questo modo, il codice non verrebbe riconosciuto come programma valido da un compilatore C++; per questo motivo, quando l'utilizzatore seleziona il bottone di comando "Upload to I/O board" (presente nell'IDE), una copia del codice viene automaticamente trascritta in un file temporaneo con l'aggiunta di un extra include header all'inizio del codice e l'implementazione di una semplicissima funzione main() in basso:

#include "WProgram.h"
#define LED_PIN 13
void setup () {
  pinMode (LED_PIN, OUTPUT);   // abilita il pin 13 per l'output digitale
}
void loop () {
  digitalWrite (LED_PIN, HIGH); // accende il LED
  delay (1000);         // aspetta 1 secondo (1000 millisecondi)
  digitalWrite (LED_PIN, LOW);  // spegne il LED
  delay (1000);         // aspetta 1 secondo
}
int main(void)
{
  init();
  setup();
  for (;;)
    loop();
  return 0;
}

"WProgram.h" è lo header file principale per la libreria Wiring. La funzione main()effettua solo tre chiamate, init(), setup() e loop(); le ultime due sono definite dall'utente, mentre la prima è scritta nella libreria stessa. La funzione loop(), come richiesto, è automaticamente nidificata in un loop infinito.
Lo IDE di Arduino usa la GNU toolchain e la AVR Libc per compilare i programmi, mentre usa avrdude per caricarli sulla scheda.

MINIBLOQ:

Un esempio alternativo di ambiente integrato dedicato ad Arduino (ma anche ad altre utilizzazioni) è Minibloq, distribuito con licenza libera, che mette a disposizione un particolare ambiente di sviluppo visuale per la programmazione di Arduino, robot, e altri simili dispositivi di physical computing.
Caratteristiche di Minibloq sono l'interfaccia intuitiva, e la capacità di generare il codice a partire da uno schema grafico a blocchi disegnato dall'utente. Per questa sua impostazione intuitiva, il software è indirizzato ad avvicinare principianti e neofiti alla programmazione di microcontroller, in contesti scolastici ed educativi che vanno dalla scuola primaria all'ambiente liceale.
L'applicazione, compilata con GCC, si presta a essere utilizzata anche su computer a più basse prestazioni, come netbooks, OLPC XO-1, Intel-Classmate.