FC2ブログ

名張市つつじが丘おもちゃ病院

三重県名張市つつじが丘でおもちゃの病院を開院しています。年中無休で修理は無料、部品代のみ実費です。おもちゃの修理依頼は tutuji@cb4.so-net.ne.jp へメールにてご連絡下さい。なお、宅配便での受け付けは行っておりません。このブログにはおもちゃ等の修理事例やツール製作などを載せていきます。故障診断や修理方法の改善等、ご意見をお寄せ下さい。

PIC電子オルゴールVer5_6でサポートデバイスを追加

お馴染みのPIC電子オルゴールでサポートデバイスを追加した。元々オルゴールエンジンはPIC16エンハンスドコアを対象に開発しているので個々のデバイス毎にサポート可否を言うのはあたらないのだが、言い換えれば新しいいデバイスのサンプルコードを作って動作確認をした、と言うことだ。サンプルコードは ここから ダウンロードできる。

【サポートデバイス】
現在サンプルコードを公開しているデバイスは以下の通りで、(新)と表示したのが今回追加したデバイスだ。プログラムメモリサイズ等の特徴と単価(2017年秋月)も表示した。

   12F1501  1kワード  8ピン  16MHz  @70円
   16F1503  2kワード  14ピン 16MHz  @70円(SOICパッケージ)
(新)16F1579  8kワード  20ピン MSSP無し @140円
   12F1612  2kワード  8ピン  MSSP無し @80円
   16F1705  8kワード  14ピン        @100円
   16F1709  8kワード  20ピン        @150円
   12F1822  2kワード  8ピン         @100円
   16F1827  4kワード  18ピン        @130円
   12F1840  4kワード  8ピン         @120円
   16F18313 2kワード  8ピン         @75円
(新)16F18325 8kワード  14ピン        @100円
(新)16F18326 16kワード 14ピン        @130円
(新)16F18857 32kワード 28ピン        @170円

音声再生を行う場合は多量のメモリが必要なので、今春(2017年3月~4月)に秋月で新発売されたものからプログラムメモリが大きくてコストパフォーマンスの良いものを(新)デバイスとして選択した。

16F18857は32kワードあるので24FC512を外付けするよりトータルコストは安く上がる。最大のメリットはI2Cでは同時に1個の音声しか再生できないが、プログラムメモリからの再生では複数音声の同時再生が可能なことだ。例えばエンジン音をバックグラウンドで流しながらアンパンマンをしゃべらせることができる。

16F1579は割高な感じがするが20ピンあるので、おもちゃの制御点数が多くて14ピンデバイスではポート数が足りないときに使える。16F15xxは大体が20MHzまでなのだが、これは内部オシレータで32MHz動作が可能だ。

12F1822はデータSRAMが128バイトしか無く陳腐化してしまった感があるが、まだユーザが多いようなので、PIC電子オルゴール初心者の学習用にサンプルコードを保持している。おもちゃへの換装用には16F18xxxがお薦めだ。

12F1612と16F1579はMSSPモジュールを内蔵していないので、I2CとSPI通信をソフト処理で行っている。そのため、音声再生とオルゴール演奏を同時に動かすとアンダーランが生じてしまうので、応用範囲が限られる。価格面でのメリットがあればと思ってサンプルを作ったが、意味が無かった。

12F1501と16F1503は最廉価で、これらを使ってSDカードからWAVファイルを再生する 「PICでSDカード再生」 を公開している。これをPIC電子オルゴールに統合した。これらのデバイスは内部オシレータが16MHzで、オルゴール演奏をさせるにはCPUが足りない。そのため音声再生のみのモデルになる。


【プロジェクトの説明】
機能とデバイスの組み合わせで個々にプロジェクトが作られていて、その組み合せはプロジェクト名に織り込まれている。

demo
消防車・パトカー・救急車のサイレン音を電子オルゴールで演奏するモデル。

