版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
参考 王进德,Raspberry Pi 入门与机器人实战,北京大学出版社,2018.07,TP316.85 229.
第六章 Python摄像头控制
- webcam网络摄像头。
- pi支持USB的网络摄像头,也有专门为相机预留的接口CSI(Camera Serial Interface)。
- 安装摄像头(lsusb指令查看当前USB口使用情况)
- 安装用于捕捉影像的工具fswebcam
$ sudo apt-get install fswebcam
使用举例:
创建output目录:
$ mkdir /home/pi/output
捕捉影像:
$ fswebcam -r 1280*960 --no-banner ~/output/camtest.jpg
- 可以用crontab指令创建循环工作制度,指令格式为:
min hour day month week /location/command 2>&1
编辑调度:
$ crontab -e
设置举例:(每一分钟和每五分钟,配合下方时间戳脚本食用)
* * * * * /home/pi/output/timelapse.sh 2>$1
*/5 * * * * /home/pi/output/timelapse.sh 2>$1
- 撰写时间戳脚本:
编写脚本程序:
$ sudo nano timelapse.sh
输入脚本程序内容:
离开nano编辑器,更改文件权限:#!/bin/bash DATE=$(date "+%Y-%m-%d_%H%M") # 获取当前系统时间 fswebcam -r 1280*960 --no-banner /home/pi/output/img_$DATE.jpg # 捕捉影像
$ chmod -x timelapse.sh
运行脚本的指令:
$ ./timelapse.sh
- 查看图片用xdg-open指令。
- 录制视频用avconv工具,安装:
$ sudo apt-get install libav-tools
使用举例:
$ avconv -f video4linux2 -r 25 -s 1280*960 -i /dev/video0 ~/output/test.avi
- 播放视频用omxplayer软件(Raspbian自带),比如:
$ omxplayer ~/output/test.avi
- Pygame包含一系列Python模块,可用来编写影音游戏。
import pygame import pygame.camera
- 连接Pi相机模块
用针软线连至CSI端口(断电连接)。
安装问题可参考网址:
https://www.raspberry.org/help/camera-module-setup/
随后在设置中启用相机模块,并重启Pi。 - 用raspistill捕捉影像,比如(查看指令参数可用–help):
$ raspistill -o ~/output/cam_module.jpg
在其后加-hf -vf参数,可将图像水平和垂直翻转;
加-t 2000 选项,可设置延时捕捉影像时间;
加-w 1024 -h 768指令,是分辨率约束(默认以最大分辨率捕捉)。 - 用raspivid用来录制视频,比如(捕捉5s):
raspivid -o ~/output/test.h264 -t 5000
- 缩时摄影
第七章 伺服马达控制
- 伺服马达,舵机,servo motor。
第十章 直流马达控制
- DC motor
- 转速特性。单位:r/min或rad/s。
r/min * 0.10472 = rad/s rad/s * 9.54929 = r/min
- 转矩特性。单位牛顿米Nm或千克重·厘米kgf·cm。
kgf·cm * 0.0980665 = Nm
- 电压特性。可以在额定电压50%~125%之间运行。
- 转速特性。单位:r/min或rad/s。
- 马达驱动芯片L298N
-
可驱动两个直流马达或一个步进马达。
-
驱动电压7~12V。内置78M05稳压芯片(JP1短接时启用)。
-
用INT和INT控制Motor A的控制逻辑:
ENA IN1 IN2 功能 H L H 右转 H H L 左转 H H H 停止 H L L 停止 L X X 停止 -
若要控制直流马达的转速,将PWM信号输入ENA脚即可。
-
- 其他马达驱动板比如RaspiRobot board V3,含周边组件。