おもちゃドクターの要件

当医院のホームページをご覧の皆さんは、恐らくおもちゃドクターとして診療にあたっておられる方がおられるかと思います。

先日、所属している協会の案内に、おもちゃ修理に関するクレームの紹介があった。

※ここでその詳細についてコメントするつもりではありません。

このようなクレームは、めずらしいことではなく定期的に協会側に入ってくるそうです。

独立したまったく協会とは無関係なおもちゃ病院のクレームまで協会に入ってくるそうです。

診療にあたったおもちゃ病院に対して直接クレームを申し入れたが、怒りが収まらず協会にも申し入れたのでしょうか。余程の恨みがあったのでしょうか。

実は、当、宅配おもちゃ病院にも、地域のおもちゃ病院に依頼をしたが、修理不可能というか故障した場所以外が壊されてしまったという相談があります。また、修理をお願いしたが、どうみても破損が激しく損傷が広がって返却されたという悲しい相談があり、そのような事情を鑑みて当医院にてあらためて修理を受け付けすたという案件もあります。※因みに案件数も少なくないです。

私も、以前所属していた、おもちゃ病院で他のドクターが依頼者様とのトラブルが起きたという経験があります。

さて、ここで、本題のおもちゃ修理に関する技術的なスキル以外に必要な要件があると思います。

インターネットで修理のスキル自体のないドクターに診断されたクレーム記事を拝見します。

まぁ、何とも説明責任を果たしていない残念で仕方がない事故が起きています。

そのような場合、依頼者様は、堂々とクレームを申し入れてください。

あらためて、病院スタッフに必要なスキルですが、

  • 依頼者のレベルに合わせた会話のできるヒアリングスキルが必要。
  • お客様対応窓口などの”言葉使い”のできるスキルが必要。
  • 進捗管理やトラブル対応などの経験が必要。
  • 安全管理。

時々拝見しますが、ドクター募集の要件に、『おもちゃドクターには何の経験やスキルもいらない』なんて絶対”ない”です。

誤診、判断ミス、作業ミス、あやまって壊してしまったときは、正直/正確にお伝えし謝罪する。瑕疵など場合によっては、賠償をし誠意対応をする。

皆さん、これできますか?

このようなことができてやっと、おもちゃドクターではないのでしょうか。自分はそう思います。

依頼者を目の前にして工具を使用して作業をするのですから、何の経験もスキルもいらないなんて、もう一度書きます、そんなことないです。

おもちゃドクターとは人間だから、ミスなく万能なんてないんだから、ミスをしたら謝罪します。

そのミスが、通常作業上起こりうる事象であれば、その旨説明すればと思います。

そのような説明でも納得できず、損害賠償を請求されるようであれば、受付時の了承事項などで対応すべきと思います。

恐らく、いきなり『壊しても文句いわんでくれ』などと、お客様対応の経験のない方が対応してしまうと、火に油を注ぐ事態になります。

悲しいかな、壊れたおもちゃを診て、言う必要のないことまで言ってしまうドクターがおられました。

お孫さん程のママやパパさんに説教に近いことを言ってしまうのです。

  • 保管方法や使い方が悪いと説教をし出す。
  • 依頼者自身で修理をしてしまったことを叱責する。
  • 取り扱い説明書を読んでいないなどの遊び方を知らないことではだめだよと言ってしまう。

また、最近気づくこともあります。

  • 昭和世代では通じた冗談が通じない。
  • セクハラを容認するような言葉を言ってしまう。
  • なぜか、メーカー批判をする。修理できなかったのは、自分の技量不足ではなく、おもちゃの設計にあったという。

このようなトラブルの頻度は多くはないのでしょうが、活動の姿勢という意味合いで記事にしました。


クリスマス スノードーム スノーイングファイバーツリー改造

ちょうど一年前ですが、スノーイングファイバーツリーという商品の修理依頼を受けました。

いわゆるスノードームの類でスチロール製の粒を雪に模しファンでドーム内を下部からツリーの頂上へ拭き上げ雪を降らすという代物です。クリスマスキャロルをメロディとして鳴らし、クリスマスのキャラクター達が底面に溜まった雪粒を中央に掻いて拭き上げの吸い込み口に落とし込みます。

当時の依頼者の方は毎年クリスマスの時期にご使用になられていたそうですが、サンタやトナカイの回転がせず雪が降らなくなったり、クリスマスのメロディも鳴らなくなったそうで、各所修理を行いました。

無事、修理も完了しましいた。その際の動作状況の動画がこちらです。

動作状況

実は、この修理時に『なんて素敵なのだろう』と自分も欲しくなってしまいました。

既に販売から数十年経過し同じ商品は、中古でも入手は困難です。もちろんですが、新商品としても販売はされていないようです。

そんなことを考えつつ1年が経過した時にちょうどフリマサイトで似た商品が出品されておりました。

完全に同一の商品ではなく、メロディも故障して鳴らないという故障品だったのですが入手し同じように修理と改造をしようと考えた次第です。

今回はこの新規に入手したクリスマススノードームの修理改造に関する記事になります。

やることは、以下の通りです。

  • メロディ以外の機能は大丈夫か?
  • メロディが鳴らない原因は何であるか?修理できるか?
  • 電子オルゴール化できるか?
  • その他の箇所は問題なく可動するか?

