発行済み 2026-03-08
最近、多くの友人が、Raspberry Pi を使って小さな発明をしたいと私に尋ねてきましたが、どうやって作るかで行き詰まっています。サーボ動く。あなたもこの種の当惑に遭遇したことがありますか?サーボを接続してコードを入力したのに、動かなかったり、けいれんのように震えたりしませんか?心配しないでください。これは実際にはどのメーカーも通過するハードルです。今日は、この硬い骨を分解する方法を段階的に説明します。サーボ手に持ったまま指定した角度まで素直に回転します。
Raspberry Pi を使用してサーボを制御したい場合は、まず、両者がどのように「会話」するかを理解する必要があります。サーボは Raspberry Pi のデジタル信号を理解できません。 PWM(パルス幅変調)と呼ばれる波形信号のみを認識します。簡単に言うと、ステアリングギアにさまざまな幅の電気パルスを送り、「真ん中の位置に回せ」または「右端に回せ」と指示します。 Raspberry Pi 自体にはハードウェア PWM ピンがありますが、数が限られているため、多くの人はソフトウェア シミュレーションを使用します。サーボの信号線を Raspberry Pi の GPIO ピンに接続し、プログラミングを通じて対応するパルス信号を生成するだけで、サーボは指示を理解できるようになります。
市場にはさまざまなサーボがあり、間違ったサーボを選択するのは面倒な場合があります。 Raspberry Piを始めるには、通常のSG90 9gマイクロサーボを使用することを強くお勧めします。この小型サーボは安価で頑丈で、電圧要件は Raspberry Pi が提供できる正確な 5V です。ロボットアームの制御など、ハードな作業を行いたい場合は、このタイプのメタルギア高トルクサーボを検討する必要があります。ただし、サーボの大きな動作電流は Raspberry Pi には多すぎる可能性があるため、個別に電力を供給するのが最善であることを思い出してください。もう一つ見落としがちな点があります。サーボにはアナログとデジタルの 2 種類があります。初心者ならアナログで十分です。制御ロジックはシンプルかつ直接的です。
配線手順は簡単そうに見えますが、多くの人がつまずきます。最も一般的な間違いは、プラス極とマイナス極を逆に接続することです。一瞬でベタベタした臭いがしてサーボは廃車になってしまいます。覚えておく必要があります。赤色のワイヤは 5V 電源に接続され、茶色または黒色のワイヤはグランドに接続され、黄色またはオレンジ色の信号ワイヤは GPIO ピンに接続されます。もう一つの落とし穴は、電源不足です。 Raspberry Pi の 5V ピンには出力電流が制限されています。 3 つ以上のサーボが使用されている場合、電圧が引き下げられ、Raspberry Pi が再起動します。安全な方法は、サーボのみに外部電源を使用し、その電源のグランドとRaspberry Piのグランドを接続して信号が正常に伝わるようにすることです。
![]()
正式にコードを書き始める前に、まずサーボの回転の背後にある秘密を徹底的に理解する必要があります。サーボの角度は「デューティサイクル」と呼ばれる要素によって決まります。鮮やかな例えを使ってみましょう。私たちが毎日使っている蛇口のスイッチと同じです。スイッチを入れている時間が長いほど、出てくる水の量が多くなります。 PWM信号はハイレベルの割合が大きくなるほどサーボの回転角が大きくなります。標準的なサーボの場合、サイクルは通常 20 ミリ秒に設定され、ハイレベル時間は 0.5 ミリ秒から 2.5 ミリ秒の間で、これは 0 度から 180 度の角度範囲に対応します。 RPi.GPIO やより高度なライブラリなどの Raspberry Pi ライブラリを使用する場合は、これらの時間をデューティ サイクル値に変換する必要があります。プロセス全体は少し複雑に思えますが、幸いなことに、ライブラリ関数は通常、カプセル化されているため、必要な角度を直接指定するだけで済みます。
ただし、ライブラリ関数がカプセル化されている場合でも、実際の操作中に注意すべき点がいくつかあります。たとえば、サーボのモデルが異なるとパラメータに若干の違いがある場合があるため、使用前に関連ドキュメントを注意深く確認して、設定されたパラメータが実際のサーボと一致していることを確認する必要があります。さらに、コードを記述するときは、コードの明確な論理構造に注意し、すべてのステップを厳密かつ正確に行う必要があります。ライブラリ関数は多くの操作を簡素化しますが、コード ロジックが複雑な場合は、サーボが期待どおりに回転しない可能性があります。同時に、デバッグ プロセスでは、さまざまなデバッグ ツールを使用して、高レベルの時間設定エラーやデューティ サイクル計算エラーなどの考えられる問題を迅速に発見して解決するスキルが必要です。あらゆる側面を包括的かつ綿密に考慮することによってのみ、サーボが指示に従って正確に回転し、期待される機能を正常に達成できるようになります。
サーボを0度から180度まで直接ジャンプさせると、驚いたように突然跳ね返ります。動作が硬くなるだけでなく、サーボギアが損傷しやすくなります。動きを綺麗に見せたいなら「グラデーション」という考え方を使う必要があります。 ️ 1.まず開始角度と目標角度を設定します。 ️ 2. 途中で何歩必要かを計算します。 ️ 3. 各ステップで少しだけ回転させ、途中で少しディレイを追加します。たとえば、毎回 1 度ずつ増加し、20 ミリ秒ずつ遅延するループを作成すると、サーボは実際のアームのようにスムーズに動きます。この方法は、ロボットを歩かせたり、ロボットアームを掴ませたりする場合に特に実用的で、視覚効果が瞬時に数段階向上します。
一生懸命プログラムを書いたのに、サーボがもみがらのように震えています。この状況は、おそらく電源の問題が原因であると考えられます。まず、電源が安定しているかどうかを確認してください。マルチメーターを使用して電圧を測定します。変動が大きい場合はコンデンサを追加してフィルタしてください。第二に、PWM 信号自体が不安定で、Raspberry Pi がマルチタスクを実行しているときにソフトウェアでシミュレートされた PWM が簡単に妨害される可能性があります。解決策は、ハードウェア PWM ピンを使用するか、ライブラリをアップグレードすることです。このライブラリは DMA (ダイレクト メモリ アクセス) テクノロジを使用しており、信号精度ははるかに高くなります。信号線が長すぎて干渉を受ける可能性もあります。短い DuPont ラインを使用するか、信号ラインに小さな抵抗を接続してみてください。
これを見れば、Raspberry Pi でのサーボ制御に自信が持てるはずです。とても興味があるのですが、このスキルを使ってどのような興味深いプロジェクトを行う予定ですか?それは物を掴むためのロボットアームでしょうか、それとも首を振る小さなロボットでしょうか?コメントエリアに来て、あなたの考えについて話し合ってください。この記事が役立つと思われた場合は、忘れずに「いいね」を押して、より多くの友達と共有してください。そうすれば、より多くの人が Maker ファミリーに参加できるようになります。
更新時間:2026-03-08