kyoku
メモリが許す限り多くの曲を収容したモデル。音源は正弦波の基本波と4次高調波をミックスしたもの。

ongen
音源のバリエーションを聞かせるモデル。音源はピアノ・正弦波類・リング変調波など。

onsei
電子オルゴール演奏と音声再生を同時実行するモデル。但し、プログラムメモリが2kワードのデバイスは音声データだけでメモリが一杯になるので、音声再生のみを実装している。

PICxxx
xxxでターゲットのデバイス名を示す。

PROG
音声データをプログラムメモリに収容したモデル。

I2C
音声データを外付けの24FC512に収容したモデル。24FC512に入れるデータのプロジェクトは「Mirrorna_24FC512」。

SD
音声データをSDに収容したモデル。格納ファイルは「SD\ANPANMAN.wav」。

demo・kyoku・onseiのモデルは200Ωスピーカーまたは圧電スピーカーをPICから直接駆動するためにBTL出力としている。また、電源オンで演奏開始する。

PROG・I2C・SDのモデルはトリガ入力ピン(RC0~5)を操作して、演奏曲と再生音を選択し動作開始する。

例えば、「onsei_PIC18857_SD」は電子オルゴール演奏とSDからの音声再生をコンカレントに実行するモデルで、ターゲットは16F18857。RC0~RC5で演奏曲と再生音を選択する。

watanabe
糸魚川のおもちゃDr渡辺様が作られた楽曲を収容したモデル。PIC電子オルゴールの長所を上手く引き出してくれている。他のモデルでは11分のオートパワーオフが仕掛けてあるが、このモデルはエンドレスに演奏し続ける。開発作業のBGMに最適だ。


【プロジェクトの構成】
プロジェクトは単一のソースコードで構成されていて、ソースコード名は「プロジェクト名.asm」となっている。そのソースコードからオルゴールエンジン・音符データ・波形データなどがincludeされる。

下記のデバイスについては、デフォルトのリンカースクリプトではプログラムメモリのセグメントが分断されているので、PIC電子オルゴール向けに1セグメントにしたものを用意している。

16F1579
16F1705
16F1709
16F1827
16F1828
12F1840


【PIC電子オルゴールのセールスポイント】
今までのおもちゃ修理事例からPIC電子オルゴールのメリットを紹介する。

①マイコンだから演奏の自由度が高い。
うたおう!おうた カラオケ絵本」の修理では、カラオケであることから添付の楽譜通りに演奏しないといけない。PIC電子オルゴールは音符データを自由に作れるので元々の演奏内容を忠実に再現することが可能だ。演奏の表現としてベロシティ、テンポ、ピッチベンドの動的なコントロールも可能である。

②音声再生もコンカレントに実行できる。
電子オルゴールは音符データに従って演奏音のPCMデータを計算してPWM出力している。音声再生は、音声のPCMデータを電子オルゴールで計算したPCMデータに加算するだけでコンカレント実行が実現できる。「不思議なドレッサー ミラーナ」では、オルゴールを演奏しながら女の子がしゃべったり、効果音も同時に鳴らしている。
音声再生のチャネルは最大3個まで実装できる。つまり3音声まで同時に再生できるということだ。

③効果音もオルゴール演奏で実現できる。
効果音を音声再生でやると音声データが嵩張って大きなメモリが必要になる。パトカーや救急車のような音は音符表現すればオルゴール演奏で効果音を出すことができる。「キッズドライバーのハンドルV2」ではパトカー、救急車と消防車のサイレン音をPIC電子オルゴールで演奏している。サイレンの音程が滑らかに上下するのはピッチベンドコントロールの機能である。消防車の鐘の音は実際の鐘の音をオルゴールの音源データとして用いているのでかなりリアルに演奏できている。

④音源の自由度が高い。
消防車の鐘の音もそうだが、実際の楽器音をPCMデータにして音源データとすることで、楽器の音色を表現することができる。「電子オルゴール+音声再生」ではピアノの音色やリング変調による金属的な音色で演奏している。

