ラズピコでクリスマスソングを鳴らそう

この記事は Raspberry Pi Advent Calendar 2025 24日目の記事です。

 

今年もアドベントカレンダーの季節がやってきました。(もうすぐ終わるけど。)チョコレートの詰め合わせやら紅茶やらいろいろなアドベントカレンダーが各社から発売されていますよね。そんな中、私も作ってみたい、アドベントカレンダー!!と思ったのがきっかけです。

 

作りたかったもの

f:id:taremimi-usagi:20251223181547j:image

そこで、Raspberry Pi Picoを使って日付部分をめくると毎日異なったクリスマスソングが流れるカードを作りたい!と思いついたのですが、力及ばす。。。想像していたよりもだいぶ機能不足ですが、こんな感じのものを作りたかったんだよーというのをご紹介したいと思います。

 

 

使ったもの

Raspberry Pi Pico

DFPlayer mini (MP3プレーヤー)

マイクロSDカード32GB

ブレッドボード用ダイナミックスピーカー

CdSセル

1kΩ抵抗

電池ボックス単3×2本リード線・フタ・スイッチ付

電池ボックス単3×4本リード線付

 

できたもの

その1.ラズピコでDFPlayerを再生する(CdSセルを使用)

f:id:taremimi-usagi:20251223181853j:image

 

youtube.com

 

 

 

CdSセルを使って、明るくなったら(カードの日付部分をめくったら)クリスマスソングが流れるようにしました。曲の再生にはDFPlayerを利用します。Raspberry Pi Picoから電源をとるとスピーカーにノイズが発生してうまく動作しなかったので、別電源(電池ボックス単3×4本)を用意しました。

 

再生させたい曲はマイクロSDカードのルートディレクトリに曲名の先頭に「0001xxxx.mp3」、「0002xxxx.mp3」、「0003xxxx.mp3」のように4桁の連番を付けて、保存しました。

 

クリスマスソングは下記のサイトを利用させていただきました。

https://maru-midi.com/index.html

 

DFPlayer単体ではランダム再生ができたのですが、CdSセルとの組み合わせ方がわからずこれは曲指定で再生しています。

 

ソースコードはとりあえず動いた状態で、なんで動いてるのかよくわかってないので自分で納得してから上げようと思います。。。

 

配線

①ラズピコ電源

・VSYS(39Pin)に電池ボックス単3×2本のプラスをつなぐ。

・GND(38Pin)に電池ボックス単3×2本のマイナスをつなぐ。

 

②ラズピコ↔CdSセル

・3V3(OUT)(36Pin)↔CdSセルの片足

・ADC0(31Pin)↔CdSセルの残りの方の足

→CdSセルの残りの方の足とGNDの間に1kΩ抵抗を挟む。

③DFPlayer電源

・VCCに電池ボックス単3×4本のプラスをつなぐ。

・GNDに電池ボックス単3×4本のマイナスをつなぐ。

④ラズピコ↔DFPlayer

・UART0 TX(21Pin)↔RX

・UART0 RX(22Pin)↔TX

・GND(23Pin)↔DFPlayer側電源(電池ボックス単3×4本)のマイナス

⑤DFPlayer↔スピーカー

・SPK1↔スピーカーの出力+

・SPK2↔スピーカーの出力-

 

 

参考サイト

DFPlayer Mini Mp3 Player - DFRobot Wiki
https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299


【Raspberry Pi Pico】UART通信でDFPlayerを制御する
https://www.ekit-tech.com/?p=2198


その2.それっぽい形にしてみる

f:id:taremimi-usagi:20251223181619j:image

 

 

 

youtube.com

 

その1の状態から100均ボックスに無理やり押し込めて、無印良品の「めくって楽しむカウントダウンカードどうぶつ柄」を上に載せました。予想よりもカードの隙間からの光の影響が大きくて周りをビニールテープで止める事態に。。。一応、日付部分をめくるとクリスマスソングが流れるようになりました。

 

 

最後に

当初はこういう感じでCdSセルを並べて24日分作るつもりだったのですが、隣り合う日付の間隔が狭いので、配置が難しそうだなぁと今更ながらに思いました。そもそもPicoで使えるADCは3個しかないのでどうするつもりだったのでしょうか、過去の自分。複数使いでなんとかなる???あ、あと、リードスイッチも使えそうだなぁと検討していたのですが、うまく組み込めず。。。思い描いた完成には辿り着けませんでしたが、製作中、クリスマスソングを何度も何度もテスト再生していたのでクリスマス気分を味わえました。皆様もよいクリスマスを。

 

 

 

 

