基於樹莓派的遠程可控無線網路攝像頭的設計與實現

来源:https://www.cnblogs.com/sunshine-free/archive/2019/04/15/10709998.html
-Advertisement-
Play Games

所需器材有:樹莓派及其電源,usb攝像頭,路由器,兩台伺服舵機及其外殼,一臺筆記本,一根網線 樹莓派的基本操作及學習網站與資料 "樹莓派實驗室" "樹莓派3代入門資料及安裝教程" 按照以上操作初始化樹莓派 樹莓派控制攝像頭進行視頻流傳輸,併在pc端接收視頻 推薦使用 "MJPG streamer" ...


  • 所需器材有:樹莓派及其電源,usb攝像頭,路由器,兩台伺服舵機及其外殼,一臺筆記本,一根網線

  • 樹莓派的基本操作及學習網站與資料
  • 樹莓派控制攝像頭進行視頻流傳輸,併在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到本地
    • 編譯
      • 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控制舵機雲台的轉動
      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使用,實現外網對於樹莓派的桌面化控制,具體內容之後補充

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原文鏈接:https://www.entityframeworktutorial.net/entityframework6/custom-conventions-codefirst.aspx EF 6 Code-First系列文章目錄: 1 翻譯系列:什麼是Code First(EF 6 Code ...
  • 原文鏈接:https://www.entityframeworktutorial.net/code-first/cascade-delete-in-code-first.aspx EF 6 Code-First系列文章目錄: 1 翻譯系列:什麼是Code First(EF 6 Code First ...
  • Windows Server MySQL 遠程訪問 工作主要為兩部分, 一部分是 Windows 防火牆, 一部分是 MySQL 自身 Windows 埠遠程訪問 其實就是在 Windows 防火牆中加一條特定埠的入站規則 1. 控制面板→系統和安全→Windows防火牆 2. 點擊左側菜單中的 ...
  • 什麼是版本庫?什麼是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄裡面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原” 創建一個版本庫 添加文件到git倉庫 ...
  • 本篇文章作為Linux 入門的必備篇,主要簡述Linux系統目錄結構和Linux 基本Shell命令,大致內容如下: ​ ​ 一 Linux目錄及其概述 如下目錄為CentOS 7目錄結構 ​ 1.建立目錄 mkdir 該命令用來創建目錄。 (1)一次性創建一個目錄 mkdir mydir ​ (2 ...
  • 一、Docker的安裝和啟動 使用環境centos7 1. yum包更新到最新 2. 安裝需要的軟體包,yum util提供yum config manager功能 3. 設置yum源為阿裡雲 4. 安裝docker 5. 安裝查看docker版本 6. 設置 docker鏡象拉取提供者 7. 啟動 ...
  • 前提補充:linux下只要能夠mount存儲盤到目錄,則這個存儲盤必定是格式化過了的 NAS1、客戶端通過TCP/IP協議連接存儲伺服器的存儲捲。2、客戶端 網路交換機 存儲伺服器3、存儲伺服器可以實時看到每個存儲捲的使用率4、傳輸速度受限於網路以及存儲伺服器的文件系統處理速度5、文件系統在存儲短, ...
  • systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall開機啟動 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...