Primeros pasos con IoT: Ambiente de desarrollo (IDE)

Spread the love

El ambiente o entorno de desarrollo, llamado también IDE por sus siglas en ingles (Integrated development environment), es un programa informático que permite al desarrollador la escritura de software y que usualmente es desarrollado por los fabricantes de microprocesadores/microcontrolador para simplificar la escritura de programas y maximizar la productividad del programador.

Para entender mejor los detalles al respecto, comenzaremos por definir brevemente lo que es un microprocesador y un microcontrolador, así como las diferencias entre ellos, ya que estos son la base de prácticamente la totalidad de los sistemas de cómputo y por supuesto, lambien la base sobre la que trabajan sistemas como Arduino o Raspberry.

El microprocesador contiene únicamente la unidad de procesamiento (CPU) en un circuito integrado y esta unidad es la que toma decisiones basada en la información que tiene almacenada en una unidad de memoria (ROM), mientras los cálculos intermedios para obtener este resultado se almacenan en otra memoria externa (RAM), sin embargo estas memorias usualmente se encuentran físicamente separadas entre sí y también separadas del propio microprocesador.

Asimismo, los dispositivos que sirven para que el microprocesador se comunique con el mundo exterior, también llamados dispositivos de entrada\salida, están ubicados en forma independiente del resto de los componentes.

Este tipo de arquitectura, es precisamente la que se emplea en las computadoras personales, donde por ejemplo, el disco duro funciona como ROM, mientras los cálculos intermedios se almacenan en RAM y los dispositivos de entrada/salida serian por ejemplo, teclado, mouse, pantalla, puertos /USB, etc.

Por otra parte, en un microcontrolador, toda la estructura de una computadora es empaquetada en un solo circuito integrado, que incluye la unidad de procesamiento (CPU), memoria RAM, memoria ROM y circuitos de entrada/salida en el mismo paquete, donde las ventajas principales son bajo costo y tamaño reducido, esto a cambio de incorporar cantidades de memoria limitadas y dispositivos de entrada/salida de capacidad reducida.

Tenemos además que para que una aplicación basada en microcontroladores o microprocesadores realice el trabajo que deseamos, es necesario instalarle las instrucciones necesarias en un programa en ROM, lo cual es un poco más complejo cuando hablamos de sistemas basados en microcontroladores, debido precisamente a las limitaciones en dispositivos de entrada/salida.

Los sistemas Arduino, pertenecen a la categoría de microcontrolador, mientras que Raspberry-PI, pertenece a la de microprocesador, por lo cual se puede observar una relativa diferencia en complejidad al observar la cantidad de componentes que tienen ambos en las imágenes que se muestran a continuación (dos variantes bastante comunes de Arduino y Raspberry-PI).

Sin embargo como mencionábamos, estos sistemas independientemente de la tecnología en que se basan, al estar enfocados en tener bastantes prestaciones manteniendo un tamaño reducido, tienen también algunas desventajas, como es el hecho que para cargar por primera vez un programa a la hora de manufacturar el modulo, es necesario equipo de programación especial.

Sin embargo, con la finalidad de facilitar su uso, el fabricante al momento de ensamblar el modulo, carga un primer programa (al que se acostumbra llamar “bootloader”), de manera que este bootloader permite que el modulo se conecte y pueda recibir programas adicionales desde una computadora personal por medio de un cable USB, haciendo bastante más simple y amigable su uso, sobre todo al utilizar ambientes de desarrollo amigables, de lo cual hablaremos a continuación.

Arduino Nano (basado en microcontrolador SAMD21g18)
Raspberry Pi 4