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 件のコメント:
コメントを投稿