マイクロビットでの複数プログラム統合化
KPLでは、ビオトープを、IoT技術で、なんとかスマートに管理出来ないか、検討中である。
さっそく「スマート農業キット」を購入いただけた。
子どもたちも、楽しそうで、積極的に参加している。うれしいかぎり。
本キットでの「マイクロビット」プログラミングするにあたり、みんなで分担して進めたい。
問題は、ばらばらに組まれたプログラムを、うまくまとめるには、どうするか?
で、「関数」を使うのがよいかな?と考えた。
ただ、子どもたちは、システム設計の経験がないので、不安。
そこで、円滑に進められるか、試しにトライしてみることにした。
いろいろと思案してみた結果、以下の手順が良いように考える。
例として、本キットでのサンプルプログラムから、以下の四つを統合してみることとした。
Case 01: Auto
Irrigation in Farmlands
Case 02:
Temp.&Humidity Monitoring in the Greenhouse
Case 05: Water
Temperature Detection
Case 10: Water Level
Monitoring in Fish Ponds
ここで、まず問題は、各端子へのセンサー類の接続が、バラバラである。
01では、土壌水分センサーを P1 に、水位センサーを P2 に、サーボを P9 に接続
02では、DHT11 センサーを P1 に接続し、OLED ディスプレイを IoT:bit の IIC に接続
05では、DS18B20 を P1 に接続し、OLED を
IoT:bit の IIC に接続
10では、水位センサーを P1 に、レインボー LED を P2 に、OLED を IoT:bit の IIC に接続
そこで、次ように、端子の接続を、統一させることとした。
※子どもたちがプログラムを作るとき、事前に、センサー類の端子接続を決めておくべきである。
土壌水分センサーを P1 に、水位センサーを P2 に、DHT11
を P3 に、レインボー LED を P4 に、サーボを P9 に、
DS18B20 センサーを P13 に、OLED ディスプレイを IoT:bit の IIC に接続
まずは、各プログラムにおいて、端子を変更する。次に、「ずっと」のなかのプログラムを、関数化する。
しかし、ブロック画面のままでは、一本化は無理。コピペできないのだ。
そこで、Python画面にしてみたら、テキストとしてコピペができる。Nice!
各プログラムのPython画面のテキスト部すべてをコピーして、とりあえずTXTへコピーし保存する。
[Case
10]のプログラムを複製して、Python画面にする。保存しておいたTXTから、必要な部分を、コピペする。
これなら、わざわざ、関数にしなくても、いけそうかな~と。
そして、おかしなところが無いか、チェックする。Python画面では分かりにくいので、ブロック画面にする。
やっぱり、おかしなところあり。
・
「最初だけ」のブロックに重複があったので、削除
・
変数Tempが、[Case 02]と[Case
05]で重複しているので、水温の方をTempWTに追加変更
※子どもたちがプログラムを作るとき、事前に、変数名を決めておくべきである。
以上を修正。なんとか纏まったかな~と。
尚、おまけで、水位に異常、水温が高温となった場合、警告音を鳴らすように追加してみた。
これで、とりあえず完成のはずだが、マイクロビットへ書き込んで、実際にセンサー類を接続し動作確認してみないと、なんとも。
手元にはキットがないので、できればKPLにて動作確認してみたい。
以上ですが。ご参考となれば、幸いです。
micro:bit スマート農業キット
https://www.elecfreaks.com/learn-en/index.html
https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/index.html
事例13:スマートファーム
· 自動灌漑: 土壌水分レベルに応じてサーボの動きを制御します。
· 温度と湿度の検出:農場内の温度と湿度の値を検出して表示します。
· 魚池検出:水位を監視し、水温を表示します。
· 農地保護装置:農地への人の侵入を防ぎ、人が近づくと警告灯を点滅させるように設定されています。
プログラム
link: https://makecode.microbit.org/_eYRf5hcaDEeR

コメント
コメントを投稿