Arduino Mega搭載UV除菌ロボット:遠隔操作可能な殺菌システム
コンポーネントと用品
![]() |
Arduino Mega 2560 | ×1 |
| FPVカメラ | ×1 | |
| FPVビデオトランスミッター | ×1 | |
| FPVビデオレシーバー | ×1 | |
| TFTカラーモニター | ×1 | |
| 4CH RC無線コントローラー | ×1 | |
| 30W DCギアモーター | ×2 | |
| VNH5019 デュアルモータードライバー | ×1 |
必要な工具と機械
![]() |
ドリル、ドライバー |
このプロジェクトについて
ロボットの紹介
紫外線殺菌ロボット(UVロボット)は、UVライトシステムを搭載した遠隔操作ロボットです。システムは移動ロボット車両と地上局コントローラー(GCS)で構成されます。オペレーターはGCSのジョイスティックでロボットを操作しながら、ロボットのカメラ映像を観察できます。
このロボットは、紫外線によって微生物のDNA構造を破壊し、環境中の病気、ウイルス、バクテリア、その他の有害な有機微生物を殺菌・不活性化できます。現在、いくつかの国で病院、公共交通機関、オフィススペース、その他の公共の場の消毒にこれらのロボットが成功裏にテストされています。私たちはこのUVロボットをコスト効率よく実装し、消毒プロセスを公共の場に拡大することを目指しました。
なぜ消毒液ではないのか?

公共の場を消毒する最も一般的な方法は、70%アルコールベースの消毒液を噴霧することです。最近、世界保健機関(WHO)は、公共の場で定期的に消毒液を使用することは本当に有害だと発表しました。強い臭いによる呼吸器系の問題、皮膚刺激、環境のアンバランスを引き起こす可能性があります。さらに、この方法は日常的に多大な材料費と人件費がかかります。
UVロボットの利点
- 一度きりのコスト(アルコールや塩素液の補充不要)
- 表面、医療用スーツ、医療用マスク、その他の医療機器の消毒に使用可能
- 液体ベースの消毒方法と比べて消毒時間を60%短縮(布製品がある環境では乾燥時間がかなり長いため)
- 電子機器がある環境でも使用可能
- 1人のオペレーターで広い範囲をカバー可能(液体スプレーのように複数人不要)
- 地元大学の微生物学研究室との協力で、このロボットの99.997%の除菌率を実証済み(最後のセクションで説明)
紫外線殺菌照射(UVGI)

紫外線殺菌照射(UVGI)は、短波長紫外線(紫外線CまたはUVC)を用いて、核酸を破壊しDNAを撹乱することで微生物を殺菌・不活性化する消毒法です。UVCはRNAとDNAの塩基に吸収され、隣接する2つのピリミジンを共有結合したジマーへ光化学融合させ、非対合塩基に変えます。
UVGIは食品、空気、水の浄化など様々な用途で使われています。感染症の拡散防止にも利用できます。低圧水銀(Hg)放電ランプとLEDが一般的にUVGI用途で使われ、短波長紫外線C(100〜280ナノメートル)を放出し、主に254nmが主峰です。
微生物の種類によって不活性化に必要なUV光線量が異なります。COVID-19の状況を考慮し、同じウイルスをUV光で不活性化する場合を考えます。多くの研究論文や記事では、滅菌プロセスに必要なUV光を「ジュール毎平方メートル」や「ジュール毎平方センチメートル」で示しています。しかし、UVライトのパラメータと仕様を考えると、メーカーは1メートルの距離での「マイクロワット(μW)毎平方センチメートル」でUV光強度を示しています。
単位「ワット(W)」は1秒間に放出されるエネルギーを表します。マイクロワット毎平方センチメートルは、1平方センチメートルの面積を1秒間に通過するエネルギーを意味します。

式1は線量と強度の関係を示し、同じUV光源への曝露時間を変えることで異なる線量が得られることを示しています。UV強度と距離の関係は式2で示され、光源からの距離とともにUV強度が低下することを示しています。Wikipediaによると、8mJの線量でほとんどのウイルスを不活性化できます。
ロボットの機能理解
全体システムは、業界標準に準拠するための機能と安全機能を追加したため少し複雑です。実装手順を説明する前に、システムの仕組みを理解しておくと良いでしょう。
ロボットには3つの主要コンポーネントがあります。
1. グラウンドビークル(地上車両)

