液晶にラジオ局の周波数を表示させるラジオを作りたいなと前から思っていまして、ネットでこれならなんとか出来そうだという例を見つけたので作ってみました。
ブレッドボード上では、それなりに鳴ってくれたのに気を良くしていつものようにユニバーサル基盤に移植したんですが、そこからが大変で、期待よりも低性能なラジオが出来上がりました。かなりがっかりです(´・ω・`)
見切り発車でギリギリいっぱいに詰め込んだ結果、レイアウトに大幅な狂いがでて、箱が穴だらけになるとか満身創痍です。やっぱり初めてのは痛々しい。次回はもうちょっと手順を見直さないといけないと反省しました。もっともしばらく作りたくないですが…。
以下は、どこのサイトを参考にしたかとか作っていて、気づいたこととかの覚書です。
ロータリーエンコーダーを使って局移動をしていますので、その使い方の練習をということで、以下のサイト様で勉強しました。
[jumbleat]
http://jumbleat.com/2016/12/17/encoder_1/
下の方でまとめられているチャタリング対策のコードにはとても期待してたんですが、今回つくったラジオには適用できなかったんでとても残念。これが適用できたらなー( ´Д`)=3
またメインのコードは、以下のサイト様のを参考にっていうかほとんどそのまんま使いました。
[もへある]
https://blogs.yahoo.co.jp/le_nozze_di_figaro_2001/38104243.html
アルディーノNanoと御徒町の中華パーツ屋aitendoで売ってるM6955の組み合わせで作る場合のものですね。
図面は、以下の3つを参考に掛け合わせて作成しました。M6955でGoogleの画像検索かけるとでてきますね。
https://blogs.yahoo.co.jp/itodensi/13948682.html
http://blog-imgs-78.fc2.com/i/n/o/inokichi001/201502011050006f3.jpg
M6955のアンプだけだと音が小さいので、LM386を経由して音を大きくする方がいいです。また、スピーカーは、グランドに落とすように参考図面では指定されてましたが、M6955の11番ピンAGNDに接続することで音がでました。また、7番ピンからの出力ですが、ノイズが結構あったので、LM386への入力への間にコンデンサとインダクタを挟んでノイズ除去を追加しました。
ソースコードについて気づいた点ですが、IDの指定は、#define RADIO 0x10 で認識しました。0x20では、認識してくれませんでした。
そして、一番悩まされたのが、参考図面通りに組んでもM6955がうんともすんとも、反応しなかった点ですねー。゚(゚´Д`゚)゚。 なんかクセのある部品らしくて調べるといろいろでてきますね。ただ、わたしの場合は、プルアップ抵抗をなくしたら、M6955のLEDランプ点灯するようになりました。なにをやっても無反応だったりするので、M6955が壊れてるんじゃないかと心配させられますが、いろいろいじくり回したけど壊れなかったので、わりと丈夫みたいです。逆にやわなのがぱちものアルディーノNanoですね。一個半壊させてしまいました。配線ミスで一回過電流が流れたのか、3.3V出力がでなくなってしまいました。ぱちものはすぐ壊れます。色々実験するとミスするものですが、安物アルディーノは、ミスできませんね。やっぱり値段分の価値しか無いと思います。
散々今回は苦労して完成したDSPラジオですが、最初に書いたように、チャタリング対策が甘いので(アルディーノNanoは割り込みが2チャンネルしかないのでトグルスイッチの割り込みで1つとロータリーエンコーダーのチャタリング対策で2チャンネル使うと3チャンネル必要ということでチャタリング対策のコードを適用できなかった)、画面表示と実際のラジオ局の内容が一致しなかったりする場合があるというしょんぼりラジオが出来ました。うまくいかないものですね。
コメント
こんにちは
「M6955 動かない。」で検索して来ました。
私のは、何をやってもウンともスンとも言いません。
I2Cスキャナーで、アドレスを探しても表示されません。
モジュールも既に3個目です。
中華物は、問題アリです。