PUYA電子オルゴール解説・回路図 - ToyDr-W/PUYA_orgel_GRADUATE_F002A GitHub Wiki

Welcome to the PUYA_orgel_GRADUATE_F002A wiki!

🧸 PUYAマイコン搭載 電子オルゴール基板 (GRADUATE_F002A)

本プロジェクトは、名張市つつじが丘おもちゃ病院 院長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 あり、基板レイアウトの練習がてら、オリジナル基板の発注までを一気通貫で体験してみました。

⚙ 回路図 (Circuit Schematic)

回路図 (Circuit Schematic)
▲ orgel_SW_F002A_16_SPI_BTL 回路図


🗺 基板レイアウト (PCB Layout)

基板レイアウト 表面
▲ 基板レイアウト表面(上:EasyEDA画面 / 下:3Dイメージ)

基板レイアウト 裏面
▲ 基板レイアウト裏面(メッシュGNDノイズ対策仕様)

💡 プロトタイプで面実装(SMD)の練習

  1. 手はんだ付けの練習: 表面実装IC(PY32等)のはんだ付けには、フラックスを活用するのがコツです。
  2. CVDチューニング: プロジェクトのメインソースでタッチセンスの微調整が可能。
261004_GRADUATE (0) 261004_SNOW_MIKU 261004_GRADUATE (1)

🤝 若き技術者の皆様へ(お力添えのお願い)

このプロジェクトをご覧いただき、ありがとうございます。管理人の ToyDr-W(渡辺)です。 私はおもちゃを直したいという情熱や、諸先輩方の素晴らしい回路・コードを自分なりにカスタマイズする楽しさに惹かれて活動していますが、実は事務畑一筋で生きてきたため、現代のITコミュニティにおける「スマートなファイル管理」や「オープンな開発環境(PlatformIOなど)への最適化」といった最新のセオリーには詳しくありません。 現在のリポジトリは、手元にあるソースコードや階層構造をそのまま登録した状態です。もしよろしければ、皆様が普段使われている「Gitの整理術」や「モダンなビルド環境の知識」を、このプロジェクトを未来へ繋ぐために少しだけお分けいただけないでしょうか。

📁 例えば、以下のようなアドバイスや実務を歓迎します

• リポジトリのクリーンアップ:ビルド時の一時ファイルを除外する .gitignore の適切な設定など • モダンな環境へのコンバート:VSCode等で誰もが一発でビルドできるようにするための環境構築の提案 • コードの見通し改善:他のドクターが曲の差し替えやピンアサインをより簡単に行えるような、フォルダ配置や構成のリファクタリング提案

📬 参加方法

高度な技術論で私からお返しすることは難しいかもしれませんが、皆様からいただいたご提案(プルリクエストやIssue)は、責任を持って丁寧・誠実に確認し、承認(マージ)させていただきます。 世代を超えて、この小さな電子オルゴールの技術を次の時代へ、そして未来の子供たちへ残すため、バックアップメンバーとして力を貸していただける方をお待ちしております。どうぞよろしくお願いいたします。


🔄 改訂履歴 (Change Log)

クリックして詳細を展開 / Click to view details

📄 更新情報

  • 2026/10/14: 初版リリース。SW1、CdS、CVD0によるトリガー動作確認。SPI-ADPCMサポート。

📄 参考文献・リンク

※外部サイトは Ctrl(MacはCmd)キーを押しながらクリックすると別タブで開けます。

⚠️ **GitHub.com Fallback** ⚠️