天天看點

Ubuntu18.04下使用Python實作序列槽通信前言基本資訊配置過程其他筆記參考資料

Ubuntu18.04下使用Python實作序列槽通信

  • 前言
  • 基本資訊
  • 配置過程
    • 序列槽調試軟體
    • 安裝serial庫
      • 1
      • 2
      • 3
    • 通信調試過程
    • 其他問題
  • 其他筆記
  • 參考資料

前言

Ubuntu18.04使用Python實作序列槽通信方案和之前那篇文章 基本相同,畢竟Jeston nano安裝的系統便是arm版本的Ubuntu18.04.

基本資訊

庫:Python的serial

硬體:電腦Ubuntu18.04系統、USB轉ttl、Jeston nano(做資訊接受發送)

配置過程

序列槽調試軟體

和Windos一樣,ubuntu下也有很多序列槽調試軟體,這裡我使用的是 CuteCom ;

您可以通過以下指令安裝它:

sudo apt-get install cutecom

CuteCom 界面:

Ubuntu18.04下使用Python實作序列槽通信前言基本資訊配置過程其他筆記參考資料

安裝serial庫

1

你可以直接在終端下通過pip安裝下載下傳

pip install pyserial

或者conda指令

conda install pyserial

Ubuntu18.04下使用Python實作序列槽通信前言基本資訊配置過程其他筆記參考資料

Note:如果您使用了anaconda,這裡要注意終端下的環境是哪一個,記得在您計劃使用的Python環境下使用pip指令;

2

你也可以直接在Pycharm編輯器下下載下傳,pyserial即是。

Ubuntu18.04下使用Python實作序列槽通信前言基本資訊配置過程其他筆記參考資料

3

測試是否安裝成功:

import serial

不報錯就可。

通信調試過程

硬體連接配接:

Ubuntu18.04下使用Python實作序列槽通信前言基本資訊配置過程其他筆記參考資料

測試結果:

電腦端:

Ubuntu18.04下使用Python實作序列槽通信前言基本資訊配置過程其他筆記參考資料

Jeston nano端:

Ubuntu18.04下使用Python實作序列槽通信前言基本資訊配置過程其他筆記參考資料

測試成功。

電腦Ubuntu18.04端代碼:

import time
import serial

print("UART Demonstration Program")
print("NVIDIA Jetson Nano Developer Kit")


serial_port = serial.Serial(
    port='/dev/ttyUSB0',
    baudrate=115200,
    bytesize=serial.EIGHTBITS,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
)
# Wait a second to let the port initialize
time.sleep(1)

try:
    # Send a simple header
    serial_port.write("UART Demonstration Program\r\n".encode())
    serial_port.write("NVIDIA Jetson Nano Developer Kit\r\n".encode())
    while True:
        if serial_port.inWaiting() > 0:
            data = serial_port.read()
            print(data)
            serial_port.write(data)
            # if we get a carriage return, add a line feed too
            # \r is a carriage return; \n is a line feed
            # This is to help the tty program on the other end
            # Windows is \r\n for carriage return, line feed
            # Macintosh and Linux use \n
            if data == "\r".encode():
                # For Windows boxen on the other end
                serial_port.write("\n".encode())


except KeyboardInterrupt:
    print("Exiting Program")

except Exception as exception_error:
    print("Error occurred. Exiting Program")
    print("Error: " + str(exception_error))

finally:
    serial_port.close()
    pass
           

其他問題

這裡有一個小問題

問題描述:

插上usb轉ttl,電腦不識别,但是有 /dev/ttyUSB0 這個檔案

Ubuntu18.04下使用Python實作序列槽通信前言基本資訊配置過程其他筆記參考資料

解決方法:

添權重限:

sudo chmod 666 /dev/ttyUSB0

Note:這裡 ttyUSB0 這個檔案不是一直都在的,您插上USB轉ttl它就有,拔下它就無了;所有你添加的權限伴随着它拔下就消失了,重新插回需要再添權重限。

另外如果插上USB轉ttl 不顯示 /dev/ttyUSB0,請參考這篇文章裝驅動:

https://blog.csdn.net/u010750137/article/details/57103002.

其他筆記

lsusb能檢視到所有通過USB接入的外設,如下圖,第一個為使用ch340晶片的USB轉ttl、第二個為我使用的聯想滑鼠、第三個為雷蛇鍵盤;

Ubuntu18.04下使用Python實作序列槽通信前言基本資訊配置過程其他筆記參考資料

lsmod | grep usbserial

​ lsmod(英文全拼:list modules)指令用于顯示已載入系統的子產品;grep 指令用于查找檔案裡符合條件的字元串;lsmod | grep 查詢目前系統是否加載了某些子產品。

ubuntu下切換原先python3.6版本和anaconda的python版本安裝庫:預設base是anaconda基礎的Python環境;

你可以使用以下指令激活anaconda環境:

conda activate

以下指令退出:

conda deactivate

檢視虛拟環境

conda-env list

激活虛拟環境

conda activate pythonProject

其中 pythonProject 為虛拟環境名。

參考資料

1、CSDN博文: Windows下使用Python實作序列槽通信.

2、CSDN博文: 英偉達Jeston nano<3>使用Python實作三種方式序列槽通信.

繼續閱讀