BLE Telesketch

BLE Telesketch

by Citilab Edutec

Boards
Boards:

Citilab ED1

Component/s
Components:

None
Esta actividad forma parte del Curso del Citilab. ¡Échale un vistazo!

BLE Telesketch

Placas Solo para placas con Bluetooth BLE, pantalla TFT y acelerómetro, como la ED1, M5Stack-Core, Co-Cube y otras. También se puede hacer una versión más simple para placas con pantalla LED, como la micro:bit o la micro:STEAMakers.

  • El Telesketch, o Etch A Sketch, es un juguete que se popularizó en los años 60 y que permitía dibujar en una pantalla que simulaba un televisor. Tenía dos ruedas que controlaban el movimiento horizontal y vertical del cursor. Para borrar el dibujo, se usaba un botón que limpiaba toda la pantalla.
Telesketch
CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=623459
  • En esta actividad construiremos una versión colaborativa del Telesketch aprovechando la posibilidad de conectar varias placas mediante BLE (Bluetooth Low Energy).

Construcción del juego sin conexión

  • Empezaremos construyendo el juego sin la conexión BLE.

  • El primer paso es definir dos variables, x e y, para almacenar las coordenadas de un círculo que colocaremos aleatoriamente en la pantalla TFT.

Posicionar el círculo

  • Con el acelerómetro haremos que, al inclinar la placa, el círculo se desplace por la pantalla.

  • Por ejemplo, cuando la inclinación x sea inferior a cierto valor, nos moveremos hacia la izquierda, disminuyendo la coordenada x.

Mover con la inclinación

Reto 1: completa el movimiento del círculo

Reto 1

Solución al reto 1

Solución reto 1

  • Como será un Telesketch colaborativo, cada participante tendrá su propio color. Para ello, definimos una variable color con un valor aleatorio.

  • Para evitar que el color sea oscuro y no se vea en la pantalla, utilizamos el bloque _ con brillo _ % de la biblioteca Color, ajustándolo el brillo al 90%.

Ajustar el color

  • Para borrar la pantalla, utilizaremos el acelerómetro para detectar un sacudido.

Borrar la pantalla al agitar

BLE Radio

  • Para comunicar las placas entre sí, usaremos la biblioteca BLE Radio. Es necesario tener activado el soporte para BLE en la placa. Si la placa tiene pantalla, al iniciarse mostrará tres letras que son su identificador BLE. También podemos usar el bloque identificador BLE de la categoría Entrada para comprobar este valor.

Bloque identificador BLE

  • Para activar o desactivar esta opción, debemos ir al icono de opciones Opciones y seleccionar la opción activar o desactivar BLE.

  • La comunicación por BLE es muy sencilla, no necesita emparejar dispositivos. El alcance está limitado a unos 10 metros.

  • Para continuar, importamos la biblioteca BLE Radio.

Biblioteca BLE Radio

  • Para enviar un texto, usamos el bloque envía texto _ por BLE.

  • Para recibir, necesitamos dos bloques: ¿mensaje BLE recibido? y último texto recibido por BLE, dentro de un bloque de repetición.

BLE Radio limpiar

  • El texto enviado lo reciben todas las placas conectadas por BLE Radio, excepto la placa que emite el mensaje.
Enviar y recibir las coordenadas del círculo
  • Para enviar las coordenadas, construimos un texto que contenga toda la información utilizando el bloque une _ _ de la categoría Datos.

BLE Radio enviar coordenadas

  • Para recibir las coordenadas, descomponemos el texto recibido con el bloque divide _ por _ y dibujamos el círculo usando las coordenadas obtenidas.

BLE Radio recibir coordenadas

Reto Final 1: ¡Completa el Telesketch colaborativo!

Reto Final 1

Solución al reto final

Solución reto final 1

  • Se ha modificado ligeramente la forma de mostrar el círculo, haciendo un pequeño parpadeo para distinguir cuál es el nuestro.

  • El envío de datos por BLE es lento y de vez en cuando se puede perder algún mensaje, especialmente si hay muchos dispositivos conectados. Se puede modificar la espera al final del bloque envía par _=_ por BLE para que los dibujos recibidos sean más continuos.

Ajustar el envío por BLE

  • Como se comentó antes, los mensajes BLE los reciben todas las placas. Es posible enviar mensajes a un grupo de placas utilizando el bloque fija el grupo BLE a _ (0-255). Solo las placas del mismo grupo se comunicarán entre sí.

BLE Radio grupos

Comunicación con OctoStudio

Placas Para placas con Bluetooth BLE, pantalla LED y acelerómetro, como la ED1, M5Stack-Core, micro:bit, micro:STEAMakers, Co-Cube y otras.

  • OctoStudio es una aplicación móvil gratuita para programar mediante bloques, desarrollada por los creadores de Scratch en el MIT Media Lab.

  • Está especialmente diseñada para niños y niñas a partir de 7 años. Hay versiones para Android y iPhone, y a diferencia de App Inventor, no genera aplicaciones independientes.

  • Uno de los aspectos interesantes de OctoStudio es que incluye un método de comunicación entre dispositivos, muy similar a BLE Radio, que hemos visto anteriormente.

OctoStudio BLE bloques

  • Solo se pueden enviar ocho figuras diferentes, más que suficiente para muchas aplicaciones sencillas. Al igual que con BLE Radio, también hay soporte para canales.

Carrera de figuras en OctoStudio

  • Para mostrar cómo funciona la comunicación entre OctoStudio y MicroBlocks, haremos una carrera para un máximo de 4 jugadores que moverán su figura sacudiendo una placa. ¡A ver quién llega antes!

OctoStudio Figures App

  • Para empezar, hay que colocar la figura en el punto de salida y ajustar su tamaño si es necesario.

  • Luego, solo hay que esperar a que llegue una señal BLE correspondiente a su figura para avanzar unos pasos.

OctoStudio Figures, esperando una señal

  • Finalmente, hay que detectar cuándo una figura toca la meta y evitar que el resto continúe avanzando. Aprovecharemos para emitir un círculo, de forma que las placas reciban una señal en MicroBlocks que indique que la carrera ha terminado.

OctoStudio Figures, final

Carrera de figuras en MicroBlocks

  • En MicroBlocks hay que usar la biblioteca OctoStudio de la categoría Red.

Biblioteca OctoStudio

  • Para enviar, usamos el bloque envía _ a teléfonos vía Octo.

  • La figura la elegimos al azar de una lista con los nombres de las figuras (en inglés). Aprovechamos el nombre para mostrar la figura en pantalla con el bloque muestra imagen _ de Pantalla LED.

MicroBlocks Figures, enviar BLE

  • Para recibir, usamos los bloques ¿mensaje Octo recibido? y último mensaje Octo. En este caso, crearemos una variable final que se activará cuando se reciba un círculo desde la aplicación OctoStudio.

MicroBlocks Figures, recibir BLE

Reto Final 2: Completa la carrera de figuras tanto en OctoStudio como en MicroBlocks

Reto Final 2

Solución al reto final

Solución reto final 2

Esta actividad forma parte del Curso del Citilab. ¡Échale un vistazo!

⬅️ Activitad anterior

CC-BY-SA

© by Citilab Edutec 2019-2025.
This work is licensed under a CC-BY-SA 4.0 license.