Menu

1.3 Extra: Autodesk Circuits

El desarrollo y éxito de muchos proyectos de Código Abierto y de la comunidad Maker en el mundo han hecho que grandes compañías ofrezcan distintos productos de manera gratuita que nos pueden servir de mucha ayuda para nuestros proyectos.

Este es el caso de Autodesk, con su Circuits.io, un simulador web de circuitos electrónicos, lo puedes encontrar en:

https://circuits.io

Interface de Autodesk Circuits Lab View


y aquí un par de buenos vídeos de como usarlo:

https://www.youtube.com/watch?v=p6MX_6R4EFs

https://www.youtube.com/watch?v=-PJKIXabDnE

Guaroduino

1.9 Recuento del Capitulo I

Con esto culminamos el primer capitulo de nuestro tutorial, la introducción a la plataforma Arduino.

Lo podemos resumir en lo siguiente:

  • La plataforma Arduino esta conformada por Hardware (las placas, shields y accesorios compatibles) y Software (la IDE y las librerías para los accesorios).
  • Existe una diversidad de placas con distintas capacidades, costos y formas.
  • Los accesorios disponibles se pueden clasificar como Sensores y Actuadores, los sensores permiten extraer información del contexto y los actuadores permiten modificar de algún modo el contexto.
  • Existen accesorios fabricados especialmente para la plataforma Arduino que reúnen los sensores y actuadores mas comúnmente usados y se llaman Shields.
  • Para programar se usa la Arudino IDE, utilizando una versión simplificada del lenguaje C++.


Para el próximo capitulo es recomendable tener una placa Arduino a la mano y algunos componentes como LEDs y resistencias.

En caso de que no los tengas disponibles puedes usar un simulador (para esta primera etapa es posible, mas adelante el simulador quedara corto), te recomiendo: Autodesk Circuits, corre en la web y lo puedes encontrar en este link:

https://circuits.io/

(por ahora solo esta en ingles, pero la interface es muy intuitiva y con suficiente información gráfica)

Es una herramienta muy valiosa para hacer y probar códigos simples de manera rápida.

Guaroduino

1.8 Programando con Arduino



Captura de pantalla de la Arduino IDE

Splashscreen de la Arudino IDE 1.6.4

Hasta ahora hemos revisado el hardware disponible en la plataforma Arduino: Placas, Sensores, Actuadores y Shields, nada de este hardware sera de valor sino lo hacemos funcionar para nosotros, esto lo lograremos programando nuestra placa Arduino según nuestras necesidades.

Una de las maravillas de la plataforma Arduino es lo simple de su programación básica, claro para implementaciones mas avanzadas es necesario pasar a programaciones mas complejas, pero usando la programación básica es mucho lo que se puede lograr.

La base para la programación de las placas Arduino es la Arduino IDE (Integrated Development Environment: Ambiente Integrado de Desarrollo), un programa con versiones para Windows, MAC y Linux que permite escribir y subir el código a tu placa.

En la comunidad Arduino los códigos que se cargan a la placa son llamados "sketch", bocetos, los bocetos son la serie de instrucciones que seguirá la tarjeta.

Los bocetos son escritos en la Arduino IDE, usando una versión simplificada de C++ la cual respeta muchos de los formatos de este lenguaje de programación, esto lo veremos a lo largo del tutorial.

Para usar los distintos accesorios (sensores y actuadores) compatibles los vendedores o usuarios desarrollan bocetos particulares llamados "librerías" que permiten acceder de manera simple a las funciones del accesorio desde nuestros propios bocetos, estas librerías también son de código abierto y cualquiera las puede editar, mejorarlas o adaptarlas a su aplicación particular, esto hace que sea un poco difícil a veces conseguir la librería exacta, por lo que es muy importante saber recurrir a la documentación oficial de cada accesorio, en Guaroduino trataremos de mantener nuestra propio banco de librerías probadas para facilitar su implementación.

La Arduino IDE viene con varias librerías por defecto, que permiten usar accesorios comunes como LCDs, servos, Modulo Ethernet, Buzzers entre otros.

