Skip to content
forked from DotBots/PyDotBot

A complete environment for controlling and tracking DotBots

License

Notifications You must be signed in to change notification settings

filmak/PyDotBot

 
 

Repository files navigation

CI PyPI version Documentation Coverage License

PyDotBot

This package contains a complete environment for controlling and visualizing DotBots.

The DotBots hardware design can be found here (PCB). The firmware running on the DotBots can be found here.

This package can also be used to control devices running the SailBot firmware application.

DotBots controller overview

Installation

Run pip install pydotbot

Setup

Flash the required firmwares on the DotBots and gateway board (use an nRF52833DK/nRF52840DK/nrf5340DK board as gateway), as explained in the DotBots firmware repository.

Usage

dotbot-controller --help
Usage: dotbot-controller [OPTIONS]

  DotBotController, universal SailBot and DotBot controller.

Options:
  -p, --port TEXT                 Virtual com port. Defaults to '/dev/ttyACM0'
  -b, --baudrate INTEGER          Serial baudrate. Defaults to 1000000
  -d, --dotbot-address TEXT       Address in hex of the DotBot to control.
                                  Defaults to FFFFFFFFFFFFFFFF
  -g, --gw-address TEXT           Gateway address in hex. Defaults to
                                  0000000000000000
  -s, --swarm-id TEXT             Swarm ID in hex. Defaults to 0000
  -w, --webbrowser                Open a web browser automatically
  -v, --verbose                   Run in verbose mode (all payloads received
                                  are printed in terminal)
  --log-level [debug|info|warning|error]
                                  Logging level. Defaults to info
  --log-output PATH               Filename where logs are redirected
  --handshake                     Perform a basic handshake with the gateway
                                  board on startup
  --use-mqtt                      Connect to the MQTT broker configured in the
                                  .env file
  --help                          Show this message and exit.

By default, the controller expects the serial port to be /dev/ttyACM0, as on Linux, use the --port option to specify another one if it's different. For example, on Windows, you'll need to check which COM port is connected to the gateway and add --port COM3 if it's COM3.

Using the --webbrowser option, a tab will automatically open at http://localhost:8000/dotbots. The page maintains a list of available DotBots, allows to set which one is active and controllable and provide a virtual joystick to control it or change the color of the on-board RGB LED.

Lighthouse positioning

The DotBots firmware comes with a cheap indoor positioning system based on Valve Lighthouse 2.

To get the positioning to work and the DotBots to be tracked in real-time the system must be first calibrated by clicking the "Start calibration" or "Update calibration" button below the grid map and then by following the instructions there.

Tests

To run the tests, install tox and use it:

tox

About

A complete environment for controlling and tracking DotBots

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 74.5%
  • JavaScript 22.9%
  • C 2.2%
  • Other 0.4%