Mira&Luna's nursery lab

旅乙女と発明娘の子供部屋

EEPROM[24LC64]をレコードにするTiny蓄音機🍩 自作電子工作の楽しみ方🍬

f:id:miraluna:20210920081120j:plain:w200 Mira

♪ EEPROMに曲を入れる電子オルゴール ♬
🍩 外付けEEPROMレコード盤にした、レコード仕様Tiny蓄音機 🍨


<第1回>
構想EEPROMについてと紹介」

🍎 今から作ろうとしている電子オルゴール「Tiny蓄音機レコード仕様」は、曲を複数のEEPROMに入れておいて、それをレコード盤のように交換するだけでいろいろな曲を聞くことができる、という「Tiny蓄音機」なの。

 🐟 前に作った「Tiny蓄音機」の記事 ↓
ATtiny85を使ったボトルキャップTiny蓄音機
🎀 EEPROMというのは情報を記憶できるパーツ。外付けメモリね。



目次
このプロジェクトは次々に降りかかる困難(エラー)を乗り越えて、夢に描いたガジェットを創り上げようとする電子工作少女の成長物語です(ちょっと過言)。

   🍩 Tiny蓄音機レコード仕様を作ろう 🍩
🍩1回目「 構想とEEPROMについてと曲紹介」(この記事)
🍩2回目「EEPROMに楽譜を記録♬ "レコード盤作り"
🍩3回目「EEPROMから楽譜を読み取って演奏するプログラム
🍩4回目「トラブル1🐉 ArduinoのRAMが足りない..p_q..💦
🍩5回目「[トラブル2🦇 tone関数ではすべての音符を鳴らせない
🍩6回目「"ちびやっこ"意気消沈。お姉ちゃんの"みつは"は超オンチに🦆
🍩7回目「Tiny蓄音機レコード仕様、実装します。& 動画🎬
🍩8回目「Tiny蓄音機レコード仕様🎶 作り方まとめっ♬

~これから何回かに分けて書いていきます。書いたら目次も増やしていきます。~



🍊 初代Tiny蓄音機            🍋 光センサTiny蓄音機
f:id:miraluna:20180204164053j:plain:w290 f:id:miraluna:20210921195232p:plain:w290


🎀 プロジェクトの構想 🎀

上の写真は「初代Tiny蓄音機」と、開けると鳴りだす「光センサTiny蓄音機」。どちらも1つのマイコンを使って、そこに再生プログラムと曲を入れている。だから他の曲を再生するには、マイコンそのものを交換してたの。
今回作る「レコード仕様」のTiny蓄音機は、再生用のマイコンは蓄音機本体ということにして交換しない。曲を替えたいときにはレコード盤であるEEPROMを交換する、という仕様にするの。どう? 魅力的なアイディアでしょ🍩


もともとの構想🦄(現在失敗中 ↓ )
f:id:miraluna:20191113110718p:plain

初めの構想では、上の図のようにATtiny85(ちびやっこ)という小さなマイコンを蓄音機(再生機)にして、EEPROMをレコード盤にしたかった。どちらも8pinDIP(ピンが8本のちっちゃいIC)という形。でもやってみたら、ちびやっこ(ATtiny85)がレコードを再生してくれない..p_q..💦 プログラムの書き込みまではできてると思うんだけどなぁ。
そんなわけで問題を解決するまでの間はArduino UNOの本体(マイコン)であるATmega328(みつは)を再生機にしてTiny蓄音機を作っていきます。

f:id:miraluna:20191122170945j:plain:w300:right


 みっちゃん=みつは=ATmega328






🎀 EEPROMについて 🎀
EEPROMは情報を格納できるメモリ媒体。ここに曲のデータを入れておいて、みつはでそれを読むことができればいろいろな曲を鳴らすことができる♪ 実はみつはにもちびやっこにもEEPROMが内蔵されてるんだけど、みつはの容量は1kB(キロバイト)、ちびやっこは512B(バイト)。それほど長い曲を入れることはできないの。それに内蔵されているEEPROMじゃ、レコード盤のように交換できないでしょ。

f:id:miraluna:20190422193438j:plain:w300 EEPROMの「24LC64

レコード盤となるEEPROMの「24LC64」。1cm四方のメモリです。
"I²C"という接続方法で、蓄音機マイコン(みつは)と2本の線で通信します。
容量は64kbit(キロビット)=8kByte(キロバイト)。みつはに内蔵されているEEPROMの8倍の容量ね。

1バイトというのは1ビットが8つ集まったもの。8ビット=1バイトね。
1バイトは"0~255"までの256通りの数字を表現できる。この数字が音符のデータになるの。
[24LC64]にはデータ容量が8kB(キロバイト)ある
1kB=1024B だから、8192箇所(0~8191番地)にデータを収められるというわけ。
音符のデータには「音階」と「長さ」の情報が必要だから、0~8191番地まであるEEPROMなら約4000個の音符のデータを収められることになるわね。今回私が挑戦するのは715音符の長い曲。でも無問題👍

ちなみに[24LC64]の姉妹には
4倍の容量(32kB)をもつ[24FC256]や、8倍の容量(64kB)をもつ[24LC512]などいろいろな子がいます。
ちなみのちなみにお値段は(秋月電子通商さんで2021年9月現在)
[24LC64]が50円。 [24FC256]が90円。 [24LC512]なら160円です。安い。
[24LC64]と同じ容量の[24FC64]は、低電圧でも動作する低消費電力で、クロック数を1MHzにできる高速タイプだそうです。値段は同じ50円。yasui.



f:id:miraluna:20210302183413j:plain:w300:right


Mira & Luna's
nursery lab



🎀 紹介 🎀
「Tiny蓄音機レコード仕様」を作ろうと思ったのは、EEPROMによるレコード仕様が素敵だなと思ったのと、もう一つは長い曲を入れることができるから。それなら長い曲に挑戦しないわけにはいきません。
このたび私が挑戦する曲は、
加賀谷玲(かがやれい)さんのOneNightです。
イラストレーターのKAGAYAさんのプラネタリウム作品「銀河鉄道の夜」に使われた曲。私、プラネタリウムが好きだから時々連れていってもらうんだけど、「銀河鉄道の夜プラネタリウムで観てみたいなぁ。
こちらのKAGAYAさんの2作品は、5,6年前に連れていってもらったはずです。(内容まではもう覚えてないけど......。)
🌌全天周プラネタリウム番組【オーロラの調べ】
🌟全天周プラネタリウム番組【スターリーテイルズ~星座は時をこえて】
『OneNight』の作曲者 加賀谷玲さんは、KAGAYAさんの弟さん。「銀河鉄道の夜」は、お兄さんが映像、弟さんが音楽を作ったのね。
「Tiny蓄音機レコード仕様」を作るにあたって、『OneNight』の楽譜が載っているYoutube(加賀谷玲さんのチャンネル)「4.One night【銀河鉄道の夜Score Book】 - YouTube」を参考にさせていただきました。ありがとうございます。
私が作ったものは電子ブザーでしかも和音なしで作っているので、加賀谷玲さんのピアノのように美しい音色は出ないし音程やリズムがちょっとずれてるらしいけど、がんばって作りました(∂, ∂🎀y 大目に見てくださいね🐤。



それでは新しいプロジェクト 🍩Tiny蓄音機レコード仕様を作ろう🍩
の、はじまりはじまり~🎀

f:id:miraluna:20180105114819j:plain:w200 Mira



目次 🍩 Tiny蓄音機レコード仕様を作ろう 🍩

🍩1回目「 構想とEEPROMについてと曲紹介」(この記事)
次回🍩2回目「EEPROMに楽譜を記録♬ "レコード盤作り"
🍩3回目「EEPROMから楽譜を読み取って演奏するプログラム
🍩4回目「トラブル1🐉 ArduinoのRAMが足りない..p_q..💦
🍩5回目「[トラブル2🦇 tone関数ではすべての音符を鳴らせない
🍩6回目「"ちびやっこ"意気消沈。お姉ちゃんの"みつは"は超オンチに🦆
🍩7回目「Tiny蓄音機レコード仕様、実装します。& 動画🎬
🍩8回目「Tiny蓄音機レコード仕様🎶 作り方まとめっ♬