等々です。

早速開封し調べてみるとメロディが鳴っていなかった原因は直ぐ判明しスピーカーの故障でした。また、その他の機構部も稼働できていますのでメンテナンスのみで再び同じように動作できます。

が!

スピーカーが玩具用の小さいスピーカーで音質が悪いです。

また、実装されたメロディも簡素な8bit諧調のよくあるヤツです。

この256諧調のメロディは好きになれません。

256諧調メロディ

ファミコンのBGMですね。

ボスキャラが現れそうです。

ということで、今回も前回と同じように和音の電子オルゴール化します。

最終的にはこのようになります。

完成の姿

なんて素敵なんでしょう。癒されますね。

インプリの詳細は以下のようになります。

ものまねハムちゃんとバズライトイヤー

こんな遊びをしてみました。

インタラクティブ版のバズライトイヤーですが、掛け合いの相手がいないので、ものまねハムちゃんに相手をしてもらいました。

案外正確にオウム返ししてくれますね。

ものまねハムちゃんとバズライトイヤー

ワンボードMP3プレーヤーをATtinyのタッチセンスでコマンド発行できればこんなのもできます。乾電池2個で実現できるというのは便利ですね。


ATtiny13aによるSleep タイマー付き DFPlayer mini 再生環境の構築

※旧スタッフブログから移設転記記事となります。

ATtiny13aによるSleep タイマー付き DFPlayer mini 再生環境の構築  

■概要

まず、概要からご説明します。

SNOOPY & FRIENDS DIORAMAという、加藤工芸社製のジオラマ電子オルゴールの修理依頼がありました。

過去に1度修理を行った経験がありますが、残念ながら、COBの制御ICの故障で元の状態には修理できませんでした。記事は、こちら。

そこで、DFPlayer miniというMP3/WAVプレーヤーを換装内蔵して代わりに演奏をしようという修理をいろいろ検討しておりました。詳しい作業内容は、こちらを参照ください。

さて、今回は、その修理記事を参照された方から、お手元にある同じジオラマ 2台も同じように光らなくなり音楽も演奏しなくなったとのことで修理して欲しいとの依頼がありました。詳しい作業内容は、こちらを参照ください。

2台のどちらも、制御ICの故障で交換もできませんでしたので、初回と同様にDFPlayer miniでの換装をご提案したのですが、お気に入りのスヌーピーの音楽が聴けないのなら、換装は不要とのことでした。

さて、今回のスタッフブログは、実は、その修理に際し、旧来のDFPLyer miniの再生環境をバージョンアップ検討をしていたので、実際のインプリはできませんでしたが、最新のATtiny13aによるDFPLyer miniの再生環境についてご紹介します。 検討の経緯を時系列にすると、以下のような順序です。

  1. 初回は、作業時間の関係でATtiny85による単なるSDカードに保存されている音楽ファイルを再生するといったものであった。こちらを参照。
  2. 制御ICをより廉価なATtiny13aに移殖し、曲のスキップ機能をSW-420の振動センサーで実装。こちらを参照。
  3. 追加機能にタイマーによるSleep機能の追加とSleep時の消費電力低減の効果向上。←今回のご紹介記事内容。

さて、今回のバージョンアップとは、どのような内容かをご紹介します。

制御ICは、ATtiny13aのままで、振動センサーもSW-420のままとなりますが、タイマー機能とそれに伴う、タイマー切れ時のSleep機能を追加しました。

このSleep機能とは、当初も検討をしていたのですが、長らく宿題にしていた検案でした。

それは、なぜか?

まず、タイマー機能は、SNOOPY & FRIENDS DIORAMAをご覧になられたことのある方は、ご存知かもしれませんが、しばらく演奏を楽しむジオラマですので、うっかりウトウトと居眠りや眠ってしまった場合、乾電池が減ってしまいます。

ジオラマの取説には、タイマー機能は、見つからなかったのですが、恐らくですが、曲が一巡すると止まるのだと信じています。

取説には、その旨の記載が無く、永遠ループ再生は、仕様的にあり得ないですからね。

ATtinyで換装した場合も、一巡したら演奏停止させてもいいのですが、繰り返し演奏中に、スキップコマンドを発行し、次の曲を演奏すると、その曲の演奏の終了と共に繰り返し演奏モードが解除され、そこで止まってしまう事態に遭遇しました。

さて、困りましたが、であればということで、タイマー機能を実装してしまおうと考えたまででした。

停止時は、Stopコマンドの発行同様に待機状態なので、そのままでは、消費電力も抑えることができません。

そこで、タイマーで停止した際、ジオラマ全体をSleepさせ乾電池の消費を抑えることにしました。

タイマー機能ですが、最終スキップコマンドから1時間の演奏でDFPlayerとSW-420の電源を落とし、ATtimy13aもSleepするという流れです。

では、機能方針が決まりました。それぞれの項目についてさらに検討します。 では、回路の検討とプログラムの検討に項目を分けます。

■回路検討

後述のタイマーなどプログラムが完成したという前提で回路を検討します。 では、Sleep時の消費電力削減について検討します。

機能追加前のDFPlayer mini再生環境のブロック図です。

ブロックは、大きく分けて、ATtiny13a, SW-420, DFPlayer miniの3ブロックです。

最初に、DFPlayer miniの消費電力についてです。

