衡阳派盒市场营销有限公司

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Ultra96上的實時攝像頭饋送網(wǎng)頁

Ultra96上的實時攝像頭饋送網(wǎng)頁

2023-06-29 | zip | 1.83 MB | 次下載 | 免費

資料介紹

描述

Ultra96v2 是用于無線應(yīng)用和物聯(lián)網(wǎng)項目的最佳 FPGA 開發(fā)板之一。當我一直在研究新的項目想法時,某種相機應(yīng)用程序不斷浮現(xiàn)在腦海中。所以我決定從一個帶有實時攝像頭的簡單網(wǎng)頁應(yīng)用程序開始。

適用于 Ultra96V2 的 Vivado/PetaLinux 2019.2 BSP

我在過去的一個項目中介紹了如何為 Avnet 板創(chuàng)建 BSP,該項目是在 MiniZed 上創(chuàng)建自定義 Web 服務(wù)器,因此您可以按照該項目操作并運行其中一個 make Ultra96v2 腳本,或者我還介紹了如何構(gòu)建新的 PetaLinux Ultra96v2 oob BSP的項目也是如此。我試圖讓這個項目成為我的第一個版本 2020.1 項目,但 PetaLinux 2020.1 根本不適合我,所以我必須再保存一天。該項目將是 Vivado、Vitis、XRT 和 PetaLinux 的所有版本 2019.2。

使用剛剛為 Ultra96v2 創(chuàng)建的 BSP 創(chuàng)建一個新的 PetaLinux 項目。

petalinux-create -t project -s //ultra96v2_oob_2019_2.bsp

將目錄更改為項目并構(gòu)建它。

cd ./ultra96v2_oob_2019_2
petalinux-build

如果由于 arduino-toolchain 包導(dǎo)致構(gòu)建失敗,請在此處查看我在過去項目中的修復(fù)

為 Ultra96v2 打包引導(dǎo)二進制映像 (BOOT.BIN)。

petalinux-package --boot --fsbl ./images/linux/zynqmp_fsbl.elf --fpga ./images/linux/system.bit --pmufw ./images/linux/pmufw.elf --u-boot

您也可以使用 PetaLinux 項目的“預(yù)構(gòu)建”目錄中的引導(dǎo)二進制文件、內(nèi)核和根文件系統(tǒng)。但是,如果您想將任何內(nèi)核驅(qū)動程序或根文件系統(tǒng)包添加到嵌入式 Linux 映像,則需要此方法。

準備 SD

使用至少 4GB 大小的 SD 卡,將 500MB 分區(qū),在其前面有 4MB 可用空間作為 FAT32。將 SD 卡上的剩余空間格式化為 EXT4。我個人更喜歡在 Ubuntu 中使用 Gparted GUI 來執(zhí)行此操作,但也可以從命令行輕松完成。

poYBAGN3KS6ABN3pAAA_q9J4_RQ126.png
?

如果您以前沒有,請為 SD 卡的兩個分區(qū)創(chuàng)建掛載點文件夾。一個用于引導(dǎo)分區(qū) (FAT32),另一個用于根文件系統(tǒng)分區(qū) (EXT4):

sudo mkdir /media/BOOT/
sudo mkdir /media/rootfs/

將 SD 卡分區(qū)掛載到相應(yīng)的掛載點文件夾:

sudo mount /dev/sdc1 /media/BOOT/
sudo mount /dev/sdc2 /media/rootfs/

將打包的根文件系統(tǒng)解壓到 SD 卡的 EXT4 分區(qū),然后立即運行“同步”命令,以確保所有數(shù)據(jù)都已寫入 SD 卡。

sudo tar -xf //ultra96v2_oob_2019_2/images/linux/rootfs.tar.gz -C /media/rootfs/
sync

將內(nèi)核映像、設(shè)備樹和啟動映像復(fù)制到 FAT32 分區(qū),然后立即再次運行“同步”命令。

sudo cp //ultra96v2_oob_2019_2/images/linux/BOOT.BIN /media/BOOT/
sudo cp //ultra96v2_oob_2019_2/images/linux/image.ub /media/BOOT/
sudo cp //ultra96v2_oob_2019_2/images/linux/system.dtb /media/BOOT/
sync

最后,在從 PC 上拔下 SD 卡之前先卸載它的分區(qū):

