注釈
こんにちは!FacebookのSunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Communityへようこそ!Raspberry Pi、Arduino、ESP32を他の愛好者と一緒に深く学びましょう。
参加する理由は?
専門的なサポート: 購入後の問題や技術的な課題をコミュニティやチームの助けを借りて解決できます。
学びと共有: ヒントやチュートリアルを交換し、スキルを向上させましょう。
限定プレビュー: 新製品の発表や先行公開をいち早くチェックできます。
特別割引: 新しい製品に対して独占的な割引を楽しめます。
祭典のプロモーションやプレゼント: プレゼントや祝日プロモーションに参加しましょう。
👉 一緒に探求し、創造を楽しむ準備はできましたか?[ここ]をクリックして、今日から参加しましょう!
3.7 サーボモーターの制御
このレッスンでは、 サーボモーター をRaspberry Pi Pico 2 Wで制御する方法を学びます。サーボモーターは、0°から180°の間で特定の角度に回転できるデバイスです。リモコン玩具、ロボット、その他の精密な位置制御が必要なアプリケーションで広く使用されています。
さあ、サーボモーターを前後に動かしてみましょう!
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
全セットを購入するのが便利なので、こちらのリンクをチェックしてください:
名前 |
このキットのアイテム |
購入リンク |
|---|---|---|
Pico 2 Wスターターキット |
450+ |
以下のリンクから、コンポーネントを個別に購入することもできます。
SN |
コンポーネント紹介 |
数量 |
購入リンク |
|---|---|---|---|
1 |
1 |
||
2 |
Micro USBケーブル |
1 |
|
3 |
1 |
||
4 |
数個 |
||
5 |
1 |
回路図

配線

オレンジ色のワイヤーは信号線で、GP15に接続します。
赤色のワイヤーはVCCで、VBUS(5V)に接続します。
茶色のワイヤーはGNDで、GNDに接続します。
サーボモーターは、特に負荷がかかるとかなりの電流を消費することがあります。今回使用するのは小型のサーボモーターで、重い負荷をかけないため、PicoのVBUSピンから給電することで、この簡単な実験は問題なく動作します。大きなサーボや複数のサーボを使用する場合は、外部電源を使用してください。
サーボアームの取り付け
サーボの出力シャフトにサーボアーム(またはホーン)を取り付けます。
必要に応じて、サーボに付属の小さなネジで固定します。
コード作成
ここでは、お気に入りの色を描画ソフト(例:ペイント)で選び、その色をRGB LEDで表示する方法を学びます。
注釈
3.7_swinging_servo.inoファイルをpico-2w-kit-main/arduino/3.7_swinging_servoから開きます。または、このコードを Arduino IDE にコピーします。
Raspberry Pi Pico 2 W ボードと正しいポートを選択して、「アップロード」をクリックします。
#include <Servo.h>
Servo myServo; // サーボオブジェクトを作成
void setup() {
myServo.attach(15); // サーボをGPIOピン15に接続
}
void loop() {
// サーボを0°から180°に動かす
for (int angle = 0; angle <= 180; angle += 1) {
myServo.write(angle);
delay(15); // サーボが位置に到達するまで15ミリ秒待機
}
// サーボを180°から0°に戻す
for (int angle = 180; angle >= 0; angle -= 1) {
myServo.write(angle);
delay(15);
}
}
コードをアップロード後、サーボアームは0°から180°に、そしてその後逆方向にスムーズに動くはずです。
もしサーボが動かない、または不規則に動作する場合:
配線接続を確認してください。
サーボが正しく電源供給されていることを確認してください。
サーボが機械的にブロックされていないか確認してください。
コードの理解
Servoライブラリのインクルード:サーボモーターを制御する関数を提供する
Servoライブラリをインクルードします。#include <Servo.h>
Servoオブジェクトの作成:サーボモーターを制御するために
myServoという名前のServoオブジェクトを作成します。Servo myServo;
サーボのピンへの接続:
サーボをPicoのGPIOピン15に接続します。
myServo.attach(15);
サーボの動かし方:
サーボを0°から180°まで1度ずつ動かします。
delay(15)でサーボがスムーズに各位置に到達するための小さな遅延を提供します。
for (int angle = 0; angle <= 180; angle += 1) { myServo.write(angle); delay(15); }
動きの反転:サーボを180°から0°に戻し、前後にスイングする動きを作り出します。
for (int angle = 180; angle >= 0; angle -= 1) { myServo.write(angle); delay(15); }
さらなる実験
速度の調整:
ループ内の
delay()の値を変更して、サーボの動きを速くしたり遅くしたりできます。位置の直接制御:
myServo.write(angle);を使用して、サーボを特定の角度に設定できます。インタラクティブな制御:
ポテンショメーターを接続して、サーボの角度をインタラクティブに制御できます。
結論
このレッスンでは、Raspberry Pi Picoを使用してサーボモーターを制御する方法を学びました。コードを調整することで、サーボを0°から180°の間で任意の角度に設定でき、プロジェクトで精密な制御が可能になります。