# Arduino

Arduino és una placa de circuit imprès simple basada en el microcontrolador de codi obert provinent de la plataforma de codi obert Wiring amb l'objectiu de fer més simple i accessible el disseny de circuits electrònics amb microcontroladors.
El maquinari consisteix en dissenys simples de maquinari lliure amb processadors Atmel AVR en una placa amb pins E/S. L'entorn de desenvolupament implementa el llenguatge Processing de Wiring, molt semblant a C++. Arduino es pot utilitzar per desenvolupar objectes interactius autònoms o pot ser connectat a programari de l'ordinador (p. ex. Macromedia Flash, Processing, Max/MSP, Pure Data). Les plaques es poden muntar a mà o adquirir-se i els IDE de codi font obert es poden descarregar de franc.
El projecte Arduino va rebre una menció honorífica a la categoria de Comunitats Digital al Prix Ars Electronica 2006 Arxivat 2006-12-06 a Wayback Machine. (anglès).
Arduino és un nom propi masculí italià que significa "gran amic".

## Tipus de plaques

Existeixen diferents versions d'Arduino. En funció del nostre projecte podem triar la que s'adapti millor al projecte en qüestió:
* Placa sèrie:
És la placa bàsica, i s'utilitza una interfície RS232. Aquesta interfície pot ser utilitzada, a més a més, per a la programació de la placa, per a comunicar-se amb altres elements externs que utilitzin el port sèrie, com per exemple un PC.
* Placa USB:
És una evolució de la placa sèrie que incorpora un port USB per a comunicar-se amb el PC.
* Placa de prototips:
Aquesta placa està pensada per a poder incorporar hardware addicional al disseny base de l'Arduino. Incorpora una matriu de forats en la que s'hi pot afegir el nostre hardware addicional. No disposa de port sèrie ni USB, per la qual cosa és necessari disposar d'una altra placa per a programar el xip.
* Bluetooth:
És l'última versió en la qual es treballa. Elimina la necessitat de cables per a comunicar-se amb el PC o qualsevol altre dispositiu bluetooth, com per exemple un telèfon mòbil.

## Esquemàtic de pins
### Entrades i sortides

Consta de 14 entrades digitals configurables d'entrada i/o sortida que operen a 5 volts. Cada pin pot proporcionar o rebre com a màxim 40mA. Els pins 3, 5, 6, 9, 10 i 11 poden proporcionar una sortida PWM (Pulse Width Modulation). Si es connecta qualsevol cosa als pins 0 i 1, això interferirà amb la comunicació USB. Diecimila també té 6 entrades analògiques les quals proporcionen una resolució de 10 bits. Per defecte mesuren des de 0 volts (massa) fins a 5 volts, tot i que és possible canviar el nivell més alt, utilitzant el pin Aref i algun codi de baix nivell.

### Esquema i pins