sudo umount /media/BOOT/
sudo umount /media/rootfs/

啟動 Ultra96v2

將 SD 卡安裝到 Ultra96v2 中并確認啟動開關(guān) (SW3) 設(shè)置為 SD 啟動(開關(guān) 1 = OFF,開關(guān) 2 = ON),然后按下電源按鈕 (SW4) 為開發(fā)板加電。

poYBAGN3KTKAKOdBAAUi1agWCBE340.png
Ultra96V2 拓撲
?

對于 Ultra96v2 的 UART 串??行控制臺,我使用 USB 到 JTAG/UART Pod 適配器板連接到 UART 和 JTAG 接頭(J1 和 J3)。

poYBAGN3KTaAJLglAAPKGAz5sJ8868.png
?

要將 Ultra96v2 連接到無線網(wǎng)絡(luò),2019.2 BSP 要求您使用 Wi-Fi 設(shè)置網(wǎng)頁選擇網(wǎng)絡(luò)并輸入憑據(jù)以登錄(按照入門指南第 24 頁第 13 節(jié)中的說明進行操作) Ultra96V2如果你不熟悉這個過程)。在收到添加網(wǎng)絡(luò)的成功消息后重新啟動 Ultra96v2,不要使用“檢查連接”按鈕。這只是我在 2019.2 BSP 中發(fā)現(xiàn)的一個小故障。

root@ultra96v2-oob-2019-2:~# reboot

我注意到在 Ultra96 的 2019.2 版本中,板子在啟動后實際連接到網(wǎng)絡(luò)有一點延遲,當它最初連接時,網(wǎng)絡(luò)配置也顯示本地分配的 IPV4 地址。這是我對 Ultra96 的唯一抱怨,我發(fā)現(xiàn)自己一直在努力建立穩(wěn)定的 Wi-Fi 連接。根據(jù)我的發(fā)現(xiàn),如果該網(wǎng)絡(luò)可用,該板將連接到 Wi-Fi 設(shè)置網(wǎng)頁所連接的最后一個網(wǎng)絡(luò)。

重新啟動 Ultra96v2 后,等待幾分鐘,然后通過 ping 您的 PC 或其他網(wǎng)站來測試網(wǎng)絡(luò)連接。我通常會嘗試 ping google.com以驗證外部互聯(lián)網(wǎng)連接。

root@ultra96v2-oob-2019-2:~# ping google.com

插入網(wǎng)絡(luò)攝像頭和初始化驅(qū)動程序

pYYBAGN3KTuAXibdAAYmPMY24x4479.png
?

將網(wǎng)絡(luò)攝像頭插入 USB A 型端口(J8 和 J9)之一,讓 Ultra96v2 嵌入式 Linux 映像檢測到它。發(fā)生這種情況時,您將看到來自 UART 的一些控制臺輸出。打印完成后,我們使用 usb-devices 命令顯示系統(tǒng)上的所有 USB 設(shè)備。

root@ultra96v2-oob-2019-2:~# usb-devices

將顯示所有 USB 總線的列表,包括實際的 USB 控制器和連接到它們的設(shè)備。通過查看列出的產(chǎn)品、供應(yīng)商和驅(qū)動程序,您可以了解系統(tǒng)是否已成功檢測到網(wǎng)絡(luò)攝像頭。

poYBAGN3KT6AHLMvAADrSFXqWLI917.png
?

現(xiàn)在系統(tǒng)已成功啟動并檢測到網(wǎng)絡(luò)攝像頭,我們可以繼續(xù)編寫 Python 腳本來使用它,并編寫自定義網(wǎng)頁來顯示來自它的圖像。

網(wǎng)絡(luò)應(yīng)用程序

OpenCV-Python 庫 (cv2) 僅在 Python3 中可用,并且 Ultra96v2 網(wǎng)頁中的自定義項目模板使用 Python 2.7 運行腳本,因此我使用自定義內(nèi)容頁面上的“創(chuàng)建項目”選項創(chuàng)建了腳本并測試了來自 Ultra96v2 的 UART 串??行控制臺的基本網(wǎng)絡(luò)攝像頭 Python 腳本,以便能夠使用 Python3 執(zhí)行它。