この部分は、DCギアモーターで駆動される2つの車輪で移動します(ディファレンシャルドライブロボット)。前後にキャスターホイールがありバランスを保っています。電子制御システムとバッテリー(12V 35Ah鉛酸バッテリー)をグラウンドビークル内に搭載しています。

Arduino Megaはメインバッテリーから電圧レギュレータモジュール経由で12Vから5Vに降圧して給電されます。4チャンネルRC無線レシーバー(PWM出力)がMegaボードに接続されています。モーターはArduinoボードに接続されたデュアルチャンネルHブリッジモータードライバーで駆動します。インバーターがUVライトとバッテリーの間に接続され、Arduinoボードに接続されたリレースイッチで制御されます。
2. UVライトタワー
蛍光UVランプを使用し、各ランプには専用の電子バラストユニットが必要です。ライトタワーには6本のUVランプがアルミニウムシリンダーの周りに配置されています。このアルミニウムシリンダーはアルミニウムシートを巻いて作られ、UV光の反射板として機能します。

全ての電子バラストはアルミニウムシリンダー内に収納されています。タワーの上部にはFPVカメラとFPVトランスミッターがあり、映像をGCSへ送信します。UVタワーはグラウンドビークルの上部に固定されています。
3. グラウンドステーションコントローラー(GCS)

これはロボットのリモートコントローラーです。画面にはロボットから受信したカメラ映像が表示されます。ジョイスティックでロボットを移動させ、UVスイッチでUVライトのオン/オフを制御します。アーミングスイッチは安全スイッチとして機能し、オンにすると全機能が停止します。
UVライトの電源投入

ロボットには以下の仕様のUVランプ6本を選定しました:
- 消費電力 - 55W
- 波長 - 254nm
- 長さ - 890mm
- 管径 - 15mm
- タイプ - 片側4ピン
波長以外は厳密な仕様ではありません。電子バラストユニットはUVランプの4ピンに接続され、バラストに電力が供給されるとUVランプが点灯します。
***UVライトは人体の皮膚と目に有害です。長時間、目や皮膚をさらさないでください。透明ガラス越しに観察するのが最も安全です。UVライトは透明ガラスを透過できません。***
FPVビデオシステム

FPVビデオシステムは主にドローンで鳥瞰視点を得るために使われます。私たちの場合、FPVシステムを使うことでプログラミングや部品のはんだ付けなしでロボットからの映像を簡単に取得できます。ロボットにはカメラとビデオトランスミッターがあり、電源を接続するだけで5.8GHzで映像送信を開始します。GCSには内蔵5.8GHzビデオレシーバー付きLCD画面があり、電源を入れるとカメラ映像が表示されます。
グラウンドビークルの構築
メイン構造は0.75インチのスチールボックスバーで作られています。以下は私たちのロボットで使った設計ですが、これに限定されません。要件に合わせて設計を変更してください。

フレームには底部に2つのモーターと2つのキャスターホイールを取り付けるスペースと機構が必要です。構造内部には鉛酸バッテリーを固定する機構が必要です。私たちのロボットではクラッディングボードでフレームを覆いました。
2つのモーターのワイヤーはモータードライバーの出力ピンに接続します。この手順はインターネットで簡単に見つかるため、詳細な説明は省略します。
電子制御システムの回路図は最後に添付しています。RCレシーバーのチャンネル1〜4のPWM信号ピンはArduinoボードのピン18〜21に接続されています。各チャンネルはコードで以下のように設定されています(お好みで変更可能):
- Ch 1 - UVスイッチ
- Ch 2 - ロボットアーミングスイッチ
- Ch 3 - 前進/後退コマンド
- Ch 4 - 左右旋回コマンド
これはGCS構築時にも変更可能です。

モータードライバーのピンは回路図の通りArduinoピン3〜11に接続されています。
12VをAC 230Vに変換してUVライトに給電するため、インバーター回路を使用します。内蔵充電器付きの市販インバーターユニットを購入しました。これにより、既存の電源コンセントで鉛酸バッテリーを充電できるため、電子システムの複雑さを回避できます。

