Arduinoにはサーボライブラリーもありますし、多数のサーボを使うにはPCA9685を使った装置によってプログラムはずいぶん簡単になります、、が常識。
ところがです。単に8個以下のサーボをコントロールするだけなら、勝手にプログラミングすればそれより単純にできるのに気づきます。
ライブラリーを使いこなすのでなく、サーボの仕様どおりのデジタル信号を勝手にだすだけです。もちろんPWMピンを使う必要はありません、とても遅い信号ですし。
要するに次のような信号を各サーボ宛に次々に出していき、周期の残りの時間を無駄に費やせばよいだけです。下の写真は作った結果の実測ですが・・
それだけですと僅かなプログラムステップで書けるのでメモリーも殆ど消耗しません。人形の中身は下の写真のとおりで、サーボ4個を板ではさんであるもの。サーボの電源だけはもちろん、ご覧のとおりArduinoからでなく直接供給します。
さてそういうわけで、調子に乗って6DOF(Degree of freedom、つまり自由度6、言い換えれば6つの独立したサーボ)のロボットアームも、手でコーディングしてしまいました。
まずは教え込む動きをSDに記録する学習モードと、次にSDから再生する実行モードをもたせたのですが、全てをArduino1個でプログラミング。
そして、この腕に工作の補助をさせていました。重宝なものです。猫の手よりもべんり、あたりまえか。
そのうち腕を2本にしたくなり、作り始めて気づきました、「あ、そうだ!サーボを12個つかうのだからPCA9685を使うほうがプログラムはずっと簡単だ!」
あれ?
せっかく作りおえていたコントロール装置は2つとも作り直すことにし・・・結局それ以来中断中^^;
勝手にどんどんやるだけでなく、ときどき考え直さないといけませんですね。反省しきり。。
(c) 2018 Akira Tominaga, All rights reserved.