Archivo de la etiqueta: Iniciacion

Cómo Empezar con Arduino

El compañero del fantástico blog http://rufianenlared.com/ me pidió que escribiera sobre “Cómo co** empezar con Arduino” para un post donde varios de los que nos dedicamos a divulgar ciencia y tecnología con Arduino diéramos nuestra opinión.

En mi experiencia como instructor en varios cursos presenciales de Arduino, talleres, consultas online y en charlas que he tenido con personas interesadas en el mundo Arduino, así como divulgador de tecnología con Arduino a través del curso online www.aprendiendoarduino.com, el tema de cómo empezar con Arduino me lo he planteado con frecuencia.

Aprender Arduino implica aprender muchas tecnologías dependiendo de hasta donde se quiera llegar, pero entre otras tecnologías podemos decir que Arduino comprende: electrónica digital y analógica, electricidad, programación, microcontroladores, tratamiento de señales, protocolos de comunicación, arquitectura de ordenadores, mecánica, motores, diseño de placas electrónicas, física, programación web, etc… Y Arduino nos permite que para empezar a trabajar con él no sea necesario tener todos esos conocimientos, sino que Arduino es el vehículo que nos va a servir para aprender todas esas tecnologías y ciencias de una forma práctica y aprendiendo mientras se hacen cosas “learning by doing”, pero no cabe duda que hay que tener una cierta base para poder empezar.

Arduino ha socializado la tecnología, supongamos que desde hace un tiempo tenemos una buena idea que no se puede llevar a cabo porque necesita un conocimiento de electrónica en mayor o menor medida, pero que actualmente no tenemos. Esa idea, habrá pasado de proyecto a obstáculo. Arduino va a ayudar a poder hacer el proyecto gracias a su facilidad de uso, la gran información disponible en Internet y los desarrollos para Arduino publicados como open source. Leyendo manuales y practicando con el material que ha proporcionado Arduino y la comunidad, comprobamos que en un intervalo de tiempo relativamente pequeño somos capaces de ponernos manos a la obra y atrevernos a ir escalando pequeños obstáculos y paredes hasta que encontremos nuestro límite o el del propio material.

Pero claro, si nos ponemos en la piel de alguien que quiere empezar con Arduino y la enorme cantidad de información que hay disponible en Internet, esta supone un obstáculo en sí mismo. Un buen sitio donde empezar es www.arduino.cc. Para mi es el mejor sitio por donde empezar, porque es donde yo empecé y con el tiempo me conozco casi todos los recovecos de la web que no son pocos. Sin embargo puede haber varios obstáculos, uno es que no está traducido al castellano y otro es que para alguien que empieza puede ser muy duro leer toda esa documentación y acabar perdiéndose entre los muchos enlaces que hay en la web y acabar desistiendo en su intento.

Por todo lo dicho hasta ahora y mi experiencia con alumnos, yo siempre empiezo por contar que es exactamente Arduino y desmontar todos los mitos e ideas inexactas sobre esta plataforma abierta de programación de un microcontrolador. Digamos que lo primero que debe conocer alguien que empieza con arduino es el “estado del arte” de Arduino o como diría wikipedia “el estado de esta temática actualmente y sus avances” y más aun cuando desde hace un año Arduino se ha dividido en dos y tenemos dos webs “oficiales” de Arduino www.arduino.cc y www.arduino.org que puede provocar más confusión entre los que quieren empezar. Pero tanto www.rufianenlared.com como yo mismo en http://www.aprendiendoarduino.com/2016/03/19/arduino-cc-y-arduino-org-los-dos-arduinos/ hemos puesto de nuestra parte para tratar de aclarar este punto en nuestros blogs.

Cuando trato de explicar qué es exactamente Arduino, algo en lo que pongo énfasis en mis oyentes y en mi web es que se den cuenta que no solo están aprendiendo a manejar una placa azul, sino que existen otras placas que no se llaman Arduino que también van a saber programar y que en general están aprendiendo a programar casi cualquier microcontrolador y que junto con los conocimiento sobre sensores, actuadores y comunicaciones que adquieren al usar Arduino, van a ser capaces de construir casi cualquier cosa.