平時の再生時は致し方ないですが、前述のとおりタイマー切れ後は、やはりSleepしてもらうのですが、このDFPlayer miniは、Sleepコマンドを発行して止めても約15mA流れっぱなしです。※実測は、12mA@Vcc = 4.5V 程でした。

うーん、Sleepしてても結構流れており、電池が消耗します。こちらのマニュアルの5.2 の注意点の5にもっと消費電力を落としたければ、ユーザで電源を制御しろとあります。

そこで、ATtinyでDFPleyerとSW-420の電源をSleep後にスイッチングして完全に切ろうと思います。回路を検討します。

SNOOPY&FRIENDS DIORAMAの回路図を解析すると、LEDの点滅モジュールの起動管理をCOBのICが担っており、S8050を負極電源のスイッチングに使用しておりました。ベース抵抗は、300Ωが付いておりましたが、同様にATtiny13aでもトランジスタのスイッチングで電源管理を行います。

IC電流のMax値も考え、スイッチングトランジスタとしては、まずはS8050の使用の前提でベース制御をATtiny13aのポートで行います。

検討回路でベース抵抗の適正値を計算します。

S8050のVBE(sat) = 1.2Vです。hfeは、使用するDランク品で 160-300です。飽和域にて温度変化も考慮し、hfe minの1/2程度の80でも安定してスイッチングできるようにします。

ATtiny13aのGPIOのVOH/IOHは、マージンを考慮し3.5V, 20mAとします。

IB = (3.5 – VBE(sat))/ベース抵抗 R = (3.5 -1.2) / R = 2.3 / R hfe = 80として計算します。

DFPlayer miniの動作時の電流を計測すると、100mA程度流れます。

ですが、モノラルアンプも搭載しており、スピーカーも鳴らしますし、何より起動時や瞬時の過大電流も流せるように設計しないと、瞬停による誤停止(ビーと鳴る)します。

これは、DFPlayer自身が瞬停した場合もそうですが、ATtiny13aの瞬停による再起動とコマンドの再発行による誤動作も含まれます。

安定して動作するためには、(2.3/R) * 80 > 500mA 以上は欲しいです。計算すると、R = 368Ωですので、300Ωとして確認計算します。※なんか、モータードライバ並みです。

IB = 2.3/300 = 7.6mA ・・・IOH規定以内です。

hfe = 80でなら、IC = 613mAとなります。イケそうです。

ここで、前提としていたS8050のICの定格(500mA)を超えますので、SS8050(IC = 1.5A)を選びます。 ※因みに、当初起動電流の読みを誤り、IC = 200mA程度で検討していたのですが、やはり起動できませんでした。

さて、話を負極電源のスイッチングに戻します。以下の回路を検討します。※注意、電源パスコンは、適宜挿入ください。

ATtiny13aは、旧来回路時は、振動検知の割り込み以外は、パワーダウンしてもらっていましたが、タイマー機能を追加するので、常にカウンターとして機能してもらい、振動検知時のスキップコマンド発行と電源制御を別途追加します。

ATtiny13aのポートから起動初期に制御信号を出してスイッチングトランジスタをONにしますが、負極での電源制御は、結局NGでした。

図中の緑の点線の経路にSleep時にGNDのパスが形成されトランジスタをOFFにしてもTXライン経由で電流が流れてやはり12mA程度流れっぱなしになります。

Sleep後にTXを抜くと0mAとなります。ということで、負極ではなく、正極にスイッチングトランジスタを挿入します。

これで無事SleepにDFPlayerとSW-420の電源断を制御できるようになりました。

回路図の電源スライドスイッチは、実際は、おもちゃの電源スイッチに置き換わります。 ですが、注意が必要です。

回路図にも記載している通り、SNOOPY&FRIENDS DIORAMAの電池ボックスは、単三の乾電池3本が制約となります。

SS8050のVCE(sat) = 0.5V(max)なので、電源の4.5V – 0.5V = 4.0Vが、計算上は供給電源になります。

回路を組み電圧を計測したところ、VCE(sat) = 0.5Vですが、実測はDFPlayer miniは、3.6Vで可動していました。

本回路には、振動センサーやAttiny13aもぶら下がっているので、どこらかしこで電流が食われ電圧の降下が起きているようです。

乾電池で動作確認をしていると、電源が約4.0Vを切ったあたりで、DFPlayer mini向けの電圧が足りなくなく、例の”ブー”っというノイズで力尽きます。

DFPlayer miniのマニュアルによると、4.2Vでの動作が推奨されており、安定動作のためには、他の改善策が必要という感じです。

Sleep機能をバイポーラトランジスタで実装設計する場合、VCE分の電圧降下が生じます。

このVCE分の電圧降下は、電源のパスコンの挿入位置や容量にも影響しますので、実装方法とパスコンと電源回路はセットで検討しないといけません。 補足として、DFPlayerの推奨電圧で動作させるためには、その分の電源電圧を上げる必要もあります。

DFPlayerは、食いしん坊なので、演奏時の急峻な電圧降下で自身がハングアップしてしまう事態も考えると、根本的な電源回路の設計が必要です。

今回の検討時にもATtinyの電源とその他の電源分離も試行しました。

