SSブログ

光パワーメータアプリ [Raspberry Pi]

連休中にたくさんアプリを書いた。何のためかというとほとんどが例の試作用のもの。ハードウェアに依存しないところをゴリゴリ書いて、会社に出てからハード依存部分を書いてデバグする。前も書いたように、できればSwiftにしたかったんだけど、時間がかかってしまうのでObjetive-Cになってしまった。これを最後にしたいけど、どうなるか。

たまたま、ここで披露できるような、まとまりがあって、あまり大きくなくて、面白そうな部分のあるのができた。光パワーメータアプリ。他のはたくさんのハードウェアが絡んでごちゃごちゃしてるのでちょっと無理だけど、これは独立性があるのでわかりやすい。

どんなものかというと、そもそも半導体レーザの出力調整に汎用のハンディパワーメータ(こんなやつ)を使っていたけど、他の人が使っていると取り合いになってしまう。僕はだいたいがわかればいいので精度は$\pm$20%ぐらいで十分。ということでちゃんとしたやつは他の人に渡して、自分用に作ることにした....

どうやって作るかというと、最近やっと手に入るようになったRaspberry Pi zero WH(RaspberryPi zero Wにピンヘッダが半田付けされただけで500円も上がるのは納得いかないけど、今これしか手に入らない)を使って、データをWiFi経由でmacOSに送って表示する、というもの。フォトディテクタは会社に転がっていた(というか僕の前任者が作った設備から僕がひっぺがした)浜ホト製の大面積シリコンフォトダイオードを使った。これは受光面が10$\times 10\rm{mm}$あって、光パワーメータに使うのにちょうどいい(大面積なので容量がでかくてしかもシールドで引き回したりすると、そのあとのオペアンプ回路がすぐ発振する。帯域には気をつけないといけない)。しかし、普通に買ったら高いんだろうな、これ。

これの出力を電流電圧変換して、A/D変換して、それをホストのmacOSに送る。使うA/DコンバータはいつものMCP3204なので、ダイナミックレンジは使うフォトダイオードに比べてかなり狭い。なので、アナログのゲインを2段に切り替えることにする。こんな回路。
0504circuit.png
オペアンプ用の電源は回路図には描いてないけど、たまたま手元にあったMAU106という$\pm 5\rm{V}$を出力する小型のDC-DCコンバータを使った。フォトディテクタはバイアスをかけて異なる抵抗値の繋がった二つのオペアンプで電流電圧変換してA/Dで読む。

回路図中の小さなダイオードが入っている四角い箱はフォトMOSリレーのつもり。メカニカルリレーで電流電圧変換用の抵抗を切り替えるだけでよかったんだけど、小さな基板に乗るリレーがなくて、たまたま手元にあったフォトMOSリレーにした(フォトMOSリレーはONもOFFも抵抗値が有限なのでその抵抗値が影響しないところにしか使えない。どうせオペアンプ素子は余ってるし)。BCMとあるのはRaspberry PiのGPIO出力で制御する、という意味。ピン番号は基板上での配置によって適当に決める。

で、半田付けしたのがこれ。
0505board.jpg
秋月で売ってたRaspbery Pi専用のユニバーサル基板の下にPi zero WHがある。後ろの白い円筒状のものはずっと昔なにかのノベルティでもらったUSBバッテリ。基板上にある手前の黒い四角いのがDC-DCコンバータでその後ろにオペアンプとフォトMOSリレーがあって、A/Dコンバータは基板の裏側に半田付けした。

あとはソフトだけど、どうせ目で見ることになるので人間が把握できるぐらいの時間間隔で表示できればいい。その間ずっとデータを取って平均の値をホストに送ることにする。Pi zero WHはシングルコアでマルチスレッドに書いてもパフォーマンスは上がらないので、あまり難しいことはせずにデータを取る部分はサクッとmain関数に詰め込んだ。

