Some basic hardware and software documentation
The Bluetooth Programmer
The running robot itself
The Hardware I used
- A medium density fiberboard from the do it yourself store
- Steppers - use (NEMA 14) now: Bipolar, 200 Steps/Rev, 35x36mm, 2.7V, 1000mA
- Wheels and mounting stuff from Trix metal kit
- Bluetooth adapter BTM222, minimal external parts required but little painful to wire the 1.25 mm smd grid
- Prototype extension board for Netduino, havent found mine anymore use something like Adafruit Proto-Screwshield
- Traxxas Akku 3000 Mah 8,4 V
- Adapter wire for Traxxas Plug, to plug accu
- A4983POW stepper driver, somehow expensive but easily to use. There is an new version A4988POW with integrated maximum current protection.
Sleep mode to save power added recently.
- A cheaper alternative is the EasyDriver, same principle as the one I used, only less max current.
- Liquid Crystal Display, able to connect parallel LCD (top) and I2C adapted LCD (bottom)
All Classes, which are accessing the Hardware are bundled in the package hardware.
Runs the Robot, there where different variations meanwhile.
DriveCommand, synchronous control for left and right stepper, usable for simple drives
DriveCommandDualAsync, asynchronous control for left and right stepper, able to be modified while running, complex driving possible.
Various DriveCommand(s) can be assembled to a Behaviour.
Assembly of Instructions what the Robot should do, not only driving.
Default Behaviour Interactive is startet, to enable remote control of the Robot.
Each Behaviour needs to extend BaseBehaviour : IExecutable,
BaseBehaviour might be kicked out in future. It is just there for backward compatibility.
Sets the stepper's sleep mode on / off
The Control Center is a command interface for interaction with the robot.
Up to now there is tabet control and single command control working.
Keyboard control by arrow keys, will follow.
Control Center replaces NetduinoConsole.
Every known Class on the robot is able to be executed by Cntrol Center, which fullfill the following constraint:
Default constructor or string type parameters only used in constructor
Commands are sent to the robot using bluetooth communication (example: DriveCommand;100;100;10)
Some other features:
SystemConfig, holds hard- and software configuration.
Able to be updated via Control Center, so robots behaviour is able to be modified without compilation and software transfer required.
CheckBattery, checks battery power measured by analog input port.
DisplayMessage, shows a two line message on a display (parallel or I2C adapter)
Sharp2d120x: ISensor, reads a triangulation distance sensor.
HC_SR04 : ISensor, reads a ultrasound distance sensor.
I2C adapter for LCD (required to use sleep mode, because I ran out of pins)
Sleep mode for steppers, to save power.
Filter algorythms available (e.g. to smoothen sensor data).
Added SystemStatus to retrieve Overall Status from Robot
Added DC Motor driving
Currently working on:
Further enhancements (you might join):
- improve dc Motor driving
- improve SystemStatus
Try different motor driver shield for the steppers
Stuff I dropped out to simplify the Robot