製作モジュール一覧

2018年3月10日土曜日

EasyWordMallのArduino Pro Mini(互換品)を買ってみた ~ Arduino Nano(互換品)と比較

AmazonでArduino Pro Mini(互換品)を買ってみました。

Arduino Pro MiniとArduino NANOの比較。



左からArduino Nano(互換品)、Arduino Pro Mini(互換品)、Arduino Pro mini(Sparkfun製 / Switch Science購入)です。


今回購入したArduino Pro Mini(互換品)は付属のピンヘッダをはんだ付けしましたが、若干ピンの径が太いようでブレッドボードにさしにくいです。書き込みヘッダ用のピンソケットは手持ちのものをはんだ付けしました。

製作中のArduino LFOで使えないかと思って、安かったのであまり考えずに購入したのですが、Arduino Pro MiniはUSB-Serial変換が別途必要なだけでなく、電源用のレギュレータが5V/3.3Vのどちらかしかありません。

Board Clock USB<->Serial 5V regulator 3.3V regulator
Arduino Nano 16MHz ✓ ✓ ✓
Arduino Pro Mini (5V) 16MHz x ✓ x
Arduino Pro Mini (3.3V) 8MHz x x ✓

USB-Serial接続


秋月のUSB-Serial変換モジュールを使って書き込みました。

EasyWordMallのArduino Pro MiniはSparkfunのArduino Pro miniとはUSB接続用ヘッダの配列が異なります。

Sparkfun製 (3.3V版) https://www.sparkfun.com/products/11114



EasyWordMall (5V / 16MHz)



Sparkfun製のヘッダを裏写しにしたような配列になっているので、接続には注意が必要です。

接続表

Arduino Pro mini FT232
GND GND
CTS CTS#またはGND
VCC VCC
TXO RXI
RXI TXO
DTR DTR#

<追記: 2018.07.19>

EasyWordMallのArduino Pro Mini (3.3V / 8MHz)も購入したので配線図を追記します。

EasyWordMall (3.3V / 8MHz)


また、「Sparkfun製 (3.3V版)」のブレッドボード配線図のFT232RLモジュールのジャンパ設定に間違いがあったので修正しました。

</追記>

2018年3月7日水曜日

ベース・マシーン BSM02 ファームウェア概略

プロジェクト名はBSM02としました。ベースマシンからのブランチです。


現状のファームウェアのクラスの関係を粗々で図にしました。

SequeceSenderクラスが持っているRTOS::Timer(1msサイクル)のタイミングで、BaseMachine(メインルーチン)にCallbackしてシンセ部にSPI送信しています。←まどろっこしい(^q^;

これをマイクロ秒単位で使えるTickerクラス(ハードウェア・タイマー)を使うようにするには、BaseMachine(メインルーチン)、SequenceSender、EnvelopeGeneratorを整理する必要がありそうです。

mbed Repository:

2018年3月3日土曜日

ベースマシン まとめ 2

去年簡単にまとめた「ベースマシン まとめ(弱め)」から、筐体その他いろいろと拡張していて自分でもよくわからなくなりつつあるので、ふたたびまとめてみておきたいと思います。

筐体


基本はMDFでフレームを作り、アガチス材で作ったサイドパネルをつけて見栄えを良くしています。

「ベースマシンの筐体づくり」
「ベースマシン 筐体のサイドパネルをニスで塗装してみた。」

シーケンサー部


ブロック図

Nucleo F401RE


シーケンサーのコアとなるボードです。ユーザーインターフェースからの入力(POT/Rotary Encoder/SW)をまとめ、SPI接続のGraphic LCDにフィードバックしつつ、シンセ部(Synth)にSPI通信でシーケンスを送信します。

電源はシンセ部(synth)から+9Vの供給を受けています。

ファームウェア mbed repository:
https://os.mbed.com/users/ryood/code/BaseMachine/ Revision:29

その他は「ベースマシン まとめ(弱め)」から、大きな変更はありません。

シンセ部


ブロック図

+/-9V PSU


DC12VのACアダプタから±9Vを作る電源ユニットです。

「LT1054」

5V/3.3V/2.5V PSU


±9V PSUから、5V、3.3V、2.5Vを作り出す電源ユニットです。±9V電源もパススルーしています。

「5V/3.3V/±2.5V安定化電源」

SPI Bus Buffer


シーケンサー部からのSPI信号をバッファリングしています。

「SPIバス・バッファ(TC74HC541)基板の製作」


PSoC4 DCO


PSoC4 Prototyping Kitを使った矩形波/ノコギリ波のDCOです。同じパラメーターで矩形波のパルス幅、ノコギリ波⇔三角波のモーフィングができるようにしています。

「PSoC 4 Prototyping Kit DCOでけた。」
「PSoC 4 DCO ノコギリ波~三角波を可変して出力するようにしてみた。」

ファームウェア
https://github.com/ryood/PSoC4_DCO/tree/master/PSoC/PSoC4_PrototypingKit_DCO_for_NucleoF401RE.cydsn

SVF DCF


最初はVCVS DCFを使っていましたが、仮想GNDの取り扱いに問題があり、新たにSVF DCFを製作しました。←VCVS LPFもいずれ作り直すつもりです。

「SVF DCF」
「SVF DCF 出力のGNDを修正 仮想GNDの扱いには注意するべし」

OTA DCA


「NJM13700 DCAの基板でけた。」


課題


KIK01とベースマシンをMIXして問題が見つかりました。

https://soundcloud.com/od-ryo/sync03

WaveSpecraでFFTしてみると

KIK01とベースマシンのMIX

1kHzとその高調波にピークが出ています。

おそらくF401REのファームウェアでRTOS Timerの1ms周期でシンセ部にSPI送信を行っているためだと思います。

ベースマシンのみ

ベースマシンのみの出音の場合は波形の歪が多く発見が困難。

KIK01のみ

KIK01は32kHz周期でエンベロープ波形を更新しているため32kHzにピーク。

上記が原因という確証はないのですが、ベースマシンの波形更新処理時間を測定するなどしてもう少し調べてみたいと思います。

ただ、mbedのRTOS Timerの割り込み間隔の最小は1msなので、更新周期を速くするにはタイマー割り込み(Tickerクラス)に変更する必要があるのでやっかいそうです。

こういう音(歪、ノイズ)と割り切る手もありそうですが(^q^;