ソフトの一番最下層はずっと昔書いた、コマンドはTCPで、データはUDPでやり取りするコードを流用した。その上にコマンドやデータを構造化してやり取りする部分を付け足した。そこまではCで書いてRaspbianとmacOSで共通のソースを使う。

そしてRaspbian側はpigpioを使ってGPIOとSPIを制御して、macOS側はクライアントとしてコマンド送り出しとデータを受け取って表示するのを書いた。macOS専用の部分にはObjective-Cで書いた。ほんとはここをSwiftにしたかった。

光パワーメータを僕が何に使うか、というと光学系を調整するため。たとえば半導体レーザをシングルモードファイバに入れることを考えてみる。$\rm{N.A.}=0.15$ぐらいの比較的調整が簡単なファイバでも絞り込んだスポットとコアの位置を$\pm5\mu \rm{m}$ぐらいに調整しないといけない。しかしなにかターゲットがあるわけではなくて、普通はファイバからの出力が最大になるように調整する。調整すべき距離どころか符号もわからないので、試行錯誤的に探すことになる。その場合、目の強度に関する感度は低い(慣れないと倍半分くらい変わって、あ、違う、と気がつく)ので、定量的にわかる光パワーメータの登場である。

普通の光パワーメータではその瞬間の光強度しかわからないけど、履歴がわかるほうが調整はしやすくなる。その履歴も数秒から分ぐらい前までわかるほうがいい。しかし古いのより最近の状況がわかりやすいほうがいい。そう考えると
  • 光強度のリアルタイムの値を表示する
  • その履歴をグラフで表示する
  • その間の最大値とその時刻を表示する
  • 新しいデータほど広く、古い履歴は圧縮して表示する
というのが望ましい。

ちょっと考えて、こんな圧縮関数$\tau(t)$を作った。 \begin{equation} \tau(t)=\frac{e^{k t}-1}{e^{k T}-1} \end{equation} これは$t=0 \ldots T$を$\tau(t)=0 \ldots 1$に変換する。これでグラフの横軸の古い方を圧縮して表示する。パラメータの$k$は圧縮率で、値が大きいほど新しいほう(つまり$T$に近いほう)がexponential型に広がって表示されることになる。そして \begin{equation} \lim_{k=0}\tau(t) = \frac{t}{T} \end{equation} なので、$k$の値が小さいほど線形に近づく。

で、こうなりました。
0506piPowreMeter.png
(クリックするとYouTube動画にジャンプします)

左の数字がパワーの現在値で右側の赤い数字が履歴中の最大値。下のグラフが履歴を表すグラフで、最大値には赤丸がついていて、左側の過去が圧縮されている。その下に時間的に等間隔の刻み(ticks)があって、その下に圧縮率を変更するスライダがある。スライダを左いっぱいにすると式-1のパラメータ$k$が0、すなわち式-2のリニア表示になる。右にするほど最近のデータが大きく表示される。そのほかにデータ転送を停止/継続したり、履歴をクリアしたり、アンプのゲインを切り替えたりするUIがある。

ソースはこちらzipを解凍したディレクトリpowerMeterの中のPiPowerMeterの中にXcodeプロジェクトファイルがあります。powerMeterディレクトリをEclipseのWorspaceとして開くとRaspberry Pi用のクロスコンパイル環境が.metadataなどの中にあるのでこれに従ってディレクトリ設定されていればmacOSでクロスコンパイルできるはずです。バージョンはXcode9.3、Eclipse IDE for C/C++ DevelopersVersion: Neon.3 Release (4.6.3)です。

ためしに全く同じデンで作ったローパワー半導体レーザの定電流ドライバを使ってレーザを光らせてフォトディテクタに入れたところを上のムービーにした。完全ハードウェアのパワーメータに比べるとキーボードをいじらないといけないところはしょうがないとして、それ以外はそこそこ使えるんではないだろうか。というか、僕の使い勝手にはこれで十分。

