FC2ブログ

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

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

アンパンマンことばずかんDXの修理(センサー内にごみ混入)

1.患者
アンパンマンことばずかんDX
アンパンマンことばずかんDX(センサー内ごみ)外観「

2.症状
①電源オンでオープニングメッセージは喋るが、絵にタッチしても反応しない。

3.診察
①ケータイのカメラでペン先の奥を覗いたら、赤外線LEDは発光している。

②シリアルEEPRPM「24C02B」(U4)のVccは3.3Vとなっていて、オフされない。「イメージセンサーは生きている」とイメージプロセッサは判定しているようだ。

(イメージセンサーが応答を返さないと、イメージプロセッサはイメージセンサのVccをオフしてしまう。イメージセンサーのVccはシリアルEEPRPM「24C02B」(U4)のVccと共通である。)

③イメージセンサーの信号線を観測したところ、SEN_CLK、SEN_CMD、SEN_SD0、SEN_SD1ともに信号波形が観測され、センサーは動いているようだ。しかし、ドットコードに当てても波形に動きは現れない。

④光学系を含む撮像側の不良と思われる。

(イメージセンサー~イメージプロセッサ間のインタフェースは正常動作していると判断できる。)

⑤センサーの黒色のハウジングを切開したところ、下記画像にあるごみが出てきた。触感は固いプラスチックで、ドリルの切粉のように見える。これが撮像の邪魔をしていたと思われる。
アンパンマンことばずかんDX(センサー内ごみ)ごみ

⑥ハウジングの切開部分をホットボンドで埋め戻してタッチペンを組み戻し、ドットコードを読ませると正常に反応し、お喋りした。

4.治療
①診察の過程で、センサーハウジング内のごみを除去したことで復旧した。
スポンサーサイト



  1. 2018/11/29(木) 15:59:45|
  2. メカ修理
  3. | コメント:0

ミミクリーペットの修理(ATtiny13A+W25Q16でボイスレコーダー・チェンジャー換装)

ミミクリーペット3(ボイスレコーダー・チェンジャー換装)外観

【前振り】
ミミクリーペットのボイスレコーダー・チェンジャーのマイコン換装は何度も行っていて、その都度改善を施してきている。
今回はマイコンにATtiny13A(@50円2018年11月秋月)、メモリはW25Q16(@約20円2018年11月AliExpress最安店)を採用してコスト低減を図った。
IRLML6344もAliExpess最安店で@約5円で調達でき、部品代は総額で100円程度になっている。これならコスト面で躊躇することなくミミクリの修理ができるだろう。

この記事は、先日の 「ミミクリ擬きのくまの修理」 をバーチャルに再現した形で構成している。


【設計】
・SPIフラッシュメモリ
これまでは音声データを記録するメモリとしてI2Cフラッシュメモリを使っていたが、AliExpressでもI2Cフラッシュメモリは安くはないので、今回は廉価に調達できるSPIフラッシュメモリを使った。

・ポート
SPIインタフェースは信号線がSCK、MOSI、MISO、SSの4本が必要であり、これに音声入力(ADC)と音声出力(PWM)を加えると全部で6本になる。ATtiny13Aのポートがすべて塞がってしまうので、モーター制御のポートを割当てることができない。

コスト低減を図るためにATtiny13Aを採用しているので、他のピン数の多いマイコンに替えることはナンセンスだ。

そこで、音声出力(PWM)の信号を兼用してモーター制御を行うこととする。

・ボイスレコーダー・チェンジャー
その仕掛けは従来と全く同じだ。

4kspsで録音し、8kspsで再生することでボイスチェンジする。
短時間(数10ms)単位で2回繰り返して再生することで、喋るスピードは元と同じにする。

・メモリの使い方
W25Q16の容量は16Mビットあり、524秒間の録音再生が可能になる。しかし、ミミクリのおもちゃとしてはそこまで長い記録時間は不要なので、1回の記録をブロック消去の単位である64kバイトに留めて、16秒間とする。
32個のブロックを順に使用することで、フラッシュメモリの寿命を32倍に伸ばすことができる。

W25Q16のチップ消去時間は最大10秒を要する。それは、録音再生を実行後は次の録音開始までに10秒間待たされることを意味する。これではミミクリのおもちゃにならない。ブロック消去時間は最大1秒であり、許容範囲だ。これが1回の記録を1ブロックに留めるもう一つの理由だ。

・電源
ATtiny13Aの動作電圧は2.7~5.5V@10MHz、W25Q16は2.7~3.6Vであるが、実力は2.2Vでも安定動作した。
最大電圧は超えられないので、電池2本での使用となる。電池3本で応用する場合は、マイコン系の電源供給に3.3Vのレギュレータを設置する必要がある。

