CAN通信のお勉強 with Ubuntu 22.04

クルマ
この記事は約4分で読めます。

渡米以来、アメリカ生活に関する記事をメインに書いてきましたが、
今回は少々趣向を変えて久々に車関連のお勉強ネタです。

だいぶ前に、車の通信ハッキングに関する本の記事を書いたものの、
なかなか実践するタイミングやら環境がなく読みっぱなしになっていましたが、
最近ようやく実践できる時間と環境が整ってきたので
備忘録も兼ねてここに書いておきます。

若干マニアックな話になりますが、興味のある方は参考までに&自己責任で。。

設備環境(使用したもの)

まずは、この記事を書くにあたって使用したものを書いておきます。

The Car Hacker’s Handbook

まずは参考書そのもの。
日本語訳版が書籍販売されているようですが、
原本そのものはpdfでも入手できるので私はそっちを用いています。
下記のページの ”Download” からpdfをダウンロードできます。
https://www.carhackingvillage.com/books

Ubuntu 22.04をインストールしたノートPC

上記の本で紹介されている手順の殆どは、Linux環境を前提としています。

なので、VMWare等の仮想マシンを導入してその上でLinuxを動かすか
そもそもLinuxをインストールしたPCを準備するかの2択になりますが、
最終的に車に接続する都合上、持ち運びやすいサイズのPCのほうがいいと思い
BestBuyで安いPCを買ってきてUbuntuをフルインストールすることにしました。

https://www.bestbuy.com/site/hp-14-laptop-intel-celeron-4gb-memory-64gb-emmc-snowflake-white/6499749.p?skuId=6499749

まあ低スペックといっても10年前のネットブックよりは動くでしょ、ということで。。笑
また、ubuntuに関しては下記のページからisoファイルをダウンロードできます。

Get Ubuntu | Download | Ubuntu
Download Ubuntu desktop, Ubuntu Server, Ubuntu for Raspberry Pi and IoT devices, Ubuntu Core and all the Ubuntu flavours...

インストール方法はHP内に解説が載っていますが、
基本は落としてきたisoをDVDまたはUSBブート用のメモリに書き込んだ後、
PCの起動時に読み込ませてインストールするという流れになります。

Linuxのディストリビューションは色々ありますが
(学生時代に一時期ハマって何個も試してた時期がありました。。。)
個人的に最も直感的に使いやすいのはUbuntuかなあと思ってます。
グラフィックも綺麗だし動作もそんなに重くないし。

LAWICEL CANUSB

車とPCをつなぐにあたって、一番のハードルとなるのが接続機器になるんですが、
今回は参考書記載のものとして下記を使用しました。

LAWICEL CANUSB | canusb.com
LAWICEL CANUSB - A versatile CAN to USB Interface Converter with an open API on canusb.com

この手の接続機器の有名所はKvaserとかVectorのVNシリーズとかなんですが
(実際仕事で使うのはそっち)、個人の趣味で買うにはお財布的にハードルが高いです。。
このCANUSBはスウェーデンのものですが、日本や北米でも買うことができ、
日本円でも15000円程度と比較的手が届く値段になっています。(USだと100ドルちょっと)

ELM327搭載のやつじゃあかんの?って声も聞こえてきそうですが、
廉価である代わりに通信容量に難がありそうだったので
ちゃんとしたものを買うことにしました。
(今までELM327のBluetoothコネクタ × AndroidタブレットでTorqueを使って
データを取ってましたが、アプリ上100msec間隔までサンプル時間を設定できるのに
実際は1sec間隔でしか計測できず困ったというのが今回の勉強の発端でもあります)

ちなみに OBD ー> CAN (DB9) の変換ケーブル自体は、
安いものだと2000円前後で買えます。下記は結構お値段するやつですが、
正直、この変換ケーブル自体はピン配さえ知ってれば
自作できなくもないレベルのものだと思うので、あまり高いものを買ってもなあ、、、
というのが個人的な意見です。(もちろん安すぎも怖いんですけど)

次ページ:諸々の設定手順

コメント