所需器材有:樹莓派及其電源,usb攝像頭,路由器,兩台伺服舵機及其外殼,一臺筆記本,一根網線 樹莓派的基本操作及學習網站與資料 "樹莓派實驗室" "樹莓派3代入門資料及安裝教程" 按照以上操作初始化樹莓派 樹莓派控制攝像頭進行視頻流傳輸,併在pc端接收視頻 推薦使用 "MJPG streamer" ...
所需器材有:樹莓派及其電源,usb攝像頭,路由器,兩台伺服舵機及其外殼,一臺筆記本,一根網線
- 樹莓派的基本操作及學習網站與資料
- 樹莓派實驗室
- 樹莓派3代入門資料及安裝教程
按照以上操作初始化樹莓派
- 樹莓派控制攝像頭進行視頻流傳輸,併在pc端接收視頻
- 推薦使用MJPG-streamer,在gitHub上面是一個開源的項目.
- 在樹莓派上面安裝如下庫:
- 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
- 使用git將遠端項目pull到本地
- sudo git clone https://github.com/jacksonliam/mjpg-streamer.git
- 編譯
- cd mjpg-streamer/mjpg-streamer-experimental
- make all
- sudo make install
- 使用
- ./start.sh
- 如果可以以桌面化的形式在pc上打開樹莓派系統,那麼可以在樹莓派系統的瀏覽器輸入http://raspberry-ip-address:8080/,即可以看見攝像頭採集的視頻信息
- 如果沒有以桌面化的形式打開樹莓派,可以在pc上的瀏覽器中輸入http://raspberry-ip-address/?action=stream,也可看見樹莓派採集的信息。raspberry-ip-address表示的是區域網中樹莓派的ip地址
- python通過GPIO控制舵機雲台的轉動
- 參考博客樹莓派 Raspberry Pi 基於 wiringPi庫 舵機控制
- 新建一個文件servo.py,代碼如下:
import RPi.GPIO as GPIO import time import signal import atexit import os import sys import tty, termios atexit.register(GPIO.cleanup) servopin = 22 servopin2 = 21 GPIO.setmode(GPIO.BCM) GPIO.setup(servopin, GPIO.OUT, initial=False) p = GPIO.PWM(servopin, 50) p.start(0) GPIO.setup(servopin2, GPIO.OUT, initial=False) p2 = GPIO.PWM(servopin2, 50) p2.start(0) time.sleep(2) i = 0 j = 0 while True: fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try: tty.setraw(fd) ch = sys.stdin.read(1) finally: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) if ch == 'a': if i - 10 >= 0: i = i - 10 p.ChangeDutyCycle(2.5 + 10 * i / 180) time.sleep(0.02) p.ChangeDutyCycle(0) time.sleep(0.2) if ch == 'd': if i + 10 < 181: i = i + 10 p.ChangeDutyCycle(2.5 + 10 * i / 180) time.sleep(0.02) p.ChangeDutyCycle(0) time.sleep(0.2) if ch == 'w': if j + 10 < 181: j = j + 10 p2.ChangeDutyCycle(2.5 + 10 * j / 180) time.sleep(0.02) p2.ChangeDutyCycle(0) time.sleep(0.2) if ch == 's': if j - 10 >= 0: j = j - 10 p2.ChangeDutyCycle(2.5 + 10 * j / 180) time.sleep(0.02) p2.ChangeDutyCycle(0) time.sleep(0.2) if ch == 'q': print "shutdown" break;
- 運行python servo.py,此時在pc端輸入WASD,樹莓派可以接受來自pc端的鍵盤方向控制信息,控制舵機雲台的轉動方向,輸入q退出程式。
- 外網控制
- cpolar
- 官網上說可以搭配noVnc使用,實現外網對於樹莓派的桌面化控制,具體內容之後補充
- cpolar