Arduino互換機を接続する

手持ちのいくつかのArduinoやArduino互換機をPaPeRo iに繋いでみたのですが、純正UNOは
認識したのにUNO互換機やnano互換機はダメでした。
調べてみるとPaPeRo iのLinuxカーネルはArduino互換機でよく使われているUSBシリアル
変換チップCH341のサポートオプションがOFFになっていました。
カーネルの入れ替えが必要かと思いあきらめかけたのですが、試してみるとカーネルモジュールだけを
後からロードすれば使える様になりましたので、手順を紹介します。

まずここからダウンロードしたch341.tgzを/tmpに転送し、以下のコマンドを実行します。

# mkdir /Extension/local/lib
# mkdir /Extension/local/lib/drivers
# cd /Extension/local/lib/drivers
# tar xvzf /tmp/ch341.tgz

準備は出来ましたが、まずロードしない状態で接続するとどうなるか見てみます。
PaPeRo iではUSBポートに何も接続していない場合の/dev/tty*は以下の様になっています。

papero_arduino1

ch341を使ったArduino互換機を接続してみます。
dmesgにはusbデバイスとして認識している形跡は残っているのですが、/dev/tty*は増えず、
シリアルデバイスとしてアクセスはできません。

papero_arduino2

ここでArduino互換機を取り外し、カーネルモジュールをロードしてからもう一度接続してみます。

# insmod /Extension/local/lib/drivers/ch341.ko

今度は/dev/ttyUSB0としてシリアルデバイスとしてアクセス出来る様になります。

papero_arduino3m

カーネルモジュールのロードを電源ON時に自動的に実行させるためには/Extension/scriptにファイルを作成して上記insmodコマンドを
記述しておく必要があります。

ちなみに純正UNOの場合は単に接続するだけで認識します。
ただしデバイスは/dev/ttyUSB0ではなく/dev/ttyACM2になります。

papero_arduino4m


0