スポンサーリンク

スポンサーリンク

赤外線(IR)センサーの反応をCoDroneの動作に反映させる。

▼この記事をSNSでシェアする▼

前回の記事の操作では、コントローラとドローンが接続された途端、離陸して二秒後着陸する仕組みになってました。

ただ、ドローンが接続されてすぐに飛んでしまうので、扱いに不便なところがあります。ということで、今回は離着陸のトリガーに赤外線センサを用いる方法を紹介します!

1. CoDroneのIRセンサーとは?

コントローラの写真の部分の5つのPINを指します。

11、12、14、17、18番の5つがあり、プログラミング可能なデジタル・アナログの赤外線センサがあり、放射した赤外線が反射してくるかを検知する仕組みになっています。

2.赤外線センサーの関数について

2.1 赤外線センサの反応をドローンに反映させるため。

コントローラの赤外線センサの反応をドローンのセンサに反映させるためには、赤外線センサの反応を情報として取得しなければなりません。

ここでは赤外線センサが反応しているかの情報を取得するコマンドを紹介します。

digitalRead(ピン番号)コマンド

形式: バイト名=digitalRead(ピン番号);

例: byte bt11 = digitalRead(11);

説明:バイト型の変数bt11にセンサが読み込まれるか(0か1の値)の情報を格納します。

ピン番号のセンサーが指などで覆われている場合:digitalRead(ピン番号)は1(true)を返す。

ピン番号のセンサーが指などで覆われていない場合:digitalRead(ピン番号)は0(false)を返す。

2.2 IF文の使い方

1、赤外線センサの読み取りではセンサが覆われているか否かで格納する情報を変える方法を紹介しました。

IF文

形式:if(条件){
処理
}

例:

説明:if(条件){

処理

}

は条件がtrueであれば、処理の項目を実行する仕組みになっています。

つまりここで実装されている操作は。

  • 11番のセンサが覆われているときに、離陸する。
  • 18番のセンサが覆われているときに、着陸する。
  • 上の二つの動作が繰り返し実行される

→void loop(){処理}の中に書かれている操作のため常にセンサの情報がコントローラに贈られるようになっています。

プログラムをコントローラに書き込み、コントローラとドローンを接続し、飛ばす手順はここを参考にしてください。

2.3 センサの性能

今回基礎的なセンサの機能を利用して、2.2でセンサ11番と18番の反応を読み込み、離着陸の操作を実装しました。

実際に操作してみて感じたセンサの機能

センサを指で覆うと、ボードの点灯が緑色(コントローラとドローンの接続を確立した状態)から紫色になる。

 → 

  • センサの反応はコントローラに即時に反応される。
  • センサの反応は誤動作もめったになくて良い
  • ただ、コントローラの反応とドローンがまれに動作しないのが欠点

3. おわりに

今回は赤外線センサーの反応を離着陸に反映しました。

「離陸後の前後左右の移動を自在に実装してみたい」

「コントローラをコントローラらしく使うプログラムを書きたい」

という思いが出てくるので、今後はそれを実装していきたいと思います。

地面から離陸して、着陸するだけのドローンとかあまり面白くありませんからね笑

CoDrone以外にもParrotもおすすめできるプログラミングドローンです!


スポンサーリンク

▼この記事をSNSでシェアする▼

フォローする

メニュー・主な記事カテゴリ

おすすめ特集!




「ゆとり鳥日記」について
ITを中心に関心の赴くままに好きなように書いていく雑記ブログ!管理人が二人います。
◆フクロウ(19卒就活生)
◆トンビ(社会人1年目SE)

詳しいプロフィール
お仕事の依頼・ご要望

ゆとり鳥日記をBTCで応援する