MicroPython的午睡(15) ラズパイPico、プログラマブルIOの威力

Raspberry Pi Pico Programmable IO DUT
Joseph Halfmoon

Raspberry Pi PicoのMCU RP2040の大きな特徴がPIO(Programable IO)とよぶ、IO制御の仕組みだと思います。プログラム可能なステートマシンでIO端子を直接制御するもの。可能性無限大。そしてMicroPythonからでも「プログラム」可能でした。まずは今回はお試し。ちょっとした波形を作って観察してみます。 “MicroPython的午睡(15) ラズパイPico、プログラマブルIOの威力” の続きを読む

MicroPython的午睡(14) ラズパイPico、7セグ4桁、とりあえずタイマ駆動

Raspberry Pi Pico with 7 segment LED
Joseph Halfmoon

前回までLEDの4個ばかりでラズパイPicoのマルチコアの動作とかを確かめてきました。今回、Picoの機能を活かしても少しIOを触ってみるために外付けのハードを追加しました。とはいえLEDに変わりありません。が、4桁の7セグLEDなのでダイナミック駆動必須です。今回から時間縛りがあって多ピンの連動が必要なIO操作をやって行く予定です。 “MicroPython的午睡(14) ラズパイPico、7セグ4桁、とりあえずタイマ駆動” の続きを読む

トホホな疑問(33) BBC micro:bitのピン番号にハマる。Arduino環境にて

Arduino_Blink on BBC micro:bit
Joseph Halfmoon

BBC micro:bitについては別シリーズ「ブロックを積みながら」でテキストでソースを書かずに使ってきました。デバッガ等も使用せず。もっぱらprintfデバッグ。しかし、だんだんとC/C++で「普通に」書かないとならない領分に踏み込みそうな気がします。それにデバッガも使いたい。PlatformIOあるし、簡単だし、などと思っていたらハマりました。単なるピン番号に。 “トホホな疑問(33) BBC micro:bitのピン番号にハマる。Arduino環境にて” の続きを読む

MicroPython的午睡(13) ラズパイPico、マルチコアの排他制御など

RPiPicoTitle
Joseph Halfmoon

前回、MicroPythonからでもラズパイPicoの2つのCPUコアを使えることが分かりました。今回は複数コアを使う際にはまず避けて通れないことの一つ、排他制御をやってみます。また、RP2040にはコア間の制御をやりやすくするための専用ハードが搭載されているので、そちらが使われているのかどうかも探ってみます。

“MicroPython的午睡(13) ラズパイPico、マルチコアの排他制御など” の続きを読む

ブロックを積みながら(13) micro:bit V2、BLEサービス「積んで」みたけれど

v23
Joseph Halfmoon

BBC micro:bit V2をゲットということで、V1.5の時にはRAM不足でできなかったBLEサービスの「だいたい全部載せ」やってみました。これが出来れば面倒なmicro:bitのペアリング作業を省略できる、と。しかしそうは問屋が卸しませんでした。結論から言えば、1個1個確かめないとね。毎度のペアリング作業ももう慣れましたわい。

“ブロックを積みながら(13) micro:bit V2、BLEサービス「積んで」みたけれど” の続きを読む

MicroPython的午睡(12) ラズパイPico、簡単!マルチコアでLチカを

multiCoreBlink
Joseph Halfmoon

Raspberry Pi Picoは「お求めやすい」価格のマイコンにしては珍しいデュアルコアのMCUです。一味違うのがMicroPythonからでも2番目のコアを「お手軽に」使えてしまうこと。扱いやすいです。今回は、ミニマムのデュアルコア利用のサンプルとして、走っているコア毎に光る色を変える、マルチコアLチカを作ってみました。ラズパイPicoのMicroPythonの特徴の一つか?

“MicroPython的午睡(12) ラズパイPico、簡単!マルチコアでLチカを” の続きを読む

MicroPython的午睡(11) ラズパイPico、Thonny IDEで動作確認

RPiPicoBlinkPy
Joseph Halfmoon

昨日、待望のRaspberry Pi Picoが到着、早速ピンヘッダを半田づけして吉例のLチカをやってみました。お手軽さを最優先し、MicroPythonでの動作確認です。とりあえず5分10分程度の作業時間でOK。お楽です。動作させればラズパイPico上でのMicroPythonの実装についても少し分かってきました。

“MicroPython的午睡(11) ラズパイPico、Thonny IDEで動作確認” の続きを読む

