Я пытаюсь управлять сервоприводами из кода C++ на Odroid-U2. У меня есть сервопривод SSC-32 от LynxMotion, подключенный к Odroid с помощью кабеля USB-Serial.
Простые последовательные команды управляют сервоприводами, например, "#n Puuu" с последующим возвратом каретки, где n=номер контакта для сервопривода, а uuu=ширина импульса. Я могу нормально управлять сервоприводами при использовании PUTTY из Odroid, но у меня возникают проблемы при использовании кода 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