Elements amb els quals podem interaccionar: (prenent d'exemple la placa USB)
Començant en el sentit de les agulles del rellotge des del centre de la part superior:
Pin de referència analògica (taronja)
Senyal de terra digital (verd clar)
Pins digitals 2-13 (verd)
Pins digitals 0-1 / entrada i sortida del port sèrie:TX/RX (blau)
Botó de reset (negre)
Entrada del circuit del programador sèrie (marró)
Pins d'entrada analògica 0-5 (blau fosc)
Pins d'alimentació i terra (taronja i taronja clar)
Entrada de la font d'alimentació externa (9-12V DC) – X1 (gris)
Commutació entre font d'alimentació externa o alimentació a través del port USB – SV1
Port USB (vermell).

## Especificacions

El microcontrolador Arduino Duemilanove està basat en el Atmega 328.
Arduino Duemilanove
El microcontrolador Arduino Diecimila està basat en Atmega168.

## Instal·lació en Windows

Per la instal·lació de la placa Arduino en el sistema operatiu windows cal seguir els següents pasos: Amb la placa desconnectada:
1.- Descarregar i instal·lar el Java Runtime Enviroment (J2RE).
2.- Descarregar l'última versió de l'IDE d'Arduino.
Nota: És recomanable descomprimir el fitxer en el directori arrel (c:\) mantenint l'estructura original.
3.- Entre totes les carpetes creades en el directori arduino, cal destacar les següents:
- c:\arduino-0012\hardware\bootloader:
Aquesta conté el programari necessari per a carregar el firmware en el xip Atmega168, per treballar amb Arduino. Només cal si us heu muntat la placa vosaltres mateixos, o en el cas que s'hagi espatllat el xip i n'hàgiu comprat un de nou.
-c:\arduino-0012\drivers: Conté els drivers necessaris per al funcionament de la placa Arduino amb el PC amb S.O. Windows: FTDI USB Drivers
4.- Instal·lar FTDI USB Drivers.
Ara sí, connectar la placa USB. S'obrirà automàticament l'assistent de windows per a nou maquinari trobat:
-Selecciona "No por el momento"i prem"Siguiente".
-Selecciona "Instalar desde una lista o ubicación específica (avanzado)" i prem "Siguiente".
-Selecciona "Buscar el controlador más adecuado en estas ubicaciones" prem "Examinar".Selecciona la carpeta on hagis descomprimit el driver i prem "Siguiente".
Si tot ha anat correctament el driver de la placa estarà instal·lat.
5.- Obrir l'IDE d'Arduino.
Executarem el fitxer Arduino.exe per obrir la interfície. Aquí configurem el port USB on tenim connectada la placa per a començar-hi a treballar.

## Instal·lació en Linux

Per instal·lar arduino en un sistema GNU/LINUX necessitem els següents programes per resoldre les dependències:
Sun java runtime, jre.
avr-gcc, compilador per la familia de microcontroladors avr d'atmel.
avr-libc, libc del compilador avr-gcc.
Per instal·lar-los, podem utilitzar el gestor de paquets. O bé per comandes a través del terminal:
apt-get install sun-java5-jre gcc-avr avr-libc
En algunes distribucions cal desinstal·lar, sinó es necessita, el programa "brltty". Aquest s'encarrega de permetre l'accés al terminal per persones cegues a través d'un dispositiu especial en braille.
killall brltty
apt-get remove brltty
Els dos síntomes d'aquest problema són:
- No apareix l'opció /dev/ttyUSB0 en el menú Tools, Serial Port.
- Si s'observa el LED Rx de la placa Arduino, aquest s'ilumina de 3 a 5 vegades cada 5 o 6 segons.
Per acabar, descarreguem el framework d'arduino. El descomprimim a la carpeta desitjada i l'exectuem:
./arduino
Si tot ha anat bé ja el tindrem en funcionament.

## Primer contacte

El primer pas abans de comprovar que la instal·lació és correcte i començar a treballar amb Arduino és obrir alguns exemples pràctics que venen disponibles amb el dispositiu. És recomanable obrir l'exemple "led_blink". Aquest codi el que fa és crear una intermitència per segon en un led connectat a un pin, en el nostre cas el número 13. És qüestió de comprovar que el codi font és correcte, per això, premerem el botó que és un triangle (en forma de "play").
Com a resultat d'aquest codi obtindrem una intermitència al led 13, amb una freqüència de 2 segons.

## Aplicacions

Proveïts de sensors es poden crear aplicacions senzilles enfocades a la docència per a estudiants d'electrònica, projectes més elaborats per a la indústria o sistemes adreçats a l'oci.

## Pduino

Pduino neix de la fusió de Pure Data i Arduino. Ambdós d'Open Source permeten treballar l'un de l'altre d'una manera gràfica i molt intuïtiva. Carregant el fimware de Pure Data (PD) a la placa Arduino podem accedir-hi a través d'aquest llenguatge de programació gràfic. Es pot observar que tenim tot l'esquema físic de la placa, amb els ports, pins digitals, pins analògics, entrades i sortides... en una interfície gràfica, gràcies a PD.

## Snap4Arduino

Snap4Arduino és una extensió de Snap! que permet la programació visual per blocs de les diverses plaques Arduino. Ambdós d'Open Source permeten treballar l'un de l'altre d'una manera molt intuïtiva.

## Versions de maquinari

Les versions originals d'Arduino són manufacturades per Smart Projects.
| Arduino | Procesador | Flash KiB | EEPROM KiB | SRAM KiB | Pins E/S Digitals | PWM | Pins de Sortida Analògica | Tipus d'interfície USB | Dimensions polzades | Dimensions mm |
| Diecimila | ATmega168 | 16 | 0.5 | 1 | 14 | 6 | 6 | FTDI | 2.7" x 2.1" | 68.6mm x 53.3mm |
| Duemilanove | ATmega168/328P | 16/32 | 0.5/1 | 1/2 | 14 | 6 | 6 | FTDI | 2.7" x 2.1" | 68.6mm x 53.3mm |
| Uno | ATmega328P | 32 | 1 | 2 | 14 | 6 | 6 | ATmega8U2 | 2.7" x 2.1" | 68.6mm x 53.3mm |
| Mega | ATmega1280 | 128 | 4 | 8 | 54 | 14 | 16 | FTDI | 4" x 2.1" | 101.6mm x 53.3mm |
| Mega2560 | ATmega2560 | 256 | 4 | 8 | 54 | 14 | 16 | ATmega8U2 | 4" x 2.1" | 101.6mm x 53.3mm |
| Fio Arxivat 2011-05-26 a Wayback Machine. | ATmega328P | 32 | 1 | 2 | 14 | 6 | 8 | None | 1.6" x 1.1" | 40.6mm x 27.9mm |
| Nano | ATmega168 or ATmega328 | 16/32 | 0.5/1 | 1/2 | 14 | 6 | 8 | FTDI | 1.70" x 0.73" | 43mm x 18mm |
| LilyPad | ATmega168V or ATmega328V | 16 | 0.5 | 1 | 14 | 6 | 6 | None | 2" ø | 50mm ø |
| Due | Atmel 91SAM3X8E | 512 | None | 96 | 54 | 12 | 12 | ATmega16U2 | 20.98" x 4" | 53.3mm x 101.52mm |
| Micro | ATmega 32u4 | 32 | 1 | 2.5 | 20 | 7 | 7 | Interna | 1.89" x 0.7" | 48mm x 18mm |

## Equip de desenvolupament

L'equip de desenvolupadors d'Arduino es compon bàsicament de Massimo Banzi, David Cuartielles, Tom Igoe, David Mellis i Nicholas Zambetti.

## Vegeu també

* Interruptor DIP
* Jumper (informàtica)
* Cable pont
* Connector IDC
* Cable cinta
* Breakout box
* BASIC Stamp

## Referències

* ↑ «Interview with Casey Reas and Ben Fry».
* ↑ «Wiring». [Consulta: 7 octubre 2012].
* ↑ Pàgina oficial
* ↑ Introducció a Snap4Arduino
* ↑ Snap4Arduino, ¡Un mundo que programar! Universidad de Navarra
* ↑ Snap4Arduino: ventajas, instalación e importación de proyectos de Scratch

## Enllaços externs

* Pàgina del projecte Arduino: http://www.arduino.cc/ (anglès)
* El wiki de desenvolupador Arduino, àlies Playground (anglès)