Changes between Version 1 and Version 2 of epics/powermate
- Timestamp:
- 06/19/12 22:47:27 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
epics/powermate
v1 v2 12 12 13 13 !PowerMateとはGriffin Technologies社製のUSBマルチメディアコントローラです。 といっても、見た目は単なる高級なボリューム(^^; (写真は約3年前に購入した私物です) 14 14 [[Image(photo1.jpg)]] 15 15 16 16 アルミ削り出しの質感がなかなか良く、気に入っています。底面のLED もなかなか良い感じ。日本での販売代理店はFocalが行っています。 … … 22 22 == Linux用ドライバ == 23 23 24 googleで検索すると、色々な情報にあたるのですが、Kernel2.6対応となると Gentoo Wikiが一番まとまっていて、分かりやすかったです。 24 googleで検索すると、色々な情報にあたるのですが、Kernel2.6対応となると ~~Gentoo Wiki~~が一番まとまっていて、分かりやすかったです。 25 (追記:リンク切れ。おそらく http://www.gentoo-wiki.info/HOWTO_Griffin_PowerMate_with_UDEV_and_Kernel_2.6.x が当時の文書に近い 26 と思うのですが自信無し) 27 25 28 しかも、Scientific Linux 4.2 ではカーネルのパッチもすでにあたっているため再構築は不要。 何も考えずにPowerMateを差し込んで、dmesgを見てみると: 26 29 {{{ … … 30 33 usbcore: registered new driver powermate 31 34 }}} 32 fail dとか出ているのが嫌ですが、ともかくpowermateドライバは自動的に組み込まれます。35 failedとか出ているのが嫌ですが、ともかくpowermateドライバは自動的に組み込まれます。 33 36 34 次に こちらのサイトにおいてある Linux用ドライバを持ってきて 展開、コンパイルします。 (同じサイトにpython用のインターフェースファイルもありますがこちらはテストしていません。) rootになって、同梱されていたrotomaticというプログラムを実行すると37 次に [http://www.sowerbutts.com/powermate/ こちらのサイト]においてある Linux用ドライバ(powermate-1.0.tgz)を持ってきて 展開、コンパイルします。 (同じサイトにpython用のインターフェースファイルもありますがこちらはテストしていません。) rootになって、同梱されていたrotomaticというプログラムを実行すると 35 38 {{{ 36 39 Button was rotated 1 units; Offset from start is now 1 units … … 44 47 == イベント詳細 == 45 48 46 どのようなイベントが起きているかについては /dev/input/eventに関するメモに置いておきます。49 どのようなイベントが起きているかについては [wiki:epics/powermate-event /dev/input/eventに関するメモ]に置いておきます。 47 50 48 51 == EPICSでどのように使うか? == … … 54 57 とりあえずDevice Supportを書くのは先の話にするとして、 どんな感じのことができるかどうかを確認しようと思います。お手軽に。 まずはLinux上でSoftware IOC を 実行し、そこへcaputで値を書き込むプログラムを別に動かします(CA Client の サンプルプログラムに上記のrotomatic.cを組み込み、EPICS lib を呼び出すようにしただけ。 プログラム所要時間は約5分。) で、実行した画面が下のような感じ。 55 58 59 [[Image(photo2.jpg)]] 60 56 61 適当にPowerMateをぐりぐりと動かし、同時にcamonitorで値を確認。右下のウィンドウをみると、 15-20msごとに値は更新されている模様。これなら十分か。 早く動かしているとCPU負荷が50%近くまで上がりますが、これはグラフ表示と camonitorの画面更新のためにXウィンドウプロセスの負荷が上がったことが原因です。 !PowerMateやEPICS sequencerが重いのではありません。 57 62 58 63 == Sequencerにしてみる == 59 64 60 上のように捌プログラムでも良いのですが、sequencerから呼び出すように変えました。 まとめたソースを pmateApp.tar.gzにおきます。 展開してconfigure/RELEASEを編集するだけで、あとはmake。(追記:pmateApp/displayディレクトリ にはEDM用の表示ファイルもおきました。) st.cmdを実行するときにはrootにならないと/dev/input/event* のアクセス権が取れません。65 上のように捌プログラムでも良いのですが、sequencerから呼び出すように変えました。 まとめたソースを [attachment:pmateApp.tar.gz pmateApp.tar.gz]におきます。 展開してconfigure/RELEASEを編集するだけで、あとはmake。(追記:pmateApp/displayディレクトリ にはEDM用の表示ファイルもおきました。) st.cmdを実行するときにはrootにならないと/dev/input/event* のアクセス権が取れません。 61 66 62 67 中味は簡単なのでソースを見て頂く方が簡単ですが、 PowerMateのノブを左に回すと-1, 右に回すと+1レコードの値が変化します。 ノブを押しながら左右に回すと、10倍の大きさで増減します。