電池ボックスの電源は、DFPlayerとSW-420に供給し、ATtiny13aには、大容量の電解コンデンサを設置しショットキーバリアダイオードで分離するといった、分離回路によくある回路構成です。ですが、先の電源である電池ボックスの単三乾電池3本の制約もあり、ダイオードのVf分の引き算とSS8050のVCE分をそれぞれ差し引くと、既に3.0Vを切ってしまいDFPlayerでの実装が不可能であることがわかります。

これも今後の宿題としたいと思います。 最後に、一応念のためですが、電源スライドスイッチの620Ωの抵抗ですが、ATtiny13a用の220uFのディスチャージ用で、これがないとSleep後に電源を入れ直してもATtiny13aが、220uFの電流でSleepしたままになるのを防ぐためです。 さて、これで回路の構成は、一旦Fixとします。

次にプログラムの検討について紹介します。

■プログラム検討

機能追加前のプログラムはこちら紹介しているのですが、新たに機能追加してことでATtiny13aのFlashの容量をオーバーしてしまいました。

開発環境は、Arduino IDEにATtiny13aのマイコン設定をしてArduinoとして開発をしていたのですが、やはりオーバーヘッドが大きくなるので、今回は、全て非ArduinoとしてArduinoのライブラリは、使用しないことにしました。

タイマー機能は、Timer0のオーバーフロー割込みの回数をカウントして、規定回数で割込みを発生させ、Sleepさせることにしていましたが、ここで思わぬトラップにハマりました。

ISR(TIM0_OVF_vect) {…}が、自分の環境では使用できませんでした。 いろいろ調べてみたのですが、Arduino IDE環境にbitDuino13を適用して使用すると、delay系のライブラリ内で既にISR(TIM0_OVF_vect){…}が使用されており、どうもそのせいで使用不可のようだと勝手に自己完結しています。

確認したファイルは、…\Arduino15\packages\bitDuino13\hardware\avr\1.0.1\cores\arduino配下のwiring_time.cを参照すると、確かに適用されていますが、真偽は定かではありません。※事由をご存知の方は、教えて頂けると助かります。

さて、さて仕方ないので、OCR0A = 255 としてCOMPAの割り込みを使用することでTimer0のオーバーフローと同じ動作をさせています。 規定回数の割り込み発生をカウントしたら、DFPlayer miniをsleepさせて、電源を落として自身がSleep(パワーダウンモード)します。スキップ時は、規定回数のカウントは、初期化します。 以上が、今回検討した内容の紹介になります。


DFPlayer ATtiny13a用環境のライブラリ更新

※旧スタッフブログから移設転記記事となります。

スタッフブログにて、ATtiny13aにて、振動センサーを利用した1時間のお休みタイマー付きのDFPlayer Miniの再生環境を紹介しました。記事は、こちら。

利用をしている、Nerd Ralph氏によるシリアル環境のBug fixと各種アップデートを兼ねて新たにGit HUBにライブラリ picoUARTとしてを公開されました。 Git HUBのライブラリのダウンロードは、こちら。

そこで、DFPlayer miniで構築しているライブラリもそれに合わせて更新をします。今回は、その紹介記事となります。 ライブラリのツリー構成は、以下のようになります。

では、次にそれぞれの変更内容を紹介します。

(旧)DFPlayer_Mini_Mp3.cpp → tiny-DFPlayer_Mini.cppへファイル名変更

“DFPlayer_Mini_Mp3″を”tiny-DFPlayer_Mini”としました。また、#includeしているシリアル通信用のライブラリを変更し、シリアル通信用の関数TxByteをputxに修正します。その他は、そのままです。

DFPlayer_Mini_Mp3.h → tiny-DFPlayer_Mini.hへファイル名変更

ヘッダファイルは、ファイル名のみの変更となります。

pu_config.h

pu_configは、ボーレートとTXピンとRXピンの設定をします。

4行目にボーレートを設定します。

また、8行目にTXに使用するPORTBのBit番号と9行目にRXに使用するPORTBのBit番号を記載します。

ここで注意ですが、書式は、B,0のような書式となります。

最後にATtiny13aでインクルードしていたライブラリ名も”DFPlayer_Mini_ATtiny13a.h” →”tiny-DFPlayer_Mini.h”に変更しておきます。

以上が、ライブラリの更新内容の説明となります。シリアルプリントも使えるようになったのでかなりうれしい更新となります。

DFPlayer mini + ATtiny13a 再生環境構築

※旧スタッフブログからの移設転記記事となります。

DFPlayer miniというMP3/WAV形式の音楽ファイルを再生できるブレイクアウトボードがあります。2WのモノラルアンプとマイクロSDカードスロットとMP3およびWAV形式ファイルのデコードも1ボードで完結でき、数百円で購入できるという魅力があります。

さて、このモジュールをおもちゃ修理に利用できないかと思案していたのですが、先のブログ記事であるおやすみホームシアター再生化計画というおもちゃの再生に利用しており、一応の環境は構築できておりました。

しかし、おもちゃ修理に利用するには、さらなるコストダウンとダウンサイズが求められます。

スヌーピーのジオラマの修理では、ATtiny85というマイコンをソースコードの流用性から適用しましたが、機能自体は、ATtiny13aというマイコンでも十分実装可能で、購入コストも1/3にできる利点があります。

また、当修理で見送った振動による曲スキップの機能も今回合わせて実装をおこなったので、その詳細について紹介をさせていただきます。