IRLML6344はVGSが1.7Vでオンするので、電源電圧が2.2Vでも十分に電圧マージンがとれる。


【回路図と配線図】
ミミクリーペット4(ボイスレコーダー・チェンジャー換装)回路図
・モーター制御のILML6344のゲート入力容量は650pFあり、1MΩとの時定数は650usとなる。PWM周期の32usに比較して十分に長く、モーターを連続駆動できている。

・前段の2SA1586のIcboは最大0.1uAで、1MΩに対して0.1Vの電圧が発生するが、ILML6344のVgs(th)の最小値0.5Vに対して十分に小さい。

・ISPを可能とするため、PB5とマイクアンプ間に2.2kΩを挿入している。また、ISP実行時には大容量の電源パスコンを切り離せるようにしている。ファームウェアの書き換えを行わない場合やATtiny13Aをソケット実装するなど、ISPを実施しないのであればこれらの対応は不要である。

ミミクリーペット4(ボイスレコーダー・チェンジャー換装)配線図


【実装】
以下の実装例はファームウェアの開発ベンチとして作ったもので、ISPを可能とするための対応を施した上で、更にICソケットも使っている。実際のミミクリの換装基板ととして作る場合にはそれらは必須ではない。ミミクリ内の収容スペースが小さい場合はICソケットを使えない場合もある。
大容量のケミコンはジャンク部品を利用したため大柄なものになっているが、最近の部品ではかなり小さくなっている。
ミミクリーペット4(ボイスレコーダー・チェンジャー換装)基板1表
ミミクリーペット4(ボイスレコーダー・チェンジャー換装)基板2
ミミクリーペット4(ボイスレコーダー・チェンジャー換装)基板3
ミミクリーペット4(ボイスレコーダー・チェンジャー換装)基板4


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

ファームウェアの説明およびヒューズビット設定やキャリブレーションなどの動作環境はソースコード中のコメントに記述している。

開発環境は AtmeStudio7
ソリューションは MIMIKURI4\MIMIKURI4_tiny13A\MIMIKURI4_tiny13A.atsln

【デモ動画】
[広告] VPS

  1. 2018/11/26(月) 10:07:44|
  2. マイコン換装
  3. | コメント:0

スマホ(Fisher Price)の修理(メンブレンSW断線)

1.患者
スマホのおもちゃ(Fisher Price)
スマホ(Fisher Price)(メンブレンSW断線)外観


2.症状
音が鳴らない。


3.診察
①音が鳴らないのはスピーカの断線だった。

②このおもちゃはハウジングが強固に接着されていて容易に分解できなかった。このため、ハウジングを切開したのだが、その過程でメンブレンSWの引き出し線部分をバッサリ切ってしまったので、それを修復する。

③基板側のFFCコネクタのはんだ付けランドでメンブレンSWをオンすると所定の音が出るので、上記①と②以外の問題は無い。


4.治療
①メンブレンSWの上側と下側のシートを剥がして、導体部分を露出させる。
スマホ(Fisher Price)(メンブレンSW断線)修理1

②露出した部分に細い導線(撚線コードの1本)をセロテープで貼り付ける。
スマホ(Fisher Price)(メンブレンSW断線)修理2
スマホ(Fisher Price)(メンブレンSW断線)修理3

③貼り付けた導線にリード線を付けて、基板側のFFCコネクタのはんだ付けランドに配線する。
スマホ(Fisher Price)(メンブレンSW断線)修理4

④メンブレンSWを押して、正常動作することを確認した。
  1. 2018/11/22(木) 15:47:12|
  2. 電子・電気修理
  3. | コメント:0

ミミクリーペット擬きの修理(ボイスレコーダー・チェンジャー換装)

1.患者
ミミクリーペット擬きのくまのぬいぐるみ
ミミクリーペット3(ボイスレコーダー・チェンジャー換装)外観

2.症状
全く動かない。

3.診察
①制御基板のCOBまで電源は供給されているが、COBからマイク用電源が出力されていない。

②COB不良と判断した。

元の基板
ミミクリーペット3(ボイスレコーダー・チェンジャー換装)元基板裏
ミミクリーペット3(ボイスレコーダー・チェンジャー換装)元基板表


4.治療
制御基板の機能をマイコンで換装する。

ミミクリ換装用のボイスレコーダー・チェンジャーは今までに数回製作していて、その都度改善を図っている。
今回は、単4電池2本での安定動作と小型化、コスト低減を図った。

