Pozyx usage tests tailored for usage in office number 411 of the Facultad de Informática of Universidad Complutense de Madrid.
Initial configuration was made using Pozyx's cloud platform with auto calibrate function. For this we measured the Z position of all 4 anchors. The map was made using Floorplanner.
- Pozyx Hardware
- Arduino IDE or similar. I personally use SublimeText3 with Platformio alongside it. The platformio package for sublime is called Deviot.
- Pozyx arduino library
For these experiments the base boards used were two SAMD21 based Adafruit METRO M0 Express.
If you're using platformio install them into ~/.platformio/lib
- Adafruit NeoPixel library:
git clone [email protected]:adafruit/Adafruit_NeoPixel.git
- Adafruit_SPIFlash:
git clone [email protected]:adafruit/Adafruit_SPIFlash.git
- Pozyx-Arduino-library
git clone [email protected]:pozyxLabs/Pozyx-Arduino-library.git
Based on the tutorial 4 from Pozyx's website. Once the anchors have been positioned burn the .ino to a compatible board that has a Pozyx tag connected. Start the .pde with Processing to begin the tracking.
This sketches demonstrate how UWB communications work between two Pozyx tags. One acts as sender (communicationSender.ino) and broadcasts the message to all other devices. The other tag acts as a receiver (communicationReceiver.ino) and converts UWB messages to a serial output that can be read from a PC.
A typical output would be:
The aim of this experiment is to test the maximum distance at which two given tags can communicate through UltraWideBand.
The settings of the tags were as follows:
Channel: 5 | Gain: 33.00dB | Bitrate: 110kbits/s | Pulse repetition: 64MHz | Preamble length: 1024 symbols
It was observed that for the system to work correctly it's neccessary to give a good supply of current to the devices.
Real-life tests were conducted while maintaining line of sight. Its results can be seen in the enclosed .txt's.
The maxes obtained were:
maxDistance: 99149
remoteMaxDistance: 99140
A range of almost 100m was obtained. Both tags gave the same distance with mms of difference between them.
- If you have problems while detecting boards you need to add udev rules: https://learn.adafruit.com/adafruit-arduino-ide-setup/linux-setup#udev-rules
$ wget https://raw.githubusercontent.com/adafruit/Trinket_Arduino_Linux/master/99-adafruit-boards.rules
$ sudo cp 99-adafruit-boards.rules /etc/udev/rules.d/
http://docs.platformio.org/en/latest/faq.html#faq-udev-rules
$ curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/develop/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
Enjoy.