top of page

IMÁGENES, DIBUJANDO EN EL DISPLAY DE MI MICRO:BIT

  • Joan A. Marí
  • 16 sept 2017
  • 3 Min. de lectura

En la librería microbit podemos encontrar también imágenes preprogramadas a modo de emoticonos, de manera que utilizando el método show() dentro del objeto display podemos utilizar un gran abanico de ellos.

El mínimo código para poder realizar esta tarea es el siguiente:

From microbit import*

Display.show(Image.HAPPY)


Como se puede ver los emoticonos están almacenados en el objeto Image y tenemos una gran variedad de ellos. A continuación hacemos una recopilación de todos ellos:

  • Image.HEART

  • Image.HEART_SMALL

  • Image.HAPPY

  • Image.SMILE

  • Image.SAD

  • Image.CONFUSED

  • Image.ANGRY

  • Image.ASLEEP

  • Image.SURPRISED

  • Image.SILLY

  • Image.FABULOUS

  • Image.MEH

  • Image.YES

  • Image.NO

  • Image.CLOCK12, Image.CLOCK11, Image.CLOCK10, Image.CLOCK9, Image.CLOCK8, Image.CLOCK7, Image.CLOCK6, Image.CLOCK5, Image.CLOCK4, Image.CLOCK3, Image.CLOCK2, Image.CLOCK1

  • Image.ARROW_N, Image.ARROW_NE, Image.ARROW_E, Image.ARROW_SE, Image.ARROW_S, Image.ARROW_SW, Image.ARROW_W, Image.ARROW_NW

  • Image.TRIANGLE

  • Image.TRIANGLE_LEFT

  • Image.CHESSBOARD

  • Image.DIAMOND

  • Image.DIAMOND_SMALL

  • Image.SQUARE

  • Image.SQUARE_SMALL

  • Image.RABBIT

  • Image.COW

  • Image.MUSIC_CROTCHET

  • Image.MUSIC_QUAVER

  • Image.MUSIC_QUAVERS

  • Image.PITCHFORK

  • Image.XMAS

  • Image.PACMAN

  • Image.TARGET

  • Image.TSHIRT

  • Image.ROLLERSKATE

  • Image.DUCK

  • Image.HOUSE

  • Image.TORTOISE

  • Image.BUTTERFLY

  • Image.STICKFIGURE

  • Image.GHOST

  • Image.SWORD

  • Image.GIRAFFE

  • Image.SKULL

  • Image.UMBRELLA

  • Image.SNAKE

Imágenes DIY


Existen muchas imágenes ya programadas, pero y si queremos realizar la nuestra propia? Veamos cómo realizarlo a continuación.


Cada led en el display puede tener hasta 10 valores diferentes donde 0 (cero) es totalmente apagado y un 9 es totalmente encendido. Los valores entre 0 y 9 representan un brillo intermedio, cuanto más se aproximen al 9 será más intenso y cuando más se aproximen al 0 serán más tenues. Vamos a ver cómo podemos programarlo.

El código a realizar será el siguiente:


from microbit import*

barco = Image(“05050:”

“05050:”

“05050:”

“99999:”

“09990:”)

display.show(barco)


Como se puede ver, lo primero de todo es importar la librería. Seguidamente hemos utilizado la función Image. La codificación de los leds es sencilla, se escriben cinco líneas con cinco valores tal y como están dispuestos en el microcontrolador utilizando los dos puntos para finalizar cada línea y estando los valores entre comillas dobles. De echo se podría poner todo en una línea de la siguiente forma


barco = Image(“05050:05050:05050:99999:09990:”)


Los valores que devuelve la función Image se almacenarán en una variable para posteriormente poder mostrarlo en el microbit. Normalmente se utilizan nombres de variables que describan lo que contienen. Como en este caso se dibujará un barco con dos mástiles se ha optado por poner el nombre barco. Por convención lo normal es utilizar todo minúsculas para el nombre de las variables, si van a contener más de una palabra se separa con una barra baja. Por ejemplo, barco_dos_mastiles.


Animaciones


Las imágenes estáticas son divertidas, pero lo pueden ser más si tienen movimiento. Esto también lo podemos hacer simplemente utilizando una lista de imágenes!


Por ejemplo vamos a crear una lista de compra de la siguiente manera:


compra=[“Huevos”,”Bacon”,”Tomates”]


En este caso la lista se llama compra, y sabemos que es una lista porque está definida entre corchetes []. Los elementos de la lista de separan mediante coma , y en este caso son tres elementos tipo string. Como sabemos los string tienen que ir definidos entre comillas.


Es importante distinguir entre el dato 2 y el dato “2”, el primero es un dato de tipo entero (se tratará como un número) y en el segundo es de tipo string (se tratará como un texto).


Las listas pueden contener elementos de diferentes tipo, es decir, puede definir una lista que contenga un string, un número y una imagen tal y como se muestra en el siguiente ejemplo.


lista_mezclada = [“Hola!”, 3.14159, Image.HEART]


Como también se pueden poner imágenes, podemos animar una lista de imágenes. De echo existen unas listas de imágenes preconstruidas. Se llaman Image.ALL_CLOCKS y Image.ALL_ARROWS. Las podemos ver escribiendo el siguiente código:


from microbit import*

display.show(Image.ALL_CLOCKS, loop=true, delay=100)


Como se puede observar también utilizamos el comando display.show(), en este caso aunque le pasemos Image.ALL_CLOCKS, micropython lo identifica como una lista. En este caso le pasamos dos parámetros. El primero, loop=True, para que reproduzca en bucle la lista. El segundo delay=100 que va a ser el tiempo de espera entre un elemento y otro de lista. La unidad de tiempo para la espera es el milisegundo, es decir, que para que pase medio segundo tendremos que poner 500 y para que pase un segundo 1000.


Puedes animar la lista Image.ALL_ARROWS? Como se podría hacer para que sólo animara una vez la lista (Pista, lo contrario a True es False)? Puedes cambiar la velocidad de la animación?


A continuación vamos a ver como realizar nuestra propia animación. En este caso vamos a animar la imagen que hemos creado anteriormente del barco. Para ello definiremos diferentes imágenes que almacenaremos en una lista para posteriormente animar. Vamos a ello


from microbit import*

barco1 = Image(“05050:05050:05050:99999:09990:”)

barco2 = Image(“00000:05050:05050:05050:99999:”)

barco3 = Image(“00000:00000:05050:05050:05050:”)

barco4 = Image(“00000:00000:00000:05050:05050:”)

barco5 = Image(“00000:00000:00000:00000:05050:”)

barco6 = Image(“00000:00000:00000:00000:00000:”)

todos_los_barcos=[barco1,barco2,barco3,barco4,barco5,barco6]

display.show(todos_los_barcos,delay=500)


En este caso se ha decidido animar el hundimiento del barco, para ello se han realizado seis imágenes las cuales se han guardado en la lista todos_los_barcos y a continuación se han animado. En este caso para hacerlo más realista se ha decidido una sola vez


En el siguiente enlace se puede descargar el archivo en micropython del último ejemplo.

https://drive.google.com/file/d/1dXLBPl5ghhD-DX_RVqZQHkx8DtflUf79/view?usp=sharing



Fuente: http://microbit-micropython.readthedocs.io/en/latest/tutorials/images.html

 
 
 

Comments


© 2016 by Joan A. Marí

  • LinkedIn Social Icon
  • FRAUDE
bottom of page