⑤おもちゃの制御も同時に実行できる。
オルゴール演奏と音声再生をコンカレントに実行しながらおもちゃの制御も同時に行わないとおもちゃの修理には使えない。
アンパンマン電動レールでGO!GO!DX」では赤外線信号のデコードとモーター制御、更にバッテリー電圧の監視も同時に行っている。

⑥外部メモリを利用して長時間の音声再生ができる。
I2CインタフェースのシリアルEEPROM(24FCxxxなど)やSDカードから音声データを読み込んで、音声再生させることができる。SDカードなら数時間の音声を扱うことができる。
24FC512を繋いだ修理事例は「不思議なドレッサー ミラーナ
SDカードからの音声再生の事例は「SDカードからの音声再生


【PIC電子オルゴールの開発経緯】
①最初はビープ音から
今でこそサンプリングシンセ擬きの仕掛けになったが、最初は音高と音価に従ってポートをH/Lにして矩形波を出力する「ビープ音」だった。1つのポートには1つの音しか出せないため、複数ポートの出力を外部でミックスして複数パートの演奏をやっていた。

②PCM化
PWM内蔵の廉価なPICが出回り始めてPWMを使ったD/A変換が実装できるようになったので、内部の処理では音のデータをPCM形式で扱うようにした。単調なビープ音にエンベロープを付けて、少しはマシな楽音表現になった。パート数を増やすよりもエンベロープ表現を取込んだ方がオルゴール演奏としては効果が大きい。両方実現できれば良いのだが、廉価なPICではCPU能力が貧弱で無理だ。今のところパート数は通常2パートで、3パート演奏が限界だ。
音源もビープ音からPCM音源に替えた。音色のバリエーションを実現するのにリアルタイムに波形演算を行ったのではCPUが足りない。そのため、波形計算を予めPCで行って、その結果をPCM音源としてPICに持ち込むことにした。実際の楽器音をサンプリングしたPCM音源も再生できるが、当初の発想はPICの処理能力を補うための手法だった。
PCM化によってベロシティとピッチベンドの動的なコントロールが可能になった。

③音声再生機能を追加
内部処理をPCM化したことで、PCM録音された音声データの再生機能も容易に追加できた。

④外部メモリのサポート
音声データは嵩張るので、長時間の音声はPICの内蔵メモリには収まり切らない。そのため、容量の大きなメモリを外付けすることにして、I2CインタフェースのシリアルEEPROMとSDカードの接続をサポートした。
SDカードは、PICの性能が低いためFATシステムは実装できず、物理層でのアクセスを行っている。MP3デコードもできないためWAV形式のみのサポートとなる。
スポンサーサイト
  1. 2017/05/29(月) 21:42:37|
  2. 電子オルゴール+音声
  3. | コメント:2

クリスマスリースの修理(マイコン換装)

本件は、(千葉県)鎌ケ谷おもちゃの図書館「あ・そ・ぼ」おもちゃ病院様の修理事例であり、つつじが丘おもちゃ病院(当院)はファームウェアの開発を請け負った。
当記事には依頼元の 鎌ケ谷おもちゃの図書館「あ・そ・ぼ」おもちゃ病院様 から提供していただいた情報や資料が含まれている。

【経緯】
「クリスマスリース」のCOBチップが不良のため、PICマイコンで換装することになり、ファームウェアの開発がつつじが丘おもちゃ病院へ依頼された。詳細は ここ を参照。
クリスマスリースの修理外観

【機能要件】
①オルゴール演奏
・演奏開始のトリガ信号を受けて、クリスマス曲を演奏する。

・収容曲は「あわてんぼうのサンタクロース」と「ジングルベル」の2曲で、交互に演奏する。

・1回のトリガで1曲を演奏し、演奏中断はしない。

