Changes between Version 1 and Version 2 of epics/powermate


Ignore:
Timestamp:
06/19/12 22:47:27 (13 years ago)
Author:
Takashi 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倍の大きさで増減します。