樹莓派環境配置#
燒錄鏡像#
燒錄完成,上電開機
開啟VNC
#
首選項 (preferences)-> 樹莓派設置 (Raspberry Pi Configuration)
選擇Interfaces
-> 打開VNC
的按鈕
開啟後使用 VNC 工具連接樹莓派,顯示虛擬桌面
開啟樹莓派硬件串口#
開啟GPIO
串口功能,並使用硬件串口
使用sudo raspi-config
進入圖形界面
選擇菜單 Interfacing Options -> 6 Serial
第一個選項(would you like a login shell to be accessible over serial?)選擇 NO
第二個選項(would you like the serial port hardware to be enabled?)選擇 YES
保存後重啟,查看映射關係 serial0 是 GPIO 引腳對應的串口,serial1 是藍牙對應的串口,默認未啟用 serial0。使用ls -l /dev/serial*
查看當前的映射關係:
比之前多了一個 gpio 的串口 serial0,並且使用的 ttyS0。這裡已經是開啟了 GPIO 串口功能,但是使用的 CPU 實現的軟件串口。
如果想使用穩定可靠的硬件串口,就要將樹莓派 3b + 的硬件串口與 mini 串口默認映射對換(先禁用藍牙 sudo systemctl disable hciuart
)。
在/boot/config.txt
文件末尾添加一行代碼 dtoverlay=disable-bt
,在命令行輸入
sudo systemctl disable hciuart
保存後重啟再查看設備對應關係ls -l /dev/serial*
,發現已經調換成功。看到 serial0 -> ttyAMA0 就是配置成功了。
串口接收測試#
接收數據 (回顯功能)
# -*- coding: utf-8 -*
import serial
import time
# 打開串口
ser = serial.Serial("/dev/ttyAMA0", 9600)
def main():
while True:
# 獲得接收緩衝區字符
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()
如果import serial
報錯,安裝python3-serial
模塊
sudo apt-get install python3-serial
串口發送測試#
import serial
import time
ser = serial.Serial("/dev/ttyAMA0", 9600)
ser.flushInput() # 位置2
ser.write("begin".encode("utf-8")) # 串口發送字符串begin
def main():
while True:
count = ser.inWaiting()
if count != 0:
recv = ser.read(count)
ser.write("Recv some data is : ".encode("utf-8"))
ser.write(recv)
ser.flushInput()
time.sleep(0.1)
if __name__ == '__main__':
main()
安裝虛擬鍵盤#
sudo apt-get install matchbox-keyboard
sudo apt-get install matchbox-keyboard --fix-missing
我們在下圖中可以看到成功安裝
樹莓派安裝 PyQt5#
-
更換軟件源 sudo nano /etc/apt/sources.list
-
更換這個軟件源 deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi
-
更新 sudo apt-get update
-
安裝 pyqt5 sudo apt-get install python3-pyqt5【注意大小寫,我沒寫錯】
-
啟動 python3
-
輸入 import PyQt5【注意大小寫,我沒寫錯】
-
如果不報錯就說明安裝成功了。