タグ: Arduino

Arduinoを使った計測実験その2

バイポーラトランジスタのhFEを計測するためには,A/D,D/Aの他に,記録用のメディアが必要になります.
一番簡単なのはSDカードです.SDカードのインタフェースは,SPIと同じ構造なので,物理的なコネクタさえ用意出来れば,あとは,SPIと同じ様に接続するだけで大丈夫です.この際に,Arduinoを5Vで使っている場合は,SDカードは3.3V系なので変換が必要になりますが,秋月で売っているマイクロSDカードインタフェースは,レベル変換のチップも実装済なので,難しいことを考えずに用いることができます.

A/D, D/A, LCD, SDカードを実装

また,バイポーラトランジスタの様々な部分の電圧を計測するにはGNDが共通では都合が悪いのですが,以下のA/Dコンバータは,電圧計測入力が差動に出来るため,少しだけこの問題が緩和されます(絶対電圧の範囲は,Vdd-Vssに限られますが).コレクタ電圧をArduino電圧よりも高くする場合は使えませんが,ベース電流をベース抵抗の両端電圧から直接計測するには好都合です.

16bit A/D

Arduinoを使った計測器実験の準備

Arduinoは,簡単な実験装置を作るのに適しています.
ディスクリートのトランジスタのhFEを測定するのに簡単な冶具を作ってテスタで電流を計測してノートにプロットすることがありますが,それが自動化できたら便利です.新しいトランジスタよりもむしろ,旧いトランジスタで,無線機のファイナルに使うようなパワーアンプ系では,hFEがそれほど大きくなく,また,ある程度ベース電流を流した状態での計測を必要とされる等条件が面倒なので,そこまで含めた自動化が望ましいです.ベース電流は10mAくらいまで流したい,コレクタ電圧もできれば15Vくらいまで試したい.

その前実験として,arduino + A/Dコンバータ + D/Aコンバータ + LCDという構成で動かすことにトライしました.arduinoもどきとして,aitendoの「あちゃんでいいの」を用います.「あちゃんでいいの」にはいくつかのロットがあり,初期のものは,ブレッドボードに差さらない(ピンのピッチが100milの整数倍になっていない)という不具合があります.うちにも一枚だけそのロットのものがありました.
A/DコンバータやD/Aコンバータは秋月で入手した16bit,12bitのものを用います.arduinoは端子数が少ないので,I2CやSPIを活用します.キャラクタLCDとD/AコンバータはI2Cなので,芋づる式に接続します.LCDはジャンパカットしないとI2Cのプルアップ抵抗がついているとのことで,それを活用.A/DコンバータはなぜかSPIです.SPIは,I2Cの様にアドレッシングして通信する様な機能を持っていないので,デバイス毎に個別にCS (Chip Select)端子を用意する必要があり,端子が少ない時には今一つなのですが,仕様なので仕方ありません.液晶へのキャラクタ表示,D/Aからの出力をA/Dへ突っ込んで読み込む等の一通りの動作を試したのが,以下の写真になります.

Arduino + LCD + A/D + D/A

細かくはまりましたが,出来てしまえば簡単.
むしろ,USB<->RS232C変換基板とarduinoの接続でRX/TXをクロスにしないといけないとか,30年前にトリップしたみたいなミスの方が時間がかかりました(笑)

DCプラグの極性あれこれ

最近こそIEEE規格が出てきたりしていますが,DCプラグの世界は混沌としていますよね.
特に極性がバラバラです.最近の機器は,無線機に限らず,Arduinoみたいなマイコンボードでも外側がマイナス(GND)で,センターピンが+というのが主流になっていますが,少し前は逆が主流だった気がします.
古くは,子供の頃に買ってもらったスカイセンサー5800のACアダプタの極性がセンターGNDで外側が9Vでした(あの頃のACアダプタはトランス+整流,平滑のみだったので,ラジオをつながないと9Vよりも高い電圧になり,子供心に不思議でした,定格と違うじゃーん,という感じで).

あとは,八重洲の無線機FT-690mkIIもセンターがGNDですね.

最近色々作っているエレキギター関係の周辺機器,特にエフェクターの世界もセンターがGNDで事実上デファクトスタンダードになっている感じです.まあ,業界としてあれだけ広まってしまうと,今更変えられないでしょう.

同軸ケーブルのイメージだと,なんとなく外側がGNDにしたい気分になるのですが,なぜ,センターGNDなのでしょうね?ジャックには,プラグを差し込んだ時に接点が離れる構造になっている第三の端子があります.これは,ACアダプタを差し込むと内蔵バッテリーを切り離すための工夫です.それが,端子の外側で行われる動きなので,端子の外側を+と考えたかったのかも知れませんね.