La Arduino IDE funciona con todas las placas compatibles con Arduino, incluso las no oficiales.

La Arduino IDE la puedes descargar del link oficial:

https://www.arduino.cc/en/Main/Software

haz clic en tu sistema operativo y bajara un ejecutable para su instalación.

Guaroduino

1.7 Arduino Shields



CNC Shield en un Arudino UNO

LCD+Keypad Shield

Motor Shield

Multifuncion Shield

ProtoShield

Sensor Shield

Ethernet Shield



Hemos visto como la plataforma Arduino es compatible con gran cantidad de perifericos: Sensores y Actuadores.

Los Shields son tarjetas, que usualmente tiene  la forma de un Arduino UNO, las cuales pueden ser conectadas directamente encima de un Arduino (o una tarjeta compatible) para agregar funciones basadas en distintos sensores y actuadores o para simplemente facilitar su conexión con la placa.

Algunos ejemplos de Shields:


  • Shield Ethernet: Permite a la placa conectarse a Internet o a una LAN



  • Motor Shield: Permite conectar y controlar facilmente motores DC, motores PaP o Servos.



  • CNC Shield: Convierte a tu Arduino UNO en un controlador de maquinaria CNC de hasta 4 ejes.



  • Sensor Shield: Permite conectar de manera facil sensores y actuadores al Arduino.



  • Shield Multifuncion: Agrega una pantalla 4 digitos 7 segmentos, un buzzer, botones, y facilita la conexion de otros sensores a la placa Arduino.



  • LCD+Keypad Shield: Agrega un LCD 16x2 y varios botones a la placa Arudino.



  • ProtoShield: te permite prototipar o fabricar tu propio shield segun tus necesidades.


y muchos otros.

Es importante resaltar que los shields por si mismos no funcionan, necesitan de una placa Arduino para funcionar.

Tambien se pueden colocar uno encima de otro para agregar mas funciones. (Algunos son compatibles con otros, pero no siempre)


1.6 Actuadores



LCD 16x2

Motor Paso a Paso Nema 17

Modulo de 2 Relays
Modulo Ethernet
Módulos RF24

Servo Motor



En el articulo anterior revisamos como los sensores nos permiten medir los cambios en el entorno, esta información la procesaría nuestra Arduino, podríamos llegar hasta este punto y tener un sistema grabador de variables, pero esto podemos dar un paso mas y hacer que nuestro Arduino cambie o afecte su entorno de alguna manera, esto lo logramos usando los Actuadores.

Actuadores es un termino extremadamente genérico, estos pueden ser desde un simple LED hasta una computadora entera, pasando por pantallas LCD para mostrar información, por otro lado pueden ser desde un servo para hobby, motores DC, Motores paso a paso, Relays, transistores entre otros para afectar el entorno, y también existen módulos de comunicación que permiten transmitir o recibir información inalambrica, ethernet, Wifi, señal celular, por radio entre otros.

Igual que en el caso de los sensores, la plataforma Arduino es compatible con gran cantidad de Actuadores, igual que anteriormente la cantidad de información que hay al respecto resulta abrumadora por lo que siempre es recomendable comenzar con fuentes oficiales como la pagina de Arduino.

De manera análoga a los sensores, también existe una división en los actuadores, pero aquí todas las formas de comunicación son Digitales, la diferencia esta en el formato de esa señal.

En algunos actuadores sencillos como los Relay, basta con los dos estados posibles de un pin Digital normal para controlarlos: 0 desactivado, 1 activado.

Para actuadores mas complejos como las LCD o los módulos de comunicación, el control es mas complejo, pero también a través de pines digitales controlados por las librerías desarrolladas para cada modulo (En esto esta lo esencial y el verdadero poder de la plataforma Arduino, no es necesario comprender todo el funcionamiento de un modulo para usarlo, sino solo saber como aplicar la librería desarrollada para el mismo).

