FC2ブログ

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

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

アンパンマンことばずかんのセンサー信号

アンパンマンことばずかんのセンサー信号について、 「DDR SDRAM のようにクロックの正負のエッジを使っているような気がします。」 との情報があったため、実測してみた。

CLK、SD0、SD1、CMDの4つの信号を観測した。下図は 1ms/div での観測波形。
アンパンマンことばずかんセンサー信号1

下図は 100ns/div に拡大したもの。
アンパンマンことばずかんセンサー信号2

クロックの立上りと立下りの両方でSD0とSD1が確定されているように見える。
クロックの立上りまたは立下がりでSD0とSD1がHまたはLに復帰する様子は見られない。
従って、 「DDR SDRAM のようにクロックの正負のエッジを使っているような気がします。」 は否定できないと考える。

こんなことはデータシートで確認すれば済むことなのだが、そのデータシートが見付からない。イメージプロセッサのファミリーチップのデータシート 「SN9P701_v1.02.pdf」 とセンサーのデータシート 「SN9S102CE_Specification.pdf」 には

Data output: 2-bit nibble format

との記述があるだけで、詳細な記述がない。センサーとデコーダはSONIX指定のペアで使え、と言うことなのだろう。

もし、ご存知の方がいらっしゃれば情報提供をお願いしたい。
スポンサーサイト
  1. 2018/09/13(木) 21:55:53|
  2. 電子・電気修理
  3. | コメント:2

アンパンマンカラーパソコンの修理(リード線断線)

1.患者
アンパンマンカラーパソコン(バンダイ)
アンパンマンカラーパソコン(リード線断線)外観1
アンパンマンカラーパソコン(リード線断線)外観2

2.症状
①電源が入らない。

3.診察

①電源ボタンを押すと起動するときもある。しかし起動してもすぐに切れてしまう。

・突然全体がダウンしてしまうので、電源ラインかCPU不良のようだ。

②電池と電池受け金具はOK。

③キーボード側の裏蓋を外して電源ラインを見たが、リード線外れは無し。

④ディスプレイ側の全面パネルを剥がして、表蓋を開けて、電源ラインを追う。

・ディスプレイ側の裏蓋を開けるのに全面の絵柄パネルを剥がすのがいつも苦労する。裏側からのネジ止めにして貰いたい。

・基板の電源端子には電圧が出たり出なかったりで電源ラインの断線仕掛りのようだ。

・電池ボックスと基板間で導通をチェックすると、GNDラインが断線していた。

4.治療
①電池ボックスと基板間のGNDラインをバイパス配線した。

キーボード側の内部。紫色のコードがバイパス配線。
アンパンマンカラーパソコン(リード線断線)下側1
アンパンマンカラーパソコン(リード線断線)下側2

・ディスプレイ側の内部。紫色のコードがバイパス配線。
アンパンマンカラーパソコン(リード線断線)上側1
アンパンマンカラーパソコン(リード線断線)上側2

②マウスを使ってみると効いたり効かなかったりで、これもコードの断線仕掛りだった。

・7芯コードだったので、8芯のLANコードで交換した。


  1. 2018/09/04(火) 08:14:47|
  2. 電子・電気修理
  3. | コメント:0

エアコンのリモコンの修理(基板腐食)

1.患者
エアコンのリモコン
エアコンのリモコン外観内側

蓋を開くと、内側のボタンが現れる。
エアコンのリモコン外観外側

2.症状
①「運転切/入り」のボタンしか効かない。

3.診察
①基板が腐食していて、特にラバー接点への配線パターンがダメージが大きく、配線パターンが無くなっているところが多数ある。

②スルーホールの断線も随所にある。
エアコンのリモコン元基板配線パターン表
エアコンのリモコン元基板配線パターン裏


4.治療
①ラバー接点への配線パターンは殆どが腐食しているので、断線個所を個々に修復するより、替え基板を作る方が確実に修理できると判断した。元の基板のラバー接点部分を切断し、CPUから替え基板へポリウレタン線で配線する。

・基板の切断箇所は、「運転切/入」と「温度」の境目とした。「運転切/入」の部分には時計用クリスタルとパスコンが付いていて、それらを疎開させるのは避けたい。幸い「運転切/入」のラバー接点はスルーホールが断線しているだけだったので、元の配線パターンを生かすことにした。

②元の配線パターンを調査して、その通りに替え基板の配線パターンを作る。SWマトリクスを同じように再現すれば理屈抜きで動くはずだ。

③パターン調査の中で、ラバー接点部分に電源ラインとユニット番号切り替えSWの配線パターンがあることが判ったので、事前に対応しておく。

・電源ラインはCPUが載っている方でジャンパー配線しておく。パスコンも疎開しておく。このパスコンはアルミ電解コンなので、多少配置換えをしても問題ない。
エアコンのリモコン元基板事前ジャンパー

・ユニット切り替えSWは元々オープン状態(ユニット0番の設定)だった。そのため、このSWへの配線は修復せず、SW自体も取り去ることにした。将来的にユニット1番の設定ができないことを持ち主に了承していただいた。

・「設置」と記されたランドがあったが、設置時に工事担当者が接続する端子のようなので、無視した。

④替え基板の配線図(下図)を書いた。図中の番号は接続するCPUのピン番号である。
エアコンのリモコン替基板配線パターン

⑤元の基板を切断して、替え基板へ配線した。
エアコンのリモコン基板換装後

⑥リモコンの操作が終わって数秒後にCPUはSleepするようだが、Sleep時の電源消費電流は21uAだった。時計は常時動いているので、妥当な値だと判断した。

⑦単体でのテストを行うと、ボタンに記されたようとおりに液晶の表示が変わるので、OKと判断した。「お知らせ」ボタンは室内機との交信を伴うようで、単体でのテストではタイムアウトしているようだ。

⑧現地で室内機との動作確認を行ったところ、正常に操作ができることを確認できた。

  1. 2018/08/05(日) 19:11:44|
  2. 電子・電気修理
  3. | コメント:0

COLUMBIA電気ピアノの修理(抵抗不良)

1.患者
COLUMBIAの電気ピアノでかなりの年代物
COLUMBIA電気ピアノ(抵抗不良)外観

2.症状
①音が全く出ない。

②パイロットランプは点いている。

3.診察
①電源投入時のポップ音は出るので基板に電源は供給されているようだ。スピーカーも切れていないらしい。

②振動板の電磁ピックアップをテスト用オーディオアンプに繋ぐとピアノの音が出たので、鍵盤の機構系から電磁ピックアップまではOKのようだ。このピアノの音源は純粋に機械系だった。
COLUMBIA電気ピアノ(抵抗不良)音源1 (2)
COLUMBIA電気ピアノ(抵抗不良)音源2
COLUMBIA電気ピアノ(抵抗不良)音源1


③パワーアンプの入力端子に信号を入れても音が出て来ないので、パワーアンプの故障らしい。

ここまで現地で診て、基板だけを持ち帰り故障個所の切り分けを行うことにした。アップライトピアノと同等の大きさで、丸ごとは容易に運べない。

下記は外してきた基板で、放熱器の左側がアンプ部、右側が電源部になっている。
COLUMBIA電気ピアノ(抵抗不良)基板全体