poYBAGN3KUWACp2oAAay8t5cjWs961.png
使用 Web 服務(wù)器作為 GUI 文本編輯器編輯腳本。
?
root@ultra96v2-oob-2019-2:/usr/share/ultra96-startup-pages/webapp/templates/CustomContent/custom# python3 ./webcamcapture.py

Web 應(yīng)用程序為控制 Web 攝像頭而執(zhí)行的此腳本只是為對網(wǎng)頁發(fā)出的每個 POST 或 GET 請求捕獲一張圖像。等待十分之一秒后,read() 函數(shù)觸發(fā)攝像頭捕獲圖像并將其讀入。這將返回一個元組(返回值,圖像),返回值指示捕獲是否成功以及捕獲的image 是返回的第二個參數(shù)

使用 cv2.imwrite() 函數(shù)將圖像寫入/usr/share/ultra96-startup-pages/webapp/static/images/目錄中的指定文件名single_frame.jpg 。

然后當處理完成后,釋放捕獲并使用 cv2.destoryAllWindows() 關(guān)閉為捕獲的圖像創(chuàng)建的窗口。

當腳本運行時,我的網(wǎng)絡(luò)攝像頭上的綠色狀態(tài)燈亮起,表明 Ultra96v2 已成功與其通信以捕獲圖像。

pYYBAGN3KUuATHx5AA37n8RXSbQ803.png
網(wǎng)絡(luò)攝像頭上的綠色狀態(tài)燈指示正在捕獲圖像。
?

對于 Web 應(yīng)用程序前端,我只是讓它顯示從網(wǎng)絡(luò)攝像頭捕獲的圖像,頁面每 10 秒刷新一次以顯示更新的圖像。

導(dǎo)航到 Ultra96 Web 服務(wù)器的 Custom Content 選項卡,然后選擇“Edit Webapp”選項。要為自定義網(wǎng)頁創(chuàng)建前端,請單擊“創(chuàng)建前端”按鈕,HTML 文本編輯器將出現(xiàn)。

前端代碼:

{% extends "Default/default.html" %}
{% block content %}

<div class="page-header">
  <h1 class="display-4"><b>{% block title %}USB Web Cam Feed{% endblock %}b>h1>
div>



<meta http-equiv="refresh" content="10">
<img src="{{ url_for('static', filename='images/single_frame.jpg') }}"/>



{% endblock %}
pYYBAGN3KVOAPpU3AAdf-qsOd4o994.png
?

添加前端 HTML 后,單擊“保存文件”按鈕并為文件指定名稱。保存文件后,單擊“返回”按鈕返回上一屏幕。

要為自定義網(wǎng)頁創(chuàng)建后端,單擊“創(chuàng)建后端”按鈕,文本編輯器將出現(xiàn)。后端是用 Python 編寫的,并且已經(jīng)填寫了基本代碼。唯一需要添加的是調(diào)用運行項目腳本以在每個請求上捕獲新圖像。

后端代碼:

@app.route("/webcam.html", methods=["GET", "POST"])
def webcam():
    if request.method == "POST":
        proc = subprocess.Popen('python3 /usr/share/ultra96-startup-pages/webapp/templates/CustomContent/custom/webcamcapture.py',stderr=subprocess.STDOUT,shell=True)
        err = proc.communicate()
        
        return render_template("CustomContent/custom_front_end/webcam.html")
    else:
        proc = subprocess.Popen('python3 /usr/share/ultra96-startup-pages/webapp/templates/CustomContent/custom/webcamcapture.py',stderr=subprocess.STDOUT,shell=True)
        err = proc.communicate()
        
        return render_template("CustomContent/custom_front_end/webcam.html")
pYYBAGN3KVmAdjBBAAdAvAodSTU660.png
?

再次單擊“保存文件”按鈕并為后端文件指定與為前端文件指定的名稱相同的名稱。保存文件后,單擊“返回”按鈕返回上一屏幕。

選中“Include”框,然后單擊“Reload Webapp”將新網(wǎng)頁添加到 Ultra96v2 上的 wevserver。

pYYBAGN3KWGAUIN5AAYKa1hBJ6U869.png
?