Hay un ultimo tipo de Actuadores, como los servos, que si bien son controlados por pines Digitales, reciben un formato especial de señal llamano PWM, los pines capaces de realizar PWM están identificados con el símbolo ~ en las placas, esos pines son capaces de cambiar de estado muy rápidamente, lo que un actuador como un servo lo interpreta como una proporcionalidad, esto lo veremos mas claramente al hablar de los servos.

Podemos observar que la plataforma Arudino es compatible con un gran numero de Sensores y Actuadores, lo que nos permite tener una gran flexibilidad en nuestros proyectos.

1.5 Sensores

Esta claro que las placas Arduino son muy interesantes en si mismas, pero solas no es mucho lo que pueden hacer, les debes conectar algo para que hagan algo. Este algo los podemos dividir en dos grandes grupos: Sensores (Entradas) y Actuadores (Salidas).

Sensores:

Son dispositivos que permitirán a la Arduino "sentir" su entorno, es decir poder medir distintas variables del ambiente o contexto donde estará operando. Estas variables abarcan un amplio rango, piensa en algo que varié en el tiempo y seguro habrá un sensor o una forma de usar un sensor que permita medir ese cambio. Algunos ejemplos serian: Intensidad de luz, temperatura, grado de flexión, presión, proximidad, aceleración, concentración de algún gas, radiactividad, humedad, presión atmosférica entre otras. 
Sensores compatibles con Arudino
En general existen dos tipos de sensores: Sensores Digitales y Sensores Análogos.

Sensores Digitales: estos sensores arrojan un valor digital (0 y 1) normalmente ya corregido se su lectura.

Sensores Análogicos: estos sensores arrojan un valor análogo como voltaje normalmente entre 0V y 5V o entre 0V y 3.3V, es decir su salida de voltaje es proporcional a la variable que están midiendo.

Esta clasificación quedara mas clara en las practicas mas adelante, por ahora cabe destacar que los Sensores Digitales en general son mas costosos que los Sensores Análogos y su implementacion en los programas es fácil, mientras que los Sensores Análogos son mas económicos, pero su implementación en los programas en mas difícil.

Termómetros

Un ejemplo bastante ilustrativo de la diferencia entre un tipo de sensor y otro lo podemos encontrar comparando un Termómetro Digital con un Termómetro de Mercurio.


Un termómetro digital, que seria análogo a un sensor digital, arroja un valor ya corregido, en un lenguaje que fácilmente podemos entender (Caracteres en una LCD) y que podemos usar directamente sin procesarlo (ya el micro controlador del Termómetro hizo el trabajo), por otro lado en un termómetro de mercurio, que seria análogo a un sensor analógico, no arroja un valor de temperatura, arroja es la expansión del mercurio que es proporcional a la temperatura que sensa el termómetro, esta expansión es comparada con la escala gráfica en el fondo por nuestro cerebro lo que nos hace estimar un resultado de la temperatura el cual ya podemos usar. ¿Cual es mas facil de usar? ¿Cual es mas costoso?.

Las placas Arduino poseen tanto pines Digitales como pines Análogos para conectar los dos tipos de sensores lo que nos permite tener mucho rango de acción a la hora de diseñar un proyecto o la solución a un problema.

Hay muchos tutoriales sobre la infinidad de sensores disponibles en el mercado, Si bien esta claro que la característica código libre de la plataforma Arduino es uno de sus fuertes, a veces, para un principiante eso puede resultar una "desventaja" por la gran cantidad de información, herramientas y productos disponibles y la multitud de maneras de llegar o cumplir con un objetivo puede causar que la búsqueda de información y guía llegue a ser abrumadora.

Mi recomendación principal es primero buscar información en la documentación de la pagina oficial de Arduino: 


En caso de no conseguir lo necesario, puedes revisar otros enlaces tales como:

www.prometec.com

http://blog.bricogeek.com/

y claro pronto aquí en guaroduino conseguiras toda esa información.

Guaroduino








1.2 Extra: Arduino Comic!

En los foros oficiales de Arduino esta disponible este comic que sirve de introduccion basica a la plataforma:

