Changes between Version 2 and Version 3 of epics/arduino/simpleRead


Ignore:
Timestamp:
09/25/18 19:31:32 (7 years ago)
Author:
Takashi Obina
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • epics/arduino/simpleRead

    v2 v3  
    1717
    1818== 方針 ==
    19 [!RasPi (epics IOC)] --(USB)--[Arduino AnalogIN] -- 可変抵抗に5V印加 [[br]]
     19最終的には[[br]]
     20EPICS Client --(Ethernet)-- [!RasPi (epics IOC)] --(USB)-- [Arduino AnalogIN !#0] <-- 可変抵抗に5V印加 [[br]]
     21という構成にする。
    2022
    2123* アナログ入力を読み込み、シリアル経由でホストに通信。最初はPCを使って動作検証し、その後でEPICS化する。
    2224* Arduino Uno の場合、0-5Vを 10bit(0-1024)で読み込むことが可能
    2325* 5V 電圧+可変抵抗+固定抵抗(破損防止)で
    24   * 今回は手元にあった 1kΩの可変抵抗+1kΩの固定抵抗
    25 * ブレッドボードに配線[図]
    26 
     26  * 今回は手元にあった 1kΩの可変抵抗(半固定抵抗)+1kΩの固定抵抗
     27* ブレッドボードに配線
     28[[Image(DSC05620s.jpg, 40%)]][[Image(circuit.png, 30%)]]
    2729
    2830= 動作確認 =
    2931== PCを使ってスケッチの検証 ==
    30 構成としては
    31 [PC] --[USB]--[Arduino]--AnalogIN
    32 という単純な構成。[[br]]
     32最初に[[br]]
     33[PC] --(USBケーブル)-- [Arduino] <-- AnalogIN[[br]]
     34という単純な構成で確認する。[[br]]
    3335
    34361秒に1回、ADCの値をシリアル経由でホストPCに送るスケッチを作成する。
     
    4850}}}
    4951Arduinoにダウンロードし、IDEで「シリアルモニター」を開くと、1秒に1回ADCのカウント値が表示される。[[br]]
    50 この状態で可変抵抗を動かすと、カウント値が変わることを確認する。
     52この状態で可変抵抗を動かして、カウント値が変わることを確認する。
    5153
    5254
     
    7476}}}
    7577正常に接続できれば、1秒ごとにターミナル上にADCカウント値が表示される。[[br]]
    76 GNU Screenを終了するにはホットキー(デフォルトではCTRL-a)を押してから、kを押せば良い(killコマンド)。
     78GNU Screenを終了するにはホットキー(デフォルトではCTRL-a)を押してから、kを押せば良い(killコマンド)。[[br]]
    7779※分からなければgoogleで 「GNU Screen の使い方」を検索
    7880
     
    186188
    187189※ 以上の動作が確認できたら、Arduinoスケッチで Delay 1000 としているところを、 100 ms に設定すると
    188 可変抵抗を動かしたときの応答が滑らかになる。Arduinoは高速で動いているのに対して、EPICSを使うことで
    189 camonitor 機能があるため値が変化したときのみデータ通信を行うことが実現できている。
    190 
     190可変抵抗を動かしたときの応答が滑らかになる。Arduinoは10Hzという一定速度で電圧を測定しているのに対して、
     191EPICS IOC は値が変化したときのみクライアント側に通知する camonitor 機能がある。
    191192[[Image(aruduino004b.png, 40%)]][[Image(aruduino005.png, 40%)]]