"robotling" is a simple circuit board to control small robots. Check out the videos (videos 1, 2, 3, and with thermal camera, 4, 5) and find the details in the German wiki.
-
2021-09-22
- New firmware based on MicroPython v1.17 (w/
ulab
)
- New firmware based on MicroPython v1.17 (w/
-
2021-05-02
- Some refactoring: Configuration parameters now clearly marked as such (
cfg.xxx
)
- Some refactoring: Configuration parameters now clearly marked as such (
-
2021-05-01 - Release v1.9
-
2021-04-26
- Instructions for building MicroPython (release 1.14) w/
ulab
andumqtt
updated. - New pre-built ESP32 firmware based on MicroPython v1.14 (w/
ulab
andumqtt
) - Small bug fixes, now compatible w/ MicroPython v1.14 and "vanilla" v1.15 (esp32-20210420-unstable-v1.15.bin).
- Now uses
RobotlingBase
(fromrobotling_lib
), so better separate standard hardware and additional hardware defined indevices
(in hexbug_config.py). - As
robotling_lib
now includessimple.py
androbust.py
from micropython-lib as fall-back, MQTT can now be used with the standard MicroPython firmware, which does not inlcudeumqtt
. - Added instructions how to build the ESP32 firmware for MicroPython 1.15 with
ulab
included.
- Instructions for building MicroPython (release 1.14) w/
-
2021-04-05
- Link to new Make: article added.
-
2020-08-30 (Blob detection revisited)
- Three versions of the blob detection and image filter code, demonstrating differences in speed between a pure MicroPython version and those that use
ulab
or even user-written C functions added toulab
.
- Three versions of the blob detection and image filter code, demonstrating differences in speed between a pure MicroPython version and those that use
-
2020-08-21 (Refactoring)
- Since it was difficult to maintain different versions of the robotling code all accessing the same set of driver etc. libraries, these files have now been moved to a separate repository (
robotling_lib
). - Wiki updated accordingly.
- New Wiki page on adding native modules to MicroPython.
- Since it was difficult to maintain different versions of the robotling code all accessing the same set of driver etc. libraries, these files have now been moved to a separate repository (
-
2020-07-04 (Code updates)
- Simple GUI to show robot status via MQTT (
hexbug.gui.py
) - Support for TinyPICO added
- Configurations for different hardware combinations
- General class to manage and control a set of servos (
servo_manager.py
) and inprovements in Servo class - Class for PCA9685 16-channel servo driver (
servos_pca9685.py
) - Class for 18-channel Mini Maestro servo driver (
servos_mini_maestro_18.py
)
- Simple GUI to show robot status via MQTT (
-
2019-12-30 (requires MicroPython 1.12.x)
- Thermal camera support added (
amg88xx.py
andcamera_thermal.py
; new behaviourlookAtBlob
using the thermal camera (see videos 4, 5). Note that the blob detection (not the camera itself) requires a custom MicroPython firmware that includes the moduleblob
(coded in C for speed reasons). - Configuration file split into fixed (
hexbug_global.py
) and robot-dependent definitions - Code adapted to MicroPython release 1.12.x, including hardware I2C bus option added and native code generation added for time critical routines (ESP32 only)
- PWM frequencies for servos and DC motors are now defined in
robotling_board.py
to account for the fact that the ESP32 port supports only a single frequency for all standard PWM pins. In addition,drv8835.py
now uses the RMT feature of the ESP32 for PWM to run the DC motors. This allows using a different frequency than the normal PWM functions.
- Thermal camera support added (
-
2019-11-15
- New articel in the German Make: magazine ("Krabbelroboter sendet Telemetrie").
-
2019-08-31
- New type of Sharp sensor added (GP2Y0AF15X, 1.5-15 cm) to
sensors\sharp_ir_ranging.py
. This allows using a triple IR distance sensor array such that the robot's head does not need to scan sideways. - I2C frequency increased to 400 kHz in
robotling_board.py
. The I2C frequency used is now also printed when the robot boots. - Robotling v1.3 board in
robotling_board_version.py
. - In case of an uncaught Python exception, the firmware tries to send a last MQTT message containing the traceback, allowing to get information on code errors even when the robot is not attached via USB.
- Wiki page Telemetrie über MQTT
- New type of Sharp sensor added (GP2Y0AF15X, 1.5-15 cm) to
-
2019-07-25
- Now an option was added to send telemetry via WLAN using the MQTT protocol (ESP32 only). An example script (
test_mqtt.py
) that demonstrates how to subcribe to robotling telemetry on a PC was added to../code
. hexbug.py
- Bias factor (IR_SCAN_BIAS_F
) added to the configuration filehexbug_config.py
; it allows correcting for a direction bias in the turning motor. Also, the scan scheme was slightly changed from "left-right-center" to "left-center-right-center", which helps the robot to walk more straight.telemetry.py
- Encapsules the MQTT functionality.main.py
- Simple "memory" was added to remember the direction of successful turns (experimental).robotling.py
- Now the keyword "wlan" can be added as a device toMORE_DEVICES
inhexbug_config.py
to activate the network (instead of changingboot.py
)
- Now an option was added to send telemetry via WLAN using the MQTT protocol (ESP32 only). An example script (
-
2019-07-22
- Robotling code moved from
../code
to../code/robotling
- Robotling code moved from
-
2019-07-16 - Release v1.7
- New wiki pages 'Sensors etc.' with supported sensors and 'Verhalten' with behaviours added
- Wiki pages 'Demo' and 'Erweiterungen und Modifikationen' updated
- Code Release v1.7
-
2019-05-18 - Release v1.6
- Added new "behaviour" (take a nap) based on deepsleep/lightsleep support for ESP32
- Cleaned up the code
- Changed
hexbug_config.py
to make it also standard Python compatible (for future extension) - Now uses
getHeading3D
instead ofgetPitchRoll
to determine if the robot is tilted; the additional compass information (heading) is saved (for future extension). - Driver for LSM9DS0 magnetometer/accelerometer/gyroscope added.
-
2019-03-17 - Release v1.5
- Some code improvements (handing devices, cleaning up)
- Tested w/ MicroPython v1.10
- New pictures
- A new wiki page with extentions and modifications
-
2019-03-02
- New pictures, annotated pictures of board v1.2
- some new text on memory and performance
-
2019-01-12
- A few bug fixes
- More drivers (dotstar, VL6180X).
- Works now also with the M4 Express Feather from Adafruit (and CircuitPython).
-
2018-12-28 - Release v1.3
Eliminated the need for a timer. Addedspin_ms()
, which needs to be called once per loop and instead ofsleep_ms()
to keep board updated. This solution is superior to the use of a timer, because (i) it is deterministic (avoids randomly interrupting the program flow and, hence, inconsistencies) and (ii) makes the code compatible to CircuitPython, which does not (yet?) support timers. -
2018-12-24 - Release v1.2
Now board v1.2 included, some code refactoring and improvements -
2018-11-29 - Release v1.1
First complete version for board v1.0 and huzzah32 -
2018-11-18 - Initial release
- Tilt correction and calibration for LSM303 and LSM9DS0 compass function is not yet implemented.