Aplicación en Android
Lo primero que tendremos que realizar es crear un proyecto nuevo desde la Web de MIT App Inventor 2 e instalar (importar) la última versión de la extensión BluetoothLE.aix para poder tener disponibles los bloques necesarios para trabajar con Bluetooth Low Energy.
-
- Enlace de descarga de la extensión BluetoothLE.aix (descargar)
- Tutorial de la extensión (ver)
En el siguiente documento en inglés (ver) se explica cómo importar la extensión y programar los bloques para poder escanear y vincular un dispositivo Bluetooth Low Energy con esta extensión:
Empezaremos creando dos variables globales para poner los identificadores (UUID) tanto del servicio como de la característica asociada al servicio que tendrá el dispositivo periférico (en nuestro caso el robot):
Crearemos una función que inicialice los elementos de la pantalla a sus valores por defecto:
Los siguientes bloques representan la gestión de los eventos para escanear y conectar dispositivos Bluetooth Low Energy y de esta manera poder vincular la aplicación con nuestro robot:
Los siguientes bloques representan las funciones que envían la instrucción (en nuestro caso una letra) al robot por Bluetooth Low Energy cada vez que se interactua con cada una de las flechas que representar los movimientos:
Como vemos existen dos tipos de eventos asociados a las flechas de movimiento:
El evento “TouchDown” representa la pulsación del botón (flecha de movimiento) que enviará la instrucción correspondiente indicando al robot el movimiento tiene que realizar (“F”: avanzar, “B”: retroceder, “L”: girar a la izquierda y “R”: girar a la derecha).
El evento “TouchUp” representa cuando se deja de pulsar el botón (flecha de movimiento) y que hará que el robot se pare (“S”: parar).
Por tanto mientras mantengamos pulsado un botón (flecha de movimiento) el robot ejecutará el movimiento correspondiente y solo cuando dejemos de pulsarlo el robot se parará.
El siguiente bloque representa la función que envía la instrucción del control switch que permite cambiar de modo automático a modo manual:
Finalmente se han añadido dos bloques para el control de errores:
En el siguiente enlace tenéis el proyecto completo para que podáis replicarlo o modificarlo en vuestra cuenta de MIT App Inventor 2 así como el fichero apk para instalarlo en el móvil (recordar de activar en vuestro móvil que se puedan instalar aplicaciones con origen desconocido)
https://github.com/avilmaru/MiniRobot4x4RCBLE/tree/master/controlporApp/central
Programación robot
La programación del robot la tenéis disponible en el siguiente enlace y solo bastará cargarla en la placa Arduino MKR WiFi 1010:
https://github.com/avilmaru/MiniRobot4x4RCBLE/tree/master/controlporApp/peripheral