利用 Digilent Zybo FPGA 開發板設計虛擬觸控遊戲

     image 20190613 li5xx8jccl6g1

     

    利用 Zybo 設計一個虛擬觸控螢幕的有趣實作8~~ 以下將提供自定義硬體的逐步說明,讓您可以一邊使用強大的 Zybo 開發板,一邊使用相機與手指檢測在簡單的 TFT 顯示器上模擬觸控螢幕。

     

    前置作業

    硬體列表:

    • Digilent Zybo Board
    • Vivado 2014.1 Webpack
    • USB網路攝影鏡頭
    • VGA TFT顯示器
    • 2 個 Digilent JoyStick 模組
    • micro SD卡(至少4GB)
    • 鍵盤
    • 滑鼠
    • USB HUB

    所需軟體:

    • Xilyinx by Xilybus
    • OpenCV

     

    安裝操作系統

    第一步是在Zybo板上安裝操作系統。我們選擇的系統是 Xillybus 的 Xillinux ,它是針對 ZYNQ 開發平台,基於 Linux 的操作系統改進的 Ubuntu 12.04 發布版。

    首先,您需要下載兩個文件:

    • 適用於您的主板的啟動分區工具包
    • SD卡圖像

    下載之後的操作步驟可以參考:http://xillybus.com/downloads/doc/xillybus_getting_started_zynq.pdf

    啟動系統後,需要運行GUI,您必須輸入命令“startx”(不帶“”)並按Enter鍵(圖1)。你已加載GUI,可以繼續操作下一步(圖2)。

     

    15668150278

     

    安裝 OpenCV

    Open CV(開源計算機視覺庫)是一個開源的電腦視覺和機器學習軟體資料庫,為電腦視覺應用提供通用基礎設施。

    按照以下步驟完成安裝和配置 OpenCV 2.4.1。

    可以將每個步驟中顯示的命令直接複製並粘貼到Linux命令行中。要打開終端,請按alt + ctrl + t。

    1. 刪除所有已安裝的 ffmpeg 和 x264 版本。
    sudo apt-get remove ffmpeg x264 libx264-dev

    2.獲取 x264 和 ffmpeg 的所有相關項。
    sudo apt-get update
    sudo apt-get install build-essential checkinstall git cmake libfaac-dev
    libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11 -dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev

    3.下載並安裝 gstreamer。
    sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg

    4.下載並安裝 gtk。
    sudo apt-get install libgtk2.0-0 libgtk2.0-dev

    5.下載並安裝 libjpeg。
    sudo apt-get install libjpeg8 libjpeg8-dev

    6.創建一個目錄來保存源代碼。
    cd~ mkdir src

    7.下載並安裝 install x264。
    cd~ / src
    wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20050824-2219.tar.bz2
    tar xvf x264-snapshot-20120528-2245-stable.tar.bz2
    cd x264-snapshot-20120528-2245-stable

    8.配置和構建 x264 庫。
    ./configure --enable-shared --enable-pic make sudo make install

    9.下載 ffmpeg 版本0.11.1 鏈接:http://ffmpeg.org/download.html.
    cd~ / src
    wget http://ffmpeg.org/releases/ffmpeg-0.11.1.tar.bz2  
    tar xvf ffmpeg-0.11.1.tar.bz2
    cd ffmpeg-0.11.1

    10.配置和建立 ffmpeg。
    ./configure --enable-gpl
    --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable -libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-shared --enable-pic make
    sudo make install

    11.下載並安裝最新版本的v4l(適用於Linux的視頻)
    連結:http://www.linuxtv.org/downloads/v4l-utils/. (本項目使用的是 0.8.8版本)
    cd~ / src
    wget http://www.linuxtv.org/downloads/v4l-utils/v4l-utils-1.6.2.tar.bz2
    tar xvf v4l-utils-0.8.8.tar.bz2
    cd v4l-utils-0.8.8 make
    sudo make install

    12.下載並安裝安裝 OpenCV 2.4.2。
    連結: http://sourceforge.net/projects/opencvlibrary/files/
    cd~ / src
    wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.2/OpenCV-2.4.2.
    tar.bz2 tar xvf OpenCV-2.4.2.tar.bz2

    13.創建一個新的目錄並運行 cmake:
    cd OpenCV-2.4.2 /
    mkdir build
    cd build cmake -D CMAKE_BUILD_TYPE = RELEASE ..

    14.驗證 cmake 的輸出是否包含以下文件:
    found gstreamer-base-0.10GTK + 2.x:YESFFMPEG:YESGStreamer:YESV4L / V4L2:使用 libv4l 建立並安裝OpenCV。
    make
    sudo make install

    15.配置 Linux。透過輸入以下 shell 命令告訴 Linux OpenCV 的共享庫所在的位置:
    export LD_LIBRARY_PATH = / usr / local / lib

    16.將命令添加到.bashrc 文件中,這樣就不必在每次啟動新終端時都輸入。 或者,您可以配置系統範圍的搜尋路徑。使用您喜歡的編輯器,將包含文件/ usr / local / lib的單行添加到名為 /etc/ld.so.conf.d/opencv.conf 的文件末端。在標準的 Ubuntu 安裝中,opencv.conf 文件不存在; 你需要建立它。例如,使用 vi 輸入以下命令: 
    sudo vi /etc/ld.so.conf.d/opencv.conf 
    G
    Ø 
    / usr / local / lib 
    :wq!

    17.編輯 opencv.conf文件後,輸入以下命令:
    sudo ldconfig /etc/ld.so.conf

    18.使用您喜歡的編輯器,將以下兩行添加到 /etc/bash.bashrc 的末尾:
    PKG_CONFIG_PATH = $ PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH

    完成前面的步驟後,您的系統應該已準備好編譯使用 OpenCV 庫的代碼。
    以下示例顯示了為 OpenCV 編譯代碼的一種方法:
    g ++`pkg-config opencv --cflags` my_code.cpp -o my_code`pkg-config opencv --libs`

     

    開始遊戲

    該遊戲是一款基本的 8 位元乒乓球遊戲。這不是最終版本,設計中仍然存在一些錯誤,必須與手指檢測應用程序合併。屏幕上的紫色字段保留給 fingeres。此時,用鍵盤(左側球員- Q和A,右側球員- O和L)進行遊戲,您可以手動改變速度(S)。

    遊戲和手指檢測應用程序是分開設計的,其思路是手指檢測應用程序檢測紫色線上的手指,計算 y 座標,然後將該座標發送給遊戲應用程序,然後更新玩家平舖的位置。

    game.zip文件包含可以使用以下命令行編譯的源代碼:
    g ++`pkg-config opencv --cflags` test2.cpp -o game`pkg-config opencv --libs`

    你可以運行遊戲:
    ./game

     

    image 20190826 5d63b161af342

     

    手指監測

    使用網路攝影鏡頭,我們正在跟踪多個對象並在螢幕上計算它們的座標。這部分尚在開發中。此時所做的是跟踪這個簡單的藍色物體。我們也可以檢測並跟踪手指,但是你需要在 bo 上改變 bool 變量calibrationMode(第136行)。然後,當建立並執行程序時,將出現滑塊窗口,首先需要更改最小和最大 HUE 值以選擇要檢測的顏色。檢測到的對像在屏幕上顯示為白色。之後,您可以使用最小值和最大值 SATURATION 和 VALUE 來降低噪音。 如果將 calibrationMode 設置為 false,它將檢測藍色的對象。 finger.zip 文件包含源代碼。

     

    image 20190826 5d63b189330ee


    文章連結 │ 使用Digilent Zybo的虚拟触屏游戏项目的DIY动手指南
    程式碼下載  https://drive.google.com/file/d/189PW_L9ujhpYz8Al2f8T3pACYgEVKcEK/view?usp=sharing 

     

    和澄科技 Haley Technology

    電話 │ 886-3-5790380
    傳真 │ 886-3-5790370
    信箱 │ sales@haleytech.com
    地址 │ 新竹市關新路27號18樓之2

                  

     

     

    M有任何問題嗎? Line 我們最快! 

    產品搜尋