Changes between Version 1 and Version 2 of epics/powermate


Ignore:
Timestamp:
06/19/12 22:47:27 (7 years ago)
Author:
obina
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • epics/powermate

    v1 v2  
    1212 
    1313!PowerMateとはGriffin Technologies社製のUSBマルチメディアコントローラです。 といっても、見た目は単なる高級なボリューム(^^; (写真は約3年前に購入した私物です) 
    14  
     14[[Image(photo1.jpg)]] 
    1515 
    1616アルミ削り出しの質感がなかなか良く、気に入っています。底面のLED もなかなか良い感じ。日本での販売代理店はFocalが行っています。 
     
    2222== Linux用ドライバ == 
    2323 
    24 googleで検索すると、色々な情報にあたるのですが、Kernel2.6対応となると Gentoo Wikiが一番まとまっていて、分かりやすかったです。 
     24googleで検索すると、色々な情報にあたるのですが、Kernel2.6対応となると ~~Gentoo Wiki~~が一番まとまっていて、分かりやすかったです。 
     25(追記:リンク切れ。おそらく http://www.gentoo-wiki.info/HOWTO_Griffin_PowerMate_with_UDEV_and_Kernel_2.6.x が当時の文書に近い 
     26と思うのですが自信無し) 
     27 
    2528しかも、Scientific Linux 4.2 ではカーネルのパッチもすでにあたっているため再構築は不要。 何も考えずにPowerMateを差し込んで、dmesgを見てみると: 
    2629{{{ 
     
    3033usbcore: registered new driver powermate 
    3134}}} 
    32 faildとか出ているのが嫌ですが、ともかくpowermateドライバは自動的に組み込まれます。 
     35failedとか出ているのが嫌ですが、ともかくpowermateドライバは自動的に組み込まれます。 
    3336 
    34 次に こちらのサイトにおいてある Linux用ドライバを持ってきて 展開、コンパイルします。 (同じサイトにpython用のインターフェースファイルもありますがこちらはテストしていません。) rootになって、同梱されていたrotomaticというプログラムを実行すると 
     37次に [http://www.sowerbutts.com/powermate/ こちらのサイト]においてある Linux用ドライバ(powermate-1.0.tgz)を持ってきて 展開、コンパイルします。 (同じサイトにpython用のインターフェースファイルもありますがこちらはテストしていません。) rootになって、同梱されていたrotomaticというプログラムを実行すると 
    3538{{{ 
    3639Button was rotated 1 units; Offset from start is now 1 units 
     
    4447== イベント詳細 == 
    4548 
    46 どのようなイベントが起きているかについては /dev/input/eventに関するメモに置いておきます。 
     49どのようなイベントが起きているかについては [wiki:epics/powermate-event /dev/input/eventに関するメモ]に置いておきます。 
    4750 
    4851== EPICSでどのように使うか? == 
     
    5457とりあえずDevice Supportを書くのは先の話にするとして、 どんな感じのことができるかどうかを確認しようと思います。お手軽に。 まずはLinux上でSoftware IOC を 実行し、そこへcaputで値を書き込むプログラムを別に動かします(CA Client の サンプルプログラムに上記のrotomatic.cを組み込み、EPICS lib を呼び出すようにしただけ。 プログラム所要時間は約5分。) で、実行した画面が下のような感じ。  
    5558 
     59[[Image(photo2.jpg)]] 
     60 
    5661適当にPowerMateをぐりぐりと動かし、同時にcamonitorで値を確認。右下のウィンドウをみると、 15-20msごとに値は更新されている模様。これなら十分か。 早く動かしているとCPU負荷が50%近くまで上がりますが、これはグラフ表示と camonitorの画面更新のためにXウィンドウプロセスの負荷が上がったことが原因です。 !PowerMateやEPICS sequencerが重いのではありません。 
    5762 
    5863== Sequencerにしてみる == 
    5964 
    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* のアクセス権が取れません。 
    6166 
    6267中味は簡単なのでソースを見て頂く方が簡単ですが、 PowerMateのノブを左に回すと-1, 右に回すと+1レコードの値が変化します。 ノブを押しながら左右に回すと、10倍の大きさで増減します。