ページ

2022/02/27

Raspberry Pi Picoに触ってみる④

自分の構想では、分電盤センサはラズピコとラズパイがクライアントサーバ型で役割分担している。ということは、ラズピコとラズパイが通信をする必要がある。

ラズベリーパイPicoでUSBシリアル出力する

を参考にラズパイとラズピコをシリアル通信するプログラムを作っていた。
しかし、うまくいっていない。

実行自体はうまくいく。定期的にラズピコの電圧を読みだしているように見える。
しかし、きちんとプロセスを終わらせることができない。
また、起動方法も独特で、
Thonnyのmicro pythonモードでラスピコプログラムを実行

タブを切り替えてpyhonモードにする

ラズパイ側のプログラムを起動
である。

Thonnyの出力ウィンドウにはPythonのラズパイプログラム出力か、MicroPythonのラズピコプログラムどちらかの出力しか表示されないので、分かりにくい。
Thonnyでラズピコのプログラムを起動しつつ、コマンドプロンプトでラズパイ側のプログラムを起動する手を考えたがうまくいかなかった。コマンドプロンプト側でUSBにアクセスできないと怒られる。

いろいろ試してみる。
全開記事のサイトをもとに、ラズピコ側のプログラムをmain.pyとして保存。
Thonnyを一回落とし、USBケーブルを抜き差し。
→LEDチカチカ。プログラムが自動実行された!

この状態で、ラズパイのコマンドプロンプトからラズパイ側受信プログラムを実行すると、コマンドプロンプトにラズピコから送られてきた電圧値が表示された!
やった!

喜びもつかの間。困ったことに。これらのプログラムの終了方法である。
上記のサイト通りにラズピコに接続しても

 Connecting to /dev/ttyACM0 (buffer-size 512)...

からつながらない。

Raspberry pi Pico 謎が解けた

のサイトどおりにやってもdevice is busyで怒られる。フラッシュボタンを押しても認識できない。うーん、どうしたものか。
ラズピコに書き込んだプログラムはバックアップを取っていないので、初期化することは避けたい。

いろいろなサイトを見て、書いてることを試して失敗した後、海外のBBSにたどり着いた。

Device is busy or does not respond - Raspberry Pi Pico

ここによると、バグかも。しかも修正版のリリースはまだ。BOOTSELボタンを押したまま起動し、ラズピコを再インストールするしかないのか。。。上記で作ったプログラムがすべて消えてしまう・・・

その後も粘って検索を続けたところ!
ラズピコのRUNピンとグラウンドをショートしてリセットを試したら、うまくできた!!

やり方はこう。

Thonnyを起動(MicroPythonモード)

RUNピンとGNDをショート

ラズピコが再起動

ThonnyのシェルでBackend terminated or disconnected. Use 'Stop/Restart' to restart.というメッセージが出る

そこでThonnyのSTOPボタンを押す

ラズピコの動作が止まる(main.pyに仕込んでいたLEDチカチカがとまる)

Thonnyのsaveウィンドウでラズピコのmain.pyを右クリックで削除

これでできた!



ラズパイとラズピコで分電盤センサを作成(14)

回路の実装図作成に取り掛かろうと思ったが、ここで一つ寄り道。 ADCへの入力前に交流電圧に対して直流バイアスをかける手段として、オペアンプを使う方法が出てきた。 アナデジ太郎の回路設計 というか、バイアスをかけたい場合、この方法の方がメジャー・・? と思ったのだが、オペアンプは以...