Changes between Version 2 and Version 3 of epics/arduino/simpleRead
- Timestamp:
- 09/25/18 19:31:32 (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
epics/arduino/simpleRead
v2 v3 17 17 18 18 == 方針 == 19 [!RasPi (epics IOC)] --(USB)--[Arduino AnalogIN] -- 可変抵抗に5V印加 [[br]] 19 最終的には[[br]] 20 EPICS Client --(Ethernet)-- [!RasPi (epics IOC)] --(USB)-- [Arduino AnalogIN !#0] <-- 可変抵抗に5V印加 [[br]] 21 という構成にする。 20 22 21 23 * アナログ入力を読み込み、シリアル経由でホストに通信。最初はPCを使って動作検証し、その後でEPICS化する。 22 24 * Arduino Uno の場合、0-5Vを 10bit(0-1024)で読み込むことが可能 23 25 * 5V 電圧+可変抵抗+固定抵抗(破損防止)で 24 * 今回は手元にあった 1kΩの可変抵抗 +1kΩの固定抵抗25 * ブレッドボードに配線 [図]26 26 * 今回は手元にあった 1kΩの可変抵抗(半固定抵抗)+1kΩの固定抵抗 27 * ブレッドボードに配線 28 [[Image(DSC05620s.jpg, 40%)]][[Image(circuit.png, 30%)]] 27 29 28 30 = 動作確認 = 29 31 == PCを使ってスケッチの検証 == 30 構成としては 31 [PC] -- [USB]--[Arduino]--AnalogIN32 という単純な構成 。[[br]]32 最初に[[br]] 33 [PC] --(USBケーブル)-- [Arduino] <-- AnalogIN[[br]] 34 という単純な構成で確認する。[[br]] 33 35 34 36 1秒に1回、ADCの値をシリアル経由でホストPCに送るスケッチを作成する。 … … 48 50 }}} 49 51 Arduinoにダウンロードし、IDEで「シリアルモニター」を開くと、1秒に1回ADCのカウント値が表示される。[[br]] 50 この状態で可変抵抗を動か すと、カウント値が変わることを確認する。52 この状態で可変抵抗を動かして、カウント値が変わることを確認する。 51 53 52 54 … … 74 76 }}} 75 77 正常に接続できれば、1秒ごとにターミナル上にADCカウント値が表示される。[[br]] 76 GNU Screenを終了するにはホットキー(デフォルトではCTRL-a)を押してから、kを押せば良い(killコマンド)。 78 GNU Screenを終了するにはホットキー(デフォルトではCTRL-a)を押してから、kを押せば良い(killコマンド)。[[br]] 77 79 ※分からなければgoogleで 「GNU Screen の使い方」を検索 78 80 … … 186 188 187 189 ※ 以上の動作が確認できたら、Arduinoスケッチで Delay 1000 としているところを、 100 ms に設定すると 188 可変抵抗を動かしたときの応答が滑らかになる。Arduinoは高速で動いているのに対して、EPICSを使うことで 189 camonitor 機能があるため値が変化したときのみデータ通信を行うことが実現できている。 190 190 可変抵抗を動かしたときの応答が滑らかになる。Arduinoは10Hzという一定速度で電圧を測定しているのに対して、 191 EPICS IOC は値が変化したときのみクライアント側に通知する camonitor 機能がある。 191 192 [[Image(aruduino004b.png, 40%)]][[Image(aruduino005.png, 40%)]]