工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino Nanoで水滴を高速撮影 – DIYハイスピードフォトグラフィ

概要

水滴が水面に衝突する瞬間の「冠(クラウン)」や「柱」といった微細な現象を、Arduino Nanoでタイミング制御して撮影する装置を自作します。カメラのバルブ撮影(長秒露光)中に、レーザー光線を遮断した水滴をトリガーとしてストロボを発光させ、瞬間を凍結させる仕組みです。市販の高速撮影キットを買わず、手持ちのカメラ・ストロボ・Arduinoで実現できます。

必要な機材・パーツ

項目詳細
カメラマニュアル露出・リモートシャッター対応(例:Sony DSC-HX300)
ストロボPC端子またはシンクロコード対応(例:Godox SY8000)
Arduino Nano R31個
レーザーモジュール KY-0081個赤色レーザー、5V駆動
LM393 光センサーモジュール1個レーザー受光側、感度可変VR内蔵
汎用NPNトランジスタ(2N2222等)3個カメラAF・シャッター・ストロボ駆動用
可変抵抗 10kΩ1個ストロボ発光遅延(1〜500ms)調整用
タクトスイッチ(C&K PTS645等)1個撮影シーケンス開始トリガー
リモートシャッターケーブル1本カメラ側コネクタに合わせて改造
PCシンクロコード1本ストロボ側、先端をArduino接続用に加工
点滴セット(注射器・チューブ・針)1式水滴生成用、高さ調整可能なスタンド推奨

仕組みと回路

光学トリガー

レーザーモジュールとLM393モジュールを向かい合わせに配置し、水滴がレーザー光を遮断するとセンサー出力が変化(LOW→HIGH)するのを検知。モジュール上の半固定抵抗でレーザー出力に合わせた感度調整を行います。

カメラ・ストロボ制御

全てトランジスタのコレクタ・エミッタ間でショートさせる「ドライ接点」駆動のため、カメラ/ストロボ側の電圧に依存せず安全です。高電圧ストロボ対策としてフォトカプラ(PC817等)を入れるとより安心。

撮影シーケンス

  1. 暗室でカメラをバルブモード(例:f/16、ISO100、数秒露光)に設定
  2. タクトスイッチを押す → AF ON → シャッター開放(バルブ開始)
  3. 水滴が落ち、レーザー遮断検知
  4. 設定遅延時間(1〜500ms)後、ストロボ発光
  5. 露光終了、次の撮影は再度スイッチを押すまで待機

コードのポイント


// デバッグモード(カメラ/ストロボなしでLED点滅で確認)
// #define DBG_MODE

const byte BUTTON_PIN = 2;    // タクトスイッチ
const byte FOCUS_PIN  = 3;    // AFトリガー
const byte SHUTTER_PIN = 4;   // シャッタートリガー
const byte FLASH_PIN  = 5;    // ストロボトリガー
const byte SENSOR_PIN = 6;    // 光センサー入力
const byte RESISTOR_PIN = A5; // 遅延可変抵抗

const unsigned int FOCUS_DELAY   = 100; // AF待ち ms
const unsigned int SHUTTER_DELAY = 100; // シャッター開放保持 ms
const unsigned int FLASH_DELAY   = 10;  // ストロボパルス幅 ms
const unsigned int FIRE_DELAY_MIN = 1;  // 最小遅延 ms
const unsigned int FIRE_DELAY_MAX = 500; // 最大遅延 ms

void openShutter() {
  #ifndef DBG_MODE
    digitalWrite(FOCUS_PIN, HIGH); delay(FOCUS_DELAY);
    digitalWrite(SHUTTER_PIN, HIGH); delay(SHUTTER_DELAY);
    digitalWrite(SHUTTER_PIN, LOW); delay(FOCUS_DELAY);
    digitalWrite(FOCUS_PIN, LOW);
  #else
    digitalWrite(LED_BUILTIN, HIGH); // デバッグ用LED点灯
  #endif
}

void fireFlash() {
  #ifndef DBG_MODE
    digitalWrite(FLASH_PIN, HIGH); delay(FLASH_DELAY); digitalWrite(FLASH_PIN, LOW);
  #else
    digitalWrite(LED_BUILTIN, LOW); // デバッグ用LED消灯
  #endif
}

map(analogRead(RESISTOR_PIN), 0, 1023, FIRE_DELAY_MIN, FIRE_DELAY_MAX) で可変抵抗の値を1〜500msの遅延に変換。水滴検知後のこの遅延を変えることで、「衝突直前」「冠が広がった瞬間」「柱が立った瞬間」など狙ったフェーズを撮影できます。

調整・撮影のコツ

  • 暗室必須:環境光が入るとストロボ光以外も写り込むため、完全暗闇で作業
  • レーザー光軸合わせ:センサーモジュールのVRを回し、レーザーが当たっている状態で出力がLOW、遮断でHIGHになるギリギリに設定
  • 水滴サイズ・落下高さ:点滴セットの高さと流量で水滴径・落下速度が変わるため、遅延時間のスイートスポットを探す
  • ストロボ光量・距離:ガイドナンバーと絞りで適正露出を計算、必要ならNDフィルターやストロボ出力調整
  • ピント合わせ:予想衝突点にペン先等を置き、AFロック後MFに切替、またはマニュアルフォーカスで固定

撮影例

添付画像(Fig.10〜12)のように、冠が綺麗に開いた瞬間、二重冠、柱状のリバウンドなど、遅延時間を変えるだけで多彩な表情が撮れます。

参考ファイル

  • 完全なスケッチ:添付コード欄(Arduino)
  • 回路図:添付画像2枚(ブレッドボード図・回路図)

製造プロセス

  1. スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
  2. IoTとAIで水質監視し水生生物を守るシステム
  3. JX Wave Generator – Arduino互換DDS発振器(OLEDディスプレイ搭載)
  4. ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
  5. Arduino Cloud連携でどこからでも家の温度を監視
  6. Arduino MegaとNEO-6M GPSモジュールの接続:ステップバイステップガイド
  7. u-blox LEA-6H 02 GPSモジュール: Arduino & Python 統合ガイド
  8. MAX30100脈波センサーをArduinoで活用:ステップバイステップガイド
  9. NextionディスプレイでFridgeyeアプリを構築:ステップバイステップガイド
  10. YL-39/YL-69土壌湿度センサーをArduino UNOに接続するステップバイステップガイド
  11. Arduino UNOとEthernetシールドで太陽放射を測定する自作ピラノメーター