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.   The base_control node offers a friendly interface to main bot ROS control node.

The 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 DroidBot 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 setup and scan the sensors is used.

This is a custom sketch that initializes and monitors the 8  1-meter time of flight (TOF) sensors where each sensor is an ST Microcomputer VL53L0X little sensor seen as the black rectangle on each board in the picture.

8-boards are placed on a Mark-Toys custom 3D printed hub and the arduino is on the bottom.  This unit is mounted on the bot so that the cones of detection miss the posts on the corners of the clear platform.

Source code in ProxSensors on mjstn github 

The line sensor board has an Arm M0 processor that drives the IR detector units and takes analog readings of each detector.   The power here is nice analog values  get back to the host to decide on line detection smarter than with dumb threshold only devices for line detect.

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 onboard Arm M0 is an STM32F031 and has super tiny pads.  This processor has GPIO lines that have enough current capability to safely drive the IR leds so it' s a fine match for the ADC

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
Robotic Subsystems
A Motor Dual Channel I2C Motor Controller Or Servo Driver