Once the Chassis for my Experimental Robotic Platform was complete, I got to work on the electronics and control sections of the robot. Here are some details about the electronics of my ERP:-
1. Power Supply.
Power for the 4 high torque DC motors comes from a single 1.3Ah 12 V battery. The second battery (the taller one) is a 4.5 Ah 6V battery that will power the micro-controller unit (an Arduino Mega) and the six servos that control the robotic arm. Once basic testing operations are completed, I will add two more servos for a pan-tilt sensor mechanism (wireless camera/ sonar ranger/ IR sensor etc) that will also draw power from this 6V battery.
Since both 12V and 6V circuits are interconnected through the micro-controller, GND terminal of both 12V and 6V batteries must be on the same line. This provides a common voltage reference for the entire apparatus to work safely. I used a re-cycled 3 switch panel to control the flow of electricity on the positive line. From left to right these are…
a) 12 V DC power to motor circuits
b) 6 V DC power to MCU
c) 6 V DC to robotic arm servo motor controller
During testing and de-bugging, this arrangement allowed me to de-energise selected components and avoid nasty accidents like flailing robotic arms or out-of-control wheels driving the ERP off my work table.
2. Micro Controller and Motor Driver
I used an Arduino Mega micro-controller unit as the “brain” for this ERP. I chose the Arduino Mega because it has enough input/ output/ PWM pins to accomplish everything I need to in this robot. Also, the Arduino programming environment is super easy to use, and it allows me to have projects up and running very quickly and easily.
To drive the 4 high torque DC motors, I used an L298N H-bridge motor driver board. The L298N chip allows me to use higher power (upto 2A each) motors than the L293D. Since I am using four 60 RPM 8.3 Kg-cm metal gear torque motors, my ERP has more than enough power to move its 4kg frame up a 30 deg slope. It may be slow, but its very very strong.
I have used my very own c++ class for the Arduino environment to control the motor driver chip from the Arduino Mega. This class (called bomotorpair) allows me to easily control a pair of DC motors through an L298 H-bridge. You can download this class here. I have also done a simple tutorial on how to use an L298N H-bridge.
3. Robotic Arm
I want my ERP to “do” things like pick up objects and clear away small obstacles, and so I have mounted a 6 DOF robotic arm to the front of the chassis. I hope to be able not just to control this arm, but to do so using inverse kinematic calculations. This will give my ERP much more flexibility and allow it to do things such as pick up a cup of water and move it around without spilling its contents.
4. Servo Controller
This is a simple servo controller that I designed and etched from a copper clad PCB board. It distributes 6v DC power over a total of 10 output points. I can then use PWM output from the Arduino Mega MCU to control these servo motors.
5. Radio Communication.
I used these 2.4Ghx Tx/Rx units to establish rudimentary wireless communications to my ERP. They are controlled via serial communication protocols and support a maximum baud rate of 56 kbaud. In the future I hope to upgrade to the NRF24L01 communication chips that can support 1 Mpbs data speeds, and ranges of upto a kilometre.
During initial trials, I will first attempt to control the DC Motors of my ERP from a joystick. Once this is done, I hope to move onto more complex data transfer such as :-
a) Two way radio communication between a PC and the ERP. The ERP will obey motor commands, servo motor commands and pan-tilt the sensor platform based on commands from a PC connected to a wireless transceiver. The ERP should also be able to report telemetry data to the PC (such as its position over ground by dead reckoning or by a GPS unit).
b) Transfer of sensory data such as video frames, sonar ranges etc over the RF link. This data will be used onboard the host PC as input to algorithms such a Particle Filters, Object Tracking, 3D Mapping or Neural Networks for autonomous decision making.
At first I had planned to undertake radio communication trials using a joystick to control the ERP. Half way through the programming, I figured using hand gestures instead of a joystick would up the WOW factor considerably. So I decided to use roll/pitch data from an ADXL345 accelerometer chip (fixed to my wrist), encode these values into motor commands, and drive the ERP using movements of my wrist.
The flowchart for this sort of radio control looks like this…..
ERP1 is now operational…while this video archives the build and testing phases……