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

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

スーパーショベル(CCP)(COB故障をPICで補完)の改善

故障したICやマイコンの代替品をお作りするサービス」 でラジコンショベルカーの故障COBをPICで補完するためのファームウェアを開発し提供済みだが、今回は要件をより合理的に変更してファームウェアを改善した。

【改善点】
①依頼元からはターゲットとして16F1705がご指定だったが、必要なポート数が少なくて、ピン数の少ない廉価なデバイスに変更した。12F509、tiny13Aの2種を新たに開発した。

②入力となるエンコード信号の立ち下がりが訛っていて、より安定な動作を担保するためtiny13Aではコンパレータ入力とした。


【設計】
①8ピンPICで最廉価なのが12F509(2018年秋月価格@50円)なので、これで前作と同等の機能を実現する。但し、前作の「ch選択信号出力」は必要性を感じない(僕の個人的見解)のでサポートしない。必要ならポートは空きがあるのでサポートは可能。

②12F509はタイマーがTMR0しかなく、割り込み機能もないので、TMR0のクロック周期を1usにして、エンコード信号のパルス巾計測と2msのキャタピラ駆動制御のタイミング検出を行うようにした。

③右キャタピラの駆動のみであれば10F322でも可能で、5円安くできる。しかし、左右のキャタピラの駆動仕様を合わせないとアンバランスになるので、10F322はやめた。

④ATtiny13Aはエンコード信号をコンパレータで受ける。リファレンス電圧は内部固定電圧の1.1Vとする。

⑤ATtiny13Aは割り込み機能があるのだが、初期設定やポートアクセスなどのハードウェア依存部分を除いて12F509とソースコード互換を保つ目的で、割り込みは使用しない。

⑥16F1705でも割り込みは必ずしも必要ではないので、依頼元へ提供したものとは別物として、今回のソースコードを共通化したものを開発することも考えたが、この要件で16F1705の選択はコスト的にあり得ないので、意味の無い開発作業はやめた。


【ダウンロード】
本ファームウェアの設計資料と開発プロジェクトは ここから ダウンロードできる。
スポンサーサイト
  1. 2018/06/03(日) 16:09:48|
  2. 修理事例
  3. | コメント:0

スーパーショベル(CCP)の修理(COB故障をPICで補完)

本件は、(愛知県)小牧おもちゃの病院様の修理事例であり、COBチップが故障していたため、つつじが丘おもちゃ病院(当院)が提供している 「故障したICやマイコンの代替品をお作りするサービス」 を利用していただいた。
当記事には依頼元の小牧おもちゃの病院様から提供していただいた情報や資料が含まれている。

1.患者
スーパーショベル(CCP社商品ページの画像)
ラジコンショベルカー(COB故障をPICで補完)外観1
ラジコンショベルカー(COB故障をPICで補完)外観2

2.症状
①右側のキャタピラが後退(逆転)しない。正転はする。

②左側キャタピラ、アーム上下、ライト、サウンド、クラクションなど、その他の機能は動作する。

3.診察
①本体側のCOBから右側キャタピラ逆転の信号が出てきていない。COB故障と診断し、つつじが丘おもちゃ病院(当方)へPICのファームウェア開発が依頼された。

4.治療
当院では依頼元からの要件に基いてファームウェアを開発した。

【開発要件】(依頼元から提示)
・エンコード信号を入力し、左右のキャタピラの駆動信号を出力する。

・ターゲットは16F1705とする。

・ピン割当ては以下とする。

RA0:右キャタピラ前進(正転)正論理出力
RA1:右キャタピラ後退(逆転)正論理出力 
RA2:左キャタピラ前進(正転)正論理出力
RA4:左キャタピラ後退(逆転)正論理出力
RA5:ch選択(上記何れかの駆動がアクティブのときL出力)
RC0:エンコード信号入力

・キャタピラ駆動信号は入力オフ後も200ms保持する。

・正逆転切り替え時のデッドタイムは200msとする。

・正逆の相反するコード受信は正逆ともに出力をLとする。

・エンコード信号の信号波形を以下に示す。

