Electrónica y programación para Microcontroladores.

Libros técnicos para electrónica programable.

Email
Contactanos en:

consultas@firtec.com.ar

Arduino

Todo programador de Arduino alguna vez ha usado la clásica función Serial.available() para saber cuando hay datos en el puerto serial, esta función junto con Serial.begin() y Serial.print() nos dan las herramientas necesarias para establecer comunicación por ejemplo con un computador y ver los datos en el propio terminal de Arduino.
Un ejemplo sería enviar un carácter y pedirle a Arduino que lo devuelva como un eco.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*******************************************************************
 * Descripción: Recibe datos por la UART y los envía como un eco.               
 * Placa Arduino: UNO
 * Arduino IDE: 1.8.10
 * www.firtec.com.ar
*******************************************************************/
void setup() {
    Serial.begin(9600); 	 // Configura la UART
 }
void loop() { 
  if (Serial.available()){		    // Hay datos disponibles?
     char RX_Byte = Serial.read();	// Leer el carácter recibido
     Serial.print(RX_Byte); 		// Enviar nuevamente el caracter
   }
  }

En la actualidad en casi cualquier publicación de electrónica vamos a encontrar la palabra Arduino y seguramente encontrará muchas personas que dirán “Nunca antes trabajar con microcontroladores fue tan simple”.
Y esto claro es verdad, pero desde el punto de vista electrónico que es en realidad Arduino?
Tomemos como ejemplo Arduino UNO y vemos que todo lo que hace el “Sistema Arduino” es cubrir el ATmega328P con una capa que hace mas simple su uso.
Por debajo de esta capa se encuentra el mismo conjunto de registros, las mismas estructuras básicas de un programa para microcontroladores incluso usa los mismos compiladores como es el caso de GCC.

(En realidad para programar Arduino se necesitan avr-binutils, avr-gcc y avr-libc, todas estas herramientas ya están incluidas en el IDE de Arduino y su funcionamiento es trasparente al programador).

Nextion es probablemente una de las mejores opciones para crear proyectos con electrónica. No solamente son compatibles con Arduino, Raspberry PI, Atmel, Microchip, ARM, etc, sino que además podemos utilizarlos de forma independiente contando la propia placa con una serie de pines de uso general incluso un RTC para sistemas de adquisición de datos. Para crear una interfaz en una pantalla Nextion usaremos el editor Nextion, un software provisto por el propio fabricante que hace la tarea del diseño realmente simple.
Una vez que tenemos todo los elementos de la interfaz desplegados en la pantalla se envía la programación a la propia pantalla usando una simple conexión serial.
Este editor de Nextion es la mejor solución, en realidad casi la única para crear proyectos con estas pantallas inteligentes.
Lamentablemente solo existe en versión para Windows que se descarga a través del enlace oficial de Nextion.

Siendo evidente la importancia que tiene ARM en el mundo de la electrónica, a la hora de trabajar con estos dispositivos se  presentan distintas opciones para encarar su programación. 
Por ejemplo imaginemos que estamos trabajando con un Cortex M4, en C (32 bits)
tenemos dos caminos, podemos usar las librerías clásicas de periféricos (LL) o la nueva biblioteca HAL(Capa de Abstracción de Hardware).
La diferencia entre ambos enfoques es grande, las librerías en bajo nivel para periféricos son especializadas para cada microcontrolador, contienen las definiciones de registros y bits de control del microcontrolador
y un conjunto de funciones destinadas a completar las estructuras que finalmente configuran al periférico.
El programador y la electrónica están muy vinculados y es normal trabajar con la hoja de datos del microcontrolador para tener certeza de lo
que estamos haciendo con los registros de la CPU.
Todo esto ofrece una gran optimización de código pero una menor portabilidad y un gran trabajo del programador lo que implica mayor tiempo para el desarrollo de una aplicación.