回路図(電源パスコンは、適宜挿入ください。)

DFPlayer mini自体は、この基板にて外付け分圧の抵抗とプッシュスイッチにて再生環境は完結できるのですが、以下のデメリットがあります。

  • 音量がデフォルトの最大値で再生される
  • 利用できるイコライザーや音響の設定ができない
  • ランダム再生やトラックを指定した再生ができない

そのためデータシートにも記載があるように、シリアルのコマンドが多種用意されており、外付けのMCUにてコマンド送出することで多彩な再生ができるようになります。

単純なシリアルのコマンドですので、ATtiny13aのような低価格のマイコンでも十分にその機能を実装できます。

さて、前述のトラックのスキップ機能を実装するにあたり、以下のような考察を行いました。

スヌーピーのジオラマの修理にて、回路解析した振動によるトラックのスキップ機能は、記載の回路図のとおり、圧電スピーカーによる振動をダーリントン構成のトランジスタで増幅し検知するという内容です。

当該の修理でも、その回路を用いてトラックのスキップ機能の検証を行ったのですが、DFPlayerからの再生音をモロに圧電スピーカーが拾ってしまって、感度を最低にしても再生音楽を振動としてとらえてしまい機能の実装を断念しました。

そこで、今回は、SW-420という振動センサーモジュールを搭載しました。

平時は、sleepでMCUには眠っていただき、少しですがマイコン分の消費電力をいくらか低減しようと試み、信号の検知は、ATtiny13aの外部ピンの割り込み処理でWake upすることにしました。

SW-420の仕様を整理すると、振動センサーの検知信号をLM393にて増幅します。

検知感度は、可変抵抗にて作動側に印加し閾値を持つようにしております。動作電圧は、3.3V~5VとArduinoやATtinyと共用可能です。

さて、SW-420は、アクティブハイで感度に応じたパルスを出力するのですが、ATtiny13aのINT0割り込みですが、パワーダウンモードからの起動割り込みは、レベル検知での割込みのみと制約があります。データシート Table 7-1 参照。

また、その際、Level 0 つまりLOWレベル検知というのも制約になります。データシート 9.2章、9.3章 参照。

9.2 External Interrupts より抜粋
9.3.1 MCUCR – MCU Control Register より抜粋

そのため、回路図中にてSW-420 が出力するHiパルスを反転するため2SC1815にて反転回路を挿入しております。センサーからのバッファー的な役目も担っておりますので、この回路構成の方が、安定して検知できていると思います。プログラムの処理としては、

  1. PORTB TXピンの設定
  2. イコライザー設定→音量設定→リピート再生コマンドの送出
  3. 割り込み許可
  4. スリープ

割り込みにて起きたら、指定ベクターにて、

  1. 割り込み不許可
  2. トラックスキップコマンドの発行

となります。

振動を検知すると、LOWパルスを発行しATtiny13aをsleepから起こしトラックのスキップコマンドを発行し、またすぐsleep します。

DFPlayerは、そのまま再生を続けるため、回路的には分離して考えることができます。

■ブレッドボード & 安定化電源版 8Ω 0.5W スピーカー (※音量 小さめなので音量を上げてお聞きください。)

■ユニバーサル基板 & 乾電池(4.5V)版 8Ω 8W スピーカー


一応、自作のライブラリもあるのですが、流れを紹介するため、ソースコードは以下のような感じです。

まだ改良の余地は、残っておりますが、Flashの領域を既に90%程を消費しておりますので、ここらあたりが落とし所かと思います。


さて、最後にですが、他のブログ等で拝見すると、動作中に”ビー”っと鳴ってしまい、動作できないなどの症状を目にします。

どんな機器でもそうですが、DFPLayerも、起動時やトラックの再生開始時に電圧降下を起します。

使用電源や電源回路が、それに耐えうるよう設計されていなければなりません。

回路設計の実務経験があればご存知かと思います。

実回路へのインプリ時に消費電力から、適切な電源の選定やパスコンの容量を決定し適宜挿入ください。 ※特に電源仕様の下限ぎりぎり&パスコン無しでは、曲の性質にもよるのでしょうが、だいたい動作しませんので、”ビー”っとなって困っているようでしたら、電源周りを確認したほうがいいです。 DFPlayer miniは、こちらで購入できます。

SW-420は、こちらで購入できます。

ソースコード中で使用されているライブラリをスタッフブログで公開しておりますので参照ください。

おもちゃ修理での電動ドライバー禁止

修理DIYなどのYouTuberがしきりに電動ドライバーを使っていますが、おもちゃ修理では電動ドライバーを使ってはイケません。

プロの方であれば電動ドライバーの弊害は、知っていると思いますので、間違ってもネジを回すときは手動の各サイズのドライバーを使ってください。

  • 固着時のネジ折れが誘発する。
  • 腐食ネジや異物が噛んだネジの溝を潰してしまう。
  • 押して緩めるという段を踏めない。
  • 『電動ドライバーを使っているぜ!』という、意味不明な主張がムンムンしている。

何故か電動ドライバーを使っているんですよね???

そんなネジ外しに時間なんで掛からんだろう。例え、10分以上掛かったたとしてもネジ外しのミスを犯すリスクを考えると電動ドライバーなんて使ってはイケません。

