fbpixel
Uso de una pantalla Nextion con Arduino

Uso de una pantalla Nextion con Arduino

La pantalla Nextion es una de las mejores soluciones para crear una interfaz gráfica para controlar tu proyecto Arduino. La interfaz más conocida para interactuar con un Arduino es la pantalla LCD con unos pocos botones y potenciómetros a costa de E/S y sobrecarga de código Arduino. En este tutorial, veremos cómo configurar una pantalla Nextion y cómo utilizarla con Arduino.

Hardware

  • Arduino (u otra placa con puerto UART)
  • Pantalla Nextion
  • Adaptador USB-TTL 5V
  • 4x cable Dupont con conector JST

Presentación de la tarjeta Nextion

La interfaz básica para controlar un Arduino, y presente en todos los kits, es la pantalla LCD con unos pocos botones y potenciómetros, que existe en forma de LCD Shield. También existen Shields con pantallas táctiles, pero éstas utilizan todas las E/S del Arduino y sobrecargan el código del Arduino. Una solución es utilizar una pantalla Nextion, que contiene su propio programa y se comunica con cualquier microcontrolador a través del puerto serie.

N.B.: Es posible crear una interfaz gráfica en un PC o crear una interfaz web para controlar el proyecto añadiendo un módulo de comunicación inalámbrica.

Instalación y presentación del editor Nextion

Descargar e instalar el editor Nextion

Al abrir un nuevo proyecto o archivo, el software le pide el modelo de pantalla (en nuestro caso NX4832K035_011). Puede cambiar la selección en el menú Dispositivo>Configuración.

A continuación, elige la orientación de la pantalla y la codificación.

Crear una interfaz gráfica

Vamos a utilizar el editor gráfico Nextion para crear nuestra interfaz gráfica. En este ejemplo, vamos a añadir:

  • Una imagen
  • Algunos textos para el título o para mostrar datos
  • Un botón que cambia la interfaz
  • Un botón que envía un comando al puerto serie
  • Un temporizador que refresca la interfaz
  • Una variable que almacena los datos recibidos del puerto serie

Para añadir un objeto, haga clic en el objeto deseado en la ventana Caja de herramientas y el objeto se insertará automáticamente en la ventana Visualización. A continuación, puede configurar el objeto en la ventana Atributos

Puede descargar el archivo GUI para importarlo a Nextion Editor. Con este ejemplo, podrás crear interfaces mucho más complejas.

Añadir una imagen

Para añadir una imagen, impórtela primero en el programa con el botón (+) de la ventana “Imagen”.

A continuación, puede insertar un objeto Imagen en la ventana Visualización y seleccionar la imagen pulsando el atributo pic > examinar….

N.B.: Añadir una imagenaux dimensions désirées

Añadir texto

Antes de añadir un objeto de texto, es necesario generar una fuente. Esto puede hacerse en Herramientas> Generar fuente

Una vez generada la fuente, puede seleccionarla en el atributo font del objeto Texto. A continuación, puede modificar el texto en el atributo txt (tenga en cuenta el número máximo de caracteres txt_maxl).

Vamos a añadir cuatro objetos de texto:

  • La etiqueta del título
  • el estado del LED
  • la etiqueta “Analog Val
  • el valor analógico recibido del microcontrolador

Añadir un botón

Una vez añadido el objeto botón a la interfaz, puede ajustar sus atributos:

  • el texto mostrado
  • el color al pulsar el botón
  • el color cuando se libera

En la ventana Eventos, puede programar lo que hará la pantalla cuando se pulse o suelte el botón. Hay una serie de instrucciones que puede utilizar en estas ventanas. Entre ellas se incluyen

  • Modificar elementos de la interfaz (por ejemplo, t0.txt=”Pulsado”)
  • Enviar identificador de botón por puerto serie
  • Envoyer une autre commande avec prints
  • Botón b0
  • Botón b1

