今回、M5Stack Grayを使って、外部から入力される信号の周波数(せいぜい数kHzくらい)を測定したかったのであります。しかし、Arduino環境で以前使ったことがある周波数カウンタのライブラリ、AVR用でした。M5Stackでは使えません。M5Stack用のタイマライブラリで自力更生とも考えましたが、別シリーズでFreeRTOSの「タイマ」使ったのを思い出しました。今回はFreeRTOS機能を使ってみます。 “鳥なき里のマイコン屋(119) M5Stack、FreeRTOS機能使って周波数カウンタ” の続きを読む
ブロックを積みながら(12) EddystoneでBLEビーコン、スマホアプリ作成第一歩
前回はEddystone使ってmicro:bitをBLEビーコン化してみました。ビーコンのスキャンは「出来合い」のスマホアプリです。しかしビーコン使ってそれらしい「アプリもどき」を作るとなれば、自前のプログラムでEddystoneのパケットを解読できないとなりません。そこでDroidScriptで「アプリもどき」を作成。とりあえずmicro:bitからのパケットを「近くにいる」時だけ取り出したいです。
モダンOSのお砂場(22) FreeRTOS、ソフトウエアタイマAPIでワンショット
前回はMutex排他制御でしたが、今回はソフトウエアタイマAPIであります。ソフトウエアタイマというと自前でループで回る「あれ」をつい想像してしまいますが違います。RTOSです。ちゃんとOSが面倒を見てくれる「タイマ」です。ある意味ハードウエアのリソースの制限が無い分、使いやすくもあるもの。 “モダンOSのお砂場(22) FreeRTOS、ソフトウエアタイマAPIでワンショット” の続きを読む
ブロックを積みながら(11) micro:bit、EddystoneでBLE Beaconを
鳥なき里のマイコン屋(118) M5ATOM Lite、UART、I2C接続
前回、M5Stack社の超小型無線マイコンボード ATOM Liteの拡張端子について、デジタル、アナログの入出力ピンとしての動作を確認しました。今回は、UARTおよびI2Cインタフェースが使用できることを確かめたいと思います。兄弟品種?のM5StickC よりも大分使いやすい気がいたします。 “鳥なき里のマイコン屋(118) M5ATOM Lite、UART、I2C接続” の続きを読む
MicroPyton的午睡(10) _thread、マルチスレッドは出来るけれども…
このところ、MicroPythonのライブラリを「触って」「実感して」おりますが、今回はマルチスレッドの為の「低水準」ライブラリ _thread であります。フルPythonであれば、この上に高水準な threading が存在するのでありますが、MicroPythonの場合は低水準だけのようです。最低限のものはあるから後は自分でやれ、という感じか。 “MicroPyton的午睡(10) _thread、マルチスレッドは出来るけれども…” の続きを読む
ブロックを積みながら(10) micro:bit、複数BLE serviceの共存の限界
前回は BBC micro:bitのbluetooth led serviceというものを走らせ、スマートフォンからDroidScriptで点灯制御してみました。今回は、複数のservicesをmicro:bit上で共存させ、その機能をスマホから使ってみたいと思います。しかし今回、micro:bit v2を購入できていないのが、ボディーブローのように効いてきました。 “ブロックを積みながら(10) micro:bit、複数BLE serviceの共存の限界” の続きを読む
MicroPython的午睡(9) ulabで連立方程式を解く、機種固有実装の蹉跌
前回に引き続き、MicroPythonにおける「フルPythonにおける numpy 的な」演算ライブラリ ulab の機能を試用して行きたいと思います。今回のお題は「連立方程式」であります。別投稿にて「解答済」の問題があるので、MicroPythonでも解いてみようという趣向。しかし、今回は実装の違いによる問題に躓いてしまいました。トホホ。
モダンOSのお砂場(21) FreeRTOS、Mutex排他制御の効果が「分かる」サンプル
今回はRTOSでは避けて通れない排他制御を実験してみます。それも「排他制御無」だとこんなに動作が「ボロボロだ」と実感できるサンプルを作ってそこに排他制御(mutex)を導入し、「解決できた」ところを見ようという野望です。タイミングとかいろいろあるし、そんなに上手くサンプルプログラムを作れるのか。
鳥なき里のマイコン屋(116) M5ATOM Lite到着、ビルド環境セットアップ
無線通信機能が無いボード類を無線ネットワークに参加させるべく、適当なデバイスを物色していたのであります。今回購入してみましたのは、M5Stack社のATOM Liteというデバイスです。ちゃんとシャーシに入っていますが24mm角の小ささ。とりあえず第1回は開発環境をセットアップし、単品にて動作確認いたしました。 “鳥なき里のマイコン屋(116) M5ATOM Lite到着、ビルド環境セットアップ” の続きを読む
ブロックを積みながら(8) micro:bitのBluetooth serviceの使用。
昨日は Bluetooth ではない Radio の方で終わっていたので、本日こそ Bluetooth を使ってみたいと思います。MakeCodeでは、いくつかのBluetoothサービスのBlockが用意されています。それを利用してみたいと思います。今回は led serviceというものを使用、micro:bit と スマホをペアリングし、スマホからの指示で micro:bit に Hello World させようという趣向です。
ブロックを積みながら(7) micro:bitの無線、RadioとBLE、整理してみました
Pi PICOに続きmicro:bit v2も品薄ということで買えません。それで最近 MicroPythonで運用してきたmicro:bit v1.5 をMakeCode環境に引き戻し「ブロックで」プログラムすることにいたしました。Bluetooth LEを使いたかったから。しかし、気付いてみれば知らなかった事多数。世の中の進歩は速い。今回は micro:bit の無線に関わるプログラミングについて整理してみました。 “ブロックを積みながら(7) micro:bitの無線、RadioとBLE、整理してみました” の続きを読む
MicroPython的午睡(8) M5StickV、ulab行列積、timeitデコレータ
前回の作業でM5StickV用のMicroPython(MaixPy)のセルフ開発環境が「整った」ので、早速例題をやってみたいと思います。micro:bit上のMicroPythonでは「やる気も起きなかった」計算量やらメモリ量やら必要なもの。当然ながら時間計測もしたいです。ドキュメント読んでいるうちにデコレータ使って時間計測している技を発見。早速使わせていただきます。 “MicroPython的午睡(8) M5StickV、ulab行列積、timeitデコレータ” の続きを読む
MicroPython的午睡(7) M5StickV, MicroPython再々復活
最近のmakersなのかSTEMなのかの盛り上がりの余波で、今だRaspberry Pi PICOもmicro:bit V2も買えておりませぬ。そのためmicro:bit V1.5のBTネタへの移動にともない、本MicroPythonシリーズはM5StickVに担当してもらうことになりました。春の人事異動か? “MicroPython的午睡(7) M5StickV, MicroPython再々復活” の続きを読む