树莓派学习教程
us_camera驱动下载地址
系统安装
DiskGenius:右键选择删除分区,点击保存更改
右键,建立新分区,保存更改
下载树莓派系统
通过WIn32_disk_imager向TF卡写入镜像(2021-05-07-raspios-buster-armhf)
在TF卡创建ssh文件
数据源的更新与配置
#使用管理员权限编辑/etc/apt/sources.list文件
sudo nano /etc/apt/sources.list
#用#注释掉原来的,将源更新为
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
#最后:Ctrl+O —— ENTER(回车)——Ctrl+X退出
#使用管理员权限编辑/etc/apt/sources.list.d/raspi.list文件
sudo nano /etc/apt/sources.list.d/raspi.list
#用#注释掉原来的,将源更新为
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
#最后:Ctrl+O —— ENTER(回车)——Ctrl+X退出
#数据源的更新与配置(TUNA源)
sudo apt-get update
sudo apt-get upgrade
命令
sudo raspi-config #配置
sudo shutdown -h now #关闭树莓派
sudo poweroff #关闭树莓派
if config #显示当前服务器IP
whoami #显示用户
cd #改变当前位置提供的命令
cat #显示一个文件的内容
mkdir #使用提供的文件夹路径创建一个新的文件夹
ls #显示当前位置的文件和文件夹
pwd #显示你所在位置的路径
sudo reboot #重启树莓派
sudo passwd pi #修改 pi 密码
sudo raspi-config #设置
df -h #验证磁盘是否已扩展
ls /dev/video* #查看摄像头设备
raspistill -v -o test.jpg #测试摄像头
lsusb #产看摄像头是否被识别
#fswebcam命令测试抓图,第一个参数是摄像头对应的设备文件路径,第二个参数是保存截图的路径。
sudo apt-get install fswebcam
fswebcam /dev/video0 ~/image.jpg
#摄像
sudo apt-get install luvcview
luvcview -s 1080x720
树莓派解压rar文件:
安装:sudo apt install p7zip-full
输入y
在压缩文件所在路径解压:7z x 文件名.rar
设定固定IP网络地址:
法一
教程
#因为树莓派使用动态的IP网络地址,查看树莓派IP地址
#查看IP地址段
ip route show
ifconfig
#设置IP
sudo nano /etc/dhcpcd.conf
#Ctrl+O —— ENTER(回车)——Ctrl+X退出
ping www.baidu.com
#中断ping命令:Ctrl + C
法二
右键点击Wi-Fi图标,点击无线与有线的网络配置
给树莓派安装中文环境和中文输入法
sudo apt-get install -y scim-pinyin #安装scim
sudo scim #会卡在starting scim...,重启系统后无需后续步骤也可。
#配置中文环境
#在Configuring locales窗口中,找到zh_CN.UTF-8 UTF-8空格选中,并在确认后再次选择zh_CN.UTF-8
sudo apt-get install -y ttf-wqy-zenhei #安装中文字库
sudo reboot #重启系统
#Ctrl+空格切换输入法
远程控制树莓派
SSH方式:通过putty软件实现(不需要屏幕)
#1 在树莓派通过ifconfig获取ip地址
#2 在putty软件输入ip地址连接
#3 输入用户名和密码,用户名:pi 密码:raspberry
sudo apt-get install xrdp #4 安装库
#5 远程桌面:用户名:pi 密码:raspberry
VNC方式(需要屏幕)
sudo raspi-config
#在Intefacing选项中开启VNC
#运行VNC并连接IP即可
树莓派改造为视频监控系统
#使用远程桌面
sudo apt-get install motion #安装
sudo motion #运行
#在服务器输入:localhost:8081或者192.168.1.121:8081
#使用树莓派屏幕
#远程访问
#开机启动
sudo nano /etc/default/motion
#将no修改成yes,Ctrl+o完成改写保存,Ctrl+x退出
start_motion_daemon=yes
sudo apt-get install wim #安装
sudo vim /etc/motion/motion.conf #启动
#搜索功能:Esc /或者Ctrl+w
#退出:Esc :wq
#daemon off 改成 on
daemon on
#设置分辨率
width 800
height 600
#每秒钟获得的帧数,2-100
framerate 15
#关闭 localhost 的限制
#修改stream_localhost on(只能在localhost下运行)为
stream_localhost off
#修改webcontrol_localhost on(将限制仅放置在localhost里)为
webcontrol_localhost off
#在服务器输入192.168.1.121:8081
2.8inch RPi LCD (A)
#安装
git clone https://github.com/waveshare/LCD-show.git
cd LCD-show/
sudo ./LCD28-show
#设置显示方向
cd LCD-show/
#X可选0、90、180和270。分别表示LCD旋转0度、90度、180度和270度。
sudo ./LCD28-show X
#在Raspbian-lite下的旋转命令如下:
cd LCD-show/
#X可选0、90、180和270。分别表示LCD旋转0度、90度、180度和270度。
sudo ./LCD28-show lite X
#安装校准软件进行校准
sudo apt-get install xinput-calibrator
#点击任务栏的Menu键,选择Preferences -> Calibrate Touchscreen
#如果要保存这些触摸值,需要在以下路径新建一个99-calibration.conf文件(如果已存在则不需要新建)
/etc/X11/xorg.conf.d/99-calibration.conf
#安装虚拟键盘
#HDMI显示
cd LCD-show/
./LCD-hdmi #sudo ./LCD-hdmi
5inch HDMI LCD (B)校准屏幕
#安装屏幕校准软件
sudo apt-get install xinput-calibrator
sudo apt-get install xserver-xorg-input-evdev
sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf
sudo reboot
用树莓派做动作监控器(CSI)
#通过远程桌面,启用CSI摄像头
sudo raspi-config
#选择:Interfacing Options——Camera Enable
#安装摄像头并测试,会在目录下生成testjpg
raspistill -v -o test.jpg
#新建目录文件picam
运行picam.py测试
python picam.py
树莓派+MJPGStream打造智能监控系统(USB)
sudo raspi-config
#camera,enable
#安装必要的库
sudo apt-get update
sudo apt-get install subversion
sudo apt-get install libjpeg8-dev
sudo apt-get install imagemagick
sudo apt-get install libv4l-dev
sudo apt-get install cmake
sudo apt-get install git
#下载开源MJPG STREAMER
sudo git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
sudo make all
sudo make install
./mjpg_streamer -i “./input_uvc.so” -o “./output_http.so -w ./www”
#如何让找到摄像头,在浏览器输入192.168.0.110:8080/?action=stream
#取消服务:Crtl+C
#设置视频参数
./mjpg_streamer -i “./input_uvc.so -f 30 -r 800x600" -o “./output_http.so -w ./www”
python2 opencv安装
#首先进行”数据源的更新与配置“参考上文
sudo nano /etc/modules
bcm2835-v4l2 再末尾添加
#先按键盘上的ctrl+o,再按回车保存,再按ctrl+x退出nano编辑器回到命令行界面。
sudo apt-get install libopencv-dev
sudo apt-get install python-opencv
#测试
python #或者python2
import cv2
cv2.__version__ #查看opencv版本号,输入
python3 opencv安装
方法1
pip3 install opencv-python
pip3 install opencv-contrib-python==4.1.0.25
sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev -y
sudo apt-get install libqtgui4
sudo apt-get install python3-pyqt5 -y
sudo apt-get install libqt4-test
sudo apt-get install libhdf5-dev -y
#测试
python3
import cv2
方法2
#0、更换源
sudo nano /etc/apt/sources.list
#用#注释掉原文件内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ contrib main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ contribmain contrib non-free rpi
#然后ctrl+o保存,点回车确认保存,然后ctrl+x退出
sudo nano /etc/apt/sources.list.d/raspi.list
#用#注释掉原文件内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
#然后ctrl+o保存,点回车确认保存,然后ctrl+x退出
sudo apt-get update
sudo apt-get upgrade
#1、安装numpy
sudo pip3 install numpy
#2、在树莓派设置中把根目录扩大到整个SD卡
sudo raspi-config
#选择Advanced Options,再选择Expand Filesystem——sudo reboot
#3、安装OpenCV所需的库
#需要更换为默认软件源#
sudo apt-get install build-essential git cmake pkg-config -y
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y
#4、下载OpenCV
#利用VNC传送下载好的opencv库#
#将opencv-4.1.0.zip和opencv_contrib-4.1.0.zip放在Downloads文件夹中,再解压库
cd /home/pi/Downloads
unzip opencv-4.1.0.zip
unzip opencv_contrib-4.1.0.zip
#创建存放设置编译参数和编译的文件夹
cd /home/pi/Downloads/opencv-4.1.0
mkdir build
cd build
#5、设置编译参数,时间15分钟左右
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-4.1.0/modules \
-D BUILD_EXAMPLES=ON \
-D WITH_LIBV4L=ON \
-D PYTHON3_EXECUTABLE=/usr/bin/python3.7 \
-D PYTHON_INCLUDE_DIR=/usr/include/python3.7 \
-D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \
..
#6、编译
cd /home/pi/Downloads/opencv-3.4.0/build
make
#等待5个小时
sudo make install
#7、在Python3上测试OpenCV
python3
import cv2
python编程
print("abc") #输出,单双引号均可
\u03c0 #圆周率
+\ #长输出换行
Ctrl+/ #批量注释
python常用快捷键
ctrl+r:替换
ctrl+F:查找
库安装
#linux、Ubuntu
#matplotlib
sudo apt-get install python3-matplotlib
#python3安装pyzbar
sudo pip3 install pyzbar
s
#python2 Non-ASCII character ‘\xe8‘ in file
#coding=UTF-8
#pip install
#windons
#安装opencv
exit() #退出
python -m pip install --user --upgrade pip #升级pip,在install后加--user
pip install opencv-python #安装
pip3 install pyqt5 #安装pyqt5
GPIO实验
led实验
VCC连接led的VCC
GPIO14连接PA0
PWM实验
import RPi.GPIO as GPIO
#指定GPIO口的选定模式为GPIO引脚编号模式
GPIO.setmode(GPIO.BOARD)
#指定GPIO口的选定模式为主板编号模式
#RPi.GPIO.setmode(RPi.GPIO.BOARD)
GPIO.setup(12, GPIO.OUT)
#创建一个 PWM 实例
#p=GPIO.PWM(channel, frequency) #frequency单位为Hz
p=GPIO.PWM(12, 0.5)
#启用 PWM
#p.start(dc) # dc 代表占空比(范围:0.0 <= dc >= 100.0)
p.start(1) #越小光越强
input('点击回车停止:') # 在 Python 2 中需要使用 raw_input
#停止 PWM
p.stop()
GPIO.cleanup()
#led正极接12脚,负极接11脚
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
GPIO.setup(12, GPIO.OUT)
p = GPIO.PWM(12, 50)
p11 = GPIO.PWM(11, 38)
p.start(0)
p11.start(0)
try:
while 1:
for dc in range(0, 101, 5):
p.ChangeDutyCycle(dc)
p11.ChangeDutyCycle(dc)
time.sleep(0.1)
for dc in range(100, -1, -5):
p.ChangeDutyCycle(dc)
p11.ChangeDutyCycle(dc)
time.sleep(0.1)
except KeyboardInterrupt:
pass
p11.stop()
GPIO.cleanup()
#更改频率
p.ChangeFrequency(freq) # freq 为设置的新频率,单位为 Hz
#更改占空比
p.ChangeDutyCycle(dc) # 范围:0.0 <= dc >= 100.0
PyQt
Opencv
cv2.resize
imread()
imwrite
图片处理,HSV、色调、亮度调节
对比度
亮度
Qt提供了QImage、QPixmap、QBitmap和QPicture四种图像操作类。
QImage类主要用于I/O和直接逐像素访问、操作;
QPixmap主要用于在屏幕中显示图像;
QBitmap是一个基于方便考虑继承自QPixmap的提供1bit深度二值图像的类;
QPicture是一个可以记录和响应QPainter类命令的画图设备。