Skip to content

Robotling for HUZZAH32 w/ board v1.3 and MicroPython 1.15

Latest
Compare
Choose a tag to compare
@teuler teuler released this 01 May 09:03
· 16 commits to master since this release
b403ba3
  • 2021-05-01 - Release v1.9
    • Small bug fixes, now compatible w/ MicroPython v1.14 and "vanilla" v1.15 (esp32-20210418-v1.15.bin).
    • Now uses RobotlingBase (from robotling_lib), so better separate standard hardware and additional hardware defined in devices (in hexbug_config.py).
    • As robotling_lib now includes simple.py and robust.py from micropython-lib as fall-back, MQTT can now be used with the standard MicroPython firmware, which does not inlcude umqtt.
    • 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).
    • 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 improvements 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)
    • Thermal camera support added (amg88xx.py and camera_thermal.py; new behaviour lookAtBlob 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 module blob (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.
    • 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.
    • 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 file hexbug_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 to MORE_DEVICES in hexbug_config.py to activate the network (instead of changing boot.py)
    • Robotling code moved from ../code to ../code/robotling