こんにちは!TechXの大高です。
前回(Day 0)で、3Dプリンターやサーボモーター、Arduinoといった部品を一式そろえました。あれから部品が手元に届き、いよいよ「電子工作」のフェーズに入ります。今日のテーマは、ロボットの関節を動かす”サーボモーター”を、初めて自分の手で動かす準備です。
結論から言うと、今日は「サーボが動いた!」まではたどり着けませんでした。でも、初心者がいちばんつまずく“配線の関門”を突破できた、地味だけど大きな一歩の回です。ロボット製作が完全に初めての人が、実際どこで迷い、どう確認しながら進めるのか——その等身大の記録として書いてみます。
今日のゴール:「サーボを1個、指令どおりに動かす」
いきなり4本足で歩かせる、なんてことはできません。まずはサーボ1個を、プログラムからの指令どおりに「0度 → 90度 → 180度」と動かし、その角度でピタッと止まって保持するかを、自分の目で確かめる。これが最初の一歩です。
「たった1個?」と思うかもしれませんが、初めてだとここに配線・電源・プログラム・書き込みという4つの初体験が全部詰まっています。ひとつでも間違うと動きません。だからこそ、小さく確実に成功させることが大事なんですね。
いきなり予定変更:「PCA9685」という基板の登場
当初の計画では、サーボの信号線をArduinoに直接つなぐ「直結方式」で進めるつもりでした。ところが部品箱を整理していたら、注文リストに載せていなかったはずの「PCA9685」という細長い基板が出てきたんです。
これは「16チャンネルPWMサーボドライバ」——ざっくり言うとサーボを最大16個までまとめて制御できる専用基板です。Arduino単体だと配線もプログラムも煩雑になりがちなサーボ制御を、この基板1枚がぐっと楽にしてくれます。本命の「12個のサーボで歩く四足歩行ロボット」でも、まさにこの基板を使う予定でした。
せっかく手元にあるなら、と今日からこのPCA9685を採用する方針に切り替えました。サーボは基板の端子に3本まとめて挿すだけでよく、実は配線もスッキリします。
配線の勘所:初心者がハマる3つのポイント
ArduinoとPCA9685は、「I2C(アイ・スクエア・シー)」という通信方式で、たった4本の線でつなぎます。ここで初心者がハマりやすいポイントが3つありました。
- ①つなぐ線は4本だけ:
VCC → Arduinoの5V/GND → GND/SDA → A4/SCL → A5。この組み合わせを間違えると通信できません。特にSDAとSCLの左右取り違えが”あるある”だそうです。 - ②「VCC」と「V+」は別物:基板には5Vのロジック用電源「VCC」とは別に、サーボを動かすための電源「V+」(緑のねじ端子)があります。ここに電池の+を間違えてVCCへ挿すと基板を壊します。名前が似ていて紛らわしい、要注意ポイントです。
- ③OE端子は挿さない:似た並びの中に「OE」という端子がありますが、今回は使いません。空けておくのが正解でした。
ここは自信がなかったので、基板の刻印を1本ずつ指差し確認しながら「VCC・GND・SDA・SCLの4本、OEは空き」であることを丁寧にチェックしました。推測で進めず、目で確認する——これが電子工作の鉄則だと実感します。
いきなり電池はつながない ― まず「基板が見えるか」だけを確認
配線ができたら、すぐサーボを動かしたくなります。でもここで一段階、安全なチェックを挟みました。それが「I2Cスキャナ」です。
これは、電池もサーボもつながず、USBケーブルだけで「ArduinoからPCA9685という基板がちゃんと見えているか?」を確認する小さなプログラムです。もし配線が間違っていれば、この時点で「見つかりません」と出るので、電気を多く流す前に、いちばん安全な状態でミスを発見できるわけです。
Arduino IDE(プログラムを書き込むソフト)に、PCA9685を扱うためのライブラリ「Adafruit PWM Servo Driver Library」を入れ、I2Cスキャナを書き込んで実行。パソコンの画面(シリアルモニタ)を、祈るような気持ちで見つめます……。
結果:「0x40」——最初の関門、突破!
画面に、こう表示されました。
Scanning...
I2C device found at address 0x40
I2C device found at address 0x70
done. 2 device(s).
0x40——これがPCA9685の”住所”(アドレス)です。これが表示されたということは、4本の配線が正しく、基板がちゃんと生きていて、Arduinoと会話できている証拠。地味な一行ですが、初めての電子工作で「自分の配線が正しかった」と機械に認められた瞬間は、なかなか嬉しいものでした。
ちなみに一緒に出た 0x70 は、PCA9685が持つ「全チャンネル一斉呼び出し用」の予備の住所で、これも正常な表示。別の機器がつながっているわけではありません(最初は「え、2個?」とドキッとしました)。
技術メモ:なぜ「サーボ電源」を別に用意するのか
今回わざわざ、サーボ用に単3電池4本(6V)の電源を別に用意しています。「Arduinoの5Vから取ればいいのでは?」と最初は思いました。でも調べると、サーボは動き出す瞬間に大きな電流を一気に消費するため、Arduinoから電気を取るとその電圧の落ち込みでArduino自体が再起動(リセット)してしまうことがあるそうです。
そのため、「頭脳(Arduino)」と「筋肉(サーボ)」の電源は分けるのが定石。PCA9685の緑の端子は、まさにこの”筋肉用の電源”を受けるための入口だったわけです。基板に大きなコンデンサ(電気の一時的な貯金箱)が付いているのも、この突入電流をならすためだと分かって、部品ひとつひとつの意味が腑に落ちてきました。
次回予告(Day 2):いよいよ、初めてサーボが動く
配線が正しいことは確認できました。次回はいよいよ、
- サーボをチャンネル0に挿す(茶=GND/赤=V+/橙=信号)
- 緑の端子に電池6Vをつなぐ(極性に注意!)
- プログラムを書き込んで、電源ON
という流れで、人生で初めて、自分で配線したサーボを、自分で書いたプログラムで動かします。うまくカクカク動いてくれるか、それとも新たな壁にぶつかるか——次回もありのままにお届けします。お楽しみに。
