2020年11月05日

「ドローンプログラミング学習」アプリ Ver.3.0をリリースしました!

「ドローンプログラミング学習」アプリに新しい機能を追加した

Ver.3.0をリリースしました。

app_icon.png

このアプリは教育関係者の方々のご利用を目的として作りました。

実際にご利用されている方々も教育機関の方々です。

それらご利用者の中から

「for文やwhile文を学習できる機能の追加予定はないのか?」

とのご質問がありました。

当初は、「予定はありません」と回答しておりました。


実際、for文やwhile文に関して

ドローンを使ってどのように学習してもらえばよいのか、

どのようなアプリを開発すればよいのか、

全く想像ができなかったため、

予定はないと回答しました。


小学校でドローンを使ったプログラミング学習を行う場合、

単にドローンを飛ばして喜ぶだけでは学習になりません。

if文に関しては、ver2.0で何とか実装しましたが、

for文とwhile文に関しては、

なかなか良いアイデアが思いつきませんでした。

ただ、何らかの方法で実現したいとは思っていました。


そのようなときに新しいご利用者登録があり、

その方からこのアプリに関してとても高い評価を頂き、

是非、子供たちのために使いたいという熱い思いを頂きました。

その方から上記のような質問をされました。

当初「予定はない」と冷たく突っぱねたような感じになったことを

私としても大いに後悔した次第です。

そこで、一念発起し、今回、

for文とwhile文の機能も何とか追加した次第です。


長くなりましたね。。。すみません。

for文とwhile文の処理内容は以下のような感じです。

【while文設定画面】
Simulator Screen Shot - iPad Pro (12.9-inch) (4th generation) - 2020-10-31 at 10.19.07.png

while文は、ある条件を満たす間は

{}内の処理をループして継続するというものです。

顔検出機能を使って顔が検出できたかどうかを

isDetectedというフラグを使って判定します。

例えば、初期値としてfalseを設定し、

while文の条件として「isDetectedがfalseの場合」とします。

顔が検出されるまでドローンは少しずつ回転します。

時計回転か反時計回転かを選択できるようにしています。

ドローンは回転しながらカメラで撮影していますので、

その間に人の顔を検出するとisDetectedをtrueにします。

そうするとwhile文の条件に合いませんので、

while文のループ処理から抜け出すという想定です。


条件の設定次第でループを抜け出せない場合や

そもそもループ処理をしない場合がありますので、

そのような設定をしたときはアラートを表示して

正しい設定にやり直させるようにしています。


正しい設定で実行した場合でも人の顔を検出できなければ

ループ処理を永遠に行い続けますので、

その場合は「顔検出(while文)」ボタンをタップすると

処理を中止して次の処理へ進むようにしています。


【for文設定画面】
Simulator Screen Shot - iPad Pro (12.9-inch) (4th generation) - 2020-10-31 at 10.19.14.png

for文もwhile文に似た処理になりますが、

ある条件を満たす間は

{}内の処理を継続するというものです。

while文のループ処理と違う点は

永遠のループ処理ではなく有限の処理であることです。


良く使われるのがカウンターを使って

あるカウント数になるまで処理を行うというものです。


例えば、while文と似たような処理を行わせたい場合は、

counterの初期値を"0"として"10"になるまで顔検出をおこなう

と言うような処理です。

実際のfor文処理では1秒間に何回も繰り返し処理を実行しますので

10回程度ですと1秒かからず終了します。

このfor文処理では1秒間隔で処理を繰り返すようにしていますので、

カウンターを10までとすると10秒で実行することになります。


for文の場合も設定によっては永遠に処理を続ける場合がありますが

どのような設定があるのか数が多すぎで特定できませんので、

自由に設定して実行できるようにしています。


設定によってはfor文を全く実行しない場合もありますし、

for文から永遠に抜け出せない場合もあります。

それはそれで「なんで?」と悩んでもらうことも含めて

プログラミングの勉強と理解していただければと思います。


上記2つの機能追加が主な変更内容ですが、

それ以外にも以下の修正を行いました。

・プログラム実行中にプログラムを中止する機能を追加しました。

・プログラミングリストの各コマンドの後に1-2秒程度のホバリング(静止)コマンドを入れることを推奨していましたが、これを自動的に行うようにしました。これにより、各コマンドの後に1-2秒程度のホバリング(静止)コマンドを入れることは不要になりました。

・軽微な不具合を修正しました。



基本的には教育関係者の方々にお使いいただきたいですが、

個人の方でもお使いいただけます。

現時点では無料でご提供しておりますので、

ご興味のある方はご連絡ください。

posted by Import-EV at 11:06| Comment(0) | iPhoneアプリ | このブログの読者になる | 更新情報をチェックする