Raspberry Pi Picoの上でMicroPythonを走らせていて「どうしたら良いのか」ちょっと迷ったことにパルス幅の測定があります。RP2040のPWM機能の中に周波数測定、デューティ測定などはありますが、単発のパルス1発の幅を拾いたいです。こういう時こそPIO(Programable IO)ですかね。
トホホな疑問(35) Mbed Studio、ビルドも実行もできるんですが。。。
別件で ST Microelectronics社のNucleo-F072RBをMbed OSで動かす必要がでてまいりました。Mbedオンラインコンパイラでなく、久しぶりにローカルな開発環境であるMbed Studio でやってみるか、ということで眠っていたMbed Studioをアップデートいたしました。ビルドのテストをしてみたのですが、できるのだけれど、ちょっとトホホな状況。
モダンOSのお砂場(26) Zephyr RTOS、micro:bit v2でHello!
前回、MbedオンラインコンパイラがサポートしているBBC micro:bitはv1.3だということに気づいてしまいました。v2は勿論、v1.5すら対象外。愕然。まあ、v1.3とv1.5の差に気をつければ生成オブジェクトはv1.5ハード上でも動作することは確かめましたが。しかし大っぴらにv1.5およびv2をサポートできるRTOSとしてZephyrの利用にトライ。micro:bit v2上でZephyrのサンプルプログラムを動かしてみました。
MicroPython的午睡(28) ラズパイPico、lightとdeepなsleep
Raspberry Pi Pico上のMicroPythonで以前から気になっていたのが、電力制御関係の関数です。パソコンに接続してソフトを書いている分には必要性は無いですが、バッテリに接続して動作させようとする場合には非常に重要です。それらしい関数が存在するので、きっと効果あるに違いないと思い込んできたのですが、そこには闇がありました。
モダンOSのお砂場(25) MbedとMicroBit、threadとfiber
前回は、Arm Mbedコンパイラ上で、BBC micro:bitのBluetoothサービスを起動するオブジェクトを生成し、スマホとペアリングさせてその動作を確認いたしました。しかし、例によってドキュメントもよく読まずにやっているのでペアリングにはテコずり、他にも不明な点がポロポロと。今回は一度立ち止まって文書を確認しましたです。
MicroPython的午睡(27) ラズパイPico、DHT11接続、ソフト現物合わせ
Raspberry Pi Pico上のMicroPythonで各種デバイスを制御してみております。今回は「電子工作業界?」定番の温湿度センサといってよいでしょう、DHT-11であります。「とりあえず」今回はソフトでタイミング制御、現物合わせです。動いているみたいなので、ま、いいか。
モダンOSのお砂場(24) Mbedでmicro:bit、BLEペアリング成功への道
前回、Arm社のMbedオンライン環境で、BBC micro:bit用のオブジェクトファイルが生成できることを確かめました。特に MicroBitクラス を使ってプログラムするとMakeCodeエディタのブロックと同等な機能を呼び出すことができるので楽ちんです。今回は早速、主題でありますBluetoothをMbed環境から使ってみましたがペアリングにちょっと手こずりました。
鳥なき里のマイコン屋(124) M5StackとUno間、CANフレームのラウンドトリップ
前回はM5StackからArduino Unoへ向かって一方通行のCANフレームの通信を行ってみました。当然、今回は双方向での通信の確認であります。お手軽にM5Stack発でUno経由M5Stack着の「ラウンドトリップ」です。同じArduino IDE使用で同じような仕事ですが、衣の下がちょっと違うのが見えまする。 “鳥なき里のマイコン屋(124) M5StackとUno間、CANフレームのラウンドトリップ” の続きを読む
MicroPython的午睡(26) ラズパイPico、入力端子からの割り込みの反応時間
前回Timerコールバック関数の呼び出し周期の上限目安(被呼び出し関数にもよりますが)を測定しました。今回は端子からの割り込みに対してMicroPythonの関数が反応するまで(割り込み入力をトリガとして出力端子の状態を変更するまでの時間)の目安を測ってみたいと思います。最速どのくらいの処理がデキそうなのか。
モダンOSのお砂場(23) Arm MbedでBBC micro:bitプログラミング
今までJavaScript(実際にはTypeScript)環境にてプログラムしていたBBC micro:bitですが、C/C++環境への移行を考えております。移行先として、Arduino環境(別シリーズ)、Arm Mbed環境、Zephyrの3候補のうち、本シリーズではMbedとZephyrの2つをやってみる所存。まずはArm Mbed環境を調べてみました。
MicroPython的午睡(25) ラズパイPico、Timer周波数設定の上限?
MicroPythonが用意してくれているTimerクラスは便利なものです。面倒な設定もなく、指定した周波数でタイマハンドラを呼び出してくれます。ただ、周波数の上限あるはずだよね、どのくらいなの?ちょっと別件でマイクロ秒単位の制御をしたかったのです。どこまで対応できるものだか調べてみることにいたしました。
MicroPython的午睡(24) ラズパイPico、CDSセンサをADCに接続
さて今回は、ラズパイPicoのADCを使ってみたいと思います。12ビットのADコンバータであります。真面目に精度を出そうと思うとチョッと大変そうですが、今回はとりあえず精度は気にせず。明るい、暗いがアナログ値で分かれば良いだろ~ということでCdSセンサを接続。
トホホな疑問(34) BBC micro:bit V2のArduinoピン番号はまた違う
MicroPython的午睡(23) ラズパイPico、Passive Buzzer接続
今回 Raspberry Pi Picoに接続する「定番の」部品はパッシブ・ブザーであります。片やONするだけで特定の周波数で鳴ってしまうアクティブ・ブザーに比べると、パッシブ・ブザーの場合、与える周波数を制御する必要はあるものの、音程を変えることができるので表現力が上回るっと。まあPWM波形を与えれば良いのでPWM出力に対応しているPicoにとっては何の問題もありませぬ。