2020年3月29日日曜日

arduinoで簡単オシロのご紹介

こんばんは.2020年4月期のアニメは期待作が無さそうに思っているヒラサカです.

いま、EZ-USBでDCCを実装中である.各部の波形をオシロで観測しつつ、DAC出力(Audio信号)もオシロで観測したい.するとオシロが1台じゃ足りない.USBオシロを買おうかなとAliexpressを探してみたりしたが、数千円の出費してまで欲しいわけでもない、購買意欲が微妙な状態だ.

そういう時にはArduinoで作ってしまえ、というわけで探したら良い物があったので以下にご紹介する.わたしは何も設計とかしてなくて、ただパクッて動かしてみただけだ.

こちらのページをパクらせてもらった.
同ページの下の方にDLリンクがあるのでDLする.

プログラムは2パートから成る.一つはArduinoに焼くオシロスコープ本体.もう一つはPC上で波形表示するプログラムである.

解凍してArduinoフォルダにコピーする.わたしの環境では、
C:\Users\hira\Documents\Arduino\oscilloscope
フォルダが2つある.ArduinoとProcessingという名前だ.ProcessingというのがPC波形表示プログラムであろうと想像がつく.

Processingフォルダを開くと、kit_scope.pdeというのだけしか入ってない.dataフォルダの下には画像ファイルがいるだけ..pdeってなんなのさ?である.
ちなみにkit_scope.pdeにはこんなcodeが書かれている.
final OscConfigOne osccfg[] = {
  new OscConfigOne(0, 0,  1000,    1,  50, 50),
  new OscConfigOne(1, 0,  1000,    1,  20, 20),
  new OscConfigOne(2, 0,  1000,    1,  10, 10),
  new OscConfigOne(3, 0,  1000,    1,   5,  5),
};

調べたところ、.pdeというのは、javaで動くscript言語のようなものなんだってさ.そんなのがあるなんて知らなかったよ.

こちらからDLしてprocessing IDEをインストする.kit_scope.pdeをprocessing IDEで開けるようになればよし.初めて見る画面だが、Arduino IDEと色が違うだけでなんか似ている.
processing IDEの左上の再生ボタンを押すと、COM port scanを永久に続けるようだ.

お馴染みのArduino IDEも開く.kit_scope.inoをスケッチ開きして、プリント基板に焼く.

COM port scanしていたprocessingがオシロのArduinoを見つけ次第、画面はこのように切り替わり、音声信号が表示される.すげー便利.Alliexpressに注文して1ヶ月待たされなくてよかったよ.

-------
ソフトウエアの運用について述べたが、ハード面のことにはまだ触れていない.

AdruinoのADCは、0~5Vのダイナミックレンジがあるらしい.

わたしが観測したいのはdigital信号ではなく、audio信号なのでDC2.5Vを中心とした交流波形を観測したいわけなので、少し外付け回路が必要になる.こんな回路で、ADC入力をDC2.5Vに固定してやるといい.こうすれば2.5Vを中心に振れるAC波形を観測できる.
なお、A1,A2はArduinoのピン名である.
カップリングの0.1uFは1uF変更した.
←取り付けたCR

追記:
リアル世界の人から仕組みを質問されたので追記しとく.
「ArduinoとPCの接続形態、及びADCデータがどのような形で流れているのか?」

物理的な接続形態はUSBケーブルである.Arduinoは、FLASH焼きのためにUSBケーブルでPCと接続する.そのUSB接続がそのままオシロでも流用される.

PCからArduinoがどう見えるのか? USBデバイスのCOM portに見える.Arduino基板上には、RS232-USB変換ICであるところの、FT232かそれに類するICが載っている.

したがって、PCとArduino間の通信プロトコルは、COM portによる9600bpsとか115200bpsのいつものアレである.FLASH焼きもオシロもCOMで通信する.オシロスコープでCOM portに流れているのはASCIIの電圧データっていうベタな仕様だよ.

かしこ

0 件のコメント:

コメントを投稿