【開発要件】
・ターゲットは低電圧動作(1.7V)が可能で、廉価なATtiny13A(@50円2018年秋月)を採用した。

・メモリは従前どおりの24FC256とした。

・動作の流れは以下の通り

①PORで音声入力を待つ。

②音声を検出したら録音を開始する。

③音声が途切れるか、メモリが満杯になると録音を終了する。

④録音した音声を再生する。

・録音は4ksps、再生は8kspsとすることでボイスチェンジする。

・32ms単位で再生を2回繰り返すことで、しゃべるスピードは元のままとする。

・再生中はモーターを稼働させる。

・モーターの動作音を拾って録音を開始しないように、再生終了後は0.5秒待つ。

【回路図と配線図】
ATtiny13Aを基板に直付けしてISPを行う場合は、電源の大容量パスコンを切り離し可能とし、PB2に抵抗を入れておく。

ミミクリーペット3(ボイスレコーダー・チェンジャー換装)回路図
ミミクリーペット3(ボイスレコーダー・チェンジャー換装)配線図


【実装と動作確認】
製作した基板をぬいぐるみに実装して、各種のレベルや時間の閾値を調整する。
ミミクリーペット3(ボイスレコーダー・チェンジャー換装)基板製作2
ミミクリーペット3(ボイスレコーダー・チェンジャー換装)基板製作1

ATtiny13Aは1.7Vで4MHzとなっているが、2.0Vでは8MHzで安定動作した。少しオーバースペックか。

プログラムメモリの使用率は95%でギリギリだった。


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

【動画】
[広告] VPS
  1. 2018/11/14(水) 17:10:10|
  2. マイコン換装
  3. | コメント:0

シリアルフラッシュROMライター(差し替えファイル)

シリアルフラッシュROMライターの製作外観説明

【ファイルの差し替え】
PICプログラマーのバグ改修(16F88のプログラム不良) でPICプログラマーの入れ替えファイルをリリースした。

PICプログラマーから派生した シリアルフラッシュライター はPICプログラマーとファイルを共用しているので、必然的にシリアルフラッシュライターもファイルが更新されている。

現行のシリアルフラッシュライターは動作上の問題は無く、差し替えは必須では無いが、僕の都合でファイルを別管理したくないので最新版を公開する。(現行版は削除されている)


【ダウンロード】
詳細な製作資料とファームおよびPC側制御ソフトの開発プロジェクトは ここから ダウンロードできる。

PC側の制御ソフトはGUIとプログラマー制御の2つから成る。
①GUIを担うVBプロジェクト資材は「EEPROM」、実行ファイルは「EEPROM\bin\EEPROM.exe」
カレントディレクトリを 「EEPROM\bin」 に置いて起動すればよい。

②プログラマー制御を担うVCプロジェクト資材は「ISPdll」、DLLファイルは「ISPdll\Release\ISPdll.dll」

プログラマー側の制御ソフトは
③16F1454のファームウェアでMPLABXプロジェクトは 「ISPpic16F1454\apps\usb\device\cdc_basic\firmware\ISPpic16F1454.X」
USBドライバー組み込みに必要な inf と cat は 「ISPpic16F1454\Windows」 にある。


なお、今回の改修は上記の①から③のすべてが更新されているので、同時に差し替える必要がある。
  1. 2018/11/06(火) 15:51:08|
  2. プログラマー
  3. | コメント:0

PICプログラマーのバグ改修(16F88のプログラム不良)

プログラマー外観

【経緯】
いつの間にやらPICプログラマーで16F88のプログラムができなくなっていた。読み込みデータがオール0になるので、プログラミングモードに移行できていないようだ。

最近使っているデバイスでは問題は出ていないので、手持ちの古いデバイスで動作確認してみたところ、16F88のみで発生した。16F88は既に陳腐化していて久しく触っていないが、その昔には使っていてプログラムの実績はある。PICプログラマーの度重なる手入れの過程でデグレしてしまったようだ。

あらためて16F88のプログラミング仕様を確認すると、「VddオンからVppオンまでの時間が250us以内であること」が強調されている。

PICプログラマーはターゲット基板に装着された状態でのプログラムを可能にしていて、ターゲットに大容量の電源パスコンが設置されていることを想定して、その充電時間としてVddオンからVppオンまでの間を100ms空けている。この時間を10usに短縮してみたら正常にプログラムできるようになった。

原因は明らかになったが、ターゲットへのVdd供給機能はデバグ作業では使い便利なので、この機能を廃止する訳には行かない。そこで16F88についてはターゲット基板に装着された状態でのプログラムは諦めて、PICプログラマー上のソケットに挿して行うことにして、VddオンからVppオンまでの待ち時間を操作画面で変更できるようにした。

