右脚(膝下)の再設計
先日、右脚(膝下)を作ってみましたが、足首がギクシャクしてスムーズに動かなかったことと、一部、バネを使ってワイヤーを引っ張ろうとしましたが、引っ張る力が弱かったため、スムーズに動くことが出来ませんでした。そこで以下の設計変更を行って再度組み立ててみたいと思います。
- マイクロサーボモータを1台から2台に増やす
- サーボモータを動力を直接ワイヤーに伝えるためにプーリーを印刷して使用する
- 金属製ワイヤーの使用を止めて、すべてPEライン(釣り糸)を使用する
以前の設計だとすねとふくらはぎの中には、マイクロサーボモータは1台しか入れることが出来ませんでした。2台入れるようにするためには、大幅に内容量(空間)を増やす必要があります。

脚が太くなり少しバランスが悪くなってしまいましたが、マイクロサーボモータがギリギリ2台入るスペースが確保できました。


右脚(膝下)の組み立て
設計変更が完了したので組み立てを行います。

マイクロサーボモータには、プーリーを取り付けてワイヤーを引く力を強化します。直接、サーボモータのギアに取り付けするため何度も嚙み合わせを微調整しました。

今回は、組み立ての動画を作成しました。少し長いですが時間が許せば見てみてください。

右脚(膝下)を動かしてみる(再)
組み立てが完了したので、「Arduino UNO」と 今回は、モータ制御に「PCA9685 16Ch PWM Driver」を使って動かしてみました。
リンク
リンク



サーボモータは、PCA9685に繋ぎ、動力電源は単三乾電池からPCA9685に渡します。信号用の電源は、Arduino UNOのUSB接続で賄います。PCA9685には、Arduino UNO からGRD、SCL、SDA、5Vをそれぞれ、GRD、SCL、SDA、VCCに接続します。
以下のような簡単なプログラムで動かしてみます。
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x40);
#define SERVOMIN 500 // 最小パルス幅
#define SERVOMAX 2400 // 最大パルス幅
int Servo1_pin = 0;
int Servo2_pin = 1;
int angle1;
int angle2;
void setup() {
pwm.begin();
pwm.setPWMFreq(50);
delay(1000);
}
void loop() {
angle1 = 0;
angle2 = 180;
angle1 = map(angle1, 0, 180, SERVOMIN, SERVOMAX);
angle2 = map(angle2, 0, 180, SERVOMIN, SERVOMAX);
pwm.writeMicroseconds(Servo1_pin, angle1);
pwm.writeMicroseconds(Servo2_pin, angle2);
delay(1000);
angle1 = 180;
angle2 = 0;
angle1 = map(angle1, 0, 180, SERVOMIN, SERVOMAX);
angle2 = map(angle2, 0, 180, SERVOMIN, SERVOMAX);
pwm.writeMicroseconds(Servo1_pin, angle1);
pwm.writeMicroseconds(Servo2_pin, angle2);
delay(1000);
}
次は、膝上を設計していきたと思います。少し時間がかかってしまうと思いますが、ご了承ください。
以上
コメント