現状で、
この項準備中。
あとは、普通にシリアルポート用のプログラムを書くだけで、通信速度設定でB500000を指定するのみです。
以下、動作を確認したプログラムをご参考までおいておきます。
LMS200との通信クラス (2008/03/15, 12,179 bytes)
180[deg]/0.25[deg]スキャンで距離データをダンプするプログラム (2008/03/15, 4,145 bytes)
同、グラフ表示(以下参照) (2008/03/15, 5,839 bytes)
EGGX用g++スクリプト (2008/03/15, 1,274 bytes)
sickcomif.ccは、LMS200と通信するために開発したC++のクラスです。
最低限のテレグラムコマンドしか実装していませんが、一応、データの検出はできます。
ただし、かなりいい加減&動けばいいやなので、通信がちゃんとつながらない場合があります(おそらく、ハンドシェークでなにかミスがある)。
![]() |
sickmap.cc の実行例 |
sickmap.ccは右図のように、画面にリアルタイムに検出値を表示します。
ただし、コンパイルにはEGGX / ProCALLが必要です。また力任せに書くため、PCにもそれなりにスペックが必要です(Xが速ければいい)。
EGGX付属のコンパイルスクリプト egg は C言語プログラムのコンパイル用なので、それを修正して作ったeg++を用いて、
eg++ -o sickmap sickmap.cc
でコンパイルして使います。
sickcomif.cc は3年ほど前に勢いで作ったこともあって、すでにわからなくなっている部分もあり、お問い合わせや拡張にはお答えできない可能性が大です。が、ご自分で適当に書き換えて使う分にはいっこうにかまいません。
なお、通信ポートの設定については、SickLMSIF::SetComSpeed(int baud,int local) をご覧ください。シリアルポートの使い方の例にはなるかと思われます。
蛇足:制御専用機なのでrootでログインして、そのまま作業しています。気にしないでください:-)