Guía para Makers Primerizos

Publicado en

Desde hace tiempo tienes pendiente entrarle al “mundo maker” pero no estás seguro de qué herramientas y accesorios necesitas tener para iniciar, y la variedad existente intimida más de lo que ayuda. No te preocupes, sabemos cómo te sientes y estamos aquí para ayudarte.

Debemos aclarar que saber electrónica no implica ser maker, hay makers de distintas áreas como carpintería, metal o biología, para ser maker no es necesario saber manejar electrónica pero ayudará mucho a que tus proyectos se vean más vistosos y tengan nuevas funcionalidades.

Microcontroladores y tabletas (boards)

Un componente esencial de un proyecto es una tableta con microcontrolador. El microcontrolador es el cerebro de nuestro proyecto que programamos para lograr el comportamiento deseado.

Arduino. Las tabletas Arduino son la referencia del mundo maker por su facilidad de uso, bajo costo y amplio ecosistema. El modelo más popular es la tableta Arduino UNO (ver figura 1), que utiliza un microcontrolador ATmega328P que opera a una frecuencia de 16 MHz e incluye 32KB de memoria. Sí, como te podrás dar cuenta, no es un procesador muy poderoso, pero es más que suficiente para la mayoría de los proyectos (por ejemplo: detectar la señal de un sensor y disparar una acción). Cabe mencionar que estos son microcontroladores que se programan directamente, es decir que no ejecutan un sistema operativo (a excepción de modelos específicos como el Yun).

A raíz de su éxito, se han diseñado distintos modelos de tabletas Arduino para atender necesidades específicas. Algunas de las más conocidas son:

  • Mega: hermano mayor del Arduino UNO. Cuenta con un mayor número de entradas y salidas digitales, analógicas y puertos de comunicación.
  • Lilipad: una edición creada en exclusiva para wearables, su forma es circular y tiene conectores especialmente diseñados para hilo conductivo. La tienda Adafruit cuenta con una versión similar llamada FLORA que ya tiene un adaptador para baterías recargables y pequeñas. Es excelente para colocarlo en gorras, playeras o zapatos.
  • Yun: versión diseñada para escenarios de internet de las cosas. Incluye nativamente comunicación WiFi, puerto USB OTG para conectar dispositivos USB, un puerto ethernet y un sistema embebido Linux en el que puedes almacenar una página web y datos de sensores o actuadores.
  • 101: la más reciente creación de Arduino en conjunto con Intel. Utiliza un sistema en chip Quark de 32-bit (“Intel Curie”) que le da bastante poder con un bajo uso de energía. Además incluye conectividad Bluetooth 4.0, acelerómetro de 6 ejes, circuito de carga de baterías y procesador de señales.
  • Nano: una versión más pequeña del Arduino UNO, cuenta con prácticamente las mismas características que éste pero es mucho más pequeño lo que permite desarrollar proyectos a una menor escala.
  • ATTiny85: ideal para la miniaturización de proyectos, el ATTiny85 es un microcontrolador del tamaño de una uña, comparable con el circuito integrado 555 por sus 8 patillas.

Dado que Arduino es hardware abierto, es posible comprar tabletas similares hechas por distintos fabricantes. No es que sean copias “piratas”, sino que simplemente cada fabricante puede hacer su propia implementación, siempre y cuando respete las especificaciones del hardware y de uso de la marca Arduino.

Dependiendo del modelo y fabricante, una tableta Arduino típicamente se puede adquirir por entre 10 y 40 dólares.

Raspberry Pi. Otro producto con gran popularidad es la Raspberry Pi. A diferencia de Arduino, que es un “single-board microcontroller”, Raspberry Pi es un “single-board computer”, es decir una computadora completa (con procesador, memoria, almacenamiento, soporte para monitor externo, entrada para teclado y mouse, etcétera) integrada en una tableta casi del tamaño de una tarjeta de crédito. Cuenta con procesador de hasta 1 GHz y hasta 1GB de RAM de capacidad, así que no es tan poderosa como tu computadora personal, pero sí tiene el poder suficiente para correr versiones optimizadas de Linux y funcionar como servidor de propósito específico. Otra diferencia de Raspberry Pi con tu computadora personal es que tienes a tu disposición sus pines digitales (GPIO) para controlar leds, motores, sensores y comunicarte con otros dispositivos usando los programas que regularmente encuentras en tu computadora con Linux. Actualmente existen tres modelos:

  • B+: cuenta con un procesador a 700MHz y 512MB en RAM. Tiene un precio de lista en Estados Unidos de 30 dólares y en México se puede conseguir por alrededor de 800 pesos.
  • Pi 2: el modelo más poderoso, con procesador Dual Core a 1GHz y 1GB de RAM. 40 dolaritos en EUA o alrededor de 900 pesos en tiendas locales.
  • Zero: el modelo más reciente, compacto y económico. Procesador a 1GHz y 512MB en RAM, puerto mini USB y mini HDMI. Su tamaño es tal que la puedes llevar en tu bolsillo o de llavero. Pero lo mejor es su precio, tan solo 5 dólares. Viene para hacer realidad que todos tengamos una computadora en nuestro bolsillo.

