Some basic hardware and software documentation

The Bluetooth Programmer

The running robot itself

NetduinoNewWheelsSmall.jpg

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.
a4988.jpg
Sleep mode to save power added recently.
  • A cheaper alternative is the EasyDriver, same principle as the one I used, only less max current.
easydriver.jpg
  • Liquid Crystal Display, able to connect parallel LCD (top) and I2C adapted LCD (bottom)
LcdVariationsSmall.JPG

The Software

All Classes, which are accessing the Hardware are bundled in the package hardware.
DriveCommand:
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.
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.
StepperSleep:
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).

Latest update:
Added SystemStatus to retrieve Overall Status from Robot
Added DC Motor driving

Currently working on:
  • improve dc Motor driving
  • improve SystemStatus

Next Items:
  • Find and follow wall


Further enhancements (you might join):
Try different motor driver shield for the steppers
Improve console

Stuff I dropped out to simplify the Robot

DroppedStuff

Last edited Jul 16, 2015 at 8:27 PM by salvadorrichter, version 44

Comments

No comments yet.