烧录树莓派
给大家记录一下我是如何烧录树莓派的。
开始烧录之前,需要准备树莓派主板、读卡器、64gSD卡、树莓派充电器以及一台电脑。
先将SD卡格式化
然后在官方树莓派镜像烧录器上进行烧录,选择需要写入的操作系统和存储卡,接着一定要编辑设置,这是配置的关键。
配置如下:
设置中,填写树莓派登录名称和密码,以及WiFi名称和密码(我连接的是手机热点,是可以的),语言选择亚洲上海,CN,打开SSH服务,确认无误后就可以开始烧录了,这个过程可能有点慢,耐心等待,显示以下页面就说明成功了。
然后,打开手机热点,把SD卡插在树莓派上并接通电源,耐心等待,手机显示以下页面就说明连接成功。
查找树莓派IP地址
因为我没有插树莓派屏幕,所以我就选择用电脑控制树莓派,前提是电脑和树莓派连接同一WiFi(手机热点),想要电脑控制树莓派,就得知道树莓派的IP地址,我在网上找了好长时间,找到了一种很奇葩(可能是我学识不够,但当时是第一次了解)但很有效的方法:将我上传的压缩包压缩包下载到电脑上并解压缩,准备一根数据线,连接手机和电脑,打开手机的开发者模式(我的是oppo手机:设置->关于本机->版本信息->连续多按几次版本号)打开解压后的文件夹,上方栏输入cmd即打开终端,输入adb shell(打开手机的USB调试),成功打开后输入ip neigh,即可看到IP地址,要是分不清是哪一个,可以看一下手机热点界面的树莓派物理地址,然后对照即可,我的树莓派IP地址是192.168.136.210,这个一定要记住。
远程连接
下载并安装两个软件vncviewer和MobaXterm,对我来说,两者各有优点,vncviewer能够显示树莓派桌面,MobaXterm能够将电脑文件快速传输至树莓派。
电脑控制树莓派的前提是二者连接同一无线网(手机热点)。
先说MobaXterm_Personal,打开软件后,点击session->SSH,然后输入树莓派IP地址和名称,再点击ok后输入树莓派密码。
如果显示以下页面就说明连接成功。
之后,在MobaXterm中的树莓派终端中打开VNC server,即输入命令sudo raspi-config即可进入以下界面,键盘的上下左右键可控制移动,选择Interface Options->VNC并打开。
打开后按TAb键可选择下面的两个按键(finish是退出)退出此界面。
然后打开vncviewer,并输入IP地址后连接,然后输入树莓派的名称和密码后点击ok即可进入树莓派桌面。
桌面如下:
安装arduino IDE
因为我们实验室的项目要求是树莓派做上位机控制arduino uno做下位机,所以我还需要将树莓派和arduino开发板进行串口通信,我认为比较好的方法就是在树莓派上下载一个arduino IDE,操作如下:
首先,需要将树莓派上的串口设置打开,打开VNC viewer进入树莓派桌面,打开树莓派标识->首选项->树莓派配置,在配置中打开串口和终端串口。
配置完之后,在树莓派终端输入sudo apt-get install arduino
来安装arduino IDE,有问yes or no的直接选yes,接下来就是漫长的等待。
出现以下页面就说明成功。
然后打开VNC viewer进入桌面,点击树莓派标识->programming->Arduino IDE,即可打开arduino IDE,关于arduino IDE的使用和PC端使用情况一致,不做赘述。
安装opencv
我还需要让树莓派外接一个摄像头实现图像识别相关的功能,以下方法是我在csdn上看到的方法,也是找了好长时间才找到的。详细文章见此,我只是做了简化:原文章
首先查看自己的系统架构,打开树莓派终端,输入uname -m -> lsb_release -a,如果是下图界面,说明和我的系统架构一致,继续以下步骤,如果不是,下面的就不用看了,去看原文章吧。
接下来是换源,输入sudo nano /etc/apt/sources.list,将内容全部注释,粘贴以下内容:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
# deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# # deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
然后保存(Ctrl+O)并退出(Ctrl+X)。
接着换一个配置文件,输入以下:sudo nano /etc/apt/sources.list.d/raspi.list
,将其中内容全部注释,并粘贴以下内容:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9 6ED0E7B82643E131 F8D2585B8783D481 54404762BBB6E853 BDE6D2B9216EC7A8
更新系统:
sudo apt-get update
sudo apt-get upgrade
输入代码sudo apt-get install python3-opencv
安装opencv,耐心等待。
安装好之后,输入以下代码:
python3
import cv2
cv2.__version__
如果是以下效果就说明安装成功,输入exit()是退出
然后打开树莓派标识->programming->Thonny,并插上摄像头。
输入以下代码并点击运行
import cv2
import os
import sys
import contextlib
# Context manager to suppress stderr
@contextlib.contextmanager
def suppress_stderr():
with open(os.devnull, 'w') as devnull:
old_stderr = sys.stderr
sys.stderr = devnull
try:
yield
finally:
sys.stderr = old_stderr
# Initialize the camera
cap = cv2.VideoCapture(0)
# Check if the camera opened successfully
if not cap.isOpened():
print("Camera failed to open")
exit()
# Set the camera resolution
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
while True:
# Read a frame from the camera
ret, frame = cap.read()
# Check if the frame was read successfully
if not ret:
print("Failed to read frame")
break
# Display the frame
with suppress_stderr():
cv2.imshow('Camera', frame)
# Exit loop on 'q' key press
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Release the camera
cap.release()
# Close all OpenCV windows
cv2.destroyAllWindows()
运行时会出现类似于libpng warning: iCCP: known incorrect sRGB profile这样的报错,但不影响程序的运行,如果大家感兴趣可以自己研究研究原因。
这次的分享就到这里,如果对你有所帮助,还请不要吝啬你的点赞和收藏,这会对我有很大的帮助。