La Raspberry Pi es ideal para montar centros de entretenimiento, así como servidores con Asterisk o NodeJS. Otro uso común es en kioscos o computadoras de propósito específico.

Dada la popularidad tanto de Arduino como de Raspberry Pi, es común encontrarse con la pregunta ¿cuál es mejor? o ¿cuál debo usar para empezar? La respuesta es que no hay punto de comparación, ya que Arduino UNO es un microcontrolador de 8 bits enfocado a funciones sencillas y de bajo consumo de energía, mientras que Raspberry Pi es una computadora completa con sistema operativo. No se pueden comparar porque no tienen las mismas funciones, al contrario se complementan y podrás encontrar varios proyectos en la red donde se usan ambas.

Intel Edison. Otro producto notable es Intel Edison, un módulo de cómputo miniatura (alrededor de una estampilla postal) que contiene un procesador Atom dual core a 500MHz, 1GB de RAM y 4GB de memoria flash, conectividad WiFi y Bluetooth 4, USB OTG y 40 pines GPIO. Dado que solo es un módulo de cómputo, es necesario empotrarlo en una tarjeta (breakout board) para poder darle energía e interacción con periféricos. Edison es compatible con Arduino por lo que puedes programarlo con el mismo IDE, y utilizar los mismos periféricos.

ESP8266. Es un “system-on-a-chip” para conectividad WiFi (802.11 b/g/n). Su gran atractivo es su precio, de tan solo 7 dólares. También es compatible con Arduino así que puede integrarse fácilmente con tabletas y periféricos para este sistema. Se puede utilizar en escenarios stand-alone o como módulo auxiliar para brindar conectividad WiFi a otros dispositivos.

Periféricos

Ya vimos qué necesitamos para construir el cerebro y cuerpo de nuestra creación, pero ahora necesitamos que pueda interactuar con el exterior.

Sensores. Los sensores son pequeños dispositivos que dotan de “sentidos” a nuestras creaciones para que puedan ver, escuchar, sentir y medir lo que sucede en el mundo físico. Entre los sensores más comunes están los de temperatura, luz, movimiento (acelerómetro), ubicación (GPS), peso, humedad, gas, fuego, acidez, etcétera. Los sensores pueden ser digitales (la señal que entregan es 1s y 0s) o analógicos. La mayoría tienen librerías para controlarlos de manera sencilla.

Actuadores. Una vez que nuestra creación conoce el entorno que lo rodea por medio de los sensores, típicamente queremos realizar alguna actividad dependiendo de ciertos eventos. Por ejemplo, “si se elevó la temperatura entonces activa un ventilador”, “si hay demasiada humedad entonces enciende el foco”. Modificamos nuestro entorno por medio de actuadores que son los “brazos” de nuestra creación. Algunos de los más comunes son: LEDs, pantallas LCD, motores (servomotores, motores a pasos, brushless o de corriente directa), relevadores, ventiladores, timbres (buzzer). Existe una gran variedad de actuadores, pero ten cuidado porque algunos no se pueden conectar directamente a tu tarjeta y tendrás que usar algun circuito de control o acoplamiento para no dañar el circuito. Siempre lee antes la documentación de tu sensor o actuador.

Shields. Si soldar cables no es tu fuerte, no temas. La comunidad ha desarrollado para Arduino lo que se llaman shields, que son módulos compatibles con Arduino que se conectan fácilmente y expanden sus funcionalidades. En el mercado hay una gran cantidad de shields compatibles con Arduino que fácilmente dan capacidades como: GPS, Ethernet, WiFi, motores, comunicación por red celular.

HATs. Los hats (sombreros) son como los shields pero para Raspberry Pi. Se pueden encontrar en dos variedades: con memoria o sin memoria. Los que tienen memoria permiten que la Raspberry Pi reconozca por medio de device tree el tipo de HAT que es, el fabricante, configuración inicial e información adicional para facilitar su interoperación.

