電子工作
2018年の秋、高校生のロボット競技全国大会も終わった頃、某先生よりロボット相撲用のスタートモジュールの製作依頼あり。それまでは選手の持っているリモコンでスタートしていたようですが、フライングの問題もあり審判の赤外線リモコンでのスタートにルール変更になったようです。赤外線リモコンの信号の解読は全く経験がなく自信がなかったのですが、ユニバーサル基板へのハンダ付け半日、プログラム1日で完成しました。その後、専用基板を設計し量産しました。
赤外線リモコンの信号解読とかわからんと思っていましたが、たまたま簡単に解読するアルゴリズムを思いついたので短時間でコードがかけました。審判が使うリモコンはメーカーが2種類あるのですが、どちらのリモコンでもしっかり反応します。微妙に信号の送り方が違うのは困りますね。
基板は2種類製作しました。
赤外線リモコンの信号解読とかわからんと思っていましたが、たまたま簡単に解読するアルゴリズムを思いついたので短時間でコードがかけました。審判が使うリモコンはメーカーが2種類あるのですが、どちらのリモコンでもしっかり反応します。微妙に信号の送り方が違うのは困りますね。
基板は2種類製作しました。
Microchip社のbluetooth音声モジュールRN-52をコアにbluetoothスピーカーを製作しました。
注)RN-42ではSPPしか対応していないので音声を送ることはできません。
製作の経緯
マイカー(軽トラ)で音楽を聞く時にiphone6+のスピーカーで聞いていましたが、音量が小さい、低音が弱い、軽トラにカーオーディオを付ける気にもならず製作することにしました。
まずRN-52はピッチが1.2mmで、そのままではユニバーサル基板に載せられないので、Eagleでピッチ変換基板を製作、FusionPCBに発注、3週間で納品されました。

回路図

基板

納品され基板にRN-52を実装

ユニバーサル基板にRN-52、D級アンプ2個と電源回路を実装

完成したBluetoothスピーカー
BOXとスピーカーはFostexです。

軽トラックへの搭載状況
実際にiphone6+とペアリングして車内で聞いてみましたが、明らかに音量不足でした。最初はアンプが1Wで軽トラックの走行音が大きいのでしょうがないのかなと思っていましたが、RN-52について調べてみるとデフォルトでは音量が最大から5番目(15段階中)になっているようです。またD級アンプモジュールの入力抵抗を変更してゲインを上げることで十分な音量を出すことができました。
RN-52の内部音量を上げるためにはシリアルコマンドでの設定が必要になります。GPIO9ピンをGNDに接続することでコマンドモードに入ります。RXピンとTXピン(3.3Vレベル)をPCに接続してteraterm等でコマンドを送り設定します。
音量UPコマンド AV+
音量DOWNコマンド AV-
*ちゃんと音量は電源を切っても保持されます。
実際、車に乗ったときに毎回スピーカーとiphone6+をbluetoothで接続してたのですが、実は地味に面倒なのですが、コマンドにより前回接続していたデバイスと自動接続するように設定することも可能です。
実は完成した後になって、最初に購入したRN52-I/RM(マルツで購入)はSBCという方式(高圧縮、低容量)で音声データを送っているらしく、音質はよくないとのことで、MicrochipDirectでAACに対応したモジュールを購入して比較してみました。
追試結果報告
RN52-I/RM(マルツで購入)
ファームウェア Ver 1.10
シリアルコマンドで確認しても、そもそもAudioCodecの項目が表示されない、SBC専用であるため表示されないと推測される。
RN52AAC-I/RM116(microchip directで購入)
ファームウェア Ver 1.16
MBAとぺアリングしてyoutubeで動画を再生し確認したところAudioCodec=SBCとなっていた。MBA内蔵のbluetoothモジュールがAAC未対応と推測される。
iphone6+とペアリングしてyoutubeで動画を再生し確認したところAudioCodec=AACとなっていた。MUSICを再生した場合もAACとなっていた。
SBCとAACの音質の差については私の耳では確認できませんでした。
注)RN-42ではSPPしか対応していないので音声を送ることはできません。
製作の経緯
マイカー(軽トラ)で音楽を聞く時にiphone6+のスピーカーで聞いていましたが、音量が小さい、低音が弱い、軽トラにカーオーディオを付ける気にもならず製作することにしました。
まずRN-52はピッチが1.2mmで、そのままではユニバーサル基板に載せられないので、Eagleでピッチ変換基板を製作、FusionPCBに発注、3週間で納品されました。

回路図

基板

納品され基板にRN-52を実装

ユニバーサル基板にRN-52、D級アンプ2個と電源回路を実装

完成したBluetoothスピーカー
BOXとスピーカーはFostexです。

