**Wiring** é unha plataforma de prototipado electrónico de hardware libre composta por unha linguaxe de programación, un contorno de desenvolvemento integrado (IDE) e un microcontrolador da placa. O sistema foi creado xunto con deseñadores e artistas de forma que usuarios avanzados, medios e principiantes ao redor do mundo poidesen compartir as súas ideas, coñecementos e experiencias colectivamente.

Wiring permite facer programas para controlar aparellos conectados a el e así crear todo tipo de obxectos interactivos, correspondendo á experiencia do usuario a través do mundo físico. Con poucas liñas de código, por exemplo, é posible conectar algúns compoñentes electrónicos e observar a intensidade dunha luz variando conforme á distancia que alguén achégase a ela.

Historia
--------

O proxecto foi iniciado en 2003 por Hernando Barragán no *Interaction Design Institute Ivrea*, Italia (onde tamén se desenvolveu o proxecto Arduino). Actualmente desenvólvese na Escola de Arquitectura e Deseño da Universidade de Los Andes, en Bogotá, Colombia. Construído sobre Processing, un proxecto aberto de Casey Reas e Benjamin Fry, a súa linguaxe foi deselvolvida coa axuda do Aesthetics and Computation Group do MIT Media Lab.

Software
--------

Wiring é unha aplicación multiplataforma IDE escrita en Java derivada da IDE feita para a linguaxe de programación Processing. Está deseñado para introducir na programación e o deseño na electrónica aos artistas e deseñadores. Inclúe un editor de código con características como resaltado de sintaxis, corsé a xogo, e o sangrado automático capaz de compilar e cargar programas á placa cun só clic.

O IDE de Wiring ven cunha biblioteca C/C++ chamada "Wiring", o que permite facer operacións comúns de entrada/saída moito máis fáciles. Wiring está escrito en C/ C++, os usuarios só teñen que definir dúas funcións para facer un programa executable:

* **setup ()** - unha función executable unha vez no inicio dun programa que pode ser utilizado para definir os axustes iniciais de contorno.
* **loop ()** - unha función chamada repetidamente ata que a placa apágase.

Un primeiro programa típico para un microcontrolador é simplemente o pestanexo dun LED (díodo emisor de luz). No contorno Wiring, o usuario podería escribir un programa coma este:

```
int ledPin = WLED; // WLED é unha constante predefinida para o LED da placa

void setup () {
 pinMode(ledPin, OUTPUT); // definir o pin como saída dixital "output"
}

void loop () { // repetir o proceso seguinte
 digitalWrite(ledPin, HIGH); // encender LED
 delay (1000); // agardar un segundo (1000 milisegundos)
 digitalWrite(ledPin, LOW); // apagar LED
 delay (1000); // agardar un segundo
}

```

Cando o usuario fai clic en ""Upload to Wiring hardware" na IDE, unha copia do código escríbese nun arquivo temporal co engadido do encabezado na parte superior e unha moi simple función **main ()** na parte inferior, para que sexa un programa C++ válido.

O IDE de Wiring utiliza a cadea de ferramentas GNU e Libc AVR para compilar programas, e utiliza avrdude para subir os programas á placa.

Hardware e software aberto
--------------------------

Os deseños de hardware de Wiring distribúense baixo Creative Commons Compartir de igual a igual licenza 2.5 e están dispoñibles no sitio Web de Wiring. Os Arquivos de deseño e produción para o hardware Wiring tamén están acesos. O código fonte para o IDE e a biblioteca de hardware están dispoñibles e liberados baixo GPLv2.

Proxectos relacionados
----------------------

Wiring baséase nun traballo inicial chamado Processing do MIT.

### Arduino e Fritzing

Wiring e Procesing son as orixes do proxecto Arduino, que emprega o IDE de Procesing, cunha versión simplificada da linguaxe C++, como unha maneira de enseñar a artistas e deseñadores como programar microcontroladores. Na actualidade hai dous proxectos separados, hardware Wiring e Arduino, utilizando o contorno de programación de Wiring.

Fritzing é outro contorno de software dentro desta familia, que apoia a deseñadores e artistas para documentar os seus prototipos interactivos e dar o paso á creación de prototipos físicos e produtos reais.

Véxase tamén
------------

### Outros artigos

* Arduino
* Processing

### Ligazóns externas

* Páxina web do proxecto Wiring
* Sitio en Internet de Processing
* Sitio en Internet do proxecto Arduino
* Sitio en Internet do proxecto Fritzing