2020系统综合实践 树莓派初体验
一、每个人各自写出
林郁昊
- 认识程度:树莓派相当于一个小型的电脑,使用Linux系统,我了解的只有拍照录像等功能,以前在B站上看到一个用树莓派实现手写数字识别的视频。
- 电脑能做的大部分事情,在树莓派上都能做,而树莓派以其低能耗、移动便携性、GPIO等特性,很多在普通电脑上难以做好的事情,用树莓派却是很适合的。比如把树莓派配置成无线路由器,拿树莓派当FTP文件服务器等等。
黄宇航
- 我最早听到树莓派还以为是吃的···是不是没救了···
- 树莓派可以用来做什么哈哈哈想用树莓派的摄像头模块来做人脸识别!
二、系统烧录和备份
- 进入官网下载所需镜像:Raspbian Buster with desktop and recommended software
- 打开Win32DiskImager进行系统烧录
点击写入并等待即可 - 打开Win32DiskImager进行备份
三、访问树莓派
SSH登录Raspberry Pi
- 参考资料————Raspberry Pi 4B基本设置、查看连接到手机热点的ip地址。
- 首先在自己的电脑上创建两个文件,一个是ssh(空文件),另一个是wpa_supplicant.conf。
#wpa_supplicant.conf,priority越大,优先级越高
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="此处输入wifi接入点名称,保留引号"
psk="此处输入wifi密码,保留引号"
priority=1
}
network={
ssid="此处输入wifi接入点名称,保留引号"
psk="此处输入wifi密码,保留引号"
priority=2
}
- 然后将这两个文件放到SD卡的根目录下,将SD卡插回树莓派,开机。
- 由于本次用的是手机热点,所以要在手机上安装一个软件去查看树莓派的ip地址,方法在上面的参考资料中。
- 在windows中打开命令提示符,输入ssh ip地址 去登录。默认账号pi密码raspberry。
- 第一次我们尝试登录发现密码一直是错误的,后来才知道需要加上名称去登陆,用 ssh pi@ip地址 去登陆。
- 这次就登陆成功了,页面和ubuntu的命令窗口一样的。
VNC登录Raspberry Pi
- 参考资料————笔记本电脑当作树莓派的显示器、Raspberry Pi 4B基本设置
- 注意下载系统镜像时要选择带桌面的。首先在树莓派上开启VNC服务。
sudo raspi-config
- 这个就是进入后的页面。
- 之后根据参考资料中的博客一步一步配置就可以了,配置成功后会显示如图。
- 然后再去配置显示,配置完成后重启树莓派,在树莓派上的操作就完成了。
- 在本地的PC机上需要去下载VNC Viewer,下载地址VNC相关软件下载地址。
- 在进行安装、注册账户等一系列操作后,进行登录,需要填入ip地址,账号密码和刚才默认的一样。
- 登录进去就会显示树莓派的桌面。
- 进行语言、网络等设置后,测试网络。
- 为了方便之后软件的下载,将树莓派下载源换源。
sudo nano /etc/apt/sources.list
- 把原来的内容注释掉,加上以下内容。
deb https://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib
deb-src https://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib
- 之后执行下面命令更新。
sudo apt-get update
sudo apt-get upgrade
四、接入摄像头
树莓派有很多扩展接口,而摄像头也是其中一个非常重要的扩展部件,学习树莓派摄像头模块picamera的使用方法,实现使用python代码控制摄像头,以及通过vlc实时读取摄像头捕获的影像。
-
打开摄像头
sudo raspi-config
reboot即可
-
通过opencv实时读取摄像头捕获的影像。
# record.py
from picamera import PiCamera
import time
import datetime
camera = PiCamera()
camera.rotation = 180 # 旋转180度
time.sleep(5) # 摄像头感光
camera.start_recording('/home/pi/Desktop/record/video{}.h264'.format(datetime.datetime.now())) # 参数为文件路径
time.sleep(5) # 录制5秒
camera.stop_recording() # 停止录制
- 使用python代码控制摄像头
#opencvtest.py
import cv2
import datetime
cap = cv2.VideoCapture(0)
print(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
print(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
#cap.set(3, 3000)
#cap.set(4, 3000)
#print(cap.get(3))
#print(cap.get(4))
while(cap.isOpened()):
ret, frame = cap.read()
if ret == True:
font = cv2.FONT_HERSHEY_SIMPLEX
text = 'Width: '+ str(cap.get(3)) + ' Height:' + str(cap.get(4))
datet = str(datetime.datetime.now())
frame = cv2.putText(frame, text, (10, 50), font, 1,
(255, 255, 255), 2, cv2.LINE_AA)
frame = cv2.putText(frame, datet, (10, 100), font, 1,
(255, 255, 255), 2, cv2.LINE_AA)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()
import picamera
import time
#create object for PiCamera class
camera = picamera.PiCamera()
#set resolution
camera.resolution = (1024, 768)
camera.brightness = 60
camera.start_preview()
#add text on image
camera.annotate_text = 'Say Cheese!'
time.sleep(5)
#store image
camera.capture('image{}.jpeg'.format(time.time()))
camera.stop_preview()
五、记录遇到的问题和解决方法,提供小组成员名单以及在线协作的图片
- 使用frp进行内网穿透,想让其他小组成员访问树莓派,感受三倍的快乐
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linu
x_amd64.tar.gz
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
##frps.ini
[common]
# tunnel port通信管道
bind_port = 4000
# dashboard图形管理页面
dashboard_port = 90
dashboard_user = root
dashboard_pwd = admin
##frpc.ini
[common]
server_addr = [server_ip]
server_port = 4000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 8999
在运行./frpc -c ./frpc.ini指令时提示无法编译二进制文件,仔细一查
发现Raspberry Pi 4是32位系统,因此树莓派客户端应该下载:
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux——arm.tar.gz
-
小组成员名单与分工
- 111700312胡浩楠:负责查找相关资料指导操作
- 081700209林郁昊:负责编写代码
- 031701129黄宇航:负责实际操作
-
在线协作
-
一起观看教学视频
-
烧录
-
进入树莓派
-
进入树莓派图形界面
-