比如我們做了個單片機,在win里面用串口調試助手接收和下發數據,那么在ubuntu里用ros怎么實現?換個說法,怎么實現上位機和下位機的通訊?
首先,用python自帶的庫就可以實現這個功能。
安裝pyserial,然后運行以下代碼:
1 import serial 2 3 serial = serial.Serial('/dev/ttyUSB0',115200,timeout=2) 4 5 while(1): 6 data = serial.read(1) 7 8 if serial.isOpen(): 9 print (data) 10 else: 11 print ('no open')
解讀一下:第三行設置為自己的端口號和波特率。
第六行是讀的數據大小,我這里只讀了一位,所以括號里寫了1.
serial.isOpen就是檢測串口是否打開的函數。
具體的serial庫有哪些功能函數請移步https://blog.csdn.net/wilylcyu/article/details/51840028?locationNum=7
以上就是最簡單的讀串口數據的方法,把這部分放在ros框架下就可以了。ros中也有這個serial庫,編譯安裝后使用即可。