ROS串列埠通訊(1)環境搭建
阿新 • • 發佈:2018-11-29
ROS串列埠通訊(1)環境搭建
引言
無疑,串列埠的除錯需要聯合串列埠助手除錯更加方便。
1、ubuntu串列埠驅動安裝和使用
1.1 安裝
終端中輸入
sudo apt-get install minicom
配置:輸入
sudo minicom -s
注意前邊一定要加sudo以root許可權執行,否則在配置完後會出現cannot write to /etc/minicom/minirc.dfl的許可權問題!
彈出下圖設定介面:
使用方向鍵選擇Serial port setup,按Enter鍵,進入設定環境,如下圖
輸入a或者A,選擇串列埠裝置,在這裡我使用的是USB轉串列埠,將/dev/tty8修改為/dev/ttyUSB0,這裡不固定,試試就知道是USB0還是USB1,也可以先安裝下文的除錯助手,除錯助手更方便的檢測出是哪個口。
注意:使用USB轉串列埠,那麼串列埠COM1對應ttyUSB0, COM2對應ttyUSB1;如果沒有使用USB轉串列埠,而是直接使用串列埠,那麼串列埠COM1對應ttyUSB0, COM2對應ttyUSB1。
配置完串列埠裝置後,按Enter鍵,再輸入E,配置波特率,按預設配置即可 115200 8N1 (波特率:115200,資料位:8,奇偶校驗位:N 無,停止位:1)。 配置完波特率,按Enter鍵,再輸入F,配置硬體流控,選擇NO。 再繼續配置軟體流控,也選擇NO。都配置完後,按下Enter鍵返回上一介面,選擇save setup as dfl(即將其儲存位預設配置),再選擇Exit,關閉minicom。
1.2 使用
再次輸入命令 sudo minicom,是剛才的配置生效,就可以看到串列埠輸出資訊。
1.3 Ubuntu 檢視串列埠,設定串列埠許可權
(2)ubuntu 檢視串列埠,設定串列埠許可權
使用命令 ls -l /dev/ttyUSB*
檢視相關的資訊。
但是普通使用者沒有usb操作許可權,插入USB轉串列埠裝置後,普通使用者無法訪問裝置/dev/ttyUSB0, 使用minicom時需在root使用者下或加sudo才能使用。為了在普通使用者也能正常使用USB轉串列埠裝置, 可以通過增加udev規則來實現。步驟如下:
(1)建立檔案/etc/udev/rules.d/70-ttyusb.rules (2)sudo gedit /etc/udev/rules.d/70-ttyusb.rules
一定要增加訪問許可權:
sudo chmod 666 /dev/ttyUSB0
用檔案調整訪問許可權也可以,沒試過,在檔案內增加一行
KERNEL=="ttyUSB[0-9]*", MODE="0666"
重新插入USB轉串列埠裝置,普通使用者就有許可權訪問了。70-ttyusb.rules檔案還有另一種寫法,先用lsusb檢視USB轉串列埠晶片的idVendor和idProduct:
#lsusb
顯示結果中有這麼一行
Bus 005 Device 007: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
ID 0403:6001表示idVendor=0403,idProduct=6001
70-ttyusb.rules的內容如下:
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001",MODE="0666"
重新插入USB轉串列埠裝置,普通使用者同樣可以訪問了。
2、Ubuntu下的串列埠助手cutecom
安裝:
sudo apt-get install cutecom
開啟:
sudo cutecom
檢視電腦連結的串列埠資訊(名稱):
dmesg | grep ttyS*
初步使用串列埠助手測試:
傳送IMU自動輸出指令(使用自己的串列埠通訊裝置除錯):0xa515ba 讀取加速度原始資料。結果如圖所示: