CAB 1. Introducción. Hola Arduino

1.1. Introducción

La forma más sencilla de definir Arduino sería la de un mini ordenador que nos permite interactuar con el mundo real mediante la lectura de datos a través de sus pines de entrada y de la escritura en los de salida.

Una definición más formal sería decir que Arduino es una plataforma de desarrollo que nos permite la realización de prototipos electrónicos y que se compone tanto de hardware como de software.

1.2. Hardware

Arduino, es una placa electrónica, bastante sencilla, de harware libre centrada en un microcontrolador que es reprogramable.

A continuación vamos a explicar un poco más detalladamente la definición anterior.

Cuando hablamos de un ordenador y esto no ha cambiado en muchos años pues se basa en el modelo de von Neumann definido en 1945 por el matemático y físico John von Neumann , estamos hablando esquemáticamente, tal y como se muestra en la figura siguiente de un Procesador, una Memoria RAM, una Memoria ROM y una Interfaz de entrada/salida que nos permite inter-actuar con el exterior (monitor, teclado, ratón, mandos de juegos, etc) y estos cuatro componentes básicos se conectan entre sí mediante un Bus de Datos.

Figura CAB1.1 Esquema Básico de un Ordenador

Pues, simplificando, podemos decir que un microcontrolador sería un circuito impreso o chip donde están integrados todos estos componentes del ordenador. Es decir, sería un ordenador en miniatura. 

Figura CAB1.2 Microcontrolador ATmega328p

Esto, como es obvio tiene algunas ventajas y desventajas frente a un «clásico» ordenador:

  • Ventajas Microcontrolador versus Ordenador
    • Reducido tamaño
    • Reducido consumo energético
    • Reducido coste
  • Desventajas Microcontrolador versus Ordenador
    • Reducida potencia de cómputo
    • Reducida potencia de cálculo
    • Reducida potencia de manipulación de operaciones artiméticas
    • Reducido tamaño y cantidad de datos manipulados

Pero, en el momento actual en el que la domótica, robótica, internet de las cosas, etc. están adquiriendo tanta relevancia, podemos encontrar este tipo de circuitos en juguetes, electrodomésticos, coches, domótica doméstica y sobre todo en la robótica educativa.

Arduino, dispone de una serie de placas electrónicas, tal y como hemos comentado, basadas en diferentes microcontroladores aunque casi todas ellas se reducen a ATmega8, ATmega168, ATmega328 de Atmel (actualmente adquirida por Microchip Technology Inc.) . Dependiendo del tipo de proyecto y las necesidades que este requiera debemos elegir el modelo más apropiado. Uno de los modelos más populares y que se suele utilizar para el aprendizaje, prácticas y realización de proyectos educativos y recreativos es Arduino UNO.

Figura CAB1.3 Modelos de Arduino

1.3. Software

