interactive control interface for robots and other electronics experiments
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
media
server-websocket
.gitignore
README.md
requirements.txt

README.md

RaspberryPi Robotcontrol

Interactive, low-latency javascript-based websocket-GUI for touch-devices with a python-flask backend that interfaces to robotic components. It provides virtual 2-axis joysticks (inspired by nipple.js but without the multitouch issues) and buttons that all work simulatenously. Due to the two-way websocket connection, status-messages from the robot can be displayed in the text-area.

Gif of GUI

This software provides

  • an interactive javascript low-latency websocket GUI served webpage
  • a python-flask server that runs on a raspberry pi (or really any linux-machine)
  • a two-way websocket connection for low latency control
  • some server-side robot-classes (servo-, stepper-, toggle-control) that are already mapped to control inputs

Important: The GUI can currently only be controlled using touch-events, that means it should be used with a touchscreen device.

Tested on RaspberryPi 3 B+ with raspbian and Samsung Galaxy S7, Android 8, mobile google chrome 67.

Requirements

  • python, numpy, flask

Howto run

  • install necessary python-packages using pip
pip install -r requirements.txt
  • run flask-server (server-websocket/main.py) -> this will provide the websocket API and serve the webpage on port 5000
./server-websocket/main.py

Module architecture

Module structure

Hardware test-setup

Hardware layout

TODO

  • unify control-interface to allow easier mapping of interface-axis/buttons to robot actions