mClon

tecnoloxia.org | A Industriosa

Texto, figuras e debuxos

Imos ver o que somos capaces de facer cunha matriz de LEDs no mClon. Nesta páxina tes as instrucións de montaxe e conexión.

Librería

Para facer os nosos programas debemos utilizar unha librería que nos facilite a tarefa. A que propoñemos aquí é a librería chamada LedControlMS (ligazón a GitHub. Ligazón directa ao ficheiro zip) Nela temos toda a programación necesaria para definir os caracteres na matriz, polo que aforramos moito traballo de programación.

Descargámola ao noso ordenador e desde o IDE seleccionamos Sketch → Incluír biblioteca → Engadir .zip

libreria

Todos os programas empezarán co seguinte código no que preparamos a matriz.

Prácticas:

Nas vindeiras prácticas indicaremos unicamente o código que hai que engadir. Lémbrate de incluír a primeira parte do programa!

Selecciona a pestana coa práctica que che interese:

1. Texto

Imos escribir un texto no noso programa e vaise mostrar, carácter a carácter, na matriz de LEDs. Para iso utilizamos a función:   lc.writeString (0,”texto a escribir”);

 

2. Scroll

Se o que queremos é que as letras se movan pola pantalla dun lado a outro (scroll) debemos utilizar unhas funcións que posibilitan ese desprazamento. O primeiro parámetro indica o carácter a desprazar e o segundo o intervalo de tempo entre as escrituras na pantalla, que inflúe na velocidade de desprazamento.

  • Scroll cara á esquerda: scrollLeft(carácter, tempo);
  • Scroll cara á dereita: scrollRight(carácter, tempo);

3. Un LED

Neste primeiro programa imos acender e apagar algúns LEDs indicando as súas coordenadas. Para iso utilizamos a función lc.setLed(matriz, fila, columna, estado).

Por exemplo:  lc.setLed(0,5,5,HIGH); // Acender o LED da posición (5, 5)

Para borrar toda a pantalla utilizamos a función:   lc.clearDisplay(0);

 

Tamén podemos ir movéndonos pola matriz:

4. Filas e columnas

No caso anterior desprazamos un único bit. Se queremos desprazar un byte (conxunto de 8 bits) dun lado a outro utilizaremos as seguintes funcións:

  • Control das filas: lc.setRow(matriz, fila, valor)
  • Control das columnas:  lc.setColumn(matriz, columna, valor);
  • Borrar matriz:   lc.clearDisplay(0);

Podemos utilizar o valor en binario: Por exemplo con B10100101 (en binario) indicamos os LEDs que están acesos cun 1 e os apagados cun 0. Tamén podemos expresar o byte en decimal (0= todo apagado ata 255 todo aceso) ou en hexadecimal (0x00 todo apagado ata 0xFF todo aceso)

5. Mov. lateral

Imos desprazar un byte cara á esquerda e cara á dereita utilizando o operador de desprazamento lóxico

  • <<  Despraza  cara á esquerda (multiplica por 2)
  • >> Despraza cara á dereita (divide entre 2)

6. Debuxos

Outra cousa que nos pode interesar é crear debuxos para mostrar na matriz. Para iso temos que definir cada debuxo cun array que conteña os valores dos LEDs (acesos e apagados). Existen aplicacións para facelo facilmente, como a que hai nesta ligazón ou nesta (aquí podes rotar os debuxos) Só hai que seleccionar os LEDs que queremos acender e xera automaticamente os valores en binario e hexadecimal. Revisa a orientación que deben ter os debuxos segundo a orientación da túa matriz de LEDs.

matriz_debuxo

[Captura da aplicación led matrix generator]

Neste exemplo imos facer o latexo dun corazón. Para facer outras animacións só tes que modificar os arrays cos teus debuxos, xerar o patrón como se indica e programar o void loop() segundo as túas necesidades.

Retos:

  • Inicio: Imos empezar os programas con luces. Fai que ao premer no pulsador a matriz de leds amose unha mensaxe ou debuxos. Crea unha función para que poidas incorporala facilmente noutros programas.
  • Debuxo: Fai que cada vez que o sensor ultrasónico detecte un obxecto apareza un debuxo na matriz de leds (un boneco, unha cara sorrinte, …). Se non ten un obxecto diante deberá desaparecer. Proba facer que o debuxo teña movemento mentres hai un obxecto diante do sensor, como fixemos co exemplo do corazón do inicio desta páxina.
  • Conta-latas: No programa no que o mClon vai por unha liña rodeando ou apartando latas engade un contador e amosa na matriz de leds o número de latas que leva atopado.
  • Saímos da liña?: No programa de seguir unha liña, cada vez que o mClon sae da liña deberán acenderse os leds da matriz da columna do lado polo que saíu. Se está completamente fóra deberán acenderse catro columnas.
  • Detector de nivel:  Fai que as filas da matriz se vaian acendendo en función do nivel detectado por un sensor. Por exemplo, co sensor ultrasónico, a medida que un obxecto se atopa máis cerca se irán acendendo máis filas.
  • Luces ao chou: Utiliza a función random para crear un patrón de luces aleatorio coma este: