Changes between Version 1 and Version 2 of epics/arduino/simpleRead
- Timestamp:
- 09/25/18 17:00:57 (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
epics/arduino/simpleRead
v1 v2 1 1 = Arduino と EPICS を使った簡単な例 = 2 家庭でも遊べるように、簡単なサンプルをつくる。 2 [[PageOutline]] 3 家庭でも遊べるように、簡単なサンプルをつくることが目的。[[br]] 4 「ArduinoはUSBシリアル経由でデータを垂れ流しにする」「EPICS IOC(Raspberry Pi) 側からコマンドは送らず、Listenするのみ」という構成にする。 3 5 4 6 == 準備 == … … 11 13 * EPICSインストールについては[wiki:epics/raspberrypi 別の記事を参照] 12 14 * USB ケーブル 13 * ブレッドボード、ジャンパー 系ブル15 * ブレッドボード、ジャンパーケーブル等 14 16 * 半固定抵抗と固定抵抗(今回は手元にあった 1kΩのモノを使用) 15 17 16 18 == 方針 == 17 [!RasPi (epics IOC)] -- [USB]--[Arduino]--AnalogIN--register[[br]]19 [!RasPi (epics IOC)] --(USB)--[Arduino AnalogIN] -- 可変抵抗に5V印加 [[br]] 18 20 19 * アナログ入力を読み込み、シリアル経由でホストに通信。最初はPCを使って動作検証し、その後 EPICS化する。21 * アナログ入力を読み込み、シリアル経由でホストに通信。最初はPCを使って動作検証し、その後でEPICS化する。 20 22 * Arduino Uno の場合、0-5Vを 10bit(0-1024)で読み込むことが可能 21 23 * 5V 電圧+可変抵抗+固定抵抗(破損防止)で … … 24 26 25 27 26 == PCにてスケッチの検証 == 28 = 動作確認 = 29 == PCを使ってスケッチの検証 == 27 30 構成としては 28 31 [PC] --[USB]--[Arduino]--AnalogIN … … 47 50 この状態で可変抵抗を動かすと、カウント値が変わることを確認する。 48 51 52 53 [[Image(aruduino002.png, 40%)]] 49 54 50 55 == Raspberry Pi に接続 == … … 73 78 74 79 75 == EPICS IOC 作成 == 80 = EPICS IOC 作成 = 81 == makeBaseApp == 76 82 ここまでくれば、あとはEPICSのIOCを書く。 77 83 単純に Stream Device で読み込むだけで良いので、 … … 96 102 }}} 97 103 104 == src ディレクトリでの作業 == 98 105 srcディレクトリで、MakefileにstreamDeviceの 99 106 * SerialPortドライバーを追加 … … 117 124 }}} 118 125 119 Dbディレクトリでdatabaseファイルを追加 126 == Database ディレクトリでの作業 == 127 Dbディレクトリでdatabaseファイルを追加。スキャンを"I/O Intr"にすることで、シリアル経由でデータが来たときのみレコードをプロセスする。 120 128 {{{ 121 129 vi read1.db … … 136 144 }}} 137 145 138 Dbディレクトリに protocol file を作成 146 Dbディレクトリに protocol file を作成。数値を"%d"で変換するのみなので単純。エラー時に 139 147 {{{ 140 vi simple.proto148 pi@raspberrypi:~/epics/app/arduino/simpleReadApp/Db $ vi simple.proto 141 149 142 150 Terminator = CR LF; … … 147 155 }}} 148 156 149 make すると、とても遅い。セルフコンパイルなので仕方ない のだが.....クロスコンパイル環境を整えねば。150 stream device のサイト http://epics.web.psi.ch/software/streamdevice/ も参照。 157 make すると、とても遅い。セルフコンパイルなので仕方ない(クロスコンパイル環境を整えたい)[[br]] 158 stream device のサイト http://epics.web.psi.ch/software/streamdevice/ も参照。[[br]] 151 159 160 == startup == 152 161 startupディレクトリで st.cmd コマンド編集 153 162 {{{ … … 167 176 168 177 エラーが出ていないことを確認すること。[[br]] 178 179 == Client == 169 180 別ターミナルを開いて、 170 181 {{{ … … 172 183 }}} 173 184 とする。 174 あるいは、PC上でCSSを実行して、このレコードをモニター・グラフ表示する。 185 あるいは、PC上でCSSを実行して、このレコードをモニター・グラフ表示する。[[br]] 175 186 187 ※ 以上の動作が確認できたら、Arduinoスケッチで Delay 1000 としているところを、 100 ms に設定すると 188 可変抵抗を動かしたときの応答が滑らかになる。Arduinoは高速で動いているのに対して、EPICSを使うことで 189 camonitor 機能があるため値が変化したときのみデータ通信を行うことが実現できている。 190 191 [[Image(aruduino004b.png, 40%)]][[Image(aruduino005.png, 40%)]]