注釈

こんにちは!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+

Pico 2 W Kit

以下のリンクから、コンポーネントを個別に購入することもできます。

SN

コンポーネント紹介

数量

購入リンク

1

Pico 2 Wの概要

1

2

Micro USBケーブル

1

3

ブレッドボード

1

買う

4

ジャンパーワイヤー

数個

買う

5

サーボモーター

1

買う

回路図

sch_servo

配線

wiring_servo

  • オレンジ色のワイヤーは信号線で、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°に、そしてその後逆方向にスムーズに動くはずです。

もしサーボが動かない、または不規則に動作する場合:

  • 配線接続を確認してください。

  • サーボが正しく電源供給されていることを確認してください。

  • サーボが機械的にブロックされていないか確認してください。

コードの理解

  1. Servo ライブラリのインクルード:

    サーボモーターを制御する関数を提供する Servo ライブラリをインクルードします。

    #include <Servo.h>
    
  2. Servo オブジェクトの作成:

    サーボモーターを制御するために myServo という名前の Servo オブジェクトを作成します。

    Servo myServo;
    
  3. サーボのピンへの接続:

    サーボをPicoのGPIOピン15に接続します。

    myServo.attach(15);
    
  4. サーボの動かし方:

    • サーボを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°の間で任意の角度に設定でき、プロジェクトで精密な制御が可能になります。