下記の画像の手前がパワーアンプ部、奥の方がプリアンプ部とトレモロ部になっている。〇印がパワーアンプの入力端子と出力端子。
COLUMBIA電気ピアノ(抵抗不良)基板パワーアンプ印付き

④パワーアンプの初段は昔のオーディオアンプではお馴染みの2SA798だ。この石のバランスをチェックしたら、アンプ出力側のVbeが殆ど0Vで差動のバランスが崩れている。特にコレクタが殆どGNDレベルであるのがおかしい。2SA798の内部短絡かと各電極間を導通チェックしたが短絡状況は認められなかった。
COLUMBIA電気ピアノ(抵抗不良)基板初段

このタイプの回路構成は、一般に下図のようになっている。下図はネットに有った一般例としての説明図であり、この電気ピアノのものではない。なお、この回路図には明らかに間違っている箇所があるが、細かいことは言わずに概略を理解する目的には使える。
COLUMBIA電気ピアノ(抵抗不良)パワーアンプ概略回路図

⑤コレクタの先を負電源に向かって辿っていくと、負電源のバイパスコンデンサ(下図右下のC22)のマイナス側が殆どGNDレベルで、その先は100Ωの抵抗(下図右下のR41)を介して、電源部の負電源に繋がっている。電源部の負電源は-30V出ている。この100Ωの抵抗値を測ると3.4kΩもあった。なお、この平滑回路は上記の一般例の回路図には記載されていない。

下記の画像で〇印(R41)が故障した抵抗が付いていた場所で、この画像は交換後のものだ。
COLUMBIA電気ピアノ(抵抗不良)基板抵抗1印付き
COLUMBIA電気ピアノ(抵抗不良)基板抵抗2印付き

取り外した抵抗は下記で、一部塗装が剥がれていて如何にも不具合がありそうな風体をしている。
COLUMBIA電気ピアノ(抵抗不良)抵抗

⑥抵抗を交換した後は、各部の電圧は正常値になって、入力端子に信号を入れると綺麗な音が出てきた。

⑦このパワーアンプ基板にはプリアンプとトレモロ回路も載っていて、その部分は入力信号に対して正常な出力信号が出てくるのを確認した。

4.治療
①診察の過程で、負電源平滑用の100Ω抵抗を交換することで、正常な動作に復旧した。

②後日、依頼者宅で組み付け、動作確認を行った結果、良好であった。
COLUMBIA電気ピアノ(抵抗不良)アンプ部取り付け1
  1. 2018/07/25(水) 16:20:08|
  2. 電子・電気修理
  3. | コメント:0

三輪車のハンドルに付ける鳴り物飾りの修理(マイコン換装)

1.患者
三輪車のハンドルに付ける鳴り物飾り。これは何と呼ぶのだろうか。
三輪車のハンドルに付ける鳴り物飾り(マイコン換装)外観

2.症状
①ボタンを押しても鳴らないし、トーマスが廻らない。

3.診察
三輪車のハンドルに付ける鳴り物飾り(マイコン換装)COB表
三輪車のハンドルに付ける鳴り物飾り(マイコン換装)COB裏

①COBに電源は供給されている。

②ボタンのSWには電源と同電圧が掛かっていて、押すと0Vになるので、SWはOK。

③モーター制御のTrとスピーカアンプのTrのB-E間は常に0Vで、COBから駆動信号が出ていない。

④外付けのクロック回路部品は無い。

⑤COB不良と診断した。

4.治療
①COBをPICで換装する。

②要件定義

【元々の動作】
依頼者に確認した元々の動作は、ボタンを押すとトーマスのメロディが流れて、飾りのトーマスが廻る、とのこと。

【改造後の動作】
・ボタンが2個あるので、メロディ演奏と効果音再生に使い分ける。

・メロディ演奏ボタンを押すと演奏を開始し、演奏中に押すと演奏を中止する。

・メロディはトーマスのテーマ曲を2種類収容し、ラウンドロビンに演奏する。

・効果音再生ボタンを押すと、蒸気音(シュッシュ)を一定時間再生する。

・蒸気音を再生中に効果音再生ボタンを押すと、汽笛音(ポー)を1定時間再生する。

・メロディ演奏中と効果音再生中は飾りのトーマスを回転させる。

③設計

・以前に修理した「サウンドきかんしゃトーマスの修理(電子オルゴール換装)」で開発したファームウェアがそのまま流用できる。しかし、そのファームウェアは2015年のorgel5がベースになっていて、音声再生チャネルが1チャネルのみのものだ。最新版のorgel5_7は音声再生チャネルが3チャネルに拡張されていて、蒸気音と汽笛音を同時に発声することができる。この際、orgel5_7に移行することにした。

・蒸気音の制御と汽笛音の制御を独立して行うことができるので、プログラムの処理ロジックは簡単になる。

・蒸気音は約0.5sの音源データを10回繰り返し再生する。

・汽笛音は約1秒の音源データを1回再生する。

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

⑤実装
三輪車のハンドルに付ける鳴り物飾り(マイコン換装)基板表
三輪車のハンドルに付ける鳴り物飾り(マイコン換装)基板裏

⑥動作状況
  1. 2018/07/12(木) 17:34:56|
  2. マイコン換装
  3. | コメント:0