Fuentes. Nuestras creaciones requieren energía para operar. Existen distintas opciones dependiendo de las necesidades. Para proyectos que pueden estar en un lugar fijo y tienen acceso a una toma de corriente, se puede usar una fuente con un adaptador que típicamente alimenta a nuestra tableta por medio de un puerto microUSB o una entrada dedicada para energía; solo hay que tener cuidado de que el voltaje sea el adecuado y que puede entregar el amperaje requerido. Para proyectos portátiles típicamente se utilizan baterías; solo ten cuidado porque algunas son flamables e incluso puede llegar a explotar. Un buen maker también busca reciclar baterías existentes de otros dispositivos que ya no se utilicen, como tabletas, celulares y laptops; solo ten mucho cuidado al experimentar y fíjate bien en las especificaciones. En internet puedes encontrar cargadores genéricos para cargar baterias LiPo. Otra posibilidad más es la de utilizar celdas solares; también se pueden usar en complemento con baterías.

littleBits. Si tienes miedo a todo lo mencionado anteriormente, o estás buscando algo para los más pequeños de la familia, litteBits puede ser una excelente opción (ver figura 5). Estos pequeños bloques electrónicos incluyen imanes para simplificar al máximo la conexión de componentes (no queremos que tu primera experiencia sea un corto). Hay bloques con sensores, motores, leds e incluso de Arduino, todos lo módulos son open source y la compañía ya cuenta con una gran comunidad que está generando tutoriales de como iniciar y crear cosas geniales.

Lenguajes y herramientas de programación

¿Qué lenguajes y herramientas utilizamos para programar? A continuación listo las principales opciones.

C. El lenguaje C es la base de la programación para sistemas embebidos debido a su alto desempeño y eficiencia, además de que permite llegar a bajo nivel para acceder al hardware.

IDE Arduino. No es un lenguaje de programación como tal, pero es una excelente opción para nuevos makers. El lenguaje que utiliza se llama Processing, y es muy similar a C pero más sencillo. Es software libre, multiplataforma y tiene un gran soporte por la comunidad.

Python. Es un lenguaje excelente para enseñar a programar por su limpia sintaxis. La mayoría de los ejemplos y librerías de Raspberry Pi utilizan este lenguaje por default.

Javascript. Hoy en día encontramos javascript en todos lados, incluyendo los dispositivos embebidos. Esto se logra por medio herramientas como johnny five o directamente podemos utilizarlo en sistemas con sistema operativo Linux con nodejs con bibliotecas como MRAA que soporta tarjetas como Intel Edison, Galileo, Banana Pi, Beagle Bone o Raspberry Pi, si eres programador de web esto te facilitará la curva de aprendizaje y es una buena opción para iniciar.

Scratch. Es un ambiente de programación visual con bloques creado para enseñar a los niños la logica de programacion con una interfaz divertida. Tiene soporte oficial en Raspberry Pi y hay herramientas para adaptarlo a Arduino.

TouchOSC. Es una aplicación que trabaja con el protocolo OSC (Open Sound Control). Este protocolo permite la comunicación por WiFi entre dispositivos como Arduino, Raspberry Pi, BeagleBone o incluso con la computadora, por medio de un smartphone o tablet. Ideal para el control de carritos, drones, robots, leds, secuencias, etcétera. Si buscas integrarlo con Arduino, busca información en la web sobre cómo hacer esto con una aplicación en Processing; necesitarás la librería osc5, que puedes encontrar fácilmente en internet. La conexión con Raspberry Pi es más sencilla, pero requiere saber programar en Python y usar el módulo pyOSC.

Processing. Para proyectos que requieren de interfaces controladas desde la computadora, te lo recomiendo. Su IDE es sumamente parecido al IDE de Arduino por lo que no te será muy complicado de entender. Para el control de dispositivos se requiere de una librería llamada controlP5, que también puedes encontrar muy fácil en internet. Como nota adicional, existe un protocolo llamado Firmata, el cual puedes cargar a tu tableta desde el IDE de Arduino y te servirá para controlar tu Arduino desde Processing.

Donde comprar

Algunas tiendas geniales con productos para tus proyectos, tutoriales, buen soporte y que hacen envíos a México, son:

  • 330 ohms (México)
  • 5Hertz (México)
  • Talos Electronics (México)
  • Banshee (México)
  • Adafruit (EUA)
  • SparkFun (EUA)
  • SeedStudio (China)

Por último, si tienes dudas acércate a tu hackerspace o makerspace más cercano. Vía internet también puedes hacerlo a través del grupo de facebook “Makers México” donde encontrarás una gran comunidad con gente dispuesta a ayudarte, e información sobre eventos y charlas relacionadas al DIY.

¡Hasta la proxima, makers!

Bio

Andrés Sabas (@sabasacustico) es un maker apasionado y cofundador de The Inventor’s House Hackerspace y Coworking en Aguascalientes.

Pedro A. González (@piridoxina) es un Ing en Mecatrónica, entusiasta del desarrollo de sistemas open hardware y miembro activo de la comunidad tecnológica Tequila Valley Cancún.