説明の中でCh番号は下記の操作に対応する。
Ch1  右キャタピラ-正転
CH2  右キャタピラ-逆転
CH3  左キャタピラ-正転
CH4  左キャタピラ-逆転

フレーム全体
ラジコンショベルカー(COB故障をPICで補完)エンコード波形1

操作時の信号
ラジコンショベルカー(COB故障をPICで補完)エンコード波形2
ラジコンショベルカー(COB故障をPICで補完)エンコード波形3
ラジコンショベルカー(COB故障をPICで補完)エンコード波形4
ラジコンショベルカー(COB故障をPICで補完)エンコード波形5

STOPコード
ラジコンショベルカー(COB故障をPICで補完)エンコード波形6
ラジコンショベルカー(COB故障をPICで補完)エンコード波形7

【設計】(当院で実施)
・依頼元から提示されたエンコード信号波形を帰納法でエンコードルールを推理し、デコード処理を設計した。

//デコード処理
//1.4ms以上のHの後、Lへの変化でフレーム開始とする。
//続くLとHの1組で1ビットを表す。
//L期間は変化せず、150us~300us。
//ビット値はH期間で判別する。200us~300usはb'0'、500us~700usはb'1'。
//4ms以上のLでフレーム終了とする。
//1フレームは22ビット固定で、フレーム終了まで受信し、受信ビット数が22ビットでなければ無効とする。
//上記の条件に当てはまらない場合はデコード結果を無効とし、1フレーム開始待ちに戻る。
//キャタピラの制御値はフレームの先頭4ビットで示され、ビットの並びは以下のとおり。
//先頭からb0、b1、b2、b3の順で、ビット値0はインアクティブ、ビット値1はアクティブを示す。
//b0:右キャタピラモーター正転
//b1:右キャタピラモーター逆転
//b2:左キャタピラモーター正転
//b3:左キャタピラモーター逆転

//STOPコードは通常のフレームのb0~b3が全て0に設定されたものである。
//従って、デコーダはSTOPコードも通常のコードとして処理すればよい。

・その他の処理方法は
//TMR1のクロック周期を1usとし、エンコード信号のパルス巾を計時する。
//2ms周期のTMR0割込みでデコード結果に対応する駆動信号をピンへ出力する。


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

【実装】(依頼元で実施)
ラジコンショベルカー(COB故障をPICで補完)実装

【後日談1】
このラジコンは、エンジンをスタートさせないと、キャタピラや運転台の駆動ができない仕組みになっているそうだ。そう言えば他の似たおもちゃでもそのようになっていたのを思い出した。
サウンドも、サウンドONを指示しておかないと音は出ないとのこと。

提供したファームウェアはエンジンの動作状態に関わらず、キャタピラを駆動してしまう。要件の確認漏れだった。

しかし、これらの制御は送信機側で行われていて、エンジンスタートするまではキャタピラの駆動コードは送信されないそうだ。またサウンドONについても同様とのこと。従って、提供したファームウェアで元々の動作仕様になるので問題は無いことが判った。

【後日談2】
このファームウェアの重大な欠陥が発覚した。
メーカーの商品ページを見たら、スーパーショベルはch1~3の設定が可能であることが判った。

しかし、このファームウェアではch設定をチェックしていないので、送信機と受信機でch設定が違っていてもキャタピラを駆動してしまう。ch設定に関して、SWの信号とエンコードの要件は依頼元から提示されていなかったが、当方も確認を怠っていた。競合するラジコンが近辺にいなければ動作上の問題は生じないのが救いである。

リコールを含む善後策の実施を依頼元へお願いしたところ、患者様から 「ch設定機能は使わないので、現状のままでよい」 との回答を得たとの連絡をいただいた。
  1. 2018/05/29(火) 10:38:07|
  2. 修理事例
  3. | コメント:0

ミミクリーペットの修理(ボイスレコーダー・チェンジャー換装)新バージョンの改善

ミミクリーペットの修理(ボイスレコーダー・チェンジャー換装)新バージョン の利用者様から、「動作しっ放しになる」 とのクレームをいただいた。