こんなものでも自分で半田付けしてコードを書いたのがちゃんと動くとやっぱり楽しい。ほら、ちゃんと動くんだよ、と言いたいからこうやってここに書いてるわけだけど。

ということで、連休明けに会社で真面目にISO9001に従って校正されたパワーメータで光強度表示を2次校正して、実際にファイバ調整に使ってみることにする。
nice!(0)  コメント(2) 

nice! 0

コメント 2

お名前(必須)

cash advance katy tx https://creditrepairlabs.com/ ace cash express loans locations <a href=https://creditrepairlabs.com/#>quick payday loan</a>
by お名前(必須) (2018-05-07 03:20) 

Stekljannye Banki Optom

Хозтовары оптом в Твери
http://forum.t1airsoft.com/viewtopic.php?f=41&t=13580
http://pgsd.stkippersada.ac.id/konsultasi.html
http://iglesiadesancarlos.cl/galeria/details.php?image_id=14
http://lhsvn.com.vn/modules.php?name=Forums&file=viewtopic&p=170839#170839
http://www.phoquang.org/modules.php?name=Forums&file=viewtopic&p=87035#87035


<img>http://tverbaza.ru/images/stories/virtuemart/product/rkishki-tvist.jpg </img>


<p>Стандартные банки стеклянные</p> <br /> <p>Данная категория стеклянных банок для разных заготовок используется, обычно, с железными крышками. В этих баночках в минимаркетах продаются помидоры, соки и т.д. Эти стеклянные банки долговечны и универсальны. Они имеют обычные размеры – от 600мл до 2л. Для хранения запасов на зиму можно применять не только новые банки стеклянные, но и бывшие в употреблении. Главное, чтобы на них не было ни малейших повреждений. </p> <br /><a href="http://tverbaza.ru/banki-steklyannye" /><img src="" /></a> <br /><p>Покупая закаточные крышки, предпочтение отдавать следует крышкам с золотым внутреннем покрытием. Эти не гниют при длительном хранении банок в подвальных условиях, не окисляются от соков и уксуса. Главное, чтобы эмаль покрытия крышек не была поцарапана. </p> <br /><p>Особенно важно правильно подобрать оптового продавца стеклобанок и металлических крышек. В Тверской области самые дешевые стеклянные банки оптом и СКО крышки к ним нужно покупать на Тверском складе <a href="http://tverbaza.ru/banki-steklyannye" />tverbaza.ru</a> </p> <br /> <p>Стандартная стеклянная тара идеально подходит для хранения капусты, баклажанов и различных вкусностей. Такие рецепты являются многократно опробованы и имеют определенные составы. Следовательно, приобретение обычной стеклянной банки будет лучшим вариантом для Тверской мастерицы.</p> <br /> <p>Стеклобанки с завинчивающимися крышками</p> <br /> <p>Твист-Оф банки очень удобны в использовании. Однако тут важно следить за состоянием крышки, так как со временем она утоньшается. Твист-Оф крышки выдерживают порядка 2-4 сезона.</p> <br /> <p>Самые лучшие и не дорогие крышки можно купить на складе оптовой торговли в Твери <a href="http://tverbaza.ru/banki-steklyannye" />tverbaza.ru</a> </p> <br /> <a href="" />Банки СКО дешево</a>














http://kupoklub.ru/otzyvy/iz-sankt-peterburga-v-moskvu-po-baltike.html

http://forum.t1airsoft.com/viewtopic.php?f=41&t=13571&p=21345#p21345
http://bbs.he.99.com/showthread.php?p=5276286&posted=1#post5276286
http://www.a-drozdov.ru/talk/profile.php?id=9493
http://fablero.ucoz.ru/index/8-128318
http://lhsvn.com.vn/modules.php?name=Forums&file=viewtopic&p=170841#170841

by Stekljannye Banki Optom (2018-05-08 22:07) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。