![見出し画像](https://assets.st-note.com/production/uploads/images/142871335/rectangle_large_type_2_73df6f5cac1c4699ccc4d98df0c0d930.png?width=1200)
micro:bitのセンサーデータをPythonで利用する
micro:bitをセンサーボードとして利用する
micro:bitはそれ自体でデータ処理ができる立派なマイコンボードですが、センサーやスイッチを沢山搭載しているので、パソコンや他のデバイスのセンサーボードとして考えてもコスパが高いと言えます。
なんだかんだで10種類くらいの機能があって3000円はずいぶんお得です。
パソコンのアプリでセンサーを利用する場合、一番手軽なのはmicro:bit moreなどのScratch系ですが、Scratch以外の言語にデータを渡すのに一番簡単なのが、micro:bit標準のシリアル接続を使う方法です。
![](https://assets.st-note.com/img/1717420304338-sVCl4lfgB0.png?width=1200)
![](https://assets.st-note.com/img/1717420338356-7KSkCpcNlu.png?width=1200)
センサーのデータの値をシリアル通信で書き出すと、Makecodeの「データの表示 デバイス」画面で値が確認できるので、デバッグ目的でもよく使われますが、この画面だけでもグラフを書いたり、CSVでログを書き出だせるので教科学習でも使用できます。
しかしさらに他の言語の各種ライブラリで処理したい場合、RasPiなどのデバイスのセンサーとして利用したい場合はシリアル通信でデータを渡す方法が簡単です。
micro:bitのシリアル通信はデフォルトでUSBコネクタ経由のUSBシリアルになります。P0,P1などのカードエッジに切り替えることもできますが、データを渡す相手がパソコンの場合はUSBコネクタ経由が簡単です。
Pythonでシリアル通信でデータを読み込む
Pythonはすでにインストールされているという前提で進めます。(これからインストールされる場合も、検索すれば山のように情報があります)
Pythonでシリアル通信をするための”pySerial”ライブラリをインストールします。(これも情報は沢山あります)
pip install pyserial
例として、micro:bitで2秒おきに温度を測定し、シリアルでパソコンに送信します。それをPythonで読み出して、ターミナルに表示してみます。
micro:bit側のプログラムは次のような簡単なものです。
![](https://assets.st-note.com/img/1717425975221-LRxDOuDRuk.png)
Pythonプログラムの基本的な構造は下のようになります。
![](https://assets.st-note.com/img/1717426630965-CLaj3lQ7m0.png)
さらに、PythonでGUIを実現するTkinterライブラリを加えて、GUIで表示したのが以下の例になります。(Tkinterも情報は多いです)
![](https://assets.st-note.com/img/1717427001059-Q4bniVi99V.png?width=1200)
理科の教科学習の中でのPythonの学習に使えるのではないかと思います。
以上
この記事が気に入ったらサポートをしてみませんか?