Inspired by the original "Megabitty" controller, this tiny 23mmx23mmx0.8mm board is focused on nano-sumo applications. Used as a non-sumo board, it does have two easy to use standard "servo-style" I/O headers and two JST mini plug positions. (For a more general purpose micro board, with more (smaller!) I/O and a full-sized ISP port, see the NanoDuino robot controller.
The board features an Arduino-standard 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!
The board is specifically designed to use the tiny Sharp 10cm range IR object sensors on a breakout board like ours, or the Pololu version. The mounting hole area of the Pololu sensor carrier can be cut off flush with the bottom of the sensor, making the overall height about 20mm. Lots of room for motors & chassis, etc! The IR sensor pinout also matches the standard 0.1" hobby-servo pinout of: GND-Vcc-Signal.
There are two powered A/D ports available using board footprints compatible with JST ZH micro connectors, as well as the two secondary Arduino PWM channels (OC1A-B) on a 0.050" spaced 3-pin board header. The forward object sensor input pins are connected to the AVR hardware interrupt lines INT0 & INT1, making object sensor "hit" tracking very easy and efficient. The AVR ISP header is a 6-pin 0.050" header using the same pinout as the Sparkfun AVR programming adapter.
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.
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 "Wires, 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" pins 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.