jueves, 19 de abril de 2012

[CÓMPUTO INTEGRADO] Taller de programación de Arduino

Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.

El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Los microcontroladores más usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque (boot loader) que corre en la placa.

Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino (basasdo en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP).
Librerias

Las Librerías proveen funcionalidad extra a nuestro sketch, por ejemplo: al trabajar con hardware o al manipular datos. 

Librerías Estándar:
  • EEPROM - Para leer y escribir en memorias "permanentes".
  • Ethernet - Para conectar a internet usando el Ethernet Shield?.
  • Firmata - Para comunicarse con aplicaciones en la computadora usando un protocolo estándar Serial.
  • LiquidCrystal - Para controlar Displays de cristal líquido (LCD)
  • Servo - Para controlar servomotores
  • SoftwareSerial - Para la comunicación serial de cualquier pin digital.
  • Stepper - Para controlar motores paso a paso (Stepper motors)
  • Wire - Interfaz de dos cables, ó Two Wire Interface (TWI/I2C), para enviar y recibir datos a través de una red de dispositivos y sensores.



Estas librerías son compatibles con versiones de Wiring. Los siguientes enlaces apuntan a la (excelente) documentación de Wiring:

  • Matrix - Librería para manipular displays de matrices de LED básicas.
  • Sprite - Librería básica para manipulacion de sprites para usar en animaciones con matrices de LEDs.
Librerías Contribuídas

Comunicación (networking y protocolos):
  • Messenger - Para procesar mensajes de texto desde la computadora.
  • NewSoftSerial - Versión mejorada de la librería SoftwareSerial.
  • OneWire - Controla dispositivos (de Dallas Semiconductor) que usan el protocolo One Wire.
  • PS2Keyboard - Lee caracteres de un teclado PS2.
  • Simple Message System - Envía mensajes entre Arduino y la computadora.
  • SSerial2Mobile - Envía mensajes de texto o emails usando un teléfono móvil (via comandos AT a través de software serial)
  • Webduino - Librería de web server extendible (para usar con Arduino Ethernet Shield)
  • X10 - Para enviar señales X10 a trav{es de lineas de corriente AC.
  • XBee - Para comunicaciones entre XBees en modo API.
  • SerialControl - Para controlar remotamente otras Arduino a través de una conexión serial.
IDE

Arduino cuenta con su propio lenguaje de programación y un IDE. El entorno de Desarrollo Arduino está constituido por un editor de texto para escribir el código, un área de mensajes, una consola de texto, una barra de herramientas con botones para las funciones comunes, y una serie de menús. Permite la conexión con el hardware de Arduino para cargar los programas y comunicarse con ellos.
Lenguajes

Existen distintos lenguajes diseñados para arduino, sin embargo es posible programarlo con otros lenguajes ya existentes mediante el uso de librerias.

Ardublock: Es un lenguaje de programación para arduino basado en gráficos, diseñado para los que no tienen conocimientos de programación, pero quieren iniciarse en ese mundo.


Python: Es posible utilizar python con arduino mediante la libreria pySerial.

Python Arduino Prototyping API: Es otra libreria especial para arduino basada en python.

Placas

La plataforma arduino cuenta con distintas placas de acuerdo con las necesidades de la persona.

Arduino Mega: Es con mucha diferencia el más potente y el que más i/o tiene, apto para trabajos ya algo más complejos aunque tengamos que sacrificar un poco el espacio, cuenta con el microcontrolador Atmega1280 con más memoria para el programa, más RAM y más pines que el resto de los modelos.
Arduino Bluetooth: incorpora un módulo para la transmisión de datos de hasta 100 metros, con esta placa podras programar sin cables asi como también realizar comunicaciones serie con cualquier dispositivo bluetooth.

Arduino Pro: Más robusto y mejor acabado final; incorpora funcionalidades interesantes tales como un conector especial para conectar una batería LiPo y realizar un montaje portatil.

Arduino Nano: Su principal ventaja es que puede ser pinchado directamente sobre una protoboard haciendo muy cómodo el prototipado al igual que el Arduino mini.

Arduino Duemilanove:  Es la placa estándar.

Arduino Diecimila: A pesar de ser el mismo modelo que el duemilanove pero en su versión anterior lo cito porque aún hay algunas tiendas con él en stock; la principal desventaja es que trae el chip atmega168 frente al atmega328 del duemilanove que es más potente aunque perfectamene compatibles respecto a patillaje y programación.

Arduino Mini: Versión miniaturizada de la placa Arduino. Mide tan sólo 30x18mm y permite ahorrar espacio en los proyectos que lo requieran. Las funcionalidades son las misma que Arduino Duemilanove.
Arduino UNO: Es la denominación para la última placa de la serie con usb integrado. Es equivalente a Duemilanove.

Clones

Como arduino es hardware libre, es completamente valido crear nuestro propio modelo a nuestro gusto, de ahí salen distintos clones que ofrecen cosas como mayor cantidad de pines o microcontroladores más potentes.

BeeBoard: Un clon de arduino con Atmel ATMEGA328 pero de tan solo 40x40 mm.

Oak Micros om328p: Basado en el Atmel ATMEGA328p, un clon compatible con arduino, tiene 28 pines.

Solo son algunos ejemplos de los muchos que se encuenran en esta página.

1 comentario: