Raspberry Pi PicoのMCU RP2040の大きな特徴がPIO(Programable IO)とよぶ、IO制御の仕組みだと思います。プログラム可能なステートマシンでIO端子を直接制御するもの。可能性無限大。そしてMicroPythonからでも「プログラム」可能でした。まずは今回はお試し。ちょっとした波形を作って観察してみます。 “MicroPython的午睡(15) ラズパイPico、プログラマブルIOの威力” の続きを読む
MicroPython的午睡(14) ラズパイPico、7セグ4桁、とりあえずタイマ駆動
前回までLEDの4個ばかりでラズパイPicoのマルチコアの動作とかを確かめてきました。今回、Picoの機能を活かしても少しIOを触ってみるために外付けのハードを追加しました。とはいえLEDに変わりありません。が、4桁の7セグLEDなのでダイナミック駆動必須です。今回から時間縛りがあって多ピンの連動が必要なIO操作をやって行く予定です。 “MicroPython的午睡(14) ラズパイPico、7セグ4桁、とりあえずタイマ駆動” の続きを読む
トホホな疑問(33) BBC micro:bitのピン番号にハマる。Arduino環境にて
BBC micro:bitについては別シリーズ「ブロックを積みながら」でテキストでソースを書かずに使ってきました。デバッガ等も使用せず。もっぱらprintfデバッグ。しかし、だんだんとC/C++で「普通に」書かないとならない領分に踏み込みそうな気がします。それにデバッガも使いたい。PlatformIOあるし、簡単だし、などと思っていたらハマりました。単なるピン番号に。 “トホホな疑問(33) BBC micro:bitのピン番号にハマる。Arduino環境にて” の続きを読む
MicroPython的午睡(13) ラズパイPico、マルチコアの排他制御など
前回、MicroPythonからでもラズパイPicoの2つのCPUコアを使えることが分かりました。今回は複数コアを使う際にはまず避けて通れないことの一つ、排他制御をやってみます。また、RP2040にはコア間の制御をやりやすくするための専用ハードが搭載されているので、そちらが使われているのかどうかも探ってみます。
ブロックを積みながら(13) micro:bit V2、BLEサービス「積んで」みたけれど
BBC micro:bit V2をゲットということで、V1.5の時にはRAM不足でできなかったBLEサービスの「だいたい全部載せ」やってみました。これが出来れば面倒なmicro:bitのペアリング作業を省略できる、と。しかしそうは問屋が卸しませんでした。結論から言えば、1個1個確かめないとね。毎度のペアリング作業ももう慣れましたわい。
MicroPython的午睡(12) ラズパイPico、簡単!マルチコアでLチカを
Raspberry Pi Picoは「お求めやすい」価格のマイコンにしては珍しいデュアルコアのMCUです。一味違うのがMicroPythonからでも2番目のコアを「お手軽に」使えてしまうこと。扱いやすいです。今回は、ミニマムのデュアルコア利用のサンプルとして、走っているコア毎に光る色を変える、マルチコアLチカを作ってみました。ラズパイPicoのMicroPythonの特徴の一つか?
MicroPython的午睡(11) ラズパイPico、Thonny IDEで動作確認
昨日、待望のRaspberry Pi Picoが到着、早速ピンヘッダを半田づけして吉例のLチカをやってみました。お手軽さを最優先し、MicroPythonでの動作確認です。とりあえず5分10分程度の作業時間でOK。お楽です。動作させればラズパイPico上でのMicroPythonの実装についても少し分かってきました。
鳥なき里のマイコン屋(119) M5Stack、FreeRTOS機能使って周波数カウンタ
今回、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の共存の限界” の続きを読む