Recientemente hemos descubierto unos dispositivos que pueden venir bien para proyectos de robótica. Están basados en tecnología UWB (Ultra Wide Band) que significa que emiten ondas de ancho de banda muy ancho, de muchos MHz y con estas ondas se puede calcular distancias de un punto a otro con cierta precisión en tiempo real.
Los dispositivos en cuestión están fabricados por Decawave y son transceptores pequeños, como éste:
Este módulo funciona como un modem, y es necesario conectarlo a un procesador. Makerfabs ha diseñado una tarjeta conjunta basada en el microcontrolador ESP32, al que le ha añadido un módulo del tipo anterior.
A continuación explico el proceso para poner en marcha estas placas y empezar a usarlas.
El enlace, de tipo Instructable, donde se explica todo el proceso de forma práctica es:
https://www.instructables.com/ESP32-UWB-Indoor-Positioning-Test/
Y la carpeta de github donde está toda la documentación y el código del ejemplo es:
https://github.com/Makerfabs/Makerfabs-ESP32-UWB
Para programar estas tarjetas lo más cómodo es usar el IDE Arduino, así que se debe instalar la librería DW1000. Para ello se accede al menú Programa -> Incluir Librería -> Administrar bibliotecas, y en el selector, buscar la librería DW1000 e instalarla:
Pero esta librería tiene un problema, ya que está diseñada para Arduino y no para otras tarjetas. Para usar la tarjeta de Makerfabs hay que seleccionar en el menú Herramientas -> Placa el modelo ESP32 Dev Module.
Si no se dispone del modelo ESP32 hay que instalarlo desde el gestor de placas. Hay información en varias páginas de Internet para hacerlo.
El problema es que ahora la librería no se compila adecuadamente. Se puede ver en el siguiente error con un ejemplo de los que vienen en la librería.
Para resolver este error hay que seguir unos pasos que indican en el enlace del github. Hay que editar el fichero DW1000.cpp que está en la carpeta donde se ha instalado la librería. En este ordenador con Windows está en la carpeta Documentos/Arduino/libraries/DW1000/src:
El cambio consiste solamente en comentar unas líneas del código:
Tras la modificación, se guarda el fichero y se puede compilar el ejemplo sin problemas.
Sin embargo, los ejemplos que vienen con la librería no funcionan adecuadamente con la tarjeta de Makerfabs, seguramente porque están preparados para Arduino. Se usa en su lugar el ejemplo que viene en la carpeta de github.
Finalmente con los dos ordenadores y ambas tarjetas enlazadas se consigue que calculen la distancia entre ambas, y que al moverlas, esta distancia se actualice.
En el siguiente vídeo se puede comprobar el modelo básico funcionando con dos tarjetas DW1000.
Deja una respuesta