rduino, utiliza para su programación un lenguaje propio basado en Wired (http://wiring.org.co) que se conoce como Arduino Programming Language. Este lenguaje viene junto a un sencillo pero completo entorno de programación o IDE que está basado en el que utiliza el lenguaje de programación Processing (https://processing.org). El IDE de Arduino así como su instalación y configuración lo veremos en los siguientes puntos de este Curso. Processing es un lenguaje de programación cuya curva de aprendizaje es muy cómoda y permite partiendo de conocimientos muy básicos o nulos de programación avanzar de forma cómoda, fácil y rápida. Además nos permite actuar con la placa de Arduino y realizar Proyectos que interactúen con el mundo exterior y mostrar gráficos en el ordenador o Raspberry Pi dando al Proyecto un aspecto muy completo y visual.

 También podemos decir más menos formalmente que el lenguaje de utilizado para programar Arduino es C++ pero añadiendo unas librerías o bibliotecas que permiten que se pueda operar y programar con los pines de entrada y salida así como con los puertos de comunicación. También se añaden otras bibliotecas para operaciones más especificas de la propia placa. Esto pasa desapercibido para el programador, pues el propio IDE ya incluye estas bibliotecas de forma automática y no hace falta declararlas explícitamente (se trata de las bibliotecas avr-binutils, avr-gcc y avr-libc que son necesarias para los microcontroladores AVR de Atmel). A esto se le añade una pequeña diferencia en la estructura del programa que lo diferencia del C++ estándar y que lo veremos posteriormente en el presente Curso.

1.4. ¿Por qué Arduino?

La verdad que existen muchas razones por las que utilizar y aprender con Arduino, pero me gustaría empezar con las palabras de David Cuartielles (Cofundador de Arduino)…

 “Actualmente todo lo que nos rodea en la vida es digital (entendido como hacer operaciones matemáticas complejas y comunicar con otros dispositivos), cualquier cosa lleva un microchip, desde el microondas a un coche. Arduino lleva uno de esos microchips y te permite aprender a manejar como funciona el mundo en el que vivimos hoy en día y cómo interactúa el hombre con el mundo digital. Arduino es la puerta hacia tomar control de cómo funcionan las cosas actualmente y en el futuro. Así que encender el ordenador y empezar a programar.”

Creo que estas palabras reflejan el momento y estado de nuestro mundo, nuestro entorno en estos momentos… Debemos ser ágiles y aprender rápidamente las tecnologías que empiezan a gobernar casi todo lo que nos rodea y para ello la plataforma Arduino es una de las mejores herramientas a nuestra disposición, ya que nos permite realizar todo esto y además de forma amena y divertida, realizando Proyectos con los que ver los resultados rápidamente y que tiene una curva de aprendizaje muy suave y progresiva.

Además de simplificar el aprendizaje la plataforma Arduino nos ofrece otras ventajas:

  • Es Open Source Hardware o Hardware Libre, bajo licencia Creative Commons.
  • Es un Software Multiplataforma, que nos permite trabajar de forma idéntica en Windows, Mac, Linux, Raspberri Pi.
  • Es Económico, a partir de 10 euros ya disponemos de placas Arduino con las que practicar.
  • Su Entorno de Programación es Fácil y sencillo de instalar.
  • Es Versátil, muy fácil de adquirir todo tipo de componentes para realizar los Proyectos más variopintos y asombrosos y con muy bajo coste.
  • Es Reutilizable, ya que una vez terminado un Proyecto podemos desmontar todos los componentes y reutilizarlos para uno nuevo.
  • Tiene una Gran Comunidad, que quizás sea la principal ventaja de la plataforma, pues existen numerosas Webs, Libros, Foros, Cursos, Videos, … con los que podemos aprender y realizar muchos Proyectos.

Resumiendo, para mi, el motivo principal por el que utilizar Arduino, se condensa en las siguientes palabras:

Arduino es la Plataforma de Aprendizaje de las Tecnologías que nos Rodean y que van a dirigir nuestro Futuro Presente y Próximo que nos permite de forma Amena y Divertida Aprender Robótica y Programación realizando Proyectos Tangibles desde el primer momento, que además cuenta con una Gran Comunidad de apoyo.

Arduino = Hardware + Software + Comunidad

1.5. Arduino UNO

Como hemos comentado anteriormente, existen diferentes modelos de placas de Arduino, pero una de las más populares en el prototipado y realización de proyectos educativos y recreativos es Arduino UNO. En este apartado vamos a describir básicamente sus componentes, sabiendo que el resto de modelos serán muy similares con las peculiaridades propias de cada uno de ellos.

Figura CAB1.4 Esquema Componentes Arduino UNO

Componentes Placa Arduino Uno

  • Componente 1. Pulsador Reset. Pulsando el botón se reinicia el microcontrolador. No se borra el programa grabado, solo se reinicia.
  • Componente 2. Puertos de Entradas / Salidas Digitales. Estos puertos nos permiten conectar los componentes que requieren una señal de salida o entrada en formato digital.
  • Componente 3. Led Pin13. Es un led integrado directamente en la placa y que está asociado al Pin número 13 que nos permite utilizarlo de forma rápida en nuestros proyectos. Resulta en muchas ocasiones muy útil como indicador.
  • Componente 4. Reloj Oscilador. Es un cristal que permite mantener la frecuencia de funcionamiento del microcontrolador. En el caso de Arduino UNO esta frecuencia es de 16 Mhz (16.000 Hz) Es un componente que también podremos adquirirlo separadamente para nuestros montajes.
  • Componente 5. Led de encendido. Como su nombre indica, permanecerá encendido mientras la placa esté correctamente conectada a una fuente de alimentación.
  • Componente 6. Microcontrolador. El componente principal de la misma, su cerebro. En el caso de Arduino UNO se trata del modelo de Atmel (actualmente Microchip Technology) ATmega328p.
    • Chip: ATMEGA328P-PU
    • Formato: DIP
    • Arquitectura: RISC
    • CPU: 8-bit AVR
    • Memoria RAM: 2KB
    • Memoria FLASH: 32KB
    • EEPROM: 1KB
    • Máxima frecuencia de funcionamiento: 20Mhz
    • Pines: 28
    • Pines de entrada/salida: 23
    • Entradas Analógicas (ADC): 6
  • Componente 7.Puertos de Entradas Analógicas. Estos puertos permiten la conexión de componentes que son capaces de leer entradas diferentes al 0 y 1 (como ocurre con las Entradas Digitales).
  • Componente 8. Pines de Alimentación. Este bloque nos permitirá alimentar los componentes de nuestros proyectos con la alimentación apropiada.
  • Componente 9. Conexión Fuente de Alimentación Externa. Nos permite alimentar la placa cuando no lo hacemos por el puerto USB.
  • Componente 10. Regulador de Voltaje. Permite controlar la tensión que se envía a los terminales de alimentación. Cuando la placa se alimenta mediante la Conexión Fuente de Alimentación Externa y no mediante el USB el voltaje adecuado a utilizar en esta entrada debe estar comprendido entre los 7 a 12 voltios. Voltajes menores de 5 o 7 voltios en esta entrada pueden causar que el regulador interno de Arduino no pueda trabajar correctamente. Voltajes mayores a 12 voltios pueden causar un rápido sobrecalentamiento del regulador, aunque la cantidad de accesorios conectados (la demanda de corriente) no sea grande. El Regulador de Voltaje o Tensión es el encargado de controlar que las salidas internas tengan la tensión adecuada entre 3,3 y 5 voltios.
  • Componente 11. Chip de Control USB. Es el chip encargado de controlar y gestionar la comunicación con el puerto USB de la placa.
  • Componente 12. Puerto USB. Tiene tres usos o funciones:
    • Alimentar la placa, en lugar de utilizar la Conexión Fuente de Alimentación Externa (componente 9).
    • Conexión con el ordenador, lo que permite transferir los programas al microcontrolador.
    • Puerto Serie, que actúa como puerto de transferencia serie de la placa, tanto para transmitir como para recibir datos.

1.6. Un poco de Historia: Nacimiento de Arduino

En este apartado vamos a ver de forma muy breve como nació Arduino.

Inicialmente Arduino fue un proyecto de estudiantes del Instituto de Diseño Interativo de Ivreal en Italia.

En el año 2000 las herramientas utilizadas para diseño de proyectos de robótica e ingeniería eran caras y complejas, lo que conllevaba asociado mucho tiempo de aprendizaje y práctica para poder dominarlas, lo que ralentizaba mucho los tiempos de aprendizaje y creación de proyectos por parte de los estudiantes.

Ante esta situación, en 2001, un grupo de estudiantes del MIT tuvieron la idea de fabricar una placa, que inicialmente era para uso interno en el Instituto, que fuera más sencilla de utilizar y que se basó en el entorno de desarrollo Processing (processing.org) . Un par de años más tarde, en 2003, en un Proyecto Fin de Carrera, se diseño la tarjeta Wiring que fue la antecesora de la plataforma Arduino.

Y dos años después, en 2005, un equipo formado por profesores y estudiantes (ver siguiente fotografía) diseñó el primer modelo de Arduino.

Figura CAB1.5 Equipo creador de Arduino.
David Mellis, Tom Igoe, Gianluca Martino, David Cuartielles y Massimo Banzi

Pero, precisamente este mismo año 2005, el Instituto tuvo que cerrar, y para evitar perder todo el trabajo que se había hecho, se decidió liberarlo. De esta forma, totalmente Open source, nació la plataforma que actualmente conocemos Arduino que consecuencia de esta decisión actualmente sigue siendo Open Source, es multiplataforma y está continuamente soportada, optimizada y evolucionada por una de las mayores comunidades de usuarios, diseñadores y programadores que existen. Además de estas ventajas y su facilidad de aprendizaje y uso, son placas muy económicas que han conseguido que sea la principal plataforma para los proyectos de robótica e ingeniería en la actualidad.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies