Computación Física: Introducción al Arduino Félix E. Guerrero – primavera 2008
Qué es Arduino? • Una plataforma para explorar la interacción entre las computadoras (un microcontrolador) y el mundo físico • Basado en Wiring (otro circuito) • Programado en Processing (un lenguaje / entorno de programación)
• El microcontrolador es fabricado por Atmel. El modelo es ATMega168 • Ese microcontrolador fue diseñado pensando en programación en C • El mundo físico -> sensores, actuadores
Razón Poderosa The designer of the AVR purposefully arranged its registers and instruction set so that C programs would compile efficiently on it. This is a big deal, compared to previous microcontrollers where C programs were almost always less efficient than a hand-coded assembly language variant. Machineproject – Tod E. Kurt
Wiring • Proyecto de Hernando Barragán (Colombia)
Processing • Proyecto Open Source iniciado por C.E.B. Reas y Benjamin Fry del MIT Media Lab
Filosofía • Processing, Wiring, Arduino comparte una filosofía abierta – Open Source y Open Hardware • Ha habido algunos conflictos (p.ej. se oponen al uso de “la marca” Arduino en otros proyectos) • Gracias a su apertura, el número de proyectos es inmenso
Arduino Diecimila • Conexión USB • Alimentación interna / externa (6 a 12 V) • 14 entradas / salidas digitales (6 salidas PWM) • 6 entradas análogas • 16 KB de memoria Flash (2 KB los usa el bootloader)
Arduino Diecimila • • • •
1 KB de RAM 512 bytes EEPROM Programación en C El reset se hace por software • Es autónomo, una vez programado no necesita una computadora
Arduino: partes que lo integran
Entradas y Salidas • Cada uno de los 14 pines digitales puede configurarse como entrada o salida • Funcionan con 5 V (niveles TTL) • Cada pin puede entregar o recibir 40 mA • Tienen una resistencia configurable de pull-up de 20 a 50 KOhms (desactivada inicialmente) • Pines 3, 5, 6, 9, 10, y 11 pueden entregar salidas PWM
Precaución • Pin 0 y Pin 1 son utilizados para la comunicación USB • Si están conectados no se podrá programar el Arduino
Entradas Análogas • Las 6 entradas análogas tienen 10 bits de resolución (de 0 a 1023) para voltajes de entrada de 0 a 5 V • Se puede cambiar la referencia utilizando el pin AREF y algo de código
Protección • Hay un fusible para evitar corrientes mayores a 500 mA en el bus USB
Versiones oficiales de Arduino • Diecimila (ya lo conocemos) • Mini • Adaptador mini USB
Versiones oficiales de Arduino • • • •
LilyPad Bluetooth Serial PCB de una cara
Versiones no oficiales • Freeduino / BoArduino
Versiones no oficiales • Barebones Arduino (el causante del problema)
Open Hardware • Tú puedes hacer tu propia versión • Nadie te dirá “pirata” • Puedes compartirla • Hacer dinero
PERO ARDUINO TAMBIÉN ES EL SOFTWARE
Software de Arduino • Basado en Processing (un lenguaje de computación) • Programado en Java • Permite editar, compilar y cargar el programa desde el IDE (Integrated Development Environment) • Carece de depurador paso a paso (como el ICD de Microchip)
Terminología • “sketch” – un programa que se ejecuta en el Arduino • Pin, digital, análogo, PWM, FTDI
Muestras • Wiring (coffee beans) • Processing (demos y tutorial breakout)
HeartBeans (1:12)
Modificando Breakout (3:34)