在重新加載網(wǎng)頁以包含新的自定義網(wǎng)頁后,我發(fā)現(xiàn) 2019.2 BSP 也包含與主 webserver.py 腳本在新網(wǎng)頁的 app.route 定義之前調(diào)用 main 函數(shù)相同的故障。因此,每次重新加載網(wǎng)絡(luò)應(yīng)用程序后,我仍然必須使用文本編輯器注釋掉 webserver.py 中對 main 的第一次調(diào)用。

root@ultra96v2-oob-2019-2:~# vi /usr/share/ultra96-startup-pages/webapp/webserver.py

如您所見,第 919 和 920 行對 main 的第一次調(diào)用需要注釋掉。

poYBAGN3KWeAExZ8AArGVCn3kcQ195.png
?

保存并退出文本編輯器后,手動重啟 Ultra96v2:

root@ultra96v2-oob-2019-2:~# shutdown -h now

然后使用電源按鈕 (SW4) 重新打開電路板電源。

導(dǎo)航回 Ultra96 Web 服務(wù)器的自定義內(nèi)容頁面,您會在新添加的網(wǎng)頁旁邊看到一個“查看”按鈕。

pYYBAGN3KXGAaa9SABLrKwIBcbY382.png
通常的貓照片炸彈...
?

單擊查看按鈕后,您將看到提要出現(xiàn),并且頁面每 10 秒自動刷新一次,并帶有更新的圖像。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1A7159和A7139射頻芯片的資料免費下載
  2. 0.20 MB   |  55次下載  |  5 積分
  3. 2PIC12F629/675 數(shù)據(jù)手冊免費下載
  4. 2.38 MB   |  36次下載  |  5 積分
  5. 3PIC16F716 數(shù)據(jù)手冊免費下載
  6. 2.35 MB   |  18次下載  |  5 積分
  7. 4dsPIC33EDV64MC205電機控制開發(fā)板用戶指南
  8. 5.78MB   |  8次下載  |  免費
  9. 5STC15系列常用寄存器匯總免費下載
  10. 1.60 MB   |  7次下載  |  5 積分
  11. 6模擬電路仿真實現(xiàn)
  12. 2.94MB   |  4次下載  |  免費
  13. 7PCB圖繪制實例操作
  14. 2.92MB   |  2次下載  |  免費
  15. 8零死角玩轉(zhuǎn)STM32F103—指南者
  16. 26.78 MB   |  1次下載  |  1 積分

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  452次下載  |  免費
  3. 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  141次下載  |  1 積分
  5. 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設(shè)計
  6. 0.10 MB   |  137次下載  |  免費
  7. 4A7159和A7139射頻芯片的資料免費下載
  8. 0.20 MB   |  55次下載  |  5 積分
  9. 5PIC12F629/675 數(shù)據(jù)手冊免費下載
  10. 2.38 MB   |  36次下載  |  5 積分
  11. 6如何正確測試電源的紋波
  12. 0.36 MB   |  19次下載  |  免費
  13. 7PIC16F716 數(shù)據(jù)手冊免費下載
  14. 2.35 MB   |  18次下載  |  5 積分
  15. 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統(tǒng)EMC試驗方法及要求
  16. 1.97 MB   |  8次下載  |  10 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
百家乐可以破解吗| 宝应县| 百家乐官网平台要多少钱| 联众百家乐官网的玩法技巧和规则 | 百家乐最好投注| 在线百家乐策| 南川市| 金矿百家乐官网的玩法技巧和规则 | 百家乐官网8点| 百家乐博之道娱乐城| 德州扑克网上平台| 百家乐官网真人游戏网上投注| 适合做生意的开运方法| 百家乐电子| 洪湖市| 百家乐开庄概率| 大发888在线娱乐城合营商| 百家乐官网下注几多| 爱拼百家乐官网的玩法技巧和规则| 百家乐透明出千牌靴| 贵南县| 百家乐赢法口诀| 亲朋棋牌官网| 长春百家乐官网的玩法技巧和规则| 老钱庄百家乐的玩法技巧和规则| 石渠县| 乐百家百家乐游戏| 申博娱乐城开户| 首席百家乐官网的玩法技巧和规则 | 申博百家乐官网有假吗| 百家乐大赌场娱乐网规则| 嫩江县| 百家乐怎么计算概率| 娱乐城注册送金| 24山向山摆设| 娱乐城注册| 刀把状的房子做生意| 百家乐代理合作| 帝王百家乐新足球平台| 南川市| 任我赢百家乐软件|