②LED点滅
・演奏中は2個のLEDを曲に合わせて点滅させる。

・パート0の音符コード下位2ビットをLEDの駆動に使うことで、曲に合わせて点滅しているように見せる。

③モーター制御
・演奏中はモーターを連続駆動させる。

④その他の動作条件
・電源は4.5V

・演奏していないときはSleepする。

⑤ポートの割当て
;RA0:PWM(CWGB)出力(負極性)、ICSPDAT
;RA1:モーター制御出力(正論理)、ICSPCLK
;RA2:PWM(CCP1)出力(正極性)
;RA3:演奏開始SW入力(負論理、内部プルアップ)、Vpp
;RA4:LED0出力(正論理)(デバグ時はTX)
;RA5:LED1出力(正論理)

【ファームウェア】
⑥開発したファームウェア
・開発プロジェクトと設計資料一式は ここから ダウンロードできる。

・ターゲットデバイスは12F1840と16F18313用にそれぞれ作った。

・プロジェクトディレクトリは、12F1840用が demo_PIC1840.X 、16F18313用が demo_PIC18313.X となっている。

・Sleep時の待機電流の実測値は、12F1840が16uA、16F18313が25uAだった。

【デモ演奏】
演奏音はこちら

  1. 2017/05/18(木) 10:18:15|
  2. マイコン換装
  3. | コメント:1

キッズドライバーのハンドルV2(電子オルゴール・音声再生換装)

0.前振り
①「キッズドライバー」はモデルチェンジが行われていて、数種類のものがあるようだ。この記事で扱うのは、当ブログの 過去記事 のものに比べて新しいタイプのもので、仮にV2と呼ぼう。現時点でメーカーサイトには更に新しいタイプのものが載っている。

過去記事 のものに比べてV2は、アンパンマンボタンが無くなり、エンジンキーが回すタイプから押しボタンに変わっている。また、パトライトが追加されている。これらの違いにより、過去記事で公開しているファームウェアではV2のマイコンを換装することができない。

③今回は、V2をターゲットにしたマイコン換装用のファームウェアを開発した。

④本記事は 過去の修理事例 を元に、V2対応としてバーチャルに再構成したものである。実際におもちゃの修理に利用した事例は こちら


1.患者
キッズドライバーV2のハンドル(アガツマ)
キッズドライバーのハンドルV2外観

2.症状
①何を操作しても全く動かない。

3.診察
①基板にはCOBチップとドライブ用のTrが主な部品である。

②COBチップの際まで電源供給は正常。

③すべてのSWはベタ読み(非マトリクス)で、ローサイドに配置されている。COBチップの内部プルアップ。COBチップの際で信号の正常を確認した。

④外部のクロック回路もリセット回路も無い。

上記の状況からCOBチップ故障と診断した。

4.治療
【機能要件】
①動画サイトにアップされている紹介動画を参考に、PICでの実現可能性を考慮して、機能要件を定めた。