スーパーショベル(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

アンパンマンうたえほんの修理(マイコン換装)

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

1.患者
アンパンマンうたえほん
アンパンマンうたえほん(マイコン換装)外観

2.症状(依頼元で実施)
①各ボタンを押しても、マイク音もメロディ音も出ない。

3.診察(依頼元で実施)
①COB不良と判断し、つつじが丘おもちゃ病院(当院)へファームウェアの開発が依頼された。

4.治療
【開発要件】(依頼元から提示)
①電源は単三乾電池2個の3V

②マイコンはPIC16F1705を使用

③操作SW
・スライドスイッチ1個 電源:OFF/ON
・タッチSW 音量:おおきい・ちいさい
・タッチSW 選曲12曲:
     <アンパンマン4曲>
      ・アンパンマンのマーチ
      ・ゆうきりんりん
      ・ドレミファアンパンマン
      ・アンパンマンたいそう
     <どうよう8曲>
      ・かえるのがっしょう
      ・やまのおんがくか
      ・きしゃポッポ
      ・しあわせならてをたたこう
      ・もりのくまさん
      ・むすんでひらいて
      ・おおきなくりのきのしたで
      ・ハッピー・バースデイ・トゥ・ユー

④タッチSWは4×4のマトリクス接続で、構成は以下のとおり。
アンパンマンうたえほん(マイコン換装)キーマトリクス

⑤動作仕様
・スライドスイッチ「OFF」から「ON」でPIC、アンプ部へ電源供給
・12曲対応のタッチスイッチを押すと対応の曲が鳴る
・演奏中他のタッチスイッチを押すと現曲を中断して対応の曲が鳴る
・マイクスイッチを「ON」にするとマイク音が鳴る
・スライドスイッチ「ON」から「OFF」でPIC、アンプ部へ電源供給停止 

【設計・製作】当院で実施
オーソドックスな電子オルゴール機能であるが、今回は電子ボリュームの仕掛けについてのみ解説しておく。

⑥電子ボリュームの構成
アンパンマンうたえほん(マイコン換装)電子ボリューム
PICのポートをアナログ設定にすると減衰無し、L出力すると減衰する。ただ、これだけの簡単な仕掛けだ。

⑦楽譜や歌詞カードがあれば、それに曲データを合わせるべきであるが、その提示が無かったので既存の曲データを入れておいた。

【実装】依頼元で実施
実装以降の工程は 依頼元のブログ を参照。

なお、回路設計は依頼元で実施され、当方は一切関与していない。

【ダウンロード】
開発したファームウェアは ここから ダウンロードできる。
  1. 2018/05/21(月) 10:23:15|
  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」とピン2「SD0」はイメージセンサーからイメージプロセッサへの信号線である旨の説明がある。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

おともだちハローキティの修理(プルアップ回路外付け)

1.患者
おともだちハローキティ(Combi)
おともだちハローキティ(プルアップ回路外付け)外観
おともだちハローキティ(プルアップ回路外付け)取説1
おともだちハローキティ(プルアップ回路外付け)取説2

2.症状
①動作モードが3つあるが、モード3しか動作しない。

3.診察
①箱に操作説明が書かれていて、モード1とモード2はお腹のボタンを押すと動作を始めるが、モード3はお腹のボタンの操作は不要のようだ。モード1とモード2が動かないのはお腹のボタンが効いていないのではないかと推測する。

②お腹のボタンは、基板の櫛状パターンを導電ラバーで押さえるタイプのスイッチだった。

③このラバー接点の印加電圧を測定すると、ラバー接点をオープンにしても0.1V以下である。ラバー接点の片側はGNDに繋がっているので、ポートのプルアップが断線している可能性がある。或いは、基板パターンの断線や短絡も有り得る。

④基板は多層基板が使われていて、目視ではパターンを追えない。導通チェッカーでも負えなかった。ラバー接点のホット側は基板表面に現れることなくCOBへ入っているようだ。

⑤内部プルアップの断線はよくある故障で、外部プルアップすることで救われることがある。今回もそれであって欲しいと願いつつ、やってみた。電源電圧は電池3本の4.5Vで、プルアップ抵抗を変えながら、GNDに対するホット側の電圧を測定した結果は以下のとおり。

・5kΩではオープン時1.7Vで、操作を認識しない。

・2.5kΩではオープン時2.4Vで、操作を認識する場合もあるが、不確実である。

・1kΩではオープン時3.4Vで、操作を認識し、正常に動作した。

⑥1kΩで外部プルアップすると安定に動作することが判ったが、これをラバー接点でスイッチするのは難がある。ラバー接点は軽く押して1kΩ、強く押すと300Ωになる。今はスイッチ回路は働くのだが、今後ラバー接点が劣化していくと不動作になってしまう恐れがある。

⑦ここまで強力にプルアップしないといけなくなったのは、「内部プルアップの断線」ではなく、「GNDへの内部漏電」だと思う。それと、Vcc/2をかなり超えないとHレベルと認識しないので、ゲート部分が壊れていると思う。

4.治療
①ボタンのポート入力に不具合があるもののそれ以外の機能は正常に動くので、マイコン換装は行わず、トランジスタ1石でスイッチ回路を補強することにした。

②【回路図】
おともだちハローキティ(プルアップ回路外付け)回路図
・実験では1kΩでプルアップすると安定動作したので、実装はマージンを見て470Ωとした。

・今は0Ωでも過電流は流れないが、故障状態が今後どうなって行くのか判らないので、最低限の抵抗は付けておく。

③【実装】
簡単な回路なので空中配線する。
おともだちハローキティ(プルアップ回路外付け)実装1
おともだちハローキティ(プルアップ回路外付け)実装2
電源は、この基板では電源SWのピンからとるのがやり易かった。
おともだちハローキティ(プルアップ回路外付け)実装3
おともだちハローキティ(プルアップ回路外付け)実装4
空中配線したスイッチ回路はホットボンドで固めて、保護と絶縁をしている。
おともだちハローキティ(プルアップ回路外付け)実装5
おともだちハローキティ(プルアップ回路外付け)実装6
おともだちハローキティ(プルアップ回路外付け)実装7

④【動作テスト】

・3.5V~5Vの電源電圧範囲で正常に動作することを確認した。

・電源スイッチをオフにすると、電池の電流が完全にゼロになることを確認した。

⑤【所感】
今回の治療はあくまでも「対症療法」であり、不具合の原因そのものを解消したのではない。今は不具合を潜在化できたけれども、再び顕在化してくる可能性はある。そのときはマイコンを換装することになる。このことを明確に依頼者に伝えておきたい。不具合が再燃してきたときに藪医者と言われたくないので。
  1. 2018/01/20(土) 18:32:26|
  2. 電子・電気修理
  3. | コメント:0

アンパンマン電動レールでGO!GO!DX(クローンリモコン製作)

1.患者
アンパンマン電動レールでGO!GO!DX(アガツマ)
アンパンマン電動レールでGO!GO!DX(赤外線コード変更)外観

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

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

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

2.症状
①リモコンが無いので動かせられない。

3.診察
①本体はテスト用リモコンで正常に動作するので、リモコンを新調すれば使えるようになる。

4.治療
【方針】
テスト用リモコンを差し上げればよいと言われるかも知れないが、テスト用リモコンはテストドライバーとして特化しているので、通常使うリモコンとしては不適格だ。

・省電力での運用が設計されていない。

・キャリア変調ではないベアな赤外線コードの出力機能など、通常のリモコンには不要な機能が搭載されている。特に邪魔になる訳ではないが。。。

そのため、正規のリモコンのクローンを作ることとした。

【要件定義】
正規のリモコンの機能と赤外線コード仕様は ここ を参照。

【デバイス選定】
入力ポートが5本、出力ポートが1本必要で、これに該当するデバイスとしてPIC12F509(2018年秋月価格@50円)とATtiny13A(2018年秋月価格@50円)が挙げられる。

・PIC12F509は内部プルアップ機能がGP0、GO1、GP3にしかないので、2本は外部プルアップが必要であり、多少のコストアップになる。ATtiny13Aは全ピンが内部プルアップ可能である。

・内部オシレータの周波数精度が12F509が1%であるのに対して、ATtiny13Aは10%もあり、今回の応用では信号タイミングに精度が求められるので、個別のキャリブレーションを実施する必要がある。手間が掛かるだけのことであり、不採用の理由には当たらない。

・ポートが6本必要なため、RESETピンをポート機能ピンに充てる必要がある。12F509はコンフィグの設定で容易に変更できるが、ATtiny13Aは一度RESET機能を殺すと以降の通常のISPライターでのプログラムができなくなり、再書き込みをするには高電圧シリアルプログラミング機能を持つプログラマー/デバッガーが必要になる。これも開発側の設備の問題であり、不採用の理由には当たらない。

・プログラムメモリは12F509が1kワードに対して、ATtiny13Aは512ワードだが、今回の応用では十分な量である。

・実行速度、消費電力、動作電源電圧範囲などはどちらも問題は無い。

以上の比較評価から今回はATtiny13Aを採用する。

【設計】
①ポートの割り当て

・LED制御信号を出力するポートは高電圧シリアルプログラミングの信号線と被らないようにする。

ポート割当て、高電圧シリアルプログラミング信号線
PB0:GOボタン入力(内部プルアップ)、SDI
PB1:STOPボタン入力(内部プルアップ)、SII
PB2:BACKボタン入力(内部プルアップ)、SCI
PB3:アンパンマンボタン入力(内部プルアップ)
PB4:LED出力(正論理)、SDO
PB5:メロディボタン入力(内部プルアップ)、高電圧

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

③操作ボタンと赤外線期の機能コードとの対応
GO:b'11001100'
STOP:b'11101110'
BACK:b'10101010'
アンパンマン①:b'00001001'
アンパンマン②:b'01001001'
アンパンマン③:b'10001001'
アンパンマン④:b'11001001'
メロディ①:b'00010001'
メロディ②:b'10010001'

④省電力設計

・操作が無いときはパワーダウンモードでSleepする。

・どれかボタンがオンされるとポート変化割り込みでWakeUpする。

⑤内部オシレータのキャリブレーション

・ATtiny13Aのキャリブレーションツール でキャリブレーション値を決定し、その値をファームウェアに持ち込み、実行開始直後にOSCCALレジスタに反映する。

【回路図】
アンパンマン電動レールでGO!GO!DX(クローンリモコン製作)回路図

【検証】
①BACKボタンがオンしたときの出力信号波形
アンパンマン電動レールでGO!GO!DX(クローンリモコン製作)動作時赤外線信号波形1
アンパンマン電動レールでGO!GO!DX(クローンリモコン製作)動作時赤外線信号波形2
アンパンマン電動レールでGO!GO!DX(クローンリモコン製作)動作時赤外線信号波形3


②Sleep時の消費電流は16uAだった。

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

  1. 2018/01/17(水) 20:58:15|
  2. マイコン換装
  3. | コメント:0

アーロと少年の修理(マイコン換装)

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

故障したICをPICマイコンで換装した事例は既に100件を超えていて、その殆どが「電子オルゴール+音声再生」のファームウェアをベースに開発している。どれも似たり寄ったりでマンネリ化して来ている感が否めないが、見方を変えれば、このファームウェアは少しのカスタマイズで多種類のおもちゃに適用できると言うことでもある。

1.患者
アーロと少年 いっしょに冒険! トーキングアーロ&スポット
アーロと少年(マイコン換装)外観
恐竜のアーロの背中にスポット少年を乗せると二人が会話をするそうだ。
動力源はバネで、尻尾のレバーを操作するとしゃべりながら歩くらしい。

2.症状
①うんともすんとも言わない。

3.診察
①依頼元でCOB不良と診断し、代替マイコンのファームウェア開発を当院へ依頼された。

4.治療

【要件】
①依頼元から提示された動作要件は以下のとおり。

・本体にSWが2つあり、一つは少年を背中に乗せると感応するSW。もう一つは尻尾のレバー操作で感応するSW。共に感応している間はオンが継続し、正論理で入力され、外部プルダウンされている。

・背中SWがオンすると以下を順に実行する。
 「いっしょにいこう」を音声再生
 「アンパンマーチ」を演奏
 「アンパンマンたいそう」を演奏
 「ミッキーマウスマーチ」を演奏

・上記の実行中は背中SWのチェックは行わず、オフになっても最後の曲まで演奏を継続する。

・尻尾SWがオンすると、「アーロの鳴き声」を音声再生する。

②非動作中はSleepし、背中SW、または尻尾SWのオンでWakeUpする。

③電源が3Vであるのとスピーカーが小型のためシングルPWM出力では音量が小さい。元々はBTL出力のようである。緩和策として、音声再生とオルゴール演奏の音量レベルを共に100%に設定しておき、アーロが鳴くときはお喋りとオルゴール演奏の音量レベルを50%にミュートして、飽和を避けながら実感音量を大きくする。

④外部にアンプを設置する場合のためにアンプのイネーブル信号を出力する。この制御信号は正論理と負論理で別ピンに出力する。

【ファームウェア開発】
①PIC電子オルゴール+音声再生Ver5_6をベースに級の処理を書き加える。要件は簡素なので特別な仕掛けを作り込むことは無い。

②音声の長さに応じて所要メモリが決まる。逆に言えば内蔵メモリ量によって収容できる音声の長さが制約される。「いっしょにいこう」が1秒、「アーロの鳴き声」が2秒あり、8kspsでは12kワードが必要になるので、16kワードのメモリを持つ16F18326(2017年秋月価格130円)でないと収まらない。

③4kspsにすると音声データは6kワードになり、音声の前後を若干カットすることで8kワードのメモリを持つ16F1705(2017年秋月価格100円)にギリギリ搭載できた。

④ポートの割当て

・ポート数は余裕があるので、ICSPに使われるポートは空けておく。

・未使用のポートは入力モードで内部プルアップしておく。

;RA0:PWM(CWGB)出力(負極性)、ICSPDAT
;RA1:空き(入力モード、内部プルアップ)、ICSPCLK
;RA2:PWM(CCP1)出力(正極性)
;RA3:MCLR(内部プルアップ)、Vpp
;RA4:尾SW入力(正論理)
;RA5:背SW入力(正論理)
;RC0:アンプイネーブル出力(正論理)
;RC1:アンプイネーブル出力(負論理)
;RC2:空き(入力モード、内部プルアップ)
;RC3:デバグ時はTX、非デバグ時は空き(入力モード、内部プルアップ)
;RC4:空き(入力モード、内部プルアップ)
;RC5:空き(入力モード、内部プルアップ)

⑤開発したファームウェアの設計資料と開発プロジェクトは ここから ダウンロードできる。音声を8kspsで再生する16F18326のプロジェクトと、再生レートを4kspsに落とした16F1705のプロジェクトの2種類が格納されている。

【再生音】
8kspsでの再生音はこれ

4kspsでの再生音はこれ

(再生できない場合はダウンロードファイル中のMP3ファイルをお聴き下さい)

【回路図】
(依頼元からの提示待ち)

PIC16Fにはポートピンの内部プルダウン機能が無いのでSW入力ポートは外部プルダウンが必要だ。

  1. 2018/01/07(日) 10:44:37|
  2. マイコン換装
  3. | コメント:1

アンパンマン電動レールでGO!GO!DX(赤外線コード変更)

1.患者
アンパンマン電動レールでGO!GO!DX(アガツマ)
アンパンマン電動レールでGO!GO!DX(赤外線コード変更)外観
幼児向けの乗用おもちゃだ。

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

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

2.症状
①リモコンが無いので動かせられない。

②本体は、テスト用リモコンでは正常に動作するので、リモコンを新調すれば使えるようになる。

3.診察
①別の赤外線リモコンで動くようにしたいとのこと。お客様から支給された赤外線リモコンは中華製で下記の物。ネット通販で100円台で売られているそうだ。
アンパンマン電動レールでGO!GO!DX(赤外線コード変更)リモコン

②支給された赤外線リモコンの赤外線信号波形の例を以下に掲げておく。すべての信号波形はダウンロードファイルの「アンパンマン電動レールでGO!GO!DX(赤外線コード変更)中華リモコン波形.xls」を参照。

③外面は家電品のリモコンのようだが、中華仕様なのか日本の家電協フォーマットとは大きく異なる。

④フレームの繰り返し
「電源」ボタンを押しっ放しのとき
アンパンマン電動レールでGO!GO!DX(赤外線コード変更)リモコン波形1
フレーム周期は108ms。

「電源」を1回目に押したとき
アンパンマン電動レールでGO!GO!DX(赤外線コード変更)リモコン波形2

「電源」を2回目に押したとき
アンパンマン電動レールでGO!GO!DX(赤外線コード変更)リモコン波形3
・3回目に押したときは1回目に押したのと同じ波形であった。
・1回目と2回目で波形の前の部分(MSB寄り)が異なるが、後ろ部分(LSB寄り)は同じであるため、後ろ部分をデコードすればよい。
・上記の2点は全てのボタンでも同じ状況になっていた。不思議な仕様だ。
・長時間のオフ後のオンでビットの開始と判断する。
・オフ時間とオンの時間の両方が変化するが、オフ時間でビット値を判定する。
 ビット値0はオフ0.9ms
 ビット値1はオフ1.7ms
・11ビット分の受信でフレーム終了と判断し、下位8ビットをデコード値とする
・上記のルールで全ボタンのデコードを行った結果は以下のとおり。

「電源」:00000000100
「↑」:00000010000
「↓」:00000010001
「ミュート」:00000000101
「←」:00000001001
「→」:00000001000
「AV/TV」:00000000110

4.治療
①本体の基板は健全なので手は入れない。中華リモコンから受信した赤外線信号を「レールでGOGO!」の本来の赤外線コードに変換して、本体の基板に入力することにする。この修理事例でのテーマは、赤外線信号のプロトコル変換器を作ることだ。

改造のイメージ
アンパンマン電動レールでGO!GO!DX(赤外線コード変更)改造イメージ

②プロトコルを変換するだけの処理なので最小のPICで実現できる。最廉価なPICで10F322(2017年秋月@45円)を採用する。

③機能設計
//ポートの割当て
//RA0:ICSPDAT
//RA1:変換後の赤外線信号出力、ICSPCLK
//RA2:変換前の赤外線信号入力
//RA3:ICSPVpp

//受信(中華リモコン)赤外線信号
//フレーム構成:11ビット
//リーダーやトレーラは無く、長時間のオフ後のオンでビットの開始と見る
//赤外線オフの時間とオンの時間の両方が変化するが、オフの時間でデコードする
//ビット値0:オフ0.9ms
//ビット値1:オフ1.7ms
//11ビット分の受信でフレーム終了と見て、後部の8ビット分をデコード値とする
//フレーム周期:108ms

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

//赤外線コード変換表
//入力IR信号コード値 出力IR信号コード値
//電源 :00000000100 STOP:b'11101110'
//↑  :00000010000 GO :b'11001100'
//↓  :00000010001 BACK:b'10101010'
//消音 :00000000101 STOP:b'11101110'
//←  :00000001001 音声:b'00001001'
//→  :00000001000 音楽:b'00010001'
//AV/TV:00000000110 STOP:b'11101110'

④回路図
アンパンマン電動レールでGO!GO!DX(赤外線コード変更)回路図
・元々は赤外線受信モジュールが2個設けられていて並列接続されている。このことは従前どおりとする。

・また、本体基板ではバッテリーからダイオード2本を介してVccを供給しているが、これではフル充電時に5.5Vを超える可能性があるので、事前に十分評価した方がよい。

⑤入出力信号波形
アンパンマン電動レールでGO!GO!DX(赤外線コード変更)動作時赤外線信号波形1
アンパンマン電動レールでGO!GO!DX(赤外線コード変更)動作時赤外線信号波形2
アンパンマン電動レールでGO!GO!DX(赤外線コード変更)動作時赤外線信号波形3

⑥ファームウェア
・TMR0を時間計測に充てる。TMR0の1カウントに相当する時間を計測のタイムベースとし、16usとする。

・中華リモコンからフレームを受信すると、純正リモコンの赤外線コードに変換してフレームを送信する。従って、フレームの送信周期は受信フレームの周期に等しくなる。中華リモコンのフレーム周期は108msであり、純正リモコンのフレーム周期の100msと殆ど変わらない。また、送信機のボタンを押しっ放しにすると無限にフレームを繰返すことも同じであり、本体のマイコンから見れば純正リモコンと全く同じに見える。

・ファームウェアの設計資料と開発プロジェクトは ここから ダウンロードできる。
  1. 2018/01/05(金) 22:05:24|
  2. マイコン換装
  3. | コメント:0

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

1.患者
アンパンマン電動レールでGO!GO!DX(アガツマ)
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例3外観
幼児向けの乗用おもちゃだ。

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

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

2.症状
①リモコンが無いので、別の赤外線リモコンで動くようにしたい。

②本体側の基板は新規に製作するので、プロトコルを合わせ込んだファームウェアを開発して欲しい、とのこと。

3.診察
①お客様から支給された赤外線リモコンは下記の物。ネット通販で100円台で売られているそうだ。
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例3リモコン

②支給された赤外線リモコンの赤外線信号波形の一部を以下に掲げておく。すべての信号波形はダウンロードファイルの「アンパンマン電動レールでGO!GO!DX(マイコン換装)事例3代替リモコン波形.xls」を参照。

③フレームの繰り返し
「電源」ボタンを押しっ放しのとき
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例3リモコン波形1
フレーム周期は108ms。

「電源」を1回目に押したとき
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例3リモコン波形2

「電源」を2回目に押したとき
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例3リモコン波形3

・3回目に押したときは1回目に押したのと同じ波形であった。
・1回目と2回目で波形の前の部分(MSB寄り)が異なるが、後ろ部分(LSB寄り)は同じであるため、後ろ部分をデコードすればよい。
・上記の2点は全てのボタンでも同じ状況になっていた。
・長時間のオフ後のオンでビットの開始と判断する。
・オフ時間とオンの時間の両方が変化するが、オフ時間でビット値を判定する。
 ビット値0はオフ0.9ms
 ビット値1はオフ1.7ms
・11ビット分の受信でフレーム終了と判断し、下位8ビットをデコード値とする
・上記のルールで全ボタンのデコードを行った結果は以下のとおり。

「電源」:00000000100
「↑」:00000010000
「↓」:00000010001
「ミュート」:00000000101
「←」:00000001001
「→」:00000001000
「AV/TV」:00000000110

4.治療
前回の事例 のアームウェアをベースに、プロトコルを変更する。

②音声再生機能の場合は実装メモリ量がデバイス選定のキーポイントになる。今回は、今春から秋月で取り扱いが始まった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:空き


;赤外線信号受信
;フレーム構成:11
;リーダーやトレーラは無く、長時間のオフ後のオンでビットの開始と見る
;赤外線オフの時間とオンの時間の両方が変化するが、オフの時間でデコードする
;ビット値0:オフ0.9ms
;ビット値1:オフ1.7ms
;11ビット分の受信でフレーム終了と見て、後部の8ビット分をデコード値とする


;エンコード値
;電源 :00000000100
;↑  :00000010000
;↓  :00000010001
;消音 :00000000101
;←  :00000001001
;→  :00000001000
;AV/TV:00000000110


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


;赤外線機能コードと動作
;STOP(電源):b'00000100'
;STOP(消音):b'00000101'
;STOP(AV/TV):b'00000110'
;上記の機能コードは全て同じ動作をする。
; 停止動作中、完全停止中は無視する。
; 停止する。
; VOICE0で音声1を3回繰返し再生する。
;
;GO(↑):b'00010000'
; 完全停止していなかったら無視する。
; VOICE0で音声2を3回繰返し再生後、前進する。
;
;BACK(↓):b'00010001'
; 完全停止していなかったら無視する。
; VOICE0で音声3を3回繰返し再生後、後進する。
;
;アンパンマン(←):b'00001001'
; VOICE1が再生中のときは無視する。
; VOICE1で音声4~7をラウンドロビンに再生する。
; 音声4と音声5は1回のみ再生する。
; 音声6は4回繰返す。
; 音声7は8回繰返す。
; 音声8は1回のみ再生する。
;
;メロディ(→):b'00001000'
; 演奏中のときは無視する。
; 曲目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(マイコン換装)事例3回路図

⑤基板製作(当方での製作例を参考に掲げる)
基本部分
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例3治療1
アンパンマン電動レールでGO!GO!DX(マイコン換装)事例3治療2

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

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

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

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

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

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

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

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

⑦発音のサンプル
発音のサンプルはこれ

再生できない場合はダウンロードファイルの中のmp3ファイルを試聴して下さい。

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

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

・半音ずつ下がってくるのが「バッテリー電圧低下の警告曲」。
  1. 2017/12/30(土) 15:03:14|
  2. マイコン換装
  3. | コメント:0

BRUIN(Licht und Sound Lok)(マイコン換装)事例2

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

このおもちゃのCOB換装については 過去に修理事例 があるが、今回は依頼元でオリジナルの動作仕様を調べていただき、よりオリジナルに近い機能を実現することができた。

1.患者
赤外線リモコンで操作する汽車のおもちゃ(トイザらス)

メーカーの商品ページ
http://www.toysrus.de/product/index.jsp?productId=58895431&prodFindSrc=search&fv=TRUDE%2F3935011&f=Taxonomy&fd=&fg=&keywords=Licht+und+sound+lok&foreSeeEnabled=false
BRUIN(Licht und Sound Lok)(マイコン換装)事例2外観

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

3.診察(依頼元で実施)
①リモコンからは赤外線信号が出ている。

②本体の赤外線受信モジュールからは送信側と同じ信号が出ている。

③赤外線信号のデコード、音楽演奏、モーターとLEDの制御は1チップのCOBで実装されていて、これが働いていない。

④COBへの電源供給と赤外線信号の入力を確認して、COBの不良と判断した。

4.治療
【方策】
①不良となったCOBをPICで換装する。

【要件】
依頼元から提示された要件は以下のとおり。

①電源は単三乾電池3本(標準4.5V)

②モコンの操作ボタンと本体の動作の定義

・前進ボタン押下で前進し、離すと停止する。
・後進ボタン押下で後進し、離すと停止する。
・前進、後進の動作中はLEDを点滅し、停止中は点灯する。
・ホーンボタン押下で汽笛音(ポッポー)を鳴らす。

③煙突の操作と動作の定義

・本体の煙突を押すとその先のSWがオンし、電子オルゴールの1曲を演奏する。
・演奏中に煙突を押すと、演奏を中止する。
・電子オルゴールは10曲程度を収容し、ラウンドロビンに演奏する。
・曲目は1~2歳向けの童謡を希望。

④本体の電源制御

・電源SWの操作で本体の電源を入り切りする。
・10分間操作が無かったらオートパワーオフする。
・赤外線受信モジュールの電源制御を行う。
・電源SWをオフ/オンすることで再起動する。
・煙突を押すことでも再起動する。

⑤信号の定義

・赤外線エンコード信号は負論理で入力する。
・前進駆動信号と後進駆動信号はそれぞれのポートから正論理で出力する。
・LED信号は1ポートに負論理で出力する。
・LEDの初期状態は点灯。オートパワーオフ時は消灯する。
・音声信号(PWM)は正極性で出力する。
・赤外線受信モジュールの電源制御信号は負論理で出力する

⑥赤外線信号のプロトコル

・フレームと機能コードは 前回の事例 と同じ。

⑦換装に伴う回路の変更

・依頼元から提示された回路図
BRUIN(Licht und Sound Lok)(マイコン換装)事例2回路図

【設計】
ファームウェアの開発は つつじが丘おもちゃ病院(当院) で実施した。

①電子オルゴールVer5_6をベースに、固有の処理を作り込む。

②ターゲットデバイスの選定

・必要ポート数は7本で少ないが、汽笛音がメモリを喰う。
・コストパフォーマンスの良い16F1705(@100円、2017年秋月)を前提とすると、オルゴールエンジン部で1kワード、10曲分の曲データで2.6kワード、初期化や固有処理等で0.5kワードを見込むと合計4.1kワード程度が必要であり、残り3.9kワードが汽笛音に充てられる。
・8kspsで記録すれば0.9秒になる。これで納められるか開発しながら検証することにして、16F1705に仮決めして進める。

③ポートの割り当て

;RA0:ICSPDAT(入力モード、内部プルアップ)
;RA1:ICSPCLK(入力モード、内部プルアップ)
;RA2:PWM3出力(正極性)
;RA3:ICSPVpp(入力モード、内部プルアップ)
;RA4:煙突SW入力(負論理)(内部プルアップ)
;RA5:デバグ用TX出力(非デバグ時は入力モード、内部プルアップ)
;RC0:IR信号入力(負論理)
;RC1:前進出力(正論理)
;RC2:後進出力(正論理)
;RC3:LED出力(負論理)
;RC4:IR受信モジュール電源制御出力(負論理)
;RC5:未使用(入力モード、内部プルアップ)

④赤外線信号のデコード

・PWM周期(TMR2)の割込みで赤外線信号をポーリングする。PWM周期は32usとし、赤外線信号のパルス巾に対して十分な分解能を持つことができる。
・赤外線信号のオン、オフ共に128us以上の信号レベル継続で有効とする。
・赤外線のオフのパルス巾を評価してデコードを行う。
 5ms以上でフレームの開始とする。
 3~5msでビット値を1とする。
 3ms以下でビット値を0とする。
・8ビットを受信した時点で機能コードと照合し、該当の機能を実行する。

⑤モーターの制御

・前進/後進の機能コードは、リモコンの前進/後進ボタンを押下している間はフレーム周期90msで連続して送信される。
・前進/後進の機能コードを受信すると前進/後進のモーター制御信号をオン出力し、100ms後にオフする。フレームの繰り返し周期が約90msであるので、前進/後進ボタンを押し続けると、モーター制御信号は途切れることなくオン出力される。
・前進と後進が切り替わるときは最低10msの停止時間を設けて、Hブリッジの貫通電流の発生を防止する。

⑥LEDの制御

・前進/後進のモーター制御信号をオン出力している間は、周期1.2s、デューティ50%でLEDを点滅する。

⑦汽笛音の音声再生

・ホーンの機能コードは、リモコンのホーンボタンを押下する毎に1フレームのみが送信される。
・ホーンの機能コードを受信すると汽笛音を3回繰り返し再生する。
・汽笛音を再生中にホーンの機能コードを受信すると、再生済み回数をリセットして、その後に3回再生を繰返す。
・汽笛音は依頼元からmp3で支給され、当方にてPCMデータを作成した。
・汽笛音は1.1秒あり、サンプリングレートを6.3kspsに落として、16F1705のメモリに収容できた。6.3kspsでも良い音で再生できている。

⑧電子オルゴール演奏の制御

・煙突のSWがオンすると、非演奏中の場合は曲番号を進めて演奏を開始し、演奏中の場合は演奏を中止する。
・最初の演奏曲は曲番号1番とする。
・煙突のSWのチャタリング対策として、SWの読み込みは固有処理のコールバック周期の10ms毎に行い、オフ状態が70ms以上続いた後にオンとなった場合に、操作を有効とする。

⑨汽笛音と電子オルゴールの同時発声

・つつじが丘の電子オルゴールエンジンは音声再生とオルゴール演奏を同時に鳴らすことができるようになっている。
・D/A変換での音質を担保するためには、それぞれの出力レベルを最大限大きくしておくことが重要だが、そうすると両者の音が重なると出力レベルが飽和してしまう。
・それを避けるために、汽笛音を鳴らすときには電子オルゴール音のレベルを1/2にして出力レベルが飽和しないようにする。
・この処理は、電子オルゴールエンジンのAPI「MUTE_SET」を利用する。

【発声音】
100円のマイコンでここまでできるということを認識していただき、故障したCOBのマイコン換装でおもちゃ修理の範囲を広げて行って欲しい。
発声音はこれ

再生できない場合は、ダウンロードファイル中のmp3ファイルをお聴き下さい。

【ダウンロード】
開発したファームウェアと設計資料は ここから ダウンロードできる。

プロジェクトは BRUIN_Lok_PIC1705.X
ソースコードは BRUIN_Lok_PIC1705.asm
TX はテスト用のリモコン側のファームウェアである。

【ファームウェアの解説】
オルゴールエンジンを使えば、アプリケーションの固有の処理のみをコールバック関数として記述するだけで、簡単にファームウェアを開発することができる。

このおもちゃの機能要件では電子オルゴールの演奏、効果音の音声再生、赤外線信号のデコード、機能コード対応の制御、モーターとLEDのタイマー処理、およびそれらのコンカレント実行を実現する必要がある。

これらをゼロから作り始めると相当な開発期間が掛かってしまうが、今回の開発規模はたったの300ステップで、数日で完成させることができた。その内容を以下に解説する。

①赤外線信号のデコード

・エンジン部のPWM周期(TMR2)の割り込み処理から固有の割り込み処理をコールバックすることを宣言する。

BRUIN(Licht und Sound Lok)(マイコン換装)事例2解説1

・固有の割り込み処理(コールバック関数)で赤外線信号をデコードする。

BRUIN(Licht und Sound Lok)(マイコン換装)事例2解説2

BRUIN(Licht und Sound Lok)(マイコン換装)事例2解説3

②オートパワーオフの制御

・固有の処理(コールバック関数)で、無操作の時間を計測し規定の期間に達すると動作を停止させ、Sleepする。
・Sleep前に、赤外線受信モジュールからの入力ポートを出力モード設定にしてLを出力しておく。入力モードのままにしておくとポートの電位が定まらないため、Sleep時の消費電流が増大する。
・また、煙突SWの立下りでWakeUpするように、IOC割込みを許可しておく。
・WakeUpしたら、reset命令で再起動する。

BRUIN(Licht und Sound Lok)(マイコン換装)事例2解説4

③電子オルゴールの演奏制御

・固有の処理(コールバック関数)で、煙突SWがオンしたら電子オルゴールの演奏を制御する。

BRUIN(Licht und Sound Lok)(マイコン換装)事例2解説5

④機能コード対応のおもちゃの制御

・固有の処理(コールバック関数)で受信した機能コードに対応する処理を行う。

BRUIN(Licht und Sound Lok)(マイコン換装)事例2解説6

⑤モーター稼働のタイマー制御

・前進または後進の操作が切れたときに100ms後にモーターを停止する。
・固有の処理(コールバック関数)の続きで処理を行う。

BRUIN(Licht und Sound Lok)(マイコン換装)事例2解説7

⑥前進または後進の動作中のLED点滅制御。

・デューティ50%周期1.2秒でLEDを点滅させる。
・固有の処理(コールバック関数)の続きで処理を行う。

BRUIN(Licht und Sound Lok)(マイコン換装)事例2解説8

⑦汽笛音の繰り返し再生の制御

・音声再生終了処理(コールバック関数)で繰り返し再生回数をチェックして、回数残があれば、続けて音声再生を起動する。

BRUIN(Licht und Sound Lok)(マイコン換装)事例2解説9

【評価】
依頼元で実装と評価をしていただき、結果は良好との連絡をいただいた。

  1. 2017/12/07(木) 22:12:17|
  2. マイコン換装
  3. | コメント:0

2.4GHzラジコン用ファームウェア(SE8R01)の応用事例

つつじが丘おもちゃ病院では 「2.4GHzラジコン用ファームウェア(SE8R01)」 を開発し公開しているが、「おもちゃ病院 新津(新潟)」様 が本ファームウェアを利用して、実際のラジコン修理で送受信機の換装を行った。換装作業の状況と動作確認の結果は、彼のブログ記事で詳しくレポートされている。結果は 「30m前後まで完璧に動作した」 とのことだ。限られたスペースに格納するため表面実装で細かい工作をされていて、いつも感心させられる。特にアンテナの工夫で操作可能距離を30mにも拡大した功績は大きく、おもちゃの元々の性能である20mを大きく上回っている。

2.4GHzラジコンの修理については今年(2017年)春から、RFチェッカーの検討と合わせて、彼と2人3脚で進めてきたプロジェクトだ。それが良好な結果を以って完了し、おもちゃ病院業界での2.4GHzラジコンの修理の道筋をつけることができた。

【関連記事】
NIKKO製 NANO Vaporizr 2水陸両用車2.4GHzラジコン改造(外部リンク)
2.4GHzラジコン用ファームウェアの開発(SE8R01)
  1. 2017/12/01(金) 08:56:52|
  2. マイコン換装
  3. | コメント:0

BRUIN(Licht und Sound Lok)の修理(マイコン換装)

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

1.患者
赤外線リモコンで操作する汽車のおもちゃ(トイザらス)

メーカーの商品ページ
BRUIN(Licht und Sound Lok)(マイコン換装)外観

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

3.診察(依頼元で実施)

①リモコンからは赤外線信号が出ている。

②本体の赤外線受信モジュールからは送信側と同じ信号が出ている。

③赤外線信号のデコード、音楽演奏、モーターとLEDの制御は1チップのCOBで実装されていて、これが働いていない。

④COBへの電源供給と赤外線信号の入力を確認して、COBの不良と判断した。

4.治療
【方策】
①不良となったCOBをPICで換装する。

【要件】
依頼元から提示された要件は以下のとおり。

①電源は単三乾電池3本(標準4.5V)

②モコンの操作ボタンと本体の動作の定義

・前進ボタン押下で前進し、離すと停止する。
・後進ボタン押下で後進し、離すと停止する。
・前進、後進の動作中はLEDを点滅し、停止で消灯する。
・音楽ボタン押下で電子オルゴールの1曲を演奏する。
・電子オルゴールは5曲を収容し、ラウンドロビンに演奏する。
・演奏中に音楽ボタンを押下すると、演奏を中止する。
・電子オルゴールの収容曲は演奏順で以下のとおり。
 1.ミッキーマウスマーチ
 2.犬のおまわりさん
 3.ぞうさん
 4.ぶんぶんぶん
 5.どんぐりころころ

③信号の定義

・赤外線信号は負論理で入力する。
・前進信号と後進信号はそれぞれのポートから正論理で出力する。
・LED信号は1ポートに正論理で出力する。
・音声信号(PWM)は正極性で出力する。

④電源制御

・外部の電源SWで電源供給を制御する。
・省電力設定は不要。

⑤赤外線信号のプロトコル

・フレーム
BRUIN(Licht und Sound Lok)(マイコン換装)フレーム

・機能コード
BRUIN(Licht und Sound Lok)(マイコン換装)機能コード

【設計】
ファームウェアの開発は つつじが丘おもちゃ病院(当院) で実施した。

①電子オルゴールVer5_6をベースに、固有の処理を追加する。

②ターゲットデバイスの選定

・必要ポート数は5本で少ないが、メモリはオルゴールエンジン部で1kワード、5曲分の曲データで1.3kワード、初期化や固有処理等で0.3kワードを見込むと合計2.6kワード程度が必要であり、最廉価な16F1705(@100円、2017年秋月)を採用する。

③ポートの割り当て

;RA0:COG1A出力(負極性)、ICSPDAT
;RA1:ICSPCLK
;RA2:PWM3出力(正極性)
;RA3:Vpp
;RC0:IR信号入力(負論理)
;RC1:前進出力(正論理)
;RC2:後進出力(正論理)
;RC3:LED出力(正論理)
;RC5:TX(デバグ用)

④赤外線信号のデコード

・PWM周期(TMR2)の割込みで赤外線信号をポーリングする。PWM周期は32usであり、赤外線信号のパルス巾に対して十分な分解能を持つことができる。

・赤外線信号のオン、オフ共に128us以上のレベル継続で有効とする。

・赤外線のオフのパルス巾を評価してデコードを行う。

 5ms以上でフレームの開始とする。
 3~5msでビット値を1とする。
 3ms以下でビット値を0とする。

・8ビットを受信した時点で機能コードと照合し、該当の機能を実行する。

⑤モーターの制御

・前進、または後進の機能コードを受信すると前進、または後進のモーター制御信号を出力し、100ms後に出力を止める。フレームの繰り返し周期が約90msであるので、前進ボタン、または後進ボタンを押し続けると、モーター制御信号は途切れることなく出力される。

・前進と後進が切り替わるときは、10msのデッドタイム(全停止)を設ける。

⑥LEDの制御

・前進、または後進のモーター制御信号を出力している間は、1.2s周期 デューティ50%でLEDを点滅する。

⑦電子オルゴール演奏の制御

・演奏の機能コードを受信すると、非演奏中の場合は曲番号を進めて演奏を開始し、演奏中の場合は演奏を中止する。

【ダウンロード】
開発したファームウェアと設計資料は ここから ダウンロードできる。

プロジェクトは BRUIN_PIC1705.X
ソーズコードは BRUIN_PIC1705.asm
TX はテスト用のリモコン側のファームウェアである。

【ファームウェアの解説】
オルゴールエンジンを使えば、アプリケーションの固有の処理のみをコールバック関数として記述するだけで、簡単にファームウェアを開発することができる。

このおもちゃの機能要件では電子オルゴールの演奏、赤外線信号のデコード、機能コード対応の制御、モーターとLEDのタイマー処理、およびそれらのコンカレント実行を実現する必要がある。

これらをゼロから作り始めると相当な開発期間が掛かってしまうが、今回の開発規模はたったの100ステップで、数時間で完成させることができた。その内容を以下に解説する。

①赤外線信号のデコード

・エンジン部のPWM周期(TMR2)の割り込み処理から固有の割り込み処理をコールバックすることを宣言する。

BRUIN(Licht und Sound Lok)(マイコン換装)解説1

・固有の割り込み処理(コールバック関数)で赤外線信号をデコードする。

BRUIN(Licht und Sound Lok)(マイコン換装)解説2

BRUIN(Licht und Sound Lok)(マイコン換装)解説3

②機能コード対応のおもちゃの制御

・固有の処理(コールバック関数)で受信した機能コードに対応する処理を行う。

BRUIN(Licht und Sound Lok)(マイコン換装)解説4

③モーター稼働のタイマー制御

・前進または後進の操作が切れたときに100ms後にモーターを停止する。

・固有の処理(コールバック関数)の続きで処理を行う。

BRUIN(Licht und Sound Lok)(マイコン換装)解説5

④前進または後進の動作中のLED点滅制御。

・デューティ50%周期1.2秒でLEDを点滅させる。

・固有の処理(コールバック関数)の続きで処理を行う。

BRUIN(Licht und Sound Lok)(マイコン換装)解説6

【評価】
依頼元で評価をしていただいた。

・要件通りに機能を確認した。

・実際におもちゃのCOBに換装して、動作確認した。
  1. 2017/10/24(火) 15:25:17|
  2. マイコン換装
  3. | コメント:0

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

ミミクリーペット擬きのボイスレコーダー・チェンジャーのおもちゃで、電源が電池2本のものがある。

前作の 「ミミクリーペットの修理(ボイスレコーダー・チェンジャー換装)新バージョン」 は電源が電池3本で、3.75~5.1Vで動作するように設計されているので、電池2本では動作しない。
そこで、今回は電池2本に対応して電源電圧が2.5~3.4Vで動作するように設計した。

前作ではモーター制御のFETのドライブ電圧の4Vを、音声出力のPWM信号を倍電圧整流して得ていたが、電池2本では4Vを確保することはできない。そのため、FETを使うのを諦めてバイポーラTrでモーターを制御することにした。そうすると8ピンデバイスではポート数が足りなくなり、14ピンの16F1503を採用した。16F1503T-I/SLの価格は@70円(2017年秋月)で前作の12F1501-I/Pと同じだし、SOICパッケージなので少し小さくなり実装も問題ない。

バイポーラTrでモーターを制御するにはベース電流が多く必要になるので、複数ポートをパラレルに接続して100mA程度の出力電流を取り出すことにする。そのために1命令で出力できるように、ポートCの6本をモーター制御に充てる。

16F1503はMSSPモジュールを内蔵しているのだが、SCLとSDAがポートCに括り付けられているので内蔵モジュールは使うことができない。ピンアサインの自由度がないデバイスなのだ。そのためI2Cは前作と同様にソフトでの実装になる。

【回路図】
ミミクリーペット(マイコン換装新バージョン)回路図1503

【ダウンロード】
設計資料とファームウェアは ここから ダウンロードできる。
  1. 2017/07/04(火) 22:24:32|
  2. マイコン換装
  3. | コメント:2
次のページ

プロフィール

大泉茂幸

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