【原因】
音声入力が無いときにも、「音声有り」と判定してしまっているようだ。
音声レベルの判定は、マイクアンプ出力を直流結合でADCに入れて、ADC結果を一定の閾値と比較している。
マイクアンプはトランジスタ1石の自己バイアス回路のため、トランジスタの特性のバラつきによって動作点が変わる。
そのため、閾値は #define にて定義し、容易にチューニングできるようにしていた。
不具合というより、チューニングの問題だった。
しかし、動作点は温度やトランジスタの継時変化によって、変動する可能性がある。
その点で、固定した閾値でADC結果を評価するやり方は不味い。

ミミクリーペットの修理(ボイスレコーダー・チェンジャー換装)新バージョンの3V対応 および
ミミクリーペットの修理(ボイスレコーダー/チェンジャー換装) でも同様の問題がある。


【改善】
ADC結果の平均値を求めて、それとの差分を以って音声レベルを判定する、ことにした。
回路に例えると、直流結合から交流結合に変える、と言うことだ。そうすることで、動作点の変動が音声レベルの判定に影響し難くなる。
マイクやトランジスタの特性により音声レベルは個々に変わるので、閾値のチューニングは従前どおり必要である。

今回の改善はファームウェアの改善のみで、回路に変更は無い。

なお、ミミクリーペットの修理(ボイスレコーダー/チェンジャー換装) は陳腐化してしまったので、今回の改善は行っていない。


【ダウンロード】
元の記事のダウンロードファイル を改善後のものに差し替えている。
  1. 2018/03/21(水) 09:06:39|
  2. 修理事例
  3. | コメント:0

キーボードおもちゃの修理(マイコン換装)

本件は、 おもちゃの病院新津(新潟)様 の修理事例 であり、つつじが丘おもちゃ病院(当院)はファームウェアの開発を請け負った。
当記事には依頼元のおもちゃの病院新津(新潟)様から提供していただいた情報や資料が含まれている。

1.患者

よくあるキーボードおもちゃだ。
キーボードおもちゃの修理(マイコン換装)外観


2.症状
3.診察

依頼元の診察によるとCOBチップの不良とのこと。


4.治療

当院は故障したCOBチップをPICで換装するためのファームウェアの開発を請け負った。

【要件】

素のキーボードのおもちゃは多機能であるが、PIC電子オルゴールで実現できる範囲の検討を含めて、要件定義もお任せいただいた。

・鍵盤の操作で音階を演奏すること

・数種類の音色のバリエーションを持つこと

・自動演奏曲を持つこと

・数種類の効果音が出せること

・動作中はLEDをチカチカさせること


【設計】

①キーボードとオルゴールは定まった音程で音を出すところは似ていて、キーボードおもちゃの修理にPIC電子オルゴールを適用することはできそうだ。

②しかし、オルゴールは音符で表される長さ(音価)に従って音を出すが、キーボードでは人が鍵盤を押している間は音を出し、鍵盤を離すと音を止める必要がある。これを以下の処理方法で実現する。

・鍵盤が押されたら鍵盤に対応する曲を演奏開始する。

・曲は1個の音符でできていて、その音符を永久に演奏し続けるものにしておく。具体的には、無条件分岐を使って1個の音符を繰り返させる。さらにタイ修飾することで、音符の切れ目を殺す。

・鍵盤が離されたら演奏中断させる。具体的にはAPIのSONG_SEL()をパラメータ値を0としてコールする。

③鍵盤の数だけ曲を用意する。例えば37キーの場合は37曲になる。

④音色のバリエーションについては、矩形波で平坦なエンベロープはオルガン的な音色になる。ストリングは鋸波でエンベロープのアタックを若干長くとる。ピアノ音は生ピアノのサンプリング波形でエンベロープもピアノに合わせる。

⑤現行のPIC電子オルゴールでは曲に音色が固定されるので、3種類の音色を表現するには音程毎に3種類の曲を用意することになり、37キーでは111曲になる。収容曲数の上限は255なので実現は可能である。

