プロジェクト20:光の方向追尾システムを作ってみよう!
このプロジェクトで学ぶこと: 2つの光センサーの値を比較し、その差に応じてサーボを動かす「差動制御」を学びます。センサーとアクチュエーターを組み合わせた自律システムの基本がここにあります。
完成イメージ
[懐中電灯を左右に動かすと、サーボが光の方向を自動で追いかける動画を挿入]
必要な部品
| 部品名 | 数量 |
|---|---|
| Arduino Uno R3 | 1 |
| フォトレジスタ(CDS) | 2 |
| 抵抗 10kΩ | 2 |
| サーボモーター | 1 |
| ブレッドボード | 1 |
| ジャンパー線 | 多数 |
回路図と配線
[回路図画像を挿入]
配線手順
- 2つのCDSセンサーをそれぞれ10kΩ抵抗で電圧分割回路を作り、A0(左センサー)と A1(右センサー)に接続する
- 2つのCDSセンサーを並べて配置する(間に仕切りを立てると効果的)
- サーボモーターを 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の小さい方」を返し、上限を設けます。
動作確認
- スケッチをアップロードしてシリアルモニタを開く
- 懐中電灯を左右に動かすとサーボが追いかければ成功
- 両センサーに均等に光を当てるとサーボが中央付近で安定することを確認する
このプロジェクトで学んだこと
- 差動制御: 2つのセンサーの差分を使って方向を判断する方法を習得しました
- デッドバンド: 制御の安定性を保つための不感帯の概念を理解しました
- 統合システム設計: センサー(入力)→演算→アクチュエーター(出力)の基本フローを体験しました
次のプロジェクト「パーキングセンサー」では、距離センサーとLED・ブザーを組み合わせた実用システムを作ります。
深掘り:技術の背景と社会への広がり
太陽追尾システム:宇宙開発から再生可能エネルギーへ
2つのセンサーで光の方向を追う「差動追尾」の原理は、1950〜60年代の人工衛星の太陽電池パネル制御に使われたのが原点です。人工衛星は電力を太陽光から得るため、常にパネルを太陽に向け続ける必要があります。同じ原理が地上の太陽光発電所の「ソーラートラッカー」に応用されており、固定パネルより25〜35%多くの発電量を得られることが実証されています。
再生可能エネルギーと気候変動対策への直結
ソーラートラッカーは現代の気候変動対策において重要な技術です。日本では2012年のFIT(固定価格買取制度)導入以降、メガソーラー発電所の建設が急増し、発電効率向上のためにトラッカーシステムの導入が進んでいます。あなたが今日作った「2つのCDSセンサーでサーボを動かすシステム」は、太陽光発電量を最大化して化石燃料消費を減らす、現実世界のソーラートラッカーと全く同じ制御原理です。エネルギー問題と地球温暖化という社会課題に、電子工作の技術が直接つながっています。
← プロジェクト19:ステッピングモーター | 全プロジェクト一覧 | 次のプロジェクト:パーキングセンサー →