http://playground.arduino.cc/uploads/Main/arduino_comic_es.pdf

Guaroduino

1.4 Otras placas Arduino y compatibles



Distintas placas Arduino y compatibles
Arduino UNO Generico

Arduino UNO Robodyn

Arduino LEONARDO

Arduino MEGA

Arduino NANO

Arduino PRO Mini

Digispark Attiny85

Existen gran variedad de placas Arduino, tanto originales como compatibles, anteriormente vimos la Arduino UNO, que sin duda es la mas popular, compararemos las otras placas con ella.

Arduino UNO Genérico: Es una placa 100% compatible con Arduino pero mas económica, utiliza el mismo chip Atmega328p pero en formato SMD (montaje superficial) y para la comunicación USB se vale del chip CH340 por lo que necesita de un driver diferente al del Arduino UNO original.

También existes Arduino Mega Genérico y Arduino NANO Genérico, totalmente compatibles con los originales pero usan el chip CH340.

También existen otras placas con el formato de la Arudino UNO pero que incorporan otras funciones como pines adicionales, otro tipo de conectores entre otras cosas.

Arduino Leonardo: Parecido a un Arduino UNO pero su micro controlador principal es directamente compatible con el formato USB por lo que puede emular otros dispositivos como teclado y mouse de manera sencilla. En general es compatible con los códigos para el UNO pero tiene sus excepciones, una de las mas notorias es que no es compatible con GRBL (firmware para control de maquinaria CNC)

Arduino MEGA: Tiene el mismo formato de pines que en UNO en su parte delantera, pero tiene muchos pines adicionales para proyectos que requieran mas capacidad de procesamiento.

Arduino NANO: Usa el mismo micro controlador que el UNO pero tiene un formato compatible con los protoboard y es mucho mas pequeño, carece de conector de poder por lo que se alimenta por USB o por el pin Vin.

Arduino PRO Mini: Es la versión mas compacta directamente compatible con Arduino, tiene el mismo microcontrolador que el Arduino UNO pero carece de chip para comunicación USB por lo que hay que programarlo usando otro Arduino que tenga conexión USB (UNO, NANO, MEGA) o con un convertidor FTDi.

Digispark Attiny85: Muchas marcas han desarrollado placas diversas que se pueden programar con la IDE Arduino, la Digispark Attiny85 es un ejemplo de ellas, conveniente para proyectos que no requieran de mucho poder de procesamiento y con pocas entradas y salidas, es mas económica y muy pequeña  lo que la convierte en una placa conveniente para electrónica de vestir.
















Extra 1.1: 10 formas de escoñe... freir tu Arduino

Esta es una síntesis de un muy buen articulo encontrado en:

http://www.rugged-circuits.com/10-ways-to-destroy-an-arduino

1. Conectar un PIN digital como salida y conectarlo a tierra (GND): esto hará sobrepasar la cantidad de corriente que puede manejar el pin y lo dañara junto con probablemente toda la placa: Frito

2. Conectar un PIN digital como salida y conectarlo a otro PIN en estado bajo (GND): ocurre igual que en el anterior, se sobre pasa la cantidad de corriente que puede manejar: Frito

3. Aplicar mas de 5V a cualquier pin del Arduino: Frito

4. Alimentar el Arduino por el Vin Pin, pero hacerlo con la polaridad invertida (Positivo en GND y Negativo en Vin): Frito

5. Aplicar mas de 5V al conector de 5V: Frito

6. Aplicar mas de 3.3V al conector de 3.3V: Frito

7. Alimentar al Arduino por el Conector de Poder y al mismo tiempo conectar el Pin Vin a tierra (GND): Frito

8. Alimentar la placa por el Pin 5V y no por Vin: Frito

9. Aplicar mas de 5.5V al reset pin: Frito

10. Pasarse del total de corriente que puede manejar el microcontrolador (uno 200 mA): Por ejemplo conectar LEDs a todos los pines digitales al mismo tiempo: Frito

y algunas mas por experiencia propia:

