2019年に製作した四足歩行ロボットについて記事にしました。
サーボモーター4個を制御することにより歩行します。
動画では動作の一部を紹介しました。
動画
ESP8266 NodeMCUのUSBにモバイルバッテリーを接続すると[VinPin]から5Vが出力されます。
Arduino IDE 設定
プログラム
#include <Servo.h>
Servo FR;
Servo FL;
Servo RR;
Servo RL;
void setup() {
Serial.begin(115200);
FR.attach(14);
FL.attach(12);
RR.attach(13);
RL.attach(15);
}
void loop() {
down();
delay(3000);
up();
delay(500);
warming();
delay(500);
udetate();
udetate();
delay(500);
down_in();
delay(500);
down();
up();
down();
up();
down();
up();
delay(500);
go();
go();
go();
go();
go();
delay(500);
back();
back();
back();
back();
back();
delay(500);
down();
delay(3000);
}
void warming() {
int a = 0;
for ( a = 0; a <= 180; a++) {
FR.write(a);
FL.write(a);
RR.write(a);
RL.write(a);
delay(10);
}
for (a = 180; a >= 0; a--) {
FR.write(a);
FL.write(a);
RR.write(a);
RL.write(a);
delay(10);
}
}
void go() {
FL.write(35);
FR.write(25);
RL.write(125);
RR.write(115);
delay(500);
FL.write(155);
FR.write(145);
RL.write(65);
RR.write(55);
delay(500);
}
void back() {
FL.write(125);
FR.write(115);
RL.write(35);
RR.write(25);
delay(500);
FL.write(65);
FR.write(55);
RL.write(155);
RR.write(145);
delay(500);
}
void right() {
FL.write(35);
FR.write(55);
RL.write(125);
RR.write(115);
delay(500);
FL.write(145);
FR.write(125);
RL.write(65);
RR.write(65);
delay(500);
}
void left() {
FL.write(55);
FR.write(25);
RL.write(125);
RR.write(115);
delay(500);
FL.write(125);
FR.write(145);
RL.write(65);
RR.write(55);
delay(500);
}
void down_in() {
FL.write(170);
FR.write(10);
RL.write(10);
RR.write(170);
delay(500);
}
void down_out() {
FL.write(10);
FR.write(170);
RL.write(10);
RR.write(170);
delay(500);
}
void up() {
RL.write(90);
RR.write(90);
FL.write(90);
FR.write(90);
delay(500);
}
void down() {
FL.write(180);
FR.write(0);
RL.write(0);
RR.write(180);
delay(500);
}
void udetate() {
FL.write(170);
FR.write(10);
RL.write(170);
RR.write(10);
delay(500);
int a = 10;
int b = 170;
while(a < 80){
a++;
FR.write(a);
b--;
FL.write(b);
delay(10);
}
delay(500);
}
0 件のコメント:
コメントを投稿