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

A Motor Dual Channel I2C Motor Controller Or Servo Driver
(Motor control to be phased out but is nice as servo control signals still)

The motor driver board is external and a nice small one is the AdaFruit TB6612 model but the control on other higher power units are users choice.

This Mark-Toys custom pc board is attached as an I2C slave for common robot functions.

- Wheel encodes with blink led for changes
- Control of several PWM  Servo Units
- Support for PWM with motor control signals
- 6  general GPIO lines can be monitored
  (The PWM vs IO lines are traded off shared lines)

It is implemented with two separate dsPic30F2010 microcontrollers and this board will run nicely on 3.3V or 5V.     Each channel or processor is accessed with an I2C address difference of 1 off of a selection of 3 base I2C choices.

If one side is for servos and one side is for motors you then end up with 2 motors, 3 servos and 2 high res QEI encoders for wheels at the same time.
Smart Line Sensing System
In late 2017 a 7-sensor line detection board was designed for use in line following bots.

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
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.
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 

Robotic Subsystems