Mark-World - Tech Projects To Amuse The Curious
This page gathers together robotic related subsystems that seem good choices for reuse and sharing. All of these came from assorted robots I have made and will likely be used again later in future robots here on Mark-World and Beyond!
RoboClaw With Modified Serial Driver
An RoboClaw 7-amp dual motor controller with wheel encoder support is a key element to movement of the bot.
Software done by Mark-World includes modifications of a USB based driver to support the RoboClaw packet based serial mode (one-byte checksum protocol).
The mark-world base_control ROS node is then using the serial packet driver in stead of USB which can be a source of grief for many robot developers.
RoboClaw is used on FiddlerBot and Robo Madge-Ellen
Operates a an I2C slave for common robot functions. Considered mostly obsolite except for use as a multi-channel PWM servo controller.
Motor control now done with Esp32 controller
- Control of several PWM simple Servos
- PWM for motors with the control signals
- 6 general GPIO lines can be monitored
- Wheel encodes with blink led for changes
Two separate dsPic30F2010 microcontrollers run on 3.3V or 5V.
This Esp32 based motor controller subsystem is made up of our
Esp32 Dev board
that then controls an off the shelf H-Bridge style motor controller. You can then pick your level of power the motors. We demonstrate this motor control system on our
which uses the ArduMoto H-Bridge controller but most any PWM motor driver is fine.
The new motor controller Esp32 software accepts serial packet inputs with checksums to set speeds, read wheel encoders or set config parameters for the onboard PID control loop for the motors.
This controller can be operated as a Bluetooth LE GATT server using our EspBot Android App for manual human control or as BLE operated subsystem for wireless interface.
Proximity Sensor Module
An 8-sensor proximity subsystem that uses an Arduino Nano to scan the sensors is used.
This sketch initializes and monitors the 8 1-meter time of flight (TOF) sensors where each sensor is an ST Microcomputer VL53L0X little sensor used for each sensor.
The 8 sensors are attached to the 3D printed hub and the arduino is on the bottom.
Source code in ProxSensors on
Motor Controller with Serial and BLE
TFT Color Display Driver
A 1.8" color display that uses the ST7735 controller is handy for small bots. The display is driven using 4 GPIO lines for SPI bit-bang.
A low level driver has been modified to work well in C on Gcc Esp-32 dev environment.
A set of higher level graphics calls to draw graphs and checkboxes were also formed.
This is running now on a 3.3v based system called EspressoBot here on Mark-World so check it out.
My goal is to have code posted in Nov2017.
Look for 1.8" TFT display ST7735R breakout board on AdaFruit or look for ST7735 units on Ebay.
7 Channel Line sensing Serial Subsystem
A Motor Dual Channel I2C Motor Controller Or Servo Driver
This board features 24 solar sensors that with the pole used allow for about 7 degree accuracy determination of the position of the sun. An Arm M0 processor scans the IR detector units and takes analog readings of each detector. This unit offloads a main robot processor.
A host talks to this board using a serial port protocol that allows different formats and adjustment of detect parameters all from the host side as needed.
The Arm M0 is an STM32F070 with built in ADC. The M0 also has an LSM6DS3 Accel/Gyro. The Accel is important to know the tilt of the compass but is also of value for many robots. There is also a LIS3MDL magnometer monitored by the M0.
The line sensor board uses an Arm M0 processor that drives the IR detector units and takes analog readings of each detector. A main use would be for a line sensor under a robot.
A host talks to this board using a serial port protocol that allows different formats and adjustment of detect parameters all from the host.
The onboard Arm M0 is an STM32F031 with GPIO lines that have enough current capability to safely drive the IR leds so it' s a fine match for the ADC
Solar Compass & Accel/Gyro Subsystem