This robot has to go as fast as possible, must be able to take sharp turns as low as 90 degrees and it has also to be able to read marks on the side of the main line.
I have started this project a couple of months ago and I have not done as much as I wanted due to work related task taking the most of my time.
For the hardware I am going to use:
- A small board based on Atmega 328p(may change it to Atmega32u4 if i need more analog pins)
- The motors I bought are 30:1 Micro Metal Gearmotor HP from pololu.
- The motor driver is a L298D.
- The sensors are QTR-8A Reflectance Sensor Array from pololu.
- The wheels are also from pololu Pololu Wheel 32x7mm Pair - White
- And finally a Pololu Ball Caster with 3/8" Metal Ball
In the software side I am going to do the programming using C on Atmel Studio v6.
The sensors are going to get analog values from which a "position" will be determinated. The aimed position is going to be the middle point.
In order to drive the motors in a efficient way I am going to use PD control (Proportional and Derivative).
Right now I am working in a telemetry system that allows me to find the best PD performance.
For this I am going to use a small Bluetooth module from DX JY-MCU Arduino Bluetooth Wireless Serial Port Module
and on the PC I hope to make an interface using python that will connect to the COM port and get the values send by the board and display them in a nice graph using smoothiecharts
UPDATE: Telemetry done:
Once the above goals are complete I'll jump to another more specific topics for the line follower such reading marks, taking sharp turns, etc.
So far I am still researching on the best way of programming the robot so I may get one of this this three styles:
- Reactive Style or reading sensors and actuating
- Behaviour control based on fancy state machines.
- Real time programming using a small OS or a basic scheduler.