【広告企画】
Arduino×Pythonで始める!植物観察ドローンの製作
~SensorShield-EVK-003搭載…RGB&照度センサの値から植物の生育状態をモニタ~

◆ドローンにセンサ評価キットを搭載してデータ取得してみよう

ローム社製のセンサ評価キット(SensorShield-EVK-003)は加速度センサ,地磁気センサに加え,照度センサやカラーセンサなど,さまざまなセンサがセットになっています.今回はドローンにセンサを搭載して樹木の近くを飛行させて,どのようなデータを取得できるのか試してみます.照度センサやカラーセンサを使って植物の葉の色からおよその状態を測ることができることも確認してみます.

 

 アンケートのお答えいただいた方から抽選で4名様に,本記事で紹介している 「SensorShield-EVK-003」をプレゼントいたします.アンケートはこちらから

 


 

1.ドローンが取得するセンサデータ

 

今回製作したドローンに搭載したセンサは,次に示す6つのセンサを使用しています.

センサデータを収集し,植物の葉の色から状態を定量化してみます.

 

  • ・ カラーセンサ:RGBカラーの成分を知る
  • ・ 照度センサ :明るさを知る
  • ・ 加速度センサ:動作状態を知る
  • ・ 地磁気センサ:動いた向き(方角)を知る
  • ・ 温度センサ :温度を知る
  • ・ 気圧センサ :高さ方向の移動を知る

 

 

2.ロームセンサ評価キットの概要・特徴

 

今回の製作で使用するロームセンサ評価キット(SensorShield-EVK-003)には,Arduino用のセンサシールドのほか,加速度,気圧,地磁気,温度,脈波,照度・近接,カラー,ホールセンサまでセットになっていて,用途に合わせ組み合わせて使うことができます(図1).

 

図1 各センサデバイス

図1 各センサデバイス

 

これだけそろっていて参考価格:17,300円(税抜)は,お得です.あとはArduino Unoを用意すれば使うことができます.サンプルプログラムや使い方の動画もそろっているのですぐに試せます.
ローム社のWebサイト:https://www.rohm.co.jp/sensor-shield-support

 

 

3.システムの仕様

 

3.1 システム概要

ロームセンサ評価キットのセンサシールドとRaspberry Piをドローンに搭載し,飛行しながらセンサデータを取得します(図2図3).取得した各種センサデータは,Raspberry Piに記録しておき,飛行後にパソコンにデータをコピーしてグラフ表示します.

 

図2 システム図

図2 システム図

 

 

図3 データ取得に使用するセンサ

図3 データ取得に使用するセンサ

 

 

3.2 ドローン周りの仕様

センサシールドをドローンに搭載した様子を図4に示します.ドローンの上部にRaspberry Piをスペーサで固定しその上にArduino Uno,センサシールドを取り付けました.

 

ドローンは,部品を買い揃えてオリジナルで製作しました.6インチプロペラを搭載した比較的小さめのQuadCopterです.仕様は,軸間150mm×190mm,プロペラカバーを含む全体のサイズは300mm(W)×350mm(D)×80mm(H)です.3セルのLipoバッテリーからRaspberryPi,Arduinoの電源を共通にしています.

 

今回はFutabaのプロポを使いマニュアルで飛行させてセンサの値を取得しました.照度,カラーセンサが確実に反応するようにできるだけ一定の高度を保ちながら日陰と日なたをゆっくり飛行させています.

 

図4 センサを搭載した様子

図4 センサを搭載した様子

 

 

4.センサログのグラフ化

 

今回あらたに使用するカラーセンサと照度センサの動作を試してみます.Raspberry PiにてPythonを使い,Arduino Uno上のセンサから値を読み取りグラフ化します.

 

図6は,カラー(RGB)を円グラフで表示し,照度(赤),温度(青),気圧(緑),加速度(紫),地磁気(黒)のセンサ値をグラフ化したものです.植物の葉に近づけてみるとカラーセンサの円グラフがグリーンに強く反応しており,葉の色付き具合をカラーセンサで検出できていることがわかります(図5図6).

 

図5 葉に近づけて測定する様子

図5 葉に近づけて測定する様子

 

