2023年末、先進おもちゃ病院の修理事例(マイコン換装)をバーチャル体験[2023年12月03日(Sun)]
CH32V電子オルゴールで3線SPI音声再生
この記事は、先進おもちゃ病院の修理事例を参考に、おもちゃドクター技術研修として、手近で安価な素材を用いて修理事例をバーチャルに体験し、その成果品をオリジナルの「リサイクルおもちゃ」とするものである。
(2025/6/27追記:by ToyDr.わたなべ)
元のプロジェクトを安価で低電圧向きのV002に移植した。
V002は最低動作電圧が 2.0V(ADC使用時は2.4V)、
電池2本でも安心して遊べる。ミニーマウスの音声で公開する
(画像クリックで拡大表示)
【以下、当初の投稿です】
100均の キティちゃん貯金箱 に組込んで、試作完成。
最初に、動作確認の動画から先にご覧あれ。
(参考)ネット通販(10個入り)の一例は、コチラ
使わせていただいたプロジェクトは、ブレーキ出力にし、タッチセンスのチューニングを微調整。
SPI音声 67%、オルゴール 100%に音量変更。
省電力に設計されているので、電源SWは省略する。
ハートマークの内側にアルミテープを貼ってタッチパッドにして、タッチと同時にアース線も触れるように、背中側にメッキ線1本を、外付けした。
【経緯】
技術研修の課題は、マイコン制御のおもちゃ修理で、COB不良でも治療不能とせず、廉価なマイコンで代替回路を作って、何とか楽しく遊べるようにすること。
名張市つつじが丘おもちゃ病院 のブログ記事を、参考にさせていただいた。
その記事の末尾では、次のとおり感想が述べられている。
「COB不良でも修理を諦めないで、一歩進むことが重要だと思う。
そんな志のあるドクターには、つつじが丘おもちゃ病院は支援を惜しまない。」
何という、心強いお言葉であろうか!
早速、私も真似したいと申し出て、ご指導いただいた次第。
おもちゃ病院には、どんな症状のおもちゃが、いつ来院するかも分からない。
COB不良のおもちゃに遭遇しても慌てないために、バーチャル診療を体験しておきたい。
【特徴】
今回のマイコン換装では、ターゲットにCH32V003J4M6を採用、SOP8なので老眼ドクターでも何とかDIP8変換基板に手半田ができるサイズ。
電源条件をクリアし、3線SPI音声再生、LED点滅付き、しかも電子オルゴールも同時に実装されている。
電池3本を入れたら、操作はタッチパッドが1個だけ。
公開されているプロジェクトをそのまま試作するだけなら、プログラミング初心者でも意外と簡単。
書込み環境の整備は、開発者のブログをご参照あれ。
以下、それぞれの特徴点を詳しく見ていただきたい。
【電源条件】
元々が単4電池3本だったので、3.3Vレギュレータで高性能のCH32Vが使えて、最高にコスパが良い。
ちなみに消費電流は、稼働時20mA〜30mA、スリープ待機時は(CVD付き)約25μAと省電力。
CH32Vのデータシートで、動作電圧範囲は(ADCを使う場合)2.8V〜 となっているとのこと。
4.5Vから遊び始め、約3Vまで遊び尽くすと、電池1本あたり 約1V 換算となるが、これをどう感じるか。
師曰く、「それはもう捨てるべき電池ではないでしょうか。」
その辺の感覚は、それこそ自分で体感してみたい!
【3線SPI】
当方では初の3線SPI、回路図を書いてみたが、LEDの接続位置やHブリッジ周辺が心配だ。
疑問点は、開発者にメールで質問し、その都度解決する。
同型番のレギュレータが手元にあるので、まず最初はブレッドボード上で試作してから。
今回の基板制作の部品コスト計算すると、226円となった。(※日々、値上がり中)
【LED点滅】
修理事例のブログでは、LEDがスピーカ出力から配線されている点に、今後の応用への期待が膨らむ。
そこでは、スピーカPWM出力でLED点滅が実現されていて感動したが、その回路の場合は「ブリッジ出力」のはず。
スピーカーのどちら側につないでも、良いのだろうか?
私がいつも使っている、MX08の「ブレーキ出力」でも、全く同じ位置に(4.5VとPWM出力の間に)LEDをつないでも、同じような点滅になるだろうか?
開発者から、「元記事のキティは簡易Hブリッジなので、
ローサイドに設置すると、貫通電流が流れてしまうので、
ハイサイドに設置しないといけない。
MX08の場合は、BTLが2でも3でも音があるとき
にHが出力されるので、ローサイドに設置する。」との返答。
やはり、教えていただいて助かった。
さらに、「LEDの直列抵抗が47Ωの理由は、元々の
既存LEDが発光効率が悪くて、実験の結果そうなった。
今頃のLEDではもっと大きくした方が良いと思う。」とも。
試作では、赤色LEDは680Ωでも十分明るく、スピーカ音が連続するときは、ほぼ点灯しっ放し!
なので、回路図では抵抗値をあえて書かないでおく。
実際には、LEDは手持ちの赤色拡散LEDにて、1KΩの抵抗で、約2mA流すように変更した。
【タッチセンス】
短タッチ、長タッチの操作には、ある程度の慣れが必要なので、幼児では少し難しいかも知れない。
元記事のキティぬいぐるみは、皮を介在すると感度が悪くて、ご苦労されたとのこと。
パッドの面積を広くし過ぎると、パッドの容量が大きくなって、タッチでの変化率が小さくなってしまうようだ。
タッチセンスのチューニングは必須である。
ケースに組み込んでから、あらためて再調整する。
根のソースコードで、チューニング用のパラメータを宣言しておけば、実装後の調整がしやすい。
今回のチューニング結果は、ご参考までに次のとおり。
//=======================================
//ここで、CVD評価の閾値等をカスタマイズできる
#define CVD_CNT 8 // 評価の回数を宣言する(既定値:8)
#define CVD_THR1 15 // 閾値1を宣言する(既定値:15)
#define CVD_THR2 45 // 閾値2を宣言する(既定値:30)
//=======================================
【ICSP対応】
修理事例のブログで、マイコン基板のアップ写真では、基板の端に3本のツノ(ICSP用)が見えている。
PICの場合は、VPPで高電圧がかかるので、このピンに接続する周辺回路は、要注意だった。
CH32VのICSPでは、高電圧の心配は?
開発者から、「心配は無用です。」との返答あり。
「LinkEの回路図が公開されていて、SWDIO
はCH32V305Fのポートから100Ωを介して
ヘッダピンに出ています。CH32V305FのVdd
は3.3Vなので、ヘッダピンにはGND〜3.3Vの
電圧しか出てきません。」との解説に、感謝申し上げる。
【ダウンロード】
今回の技術研修で試作したプロジェクトは(音源データも含む)、修理事例のブログでリンク先からダウンロードできる。
公開ファイルをダウンロードして、ぜひ使ってみて欲しい。
(参照)ハローキティリモコンキッズの修理(マイコン換装)は、コチラ
私はこのフォルダを丸ごと「コピー」、ルートドライブの試作用フォルダ内に「貼付け」
この試作用フォルダのパス名は、日本語が混ざらないよう留意する。
オマケで、
実装する音声データだけを「ミニーマウス」向きに置き換えたプロジェクトも作った。
この音源を含むプロジェクト一式は、当方の共有フォルダで公開する。
なお、これらのプロジェクトは(拙作の曲データも含めて)、複製・改変・再配布は自由であることを、あらためて付け加えておく。
プロジェクトディレクトリは SW_J4M6
プロジェクトファイルは SW_J4M6.wvproj
根のソースコードは SW_J4M6\User\main.c
アプリのソースコードは apl_KITTY.c を利用
(2024/2/18追記)石川県の朝倉Dr.から、16ピンのA4M6にも移植していただき、
オリジナル仕様に加え、A4M6では3個のLED点滅をカスタマイズ実装する。
前回に作ったJ4M6プロジェクトと同梱して、あらためて公開する。
プロジェクトディレクトリは SW_A4M6
プロジェクトファイルは SW_A4M6.wvproj
根のソースコードは SW_A4M6\User\main.c
アプリのソースコードは apl_MINNIE.c を利用
なお、SPI音源は同梱の「voice_MINNIE\W25Q64.hex」を使用する。
単3×3本+LDOでLED3個の豪華版
回路図と部品配置図を参考までに掲載する
将来の機能追加に備え、スペースを確保済
単3×2本でLED2個とした廉価版
アルカリ電池なら電源SWも省略可能
これは、100均の「ツムツム貯金箱」に組込む予定。
(2024/4/1 追記)3.3V昇圧モジュール搭載で、
電源条件は万全。中古電池でも充電池でもOK
3年前の9種類の音声再生から、大幅にグレードアップ!
【余談】
今年最後の医局会で、同僚ドクターに披露してそのまま、お持ち帰りいただく予定。
ちょうどタイミング良く、クリスマス・プレゼントになる。
先輩ドクターの言うとおり、複雑な制御をやっているおもちゃもあるが、ほとんどは単純な音声再生とオルゴールである。
事例のように電子オルゴールでの換装技術を使わせて貰えば、治療不能率は半減できると思われるが。
キティちゃん修理のプロジェクトは、HブリッジIC(MX08)の簡便なテスト環境にもなった。
SOP8用のICソケットをブレッドボードに挿し、変換基板に半田付けする前に、チェックできる。
キティちゃんの回路で、ブレーキ出力の正転・逆転の両方とも、ローサイドにLEDを挿入したもので、あらかじめ、電流レンジにしたテスターを接続する。
MX08が良品なら、LED2個が同じ明るさで点滅し、もし明るさが違ったり、片方だけの場合は、不良が疑われる。
スピーカ音のビビりや、異常な消費電流も分かり、DIP8変換基板が、無駄にならずに助かる。
片方、あるいは両方とも光らない現象が、散見。
稼働時は正常に点滅しても、スリープ移行後に、両方とも点灯することも、3個ほどあった。
ヤレやれ、、、。


このたび、当初のV003より安価で低電圧向きのV002に移植しました。
V002は最低動作電圧が 2.0V(ADC使用時は2.4V)なので、電池2本でも安心して遊んで貰えますね。
【カスタマイズのサポート】
私の公開プロジェクトは、複製・改変・再配布は自由です。
ユーザー側のおもちゃドクターで、カスタマイズ可能です。
その過程で、技術的なサポートをご希望なら、到達目標の要件を提示してくださいますと、その後のサポートがスムーズに進みます。
その際には、まず手始めにはオリジナルどおりに動作確認を完了していただくことが前提です。
おもちゃ治療技術の向上を目指して、一緒に勉強して行きましょう!