En la pestaña Touch Release Event, escribimos el siguiente comando, que es un comando predefinido de la librería Nextion y corresponde a trigger1()

printh 23 02 54 01
  • Botón b2

Para el botón b2, utilizamos el mismo comando pero para trigger2()

printh 23 02 54 02

Añadir un temporizador

El objeto Temporizador puede utilizarse para ejecutar código de forma regular. Especialmente útil para recuperar datos del puerto serie y actualizar la interfaz.

En la pestaña de eventos del temporizador, utilizamos la función covx para convertir el valor de la variable en una cadena y escribirla en el texto t4

covx analog0.val,t4.txt,0,0

Cargar el programa en la pantalla Nextion

Conectar la tarjeta Nextion al conversor USB-TTL

Para cargar la interfaz, pulse Compilar y luego Cargar

Conexión de la pantalla Nextion al microcontrolador Arduino

Para descargar el código Arduino a la placa, los pines RX y TX deben estar desconectados de la pantalla.

Uso de la biblioteca Nextion.h

Hay varias bibliotecas que puede utilizar para gestionar una pantalla Nextion

Utilizamos EasyNextion

En el Editor Nextion, definimos un evento “printh 23 02 54 01” para el botón ON y un evento “printh 23 02 54 02” para el botón Off.

Utilizando la función NextionListen(), estos comandos activarán las funciones trigger1 y trigger2.

#include "EasyNextionLibrary.h"

#define baudrate 9600

EasyNex myNex(Serial);

//Variables
uint16_t analog;
bool ledstate;

const int REFRESH_TIME = 100;
unsigned long refresh_timer = millis();

void setup() {
  myNex.begin(baudrate);

  pinMode(A0, INPUT);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  myNex.NextionListen();

  if ((millis() - refresh_timer) > REFRESH_TIME) {
    analog = analogRead(A0);
    myNex.writeNum("analog0.val", analog);

    refresh_timer = millis();
  }
}

//`printh 23 02 54 XX` , where `XX` the id for the triggerXX() in HEX.
void trigger1() {
  digitalWrite(LED_BUILTIN, HIGH);
  myNex.writeStr("t2.txt", "LED ON");
}

void trigger2() {
  digitalWrite(LED_BUILTIN, LOW);
  myNex.writeStr("t2.txt", "LED OFF");
}

Resultados

Bonificación: Simulador de editor Nextion

Nextion ofrece un simulador para probar las interacciones entre la pantalla, el microcontrolador y la interfaz gráfica. Se puede acceder a este simulador haciendo clic en “Depurar”.

Fuentes

Programación de un ESP32/ESP8266 con MicroPython y VS Code

Programación de un ESP32/ESP8266 con MicroPython y VS Code

Vamos a ver cómo programar una tarjeta ESP32 o ESP8266 en MicroPython utilizando Visual Studio Code, un IDE cada vez más utilizado para programar en diferentes lenguajes. La tarjeta ESP32 se puede programar de la siguiente manera

Presentación de Visual Studio Code

