參考 王進德,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,含周邊組件。