もうひとつ地味な問題は,2.1mmと2.5mm問題があります.なんか差さってしまうんですよね.詳しく調べていないのですが,2.5mmのジャックはセンターピンが少し太いみたいで,2.1mmのプラグを2.5mmのジャックへ差すことは出来ないのですが,逆は,2.5mmのプラグを2.1mmのジャックへ差すことは出来るみたいで.
2.5mmは使わないようにしているのですが,時々サトー電気で間違えて2.5mmの方の部品を買ってきてしまい,部品箱で混在していることがあるので,注意しないと.
IEEEの規格は,物理的な大きさだけではなく電圧まで規定しているので,あれをそのまま守るのも面倒かな.

CWデコーダ(その2)

aitendoで液晶表示のシールドを入手し,NJM567Dもゲット.いよいよブレッドボードで試作に入ります.モーター制御で遊んでいた回路は,一旦バラし,電源,NJM57D周りの配線を済ませました.arduino接続前に一旦実験したいのですが,こういう時に簡単なSGがあると便利ですね.大きいと邪魔だから,デジタル式のを作るか?

CWデコーダ

「びんぼうでいいの」でArduinoに慣れたところで,モーター制御だけではなく,何かを作りたいと考えています.最初は,アンテナチューナーを考えていたのですが,少しハードルが高いのと,現状のVDPで結構満足しているのとがあり,CWデコーダを作ってみることにします.無線機のPhone出力をいきなりArduinoのA/Dコンバータ入力へ突っ込んでも良いのですが,Webをいろいろ眺めていたところ,なんと世の中にはトーンデコーダという便利なICがあることを知り,早速これを用いて検討することにしました.セカンドソースなのかも知れませんが,日本無線からNJM567DというICが出ており,秋月電子通商で一個50円で売っています.とりあえず,これで試し,ソフトでも出来そうだったらAtmelのマイコンだけでやってみることにします.

「びんぼうでいいの」by aitendo

格安ですが確実に動くので気に入ってます.ただ,このお店の商品の特徴として,よく仕様が変更になるというのがあります.このボード自体もバージョンアップがされているのですが,それ以外に「びんぼうでいいの」用のパーツセットも密かに変更になっていたのにはまいりました.前回買った時は16MHzのXtalも入っていたのですが,今回は入っていませんでした.だから高いとか損したとかいうつもりはないほど,価格設定が低いのですが,気が付かなかったためにXtalを別途買って来なかった痛手が大きいです.パーツセットなんだから入れておいて欲しかった(コストがかさむならば多少値上げしても良いので).

で,ついでに「あちゃんでいいの」も買ってきて組み上げたのですが,表面実装の部品もあり,なかなか作りごたえがあります.MTRを作ったことのある人ならば,何とかなる範囲かと思います.

Arduinoで何をするか?

いろいろやりたいことがあります.以前から騒いでいるマイクロマウスもありますが,買ってきた半導体の特性を測る測定器も作ってみたいです.例えばカーブトレーサとか.あとは,周波数シンセサイザというか発振器というか,も無線機の調整用にあると便利です.変調がいろいろかけられると尚更便利です.他に,CWの自動復号とか,アンテナチューナーも作ってみたい.いずれも市販品もありますが,やはり自分で作ってみたいものです.

ステッピングモーターと組合わせて,NCな工作機械も面白そうです.硬いものは難しいですが,樹脂や木材相手のものならば,楽しいかも知れません.

Arduino

こんなに簡単とは思いませんでした.マイクロマウスだけではなく,様々な制御に使えると思い,Arduinoの世界に足を踏み入れてみましたが,昔のマイコンとは異なり,とても簡単に試すことができることがわかりました.

さすがに,出来合いのを買ってくるのは自作派として気が引けたので,aitendoの「びんぼうでいいの」に手を出してみました.多少は難儀することを覚悟していたのですが,ネット上に情報が数多く存在するため,試したその日のうちにモーターのPWM制御まで出来てしまいました(モーターシールドは秋月で市販品を買いましたが).

USB<->シリアルの変換チップが,Arduino UNO3Rの標準とは違うICなので,専用のドライバが必要なこと(aitendoの製品の説明ページにリンクがあります)が,少し特殊なくらいです.店頭で売っているCPU(Atmega328P)が,「Arduinoのブートローダーなし」,なので,それを別途用意する必要があります.誰かに作ってもらっても良いですが,私はマルツでブートローダ書き込み済みのAtmega328Pを買いました.あとは,これを使って,増殖させることができます.

ブートローダーライターもaitendoで購入しましたが,aitendoのwebサイトの説明にある,optifixのコードが少し古いため,最新版のarduino IDE(開発環境)では,コンパイルエラーを起こします.どうやら,コードの領域?をconstにして欲しい様な旨のエラーが出ています.これについては,書き換え方法を紹介しているサイトもありましたので,検索すればすぐみつかると思います.昔の版のArduino IDEに戻す方法を紹介しているサイトもありますが,出来れば最新版でコンパイルできた方が気持ち良いと思います.