Odroid-U2 で C++ コードからサーボを制御しようとしています。LynxMotion の SSC-32 サーボ ドライバーを、Usb-シリアル コードを使用して Odroid に接続しています。
「#n Puuu」の後にキャリッジ リターンを続けるなど、単純なシリアル コマンドでサーボを制御します。ここで、n はサーボのピン番号、uuu はパルス幅です。Odroid から PUTTY を使用するとサーボをうまく制御できますが、C++ コードを使用してサーボを制御すると問題が発生します。たとえば、私のコードでは次のようにします。
fstream f;
f.open("/dev/ttyUSB0");
f << "#0 P600\r";
f.close();
かつて、このコードを実行することができ、サーボを適切に小刻みに動かしていましたが、現在、このコードを実行しようとすると端末がスタックしてハングします。問題を f.open("/dev/ttyUSB0") 行に絞り込み、コードの実行を妨げています。USBポートを何らかの方法で設定する必要があると思います。私は 115200 のボーレートが必要であることを知っており、それに応じて設定しましたが、Ubuntu n00b のようなものなので、他にどのような構成が必要かわかりません。
私の Linux のバージョンは Linaro 12.11 です。
stty と入力すると、デフォルト以外の構成セットは次のようになります。
speed 115200 baud; line = 0;
-brkint ixoff -imaxbel
-iexten