Vpp先行の手順では行けるかと試してみたが、16F88はVpp先行では動かない。プログラミング仕様書にはVdd先行の手順しか示されていない。なので、VddオンからVppオンまでの時間を短くするしか手立てが無い。


【考察】
ターゲットの電源パスコンの容量が10uFとすると、250us以内にVddが2.5Vまで立ち上がるためには100mAの充電電流が必要になる。

I=CV/t=10uFx2.5V/250us=100mA

PICkit3のVdd供給能力は高々30mAとされていてアウトだ。

僕のPICプログラマーでは100mAのVdd供給は可能だが、ターゲット基板の電源パスコンが10uFを超える場合はプログラミング仕様を守れない。

電源も信号線もターゲットの周辺回路から切り離すのなら、ICSPという言い方は詭弁だと思う。


【改修後】
PICプログラマーの操作画面
PICプログラマー操作画面
「Vddスロー」のチェックボックスがチェックされていると、今までと同様にターゲット基板の電源立ち上がりを100ms待ってからVppをオンする。デフォルトはチェックされている。チェックを外すと電源立ち上がり時間を待たずにVddオン後すぐにVppをオンする。

ターゲットに大きな電源パスコンが設置されている状態で、「Vddスロー」のチェックを外してプログラムを実行すると、過渡的な充電電流によってPICプログラマー側のVddが瞬低して制御用PICがBORする可能性がある。


【ダウンロード】
PICプログラマーの設計資料とソフトウェアは ここから ダウンロードできる。

PC側の制御ソフトはGUIとプログラマー制御の2つから成る。
①GUIを担うVBプロジェクトは「ISP\ISP\ISP.sln」、実行ファイルは「ISP\ISP\bin\ISP.exe」

②プログラマー制御を担うVCプロジェクトは「ISP\ISPdll\ISPdll\ISPdll.sln」、DLLファイルは「ISP\ISPdll\Release\ISPdll.dll」

プログラマー側の制御ソフトは
③18F14K50のファームウェアのディレクトリは「ISPpic18F14K50」、プロジェクトは「ISP\ISPpic18F14k50\apps\usb\device\cdc_basic\firmware\ISPpic18F14K50.X」、HEXファイルは「ISP\ISPpic18F14k50\apps\usb\device\cdc_basic\firmware\ISPpic18F14K50.X\dist\LPCUSBDK_18F14K50\production\ISPpic18F14K50.X.production.hex」

④16F1459のファームウェアのディレクトリは「ISPpic16F1459」、プロジェクトは「ISP\ISPpic16F1459\apps\usb\device\cdc_basic\firmware\ISPpic16F1459.X」、HEXファイルは「ISP\ISPpic16F1459\apps\usb\device\cdc_basic\firmware\ISPpic16F1459.X\dist\LPCUSBDK_16F1459\production\ISPpic16F1459.X.production.hex」

⑤16F1454のファームウェアのディレクトリは「ISPpic16F1454」、プロジェクトは「ISP\ISPpic16F1454\apps\usb\device\cdc_basic\firmware\ISPpic16F1454.X」、HEXファイルは「ISP\ISPpic16F1454\apps\usb\device\cdc_basic\firmware\ISPpic16F1454.X\dist\LPCUSBDK_16F1459\production\ISPpic16F1454.X.production.hex」

今回のバージョンアップは上記の①と②が更新されているので、PC側の制御ソフトだけを差し替えればよい。

PC側の制御ソフトは、OSへのインストールは必要なく、任意の1つのフォルダにISP.exeとISPdll.dllをコピーするだけで良い。
VisualStudio2008のランタイムが無いと言われたら、ビルゲイツの指示に従って別途インストールする。

PICプログラマーを始めて導入するときはUSBドライバーの登録が必要である。USBドライバー本体はWindows標準のものを使用する。infファイルとcatファイルは「PICプログラマー\ISP\ISPpic18F14k50\Windows」、「PICプログラマー\ISP\ISPpic16F1459\Windows」、「PICプログラマー\ISP\ISPpic16F1454\Windows」にある。

ハードウェアの設計書は「USB接続簡易共用プログラマー設計・回路図・配線図.xls」。
各デバイス毎のソケットアダプタ結線は、シート名「ソケット・・・」を参照。


なお、今回の改修は上記の①から⑤のすべてが更新されているので、同時に差し替える必要がある。


【後日談】
実は、本件は勘違いであったことが後日判明した。

16F88が読み書きできなかったのはプロテクトが掛かっていたからのようだ。読み込み結果のCONFIG領域は正しく読めていたことが後で判った。