;ポートの割当て
;RA0:SWセンス0(負論理)
;RA1:SWセンス1(負論理)
;RA2:PWM3出力(正極性)
;RA3:SWセンス2(負論理)
;RA4:SWセンス3(負論理)
;RA5:SWセンス4(負論理)
;RC0:SWセレクト0(負論理)
;RC1:SWセレクト1(負論理)
;RC2:パトライトLED出力(正論理)
;RC3:ウィンカー左LED出力(正論理)
;RC4:ウィンカー右LED出力(正論理)
;RC5:顔LED出力(正論理)
;
;SWの割当て
;セレクト0
; センス0:エンジン(ソフトでオルタネイト動作にする)
; センス1:救急車
; センス2:パトカー
; センス3:消防車
; センス4:♪(アンパンマンマーチ)
;セレクト1
; センス1:ウィンカー右(ハードがオルタネイト動作)
; センス2:ウィンカー左(ハードがオルタネイト動作)
; センス3:クラクション
;
;音声の割当て
;1:しゅぱつします
;2:エンジン1
;3:エンジン2
;4:ウィンカー
;5:クラクション
;
;音声再生チャネルの割当て
;エンジン音は流れ続けるので、VOICE0を専有させる
;ウィンカーとクラクションはVOICE1でクラクション優先とする
;
;曲の割当て
;1:アンパンマンマーチ
;2:アンパンマンたいそう
;3:サンサンたいそう
;4:救急車サイレン
;5:パトカーサイレン
;6:消防車サイレン
;
;動作仕様
;エンジン
; エンジンSWは、ハードはモーメンタリ動作だが、ソフトでオルタネイト動作に見立てる。
; キースキャン周期(20ms)毎にSW状態の履歴を採り、140ms以上オフ後のオンでオルタネイト状態をトグルする。
; トグルオンでオープニングを開始する。
;  「しゅぱつします」・エンジン1・エンジン2を順に再生した後、エンジン2を繰返し再生する。
;  オープニング開始から5秒間はウィンカーLED右左とパトライト右左を同時に点滅する
;   0.6秒点灯、0.6秒消灯を繰返す。
; トグルオフで音声再生とLED点滅を止める。
; オープニング開始から4.8秒後にVOICE0を1/2ミュートする。
; エンジン稼動はeng_noで判別する。
; オープニング動作はeng_tmrで判別する。
;
;ウィンカー
; オープニング中はウィンカーを無効とする。
; ウィンカーSWは、ハードはモーメンタリ動作で、操作レバーが状態を保持している。
; ウィンカーSWがオンになるとウィンカー動作を開始し、オフになるまで動作を続ける。
; ウィンカーLEDを0.6秒点灯、0.6秒消灯を繰返す。点灯のタイミングでウィンカー音を再生する。
; ウィンカーSWがオフのときは点滅のタイマーをクリアして、次回は0.6秒点灯から始まるようにする。
;
;クラクション
; オープニング中はクラクションを無効とする。
; クラクションSWがオンのときは顔LEDを点灯し、クラクション音を繰返し再生する。
;
;メロディ
; メロディSWは、ハードはモーメンタリ動作だが、ソフトでトリガ動作に見立てる。
; キースキャン周期(20ms)毎にSW状態の履歴を採り、140ms以上オフ後のオンでトリガする。
; トリガオンになるとアンパンマンマーチ・アンパンマンたいそう・サンサンたいそうをラウンドロビンに1曲演奏する。
; 他の曲を演奏中に♪SWがトリガオンするとアンパンマンマーチ・アンパンマンたいそう・サンサンたいそうに切換える。
;
;救急車
; 救急車SWがオンになると救急車サイレンを1曲演奏する。
; 他の曲を演奏中に救急車SWがオンになると救急車サイレンに切換える。
; 演奏中はパトライトを点滅する。
;  左右同時に0.6秒点灯、0.6秒消灯を繰返す。
;  オープニング中の点滅制御はエンジンを優先する。
;
;パトカー
; パトカーSWがオンになるとパトカーサイレンを1曲演奏する。
; 他の曲を演奏中にパトカーSWがオンになるとパトカーサイレンに切換える。
; 演奏中はパトライトを点滅する。
;  左右同時に0.6秒点灯、0.6秒消灯を繰返す。
;  オープニング中の点滅制御はエンジンを優先する。
;
;消防車
; 消防車SWがオンになると消防車サイレンを1曲演奏する。
; 他の曲を演奏中に消防車SWがオンになると消防車サイレンに切換える。
; 演奏中はパトライトを点滅する。
;  左右同時に0.6秒点灯、0.6秒消灯を繰返す。
;  オープニング中の点滅制御はエンジンを優先する。
;
;Sleep
; 何も動作していないときはSleepする。
; SWセンス0~3の立下りでIOC割込みによりWakeUpする。
; WakeUp後はソフトRESETし、ファームウェアを再起動する。

