Introduction: How-to Build MACKRA a Serb Variant.

About: hi i enjoy making ludicrisly over the top and complex devices.... Being an ameture engineer, I refuse pick the easy option, but rather the one that seems best, which inevitably devolves into a weekend of hacki…

Project MACKRA was started after I saw the many problems with pre-built robotic platforms e.g. size, programability, mobility, need for batteries,PRICE, and most being dedicated to a single microcontroller.
the goals of the MACKRA project were to do the following:
1.create a cheap, and easy to manufacture chassis
2.draw all power from only a 5 volt source
3.no motor controllers would be required
4.only a small number of parts would have to actually be made
5.portable
6.easy to trouble shoot
7.all components would have to be able to be locally scourced e.g. radio shack, lowes, and local rc hobbie shops.
8.reliable
9.have the online community be able to readily accept it like the serb and arduino



the possible applications:
1. learning concepts of real time programming
2. learning about automation
3. used in a classroom setting as a alternative to LEGO robotics platform
4. learning about opencv and xna to provide stimuli to a system
5. learning about locomotion and coordination of simple movements to preform complex manuevers
6. demonstrate to students that this level of work can actually be accomplished without being a genius
7. developing navigation algorithms
8. demonstrating to students how many little systems can work together to achieve a task simply rather than one complex sluggish �system
9. open creative possibilitys to students, as the platform can be made for around 80 bucks, and has plenty of room to grow.

Step 1: Manufacturing: the Base Plate.

due to size differences in computers, the demands of the user, and materials available each MACKRA robot is different in size, but the same in functionality,

for mine i used a 1/8th thick peice of plexiglass cut to 150% scale to the perimeter of my netbook
then i took a servo and on each corner traced its outline and  used a square nut to mark were each bolt would have to have its hole drilled so the nut would rest securely against the side of the servo, effectively sandwiching each servo in place


then i drilled 4 holes, one on each corner to run the bolts that will hold the top plate on 

Step 2: Manufacturing: Top Plate.

this part is fairly simple, all you do is cut a peice of plexiglass to the same size as the base plate, and if you'de like you can cut a hole out in the center to make it easy to get to the electronics
also you should drill the four holes for the bolts to go through on each corner in the same place as you did on the base plate 
finnally drill a hole for where you would like the usb plug to come out

Step 3: Manufacturing: the Electronics

mount the arduino next to the breadboard on the base plate 

Step 4: Manufacturing: the Electronics Part 2

now you must modify all your servos for unlimited rotation, scince their are already guides out their to show how to do this, im not going to go over the process.
after you have done that , you must now iether buy some wheels off the internet or make them yourself by using a large hole saw to cut the wheel out of some of the scraps of the 1/8in plexiglass,and use some plastic tubing slit down one side as a tire for the wheel, then you must take a servo horn and super glue it into the dead center of the wheel, i highly recommend that you just buy the servo wheels off of the internet.

Step 5: Manufacturing: Final Assembly

final assembly is fairly easy, all you have to do now is set each servo into its correct mount point and wire them to the arduino, you can A. make a adapter that makes it easy to deal with or B. use the bread board . finally run your usb cable for the arduino through the hole in the top plate and plug it into your arduino. now run the four bolts through each corner and tighten them just enough to ensure enough pressure is placed on each servo so they will stay locked in.

Step 6: What It "should" Look Like

so their you have it a super cheep platform that is very manuverable and can carry a laptop on it as well

Step 7: The Software: Arduino

the software consists of two parts : the arduino side, and the computer side. the arduino side is fairly simple, the code for it is as follows:

#include ;
Servo lefttop;
Servo leftbottom;
Servo righttop;
Servo rightbottom;
int incomingByte;
void setup()
{
lefttop.attach(8);
leftbottom.attach(9);
righttop.attach(10);
rightbottom.attach(11);
lefttop.write(90);
leftbottom.write(90);
righttop.write(90);
rightbottom.write(90);
Serial.begin(9600);

}
void loop() // this is were the actual program is finally ran in an infinite loop;
{
if (Serial.available() > 0) { //check for connection
incomingByte = Serial.read(); // if their is data available read it to the incomingByte variable

if(incomingByte=='f')
{
lefttop.write(0);
leftbottom.write(0);
righttop.write(180);
rightbottom.write(180);
}
if(incomingByte=='r')
{
lefttop.write(180);
leftbottom.write(180);
righttop.write(0);
rightbottom.write(0);
}
if(incomingByte=='R')
{
lefttop.write(180);
leftbottom.write(180);
righttop.write(180);
rightbottom.write(180);

}
if(incomingByte=='o')
{
lefttop.write(180);
leftbottom.write(180);
righttop.write(180);
rightbottom.write(180);
delay(250);
lefttop.write(90);
leftbottom.write(90);
righttop.write(90);
rightbottom.write(90);
}
if(incomingByte=='L')
{
lefttop.write(0);
leftbottom.write(0);
righttop.write(0);
rightbottom.write(0);
}
if(incomingByte=='u')
{
lefttop.write(0);
leftbottom.write(0);
righttop.write(0);
rightbottom.write(0);
delay(250);
lefttop.write(90);
leftbottom.write(90);
righttop.write(90);
rightbottom.write(90);
}
if(incomingByte=='s')
{
lefttop.write(90);
leftbottom.write(90);
righttop.write(90);
rightbottom.write(90);
}

}}





Step 8: The Software: Computer

the computers software is written in C# visual studio 2008
additionally you will have to download the following:
Opencv
emgucv
XNA framework
.net 3.5 framework

i honestly have no clue if the code will work on other systems though because of the locations of refrences and if it will still load the Haar cascades from theroot directory...

this is what happens when you try to teach yourself to program in c# without any formal schooling or training, or even a book. so im making the best effort i can to ensure that others will be able to use the code. so i copyed the entire directory i "THINK" it is all under so hope it works for others...

Step 9: See It in Action!

well , here it is in all its omnipitent and awsome glory.

oh, one REALLY important thing i forgot to mention, if you plug in an xbox 360 controller while the program is running on the computer, you can control its movement with the left joystick

Step 10: Update! a Preview of the New Software!

Back to School Contest

Participated in the
Back to School Contest