Vddオン後に10msの時間を置いてVppオンしても、16F88はプログラミングモードに入ることが実験で確認できた。

結果としては今回の修正は必要では無かったが、プログラミング仕様を順守するということで。。。
  1. 2018/11/06(火) 15:31:19|
  2. プログラマー
  3. | コメント:0

PICでタッチSW(第4弾)Sleep対応

【前振り】
前回の 「PICでタッチSWを製作(第3弾)」 では、容量検知モジュールを持たないPICでタッチSWを実現し、PIC電子オルゴールの操作を試みた。
今回は非演奏中にはSleepさせて、省電力化を図った。

【設計】
容量検知の仕組みはポートの浮遊容量の変化を検知することだ。その動作は以下の通り。

①ポートにLを出力し、浮遊容量を放電しておく。
②ポートを入力モードに変更すると、1MΩの外部プルアップで充電が始まる。
③充電が進んでポートがHレベルになったときに、IOC割り込みにて充電に要した時間を計時する。
④計時の精度を確保するため、計時中はIOC以外は割り込みを禁止し、電子オルゴールのPWM周期の32us以内に充電が完了するようにプルアップ抵抗値を決めている。
⑤計時の仕掛けは、充電開始時にTMR0を初期化しておき、IOC割り込み時のTMR0の増分で計測する。

Sleep中はTMR0が停止するので計時はできない。従って計時が完了してからSleepする。

省電力の度合いは計時時間とSleep時間との比による。計時時間は自由度が無く20us程度となるので、Sleep時間を長くすればより省電力にできる。タッチSWのレスポンスとのトレードになる。
このサンプルでは電子オルゴール非稼働中のタッチセンスの周期を32msにしている。1回の動作ごとに1個のタッチSWしか評価しないので5個のタッチSWを一巡するには160ms要する。PIC電子オルゴールの固有処理のコールバック周期も32msに合わせた。

タッチ有無の判定は容量検知結果の変化で判定する。その閾値を小さくすると敏感になるが誤動作が増える。逆に大きくすると誤検知はしなくなるが鈍感になる。実装によっても状況が変わるので、定数宣言しておきチューニングできるようにしておく。

PIC電子オルゴールではFoscは32MHzが必要だが、x4PLLが安定するのに時間を要する。16F1705では実測で2ms程度が掛かっている。このため、非稼働中の容量検知はFoscを16MHzにして実行する。稼働中はTMR0のプリスケを1/2とすることで、非稼働中の計時結果との互換を保つ。

動作確認環境は前回の 「PICでタッチSWを製作(第3弾)」 と同じ。


【実験結果】
タッチセンスの使い勝手は前回と同等のレベルになった。
稼働中と非稼働中では計時結果に段差があった。この原因が判らないのだが、ほぼ固定差なので、固定値で一律の補正を行った。
非稼働中の消費電流は14uAとなった。

【ダウンロード】
「PICでタッチSW」の設計資料は ここから ダウンロードできる。

今回のSleep対応したタッチSWの仕組みはPIC電子オルゴールに組み込んで公開している。
PIC電子オルゴールの設計資料と開発プロジェクトは ここから ダウンロードできる。

該当するプロジェクトは touch_PIC1705_SLP.X
  1. 2018/11/06(火) 12:07:02|
  2. タッチセンス
  3. | コメント:0

プロフィール

大泉茂幸

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

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

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

当ブログで公開している技術情報や成果物の複製、改変および再配布はフリーです。読者様のおもちゃ病院活動のお役に立てば幸いです。ご利用いただいた結果や感想等を記事へのコメントやメールでフィードバックしていただけると有難いです。なお、公開ファイルは最新版を載せているので、古い記事の内容から変わっている場合があります。

カテゴリ

おもちゃ修理技術 (131)
¦ ・電子オルゴール+音声再生 (53)
¦ ・音声再生・録音再生 (14)
¦ ・2.4GHzラジコン (40)
¦ ・レガシーラジコン (13)
¦ ・赤外線リモコン (4)
¦ ・RFID (3)
¦ ・タッチセンス (4)
ツール製作 (35)
¦ ・プログラマー (27)
¦ ・USB-シリアル変換 (3)
¦ ・その他のツール (5)
修理事例 (157)
¦ ・マイコン換装 (75)
¦ ・電子・電気修理 (59)
¦ ・メカ修理 (23)
製作記事 (5)
PIC開発 (4)
おもちゃ病院 (9)
ドクター研修会 (2)
未分類 (1)

最新記事

最新コメント

月別アーカイブ

訪問者数

検索フォーム

RSSリンクの表示

リンク

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

QRコード

QR