⑥鍵盤での手動演奏と電子オルゴールでの自動演奏、それと、音符で表現できる効果音と音声再生での効果音も入れる。

⑦キーマトリクスの回路は、依頼元から以下の資料をいただいた。なお、作成途上のものであり、キーマトリクス部分のみを参考にして欲しいとのこと。
キーボードおもちゃの修理(マイコン換装)キーマトリクス

 本ファームウェアでは、音色の切り替えや手動演奏/自動演奏/効果音の機能切り替えの操作も含めて、セレクト線6本×センス線8本 の構成で利用することとした。

【発生音】
発声音のサンプルはこれ

【ダウンロード】

キーボードおもちゃ用ファームウェアの開発資材は ここから ダウンロードできる。
  1. 2018/03/20(火) 18:56:50|
  2. 修理事例
  3. | コメント:10

アンパンマンことばずかんの修理(センサーピン半田クラック)

1.患者
アンパンマンことばずかん
アンパンマンことばずかん(センサーピン半田クラック)外観

2.症状
①オープニングメッセージは流れるが、絵本にタッチしても全く反応しない。

3.診察
①ペン先端の穴をケータイのカメラで覗いたら、赤外線LEDは光っていなかった。

②イメージプロセッサ「SN9P700ANG-201」のオシレータの波形を観測するとXINもXOUTも0Vに張り付いていた。クリスタルの不良で発振しない場合は、インバータの入出力端子はVccのほぼ1/2になっているハズなので、0Vに張り付いているのはインバータの動作状態がおかしい。

③イメージプロセッサの全ピンの信号を観測したところ、ピン15がH、その他のピンはLに張り付いている。クロックが止まっているので信号に動きが無いのは当然だが、そもそも、イメージプロセッサのVccは複数のピンがあるので、Hのピンが1本だけと言うことは電源が供給されていないことを示している。だから、XINもXOUTも0Vになっていたんだ。なお、ピン15はレギュレータ前の+3.6V電源のようだ。

④唯一ピン接が明らかになっているシリアルEEPRPM「24C02B」(U4)のVccであるピン8を診たら、やはり0Vで、電源が供給されていなかった。
アンパンマンことばずかん(センサーピン半田クラック)EEPROM

・参考にEEPROMのVccと導通があるイメージプロセッサのピンを調べたら 1、3、9、13、23、32 だった。これらのピンのうち何本かがVccピンであるハズだ。

⑤近くに3端子レギュレータと思われる石(U3)があり、そのピン接を探る。制御端子付きの3端子レギュレータのピン接は何種類かが存在する。
アンパンマンことばずかん(センサーピン半田クラック)3端子レギュレータ

・24C02BのVccと導通があるピン5がVout。

・ピン1には3.6Vが印加されており、大きなセラコンでGNDにバイパスされているので、これがVin。

・ピン2はGND。

・ピン3はCONTROLと思われるが、0Vである。GND間の導通をチェックすると数kΩあった。

・ピン3に1kΩを介して、Hを与えるとVoutから3.3Vが出て来た。ピン3はCONTROLに間違いない。

・これで、3端子レギュレータのピン接は下記の通りと判った。
アンパンマンことばずかん(センサーピン半田クラック)3端子レギュレータピン接

・ファミリーチップの「SN9P700FG-201」のデータシートに示されている回路例にもLDO「AME8801」が載っていて、ピン接はこのおもちゃと同じだった。その回路例によると、LDOのENピンはイメージプロセッサ「SN9P700FG-201」のピン29「PWR_EN」から制御されている。つまり、イメージプロセッサがシリアルEEPROMとセンサーの電源を制御している。このおもちゃもそうなっているのであろう。

⑥3端子レギュレータのCONTROLに強制的にHを与えている間は当然Voutが出力されるが、強制Hを止めても5秒くらい出力が続く。CONTROLの信号線は2.2kΩを介してイメージプロセッサのピン19に繋がっていて、そのピンは強制Hにしてから5秒くらい3.6Vになる。しかし、強制Hのままにしていても、その後は0Vになる。センサーが応答しないとか、不具合を検出するとシリアルEEPROMとセンサーの電源をオフするようだ。