Pico Jumboでメリークリスマス

 

この記事はRaspberry Pi Advent Calendar 2024 24日目の記事です。

 

2024年はラズパイニュースがたくさんありましたね。その中で印象的だったのがPimoroniのPico Jumboです。https://shop.pimoroni.com/products/pico-jumbo?variant=4209518582177

 

Pico JumboでLチカやってみよう

届いた時の感想は「でかっ」でした。真ん中にRaspberry Pi Pico 2がついてます。とりあえずはLチカですね。せっかくなのでクリスマスツリーのランプを点灯させてみたかったのですが、試行錯誤の末、最終的に思ってたのとは何か違う形になりました。。。


f:id:taremimi-usagi:20241223224155j:image

配線

上手いやり方がわからなくてLED1個につき、1GPIOに繋ぎました。それとPico JumboのStarter Kitには10mmの特大LEDが付いてきたのですが、持っていないサイズで固定してしまうのがもったいなくてLEDはツリー先端の穴に差し込んでいるだけです。ちょっと、危ないかも。。。

 

☆ツリー右側☆

LED1(赤)→GP1

LED2(緑)→GP3

LED3(赤)→GP5

☆ツリー左側☆

LED4(緑)→GP18

LED5(赤)→GP20

LED6(緑)→GP22


ソースコード

Pimoroniのサンプルコードのピン番号を修正してLEDの数だけコピペして使ってます。


https://github.com/pimoroni/pimoroni-pico-rp2350/blob/main/micropython/examples/pico_jumbo/big_blink.py

 

 

Pico JumboでLチカしてみた


動いてるところです。

youtube.com

 

 

Pico Jumboで遊んでみた感想

でっかいPico、めっちゃかわいい!!ワニ口クリップで挟むのなんか実験みたいで楽しい!!でも、配線がものすごいことに。。。あとは、リセットボタンがとても便利!!次はStarter Kit付属品の大きなスイッチやボタンも使って何か作ってみたいです。

 

それでは皆様、メリークリスマス!!

『ラズピコ使ってラズパイ5貯金を見える化させたい!!』計画

 

 

はじめに

この記事は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大好き)

 

案1(ロードセル+Pimoroni Breakout各種)


(実際には動きません。)

 

 

やりたいこと

・ ロードセルを使って貯金箱の重さを測定し、増分から千円札の枚数を割り出す。

・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は泣く泣く没となりました。

準備したもの

・ ロードセル計量センサ 重量センサ5KG + HX711

・1.54" SPI Colour Square LCD (240x240) Breakout

・5x5 RGB Matrix Breakout

・Breakout Garden to STEMMA QT / Qwiic Adapter

・Pico Breakout Garden Pack

 

ちなみに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に近いことをなんとか実現できないか手持ちの部品から考えたのがこちらです。

案2(ロードセル+OLED+バー表示LED)

(一部しか動作していません。DIPロータリースイッチは案2-2で使用します。)

 

やりたいこと

・ ロードセルを使って貯金箱の重さを測定し、増分から千円札の枚数を割り出す。

・OLEDに貯金額と目標金額まであといくらかを表示する。

・貯まった千円札の枚数分、1目盛りを2,000円としてバー表示LEDを点灯する。

・貯金にはすべて千円札を使用する。

・目標金額は20,000円とする。

 

 

準備したもの

・ ロードセル計量センサ 重量センサ5KG + HX711

・0.96インチ128x64ドット有機ELディスプレイ(OLED)白色

・オプトサプライ10バーLEDアレイ3色(緑5黄3赤2)タイプ

 

使用したライブラリ

pico-scale(using the hx711-pico-c library)

pico-ssd1306

 

そして、現在ロードセルから重さを取得するところで躓いております。それっぽい値が取得できたりできなかったり。ノイズなのか何なのか。原因がよくわからずで困りました。(アドカレ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貯金も頑張ろうと思います!

 

 

 

 

 

 

 

*1:バー表示LEDの目盛りに合わせて10回貯金すれば目標金額2万円達成!!としたかったのですが、このスイッチは9までしかカウントできず、バー表示LEDの10目盛り目は点灯できないためこの目標金額にしました。

*2:案2-1の画像はバー表示LEDを3色表示させたくて目盛りを9にしています。