自分も数台電動ドライバーをもっていますが、特に始動時と絞め終わった際のネジへのインパクトが結構大きいです。

たまごっちのネジ外しに電動ドライバーを使っていた動画を見た時は、『正気の沙汰ではない』と思いましたよ。

半田コテ先の温度とメンテナンス

今回は、おもちゃドクターの皆さんも日常的にお使いになっている半田コテ先についての記事になります。

自分は、goot製とHAKKO製のコテを使い分けている。

小手先は、下地に鉄のメッキがあり、その上層に錫メッキが施されています。

銀色にピカピカに光っている部分がメッキ部分です。

先日、地域のおもちゃ病院で診察で、半田付けが得意でないドクターのヘルプをした。

液漏れした電池ボックスの負極が腐食して電極も導線も全て腐食していた。

まず、付着した粉をブラシなどで取り除いたまではご自身でできたのだが、そのまま半田盛りをお持ちのコテで温め溶かそうとしていた。

見た目から30Wの普通のコテで細かい作業ができるように細目の小手先が装着されていた。

腐食した半田の盛りをヤスリで表面を削ったようだが、削りが足りなくそのまま小手先を当てたままにしておられた。

また、フラックスの役目も使用方法も習得しておられないようで、ヤニ入り半田のヤニ成分のみで半田付けしようとしており、フラックスを充分に使っておられなかった。

すこし様子見していたが、危険と察知し作業を交代した。

このまま電極に小手先を付けで温め続けた場合、電池ボックスの電極周辺の筐体が溶けてしまいます。

これがプリント基板の電極の場合は、ランドが剥がれてしまいます。

以前、横浜のおもちゃ病院での出来事ですが、紙フェノール製の片面基板にリードのTO-92のトランジスタの足が半田付けされておりました。足が曲がっていたのもあって、なかなか外せないのでしばらく小手先を当てていたらパターンが剥がれてしまったという相談を受けたことがあります。

プリント基板の配線パターンは、温度を掛け過ぎると剥がれてしまいます。

参考画像ですが例えば、このような電極に盛られた腐食した半田の盛りに小手先をあてても温度が上がりません。

容易に想像できると思いますが、腐食の錆が断熱材代わりになり半田に熱が伝わらず溶けません。

導線も腐食して使い物にならないので、ささッとカットして錆をヤスリで研摩してピカピカにし半田を露出します。

しかもですが、お使いの半田コテを使わせていただいたのですが、細目の小手先が真っ黒でした。

HAKKO社のメンテナンス紹介ページにあるように真っ黒でした。

ここで小手先云々の話しはできないので、自分のコテを使って作業をしました。

ここでの振り返りとしては、細い小手先は放熱で熱が上がりにくいので、温度管理できるようにパワーコントローラーを付けて温度管理しないとイケません。

ただ、新規に温度管理のできる半田ステーションを購入する必要もなく、お持ちの半田コテの電源を制御して温度管理できます。

ただ、ダイヤルのツマミ位置とお持ちの半田コテ先の温度の位置関係が分からないため、どの位置でどの位の温度になるのかを調べないとイケません。

このような熱電対で小手先の温度を計測できますので、ツマミ位置と温度をメモすると便利です。因みに、小手先を異種に交換した場合も温度確認が必要です。

さらに、日常から小手先のメンテナンスが必要です。

既に酸化が進行した小手先は、錫メッキも剥がれてしまっている場合も多いので、そのような場合は小手先を交換するしかありません。

表面的な酸化膜が少し黒変している場合は、使用している半田の適正温度(320℃~380℃)で半田送りしてみるといいですが、多くの場合すでに手遅れです。

小手先に付着酸化した不純物を小手先の拭いなどで綺麗にし市販のポリッシャーでメンテナンスすることをお勧めします。

以下にまとめます。

  • 半田コテ先の温度管理を徹底する。(320℃~380℃)
  • 温度管理できる半田コテを購入するまでもなく市販のパワーコントローラーを接続し温度管理する。小手先温度計でパワーコントローラーのツマミ位置と温度をメモする。
  • 小手先は日常的にメンテナンスする。
  • 酸化してしまったら、洗浄ポリッシャーでメンテナンスする。
  • それでも小手先が復活しない場合は小手先を交換する。

されに半田作業時も以下に気を付けたいです。

  • 半田作業終了時は、残り半田が付いたままにしメッキ部の酸化を予防保管するようにする。

COB内素子故障について

本日は、先日当医院ホームページの読者のおもちゃドクター様から頂いたご質問について掲載しようと思います。※以前のスタッフブログの移設再掲になります。

スタッフブログへ、COBって?という記事を掲載していますが、そのCOB内素子に関するご質問となります。※記事の中で、特段明記しない場合は、COBの中身は半導体素子がパッケージされているとします。

再掲ですが、COBという名前の電子素子は存在しません。COBとは、基板上にモールドするというパッケージの手法を指します。誤用しているおもちゃドクターの多いこと。

さて、ご質問ですが、COB内部の素子が、故障しているという判断基準についてと、正常に動作しないおもちゃに実装されているCOB部分に熱を加えたら動作し始めたという巷で呼ばれている『ヒートショック療法』についてどのように考えるかというご質問でした。

1)COB内部素子不良の判断基準について

