PUYA電子オルゴール解説・回路図 - ToyDr-W/PUYA_orgel_GRADUATE_F002A GitHub Wiki
Welcome to the PUYA_orgel_GRADUATE_F002A wiki!
本プロジェクトは、名張市つつじが丘おもちゃ病院 院長Dr.大泉さま をはじめとする先達の修理事例やノウハウをリサーチし、その成果を共有・発展させる精神に基づき、糸魚川で活動する私(おもちゃクリニックゆりかご 代表ToyDr.わたなべ)の責任で公開しています。 安価なマイコン PY32F002A を使用し、IMA-ADPCMによる高音質な音声再生とおもちゃ修理への応用を目指した電子オルゴールプロジェクトです。 各地のおもちゃ病院で活動するドクターの皆様が、各自で基板を発注・製作して修理やカスタマイズに活用できるよう、回路図・基板レイアウト・ソースコードを公開しています。
- 高音質再生: SPI接続のフラッシュメモリ(または内蔵)から、IMA-ADPCM形式の音声をクリアに再生。
- おもちゃ修理に最適: 16ピン/20ピン仕様の回路をベースに、CdS(光センサ)や各種スイッチ(SW1、CVD0)によるトリガー再生に対応。
- 面実装(SMD)の練習基板: JLCPCB等の格安基板製造サービスを活用し、ドクターの面実装技術向上を兼ねた設計。
- 低コスト: 10cm角の基板に6〜9枚を面付け可能(1枚あたり数十円の超低コスト)。
おもちゃの仕様に合わせて、ソースコード内のコメントアウトや設定値を調整して使用します。
-
音声出力モード:
BTL=3(ブリッジ出力による大音量化) - 音量制限: 内部回路およびプログラム側で減衰率(例: 60%)をコントロール可能。
- インジケータ: LED 2個連動(音声再生のピッチや強弱に同期して点灯)。
本リポジトリには、開発元である orgel1_4 パッケージをベースとした以下のプログラムおよび設計データが格納されています。
| フォルダ・ファイル名 | 内容説明 | 主要な格納ファイル・要素 |
|---|---|---|
| PUYA_orgel_GRADUATE_F002A | PUYA電子オルゴール Ver1.4 プロジェクトロケーション | 開発環境ルートフォルダ、共通ファイルはビルド中に自動インクルードされるファイルあり要注意 |
| ├── orgel_GRADUATE_F002A_8/ | 8ピン仕様マイコン用のプロジェクト環境 |
PY32F002.uvprojx、main.c、conf.bat など |
| ├── orgel_GRADUATE_F002A_16/ | 16ピン仕様マイコン用のプロジェクト環境 |
PY32F002.uvprojx、main.c、conf.bat など |
| ├── Include/ | 共通のインクルード定義ファイル群 | 各種ヘッダーファイル(.h) |
| └── tool_voice/ | 音声データの変換・処理用ツール群 |
txt2asm、txt2c、wav2hex、wav2txt 等と出力(Release) |
| └── voice_Mirrorna/ | 音源データの書込み用ファイル |
xxxx.wav、wav2hex.bat、wavlist.txt など |
| └── voiceS_GRADUATE/ | 音源データの書込み用ファイル |
xxxx.wav、wav2hex.bat、wavlist.txt など |
| apl_xxxx.c | プロジェクト共通のアプリ機能ソースコード | アプリ機能別の処理ロジック |
| common.c | プロジェクト共通のコア処理ソースコード | 各ピン仕様共通の処理ロジック |
| dev_xxxx.c | 共通化のためのデバイス設定ソースコード | デバイス別の処理ロジック |
| effect_XXXX.asm | 内蔵効果音のソースコード |
effect_BLINKER.asm、effect_KANE.asm など |
| enve_XXXX.asm | オルゴール曲の減衰波形データ |
enve_EXP.asm、enve_TREMOLO.asm、enve_VIB.asm など |
| func_xxxx.c | プロジェクト共通の操作処理ソースコード | 操作別の処理ロジック |
| onpu_XXXX.asm | オルゴール曲の音符データ群 |
onpu_ANPANMAN.asm 〜 onpu_FURUSATO.asm など多数の楽曲データ |
| orgel.? | オルゴールエンジン部 |
orgel.h、orgel.inc、orgel.c
|
| pitch_XXXX.asm | ピッチ制御のソースコード |
song_ANPANMAN.asm 〜 song_FURUSATO.asm など多数の楽曲データ |
| song_XXXX.asm | オルゴール曲の設定ファイル群 |
song_ANPANMAN.asm 〜 song_FURUSATO.asm など多数の楽曲データ |
| voice_XXXX.c | 内蔵音声のソースコード |
voice_WAN.c、voice_DAME.c、voice_CHIKO.c などの短い音声データ |
| wave_XXXX.asm | オルゴール曲の音源波形データ |
wave_SIN14.asm、wave_RING3.asm、wave_SHEPARD.asm など |
新人ドクターを迎えてマイコン換装の技術も次世代への承継を念頭に、我流のやり方を見直しました。 初心者でも簡単に無料で新しい部品を使った回路が作れる「EasyEDA」というオンラインソフトと、日本語での導入チュートリアルを見つけました。 部品ライブラリに PY32F002A あり、基板レイアウトの練習がてら、オリジナル基板の発注までを一気通貫で体験してみました。
▲ orgel_SW_F002A_16_SPI_BTL 回路図
▲ 基板レイアウト表面(上:EasyEDA画面 / 下:3Dイメージ)
▲ 基板レイアウト裏面(メッシュGNDノイズ対策仕様)
- 手はんだ付けの練習: 表面実装IC(PY32等)のはんだ付けには、フラックスを活用するのがコツです。
- CVDチューニング: プロジェクトのメインソースでタッチセンスの微調整が可能。
このプロジェクトをご覧いただき、ありがとうございます。管理人の ToyDr-W(渡辺)です。 私はおもちゃを直したいという情熱や、諸先輩方の素晴らしい回路・コードを自分なりにカスタマイズする楽しさに惹かれて活動していますが、実は事務畑一筋で生きてきたため、現代のITコミュニティにおける「スマートなファイル管理」や「オープンな開発環境(PlatformIOなど)への最適化」といった最新のセオリーには詳しくありません。 現在のリポジトリは、手元にあるソースコードや階層構造をそのまま登録した状態です。もしよろしければ、皆様が普段使われている「Gitの整理術」や「モダンなビルド環境の知識」を、このプロジェクトを未来へ繋ぐために少しだけお分けいただけないでしょうか。
• リポジトリのクリーンアップ:ビルド時の一時ファイルを除外する .gitignore の適切な設定など • モダンな環境へのコンバート:VSCode等で誰もが一発でビルドできるようにするための環境構築の提案 • コードの見通し改善:他のドクターが曲の差し替えやピンアサインをより簡単に行えるような、フォルダ配置や構成のリファクタリング提案
高度な技術論で私からお返しすることは難しいかもしれませんが、皆様からいただいたご提案(プルリクエストやIssue)は、責任を持って丁寧・誠実に確認し、承認(マージ)させていただきます。 世代を超えて、この小さな電子オルゴールの技術を次の時代へ、そして未来の子供たちへ残すため、バックアップメンバーとして力を貸していただける方をお待ちしております。どうぞよろしくお願いいたします。
クリックして詳細を展開 / Click to view details
- 2026/10/14: 初版リリース。SW1、CdS、CVD0によるトリガー動作確認。SPI-ADPCMサポート。
※外部サイトは Ctrl(MacはCmd)キーを押しながらクリックすると別タブで開けます。
- 開発者ブログ: PUYA電子オルゴールVer1_4 (ADPCMをサポート) - 名張市つつじが丘おもちゃ病院 ↗
- 解説ブログ: おもちゃ修理「電子カルテ」(ToyDr.わたなべ個人ブログ) ↗
- 実機動作動画: YouTube 動作確認動画 ↗
- 開発環境・基板設計ツール: Keil MDK uVision5 / EasyEDA STD / JLCPCB
- EasyEDA チュートリアル: 日本語での導入チュートリアル ↗