Smack

Submitted by deb on Sun, 03/17/2013 - 17:29

Description:

We used a small servo motor to built a robotic crawler inspired by the flagellum of single cell organisms. This was our first robotics project and was constructed within 2 hours and 40 min.


After sketching a few whiteboard designs, we settled on this form factor because it allowed us to transform the problematic ‘hip joint’ of our standing models, into a sliding motion along the ground. This approach helped us avoid any swinging, rocking, hopping, ratcheting, sliding or other means of repositioning the hip by using the ground as a “third hand.” We also took advantage of Arduino’s built in servo library to keep our code clean.  


It was difficult to calibrate the extension of the leg because the servo’s 180 degree range of motion exceeded what our model was able to support. There were even a few moments during testing when we thought the servo might snap one of the models ‘ligament’ sticks. This quickly taught us to disable fragile joints before testing each new batch of code. Other challenges included making the device crawl in a straight line, giving the ‘foot’ traction, and making sure the whole apparatus didn't flip itself over. We addressed most of these issues by balancing the components on the back of the tray and adjusting the angle of the cleats.


This device is completely independent of the computer, uses a loop for the majority of it’s programmatic motion, and only needs to be turned ‘on’ to start executing it’s primary function of WINNING.

 

 

Components:

We were proud of the fact that all of theses components were handed out in class and didn't come from outside ordering. We think MacGyver would approve.

  • Battery 9v
  • Arduino
  • Servo Motor
  • Wooden Coffee Stirs x 2
  • Ducktape
  • Balsa wood
  • Basic erector set pieces x 3
  • Plastic lid from class kit container
  • Piece of spiky plastic trash

 

Arduino Code:

// Deb Linton and Victor Starostenko

// The “Smack”

 

#include <Servo.h>

Servo myservo;

int pos = 20;

void setup()

{

 myservo.attach(7);

}

 

void loop()

{

 for (pos = 30; pos < 130; pos += 1)

 {

    myservo.write(pos);

    delay(5);

 }

 for (pos = 130; pos >= 30; pos -= 1)

 {

    myservo.write(pos);

    delay(5);

 }

}

 

 

Video:

 

http://youtu.be/NaLTmyLM69A

 

photo-1.JPG
photo-2.JPG
photo-3.JPG
0
Your rating: None
Drupal theme by Kiwi Themes.