MicroPython的午睡(31) ラズパイPico、PWMの周波数カウント機能を使う

PicoFreqCounterDUT
Joseph Halfmoon

前回、MicroPythonからのラズパイPicoのPWMカウンタへの入力機能の使い方が分かりませんでした。代案でPIOを使ってパルス幅測定をいたしました。今回こそは、PWMカウンタへの入力を使用してみたいと思います。題材は周波数測定であります。これまたタイマカウンタ使った測定の定番?

“MicroPython的午睡(31) ラズパイPico、PWMの周波数カウント機能を使う” の続きを読む

MicroPython的午睡(30) ラズパイPico、HC-SR04超音波センサを接続

RPiPico HC-SR04 DUT
Joseph Halfmoon

前回Raspberry Pi  PicoのPIOを使ってパルス幅測定ができるようになりました。今回はその応用、HC-SR04超音波センサで距離の測定を行ってみたいと思います。距離に比例するパルス幅(時間)が返ってくるセンサです。細かいことを言わなければ測ったパルス幅を距離に換算するだけ。

“MicroPython的午睡(30) ラズパイPico、HC-SR04超音波センサを接続” の続きを読む

MicroPython的午睡(29) ラズパイPico、PIOでパルス幅測定

PIO_PW_DUT
Joseph Halfmoon

Raspberry Pi Picoの上でMicroPythonを走らせていて「どうしたら良いのか」ちょっと迷ったことにパルス幅の測定があります。RP2040のPWM機能の中に周波数測定、デューティ測定などはありますが、単発のパルス1発の幅を拾いたいです。こういう時こそPIO(Programable IO)ですかね。

“MicroPython的午睡(29) ラズパイPico、PIOでパルス幅測定” の続きを読む

MicroPython的午睡(28) ラズパイPico、lightとdeepなsleep

sleepDUT
Joseph Halfmoon

Raspberry Pi Pico上のMicroPythonで以前から気になっていたのが、電力制御関係の関数です。パソコンに接続してソフトを書いている分には必要性は無いですが、バッテリに接続して動作させようとする場合には非常に重要です。それらしい関数が存在するので、きっと効果あるに違いないと思い込んできたのですが、そこには闇がありました。

“MicroPython的午睡(28) ラズパイPico、lightとdeepなsleep” の続きを読む

MicroPython的午睡(27) ラズパイPico、DHT11接続、ソフト現物合わせ

RPiPico_DHT11_DUT
Joseph Halfmoon

Raspberry Pi Pico上のMicroPythonで各種デバイスを制御してみております。今回は「電子工作業界?」定番の温湿度センサといってよいでしょう、DHT-11であります。「とりあえず」今回はソフトでタイミング制御、現物合わせです。動いているみたいなので、ま、いいか。

“MicroPython的午睡(27) ラズパイPico、DHT11接続、ソフト現物合わせ” の続きを読む

MicroPython的午睡(26) ラズパイPico、入力端子からの割り込みの反応時間

ITR_TEST_DUT
Joseph Halfmoon

前回Timerコールバック関数の呼び出し周期の上限目安(被呼び出し関数にもよりますが)を測定しました。今回は端子からの割り込みに対してMicroPythonの関数が反応するまで(割り込み入力をトリガとして出力端子の状態を変更するまでの時間)の目安を測ってみたいと思います。最速どのくらいの処理がデキそうなのか。

“MicroPython的午睡(26) ラズパイPico、入力端子からの割り込みの反応時間” の続きを読む

MicroPython的午睡(25) ラズパイPico、Timer周波数設定の上限?

TimerMeasureDUT
Joseph Halfmoon

MicroPythonが用意してくれているTimerクラスは便利なものです。面倒な設定もなく、指定した周波数でタイマハンドラを呼び出してくれます。ただ、周波数の上限あるはずだよね、どのくらいなの?ちょっと別件でマイクロ秒単位の制御をしたかったのです。どこまで対応できるものだか調べてみることにいたしました。

“MicroPython的午睡(25) ラズパイPico、Timer周波数設定の上限?” の続きを読む

MicroPython的午睡(24) ラズパイPico、CDSセンサをADCに接続

