Wiring (development platform)
Encyclopedia
Wiring is an open source
electronics prototyping platform composed of a programming language
, an integrated development environment
(IDE), single-board microcontroller
documentation thoughtfully created with designers and artists in mind and a community where experts, intermediate and beginners from around the world share ideas, knowledge and their collective experience. Wiring allows writing software to control devices attached to the electronics board to create all kinds of interactive objects, spaces or physical experiences feeling and responding in the physical world. The idea is to write a few lines of code, connect a few electronic components to the Wiring hardware and observe how a light turns on when person approaches to it, write a few more lines add another sensor and see how this light changes when the illumination level in a room decreases. This process is called sketching with hardware; explore lots of ideas very quickly, select the more interesting ones refine and produce prototypes in an iterative process. The project was initiated in 2003 by Hernando Barragán, formerly from the Interaction Design Institute Ivrea and currently developed at the School of Architecture and Design at the Universidad de Los Andes
in Bogotá, Colombia.
Wiring builds on Processing, an open project initiated by Casey Reas and Ben Fry
, both formerly of the Aesthetics and Computation Group at the MIT Media Lab
.
is a cross-platform
application written in Java
which is derived from the IDE made for the Processing
programming language. It is designed to introduce programming and sketching with electronics to artists and designers. It includes a code editor with features such as syntax highlighting
, brace matching
, and automatic indentation capable of compiling and uploading programs to the board with a single click.
The Wiring IDE comes with a C
/C++
library called "Wiring", which makes common input/output operations much easier. Wiring programs are written in C/C++, although users only need to define two functions in order to make a runnable program:
A typical first program for a microcontroller is to simply blink a LED (light-emitting diode
) on and off. In the Wiring environment, the user might write a program like this:
When the user clicks the "Upload to Wiring hardware" button in the IDE, a copy of the code is written to a temporary file with an extra include header at the top and a very simple main function at the bottom, to make it a valid C++ program.
The Wiring IDE uses the GNU toolchain
and AVR Libc to compile programs, and uses avrdude to upload programs to the board.
Attribution Share-Alike 2.5 license and are available on the Wiring Web site. Layout and production files for the Wiring hardware are also available. The source code for the IDE
and the hardware library are available and released under the GPLv2
project in MIT.
have spawned another project, Arduino
, which uses the Processing IDE together with a simplified version of the C++ programming language as a way to teach artists and designers how to program microcontroller
s. There are now two separate hardware projects, Wiring and Arduino
, using the Wiring environment and language.
Fritzing
is another software environment within this family, which supports designers and artists to document their interactive prototypes and to take the step from physical prototyping to actual product.
Open-source software
Open-source software is computer software that is available in source code form: the source code and certain other rights normally reserved for copyright holders are provided under a software license that permits users to study, change, improve and at times also to distribute the software.Open...
electronics prototyping platform composed of a programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
, an integrated development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
(IDE), single-board microcontroller
Single-board microcontroller
A single-board microcontroller is a microcontroller built onto a single printed circuit board. This board provides all of the circuitry necessary for a useful control task: microprocessor, I/O circuits, clock generator, RAM, stored program memory and any support ICs necessary...
documentation thoughtfully created with designers and artists in mind and a community where experts, intermediate and beginners from around the world share ideas, knowledge and their collective experience. Wiring allows writing software to control devices attached to the electronics board to create all kinds of interactive objects, spaces or physical experiences feeling and responding in the physical world. The idea is to write a few lines of code, connect a few electronic components to the Wiring hardware and observe how a light turns on when person approaches to it, write a few more lines add another sensor and see how this light changes when the illumination level in a room decreases. This process is called sketching with hardware; explore lots of ideas very quickly, select the more interesting ones refine and produce prototypes in an iterative process. The project was initiated in 2003 by Hernando Barragán, formerly from the Interaction Design Institute Ivrea and currently developed at the School of Architecture and Design at the Universidad de Los Andes
University of the Andes, Colombia
The University of the Andes , is a coeducational, nonsectarian private university located in city centre Bogotá, Colombia. Founded in 1948, the University has 9 faculties: Administration, Architecture and Design, Arts and Humanities, Sciences, Social Sciences, Law, Economics, Engineering and...
in Bogotá, Colombia.
Wiring builds on Processing, an open project initiated by Casey Reas and Ben Fry
Benjamin Fry
Benjamin Fry is an American expert in data visualization, principal of Fathom, a design and software consultancy in Boston, MA, a co-creator of Processing, an open source programming language and integrated development environment built for the electronic arts and visual design communities with...
, both formerly of the Aesthetics and Computation Group at the MIT Media Lab
MIT Media Lab
The MIT Media Lab is a laboratory of MIT School of Architecture and Planning. Devoted to research projects at the convergence of design, multimedia and technology, the Media Lab has been widely popularized since the 1990s by business and technology publications such as Wired and Red Herring for a...
.
Software
The Wiring IDEIntegrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
is a cross-platform
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...
application written in Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
which is derived from the IDE made for the Processing
Processing (programming language)
Processing is an open source programming language and integrated development environment built for the electronic arts and visual design communities with the purpose of teaching the basics of computer programming in a visual context, and to serve as the foundation for electronic sketchbooks...
programming language. It is designed to introduce programming and sketching with electronics to artists and designers. It includes a code editor with features such as syntax highlighting
Syntax highlighting
Syntax highlighting is a feature of some text editors that display text—especially source code—in different colors and fonts according to the category of terms. This feature eases writing in a structured language such as a programming language or a markup language as both structures and...
, brace matching
Brace matching
Brace matching, or parentheses matching, is a syntax highlighting feature of certain text editors and integrated development environments that highlights matching sets of braces in languages such as Java and C++ that use them...
, and automatic indentation capable of compiling and uploading programs to the board with a single click.
The Wiring IDE comes with a C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
/C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
library called "Wiring", which makes common input/output operations much easier. Wiring programs are written in C/C++, although users only need to define two functions in order to make a runnable program:
- setup – a function run once at the start of a program which can be used to define initial environment settings, and
- loop – a function called repeatedly until the board is powered off.
A typical first program for a microcontroller is to simply blink a LED (light-emitting diode
Light-emitting diode
A light-emitting diode is a semiconductor light source. LEDs are used as indicator lamps in many devices and are increasingly used for other lighting...
) on and off. In the Wiring environment, the user might write a program like this:
When the user clicks the "Upload to Wiring hardware" button in the IDE, a copy of the code is written to a temporary file with an extra include header at the top and a very simple main function at the bottom, to make it a valid C++ program.
The Wiring IDE uses the GNU toolchain
GNU toolchain
The GNU toolchain is a blanket term for a collection of programming tools produced by the GNU Project. These tools form a toolchain used for developing applications and operating systems....
and AVR Libc to compile programs, and uses avrdude to upload programs to the board.
Open hardware and open source
The Wiring hardware reference designs are distributed under a Creative CommonsCreative Commons
Creative Commons is a non-profit organization headquartered in Mountain View, California, United States devoted to expanding the range of creative works available for others to build upon legally and to share. The organization has released several copyright-licenses known as Creative Commons...
Attribution Share-Alike 2.5 license and are available on the Wiring Web site. Layout and production files for the Wiring hardware are also available. The source code for the IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
and the hardware library are available and released under the GPLv2
Processing
Wiring was based on the original work done on ProcessingProcessing (programming language)
Processing is an open source programming language and integrated development environment built for the electronic arts and visual design communities with the purpose of teaching the basics of computer programming in a visual context, and to serve as the foundation for electronic sketchbooks...
project in MIT.
Arduino and Fritzing
Wiring and ProcessingProcessing (programming language)
Processing is an open source programming language and integrated development environment built for the electronic arts and visual design communities with the purpose of teaching the basics of computer programming in a visual context, and to serve as the foundation for electronic sketchbooks...
have spawned another project, Arduino
Arduino
Arduino is an open-source single-board microcontroller, descendant of the open-source Wiring platform, designed to make the process of using electronics in multidisciplinary projects more accessible. The hardware consists of a simple open hardware design for the Arduino board with an Atmel AVR...
, which uses the Processing IDE together with a simplified version of the C++ programming language as a way to teach artists and designers how to program microcontroller
Microcontroller
A microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM...
s. There are now two separate hardware projects, Wiring and Arduino
Arduino
Arduino is an open-source single-board microcontroller, descendant of the open-source Wiring platform, designed to make the process of using electronics in multidisciplinary projects more accessible. The hardware consists of a simple open hardware design for the Arduino board with an Atmel AVR...
, using the Wiring environment and language.
Fritzing
Fritzing
Fritzing is an open source software initiative to support designers and artists ready to move from physical prototyping to actual product. It was developed at the University of Applied Sciences of Potsdam.- Goals :...
is another software environment within this family, which supports designers and artists to document their interactive prototypes and to take the step from physical prototyping to actual product.
See also
- ArduinoArduinoArduino is an open-source single-board microcontroller, descendant of the open-source Wiring platform, designed to make the process of using electronics in multidisciplinary projects more accessible. The hardware consists of a simple open hardware design for the Arduino board with an Atmel AVR...
- BASIC StampBASIC StampThe BASIC Stamp is a microcontroller with a small, specialized BASIC interpreter built into ROM. It is made by Parallax, Inc. and has been popular with electronics hobbyists since the early 1990s because of its low threshold of learning and ease of use due to its simple to understand BASIC...
- FritzingFritzingFritzing is an open source software initiative to support designers and artists ready to move from physical prototyping to actual product. It was developed at the University of Applied Sciences of Potsdam.- Goals :...
- Rabbit SemiconductorRabbit SemiconductorRabbit Semiconductor is the company which designs and sells the Rabbit family of microcontrollers and microcontroller modules.For development, it provides Dynamic C, a non-standard dialect of C with proprietary structures for multitasking....
- Make Controller Kit
- OOPicOOPicThe OOPic is an Object Oriented Programmable Integrated Circuit. Created by Savage Innovations, this PIC microcontroller comes with an IDE that supports programming in syntaxes based on the BASIC, Java and C programming languages.There are three versions currently on the market: the , the and the...
- Parallax PropellerParallax PropellerThe Parallax P8X32A Propeller chip, introduced in 2006, is a multi-core architecture parallel microcontroller with eight 32-bit RISC CPU cores....
- PICAXEPICAXEPICAXE is the name of a UK-sourced microcontroller system based on a range of Microchip PICs. There are 13 PICAXE variants of differing pin counts from 8 to 40 pins. Initially marketed for use in education and by electronics hobbyists, they are also used in commercial and technical fields,...
- GumstixGumstixGumstix is a company founded in 2003 by Gordon Kruberg that produces small single-board computers. The name Gumstix refers to the size of the first such computer being the approximate size of a stick of gum....
External links
- http://wiring.org.co/
- http://www.processing.org/
- http://www.arduino.cc/
- http://www.fritzing.org/