鳥なき里のマイコン屋(119) M5Stack、FreeRTOS機能使って周波数カウンタ

Frequency Counter DUT
Joseph Halfmoon

今回、M5Stack Grayを使って、外部から入力される信号の周波数(せいぜい数kHzくらい)を測定したかったのであります。しかし、Arduino環境で以前使ったことがある周波数カウンタのライブラリ、AVR用でした。M5Stackでは使えません。M5Stack用のタイマライブラリで自力更生とも考えましたが、別シリーズでFreeRTOSの「タイマ」使ったのを思い出しました。今回はFreeRTOS機能を使ってみます。 “鳥なき里のマイコン屋(119) M5Stack、FreeRTOS機能使って周波数カウンタ” の続きを読む

ブロックを積みながら(12) EddystoneでBLEビーコン、スマホアプリ作成第一歩

dump Eddystone
Joseph Halfmoon

前回はEddystone使ってmicro:bitをBLEビーコン化してみました。ビーコンのスキャンは「出来合い」のスマホアプリです。しかしビーコン使ってそれらしい「アプリもどき」を作るとなれば、自前のプログラムでEddystoneのパケットを解読できないとなりません。そこでDroidScriptで「アプリもどき」を作成。とりあえずmicro:bitからのパケットを「近くにいる」時だけ取り出したいです。

“ブロックを積みながら(12) EddystoneでBLEビーコン、スマホアプリ作成第一歩” の続きを読む

モダンOSのお砂場(22) FreeRTOS、ソフトウエアタイマAPIでワンショット

FreeRTOS_SoftTimer
Joseph Halfmoon

前回はMutex排他制御でしたが、今回はソフトウエアタイマAPIであります。ソフトウエアタイマというと自前でループで回る「あれ」をつい想像してしまいますが違います。RTOSです。ちゃんとOSが面倒を見てくれる「タイマ」です。ある意味ハードウエアのリソースの制限が無い分、使いやすくもあるもの。 “モダンOSのお砂場(22) FreeRTOS、ソフトウエアタイマAPIでワンショット” の続きを読む

ブロックを積みながら(11) micro:bit、EddystoneでBLE Beaconを

BBC micro:bit Eddystone UID
Joseph Halfmoon

前回前々回とBBC micro:bit上で実行可能なBluetoothサービスをスマホから使ってみました。今回からは「垂れ流し」「一方通行」のアドバタイズ・パケットに戻ってBLEのローレベルな動作を観察したいと思います。「ブロックを積み」はするのですが、ブロック1個おけばとりあえずOKっと。最近そればかり。

“ブロックを積みながら(11) micro:bit、EddystoneでBLE Beaconを” の続きを読む

鳥なき里のマイコン屋(118) M5ATOM Lite、UART、I2C接続

ATOM Lite UART I2C
Joseph Halfmoon

前回、M5Stack社の超小型無線マイコンボード ATOM Liteの拡張端子について、デジタル、アナログの入出力ピンとしての動作を確認しました。今回は、UARTおよびI2Cインタフェースが使用できることを確かめたいと思います。兄弟品種?のM5StickC よりも大分使いやすい気がいたします。 “鳥なき里のマイコン屋(118) M5ATOM Lite、UART、I2C接続” の続きを読む

MicroPyton的午睡(10) _thread、マルチスレッドは出来るけれども…

M5StickV uSELL v0.12
Joseph Halfmoon

このところ、MicroPythonのライブラリを「触って」「実感して」おりますが、今回はマルチスレッドの為の「低水準」ライブラリ _thread であります。フルPythonであれば、この上に高水準な threading が存在するのでありますが、MicroPythonの場合は低水準だけのようです。最低限のものはあるから後は自分でやれ、という感じか。 “MicroPyton的午睡(10) _thread、マルチスレッドは出来るけれども…” の続きを読む

ブロックを積みながら(10) micro:bit、複数BLE serviceの共存の限界

BLEservices2
Joseph Halfmoon

前回は BBC micro:bitのbluetooth led serviceというものを走らせ、スマートフォンからDroidScriptで点灯制御してみました。今回は、複数のservicesをmicro:bit上で共存させ、その機能をスマホから使ってみたいと思います。しかし今回、micro:bit v2を購入できていないのが、ボディーブローのように効いてきました。 “ブロックを積みながら(10) micro:bit、複数BLE serviceの共存の限界” の続きを読む