樹莓派與arduino序列通訊
阿新 • • 發佈:2019-01-02
樹莓派與arduino都有一個序列口,都是TTL電平,可以直接連線。不同的是樹莓派是5V供電,而arduino是3.3V供電。
1、連線方式:
樹莓派的RX ----- arduino的TX
樹莓派的TX ----- arduino的RX
樹莓派的GND ----- arduino的GND
2、樹莓派序列口配置
樹莓派的串列埠在啟動時預設為控制檯,給SSH除錯使用,若要使用串列埠需要修改兩處檔案。
圖2 minicon介面 【3】minicom傳送內容 直接在控制檯中輸入內容即可,如果minicom打開了回顯可在控制檯中觀察到輸出內容,如果回顯關閉則控制檯中沒人任何反應,千萬不要以為minicom沒有正常工作。 【4】minicom回顯控制 先Ctrl+A,再E。可翻轉回顯狀態(原來回顯開啟則此事回顯關閉) 【5】minicom回顯關閉 先Ctrl+A,再Q。 4、樹莓派使用pyserial minicom僅滿足除錯用途,如果需要程式設計解決問題那麼python的serial擴充套件庫——pyserial則是一個不錯的選擇。pyserial模組非常好用,後面的文章還會分析如何使用pyserial控制GPRS模組。 【pyserial安裝】 安裝pyserial擴充套件庫有很多種方法,可使用pip或者easy_install安裝,也可以直接選擇apt-get工具安裝。 若使用apt-get工具安裝,可輸入以下指令 sudo apt-get install python-serial 【串列埠回顯程式】 非常簡單的一個串列埠程式,樹莓派通過串列埠返回接收的內容。
- # -*- coding: utf-8 -*
- import serial
- import time
- # 開啟串列埠
- ser = serial.Serial("/dev/ttyAMA0", 9600)
- def main():
- whileTrue:
- # 獲得接收緩衝區字元
- count = ser.inWaiting()
- if count != 0:
- # 讀取內容並回顯
- recv = ser.read(count)
- ser.write(recv)
- # 清空接收緩衝區
- ser.flushInput()
- # 必要的軟體延時
- time.sleep(0.1)
- if __name__ == '__main__':
- try:
- main()
- except KeyboardInterrupt:
- if ser != None:
- ser.close()