COBパッケージが用いられたおもちゃを修理する際ですが、まずはじめにおもちゃの動作仕様から、COB部分が、どのような動作機能を担っているかを的確に推測できるかが鍵になるかと思います。

おもちゃの機能仕様や設計仕様がないため、COB部分は完全なブラックボックスとなりますので、正常な動きをする場合、該当のCOB部分が、どのような機能を担いどのように動作しないといけないという推測しなければなりません。

非常に大事です。

機能の推測ができれば、そのブラックボックスへの入力と出力を観測します。

与えられている入力に対する出力が、正しく出ているかという点となります。

入力例:電源, GND, センサーからのアナログ入力や、プッシュスイッチのHi/Low、外部発振回路など。

出力例:液晶信号やスピーカーへの音声やモーターへのPWM波、LEDへの電圧など。

COB内部の素子が、制御LSIなどで通信相手がメモリや周辺のLSIなのであれば、さらに複雑化します。

これら推測された、入力信号が正常に与えられてあったとしても、期待した出力が得られていない場合、COB内の素子の機能が正常に動いていないと結論づけます。

だいたいここで、修理不可能という判断かと思います。

そもそも、出力信号が観測できないような基板構造である場合も多く、そのような場合も診断不可能という判断になります。

ですが、正直なところ一切の仕様書がないので、この推測も外れている可能性も否定できず、皆様のインターネットの修理記事を参考にしたり、自身のスキルでできる範囲で最大の努力をしてもなお、解析できず断念する場合も多いです。

自身の技量不足として、ごめんなさいをします。

例えば、多層基板の構成で入出力信号が、COBパッケージ直下にVIAとして出ていた場合やリバースエンジニアリング対策で基板一面がシルクで塗装されていたりすると、信号の解析すらできないです。

初代たまごっちなどのように COB内の1chip ICで液晶や音声、ボタンの入力などを一手に担ってる場合が該当しますね。

以前、他のおもちゃドクター様の記事を拝見した際に、『また、COBのせいにするのですか?』という、解析を断念したドクターへの指摘記事を拝見しました。

修理を担当したドクター様の技術スキル不足で、回路の仕様も解析できず、どこが故障しているのかも全く分からない時に、根拠もなく『COB内部の素子が故障している』と安易に結論づけてCOB不良と称し修理不可能としてしまった、ドクターへの指摘でした。

ある意味、免罪符のように使われている事態を自分も懸念しております。

重要なので、もう一度書きます。

本当にCOB素子の故障ですか?

COB素子の故障と結論づけた根拠は説明できますか?

修理不可能ではなく、『担当ドクターの技量不足で、故障診断ができませんでした。ここでは、修理はできませんが、技量のあるドクターか、高度医療のおもちゃ病院なら、修理できるかもしれません。』と、依頼者様へお伝えすれば、そのまま廃棄されず、他のおもちゃ病院なりに相談できたかもしれません。

2024.5.31追記

最近、マイコン換装というキーワードを目にすることが多くなりました。

前述のCOB素子の故障かどうかも解析できないため、根拠なくCOB素子の故障としマイコンで機能を換装してしまおうという診断を諦める方が多いです。

なぜか、不思議にマイコンで換装しようとするのです。

本当は別な要因の故障であったのに、安易にマイコンで機能を換装しようとしていませんか?

適切な修理方法を誤っていませんか?

厳しいことを書くと、マイコンで換装するという行為を神の仕業のようにアピールしたいだけではないですか?

しかも、マイコン換装だとしても、なんでPICマイコンなのですか?

選定基準を説明できますか?

回路とプログラムを丸コピしたいためではないですか?※猿まねと言われても仕方ないですよ!

しかもご自身で回路の仕様を解析もせず、マイコンの選定やプログラム開発も他にお願いするという丸投げ状態になっていませんか?

それって、おもちゃドクターのお仕事ですか?

修理した”つもり”になっていませんか?

換装することになったとしても、自身の開発思想で、どのようなマイコンをどのようにインプリするか検討しブラッシュアップを重ねていけばよいのに、皆おなじ仕様で換装してしまっています。

電子回路の開発経験もなく、もちろんファームの開発経験もない素人が他人の回路とプログラムを丸コピして修理したつもりになっていませんか?

インプリした回路やファームの検証は問題なくできていますか?

丸コピーなので、責任持てませんとでも言うのですか?

もっと腕を磨くことが他にありませんか?

マイコンの仕様書やペリフェラルの仕様など把握できていますか?

英語ですよ!

巷には、Arduinoなど、趣味のマイコン工作グループが多く存在します。

もっと、そのようなグループに飛び込み腕を磨いてから議論していただきたいものです。

RISV-Vのコミュニティーやセミナーに参加したり、もっと知見を広げることもできます。

2)COBへの冷却や加温での動作回復について

COB内の素子に温度係数をもった機能があるということかと思います。

COB内は、半導体のチップがワイヤーボンディングされてあるという前提で回答します。

以下の説明は、かなり半導体に関する技術用語を多用させていただきますが、ご了承ください。

おもちゃの制御を担う場合は、簡易的であれば、マイコンレベルのCPUと汎用IO程度の機能が、外部メモリとの通信やタッチパネルや演算処理を伴う場合は、SoCレベルの周辺機能の充実している半導体が封入されているように思います。