CDS
Joseph Halfmoon

さて今回は、ラズパイPicoのADCを使ってみたいと思います。12ビットのADコンバータであります。真面目に精度を出そうと思うとチョッと大変そうですが、今回はとりあえず精度は気にせず。明るい、暗いがアナログ値で分かれば良いだろ~ということでCdSセンサを接続。

“MicroPython的午睡(24) ラズパイPico、CDSセンサをADCに接続” の続きを読む

MicroPython的午睡(23) ラズパイPico、Passive Buzzer接続

Pico_PassiveBuzzer_DUT
Joseph Halfmoon

今回 Raspberry Pi Picoに接続する「定番の」部品はパッシブ・ブザーであります。片やONするだけで特定の周波数で鳴ってしまうアクティブ・ブザーに比べると、パッシブ・ブザーの場合、与える周波数を制御する必要はあるものの、音程を変えることができるので表現力が上回るっと。まあPWM波形を与えれば良いのでPWM出力に対応しているPicoにとっては何の問題もありませぬ。

“MicroPython的午睡(23) ラズパイPico、Passive Buzzer接続” の続きを読む

MicroPython的午睡(22) ラズパイPico、AQM1602 LCDパネル接続

Pico_AQM1602
Joseph Halfmoon

このところ Raspberry Pi Picoに各種デバイスを接続し、MicroPythonで操作してきております。が、定番のデバイス、どうせ接続できるでしょ、ということでやってませんでした。しかし、やっておかないと何が起きるかわからない。念のためということで今回は、秋月電子製LCDモジュールキット、AE-AQM1602Aであります。 “MicroPython的午睡(22) ラズパイPico、AQM1602 LCDパネル接続” の続きを読む

MicroPython的午睡(21) ラズパイPico、M5AtomLiteとUART通信

RPiPico_M5AtomLite
Joseph Halfmoon

今回はハードウエアの周辺機能の利用に戻りたいと思います。毎度毎度「お世話になっている」のに取り上げてこなかったUART(調歩同期方式シリアル通信)であります。当然、通信する相手なければ使ってみることができませぬ。そこで今回用意いたしましたのは、M5Stack社の超小型デバイスATOM Liteであります。Raspberry Pi Picoに比べても小さいです。機能的には相互補完的?

“MicroPython的午睡(21) ラズパイPico、M5AtomLiteとUART通信” の続きを読む

MicroPython的午睡(20) ラズパイPico、PIO操作は最大8ビット?

PIOtestDUT
Joseph Halfmoon

Raspberry Pi PicoのPIO(Programmable IO)は、Picoのユニークな機能であり、かつ適応能力最強の「ペリフェラル」だと思います。勿論MicroPythonからも利用できます。しかし前回、普通のSRAMをPIO経由で制御しようとしてトラぶりました。今回は釈然としない部分に絞ってその動作を実機確認してみたいと思います。 “MicroPython的午睡(20) ラズパイPico、PIO操作は最大8ビット?” の続きを読む

MicroPython的午睡(19) ラズパイPico、「普通の」SRAM接続に手こずる

SRM2B256SLMX55
Joseph Halfmoon

前回前々回とシリアル接続のメモリをRaspberry Pi PicoのMicroPythonで読み書きしてみました。今回は「普通の」バスのSRAMを読み書きしてみようと思います。今時、「普通の」バスを扱えるMCUなど滅多に見ないし、ラズパイPicoにも外バスはありません。例のPIO使えばデキそうなんだけれど。

“MicroPython的午睡(19) ラズパイPico、「普通の」SRAM接続に手こずる” の続きを読む

MicroPython的午睡(18) ラズパイPico、SPIでシリアルSRAM接続

23LC512
Joseph Halfmoon

前回はシリアルEEPROM、I2C接続でした。今回はシリアルSRAM、SPI接続であります。前回はMicroPythonからのI2C制御、釈然としない部分ありだったのですが、今回のSPIは明朗会計なんであります。ほとんど何も考えずに接続すれば動作してしまう感じ。落差大きいです。 “MicroPython的午睡(18) ラズパイPico、SPIでシリアルSRAM接続” の続きを読む