投稿

ラベル(micro:bit)が付いた投稿を表示しています

micro:bitを用いた簡単なチャットプログラム

イメージ
 Initial release: 25 Jan., 2024 中学校技術の学習内容「D 情報の技術」では,ネットワークを利用した双方向性のあるコンテンツのプログラミングを学習することになっています. ここでいうネットワークはインターネットには限定されませんので, 極端な話をすれば2台のコンピュータをシリアル接続で繋いでもいいわけですが,そのプログラミングをどうするかはまた悩むところです. micro:bitにはBluetoothのほかに独自の無線通信機能(micro:bit radio)があり,1対1から多数のmicro:bitが接続する無線通信網を構築してメッセージやデータのやり取りをすることができます.これを用いれば,「ネットワークを利用した双方向性のあるコンテンツのプログラミング」は簡単に実現できます. 次のような処理手順を考えてみましょう.このプログラムで用いる変数は,受信結果を代入する変数(文字列)とキーボードから入力した送信メッセージを代入する変数(文字列)の2種類です. 1. 初期設定(変数定義,無線設定) 2. 以下の(1)〜(4)を繰返し実行  (1) 受信内容を確認(受信結果を変数に代入)  (2) 受信内容があれば画面表示  (3) ボタンAが押されていたら,次のア,イを順次実行   ア キーボードからメッセージ入力   イ 入力されたメッセージを無線送信  (4) ボタンBが押されていたら繰返し処理から抜け出る 3.プログラム終了 これでメッセージを相互にやり取りできるのがイメージできるでしょうか? ボタンAを押すと送信モードになり,キーボードから入力した文字列が無線で送信されます.それ以外の場合はひたすら受信モードで,何かを受信したら画面に受信文字列が表示されます.ボタンBを押すとプログラムは終了します. これをアクティビティ図にすると のようになります.   micro:bitのPython では次のコードになります: # Author: Cosy MUTO @ Nagasaki Univ., CC BY-NC-SA 4.0 International from microbit import * import radio radio.on() radio.config(group = 1, length...

道路交通信号のプログラミング教材

イメージ
中学校技術の内容「D 情報の技術」で扱う計測・制御のプログラミング教材の一つとして,道路交通信号(押ボタン式+感知式)を2021年度に開発しました.附属中学校との共同研究です. 基板上にT字路交差点(写真の水平方向が交通量の多い幹線道,垂直方向が交通量の少ない市町村道と見立てています)を描画し,その交差点の道路交通信号(車道用,歩行者用)をLED実装しています. サンプル動画です: micro:bit V1及びV2のどちらでも動作します.プログラミング言語はPythonです.Makecode Blocklyでもプログラミングできると思います(未検証). 一度に全部の信号を考えるのは難しいと思いますので,(片方の)歩行者用→(片方の)車道用→(片方の)歩行者+車道→全体→押しボタン式→感知式と順を追って実習していくのが良いと思います. 超音波センサを取り付けるゲートは,トイレットペーパの芯と割箸で安直に作りました.トイレットペーパの芯は,立てた際に重心が低くなるようシリコンシーラントを下から1cm程度のところに2cm程度の厚みで充填しています.また最下部にハサミで切り込みを入れ,ここに輪ゴムを引っ掛けて上部で割箸を止めるようにしています. 問題点は, 使用した 超音波距離センサRCWL-1601 には I2C接続のバージョン もあるということです.調達する際に間違えないようにしなければいけません. 「Adafruit 4007(ADA-4007)」を調達 します.Digi-Key,Mouser,マルツ,共立等で扱っています. よく知られたHC-SR04は5V動作が標準なので本装置には適用できないのですが,秋月電子で扱っている コレ は3V動作を謳っているので利用できるかもしれません.うちでは保有しておらずテストできないので,どなたか人柱を募集します(笑) 回路図(PDF)は こちら .本機ではプリント基板を外注製造しましたが,micro:bit用ブレイクアウトボード(例えば秋月電子の これ )を用いれば,LEDと抵抗はソルダーレスブレッドボードに実装して使うこともできます.LEDはOptoSupplyの5mm及び3mmの赤・黄緑・黄色のLED(秋月電子で100本袋入で売っている安いもの)を使っています. Pythonのサンプルコード一式(zip)は こちら .ライセン...

圃場環境(土壌水分・気圧・気温・湿度)を遠隔計測するシステム

イメージ
  中学校技術の学習指導要領では「第3学年で取り上げる内容では,これまでの学習を踏まえた統合的な問題について扱うこと。」とされています. 4つの内容を統合した例として,下図( PDF版 )に示す圃場環境を遠隔計測するIoTシステムを考えることができます:「A 材料と加工の技術」 は屋外に設置する装置類の防水や通気を考慮した構造と材料の選定が,「B 生物育成の技術」はシステムのターゲットそのもの,「C エネルギー変換の技術」では屋外に設置するセンサノードの電源や電気回路が,「D 情報の技術」はセンサノードやホストのプログラミング(計測・制御と双方向コンテンツ)が関わります. そのプロトタイプとして,下記( PDF版 )のようなシステムを2022年度の卒業論文で学生さんと一緒に開発しました.ホストコンピュータはインターネット越しにNTPサーバで正確な時刻に設定されており,毎10分ごとに計測指令をセンサノードに無線で送信します.計測指令を受けたセンサノードは土壌水分と気象(気圧・気温・相対湿度)をセンサで計測し,それをホストコンピュータに(無線で)送り返します.ホストは受信した計測データを画面及びログファイルに記録します.ここでは「ネットワーク」はインターネットではなく,ホスト〜センサノード間の無線通信網ということになります(NTPサーバについてはOSレベルのことでプログラミングの対象になっていないため).   このシステムは,学校で実際に作るというより,システム設計の題材として扱うのが適切だと思います(3年生では時間も限られていますし).   上記は防水ボックス内に収納する電子回路の回路図です(PDFは こちら ).マイコンのAD変換は電源電圧基準とするものも多く,micro:bitもその一つです.正しい電圧を測定するためには,基準電源を別途設ける必要があります.ここでは長崎県産品であるイサハヤ電子の RT9H301S を用いました.またmicro:bitのAD変換入力インピーダンスが不明でしたので,LMC6484を用いたバッファアンプを前置しました.   上記はホスト,無線モデム,センサノードの各プログラムのアクティビティ図(概略版)です(PDFは こちら ).プログラムはPythonで作成しましたが,micro:bitを用いるホ...