Visual Studio Code es un editor de código ligero y extensible desarrollado por Microsoft. VsCode ofrece muchas de las mismas características que el IDE de Arduino:

  • Finalización automática
  • Resaltar la sintaxis
  • Funciones de depuración
  • Programación en varios lenguajes (C++, C
  • Gestión de proyectos
  • Gestión de repositorios Git
  • Y así sucesivamente.

Es de código abierto y está disponible en las plataformas Windows, Linux y MacOS.

Instalación del firmware MicroPython en la tarjeta ESP

Para instalar el firmware MicroPyhton en la tarjeta ESP32 o ESP8266, puede utilizar uno de los dos tutoriales siguientes:

Instalación de Visual Studio Code

Vaya a la página de descargas de Visual Studio Code y descargue la versión para su sistema operativo.

Ejecute el instalador y siga el procedimiento

Instalación de Pymakr

Para programar en Python, es necesario instalar la extensión correspondiente.

Haga clic en el icono “Administrar” (rueda dentada) de la parte inferior izquierda y seleccione Extensiones (o Ctrl+Mayús+X)

A continuación, busque y seleccione “Pymakr”. A continuación, instale la extensión.

Haz clic en el icono de Pymakr y selecciona “crear proyecto”.

A continuación, haga clic en AÑADIR DISPOSITIVO y seleccione el ESP conectado al ordenador.

Una vez seleccionado el dispositivo, puede conectarlo pulsando el rayo

Instalación de Node.js

Es posible que en el paso anterior, el paso “crear proyecto” no funcione correctamente. En este caso, para solucionar el problema, basta con instalar otro software de terceros llamado Node.js, que permitirá que la extensión Pymakr funcione correctamente. Visita https://nodejs.org/en/ para descargar la versión para Windows (x64). Una vez descargada, puedes ejecutar el instalador de la aplicación.

Haga clic en “Siguiente” dos veces para aceptar las condiciones.

Elija la ubicación de la aplicación (puede dejar la ubicación predeterminada en la carpeta “Archivos de programa” de su ordenador) y, a continuación, haga clic en “Siguiente”.

No hay necesidad de cambiar nada aquí, así que simplemente haga clic en “Siguiente”.

Aquí, no hay necesidad de instalar herramientas adicionales como Chocolatey como se sugiere, así que hacemos clic en ‘Siguiente’.

Por último, haga clic en “Instalar”, autorizando la instalación con derechos de administrador si el ordenador se lo pide.

La instalación de Node.js ha finalizado y puede hacer clic en “Finalizar”.

Puede pasar a la parte de programación de MicroPython en Visual Studio Code. Sin embargo, asegúrate de haber cerrado y reiniciado Visual Studio Code para que tenga en cuenta Node.js.

Programar la tarjeta ESP32

Una vez configurado el proyecto, puedes lanzar un terminal Pymakr en la pestaña TERMINAL. Haz clic en la flecha a la derecha del “+” para seleccionar la consola Pymakr.

Pulse “Enter” para establecer la conexión “select”.

Ya puedes programar en MicroPython directamente en el ESP

Ejecutar un script de Python en su ESP32

Hay dos archivos Python en el proyecto:

  • boot.py, que se ejecuta al arrancar el microcontrolador
  • main.py, que contiene el código principal y se ejecuta justo después de boot.py

Abre el archivo main.py del proyecto y copia el siguiente código

import sys
import time

def main():
    print("MicroPython program is running ")
    time.sleep(0.5)

if __name__=="__main__":
  print("{} initialized".format(sys.platform))
  while(1):
    try:
      main()
    except KeyboardInterrupt:
      print("Program stopped")
      sys.exit(0)

A continuación, puedes cargar el código en la tarjeta mediante el botón “Sincronizar proyecto con dispositivo”.

Después de reiniciar la tarjeta con el botón EN, se puede ver que el código se ejecuta correctamente

Fuentes

Programación de Arduino con Visual Studio Code

Programación de Arduino con Visual Studio Code

Vamos a ver cómo programar una placa Arduino utilizando Visual Studio Code, que es una buena alternativa al IDE de Arduino. Generalmente empezamos a programar en Arduino utilizando el IDE oficial, pero puede ser interesante cambiar de editor de código para tener acceso a un mayor número de funciones. En este artículo, presentamos el uso de Visual Studio Code. Existen otros editores, como Eclipse, Netbeans, Atom.io, etc.

Presentación de Visual Studio Code

Visual Studio Code es un editor de código ligero y extensible desarrollado por Microsoft. VsCode ofrece muchas de las mismas características que el IDE de Arduino:

  • Finalización automática
  • Resaltar la sintaxis
  • Funciones de depuración
  • Programación en varios lenguajes (C++, C
  • Gestión de proyectos
  • Gestión de repositorios Git
  • Y así sucesivamente.

Es de código abierto y está disponible en las plataformas Windows, Linux y MacOS.

Instalación de Visual Studio Code

Vaya a la página de descargas de Visual Studio Code y descargue la versión para su sistema operativo.

Ejecute el instalador y siga el procedimiento

Para comunicarse con Arduino, es necesario instalar la extensión adecuada.

Haga clic en el icono “Administrar” (rueda dentada) de la parte inferior izquierda y seleccione Extensiones (o Ctrl+Mayús+X)

A continuación, busca Arduino y selecciona “Arduino for Visual Studio Code”.

Reiniciar VsCode

Configuración de VsCode para Arduino

Haga clic en el icono Gestionar y seleccione “Comando de paleta” (o Ctrl+Mayús+P)

Busca Arduino, y entonces tendrás acceso a varios comandos relacionados con Arduino.

Seleccione Arduino Board Config y luego seleccione el tipo de placa

En la parte inferior derecha, haz clic en Seleccionar puerto serie y, a continuación, selecciona el puerto serie correspondiente al Arduino (aquí, COM5).

En la parte inferior derecha, haga clic en Seleccionar programador y seleccione “AVRPISP mkII”.

Compilar el código y cargarlo

En la paleta de comandos (Ctrl+Mayús+P), busque Arduino: Ejemplos y elija Parpadeo u otro ejemplo.

A continuación, puede cargar el código haciendo clic en “Cargar” en la esquina superior derecha.

La consola indica si el código se está cargando y puedes comprobar que el código está cargado en la placa Arduino mirando el estado del LED.

Modificando un poco el código, podemos enviar texto al monitor serie.

int led = 13;

// the setup routine runs once when you press reset:
void setup() {
  Serial.begin(115200);
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  Serial.println("Led is High");
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  Serial.println("Led is Low");

  delay(1000);               // wait for a second

}

Descarga el código modificado en la placa Arduino.

Para abrir el monitor serie, pulse el icono Monitor serie situado justo a la derecha del tipo de tarjeta, en la esquina inferior derecha.

A continuación, puede seleccionar la velocidad en baudios deseada en la barra de configuración de la placa Arduino situada en la parte inferior derecha (115200).

Envío de comandos al monitor serie

Al igual que con el IDE de Arduino, puedes enviar comandos a través del puerto serie.

En la paleta de comandos de Arduino, busque “Sedn text to Serial Port”. Aparece una barra de entrada.

Puede crear un atajo de teclado para abrir este comando más fácilmente. Pulse la rueda dentada situada a la derecha del comando

 

Fuentes

https://code.visualstudio.com/
https://www.aranacorp.com/fr/programmez-avec-arduino/
https://code.visualstudio.com/Download

Herramientas para probar la comunicación UDP

Herramientas para probar la comunicación UDP

,

Con uno o más dispositivos conectados a una red WiFi, a menudo es útil disponer de herramientas para probar el protocolo de comunicación UDP. Es posible comunicarse entre diferentes dispositivos como ordenadores, Arduino, ESP32, ESP8266, utilizando el protocolo UDP. Existen herramientas que permiten enviar datos desde el ordenador para probar la conexión y la recepción de determinados paquetes.

Hardware

  • Ordenador
  • Microcontrolador configurado como servidor UDP (Raspberry Pi, ESP32, ESP8266)

NetCat

Si utiliza un ordenador con Windows, puede instalar la herramienta NetCat (Descargar Source o NetCat precompilado ) (preinstalado en Linux y MacOS).

(Nota: En Windows recomendamos utilizar Remitente de paquetes, que es más fácil de instalar desde una fuente segura para los principiantes).

Netcat es una herramienta de línea de comandos para transferir datos utilizando los protocolos de red TCP.

Copie la carpeta donde desee en su ordenador (por ejemplo, C:

A continuación, vaya a la carpeta donde se encuentra nc.exe

Introduzca el siguiente comando para enviar una cadena de caracteres, cambiando la dirección IP y el puerto para que coincidan con el puerto local abierto en su dispositivo.

echo "hello" | nc -u -w1 192.168.1.80 8888

(la opción -w corresponde al tiempo de espera en segundos tras el cual se cierra la conexión)

Resultados

PacketSender

Descargue e instale el software PacketSender, una herramienta para intercambiar paquetes de datos mediante los protocolos UDP, TCP, SSL y HTTP GET/POST.

En primer lugar, debe introducir el mensaje en el inserto ASCII

A continuación, puede introducir la dirección IP y el puerto del servidor

En el menú desplegable, justo al lado del botón “Enviar”, seleccione UDP.

Sólo queda pulsar “Enviar”.

Resultados

Fuentes

Si conoces alguna otra herramienta para probar la comunicación UDP, TCP o inalámbrica, deja un comentario.

Acceso remoto a la Raspberry Pi con NoMachine

Acceso remoto a la Raspberry Pi con NoMachine

,

En este tutorial vamos a ver cómo acceder al escritorio de la Raspberry Pi de forma remota utilizando NoMachine. Puede ser muy útil para comunicarse con su microordenador Raspberry Pi de forma remota, ya sea para evitar tener que andar con una pantalla, teclado y ratón, o si lo está utilizando en modo headless. También te permite aprovechar el software del ordenador y navegar por Internet mientras trabajas en el Raspberry Pi.

Hardware

  • Ordenador
  • Raspberry Pi 3B+ (Configurada con Raspbian y conectada a WiFi)

Instalación de NoMachine en Raspberry Pi

Antes de descargar NoMachine, compruebe la configuración de su Raspberry Pi escribiendo uname -a o cat

pi@raspberrypi:~ $ cat /proc/cpuinfo
processor	: 0
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

Descarga NoMachine desde este enlace. Elija el paquete compatible con su versión de Raspberry pi y OS

A continuación, puede instalar el software utilizando el terminal de la carpeta de descarga

$ cd Downloads
$ sudo dpkg -i nomachine_4.6.12_1_armv6hf.deb

Una vez instalado el software, el icono debería aparecer en la parte superior derecha del escritorio

Instalación de NoMachine en su ordenador

Puede descargar el software de acceso NoMachine siguiendo este enlace.

Conexión remota a la Raspberry Pi

En primer lugar, en el menú NoMachine de la Raspberry Pi, selecciona la opción “escritorio compartido”.

Si el ordenador y la Raspberry Pi están conectados en la misma red, la Raspberry Pi debe ser visible cuando se inicia el software en el ordenador.

El software solicita el nombre de usuario y la contraseña de Raspberry Pi para autorizar la conexión (por defecto login pi, mdp: raspberrypi).

Una vez introducidos la contraseña y el nombre de usuario, debería aparecer el escritorio remoto.

Para configurar la ventana NoMachine y los ajustes, vaya al menú de la Raspberry Pi

A continuación, tendrás acceso a varias opciones en la pantalla, incluido el uso del micrófono y los periféricos.

Problema: Configuración del idioma del teclado NoMachine

En algunos casos, el teclado virtual puede estar mal configurado y mostrar “qwerty” en lugar de “azerty”, aunque la configuración parezca correcta en la Raspberry Pi y en su ordenador. Para resolver este problema, introduzca el siguiente comando en el terminal con el idioma deseado como opción (aquí fr para francés).

setxkbmap -model pc105 -layout fr

Debes ejecutar este comando cada vez que inicies la Raspberry Pi. Alternativamente, puede añadir el comando al arranque del servidor para ejecutarlo automáticamente

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

y coloque la línea de comandos al final del archivo

Aplicaciones

  • Trabajar en su Raspberry Pi sin cabeza

Fuentes