Month of Robots

Enter Your Project for a chance to win robot prizes for your robot builds and a $200 shopping cart!  The Birthday Special: Robot Prizes for Robot Projects!

Back to The Project14 homepage

Project14 Home
Monthly Themes
Monthly Theme Poll

 

With the MeArm coming up for a RoadTest, I decided to take my old one out and dust it off. Since I recently posted about the Dirty Smart Button and talked about battery life, I got curious what I could actually get. I did some basic math which seemed like this should last forever.

 

I took the MeArm and set it up to press each button sequentially on the Dirty Smart Button, and set a dwell timer in between.

 

References:

  1. Dirty Smart Button Home Automation project
  2. MeArm Road Test
  3. Freetronics EtherTen

 

Test Setup:

 

  1. Original MeArm robotic arm
  2. Freetronics Ether10 Arduino Uno
  3. Dirty Smart Button diaper logger is the UUT (Unit Under Test)

I set up the MeArm to do a simple routine as per the below source code. This test is open-loop for simplicity - in other words, the arm simply goes through a series of position moves in sequence without any feedback on the status of the button presses on the UUT.

Here is my code which is similar to what was in the video linked in this post. I changed the dwell times and a few of the moves to make it a little cleaner since the video was taken.

 

/* Pins:
 * Arduino    Base   Shoulder  Elbow    Gripper
 *    GND    Brown     Brown   Brown     Brown
 *     5V      Red       Red     Red       Red
 *     11    Yellow
 *     10             Yellow
 *      9                     Yellow
 *      6                               Yellow
 */
#include "meArm.h"
#include <Servo.h>


int basePin = 11;
int shoulderPin = 10;
int elbowPin = 3;
int gripperPin = 6;


meArm arm;


void setup() {
  arm.begin(basePin, shoulderPin, elbowPin, gripperPin);
  realignArm();
}


void loop() {


  clap();
  
  realignArm();
  pressA();
  delay(90000);


  realignArm();
  pressB();
  delay(90000);


  realignArm();
  pressC();
  delay(90000);


}
void pressA(){
  //press button A - Wet
  


  arm.gotoPoint(-30,130,150);
  delay(1000);
  arm.gotoPoint(-30,190,50); //stage
  delay(250);
  arm.gotoPoint(-30,190,30); //press
  delay(500);
  arm.gotoPoint(-30,190,50);
  delay(1000);
}


void pressB(){
  //press button B - Dirty
  arm.gotoPoint(+10,130,150);
  delay(1000);
  arm.gotoPoint(+15,210,50); //stage
  delay(250);
  arm.gotoPoint(+15,210,20); //press
  delay(500);
  arm.gotoPoint(+15,180,50);
  delay(1000);
}


void pressC(){
  ///press button C - Blowout
  arm.gotoPoint(+55,130,150);
  delay(1000);
  arm.gotoPoint(+60,185,50); //stage
  delay(250);
  arm.gotoPoint(+60,185,20); //press
  delay(500);
  arm.gotoPoint(+60,185,50);
  delay(1000);
  
}
void clap(){
    //Clap - so it's obvious we're at this part of the routine
  arm.openGripper();
  arm.closeGripper();
  arm.openGripper();
  arm.closeGripper();
  arm.openGripper();
  
}
void realignArm(){
  arm.gotoPoint(-40,130,150);
  delay(1000);


}

 

The Goal:

The goal is to see how many button press cycles I can achieve before the batteries die. I know that I got around 200 before we stopping using it with our child. So far with the MeArm test rig, I have well over 500 cycles and counting...

 

The results:

I will update this post over the next couple of weeks, so check back!

 

I'm also curious if there is something to be said for having the most tie-ins of previous contests all wrapped up in one???