11. Conectar el Arduino por USB y por el conector de poder al mismo tiempo, o por Vin y el USB al mismo tiempo: Frito

12. Alimentar al Arduino con fuentes no reguladas: Frito

y algunas formas por experiencia de nuestros lectores

13. Encender el Arduino sobre una superficie metalica o conductora: Frito


En general solo hay que tener lógica y sentido común amigos, las placas Arduino pueden soportar bastantes maltratos pero siempre hay que estar pendiente de su uso para que todo vaya bien.

Guaroduino

1.3 ¿Que hay en una placa Arduino?

Existe gran variedad de placas compatibles con Arduino, comtatible usualmente se refiere a que pueden ser programadas con la Arduino IDE, y en algunos casos que son compatibles con los Shields.

Hay muchos tipos de placas, las mas comunes son aquellas parecidas a la Arduino UNO por lo que sera la que veamos primero:


Alimentación (USB (1)-  Conector de alimentación (2) - Vin (16))


La Arduino UNO puede ser alimentada tanto por el conector USB (1)  como por el conector de poder (2)  usando un transformador de pared o suministrando mas de 7V por el pin Vin (Nunca se puede usar mas de una alternativa a la vez, dañara la placa).  A través de la conexión USB se cargan los códigos a la placa usando la IDE Arduino.