軽トラックへの搭載状況
実際にiphone6+とペアリングして車内で聞いてみましたが、明らかに音量不足でした。最初はアンプが1Wで軽トラックの走行音が大きいのでしょうがないのかなと思っていましたが、RN-52について調べてみるとデフォルトでは音量が最大から5番目(15段階中)になっているようです。またD級アンプモジュールの入力抵抗を変更してゲインを上げることで十分な音量を出すことができました。
RN-52の内部音量を上げるためにはシリアルコマンドでの設定が必要になります。GPIO9ピンをGNDに接続することでコマンドモードに入ります。RXピンとTXピン(3.3Vレベル)をPCに接続してteraterm等でコマンドを送り設定します。
音量UPコマンド AV+
音量DOWNコマンド AV-
*ちゃんと音量は電源を切っても保持されます。
実際、車に乗ったときに毎回スピーカーとiphone6+をbluetoothで接続してたのですが、実は地味に面倒なのですが、コマンドにより前回接続していたデバイスと自動接続するように設定することも可能です。
実は完成した後になって、最初に購入したRN52-I/RM(マルツで購入)はSBCという方式(高圧縮、低容量)で音声データを送っているらしく、音質はよくないとのことで、MicrochipDirectでAACに対応したモジュールを購入して比較してみました。
追試結果報告
RN52-I/RM(マルツで購入)
ファームウェア Ver 1.10
シリアルコマンドで確認しても、そもそもAudioCodecの項目が表示されない、SBC専用であるため表示されないと推測される。
RN52AAC-I/RM116(microchip directで購入)
ファームウェア Ver 1.16
MBAとぺアリングしてyoutubeで動画を再生し確認したところAudioCodec=SBCとなっていた。MBA内蔵のbluetoothモジュールがAAC未対応と推測される。
iphone6+とペアリングしてyoutubeで動画を再生し確認したところAudioCodec=AACとなっていた。MUSICを再生した場合もAACとなっていた。
SBCとAACの音質の差については私の耳では確認できませんでした。
デジキーで発売直後購入して放置していたPIC32MZ2048EGC100を動かしてみました。MICROCHIPの発表から約1年経っての発売でしたが、エラッタが大量にあるという話は知っていたのですが、見事にはまってしまいました。
まずはTQFP100ピンのパッケージなので秋月電子で購入した変換基板にハンダ付けします。ブリッジしてもいいのでハンダを盛った後に、ハンダ吸い取り線で余分なハンダを吸い取ります。0.4mmピッチいうことで目視での確認が難しいために10倍のルーぺを購入しました。
パスコンだらけの基板
なんとか動くようになりました。何日費やしたことか。問題点と解決方法をまとめておきます。
1.ハンダ付け不良→ルーペを購入して確認
2.主発振回路が動かない→OSC2端子を10kΩでプルアップ
(リビジョンA5からこの対策が可能、リビジョンA4までは外部発振回路からOSC1端子に入力するしかない。)
3.コンパイラ(XC32)のバグ→SYSTEM PLLのクロック入力の指定で主発振回路を選択しても動かない。内部発振回路を指定する。
(だからと言って、逆に内部発振回路を使う時に主発振回路を選択したら動かなかった。)
4.SYSTEM PLLが不安定→パスコンをすべての電源端子に接続
(全くつけてなかったわけではないのですが、200MHzをなめてました。)
5.SYSTEM PLLが動作しない→データシート確認
PIC32MZのデータシート576ページを確認したところ、SYSTEM PLLのクロック入力は5MHzから64MHzの範囲とのこと。内蔵発振の8MHzを2分の1にして4MHzにしたり、主発振回路の12MHzを3分の1に分周して4MHzにしてSYSTEM PLLに入力してました。
さてここからが本題です、何を作りましょう?
まずはTQFP100ピンのパッケージなので秋月電子で購入した変換基板にハンダ付けします。ブリッジしてもいいのでハンダを盛った後に、ハンダ吸い取り線で余分なハンダを吸い取ります。0.4mmピッチいうことで目視での確認が難しいために10倍のルーぺを購入しました。
パスコンだらけの基板
なんとか動くようになりました。何日費やしたことか。問題点と解決方法をまとめておきます。
1.ハンダ付け不良→ルーペを購入して確認
2.主発振回路が動かない→OSC2端子を10kΩでプルアップ
(リビジョンA5からこの対策が可能、リビジョンA4までは外部発振回路からOSC1端子に入力するしかない。)
3.コンパイラ(XC32)のバグ→SYSTEM PLLのクロック入力の指定で主発振回路を選択しても動かない。内部発振回路を指定する。
(だからと言って、逆に内部発振回路を使う時に主発振回路を選択したら動かなかった。)
4.SYSTEM PLLが不安定→パスコンをすべての電源端子に接続
(全くつけてなかったわけではないのですが、200MHzをなめてました。)
5.SYSTEM PLLが動作しない→データシート確認
PIC32MZのデータシート576ページを確認したところ、SYSTEM PLLのクロック入力は5MHzから64MHzの範囲とのこと。内蔵発振の8MHzを2分の1にして4MHzにしたり、主発振回路の12MHzを3分の1に分周して4MHzにしてSYSTEM PLLに入力してました。
さてここからが本題です、何を作りましょう?
最新記事
最新コメント
訪問者数
- 今日:
- 昨日:
- 累計:

















