Inspired by the original "Megabitty" controller, this tiny 23mmx23mmx0.8mm controller board is a nice platform for just about any tiny robotics application. For a controller specifically for nano-sumo robots, or a tiny board that has fewer, but easier to work with I/O connections, see the NanoDuino-NS Nano Sumo Robot Controller.
The board features an Arduino-compatible 16MHz ATmega 328P microcontroller with the Arduino® bootloader, a 0.8A dual-channel H-bridge motor controller, as well as a number available I/O, and of course the D13 LED!
There are six powered I/O ports available using 0.050" spaced headers; four analog inputs and two connect to the AVR hardware interrupt lines INT0 & INT1. The AVR ISP header is a standard full-size 6-pin 0.1" header. There are two secondary Arduino PWM channels (OC1A/B) available on a 0.050" spaced 3-pin header, with ground.
If you would like to run 1S (3.7V) Li-Po power, the 5V regulator on the underside of the board can be easily removed, or left off during assembly. (please make a note of it with your order!) With the regulator removed, simply jumper the two lower-right regulator pin pads to run the board at battery voltage. If you'd prefer a regulated output for sensors, etc. another 1S Li-Po option is the amazing, but really expensive, Analog Devices ADP3338 ultra-low dropout 3.0V/3.3V regulator! We may try to stock a few of these in the future, but the retail price would be about $4.00 each!
There wasn't enough room for a USB connector or the USB-UART bridge IC, so you'll need a separate serial programming board such as our FTDIbridge or any other commonly available USB-serial converter. It can also be programed with by Arduino with a normal AVR programmer, like our USBasp programmer.
A 5-pin serial header is used for programming, but most importantly it also follows the pinout of commonly-available inexpensive ($15) Bluetooth transceiver breakout boards. All Cal-Eng boards feature this custom serial header pinout, making them all plug&play compatible with Bluetooth.
Bluetooth is an incredibly useful tool for wireless debugging and data tracking, and simply uses the Arduino serial monitor window. See our Bluetooth tutorial page for more info on these breakouts, and how they work.
As with most of our boards, we don't install or include headers or plugs, since the choice will vary greatly depending on the application and personal preferences. They are available (at a very low cost!) in the "Headers & Plugs" category.
Here's a simple Arduino sketch that runs both motors, at varying speeds and directions.
The NanoDuino NS has a spare I/O (D7) tied to the "enable" pin on the motor controller, allowing you to completely shut down the motor controller into a "standby" state, regardless what the motor PWM and direction control I/O are set to.
In the Nanoduino this I/O is tied to 5V enabling the controller at all times. Setting the IN1 and IN2 control lines to LOW has essentially the same effect, thus the "standby" mode set by having the enable lines LOW is really just a convenience factor.
For the code sample, see: NanoDuino_motor_test.pde
Here is a chart showing the Arduino pins and their corresponding connections to the motor control IC. The pins are also described in the example motor driver sketch above.