Arduino MCUで制御するAndroidモーション検知カメラ
必要な部品と材料
| Arduino UNO | ×1 |
| 超音波距離センサ HC-SR04(汎用) | ×1 |
| 白色LED | ×1 |
| フォトレジスタ(LDR、光センサ) | ×1 |
| ブレッドボード(汎用) | ×1 |
| ジャンパワイヤ(汎用) | ×1 |
プロジェクト概要
スマートフォンには様々なセンサが内蔵されていますが、外部センサを追加したい場合、Arduinoやマイコンを使う必要があります。タイトルの通り、スマートフォンとArduinoで「モーション検知カメラ」を作ることができます。
作り方
まず、イヤホンの左右オーディオ出力線を切断します。赤線(マイク)と黒線(グラウンド)が見えるはずです。これらにジャンパワイヤを接続します。
配線
以下のようにArduino回路を組みます:
- Arduinoピン2 → 白色LED
- Arduinoピン6 → 超音波センサのTrig
- Arduinoピン7 → 超音波センサのEcho
- 超音波センサのVCCに5Vを供給
イヤホン側:
- 赤線 → LDRの片足
- 黒線 → LDRのもう片足
重要: LDRは白色LEDに向けて配置し、黒いビニールテープなどでLEDとLDRを外光から遮光してください(オプトカプラの原理)。
Arduinoに電源を入れ、イヤホンジャックをスマートフォンに挿してカメラアプリを開きます。超音波センサの前に物体を置くと、スマホが自動で写真を撮影し始めます。最後に適当なケースに収めて完成です!
動作原理
イヤホンの音量ボタンは、カメラアプリ起動時にシャッターボタンとして機能します。このボタンはマイクとグラウンド間に固定抵抗で接続されています。LDRは光の有無で抵抗値が変化するため、LEDを点灯させるとLDRの抵抗が下がり、音量ボタンが押されたのと同じ電気的状態になり、シャッターが切られます。LEDとLDRの組み合わせは「オプトカプラ」とも呼ばれます。
スケッチ
#define pingTrig 6
#define pingEcho 7
int cameratrigger = 2;
int led = 3;
void setup() {
Serial.begin(9600);
pinMode(pingTrig, OUTPUT);
pinMode(pingEcho, INPUT);
delay(200);
pinMode(led, OUTPUT);
pinMode(cameratrigger, OUTPUT);
}
void loop() {
long duration, inches, cm;
digitalWrite(pingTrig, LOW);
delayMicroseconds(2);
digitalWrite(pingTrig, HIGH);
delayMicroseconds(10);
digitalWrite(pingTrig, LOW);
duration = pulseIn(pingEcho, HIGH);
cm = duration / 29 / 2;
Serial.print("-->");
Serial.println(cm);
if (cm < 30) {
digitalWrite(cameratrigger, HIGH);
digitalWrite(led, HIGH);
delay(200);
digitalWrite(cameratrigger, LOW);
digitalWrite(led, LOW);
delay(200);
}
}
回路図

製造プロセス
- Raspberry Pi GPIOマスター:PIRモーションセンサーをB+/Model 2でインターフェース
- HC-SR501 PIRモーションセンサーをRaspberry Piで接続・調整・プログラミングする方法
- Arduino MegaでPWM制御:プッシュボタン付きLEDフェード制御チュートリアル
- アナログセンサー搭載・高精度圧力&気流測定デバイス
- Arduino NanoとMPU-6050で作るリアルタイムジャイロスコープゲーム
- ESP32-CAMで作る動体検知セキュリティカメラ:Discord通知対応
- DHT11温湿度センサーで作る温度アラート – LEDとピエゾブザーで視覚/聴覚通知
- K30 CO2センサで室内空気質をリアルタイム監視する
- Unopad: Ableton Live連携シームレスなArduino MIDIコントローラー
- 川の健康を見守る:Arduinoベース水質監視システム「MyRiver」
- Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門