⑦CONTROLの信号は「TP6」に出されていて、動作確認時のキー信号のようだ。CONTROLを弄るときはTP6から信号線を引き出すとよい。
アンパンマンことばずかん(センサーピン半田クラック)TP6矢印

⑧3端子レギュレータのCONTROLを強制Hにしてから5秒間程度は、16MHzのクリスタルは正常に発振した。しかし、その後はXIN、XOUTともにVccレベルに張り付く。発振している間もLEDの点灯信号(イメージプロセッサのピン28、ピン31)は出ない。

⑨数分間放置するとオートパワーオフするが、その後にCONTROLを強制Hにするとパワーオンした。この振る舞いの仕掛けは判らない。

⑩5秒程度のイメージプロセッサが動いている間にイメージセンサーとの信号を観測する。イメージセンサーのピン番号はシルク印刷されている。
アンパンマンことばずかん(センサーピン半田クラック)イメージセンサーピン接1
アンパンマンことばずかん(センサーピン半田クラック)イメージセンサーピン接2

・センサーのピン接については、このおもちゃに使われているイメージプロセッサのファミリーデバイスである 「SN9P701」 のデータシートに記述があった。

ピン1(SEN_SD1)
アンパンマンことばずかん(センサーピン半田クラック)センサー波形ピン1(SD1)
ピン1には信号が乗っていない。

ピン2(SEN_SD0)
アンパンマンことばずかん(センサーピン半田クラック)センサー波形ピン2(SD0)

ピン3(SEN_CLK)
アンパンマンことばずかん(センサーピン半田クラック)センサー波形ピン3(CLK)

ピン4(CMD)
アンパンマンことばずかん(センサーピン半田クラック)センサー波形ピン4(CMD)

⑪イメージセンサーのピン1はその信号名「SD1」のとおりイメージセンサーからイメージプロセッサへの信号線であり、SD0には信号が出てSD1には出ないことから、ピン1ラインの断線が疑われる。ピン1の半田付けを確認するとクラックが認められた。導通チェックすると確かに通じていない。
アンパンマンことばずかん(センサーピン半田クラック)センサーピン1クラック矢印

⑫再半田して、ピン1の波形を観測すると
アンパンマンことばずかん(センサーピン半田クラック)センサー波形ピン1(SD1)再半田後

SD1に信号が乗って来た。イメージプロセッサへの通電は途絶えることなく、クロック発振も止まらなくなった。

⑬ペン先端の穴をケータイのカメラで覗くと赤外線LEDの点灯が確認でき、絵本に当てると正常に動作した。

⑭三端子レギュレータのCONTROLの制御を含むイメージプロセッサの動作条件については解明できなかったが、恐らくイメージセンサーからの応答が無いため、電源をオフして、自らはSleepすると思われる。

・このおもちゃは謎が多く、修理にいつも難儀している。デバイスのデータシートや設計情報をお持ちでしたらご教示をいただきたい。

4.治療
①診察の過程で、イメージセンサーのピン1を再半田することで、機能が回復した。

・イメージセンサーの半田付けがクラックした事例は他のおもちゃ病院でも報告されていて、16MHzクリスタルの不良に並んで多い故障個所だ。

・初めからイメージセンサーの半田付けを目視点検すれば早く解決したと思うが、それは結果論であって、論理的な切り分けが正攻法だし、その方が楽しい。
  1. 2018/02/04(日) 22:08:58|
  2. 修理事例
  3. | コメント:1
次のページ

プロフィール

大泉茂幸

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

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

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

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

最新記事

最新コメント

月別アーカイブ

カテゴリ

おもちゃ病院 (7)
技術情報 (9)
修理事例 (143)
製作記事 (77)
ドクター研修会 (2)
PIC開発 (9)
未分類 (9)

訪問者数

検索フォーム

RSSリンクの表示

リンク

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

ブロとも申請フォーム

この人とブロともになる

QRコード

QR