②電源は元々の単三電池3本の4.5Vとする。

【設計】
③必要メモリを少なくするため、3種類のサイレン音は音声再生ではなく電子オルゴールで発音させる。

・メモリの少ないPICで多くの効果音を発音させるための好適な方法だ。

・サイレン音と消防車の鐘の音を電子オルゴールのPCM音源として演奏させることで、リアルな音色が出せる。

・パトカーと消防車のサイレン音は周波数が滑らかに昇降する。これは電子オルゴールのピッチベンド演奏で表現する。

④エンジン音・ウィンカー音・クラクション音は音声再生で発声させる。エンジン音は常時鳴り続けるので1つの音声再生チャネルを専有させる。

⑤8個のSWは元々の構成ではベタにCOBチップで読んでいるが、16F1705ではポートが足りないので、SWをマトリクス構成にする。

・基板パターンは5個のSWが1組になっているので、5×2のマトリクス構成とする。

・一般にはセレクト信号の廻り込みを防止するためのダイオードを各SWに装着するのだが、今回は部品点数を少なくするため割愛する。そのためオン状態が継続するSWは1個に抑える必要がある。ウィンカーSWがそれに該当するが、左右のウィンカーSWが同時にオンになることは有り得ないので問題は無い。

・他のSWも含めて、複数のボタンが同時に押されると誤読が発生するが、使用上は問題ないと考える。

・SW信号とポートの対応は【機能要件】を参照。

・SWのセレクト線とセンス線は内部プルアップを利用するため、負論理とする。

【回路図】
⑥換装後の回路は下記のとおり。
キッズドライバーのハンドルV2回路図

【ファームウェア】
⑦電子オルゴール+音声再生Ver5_6をベースに、SWの評価と曲・音声の制御をカスタマイズして開発した。

⑧開発したファームウェアの設計資料とプロジェクト一式、音源ソースは ここから ダウンロードできる。

【演奏音】
演奏音は これ


  1. 2017/05/17(水) 16:45:26|
  2. マイコン換装
  3. | コメント:1

アンパンマン電動レールでGO!GO!DX(マイコン換装)事例2

1.患者
アンパンマン電動レールでGO!GO!DX(アガツマ)
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例2外観

幼児向けの乗用おもちゃだ。

【メーカーサイトの説明書き】
●レールを敷いても、レールなしでも遊べます。
●レバーの切り替えで電動走行、フリー走行が選べます。
●コントローラーには前進・後進・ストップの走行操作機能の他に「アンパンマンのおしゃべりボタン」と「アンパンマンのマーチが流れるメロディボタン」が付いています。
●セット内容:本体一式、レール12本

ハンドルのところに赤外線リモコンが付いていて、幼児が操作することもできる。また、取り外して親御さんが操作することもできる。

2.症状
①全く動作しない。

3.診察
①リモコン送信機から赤外線は出ている。赤外線信号コードの詳細は 「機能設計」 の項を参照。

②受信側を診る。
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例2診察1
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例2診察2
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例2診察3

・基板に電源は供給されていて、COBの間際まで来ていた。

・赤外線受信モジュールからの信号はCOBの間際で波形観測し、信号の立上り/立下り、信号コードの正常性を確認した。

・送信機から「GO」を送信すると過電流が流れた。HブリッジはハイサイドがFDS4935、ローサイドがAPM7328で構成されていて、停止状態ではゲートドライブ電圧は正常だった。しかし、APM7328のピン2(ゲート)はGNDレベルだがピン1(ソース)~ピン8(ドレイン)間が導通していた。配線のチェックでは短絡箇所は認められず、APM7328のピン8とピン7(ドレイン)を基板から浮かせて確認したところ、やはりAPM7328の内部でピン1~ピン8間が短絡状態だった。APM7328の不良が確定した。

