How-to Build MACKRA a Serb Variant.
by kyle brinkerhoff in Circuits > Arduino
10875 Views, 25 Favorites, 0 Comments
How-to Build MACKRA a Serb Variant.
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.
Manufacturing: the Base Plate.
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
Manufacturing: Top Plate.
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
Manufacturing: the Electronics
Manufacturing: the Electronics Part 2
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.
Manufacturing: Final Assembly
What It "should" Look Like
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);
}
}}
The Software: Computer
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...
Downloads
See It in Action!
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