Wiring
# Wiring

Wiring es una plataforma de prototipado electrónico de fuente abierta compuesta de un lenguaje de programación, un entorno de desarrollo integrado (IDE), y un microcontrolador. Ha sido desarrollado desde 2003 por Hernando Barragán.

Barragán empezó el proyecto en el Instituto de Diseño de la Interacción Ivrea. El proyecto es actualmente desarrollado en la Escuela de Arquitectura y Diseño en el Universidad de Los Andes en Bogotá, Colombia.

Wiring está basado en Processing, un proyecto abierto iniciado por Casey Reas y Benjamin Fry, ambos del Grupo de Estética y Computación en el MIT Media Lab.

La documentación ha sido creada teniendo en cuenta a diseñadores y artistas. Hay una comunidad donde expertos, desarrolladores intermedios y principiantes de alrededor del mundo comparten ideas, conocimiento y su experiencia colectiva. Wiring permite escribir software para controlar dispositivos conectados a la tarjeta electrónica para crear toda clase de objetos interactivos, espacios o experiencias físicas que sienten y responden al mundo físico. La idea es escribir unas cuantas líneas de código, conectar unos cuantos componentes electrónicos al hardware de Wiring y observar cómo una luz se enciende cuando la persona se le acerca. Se escriben unas cuantas más líneas, se añade otro sensor, y se ve cómo la luz cambia cuando el nivel de iluminación de la habitación disminuye. Este proceso se llama sketching con hardware; se explora una gran cantidad de ideas de forma muy rápida, se seleccionan las más interesantes, se afinan y producen prototipos en un proceso iterativo.

## Software

El IDE de Wiring es una aplicación multiplataforma escrita en Java la cual está derivada del IDE hecho para el lenguaje de programación de Processing. Está diseñado para introducir la programación y el sketching con electrónicos a artistas y diseñadores. Incluye un editor de código con características como el resaltado de sintaxis, el emparejamiento de paréntesis, y la sangría automática capaz de compilar y cargar programas a la tarjeta con un solo clic.

El IDE de Wiring viene con una librería de C/C++ llamada "Wiring", la cual hace operaciones comunes de input/output mucho más fáciles. Los programas de Wiring están escritos en C/C++, pese a que sus usuarios solo necesiten definir dos funciones para hacer un programa ejecutable:

* setup – una función ejecutada solo una vez en el inicio de un programa la cual puede ser usada para definir los ajustes iniciales de un entorno.
* loop – una función llamada repetidamente hasta que la tarjeta es apagada.

Un primer programa típico para un microcontrolador es sencillamente poner a parpadear un Led (light-emitting diode) encendido y apagado. En el entorno de Wiring, el usuario podría escribir un programa así: Cuando el usuario hace clic en el botón de "Cargar a Hardware de Wiring" en el IDE, una copia del código es escrita a un archivo temporal con un extra header de include al principio y una muy sencilla función main en la parte final, para hacerlo un programa válido C++.

El IDE de Wiring utiliza el GNU toolchain y AVR Libc para compilar programas, y usa avrdude para cargar programas a la tarjeta.

## Código y hardware abierto

Los diseños de referencia de hardware de Wiring están distribuidos bajo una licencia de Atribución Creative Commons Attribution Share-Alike 2.5 y están disponibles en el sitio Web de Wiring. También están disponibles el Layout y los archivos de producción para el hardware de Wiring. El source code para la IDE y la librería de hardware están disponibles y lanzadas bajo el GPLv2

## Proyectos relacionados

### Processing

Wiring estuvo basado en el trabajo original hecho en el proyecto Processing en MIT.

### Arduino y Fritzing

Wiring y Processing han generado otro proyecto, Arduino, el cual utiliza la IDE de Processing, con una versión simplificada del lenguaje C++, como una manera de enseñar artistas y diseñadores a programar microcontroladores. Ahora hay dos proyectos de hardware separados, Wiring y Arduino, utilizando el entorno y el lenguaje de Wiring.

Fritzing Es otro entorno de software dentro de esta familia, el cual ayuda a diseñadores y artistas a documentar sus prototipos interactivos y dar el paso de prototipado físico a producto real.

