LCDreader – Leer estados de gnusocial en una pantallita

Es muy sencillo montarse un dispositivo para mostrar en una pantalla LCD las menciones en gnusocial. Puede montarse por poco dinero y con hardware libre (Arduino) y software libre.

Este dispositivo esta soportado por gitn (gnusocial in the night) que se puede descargar desde aquí:  gitn.tar.gz

Este dispositivo si lo enchufas a un PC con GNU/Linux podrás utilizarlo para que gitn mande al dispositivo las menciones que tiene de una cuenta configurada en gitn.

Materiales necesarios

  • Una pantalla LCD “2.4 Inch TFT LCD Touch Screen Module” y un Arduino UNO rev3. Unos 12 euros ambas cosas aquí
  • Una cuenta en un nodo gnusocial ( por ejemplo en https://gnusocial.net ) te puedes abrir una.
  • Un cable USB para conectar el Arduino a un PC (suele venir con el Arduino, si no es así posiblemente uno de una impresora te sirva).
  • Tener instalado gitn (gnusocial in the night).

 

Software necesario

Tendremos que programar Arduino para que funcione como deseamos. Son necesarias las librerías Adafruit_GFX y Adafruit_TFTLCD que están en el directorio libs de gitn pero que puedes descargar desde aquí igualmente: Adafruit_GFX.zip Adafruit_TFTLCD.zip

El código que cargaremos al arduino esta en el archivo lcdreader.ino (Descargable desde aquí lcdreader.ino) que puede verse aquí:

#include <Adafruit_GFX.h>    // Librería de gráficos
#include <Adafruit_TFTLCD.h> // Librería de LCD 

// Pines de conexión del LCD 
#define LCD_CS A3 // Chip Select - Pin Analógico 3
#define LCD_CD A2 // Command/Data - Pin Analógico 2
#define LCD_WR A1 // LCD Write - Pin Analógico 1
#define LCD_RD A0 // LCD Read - Pin Analógico 0
#define LCD_RESET A4 // LCD Reset - Pin Analógico 4

Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Instancia del LCD 

#define    BLACK   0x0000  // Definimos los colores para poder referirnos a ellos con su nombre                  
#define    RED     0xF800  // en lugar de usar el código hexadecimal de cada uno. 
#define    GREEN   0x07E0 
#define    WHITE   0xFFFF  
#define    BLUE    0x001F 
#define    CYAN    0x07FF
#define    YELLOW  0xFFE0
#define    MAGENTA 0xF81F

char dato = ';';
int x=0;
int y=0;
void setup(void) 
{
  tft.begin(0x9325); // Iniciamos el LCD especificando el controlador de nuestro LC. En este caso el 0x9325. Otros controladores: 0x9341, 0x9328,0x7575, 0x9341, 0x8357.
  tft.fillScreen(BLACK); // Colocamos el fondo del LCD en Negro
  tft.setRotation(1); // Establecemos la posición de la pantalla Vertical u Horizontal
  tft.setTextSize(2); // Definimos tamaño del texto. (Probado tamaños del 1 al 10)
  tft.setTextColor(GREEN); // Definimos el color del texto 
  Serial.begin(9600);

}

void loop(void) 
{  
    if(Serial.available() > 0) //Comprobamos si en el buffer hay datos
    {
      if(dato == ';'){
              dato=Serial.read();  //Lee cada carácter uno por uno y se almacena en una variable
              Serial.write(dato);  //Imprimimos en la consola el carácter recibido
              if (x > 300) {
                y=y+16;
                x=0;
              }
              
              if (dato == '@'){
                  tft.setTextColor(RED); // Definimos el color del texto 
              }              
              if (dato == ' '){
                 tft.setTextColor(GREEN); // Definimos el color del texto 
              }
              
              
              tft.setCursor(x,y);  // Situamos el cursor en la posición del LCD deseada, (X, Y) siendo X el ancho (240 px max.) e Y el alto (320 px max.)
              tft.println(dato);
              x=x+12;
              dato=';';
      }
    }
    //delay(1000);   
}

 

Enchufando el tinglado

Esto no tiene mucho misterio. Básicamente calzamos la pantalla LCD sobre el Arduino y enchufamos el cable USB al Ordenador.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *