プロジェクト08:サーボコントロール

プロジェクト08:サーボコントロール

このプロジェクトで学ぶこと: サーボモーターを0〜180度の任意の角度に動かす方法を学びます。ライブラリを活用することで、複雑なPWM制御をシンプルなコードで実現します。


完成イメージ

[サーボモーターが0度〜180度を往復するように動く動画を挿入]


必要な部品

部品名 数量
Arduino Uno R3 1
サーボモーター 1
ブレッドボード 1
ジャンパー線 3本

回路図と配線

[回路図画像を挿入]

配線手順

  1. サーボの 赤いケーブル(VCC) をArduinoの 5Vピン に接続する
  2. サーボの 茶色または黒いケーブル(GND) をArduinoの GNDピン に接続する
  3. サーボの オレンジまたは白いケーブル(信号線) をArduinoの 9番ピン に接続する

Arduinoスケッチ(プログラム)

// サーボモーターを0〜180度で往復させる

#include <Servo.h>  // サーボライブラリを読み込む

Servo myServo;  // Servoオブジェクトを作成

void setup() {
  myServo.attach(9);  // 9番ピンにサーボを接続
}

void loop() {
  // 0度から180度へ
  for (int angle = 0; angle <= 180; angle++) {
    myServo.write(angle);  // 角度を指定
    delay(15);
  }
  // 180度から0度へ
  for (int angle = 180; angle >= 0; angle--) {
    myServo.write(angle);
    delay(15);
  }
}

コードのポイント解説

#include <Servo.h> Arduinoに最初から入っているサーボ制御ライブラリを読み込みます。#includeでライブラリを使うことで、複雑な処理を自分で書かずに済みます。

Servo myServo サーボモーターを表すオブジェクトを作ります。複数のサーボを使うときはServo servo1, servo2のように複数作れます。

myServo.write(角度) 0〜180の整数で角度を指定します。サーボ内部では角度に対応するパルス幅に自動変換されます。


動作確認

  1. スケッチをアップロードする
  2. サーボモーターが0〜180度をゆっくり往復すれば成功

うまく動かない場合のチェックポイント

  • サーボのVCC・GND・信号線の色を確認する(メーカーにより若干異なる場合がある)
  • 動きが不規則な場合は電流不足の可能性があるので、外部電源(9V電池)の使用を検討する

このプロジェクトで学んだこと

  • ライブラリの活用: #includeでライブラリを読み込み、複雑な処理を簡単に使う方法を学びました
  • オブジェクト指向の入口: myServo.write()のような「オブジェクト.メソッド()」の書き方を体験しました
  • 精密な位置制御: PWMで角度を制御するサーボモーターの仕組みを理解しました

次のプロジェクト「テキストLCD表示」では、I2C通信を使って液晶ディスプレイに文字を表示します。


深掘り:技術の背景と社会への広がり

サーボモーターの起源:軍事技術から家庭へ

サーボ機構(Servomechanism)の語源はラテン語の「servus(僕・召使い)」で、命令通りに動く機構という意味です。1940年代に軍艦や航空機の砲塔・舵の遠隔制御に使われたのが始まりで、精密な角度制御が求められる用途で発展しました。1950〜60年代にラジコン飛行機の普及とともに小型サーボが民生化し、現在ではキット価格が数百円になりました。技術の民主化の典型例です。

ロボット工学と社会課題の最前線

サーボモーターは現代ロボット工学の基本部品です。産業用ロボットアームは関節ごとにサーボを持ち、自動車工場の溶接ロボットから半導体製造の精密ロボットまで幅広く使われています。医療分野では手術支援ロボット(ダ・ヴィンチ)がサーボで医師の手の動きをミリ単位で再現し、体への負担が少ない手術を可能にしています。また高齢者・障害者向けの介護ロボットや義手のアクチュエーターとして、人間の動作を補助する社会インフラとしての役割が増しています。


プロジェクト07:RGB LED全プロジェクト一覧 | 次のプロジェクト:テキストLCD表示 →