・APM7328のドレインを基板から浮かせた状態で、送信機から「GO」/「BACK」を送信すると、ゲートドライブは正常に変化することを確認した。デコード機能とHブリッジのドライバーは正常に働いている。

③COBの音声出力ポートは常にHが出力されていて、送信機から音声を出力する機能コードを送信しても変化しない。通電しない状態でポート~電源間および周辺配線間は高抵抗値であり、COBチップの動作異常である。

4.治療
①動作不良となったCOBチップをPICマイコンで換装する。Hブリッジも壊れているので、全体を新しい基板に組むことにした。

②音声再生機能の場合は実装メモリ量がデバイス選定のキーポイントになる。 前回の修理事例 では当時コストパフォーマンスが最良の16F1705を採用したが、メモリが8kワードしかなく効果音だけでメモリが満杯になった。今回は、今春から秋月で取り扱いが始まった16F18326(2017年秋月@130円)を採用する。メモリは16kワードあり、アンパンマンのおしゃべりが入れられる。

③機能設計
;ポートの割当て
;RA0:PWM(CWGB)出力(負極性)、ICSPDAT
;RA1:空き、ICSPCLK
;RA2:PWM(CCP1)出力(正極性)
;RA3:MCLR、Vpp
;RA4:赤外線信号入力(負論理)
;RA5:空き
;RC0:バッテリー電圧ADC入力
;RC1:モーター正転出力
;RC2:モーター逆転出力
;RC3:TX
;RC4:空き
;RC5:空き


;赤外線信号
;フレーム構成:リーダ+機能コード8ビット+反転コード8ビット+トレイラ
;リーダ:オン2.9ms+オフ1.7ms
;ビット値0:オン0.6ms+オフ0.6ms
;ビット値1:オン0.6ms+オフ1.2ms
;トレイラ:オン0.6ms
;フレーム周期:100ms


;曲と音声の対応
;曲1:アンパンマンのマーチ
;曲2:アンパンマンたいそう
;曲3:ミッキーマウスマーチ
;曲4:小さな世界
;音声1:効果音STOP
;音声2:効果音GO
;音声3:効果音BACK
;音声4:ぼくアンパンマン
;音声5:いっしょにいこう
;音声6:ガタンゴトン
;音声7:カンカンカン
;音声8:しゅっぱつします


;赤外線機能コードと動作
;STOP:b'11101110'
; 停止動作中、完全停止中は無視する。
; 停止する。
; VOICE0で音声1を3回繰返し再生する。
;
;GO:b'11001100'
; 完全停止していなかったら無視する。
; VOICE0で音声2を3回繰返し再生後、前進する。
;
;BACK:b'10101010'
; 完全停止していなかったら無視する。
; VOICE0で音声3を3回繰返し再生後、後進する。
;
;アンパンマン1:b'00001001'
;アンパンマン2:b'01001001'
;アンパンマン3:b'10001001'
;アンパンマン4:b'11001001'
; これらの機能コードは4つとも同じ動作をする
; VOICE1が再生中のときは無視する。
; VOICE1で音声4~7をラウンドロビンに再生する。
; 音声4と音声5は1回のみ再生する。
; 音声6は4回繰返す。
; 音声7は8回繰返す。
; 音声8は1回のみ再生する。
;
;メロディ1:b'00010001'
;メロディ2:b'10010001'
; これらの機能コードは2つとも同じ動作をする
; 演奏中のときは無視する。
; 曲目1~4をラウンドロビンに演奏する。


;バッテリー電圧の監視
;HブリッジのFETを完全にオン/オフさせるため、電源電圧が4.7V以下のときはFETをドライブしない。
;バッテリ電圧の低下を4.7Vまで許容するため、制御マイコンは Vdd=3.3V で稼働させる。
;バッテリーの過放電を防止するため、電源電圧が5.1V以下のときはバッテリーLOWと判定する。
;この5.1Vは鉛蓄電池の放電終止電圧(1.7V×3セル=5.1V)である。
;一定時間バッテリーLOWが継続したらFETドライブ出力をLとし、「バッテリーLOW」を警告する曲を演奏する。


