はじめに
この記事はRaspberry Pi Advent Calendar 2023 23日目の記事です。
今回はRaspberry Pi Picoを使ってこういう装置を作りたいなぁという構想のお話です。(実物の完成は間に合いませんでした。。。)
さて、今年9月末に「Raspberry Pi 5」の発売が発表されましたよね。日本での発売が楽しみです。
狙うのは8GBモデルで、電源や公式ケースなども欲しいのでざっと2万円くらいを目標にラズパイ5貯金を始めることにしました。日本発売は未定ですが、早くても半年くらいは出ないのでは?という根拠のない予想をして、一ヶ月2〜3,000円くらいずつ貯金することにしました。そして10月、11月、12月と順調に続けられましたが今のところ日本発売のニュースもなく、そろそろ目先の誘惑に負けて他のことに使ってしまいそうな貯金額になってきました。
そこで、貯めた金額をラズピコで見える化させる装置を作って気を紛らわせようと思い立ちました。
案1(ロードセル+Pimoroni Breakout各種)
最初、思いついたぼんやりとしたイメージはこんな感じです。(Pimoroni大好き)
(実際には動きません。)
やりたいこと
・ ロードセルを使って貯金箱の重さを測定し、増分から千円札の枚数を割り出す。
・LCDに貯金額と目標金額まであといくらかを表示する。
・貯まった千円札の枚数分LEDを点灯する。
・貯金にはすべて千円札を使用する。
・目標金額は25,000円とする。
写真の奥に見えるのが、ロードセル計量センサ 重量センサ5KG + HX711に簡易貯金箱を載せたものです。
LEDは5×5=25個ついているので、全て点灯すると貯金額は25,000円となります。残りがあとどれくらいかわかると全てのLEDを光らせたくなって、目先の誘惑にも負けないかも!!!
そんな期待を胸にhx711のライブラリを探し、C言語での開発環境を構築し、hx711とPimoroniのサンプルをそれぞれ動かしてみた頃、ロードセルとPico Breakout Garden Packをどうやって繋ぐかで詰まりました。Breakout Garden to STEMMA QT / Qwiic Adapterを使えばなんとかなるのでは?と思っていたのですが、このロードセルのキットを繋いでも良いのかわからなく、壊してしまうのも怖かったのでやめました。(そもそもI2Cもよくわかっていない。)この製品だと繋げそう?と思いながらも五千円超えはなぁ。。。と断念しました。
その後、LCDと5x5 RGB Matrix BreakoutをPico Breakout Garden Packから取り外して構築することも一瞬考えたのですが、今後もBreakoutとして使いたいのでピンヘッダのはんだ付けは避けたいところ。。。
という訳でこの案1は泣く泣く没となりました。
準備したもの
・1.54" SPI Colour Square LCD (240x240) Breakout
・Breakout Garden to STEMMA QT / Qwiic Adapter
ちなみにPico Breakout Garden Pack用のケースはこちらのデータを使わせていただきました。ありがとうございます。
溝の部分にPico Breakout Garden Packがカチッとはまって気持ちがいいー
使用したライブラリ
pico-scale(using the hx711-pico-c library)
Pimoroniサンプル(breakout_colourlcd240x240)
Pimoroniサンプル(breakout_rgbmatrix5x5)
案2-1(ロードセル+OLED+バー表示LED)
そこで、案1に近いことをなんとか実現できないか手持ちの部品から考えたのがこちらです。
(一部しか動作していません。DIPロータリースイッチは案2-2で使用します。)
やりたいこと
・ ロードセルを使って貯金箱の重さを測定し、増分から千円札の枚数を割り出す。
・OLEDに貯金額と目標金額まであといくらかを表示する。
・貯まった千円札の枚数分、1目盛りを2,000円としてバー表示LEDを点灯する。
・貯金にはすべて千円札を使用する。
・目標金額は20,000円とする。
準備したもの
・0.96インチ128x64ドット有機ELディスプレイ(OLED)白色
・オプトサプライ10バーLEDアレイ3色(緑5黄3赤2)タイプ
使用したライブラリ
pico-scale(using the hx711-pico-c library)
そして、現在ロードセルから重さを取得するところで躓いております。それっぽい値が取得できたりできなかったり。ノイズなのか何なのか。原因がよくわからずで困りました。(アドカレ2日前)
さて、どうしましょう。。。
案2-2(OLED+バー表示LED+DIPロータリースイッチ)
もう間に合わないーと慌てた私は強硬手段に出ることにしました。ロードセルから重さを取得するのは諦めて、かわりに貯金したタイミングで手動でDIPロータリースイッチを回してバー表示LEDを光らせることに。。。
やりたいこと
・貯金したらDIPロータリースイッチの目盛りを一つ回す。
・1回に貯金する金額は2,000円(固定)とする。月に数回貯金してもよい。
・DIPロータリースイッチの回された目盛りに連動してバー表示LEDを点灯する。
・DIPロータリースイッチの回された目盛りからOLEDに貯金額と目標金額まであといくらかを表示する。
・目標金額は18,000円とする。*1
さらに、最後のOLEDへの金額表示までもたどり着けなくて、なんと写真のOLEDの表示はDIPロータリースイッチの値と連動していません。(単にテキスト表示させているだけ。。。)ラズパイ5の日本発売前までに完成できるでしょうか。。。
準備したもの
・0.96インチ128x64ドット有機ELディスプレイ(OLED)白色
・オプトサプライ10バーLEDアレイ3色(緑5黄3赤2)タイプ
・ DIPロータリースイッチ10ポジション0~9正論理(2個入)
使用したライブラリ
・micropython-ssd1306
・Raspberry Pi Pico MicroPython用美咲フォントライブラリ
まとめ
ラズパイ5の日本発売に向けての購入費用貯金を継続させるために、ラズピコを用いて貯金額の見える化装置を検討しました。
できたこと
・2,000円貯金したらDIPロータリースイッチの目盛りを一つ回して、目盛りに応じてバー表示LEDを点灯する。(目標金額:18,000円、バー表示LEDの1目盛り:2,000円、バー表示LEDの目盛りMAX値は9、DIPロータリースイッチのカウントは9まで)
・OLEDに現在の貯金額と目標金額まであといくらかを表示する。(まだテキスト表示しかできていないので、このままでは貯金の度にプログラム修正が必要です。。。)
とまぁ、こんな感じで、アドカレ記事を書き始めたらだんだん悲しくなってくるくらい『ラズピコ使ってラズパイ5貯金を見える化させたい!!』計画はぼろぼろの結果となりましたが現在の貯金額は10,000円です。(バー表示LEDの目盛りは5つめ)*2
バー表示LEDを見て目標金額まであとどれくらいかを確認しながら、残りのラズパイ5貯金も頑張ろうと思います!