Este es el tercer artículo de una serie en la que enseñamos a nuestros lectores lo que es un microcontrolador y que proporciona información básica para aquellos que deseen utilizar este componente en sus proyectos. La serie es ideal para los que tienen conocimientos básicos de la electrónica, pero no saben nada acerca de los microcontroladores. Se trata de una serie ideal para los estudiantes, los makers y aficionados.
La programación
Los lenguajes de programación usados en los microcontroladores son tan comunes como C, C++, Pascal, Assembly, etcétera.
Normalmente para trabajar con programación son usados intérpretes y compiladores.
Los intérpretes son "traductores" que hacen uso de un lenguaje parecido de aquel que usamos, diferentes de los 0 y 1 que entenden los circuitos, por lo que podemos escribir las órdenes que el microcontrolador debe realizar. El BASIC es un intérprete.
Ya, el compilador es un traductor de alto nivel que combina la facilidad de usar palabras comunes con alta velocidad de proceso. Un programa compilador ya es colocado en microcontroladores en la EPROM o descargado en él.
Un ejemplo de un lenguaje que se utiliza en microcontroladores que existen compiladores de fácil uso es el C.
Por supuesto, para trabajar con los microcontroladores se debe saber programar, es decir, debe conocer el lenguaje que utiliza y cómo utilizar el compilador.
Para ello hay muchos libros y cursos disponibles y son bastante simples.
De hecho, esta programación es la base del uso de microcontroladores en la escuela, donde aprenden electrónica básica, crear un circuito que activa LED y escribir el programa que hace parpadear y también cada vez más circuitos avanzados, cómo controlar un robot o un ascensor.
En general, el modo cómo los microcontroladores procesan la información es igual para todos.
Así, una vez que aprendas a estructurar un programa (la secuencia de órdenes que el microcontrolador debe seguir generando las señales de control) simplemente "traducir" al lenguaje que utiliza y listo...
La estructuración se hace a través de un diagrama de flujo, como se muestra en la figura 1, todo lo que el microcontrolador debe hacer es colocado lógicamente para escribir el programa.
Abajo tenemos un programa de muestra para Arduino.
*/
// a função loop roda indefinidamente
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Pero, no tiene que programar todo cuando haces un proyecto, especialmente si es simple.
En la internet están disponibles " sketches " que no son más que trozos o pequeños programas listos para ser utilizados.
Alguien ha tenido el trabajo de escribir estos programas y usar y se pueden agregar a su proyecto sin problemas.
El programa mencionado para parpadear un LED es un ejemplo de un sketch. Si en su aplicación existen uno o más LEDs que parpadean, ya tiene la parte del programa que hace esto listo.
El circuito para utilizar este programa parpadeando un LED en la figura 2.
Podemos utilizar el mismo programa para disparar intermitentemente un motor mediante shield de control en D13 de la salida. También cambiar el delay (demora) para los tiempos que desee.
Usando otras salidas puede parpadear en diferentes maneras otros LEDs o producir efectos en la decoración en vestibles, por ejemplo.
Cuando se utilizan
Las aplicaciones para los microcontroladores son ilimitadas. Donde tenemos que controlar uno o más dispositivos de una planificación que implica automatización o control de las señales externas pueden utilizar un microcontrolador. Esto no se limita a la robótica y mecatrónica (automatización y control) pero los otros ramos que se expanden como la IoT y wearables (internet de las cosas y usable).
Algunos ejemplos de aplicación:
-Robots Autónomos
-Brazos robóticos
-Drones
-Alarmas
-Ascensores
-Control de acceso y puertas automático
-Electrodomésticos
-Monitoreo de sensores
-Controles industriales
-Automatización general
-Ropa y efectos personales inteligentes
Principales familias
Nuestro espacio no es suficiente para tratar en detalle todas las familias de microcontroladores disponibles, si sólo porque cada día nuevos tipos con nuevas características son liberadas.
Le sugerimos que consulte la Internet, principalmente la Mouser que tienen en su inventario microcontroladores prácticamente todos disponibles con acceso a hojas de datos (datasheets) que facilita enormemente la elección de un tipo específico para su aplicación.
Vamos a darle algunas informaciones básicas sobre los principales tipos.
Arduino
Esto, sin duda es la principal familia de microcontroladores, sobre todo para uso didáctico, dada su facilidad de uso, bajo costo y rendimiento.
Creado en Italia, hoy en día el Arduino cuenta con varios tipos del propio Uno, Nano, Leonardo, Micro, Mega, Cero, con multitud de variaciones, como se muestra en la tabla disponible en
https://www.arduino.cc/en/Main/Products.
Las Placas Arduino están basadas en los microcontroladores de Atmel Atmega que pueden ser utilizados en aplicaciones similares a las creadas en el Arduino, pero independientemente. (figura 3)
Para Robótica Educativa, iniciación, STEM, la placa UNO es la más recomendable. (figura 4)
Las características básicas de este microcontrolador (versión Uno) son:
of which 0.5 kB used by bootloader
Microcontroller | ATmega328P |
Operating Voltage | 5V |
Input Voltage (recommended) | 7-12V |
Input Voltage (limit) | 6-20V |
Digital I/O Pins | 14 (of which 6 provide PWM output) |
PWM Digital I/O Pins | 6 |
Analog Input Pins | 6 |
DC Current per I/O Pin | 20 mA |
DC Current for 3.3V Pin | 50 mA |
Flash Memory | 32 kB (ATmega328P) |
SRAM | 2 kB (ATmega328P) |
EEPROM | 1 kB (ATmega328P) |
Clock Speed | 16 MHz |
LED_BUILTIN | 13 |
Length | 68.6 mm |
Width | 53.4 mm |
Weight | 25 g |
Intel Galileo y Edison.
Intel tiene en su línea de microcontroladores más simples para el uso en robótica, Mecatrónica, IoT y con fines educativos dos tipos en el momento de la producción de este libro fueron muy importantes.
Ambos tipos están disponibles en forma de procesadores de desarrollo que contiene plataforma de Intel y compatible con varias de las capacidades de expansión. Además, ambas plataformas se pueden ejecutar en Linux
Intel Galileo
La placa de desarrollo de Galileo puede compararse a una versión más avanzada de Arduino, ya que es compatible con él y con más funciones, para proyectos más complejos. (figura 5)
Sus principales características son las siguientes:
-Utiliza un Quark de SoC de Intel® x 1000
-Tiene 256 MB de RAM
-Tiene memoria flash de 8 NB
-Interfaz dispone de varias en el estándar de industria
Mini-PCI Express Slot
Puerto Ethernet de 100 Mb
Ranura micro SD para soporte de 32 GB de memoria adicional
Puerto host USB
Puerto de cliente USB
-Compatibilidad Arduino
-Soporta Linux 1.4 Yocto-Pocky
-Soporta múltiples plataformas de desarrollo
Galileo se comporta como un Mini-PC dado la cantidad de conectividad opciones tales como acceso a Internet, módulo 3G, Wi-Fi, puerto Ethernet, etcétera.
Intel Edison
A diferencia de Intel Galileo e Intel Edison es que el Intel Edison consiste en una tarjeta particularmente conveniente para el desarrollo de proyectos de bajo costo. (figura 6)
-Intel® Atomo SoC 22 nm
-1 GB DE RAM
- Memoria flash-4 GB
-Wi-Fi
- Blue Tooth Low- Energy (LE)
-Menos de 1 W de consumo a pleno funcionamiento
Puertos - USB
-40 GPIO interfaces ideal para conectar sensores, pantalla LCD y varias placas de expansión.
Más información sobre Intel en https://software.intel.com/en-us/articles/spotlight-on-intel-galileo-and-intel-edison-development-boards
PIC
Los PICs o Programmable Intelligent Controllers son microcontroladores muy populares por su facilidad de uso y bajo costo, después de haber sido creado por Microchip (www.microchip.com).
Ellos están disponibles en ITP (One-Time Programmable Packages), usando el mismo conjunto de instrucciones.
De la misma manera que el resto de los microcontroladores los PICs pueden utilizarse para agregar inteligencia a los proyectos de Mecatrónica y de otros tipos como automatización, IoT, wearable, etcétera
Seleccionando un PIC
Actualmente los que deseen elaborar un diseño mecatrónica pueden contar con cientos de diferentes tipos de PICs cuyas características difieren según la aplicación, de la misma manera como en el caso de los Arduinos, como vimos en el punto anterior.
La propia Microchip en su sitio web ofrece un buscador que, con las características del proyecto que queremos desarrollar indica al PIC que debe utilizarse.
El criterio básico que se utilizará en la selección de un PIC incluye los siguientes elementos:
-Tamaño de la memoria de programa
-Tamaño datos RAM
- tipo de Memoria
-Cubierta
-Otros recursos adicionales
En el sitio Web http://www.microchip.com/design-centers/microcontrollers el lector encontrará información sobre los tipos disponibles.
En la misma forma que los otros microcontroladores la programación se hace conectando la tarjeta de programación a un PC, como se muestra en la figura 7.
Cómo usar y programar, debe consultarse como en casos anteriores, depende de cada clase se va a la información en las fichas técnicas del fabricante.
En ellos también se encuentran aplicaciones listas que pueden ser utilizadas en un proyecto.
Para acceder a una amplia variedad de tipos para la venta, sugerimos para consultar la Página Web de Mouser.