これらの素子で温度係数をもったもので故障の原因と成りうるものとしては、シリコン中のMOSトランジスタや、ワイヤーボンディングのワイヤーおよび封入の樹脂が、まず考えられます。※他にもありますが、この線が有力と思われます。 それぞれについて考察します。

①シリコン上のMOSトランジスタについて

MOSトランジスタは、そもそも以下リンク記事のように温度変化によって挙動が変わりますので、設計段階で使用環境の温度を考慮し設計開発します。

https://techweb.rohm.co.jp/knowledge/si/s-si/03-s-si/5277

ゲートの閾値(Vth)以外にも変化の要素はありますが、おもちゃの動作には一番影響が出そうという点でMOSトランジスタ閾値の挙動をあげます。

おもちゃが、完全に動かなくのではなく、動作がおかしいや時々動いたりするような場合、当初設計した際のMOSトランジスタの製造ターゲットが経年での通電で経年変化し温度特性が変わったとします。

説明のため、先のURL記事の温度特性のグラフ(Junction Temperature)が右に 50℃分(マス目2つ分)シフトしたようなイメージを想定します。実際は、こんなに単純でなくもっと複雑です。※簡単のため、下図の赤線をイメージ。

そうすると、当初は正常に動いていたとしても温度特性が変わっているので、例えば室温の25℃で、当初3.8V程度でONしていたMOSトランジスタが、ONせず動作不良を起こします。

そこで加温+50℃をすると、シフトした温度特性のグラフ位置でいうと、75℃でONするようになるので、正常に動作しはじめます。

ですが、温度が冷めると、また動作しなくなります。これは、ドライヤーの加温以外にも半田ごてでの加温も含まれます。

経年変化での温度特性のグラフが右にシフトした場合は、加温で動作するようになります。

劣化によってどちらにシフトするかは、物性の世界(製造ルールや素材や動作条件)になり、これらの解析結果は、 企業秘密などの知財となります。

因みに、左にシフトした場合は、VthのONタイミングが、早まりますので、その影響が現れます。

②ワイヤーボンディングと封入材について

シリコンパットと基板のパットをおもちゃの場合おそらくアルミ線を静電気で圧着します。

信頼性が高く求められる車載や医療機器などの半導体では、金線やバンプ接続かと思われますが、如何せんおもちゃへの適用なので、費用対コストで低価格の材料と品質もそれほど求められていないと容易に推測できます。

封入した樹脂が低品質であれば、経年などで劣化し、応力でワイヤーが切れたり、圧着したパットから剥がれたりします。

メーカーでは、故障解析でよくX線撮影して状況を目視確認したりします。 これらは、ランダム性の不良として、バスタブ曲線の底面で現れます。

おもちゃに使用されている、COB内のワイヤーボンディングも同様にランダム性の故障がおき、まったく動かなく原因の一つと考えられます。

こちらも温度係数を持っている場合は、完全に断線していないが、かつかつで接触している場合です。

相手は金属なので温度変化で膨張や収縮をしますので、例えば、ワイヤーボンディングが、パットから剥がれて全く動かなくなっていたのが、暖めることによってパットにワイヤーが接触し動作し始めるような感じです。

こちらも冷めるとまた離れますので、また動かなくなります。

ワイヤーボンディングの接触不良の場合、完全に動かなく場合が多いかと思いますが、封入材の劣化でワイヤー同士が近接し容量を持った場合は、例えばデジタル信号がなまったりして、動作不良が起きる可能性もあると思います。

以上が、考察回答の内容となります。

COB内は、デキャップ(樹脂を薬品で溶かし内部を露出すること)でもしない限り、不具合の原因は分かりませんので、おもちゃ修理の場合は、自身のスキルでできる範囲と掛けられるコストと時間との兼ね合いで最終的には決めることになりそうです。

今回は、温度という切り口でしたが、外付けの発振回路があるようなマイコンなどでは、この発振周波数を落としてあげると動き出すという不良モードもあります。

いわゆる設計時のタイミング制約違反が起き、セットアップが足りないとか、ホールエラーとか現場では呼ばれています。

この場合のMOSトランジスタの速度劣化が原因であるのですが、長年この手の不良解析や半導体の設計開発経験が、おもちゃ修理に活かせる日が来るとは、思ってもおりませんでした。

マニュアルトランスミッション 雑記

今回は、自動車についてつぶやいてみようと思います。

以前のスタッフブログでも紹介しましたが、私は自動車免許を持っています。

家事お仕事で車を運転することは多いのですが、オートマ車です。

年代的に私以上の諸先輩方は、オートマよりもマニュアル車が多い時代を生きてこられたかと思いますが、このご時世なので、エンジン車はもちろんですが、マニュアル車などは時代の彼方へ消え去ろうとしております。

内燃機関の自動車が電気自動車に置き換えられ、ブレーキとアクセルのみで操作するという感覚になろうかとは思いますが、運転を楽しんでいた世代では、なんとも寂しい限りです。

低速ギアで引っ張るという感覚がなくなるんですよね。

モーターのトルクが充分なので、変速ギアが不要になったわけではありますが、あのエンジン音とギアチェンジとクラッチ操作という感覚は、忘れがたい感覚です。

巷では、内燃エンジン最終型と銘打ち発売が発表される記事をよく目にします。

まだEV車を市場した経験がないのですが、EVはEVで楽しみもなるのかもしれませんね。