2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ジャパリオルゴールを作ってみた(未来編)

Last updated at Posted at 2018-12-22

🎄この記事は けものフレンズ Advent Calendar 2018 22日目の記事です🎄

前の記事: ジャパリオルゴールを作ってみた(ソフトウェア編)

ここまで3記事に分けて紹介してきたジャパリオルゴール。
今回は締めくくりとして、これからジャパリオルゴールをどう改良していくかを紹介していきます。

ATmega328Pの使用

これまでは Arduino Nano を使ってジャパリオルゴールの制御を行ってきました。機能は申し分ありませんが、完成後はスケッチを頻繁に書き込むことはないため、ATmega328P を使うほうが費用も面積も削減できます。

ただ、ATmega328P にスケッチを書き込む際にICソケットから都度取り外すのも面倒であるため、基板表面には ICSP のテストランドを設けておきます。ICSP として 5V, GND, MOSI, MISO, SCK, RESET の 6本のテストランドがあれば十分です。

ところで、Arduino Nano では内蔵されていた 16MHz のクリスタルも ATmega328P では外付けになるため、クリスタルとコンデンサも必要になります。コンデンサは 22pF を 2つ 使います。

電源コネクタの変更

Arduino Nano から乗り換えることで、これまで MiniUSB で供給されていた電源コネクタも用意しなくてはなりません。これには MicroUSB を使います。秋月電子から電源専用の MicroUSB コネクタ単体が入手できるためこれを使います。

また、Arduino Nano に搭載されていた 5V のレギュレータは使えなくなるため、DCジャックで9V電池を使うことはできなくなります。

LCDで曲名表示

ジャパリオルゴールを屋外で使用したところ、現在の状態や曲名がわからないことが多々ありました。演奏に特化したジャパリオルゴールだったため、LED以外の表示がなかったのは想定内でした。
ただ、ジャパリオルゴールについて知らない方々が LED の点滅だけ眺めていても楽しくはないだろうと考え、少しでも見どころを増やす目的で曲名の表示を行うことにしました。

入手性を考え、OLED(有機ディスプレイ)か LCD(液晶ディスプレイ)か検討しました。秋月電子で手頃な グラフィック OLED を見つけたのですが、以下の問題があり採用を断念しました。

  • 表示部が小さすぎる
    • 対角線が 0.96 インチ(= 2.43 cm)しかありません。屋外で使うにはかなり小さく、覗き込む必要があります。逆に、ブレッドボード上で使うにはちょうどいいサイズだと思います。
  • I2Cが遅すぎる
    • 演奏中に映像を更新すると演奏が止まるレベルで遅いです。I2C が遅いという理由より、常に 8px 単位で表示を更新する必要があります。画面は 128x64 ピクセルのため、仮に画面全体を更新したい場合は 1,024回 の更新処理が必要になります。
  • データを用意するのが面倒
    • グラフィック表示のため、ピクセル単位でデータを用意する必要があります。当然、それ専用のデータを作る必要があります。
    • この OLED は座標方向が特殊で、ピクセルの方向が横方向ではなく、縦方向になっています。何も考慮せずにラスタ画像からデータを作ると、90度回転したような表示になってしまいます。

問題ばかり列挙しましたが、I2C の配線数を少なくできるというメリットは享受できます。電源を除けば、ATmega328P と OLED はたった 2ピン 分の接続で表示ができてしまいます。

そこで、今回は LCD を使うことにしました。
Adafruit の RGB backlight negative LCD 16x2 です。キャラクタLCDですが、制御ICが HD44780 互換です。そのため、カタカナがデフォルトで入っています。バックライトは3色のLEDになっており、PWM でフルカラー表示を実現できます。ちなみに 千石電商 で入手可能です。

ATmega328P とは 9ピン も接続が必要ですが、ATmega328P 側のピンアサインを変えることでギリギリ間に合いました。Arduino には標準ライブラリに LiquidCrystal クラスがあるため、プログラムも難なく組むことができました。

キャラクタLCDのため表示パターンが限られ、グラフィックOLEDよりもデータ作成が単純になるメリットもあります。

電源とスピーカーの内蔵

ジャパリオルゴール構想当時から課題としていた、電源とスピーカーの内蔵も本気で取り組むことにしました。

電源は入手のしやすい単4電池を3本使用し、基板上に 電池ボックス を置くことで対応することにしました。単4電池3本で 4.5V のため、5V に昇圧するためのモジュールも使います。

スピーカー はネジ穴があり基板にはめ込みができるくらいの大きさのものを選定しました。この大きさのスピーカーを駆動させるには YMF825 の出力だけでは足りないため、アンプ回路も作って増幅させます。5V 駆動のため、7W スピーカーの割にはそこまで大きな音は出せませんが、それでも騒がしい屋外であっても十分に聞こえる音量を確保できます。

最後に

YMF825Board を手にし、サファリメロディーを響かせてから1年が経ちました。持ち出しやすさと扱いやすさの両立を目指したジャパリオルゴールは佳境に入りました。

ハードウェア編、ソフトウェア編で紹介した Ver.1.1 を改良し、現在 Ver.2.0 を製作中です。部品の変更やピンアサインの変更、LCD対応化による演奏データの更新などがあり、両バージョンの互換性は失われる見込みです。しかし機能は変わらず、いつでもどこでも鳴らすことのできる電子オルゴールであることには変わりありません。

昨年に引き続き、今年も けものフレンズ Advent Calendar 2018 を作らせていただきました。エンジニア僅少のけもフレ界では参加者が少なく、実質自分だけになってしまいましたが、また一年後、5記事くらい書けるような変化があれば開催したいと思います。

2019年も けものフレンズと、けものフレンズを愛する皆さんにとって実り多き一年となることを切に願っています。


ジャパリオルゴールを作ってみた(紹介編) : 最初の記事

ジャパリオルゴールを作ってみた(ハードウェア編)

ジャパリオルゴールを作ってみた(ソフトウェア編)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?