今回は効率約70%の修正正弦波インバーターを使用。全電子バラストを70%効率で駆動するには470W必要です。安全マージンを考慮し、1kWのインバーターを購入しました。
バッテリー端子を12V入力に、電子バラストをAC出力ポートに接続。オン/オフスイッチを取り外し、スイッチにある3本のワイヤー(コモン、グラウンド、パワーオン)をリレースイッチに以下のように接続してArduinoボードからUVライトを制御します:
- コモンワイヤー → コモン
- グラウンドワイヤー → NC
- パワーオンワイヤー → NO

産業標準に準拠するため、システム電源スイッチ、UV電源スイッチ、非常停止スイッチを搭載しています。
UVライトタワーの構築
タワーの中心部分にはアルミニウムシートを使用。シートを巻いて直径15cmのシリンダーを作ります。直径30cmの円形クラッディングボードをシリンダーの上下に配置し、これらをUVランプホルダーとして使用。両クラッディングボードに19mmの穴を開けUVランプを取り付けます。電子バラストはアルミニウムシリンダー内に両面テープで固定します。

FPVカメラシステムをタワー上部に取り付け、2本のワイヤーをシリンダー内を通して下部へ引き出します。
グラウンドコントロールステーションの構築

GCSに必要なコンポーネント:
- 2.4GHz 4Ch RCトランスミッター
- FPVスクリーン
- トグルスイッチ ×2
- 電源スイッチ ×1
- 18650電池セル
- 18650用3セルバッテリーマネジメントシステム(BMS)モジュール
- 12V、5A スイッチング電源(SMPS)
RCトランスミッターには2つのジョイスティックといくつかのスイッチがあります。ここでは1つのジョイスティック、回路、インジケーターLEDのみに注目します。トランスミッターのケースを外し、ジョイスティックが回路でどう検知されているか観察します。各ジョイスティックには2つのポテンショメーターがあり、ジョイスティックの位置に応じて抵抗値が変化し、回路が位置を読み取ります。

1つのジョイスティックとその2つのポテンショメーターを取り外し、それぞれのワイヤー端を2つのトグルスイッチにはんだ付けします。これで1つのジョイスティックと2つのトグルスイッチで全4チャンネルを制御できます。1つのスイッチはロボットアーミングスイッチ、もう1つはUVライト制御スイッチとして機能します。インジケーターLEDはバッテリー残量が少なくなると赤く変わるため、GCSのバッテリーモニターとして利用できます。
トランスミッターとFPVスクリーン用の電源を作ります。18650電池のセル電圧は3.7V、満充電で4.2V。3セルを直列接続して約12Vを得ます。今回は1000mAh容量のセルを使用。GCSの稼働時間を延ばすため、9個の電池(3セル直列を3セット並列)で3000mAh容量とし、BMSモジュールを接続して保護します。

