The MJ12-SRRV was designed and built to satisfy a Design course for a final year project in college.
The robot is essentially a really fancy RC car with a wireless camera and a 3-axis arm on top.
The project was broken into 4 sections: the Base station, the Rover/Arm controller, the wireless
communication and the motor controller. All circuit boards were built and etched by hand. The project
lasted for around six months and Mountain Dew was heavily abused during the design.
The base station contains all the components needed to wirelessly control the rover. The wireless
camera receiver was housed inside the box. The LCD screen was a modified Game Cube portable screen.
The base station interfaced to a PSone controller that was used to control the rover. The character
LCD on the front panel displayed systems stats such as battery voltage and rover internal temperature.
The red and green LEDs on the right side were used to warn the operator if one of the motors had
current limited or if the arm current limited.
The base station was built from 1/8" plywood and was held together with aluminum angle and screws.
The top board in the stack is the base station controller board. The second board from the top is the
base station side of the communications interface. The silver box on the bottom is the 2.4GHz wireless
camera receiver. The lead weights were added to the front in an attempt to prevent the box from flipping
over if the screen was pushes to far back. The little board on the bottom was a serial LED driver
that controlled the LEDs that are on the front panel.
Basestation: Control Board
The base station controller card has the job of polling the playstation controller for movement and
sending that data to he rover. The base station controller is powered by a PIC16F877A. The PIC also
controls the LCD and the front panel LEDs.
Basestation: Wireless Communications Board
The wireless communications card did all of the data encoding and decoding for transmission using
the RF transmitter and receiver. The RF devices are from
Linx Technologies. They provide a stable data rate but
do not provide any encoding. The decoder for the data was a modified Veterbi decoder that was divided into
three Atmel Atmega8s. One did the encoding and two did the decoding. The communications happened at 4800
baud and was stable with up to a 20% error rate.
Rover Chassis Prototype
Before the chassis was created a prototype of the rover was created. The body was an old cd-rom
case that I had laying around. The arm was mocked up using some scrap Plexiglas from another
projects. Prototyping was dune to determine the approximate size of the vehicle and to determine
if the motors were suitable for this application.
The final chassis was created from ABS plastic that was laser cut by Pololu.
The chassis is held together with aluminum angle that had been drilled and tapped to hold 6-32 hardware.
The CD was placed in the picture to give a sense of scale for the robot.
The rover was propelled by four Hsian Heng 100:1 12V Gearmotors. These motors provided plenty of
power to climb over all sorts of things. The wheels are Proline Off-Road Tires. They are a bit
over kill but they make the rover look cool. The adapters to mound the Proline tires to the
motor shafts were purchased from Lynxmotion.
Rover: Motor Controller Board
The motor controller is built around two L293Ds and a PIC16F877A. The motor controller uses back-emf
to estimate the load that the motor is under and adjusts the torque to the motors accordingly. The motor
current is monitored to prevent damage if the rover crashes into something.
Rover: Controller and Wireless Communications Board
This board contains the servo controller, the rover processor and the rover side of the wireless
link. The servo controller(top left in picture) was coded into a PIC16F628. The servo controller
had a SPI interface and would control up to 5 servos independently. The rover processor was a Atmel
Atmega8. The rover processor monitored the battery voltages, received commands from the base station,
communicated with the motor controller and sent commands to the servo controller.
The arm was scratched designed from pictures of an arm that Lynxmotion sells. There are 2 servos
at the base, one in the shoulder, one to rotate the wrist and one to open/close the gripper. All
the parts of the arm were modeled and cut by Pololu from transparent blue acrylic. The arm has
pretty good dexterity an enjoyed moving cans around.
Before anything was committed to circuit card the entire system was constructed on bread boards.
There were a total of six breadboards used to make the system. Believe it or not the whole system
actually worked the first time it was all hooked up.
Basestation Data Sheet
6.5 in(W) x 7.75 in(L) x 6.5 in(H) Closed x 11.5 in(H) Open
1/8" plywood held together with aluminum and screws.
Unfortunately most of the schematics were drawn in an old version of Microsim Pspice and
I have been unable to reload the software to convert them to PDFs. If I ever get them
converted I will post them.
As for the code, it is scattered all over the place. If you have a question about a
specific piece of the project let me know and I might be able to find something.
This information is supplied in the hope it may be useful but without
any warranty; without even the implied warranty of merchantability or fitness
for a particular purpose.