④回路図
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例2回路図

⑤基板製作
基本部分
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例2治療1
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例2治療2

実機走行確認しながら調整した結果
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例2治療3
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例2治療4

部品代は290円
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例2診察1部品代

⑥ファームウェア
・PWM周期の32us毎に赤外線受信モジュールの出力をポーリングする。エンコード信号の最小パルス巾は600usなので、それで十分だ。TMR2割り込みサービスの中でデコードを実行する。

・バッテリー電圧のチェックもTMR2割り込みサービスの中で実行する。

・送信機の「アンパンマン」ボタンは押下する毎に4種類の機能コードがラウンドロビンに送信され、操作する人は送信する機能コードを選べない。そのため、受信側では4種類の機能コードのどれを受信しても、おしゃべり2種類と効果音2種類の合わせて4種類をラウンドロビンに発声させることにした。

・「メロディ」ボタンも上記と同様に2種類の機能コードが交互に送信される、操作する人は送信する機能コードを選べない。そのため、受信側では2種類の機能コードのどれを受信しても、4種類の曲をラウンドロビンに演奏させることにした。

・バッテリー電圧が低下した場合はHブリッジのFETをオフして、FETを保護する。

・バッテリー電圧の低下が継続した場合は車体駆動を停止し、「バッテリー電圧低下の警告曲」を演奏する。

・メモリを節約するため、おしゃべりの音声データは4ksps、効果音は3~4kspsとサンプリングレートをかなり落としたがおもちゃとしては実用レベルと思う。

・開発したファームウェアのプロジェクト一式と開発資材は ここから ダウンロードできる。

⑦発音のサンプル
・車体の電源SWをオンすると「しゅっぱつしま~す」のオープニングメッセージが流れる。

・ピューン↑ が「GO」、ブッブッブ が「STOP」、ピューン↓ が「BACK」の効果音。

・半音ずつ下がってくるのが「バッテリー電圧低下の警告曲」。
再生音はこれ
  1. 2017/05/16(火) 19:22:27|
  2. マイコン換装
  3. | コメント:0

プロフィール

大泉茂幸

Author:大泉茂幸
名張市つつじが丘おもちゃ病院
名張市つつじが丘南3番町129
tutuji@cb4.so-net.ne.jp
090-5534-6494
連絡は上記のメール、またはSMSでお願いします。

子どもの頃から趣味は電子工作一筋でやってきました。理科離れが進む中で科学技術に興味を持つ子どもが少しでも増えて行くことを願って、子ども達に電子工作の活動の場を提供しています。

1981年からおもちゃ病院の活動を始め、2014年に三重県名張市への移住を機に「つつじが丘おもちゃ病院」を開院しました。自分でおもちゃを設計し製作する【おもちゃ工房】と、マイコンを応用した電子工作を楽しむ【マイコンクラブ】も併設しています。新規参加メンバーを募集しています。

当ブログで公開している技術情報や成果物のご利用および再配布はフリーです。読者様の技術活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。

カテゴリ

おもちゃ修理技術 (83)
¦ ・電子オルゴール+音声 (28)
¦ ・音声再生・録音再生 (4)
¦ ・2.4GHzラジコン (29)
¦ ・レガシーラジコン (12)
¦ ・赤外線リモコン (4)
¦ ・RFID (3)
¦ ・タッチセンス (3)
ツール製作 (22)
¦ ・プログラマー (15)
¦ ・USB-シリアル変換 (3)
¦ ・その他のツール (4)
修理事例 (149)
¦ ・マイコン換装 (69)
¦ ・電子・電気修理 (58)
¦ ・メカ修理 (22)
製作記事 (4)
PIC開発 (4)
おもちゃ病院 (8)
ドクター研修会 (2)
未分類 (2)

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR