En mi continua búsqueda de proyectos me topo con este canal de Arduino y su respectiva página https://proyectocorrecaminos.com/mini-tv-con-esp32/ o su vídeo , sobre como construir un tv que reporte los resultados de fútbol continuamente, lo interesante, es que rifo la tv y resulte ganador, haciendo el esfuerzo para mi sorpresa en enviarlo desde México hasta Colombia, cosa que agradezco enormemente.
Enchufar el Arduino en Linux
Ahora manos a la obra e intentar que aparezca algo en la pantalla, por lo tanto luego de hacer las conexiones, cargue el código y sabia que uno sencillamente instala “Arduino IDE” , escribe el código y luego lo enviamos al Arduino, en este caso lo más paradójico es que esto funciona normalmente en windows o mac, pero en linux tiene protecciones o restricciones en las conexiones USB por lo que impide compilar el código en la tarjeta de arduino. Así que se procede a seguir investigando, aunque gracias a este video se logra hacer la magia.
En síntesis
- Tenemos que ejecutar el último archivo (para 2024 seguía siendo el setup-14) de esta lista
- Luego se ejecuta gracias a la terminal el siguiente código que esta al final de esa página:
$ chmod +x arduino-linux-setup-14.sh
$ ./arduino-linux-setup.sh $USER
Acá vemos el comando $USER con ello se ejecuta como root, sin tener que modificar más.
El código genera los permisos a la usb, puerto para accesar al arduino. y al parecer no funciona para arduinos chinos.
Probar el monitor en Arduino
Empezamos haciendo las conexiones, con la pantalla lcd con el siguiente nombre 1.69inch LCD Display Module, 240×280 Resolution, SPI Interface, IPS, 262K Colors y como se desglosan en el código:
Antes de compilar tenemos que instalar las librerias Adafruit_GFX y Adafruit_ILI9341, pues con “Arduino uno” es muy pequeña la memoria y estas librerías limitadas lograron visualizar algún resultado, con el siguiente código logre saber si la pantalla funciona:
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
// Definir los pines para la pantalla en Arduino Uno
#define TFT_CS 10 // Chip Select
#define TFT_RST 8 // Reset
#define TFT_DC 7 // Data/Command
#define TFT_MOSI 11 // MOSI
#define TFT_SCLK 13 // Clock
#define TFT_BL 9 // Backlight (si quieres controlarlo desde el código)
// Crear objeto de pantalla
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
void setup() {
// Encender la luz de fondo
pinMode(TFT_BL, OUTPUT);
digitalWrite(TFT_BL, HIGH);
// Inicializar la pantalla
tft.begin();
tft.setRotation(1); // Ajusta la rotación de la pantalla
tft.fillScreen(ILI9341_BLACK); // Rellena la pantalla de negro
// Intentar diferentes configuraciones de rotación
for (uint8_t rotation = 0; rotation < 4; rotation++) {
tft.setRotation(rotation);
tft.fillScreen(ILI9341_WHITE); // Limpiar la pantalla
// Dibujar rectángulo en cada rotación para ver la diferencia
tft.drawRect(0, 0, tft.width(), tft.height(), ILI9341_RED);
delay(2000); // Esperar 2 segundos para ver el cambio
}
// Mostrar texto de prueba después de probar las rotaciones
tft.setRotation(2); // Ajusta la rotación de la pantalla a 1
tft.fillScreen(ILI9341_BLACK); // Rellena la pantalla de negro
tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK);
tft.setTextSize(2);
tft.setCursor(10, 10);
tft.println("Hola Mundo!");
// Dibujar un rectángulo que cubra toda la pantalla
tft.drawRect(0, 0, tft.width(), tft.height(), ILI9341_RED);
}
void loop() {
// Nada aquí
}
El resultado en mi caso es la impresión de Hola mundo! en una pantalla cuadrada y el resto en negro o parte de la pantalla repetida, como si estuviera comenzando el resultado. no es el resultado optimo, pero por lo menos sabemos si la pantalla funciona bien.