注釈

こんにちは!SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community(Facebook)へようこそ! ここでは、Raspberry Pi、Arduino、ESP32について、他の愛好家と一緒に深く学ぶことができます。

参加するメリット

  • 専門的なサポート:購入後の問題や技術的な課題を、コミュニティやチームの助けを借りて解決できます。

  • 学び&共有:ヒントやチュートリアルを交換し、スキルを向上させましょう。

  • 最新情報の先行公開:新製品の発表やプレビューをいち早くチェックできます。

  • 特別割引:最新製品を特別価格で購入できます。

  • 季節限定のプロモーション&プレゼント企画:キャンペーンやプレゼント企画に参加できます。

👉 一緒に探求し、創造しませんか?今すぐ [こちら] をクリックして参加しましょう!

3.7 サーボモーターのスイング

このレッスンでは、 サーボモーター をRaspberry Pi Pico 2で制御する方法を学びます。サーボモーターは0°から180°の範囲で特定の角度に回転できる装置で、ラジコン玩具やロボットなど、精密な位置制御が求められる用途で広く使用されています。

それでは、サーボをスイングさせてみましょう!

必要なもの

このプロジェクトでは、以下のコンポーネントが必要です。

すべてが揃ったキットを購入すると便利です。リンクはこちら:

名称

このキットに含まれるアイテム

リンク

Newton Lab Kit

450点以上

Newton Lab Kit

また、以下のリンクから個別に購入することも可能です。

No.

コンポーネント

数量

リンク

1

Raspberry Pi Pico 2

1

購入

2

Micro USB ケーブル

1

3

ブレッドボード

1

購入

4

ジャンパーワイヤー

数本

購入

5

サーボモーター

1

購入

回路図

sch_servo

配線図

wiring_servo

  • オレンジの線は信号線で、GP15に接続。

  • 赤の線はVCCで、VBUS(5V)に接続。

  • 茶色の線はGNDで、GNDに接続。

サーボモーターは特に負荷がかかると比較的大きな電流を消費します。今回は小型サーボを軽負荷で使用するため、PicoのVBUSピンから給電可能ですが、大型サーボや複数のサーボを使用する場合は、外部電源を推奨します。

サーボアームの取り付け

  • サーボの出力軸にアーム(ホーン)を取り付けます。

  • 必要に応じて、付属の小さなネジで固定してください。

コードを書いてみよう

注釈

  • 3.7_swinging_servo.inonewton-lab-kit/arduino/3.7_swinging_servo から開くことができます。

  • または以下のコードを Arduino IDE にコピーしてください。

  • Raspberry Pi Pico 2 ボードを選択し、適切なポートを設定して「Upload」をクリックしてください。

#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°までスムーズにスイングし、再び0°に戻ります。 もしサーボが動かない、または異常な動作をする場合は以下を確認してください。

  • 配線が正しく接続されているか。

  • サーボが適切に給電されているか。

  • 機械的に動きを妨げる要因がないか。

コードの理解

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

    Servo ライブラリを読み込み、サーボ制御のための関数を使用できるようにします。

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

    Servo オブジェクト myServo を作成し、サーボを制御します。

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

    myServo.attach(15); を使用して、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とServoライブラリを使用してサーボモーターを制御する方法を学びました。コードを調整することで、サーボを0°から180°の間で自由に動かすことができ、ロボットアームや精密制御が必要なプロジェクトに活用できます。