お疲れ様です!TechXの大高です。
前回(Day 1)は、ArduinoとPCA9685という基板を4本の線でつなぎ、「I2Cスキャナ」で 0x40 という応答を確認するところまで進みました。配線が正しいことは分かった。次はいよいよ本番——人生で初めて、自分で配線したサーボを、自分で書いたプログラムで動かす回です。
結論から言うと……動きました! サーボが「カクッ、カクッ」と首を振ったあの瞬間は、地味だけど本当に嬉しかった。ただ、そこにたどり着くまでが、初心者らしいミスと勘違いのオンパレード。そして最後はまさかの場所(基板の裏)に救われました。今日もありのままの記録でいきます。
今日のゴール:サーボ1個を、指令どおりに動かす
やることはシンプルです。①サーボをPCA9685に挿す → ②サーボ用の電池(6V)をつなぐ → ③プログラムを書き込む → ④電源ONで動きを観察する。たった1個のサーボですが、初めてだとこの4ステップ全部が初体験。ひとつでも間違えば、うんともすんとも言いません。
配線あるある①:つないだ線を、勢いで外してしまう
「サーボをPCA9685につなぐぞ」と意気込んだ結果、私はなぜか前回せっかく成功したArduino⇔PCA9685の4本を外してしまいました。サーボは”PCA9685に足す”だけでよかったのに、です。
正しい全体像はこうでした。
[Arduino UNO] ==I2Cの4本== [PCA9685] ==3本== [サーボ]
(PCから命令) (PWMを作る) (実際に動く)
3つが同時につながって初めて、命令が一直線に流れてサーボが動く。外してしまった4本は、落ち着いて挿し直しました。
配線あるある②:ジャンパー線の「オス・メス」でつまずく
挿し直そうとしたら、線が挿さらない。原因は、両端がピン(オス)の線を使っていたこと。相手が穴なら線はピン、相手がピンなら線は穴——このオス・メスの組み合わせを、何度も確認しながら覚えました。
- Arduino(穴)⇔ PCA9685(ピン)→ オスメスの線
- PCA9685のピン同士を橋渡し → メスメスの線
配線あるある③:「3本?4本?」と、チャンネル番号
「線は4本」「いや3本しかない」と自分でも混乱しましたが、正体は単純でした。サーボの線は3本(茶・赤・橙)、ArduinoとPCA9685をつなぐI2Cの線は4本。別々の束を、同じ話だと思い込んでいたんですね。
もうひとつ、サーボを挿す「チャンネル番号」が何番なのか自信が持てませんでした。そこで割り切って、「16個あるチャンネルを、プログラムで端から順番に全部動かしてみる」作戦に。どこかで自分のサーボが動けば、その時に画面に出ている番号が”正解”というわけです。推測せず、動かして確かめる作戦です。
念のため、もう一度I2Cスキャナで安心確認
ここまで配線をいじり回したので、電池をつなぐ前に前回のI2Cスキャナをもう一度実行。0x40 と 0x70 がきちんと表示され、「配線は生きている」と機械に太鼓判をもらってから次へ進みました。不安なところは、安全な状態に戻って確認する。遠回りに見えて、これが一番の近道でした。
最後の関門:電池の+とー、どっちに挿す?
いよいよ電池です。PCA9685の緑色のねじ端子に、電池の+とーをつなぎます。ところが——この端子に「+」「ー」の印字がどこにも見当たらない。逆に挿すと基板やサーボを壊すかもしれない。手元にテスター(電圧や導通を測る道具)もない。ここで完全に手が止まりました。
「たぶんこっちが+」で挿すのは絶対にダメ。壊してからでは遅い。どうやって確かめよう……と、基板をひっくり返した、その裏面に、答えが全部書いてありました。
救世主は「基板の裏」だった
Use V+ for servo supply
V+: 6V Max
Terminal block is reverse polarity protected.
Side breakout pins are not!
特に効いたのが3行目、「Terminal block is reverse polarity protected(ねじ端子は逆接続保護つき)」。つまりこの緑の端子は、電池を逆向きに挿しても壊れない——保護回路が入っているという意味です。あれだけ悩んだ極性、じつは”気にしなくてよかった”のでした。逆なら「電気が流れないだけ」で無害。
ついでに「Side breakout pins are not!(横のピンは保護なし)」ともあり、電源を横のピンから取るのは避けて正解だったと確認できました。迷ったら、部品そのものが答えを持っていることがある。マニュアルを探す前に、まず現物をよく見る——大事な教訓です。
そして……動いた!
電池4本(6V)を緑の端子につなぎ、スイッチON。……動かない。 でも、もう慌てません。裏面の説明どおり「逆接続だと電気が流れないだけ」。スイッチを切り、電池の2本を左右入れ替えて、もう一度ON。
すると——チャンネル8番あたりで、サーボが「カクッ、カクッ」と首を振り始めました。 プログラムが端から順にチャンネルを試していき、8番に来た瞬間に、私が挿したサーボがピクッと反応した。画面の数字と、目の前の動き。命令が、電気が、モーターの回転になって現れた最初の瞬間です。
「たった1個のサーボが少し首を振っただけ」。でも、配線・電源・プログラム・書き込みという4つの初体験を全部くぐり抜けた先の1回転は、格別でした。
今日の学び
- 推測で進めず、動かして確かめる:チャンネル番号は「全部試す」、配線は「I2Cスキャナで確認」。当てずっぽうを一つずつ潰す。
- 迷ったら現物を見る:極性の答えは、ネットでもマニュアルでもなく、基板の裏に書いてあった。
- 逆接続保護という安心設計:良い基板は、初心者のミスを想定して守ってくれている。
- 頭脳と筋肉の電源は分ける:ArduinoはUSB、サーボは電池6V。役割が違う。
次回予告(Day 3):8番を確定させ、”力”を測る
次回は、サーボが本当に8番かをきっちり確定させ、指で戻そうとしても位置を保持できるか(=どれくらいの”力”があるか)を確かめます。この小さなサーボが、いずれ機体の自重を支えて歩けるのか——本命の四足歩行ロボットに向けた、大事な実測が始まります。次回もありのままにお届けします。

