Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

最近の作業部屋活動履歴

2023-11-18
2023-08-15
2023-04-29
2023-04-13
2022-01-11

最近のWikiの更新 (Recent Changes)

2023-11-18
2023-04-29
2022-01-11
2020-06-13
2018-01-27

Wikiガイド(Guide)

サイドバー (Side Bar)

回路図

回路説明

マイコン

Arduino Duemilanove などで使われているのと同じATMEGA328を使用。Arduino IDE 上のC++で開発しています。

専用基板を切り取り加工するなどの工夫次第で、 他のマイコン、あるいはRaspberry Piのような超小型PCで実装する方法も考えられます。

電源

5v。専用基板はUSB mini-Bコネクタからのバスパワー供給ですが、電池駆動する場合は 1.2vの充電式NiMH電池(eneloopなど)4本、または1.5vのアルカリ電池3本。

USBアダプタ

CAmiDionでは、PCからプログラム(スケッチ)を送るのに秋月 FT232RL USBシリアル変換モジュールを 使用しています。FT232RL は Arduino Duemilanove で使われているのと同じチップなので、この変換モジュールを使えば Arduino IDE で開発する際に Arduino Duemilanove と全く同じように使えます。

ただし、このUSB変換モジュールは、CAmiDion専用プリント基板には内蔵していません(電源供給専用のUSBジャックが装備されているだけです)。 USB変換モジュールを外付けにしたUSBアダプタを作り、複数の CAmiDion で使い回すことによって、コスト、実装スペース、消費電力の節約を図っています。

専用基板には、ATMEGA328の1~8ピンへ直結できる8x1ピンソケットが装備されていて、ここからUSBアダプタを差し込んで スケッチの流し込みが出来るようになっています。

【USBアダプタ回路図】

USBアダプタを自作する際の参考用回路図です。 回路図ではDTRリセットのみに対応していますが、工夫次第でこのブログ記事のようにRTSリセット対応にすることもできます。

音源

よく「音源チップは何使ってますか?」と聞かれることも多いですが、特に使っていません。 ATMEGA328自身で音を出しています。 詳細はPWMDAC_Synth ライブラリを参照。

オーディオジャック

オーディオ出力用として3.5mmステレオミニジャックを装備。信号自体はモノラルなので、L/Rの両方に同じ音を出力しています。 モノラルジャックを使うとPCにつないだときに片方のチャンネルにしか音が行かないので、あえてステレオジャックを使用しています。

工夫次第ではボリュームとアンプを増設する方法も考えられます。

コードボタン

数が多いので、LEDと一緒に8x6のマトリクスを組んでいます。

3-to-8 デコーダ 74HC138 を使用して8本の/Q出力のうちどこか1本だけをLowにし、 その瞬間、対応する2個のLEDを光らせ、6個のボタンの押下状態をマイコン側の入力ピンで判別します。

すべての/Q出力についてこれを繰り返すことで、48個のボタンと16個のLEDをミリ秒くらいの単位で交代で働かせています。 こうすれば、すべてのボタンが同時に認識されているように見えたり、すべてのLEDが同時に光っているように見えるのです。

74HC138を使わないで同じことをしようとすると、マイコンの貴重な信号線を8本も使ってしまいますが、 この方法なら3本だけ使えばすむようになります。

入力ピンは内蔵プルアップをONにすることで、プルアップ抵抗を省略して部品点数を削減しています。

マトリクススキャンでは、出力信号線同士の衝突を防ぐためにダイオードが欠かせません。 8本の出力が衝突しないようにするだけであればダイオードも8本だけでよいのですが、楽器として使うには不十分です。 単音モードで同時押ししてアルペジオ演奏するときにファントムキー現象が発生し、 出したくない音が出てしまうからです(パソコンのキーボードで同時押しできない組み合わせが存在するというあの現象です)。

そこで、CAmiDionではあらゆる同時押しに対応できるよう、コードボタン一つ一つに計48個のダイオードをつけています。

MIDI

マイコンのシリアルポート(RxD、TxD)は、スケッチを送り込むためのUSBアダプタと共用しているので、 スケッチの中で MIDI Enable を ON にしないと MIDI が有効化されないようにしています。 専用基板ではスペースが狭いのでダイオードロジックで実現しています(ただしMIDI INについてはUSBアダプタとの同時使用がうまくいっていないかも知れません)。

1号機の回路図

2009年6月頃に製作した初代機の回路図については、CAmiDion 1号機のページを参照してください。