Por lo tanto a la pregunta de cómo empezar a usar Arduino, la respuesta es que antes de ponerse a leer documentación a diestro y siniestro, hay que “saber exactamente qué es Arduino y donde se encuentra dentro de la tecnología que nos rodea” y si Arduino es la respuesta a su proyecto o a la razón por la que quiere aprender Arduino.

Como hay que predicar con el ejemplo, yo empiezo los cursos con estos temas:

Después de aclarar conceptos, la persona que está empezando con Arduino puede continuar con las tres partes en la que yo divido el estudio de Arduino: Hardware, Software y Comunidad Arduino. Por ejemplo, así es como yo divido el aprendizaje de Arduino para un curso de algo más de 30 horas: http://www.aprendiendoarduino.com/curso-arduino-2016/

Es muy común que gente con amplios conocimientos de electrónica quiera aprender Arduino y la programación les echa para atrás y al contrario, hay mucha gente del mundo del software que les echa para atrás la electrónica, electricidad, motores, etc… En ambos casos y con esos conocimientos previos será más fácil continuar con el aprendizaje de Arduino.

Arduino es una plataforma que se usa en el concepto de “learning by doing” o aprender practicando. Por ello, para aprender Arduino hay que practicar y experimentar, es algo que creo que es imprescindible cuando se empieza con Arduino.

