yucken の業務上電脳 Tips 日記、なのだよ。-弐式-

いまさら電脳 Tips といふものを、書いてみむとして、するなり.元々は広い意味での電脳(コンピュータ)の Tips を書いていたのですが,いつのまにか,解析ツールの「電脳 ruby」と IDL の Tips がメインに (・)>

(未完成記事) Mac で USB ケーブルでのシリアル通信でコマンドを投げて測器からデータを取得する (2) 必要そうな知識

必要そうな知識をまず適当に書き出しておきます。

ボーレート

1 秒間に通信するデータのビット数 (bps) で表される通信速度のことです。データを送り出す USB (シリアル通信) ケーブルで繋がっている測器のボーレート (通信速度) が分かっていないと、screen だろうが Python:pyserial だろうが cat を使おうが、正常にデータを読み取れません。詳しくはこちらのサイト:

シリアルコンソールが文字化けしたら、まずはボーレートを確認しよう - Qiita

ちなみに、cat を使って読むときは

/boot/cmdline.txt

を書き換える必要があります。(多分…これを書き換えて再起動したら cat で読めた記憶が…) 詳しくはこちらのサイト:

Raspberry Pi でシリアル通信 – 或る阿呆の記

測器 (シリアル通信機器) のボーレートが知りたいときは

sudo ssty -a < /dev/ttyなんとか

のように ssty コマンドを使用します。詳しくはこちらのサイト:

Linuxで直接シリアルデバイスを利用する際の注意点等: 猫にコ・ン・バ・ン・ワ

cat で読む・データを送る

シリアル通信を cat を使って直接読んじゃうというコマンド:

cat /dev/ttyなんとか

逆に、

echo "Hello" > /dev/ttyなんとか

で、文字列を測器 (機器) に送り付けることもできます。私が使用する測器は USB-A のプラグがスケルトンになっていたため、ちゃんと送れていると光りました。これで、データ送付ができているらしいのが確認できたのはよかったです。詳しくはこちらのサイト:

Linuxにおけるシリアルポートのトラブルシューティング - Qiita

Raspberry Piのシリアルポートをコマンドラインで動かす: マイコン漬け

Python で読む

私は Raspberry Pi を使うことが前提なので、ラズパイのデファクトスタンダードらしい言語で Python で読むことにしました。必要な Python のモジュールは pyserial. Mac に入れるなら Python 自身も最新に近いものにアップデートした方がよいようです。(少なくとも Python 3) この Python アップデートと pyserial インストールは後日記事を改めて。

USB ケーブル機器がちゃんと認識されたかの確認

機器と Mac (Linux など) を USB ケーブルで接続したあと

dmesg

コマンド。これで、デバイスのアドレスが /dev/ttyxxx の xxx 辺りが分かるはず。ただ、このままだと、ちょっと読みづらいので

dmesg | grep tty

でもよいと思います。詳しくは:

LinuxでUSBシリアル変換ケーブルを使ってシリアル接続する - ytooyamaのブログ

Linuxにおけるシリアルポートのトラブルシューティング - Qiita