プロジェクト20:光の方向追尾システム

プロジェクト20:光の方向追尾システムを作ってみよう!

このプロジェクトで学ぶこと: 2つの光センサーの値を比較し、その差に応じてサーボを動かす「差動制御」を学びます。センサーとアクチュエーターを組み合わせた自律システムの基本がここにあります。


完成イメージ

[懐中電灯を左右に動かすと、サーボが光の方向を自動で追いかける動画を挿入]


必要な部品

部品名 数量
Arduino Uno R3 1
フォトレジスタ(CDS) 2
抵抗 10kΩ 2
サーボモーター 1
ブレッドボード 1
ジャンパー線 多数

回路図と配線

[回路図画像を挿入]

配線手順

  1. 2つのCDSセンサーをそれぞれ10kΩ抵抗で電圧分割回路を作り、A0(左センサー)と A1(右センサー)に接続する
  2. 2つのCDSセンサーを並べて配置する(間に仕切りを立てると効果的)
  3. サーボモーターを 9番ピン に接続する

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

// 光追尾システム:2つのCDSで光の方向にサーボを向ける

#include <Servo.h>

const int LEFT_CDS  = A0;
const int RIGHT_CDS = A1;
const int THRESHOLD = 20;   // 左右差がこの値以下なら動かさない(デッドバンド)

Servo trackServo;
int servoAngle = 90;  // 初期位置は中央

void setup() {
  trackServo.attach(9);
  trackServo.write(servoAngle);
  Serial.begin(9600);
}

void loop() {
  int leftVal  = analogRead(LEFT_CDS);
  int rightVal = analogRead(RIGHT_CDS);
  int diff = leftVal - rightVal;  // 左右の差

  Serial.print("左:");
  Serial.print(leftVal);
  Serial.print(" 右:");
  Serial.print(rightVal);
  Serial.print(" 差:");
  Serial.println(diff);

  if (diff > THRESHOLD) {
    // 左が明るい → サーボを左に回す
    servoAngle = min(servoAngle + 2, 180);
  } else if (diff < -THRESHOLD) {
    // 右が明るい → サーボを右に回す
    servoAngle = max(servoAngle - 2, 0);
  }

  trackServo.write(servoAngle);
  delay(20);
}

コードのポイント解説

差動制御(差分を見る) 左右のセンサーの差を計算することで、光がどちら側にあるかを判断します。単一センサーの閾値判定より直感的で、センサーの個体差や環境光の影響を受けにくいです。

デッドバンド(不感帯)THRESHOLD 差がわずかなときまでサーボを動かすと、小刻みに振動(ハンチング)してしまいます。一定値以下の差は無視することでサーボを安定させます。制御工学でいう「不感帯」です。

min() / max() 角度が0〜180の範囲を超えないように制限します。min(value, 180)は「valueと180の小さい方」を返し、上限を設けます。


動作確認

  1. スケッチをアップロードしてシリアルモニタを開く
  2. 懐中電灯を左右に動かすとサーボが追いかければ成功
  3. 両センサーに均等に光を当てるとサーボが中央付近で安定することを確認する

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

  • 差動制御: 2つのセンサーの差分を使って方向を判断する方法を習得しました
  • デッドバンド: 制御の安定性を保つための不感帯の概念を理解しました
  • 統合システム設計: センサー(入力)→演算→アクチュエーター(出力)の基本フローを体験しました

次のプロジェクト「パーキングセンサー」では、距離センサーとLED・ブザーを組み合わせた実用システムを作ります。


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

太陽追尾システム:宇宙開発から再生可能エネルギーへ

2つのセンサーで光の方向を追う「差動追尾」の原理は、1950〜60年代の人工衛星の太陽電池パネル制御に使われたのが原点です。人工衛星は電力を太陽光から得るため、常にパネルを太陽に向け続ける必要があります。同じ原理が地上の太陽光発電所の「ソーラートラッカー」に応用されており、固定パネルより25〜35%多くの発電量を得られることが実証されています。

再生可能エネルギーと気候変動対策への直結

ソーラートラッカーは現代の気候変動対策において重要な技術です。日本では2012年のFIT(固定価格買取制度)導入以降、メガソーラー発電所の建設が急増し、発電効率向上のためにトラッカーシステムの導入が進んでいます。あなたが今日作った「2つのCDSセンサーでサーボを動かすシステム」は、太陽光発電量を最大化して化石燃料消費を減らす、現実世界のソーラートラッカーと全く同じ制御原理です。エネルギー問題と地球温暖化という社会課題に、電子工作の技術が直接つながっています。


プロジェクト19:ステッピングモーター全プロジェクト一覧 | 次のプロジェクト:パーキングセンサー →