hardware notes - ab3nd/TinyRobo GitHub Wiki

The hardware

There are a lot of designs in the academic literature for small swarm robots. Generally speaking, smaller robots are better because the researchers can maintain a high ratio of space to robots in a smaller area. A high ratio of space to robots is good because it gives the robots more freedom of motion.

Small swarm robots typically have three major electronic components:

  1. One or more microprocessors
  2. Relatively high-current drive electronics for the motors.
  3. A communication system, to let swarm robots communicate either with each other or with a coordinating computer.
  4. (I said three, didn't I?) Power control electronics, including batteries. No one ever mentions this in papers, though.

Hardware that provides at least two of these functions is commercially available. Moteino provides wireless communication and a microcontroller, but doesn't have high-current drivers or power control except with a daugtherboard. Unfortunately, the antennas required for radio frequencies in the hundreds of Mhz are larger than the rest of the hardware. Baby Orangutan provides a microcontroller and two 1A H-bridge motor drivers, but no wireless communication.

TinyRobo is intended to provide a single board that combines WiFi and a microcontroller, in the form of the ESP-8266-03, with a battery charger, voltage regulator, and dual H-bridge motor drivers.

In order to build small robots, many researchers develop their own chassis and drivetrains for the robots. This makes replication difficult, because the robots are rarely made commercially available. However, children's toys are commercially very available. Instead of using custom-made drivetrains, TinyRobo is intended to be a drop-in replacement for the controllers of children's toys. Combined with the right toy, the TinyRobo board will serve as a complete small robot that uses up to two motors for locomotion. This includes Ackerman-steering toy cars, differential-drive tanks, and holonomic-drive toy insect robots.

Mobility platform current draw

Free run current was measured with the toy held so its moving parts didn't touch anything. This means that the free running current includes the current required to move the moving parts of the toy, but not to move the toy around. Stall current was measured by holding the toy's moving parts still. In the Hexbug, this causes some gear chatter, so the actual current draw when the motor is completely immobilized may be higher.

Toy Free current Stall current
Hexbug brand mini spider 0.03A 0.13A
Hexbug brand 6-legged insect 0.06A 0.25A
Miniature toy RC car 0.21A 0.8A
Miniature toy RC insect 0.19A 1.13A
Miniature toy RC vehicle 0.37A 0.8A
Miniature toy RC vehicle 0.06A 0.74A
Toy helicopter 0.07A 1.12A
Toy quadcopter 0.74A 1.99A

The hexbug fire ant uses mx116 motor drivers from mixic, which have a 550mA max output and overheat, but not overcurrent, protection. This implies that the fire ant motors (small, coreless DC motors) have a maximum current draw of 500mA or so. This is consistent with the observed current above.

esp-8266-03 pinout

Basic hardware bringup for the wifi module
  1. Put it on a breadboard with a 1000uF cap across the power and BEEFY 3.3v power supply. I'm using a benchtop supply.
  2. 1k resistors, pull up pin CH_PD, pull down GPIO15 & GPIO0
  3. Start the Arduino IDE, plug in a 3v3 FTDI cable
  4. Start the Arduino Serial monitor at 9600 baud
  5. See a lot of garbage, then [Vendor:www.ai-thinker.com Version:0.9.2.4] ready
  6. Good to reflash, using the "program" button in the arduino IDE
  7. If you want the program to run afterwards, you need to keep the pull up on CH_PD and the pull-down on GPIO15.

I've received and tested the third version of the control PCBs. You can buy them from Dangerous Things for like $1.50 each, but you'll have to provide all your own parts.