P+とP-をトランスミッター電源入力とFPVスクリーン電源入力に接続。12V SMPSには出力電圧を限定範囲で調整するポテンショメーターが付いています。12.8Vに設定し、電圧出力をBMSのP+とP-に接続。これでSMPSをコンセントに差すとバッテリーパックが充電されます。
お好みでエンクロージャを設計してください。
コーディング
コードの最初のタスクはRCチャンネル入力の読み取りです。PWMレシーバーを使用しているため、割り込みを使ってPWM値を読み取ります。PWMライブラリをインクルードし、接続ピンを以下のように定義して割り込みを使用します:
PWM ch1(18); // ピン18を入力に設定
PWM ch2(19); // ピン19を入力に設定
PWM ch3(20); // ピン20を入力に設定
PWM ch4(21); // ピン21を入力に設定
起動シーケンスでは、バッテリー電圧とUVスイッチがオンになっていないかをチェック。どちらか検出されると、全て解決するまで起動手順はそこで待機します。
// バッテリー電圧チェック
battery_voltage_monitor();
while(batterylow == true){
battery_voltage_monitor();
low_battery_notification();
}
// UVスイッチがオフか確認
rc_read();
while(uv_pwm > switch_on_pwm){
rc_read();
uv_on_warning_at_startup(); // ブザー音
}
モーター駆動時はバッテリー電圧がその瞬間だけクリティカルに下がります。ロボット移動のたびに低電圧アラームが鳴らないよう、バッテリーモニタリングはロボットが停止している時のみ実行します。
if (robot_moving == false){
battery_voltage_monitor(); // ロボット停止時にのみバッテリー監視
}
モータードライバー制御、ブザー音生成、リレー制御など他の機能は通常通り動作します。これらに慣れていない場合は一般的なチュートリアルを参照してください。
操作手順
電源投入手順
GCSコントローラー
- メインスイッチをオンにする。
- ロボットアーミングスイッチとUVライトスイッチが両方ともオフ(下位置)であることを確認。
ロボット
- 電源スイッチをオンにする。
- 起動音を待つ。
- システムOK音を待つ。
ロボットの操作
- ロボットアーミングスイッチをオンにする。
- ジョイスティックを動かしてロボットを移動。
- UVスイッチをオンにしてUVライトを点灯。ロボットアーミングスイッチがオフの時はUVスイッチは機能しない。
バッテリーレベルインジケーター
- バッテリーインジケーターが少なくとも4バー点滅していることを確認してからロボットを操作。
- バッテリーが少なくなると、ブザーが鳴り、バッテリーインジケーターの最後の2バーが点滅。
充電手順
- ロボットの電源をオフにする。
- GCSの電源をオフにする。
- インバーターをコンセントに差し込む(通常インバーターには内蔵充電レベルインジケーターあり)。
一般的な考慮事項
1. 混雑した場所での使用
紫外線は人体の目と皮膚に有害です。短距離(3m未満)で60秒以上曝露すると目を傷つけ、皮膚刺激の原因になります。しかし、紫外線ビームは固体媒質を透過しません。透明ガラス越しにUVライトを見ても人体の目や体には影響ありません。
2. 敏感な材料とデバイス
軟質プラスチックは紫外線に非常に敏感です。おもちゃや食品包装に広く使われています。したがって、これらの場所(おもちゃ屋、スーパーなど)では本装置を使用できません。ただし、これらの場所の床を消毒するためにUVライトを使用することは可能です。
3. 病院での使用可能性
病院環境では、UVライトは高接触表面を非常に短時間で消毒するのに役立ちます。しかし、医療機器や薬品へのUVライトの効果は考慮が必要です。医療機器のプラスチックケースは製造工程で放射線処理を受けるため硬質プラスチック製です。また、病院で保管されている薬品へのUVライトの効果は実証されていません。ステンレス製医療機器とN95マスクは同じ装置で滅菌可能です。
4. 日陰部分への効果
紫外線は可視光線と同様に表面で反射します。したがって、直接UV光が当たらない場所でも反射UV光を受けます。しかし、厚く覆われた日陰部分には効果的なUV光が届きません。これらの場所は液体消毒法でも消毒できません。
5. その他の考慮事項
密閉環境で長時間UVライトを作動させるとオゾンが発生します。一般的な慣習として、UVライトで滅菌した密閉環境は20分間換気します。
コード
Arduino Mega用コード
https://github.com/tharindusuraj/Ultraviolet-Germicidal-Robot
回路図
uv-x_Q9R5T59Q32.fzz
製造プロセス
- Raspberry Pi で実現する画像認識ベースの障害物回避モバイルロボット
- Raspberry Pi Webカメラロボットの構築 – ステップバイステップ動画ストリーミングガイド
- gatoBot:Raspberry Pi Zero WでWeb操作・ライブ映像ストリーミングロボット
- Google Coral Edge TPU搭載リサイクル仕分けロボット
- ArduinoとHC-SR04で作るサーボ駆動障害物回避ロボット
- Arduinoで作る全自動植物水やりシステム - 湿度センサーとRTCで最適制御
- Arduino Nanoで奏でる星条旗 ─ LEDライトショー付き演奏デバイス
- Arduinoロボットアーム「LittleArm」をAndroidアプリでBluetooth制御
- WiDC: Wi-Fi FPVロボット – ライブ映像付きリモートコントロール
- ロボット搭載デジタルマイクロメータによるインプロセスプロファイリング:精密外径測定
- Yama Seiki GA-2000CR:ロボットアームとパレットシステム搭載のコンパクト旋削センター