図6 センサ値をグラフ化した様子

図6 センサ値をグラフ化した様子

 

次に,図7はセンサシールドを搭載したドローンをひなたから木陰に飛行させている様子になります.

図8は,そのときのセンサ出力をグラフ化したものです.照度(赤)は木陰に入ったときに下がっているところが顕著に表れています.加速度(紫)は上下方向の加速度を表示していてドローンがたまに揺れたときに反応しているように見えます.ほとんど一定の高度を飛行したためか気圧(緑)や温度(青)はほとんど変化していないようです.樹木に向かって飛行して木陰に入り向きを変えたので地磁気(黒)は一度変化してそのまま木陰を抜けた動作の通りにセンサ値を取得できているようです.カラーセンサの値はわかりやすく円グラフで表示しています.Arduinoから受信した値を都度更新して表示しています.

 

図7 飛行中の様子

図7 飛行中の様子

 

図8 センサ値をグラフ化した様子

図8 センサ値をグラフ化した様子

 

 

5.プログラム説明

 

Arduinoのスケッチにてロームのセンサデバイスからそれぞれ読みだした値を,カンマ区切りのCSVデータに編集してシリアル通信でRaspberry Piに保存し,パソコンでRaspberry Piの共有フォルダデータをコピーして取り込みます.パソコン側ではPythonのコードにより受信したCSVデータに対して,各センサに該当する値を分離してグラフ表示します.CSVデータのフォーマットは次の値を示しています.

 

“照度値1, 照度値2, 温度, 地磁気x, 地磁気y, 地磁気z, 気圧, 加速度x, 加速度y, 加速度z, カラー赤, カラー緑, カラー青”

 

図9 プログラム構成図

図9 プログラム構成図

 

 

(1) Arduino Unoのスケッチ(概略)

 

(2) パソコン側のグラフ表示プログラム(Python) (概略)

プログラム全コードは下記から取得できます.
https://github.com/nakajimakou1/rohm-droneIoT

 

 

6.センサ搭載ドローンにてデータを取得した感想

 

今回はドローンにロームセンサ評価キットを搭載して使ってみました.Arduino Unoに装着するセンサシールド上に必要なセンサデバイスを選択して組合せて使えるので自由度が高く,サンプルのスケッチもダウンロードしてすぐに試せるので迷うことはありませんでした.使い方のビデオによる解説もとても役に立ちました.気圧センサなどは地域や天気によって日々変化するため見やすい位置にグラフ表示されるようにパソコン側のプログラムでセンサの値をオフセットして表示しました.今後機会があれば,ドローンの下側にセンサを取り付けて広い範囲を飛行させてセンサの値を記録してみようと思います.

 

参考資料:
ロームセンサ評価キット(SensorShield-EVK-003)
https://www.rohm.co.jp/sensor-shield-support

 

 

7.補足情報

 

●「SensorShield-EVK-003」の購入方法

センサ評価基板[参考価格:17,300円(税抜)]は,コアスタッフやチップワンストップ,アールエスコンポーネンツで購入できます.また,センサ子基板は単体で購入も可能です.詳しくは,ローム社のWebサイト( https://www.rohm.co.jp/sensor-shield-support )をご覧ください.

●「SensorShield-EVK-003」の使い方

ローム社のWebサイトから入手できる「SensorShield-EVK-003 使い方資料」( http://rohmfs.rohm.com/jp/products/databook/applinote/ic/sensor/sensorshield-evk-003_ug-j.pdf )を参考にしてください.この資料で,センサボードの接続方法や各センサのサンプル・コードの入手方法が詳細に説明されています.

 


◆筆者紹介:中島 幸一(なかじま・こういち)◆
株式会社 VSN 所属 ( https://www.modis-vsn.jp/ ).組込エンジニアとして自動車メーカにて先進安全装置の開発に従事.日本ロボット学会,農業食糧工学会,計測自動制御学会(正会員)に所属し,SLAM ROS を応用した室内監視ドローンの研究・開発中.ドローン/IoT関連学会での講演や大学との共同研究など活躍の場を広げる.月刊インターフェース特集記事や各種論文を執筆.