Pines (5V (5), 3.3V (4), GND (3), Analogos (6), Digitales (7), PWM (8) y AREF (9)


Los pines son los sitios de la placa donde se conectaran los cables hacia los accesorios que desees conectar para construir un proyecto (usualmente usando un protoboard y cables monofilares). Las placas Arduino tienen distintos pines que usualmente están etiquetados en la placa:


  • 5V (5) y 3.3V (4): Como puedes suponer, el pin 5V provee 5 Voltios de poder, y el de 3.3V provee 3.3 Voltios, la mayoria de los componentes requieren o 5V o 3.3V para funcionar, en la linea de 5V las placas Arduino UNO puedes manejar hasta 450 mA, mientras que en la linea de 3.3V se puede manejar hasta 150 mA, si los accesorios de tu proyecto consumen mas que esta corriente tendrás que usar una fuente de poder aparte para ellos, siempre conectando la tierra como común.

  • GND (3): La Arduino UNO tiene 3 pines GND (tierra), cualquiera puede ser usado para cerrar tu circuito.

  • Análogos (6): Los pines análogos puedes leer valores que arrojen sensores análogos (de 0 a 5V) y convertirlos a un valor digital en el rango de 0-1023 que puede ser leído en el programa. Estos pines también pueden ser usados como pines digitales.

  • Digital (7): Los pines digitales tienen valores de 0 (0V) o 1 (5V) y pueden ser leídos como entrada (leer el estado de un botón) o escritos como una salida (encender o apagar un LED).

  • PWM (8): Algunos de los pines digitales están etiquetados con el simbolo ~, estos pines pueden ser usados como pines digitales normales, pero también pueden ser activados en modo PWM, mas adelante lo veremos con mas detalles pero por ahora los puedes considerar como salidas análogas.

  • Boton de Reset (10): Tal como muchos equipos electrónicos, las placas Arduino tienen un botón de reset para resetear el código cargado en la placa y que vuelva a iniciar, esto puede ser útil si tu código corre una sola vez.

  • LED de encendido (11): Tal como muchos equipos electrónicos, las placas Arduino poseen un LED indicador de encendido, cuando se conecta la placa a cualquier fuente de poder (USB o Conector de poder) se encenderá.

  • LEDs TX y RX (12): Tx es el acronimo de transmisor, y Rx el acronimo de recibidor. Estos LEDs parpadean cuando hay comunicación serial, es el caso cunado se carga un programa a la placa o cuando se envía información al Monitor Serial en la IDE.

  • Micro-controlador principal (13): Es el cerebro de la placa Arduino, en el caso de la UNO es un Atmega328p, vienen en distintas presentaciones tanto DIP (montaje a traves de huevos) como SMD (Montaje superficial).

  • Regulador de Voltaje (14): Controla el voltaje de entrada a 5V, puede manejar voltajes de hasta 16V, pero con mas de 9V se calienta demasiado.

  • Micro-controlador para comunicación USB (15): para facilitar la conexión de la placa con tu PC, la mayoría de las placas Arduino incluyen un chip que permite realizar la comunicación serial a través del puerto USB. El tipo de chip dependerá de la placa, las placas originales usan en su mayoría el chip 8U2, mientras que los modelos compatibles usan el CH340, por ello requieren drivers distintos.


Hemos visto los componentes normales de la placa Arduino mas popular, en el siguiente post echaremos un vistazo a las otras placas Arduino para notar como se comparan con la Arduino UNO.

Guaroduino









1.2 ¿Que puedes hacer con Arduino?



Arduino UNO con ProtoShield
Cuadrúpedo basado en Arduino
Arduino UNO con Ethernet Shield
Arduino fue desarrollado para artistas, diseñadores, hobbistas, hackers, principiantes de electrónica y en general para cualquiera interesado en crear objetos y proyectos interactivos. Arduino hace fácil programar la interacción con botones, leds, motores, servos, actuadores, cornetas, buzzers, GPS, cámaras, sensores diversos, internet, incluso con tu celular inteligente o tu televisor. Esta flexibilidad combinado con el hecho de que el software Arduino es gratis, las placas son relativamente económicas y que tanto software como hardware son fáciles de entender y usar ha resultado en una comunidad grande de usuarios que contribuyen continuamente desarrollando proyectos basados en Arduino.

Desde Robots, un calentador de manos, maquinas honestas de la fortuna, maquinaria CNC, Drones, sistemas de vigilancia, la plataforma Arduino se puede usar como el cerebro en infinidad de proyectos de electrónica.

A pesar de que el fuerte de la plataforma Arduino es el prototipado de productos, también puede ser usado para desarrollar productos de consumo usando placas como la NANO o la PRO, mas económicas y de menor tamaño que la UNO.
















1.1 Introducción a Arduino

Arduino es una plataforma código abierto usada para el desarrollo de proyectos de electronica y mecatronica. Arduino consiste tanto en hardware (Placas Arduino) como en software (Arduino IDE y librerías), el software es usado para la programación del hardware.

La plataforma Arduino si ha vuelto muy popular con quienes no tienen estudios formales o académicos en electrónica por varias buenas razones:

  • La mayoría de placas Arduino no necesita ningún hardware adicional para programarlas (un programador), sólo necesita un cable USB.

  • La Arduino IDE utiliza una versión simple de C++, lo que facilita su aprendizaje.

  • La plataforma Arduino provee un estándar, haciendo posible el desarrollo de códigos (Librerías) para distintos accesorios haciéndolos compatibles con todas las placas Arduino y facilitando su implementación en los proyectos.
Arduino UNO
Arduino UNO Compatible
La placa Arduino más popular es sin duda la Arduino UNO, es una elección buena para principiantes. Existen gran variedad de placas Arduino UNO, desde la original hasta placas compatibles.

Entre las placas compatibles hay muchas opciones, algunas traen distintos tipos de conectores USB, pines analogos adicionales, entre otras diferencias.

Ademas de la Arduino UNO existen otras placas Arduino: Arduino Leonardo, Arduino MEGA, Arduino NANO, Arduino PRO, entre otras.

Resultado de imagen para blink ide arduino
Captura de pantalla de la Arduino IDE
La mayoría de las placas Arduino incluyen un LED controlado por alguno de los pines de la placa, usualmente el PIN 13, esto permite probar programas sencillos sin utilizar ningún hardware adicional.


En la captura de pantalla de la Arduino IDE se puede observar el código necesario para hacer parpadear el LED de la placa, solo 10 lineas decodigo, estudiaremos este código mas adelante.


En la próxima entrada veremos con mas detalle las capacidades de la plataforma Arduino y estudiaremos con mas detenimiento la Arduino UNO.

Guaroduino