バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
HILSもどきのインターフェースをCANにしたところで
本来であればCANインターフェース装置の手配が必要になる。
しかし、今回はVector社のXL Driver Library付属のVirtual CAN Bus(無償)を使用することでさらりと回避する。
具体的にどのようなCANのデータをやり取りするかを決めていく。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
CAN経由で渡したい情報
CAN経由で指令値を渡すってのは決まったけど、
どんなデータを渡す予定?
まぁどんなデータでも良いのだけど、
一応決めておいた方が良いかもね。
一応以下の指令値を渡すとしよう。
Ramp UpとRamp Down。
そしてステップ信号だね。
割とお試しとしては良く使われるパターンだ。
PythonでCANの送信方法
実は、PythonでCAN送受信をする話は
以前、診断通信周りでしたことはある。
一応ここでやった。
うーん、だいぶ前な気がする・・・。
(まぁ一年以上はたってるかな)
基本的にはやることは一緒だが、
送信するデータのパターンをある程度用意しておく必要はあるな。
送信パターンはどういう形で持っておくの?
ファイルから読み込むとかだと汎用性があるが、
今回は普通にPythonのリストとして持っておこう。
sndparam = [
0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,
100,100,
100,95,90,85,80,75,70,65,60,55,50,45,40,35,30,25,20,15,10,5,0,
0,0,0,0,0,0,0,0,0,0,
80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,
50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
20,20,20,20,20,20,20,20,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
]
まぁ送りたいデータを変えたかったら
このリスト編集すればいいだけだしね。
PythonでCANを使用するには。
過去の記事にも書いてあることだが、
PythonでCANを使用するにはPython-CANが必要。
Python-CANのインストールはpipを使用すればOKだ。
pip install python-can
python-canの存在を知ってさえいれば、
ここはそんなに悩まないよね。
Python-CANを使用するには
Python-CANを使用するには当然ライブラリのimportが必要。
まぁこれもシンプルな話で以下をimportすればOKだ。
import can
(ここまではなんとなく覚えてるぞ!)
あとはバス初期化とか実際の送信の話にちょっと触れて
実際使用する実験コードを見せる動作させてみるって流れかな。
まぁいつも通りの流れだね。
まとめ
まとめだよ。
- CAN経由で渡したい情報として指令値を仮定義。
- Ramp Up、Ramp Down、Stepなどの組み合わせ
- Python-CANの復習。
- インストールの話。
- pip使えばOK。
- importの話。
- canをimportすればOK。
- インストールの話。
- 以降はバス初期化、送受信などの話が続く予定。
バックナンバーはこちら。
コメント