Created a new category under the project section called “Sentry”.
The sentry project will consist of creating a small semi autonomous wheeled robot and would be considered advanced if we take into account that programming, soldering and electronic knowledge is required.
The project will be divided in several phases:
- Phase 1 – Basics
- Creation of a viable chassis
- Installation of a digital compass
- Installation of a range finder sonar
- Installation of a DC motor controller
- Design and create a custom +9, +5 power supply
- Installation of the motors
- Program the Arduino Diceimilia with a basic firmware
- Program a PC Based control software
- Interface a WiiMote that will be used to manually control the bot
- This version will be connected to the host computer and power via an umbilical cable
- Phase 2 – Wireless
- Install an on board battery
- Install an RS232 to Wifi module on the Arduino
- Adapt an RS232 to Wifi module to connect to the control PC
- Phase 3 – Vision
- Install a wireless camera equipped with a pan / tilt module
- Addapt the Arduino to control the pan / tilt servos
- Adapt the control software to display the camera image
- Adapt the control software to control the camera’s pan / tilt according to the head’s movement of the person that manually control the bot
- Phase 4 – Recharge
- Creation of a recharge station equipped with an IR beacon
- Add an IR Sensor on the bot which will be used to detect his recharge station during the mapping run
- Adapt the control software to take into account the recharge station into the auto map
- Add a digital voltage meter on the Arduino which will be used to know when a recharge is needed
- Phase 5 – Recognition
- Perform basic image recognition in automatic mode with the camera
- The robot will be able to create a 3d environment using the onboard camera
- Modify the control software to display the 3d environment using Direct X
Several Parts will be used:
- Lego NXT will be used for the prototypes of the robot, it will be easy to adapt the chassis to the upcoming challenges.
- Arduino Diecimilia is an ATmega168 based micro controller and will be used as the robot’s on board cpu, it will gather telemetry and relay it to the host computer via usb or Wifi at phase 2. This micro controller is easily programmable via an on board usb port right out the box. (No additional component needed, no external power supply… just plug it into the usb port.)
- C# will be used to develop the control software running on a pc, the bot will gather sensor and motor information and then relay this to that PC which will have the main AI. The control software will have an automatic and a manual mode. The automatic mode will be used to map the surroundings of the robot using the sonar. At phase 4 the bot will also find the Recharge Station’s IR Beacon during his mapping phase. When a recharge is needed, using a shortest path algorithm (most likely Dijkstra’s) running on the PC (wich has virtually an unlimited amount of disk space, cpu power, ram), the bot will be able to go recharge itself.
- NXT Motors will be used as the main propulsion, they are easy to attach to the NXT Blocks and they already have optical encoders attached to the motor’s main shaft, the robot will be able to know how far he traveled.
- Devantech Ultrasonic Range Finder SRF05 will be used as an inexpensive fixed sonar on the bot, it might eventually be installed on the same pan / tilt as the camera.
- Spark Fun Miniature Wireless Camera 200mW will be the on board camera, the receiver will need to be connected to the host computer running the C# program via a capture card. Some of them are available for less than 100$ at tigerdirect.ca.
- Devantech Magnetic Compass Module CMPS03 will be used to get the robot’s bearing.
- Pololu TReX 13A 6-16V Dual Motor Controller is a dual pulse modulating H bridge for dc motors, it listens to serial commands (rs232 or TTL) and send the proper pulse to the motors. We will have to use a software serial method to send commands to this module since the Arduino’s integrated serial libraries only works for its on board USB and Serial Port (which are used by the host computer). We will then have to send a serial data stream using one of the IO pins. Arduino have a library called “SoftwareSerial” but according to my preliminary tests there is a problem with the timing of the 9600 baud settings, I had to adjust the timing accordingly. Please note that the default baud rate of this module is 19200 however the Arduino cannot transmit at that speed so the TReX will need to be connected to a computer to change its speed settings. This will be described further down.
- Pololu Micro Serial 8 Servo Controller will control the 2 servo needed for the camera pan / tilt module, we will transmit data to this controller via the TTL interface and with the same code used for the TReX.
- Lynxmotion Pan and Tilt Kit/Aluminium will be used as the camera’s pan / tilt component.
- Active Robots ‘Easy Radio’ 900 MHz Transceiver Module have good speed and range and is the ideal component to establish the link between the host computer and the on board Arduino.
- A battery will eventually be needed in phase 2, I chose a 12v 1.2ah sealed battery at a local store.
- Some other electronic parts will be necessary to build the power supply and various connectors, those will be described further down.
This document is still on draft stage, progress, code, schematics and tons of information will be available soon:)
Project’s Gallery:
Cheers,
Marc

