树莓派环境配置#
烧录镜像#
烧录完成,上电开机
开启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【注意大小写,我没写错】
-
如果不报错就说明安装成功了。