2014年6月23日月曜日

全自動卵割り機を作ってみた




https://www.youtube.com/watch?v=Q7TgLp15j30

ロボティクス的なことはなんだか難しそうで抵抗があったのですが、やってみたら意外と簡単だったので作ってみました。正直孵化は手作業の方が早いので実用性はあまりないかもしれません。

材料
Arduino互換マイコンボード
マイクロサーボx2
十字キー固定用クリップ
サーボを固定する台

オプション
ボタン押すところのクッション


ニコニコ動画のはこちら
http://www.nicovideo.jp/watch/sm23841636


サーボ動作用のプログラムはこんな感じです



#include <Servo.h>

Servo myservo;  // create servo object to control a servo
                // a maximum of eight servo objects can be created
Servo myservo2;

int pos = 0;    // variable to store the servo position
int i = 0;
int offset1 = 110;
int starta = offset1;
int enda = offset1+13;

int offset2 = 60;
int startpull = offset2;
int endpull = offset2 + 25;


int traveltime = 0; // ms


void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
  myservo2.attach(8);
  myservo.write(offset1);
  myservo2.write(offset2);

  delay(3000);
}


void loop()
{
  int j;
  for(j=0;j<20;j++) {
    travel();
  }
talkfull();
leftrelease();
delay(50);

}


void talkshort()
{
  int j;
  for(j=0;j<4;j++) {
    pressa();
    delay(150);
  }
}

void talkfull() {
  talkshort();
  leftpull();
  talkshort();
  leftrelease();
  leftpull();
  talkshort();
}

void travel() {
  leftpull();
  delay(traveltime);
  leftrelease();
  delay(traveltime+50);
}





void leftpull()
{
  for(i=startpull;i<endpull;i++) {
    myservo2.write(i);
    delay(20);
  }
}
void leftrelease()
{
  for(i=endpull;i>startpull;i--) {
    myservo2.write(i);
    delay(20);
  }
}


void pressa()
{
  for(i=starta;i<enda;i++) {
    myservo.write(i);
    delay(20);
  }
    for(i=enda;i>starta;i--) {
    myservo.write(i);
    delay(20);
  }

}

0 件のコメント:

コメントを投稿