Por último, algo que se debe tener en cuenta para quien quiere empezar con Arduino es que para aprender a programar Arduino, hay que leer mucho código. Al tratarse de una plataforma open source y disponer del código, tenemos muchos recursos para el aprendizaje. Además Arduino tiene una guía de estilo (https://www.arduino.cc/en/Reference/StyleGuide) que son unas pautas para escribir un código sencillo de leer, en detrimento de la eficiencia del código y una guía para escribir librerías (https://www.arduino.cc/en/Reference/APIStyleGuide) que hace que los principiantes puedan empezar con arduino fácilmente. Todo esto hace que la curva de aprendizaje de Arduino sea más corta que cualquier otra nueva tecnología, pero aún así es imprescindible: Aprender a Programar y Aprender Electrónica.

Si quieres aprender Arduino, también puedes empezar por mis cursos publicados en http://www.aprendiendoarduino.com/ o apuntarte a algunos de los cursos o talleres presenciales que imparto periódicamente y de los que te puedes enterar a través de mi twitter @jecrespom o en la lista de correo de #aprendiendoarduino http://list.aprendiendoarduino.com/mailman/listinfo/aprendiendoarduino.com.noticias

Y no olvidéis visitar y seguir el blog de http://rufianenlared.com/, de verdad es muy bueno.

Post de rufianenlared donde se publicó mi aportación: http://rufianenlared.com/como-empezar-arduino/

Anuncios

Descripción de HW Arduino

Los Arduino y en general los microcontroladores tienen puertos de entrada y salida y de comunicación. En Arduino podemos acceder a esos puertos a través de los pines.

Otro aspecto importante es la memoria, Arduino tiene tres tipos de memoria:

  • SRAM: donde Arduino crea y manipula las variables cuando se ejecuta. Es un recurso limitado y debemos supervisar su uso para evitar agotarlo.
  • EEPROM:  memoria no volátil para mantener datos después de un reset o apagado. Las EEPROMs tienen un número limitado de lecturas/escrituras, tener en cuenta a la hora de usarla.
  • Flash: Memoria de programa. Usualmente desde 1 Kb a 4 Mb (controladores de familias grandes). Donde se guarda el sketch.

Más información en: http://arduino.cc/en/Tutorial/Memory y https://aprendiendoarduino.wordpress.com/2015/03/29/memoria-flash-sram-y-eeprom/

Veamos a fondo la placa Arduino Uno:

Especificaciones detalladas de Arduino UNO: http://arduino.cc/en/Main/ArduinoBoardUno

Microcontroller & USB-to-serial converter ATmega328P & Atmega16U2
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz

Aspectos más destacados de Arduino UNO.

  • No necesita de un cable FTDI para conectarse al MCU, en su lugar uso un MCU especialmente programado para trabajar como conversor de USB a serie.
  • En la revisión 3 de HW nuevo pineado
  • Alimentación: vía USB, batería o adaptador AC/DC a 5V, seleccionado automáticamente. Arduino puede trabajar entre 6 y 20V, pero es recomendado trabajar entre 7 y 12V por las características del regulador de tensión.
  • Puerto Serie en los pines 0 y 1.
  • Interrupciones externas en los pines 2 y 3.
  • Built-in LED en el pin 13.
  • Bus TWI o I2C en los pines A4 y A5 etiquetados como SDA y SCL
  • El MCU ATmega328P tiene un bootloader precargado que permite cargar en la memoria flash el nuevo programa o sketch sin necesidad de un HW externo.
  • Arduino Uno dispone de un fusible autoreseteable que protege el puerto USB de nuestro ordenador de cortocircuitos y sobrecorrientes. Si se detectan más de 500mA salta la protección.

También es importante conocer cómo están distribuidos los pines del MCU en Arduino:

Antes de empezar a trabajar con el Arduino UNO, veamos 10 formas de destruir un Arduino, para saber que NO debemos hacer.

¡¡¡IMPORTANTE!!!: http://www.ruggedcircuits.com/10-ways-to-destroy-an-arduino/

La traducción: http://www.trastejant.es/blog/?p=192

También es posible conseguir un “Arduino” gratis: https://aprendiendoarduino.wordpress.com/2015/02/25/como-conseguir-un-arduino-gratis/

Práctica: Instalación del software y configuración

Práctica: Descargar la última versión del IDE de Arduino, conocer el entorno de programación y hacer las principales configuraciones en el entorno para poder trabajar de forma más eficiente → Páginas de la 16 a 19 del libro incluido en el Arduino StarterKit.

Descargar la última versión del IDE de Arduino desde: http://arduino.cc/en/Main/Software

Elegir la opción de Windows Installer, aunque también es posible descargar la versión comprimida en zip y se puede decir que es una versión portable o para aquellos que no tengan privilegios suficientes para instalar aplicaciones.

Marcar todas las opciones:

instalacion1

Permitir instalar los drivers:

instalacion2

 

instalacion3

 

Y ya está instalado:

instalacion4

En este momento ya tenemos instalado el IDE en nuestro ordenador. Con las nuevas versiones del IDE de Arduino no es necesario instalar los drivers en Windows al venir integrados en el IDE y ya tienen las firmas correspondientes.

Ejecutar la aplicación:

instalacion5

El IDE de Arduino es multiplataforma y en caso de instalar el IDE Arduino en otros sistemas operativos estas son las instrucciones:

Para otras placas seguir estos tutoriales: http://arduino.cc/en/Guide/HomePage

Conozcamos este nuevo entorno de trabajo:

Conocer el entorno de programación: http://arduino.cc/en/Guide/Environment

Revisar cada uno de los menús y opciones que tiene, los más importantes ahora son.

  • Botones de Verificar y Subir
  • Botón Monitor Serie

instalacion7

  • Consola de Error
  • Menú herramientas Placa y Puerto
  • Menú de pestañas
  • Puerto y placa seleccionada
  • Menú preferencias
  • Proyecto/Sketch
  • Resaltado de palabras clave

El IDE de Arduino contiene un editor de texto para escribir nuestro sketch, un área de mensajes, un consola de texto y un área de con los menús y los botones que realizan las funciones más comunes.

Cuando cargamos un programa en Arduino, estamos usando el bootloader de Arduino, que es un pequeño programa cargado en el microcontrolador que permite subir el código sin usar hardware adicional. El bootloader está activo unos segundos cuando se resetea la placa, después comienza el programa que tenga cargado el Arduino en su memoria Flash. El led integrado en la placa (pin 13) parpadea cuando el bootloader se ejecuta.

El monitor serie muestra los datos enviados por el Arduino a través del puerto serie también nos permite mandar datos al Arduino mediante el puerto serie.

Veamos las novedades de la nueva versión 1.6 del IDE:

  • Soporte multiplataforma de arduino
  • Detección automática de la placa conectada
  • Muestra memoria Flash y SRAM ocupada por un sketch o proyecto
  • Autoguardado al compilar y cargar sketch
  • Carga de sketch vía red (wifi o ethernet) para Arduino Yun.

Entrar en el menú de preferencias y activar:

  • Números de Línea
  • Mostrar salida detallada en la compilación y al subir un sketch
  • Configurar la ruta de nuestro workspace
  • Asociar extensión .ino a nuestro IDE

instalacion8


Cuando tengamos algún problema, la primera opción es recurrir a la guía de Troubleshooting: http://arduino.cc/en/Guide/Troubleshooting

El IDE de arduino es muy sencillo y fácil de manejar, pero cuando los proyectos se hacen más complejos, es posible que necesitemos algo más.

El IDE de Arduino no es el único entorno de trabajo ni posiblemente tampoco sea el mejor aunque sea una herramienta muy buena.

Eclipse es uno de los IDE más utilizados y conocidos en el mundo y también podemos usarlo para trabajar con Arduino, pero no lo recomiendo por la complejidad de uso con Arduino.

Otra herramienta de programación sencilla es notepad++ sencilla y como alternativa al IDE de Arduino. Es una herramienta muy interesante por los complementos que tiene.

Práctica: Instalar notepad++. Instalar los complementos: compare y narduino. Activar la opción de autocompletar. Ejecutar los programas de notepad++ con el IDE de Arduino.

Otra opción más avanzada es Arduino (IDE) al editor Sublime Text.

http://panamahitek.com/sublime-text-y-stino-una-opcion-para-programar-en-arduino/

Presentación del curso

ArduinoCommunityLogo_EPS

Objetivos

El objetivo de este curso es iniciar al alumno en el mundo del hardware libre y los microcontroladores utilizando la plataforma Arduino.

Al finalizar el curso el alumno será capaz de comprender qué es la plataforma hardware Arduino, conocer su potencial, así como implementar proyectos sencillos en un Arduino. Aprenderá a usar el entorno de programación utilizado por Arduino, el lenguaje de programación usado, realizar programas y ejecutarlos sobre la plataforma.

Otros objetivos de este curso son: conocer los componentes de hardware básicos para recibir señales externas y controlar elementos que le rodean para interactuar con el mundo físico.

Requisitos

Este curso parte desde cero, por lo que no son necesarios unos conocimientos previos, pero sí son recomendables conocimientos básicos de programación (especialmente C++), electricidad y electrónica.

Es recomendable un conocimiento medio de Inglés puesto que gran parte de la documentación está en Inglés.

Metodología

El curso se compone de una combinación de teoría y práctica que establecen las bases necesarias para entender la plataforma Hardware y Software de Arduino, con una duración total de 21 horas. Tras finalizar el periodo lectivo propiamente dicho se proponen varios proyectos a realizar por el alumno por su cuenta y tras unas semanas se realizará un taller de 4 horas donde los alumnos expondrán sus proyectos, se resolverán las dudas y se ofrecerá una solución a los proyectos propuestos.

Durante el periodo en el que el alumno realizará los proyectos propuestos o uno de su libre elección, se resolverán todas las dudas y se podrán compartir los resultados en la comunidad de google+ o por correo electrónico, siendo preferiblemente el primer método para poder compartirlo con todos los alumnos y resto de la comunidad.

Los recursos utilizados para la realización de este curso son:

Para realizar las prácticas de este curso se incluye un Arduino Starter Kit (http://store.arduino.cc/index.php?main_page=product_info&cPath=2&products_id=185) que contiene un Arduino Uno, una serie de sensores y actuadores y diversos elementos electrónicos necesarios para realizar los proyectos.

La documentación será toda on line con el objetivo de mantener todo actualizado y no con un documento físico que se queda obsoleto al día siguiente. Además la documentación irá creciendo durante el curso y después de finalizar el curso, estando disponible para todos.

La documentación principal se encuentra en el blog https://aprendiendoarduino.wordpress.com/, esto permite acceder a una documentación actualizada en todo momento y poder acceder a los recursos con un solo clic. Además se dispone de otros recurso disponibles como las presentaciones en http://prezi.com/user/um-quxxu46su/, repositorio en github http://github.com/jecrespo, y otros recursos que se seguirán añadiendo.

Las prácticas se realizarán con el Arduino Starter Kit y usaremos el libro como base para las primeras prácticas como referencia y proponiendose más ejemplos.

Todo el material entregado es en préstamo y debe cuidarse al máximo, a la hora del montaje de las prácticas se seguirán las instrucciones para evitar dañar los componentes.

Toda la documentación está liberada con licencia Creative Commons:

Reconocimiento – NoComercial – CompartirIgual (by-nc-sa): No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.

Aprendiendo Arduino by Enrique Crespo is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.

Organización del curso

El curso se divide en dos partes: Curso y Taller. Duración total de 25 horas.

El curso se celebra del 23 al 31 de marzo de 2015 de Lunes a Viernes en horario de 18.30 a 21.30. Se hará un descanso de 5-10 minutos aproximadamente a mitad de la sesión.

El Taller se hará el viernes 17 de abril de 17:30 a 21:30.

Temario del curso:

  • Tema 1 – Plataforma Hardware Arduino
  • Tema 2 – Plataforma Software Arduino
  • Tema 3 – Programación en Arduino
  • Tema 4 – Conceptos Básicos de Microcontroladores y Electrónica
  • Tema 5 – Taller de Proyectos con Arduino

En detalle: https://aprendiendoarduino.wordpress.com/arduino-iniciacion-2015/

Otros cursos anteriores:

Artículos:

Presentaciones. Arduino tiene muchos ámbitos de aplicación, desde el sector agrícola, fabricación, eficiencia energética, etc… hasta para la educación.

  • Como conoces Arduino
  • Motivaciones para aprender a usar Arduino
  • Conocimientos de electrónica/electricidad y programación.
  • Algún proyecto o entorno de aplicación donde usar Arduino.

Normas de uso del kit del curso.

Contacto

Para cualquier consulta durante el curso y en cualquier otro momento mediante email: aprendiendoarduino@gmail.com

Twitter @jecrespo: https://twitter.com/jecrespom

Y más información sobre el curso y el autor: https://aprendiendoarduino.wordpress.com/acerca-de/

Aclaraciones sobre el curso

A pesar que Arduino es una plataforma ampliamente usada por aficionados (makers) y para prototipado y puede verse como un “juguete”, en este curso vamos a aprender a programarlo y usarlo para implantarlo en cualquier aplicación que necesitemos para un uso profesional, siendo la principal ventaja de usar una plataforma de este tipo el rápido despliegue de una nueva aplicación ya la facilidad de programar.

Arduino se trata principalmente como una herramienta para prototipado y usada en el mundo del hobby, pero aquí vamos a ir más allá y lo trataremos como una herramienta profesional que puede abarcar multitud de sectores.

A lo largo del curso se van a ver muchos conceptos de diferentes tecnología que a priori no tienen nada que ver entre ellos: electronica digital y analogica, electricidad, programación, microcontroladores, tratamiento de señales, bases de datos, protocolos de comunicación, arquitectura de procesadores, mecánica, motores, diseño de placas electrónicas etc…

En unos casos se profundizará más y en otros menos, pero sin ponerse demasiado académico, de hecho la filosofía con la que nació  arduino es facilitar las cosas, lo que ocurre es que cuando las necesidades crecen, la aplicación en un microcontrolador se hace más compleja y hay que profundizar en la teoría.

Hay conceptos muy importantes a aprender y avisaré de ello y luego otras cosas que daré las nociones y las herramientas para que quien lo necesite amplíe su conocimiento..

Existe mucha documentación sobre arduino en Internet, pero eso es un problema y a veces está desordenado o es demasiado básico, así que una parte de mi trabajo es recopilar la información más interesante y ordenarla y estructurarla.

Vamos mezclar la práctica con la teoría para que sea el curso ameno.