• <strike id="aymay"></strike>
    <strike id="aymay"></strike>
    <ul id="aymay"><dfn id="aymay"></dfn></ul>
    <ul id="aymay"><sup id="aymay"></sup></ul>
  • <del id="aymay"></del>

    用Arduino擴展網絡攝像頭的I/O端口(附源代碼)

    2013-08-29 10:01 來源:電源網 作者:鈴鐺

    詳細說明

    如今網絡已極為普及了,幾乎家家都安裝了寬帶,手機也可以上網,而且帶寬水平也越來越高,網絡攝像頭也因此越來越受人青睞了。如今的網絡攝像頭,通過網絡可以向使用者傳輸視頻、音頻,支持多種的平臺,如網頁訪問、智能手機訪問,還有移動偵測報警、監控錄像或云臺控制等功能,而且不光有有線連接的,還有Wi-Fi無線連接的,安裝和使用極為方便,價格也很便宜,所以在家居、辦公等環境下的安防布置得到了廣泛的使用。

    一個朋友的小作坊也安裝了幾個網絡攝像頭,用于查看機器工作情況和安防,有一天他來找我,說他安裝的無線網絡攝像頭上有個報警器輸出I/O口,可以使用程序控制,還說要是多幾個I/O輸出就好了,這樣可以用來遠程控制一些設備上的電路。其實許多中低檔的網絡攝像頭都有一個報警輸出I/O口和一個報警輸入I/O口,有些會帶能輸出PTZ(云臺全方位控制)協議的串行端口,有少數產品還配有獨立的串行端口,可以傳輸數據。那么只有一個輸出端口,如何來控制多個開關量呢?下面來說一下我設計的一種解決方案。

    方案設計

    筆者使用的是國產某品牌的網絡攝像頭,型號是HS-733,外形小巧,看起來像個可愛的機器人。它除了可以使用網線連接,也可以通過Wi-Fi進行無線連接,具有一對報警輸入輸出端口和音頻輸出,自身帶有云臺,可以進行全方位的監控。它的設置和使用方法就不多說了,沒有特別之處,按使用說明就可以設置好了。

    報警輸出是一個常開的繼電器接口,使用程序可以控制它的開合,那么我們可以使用開和關讓它輸出一組二進制的編碼嗎?答案是肯定的。然后再使用電路對編碼進行譯碼,并做串并轉換轉成并口輸出。讀者朋友這時應該會想到通常串并轉換電路有時鐘和數據2個信號,缺一不可,只有一個端口如何做呢?其實只要數據線上的數據嚴格遵循時序要求,每個數據時序都有一樣的時間間隔,就可以做到單線串行傳輸。

    為了在網絡攝像頭的報警輸出端口產生串行數據,我使用廠家提供的OCX控件使用Delphi編寫了一個軟件對其功能函數進行調用,使得軟件可以在界面上控制攝像頭云臺的動作,也可以連接USB游戲手柄進行控制。還有8個虛擬開關用軟件精確地按照設定的時間間隔發送控制繼電器開合的指令,攝像頭通過網絡接收到指令后,就按要求開關繼電器,從而形成一組串行數據。因為網絡信號具有不確定性,信號的中斷可能造成指令的丟失,使得數據串數據錯誤,為了避免錯誤,我設定的數據串格式是1位起始碼后跟8位數據位,每一位為50ms,重復2遍發送,要求譯碼電路接收2次后,對2次數據進行對比,相等時才認為傳輸是正確的。輸出二進制數據時的示波器示顯示的波形如圖1所示。

    硬件連接

    譯碼電路我選用了Arduino UNO,對于這樣的簡單任務,Arduino是一個很好的選擇,編程方便快捷,調試也方便。電路的連接方式極為簡單,如圖2所示,只要將攝像頭輸出的信號接入到Arduino的8號端口即可,而0~7號端口則是輸出端口。為了方便測試,我在0~7號端口上連接了8個LED,限流電阻選用470Ω。0~7號端口對應電腦軟件上的虛擬開關,虛擬開關打開或關閉時,相對應的Arduino端口就處在低電平或高電平,虛擬開關可以直接在軟件界面上點擊控制,也可以連接游戲手柄,用手柄上的按鍵進行控制。實際使用時,可以在輸出端口上連接繼電器控制電路或其他控制電路,實現具體的控制。

    32120758_4


    圖1 輸出二進制數據時的示波器顯示的波形

    02


    圖2 攝像頭與Arduino的連接

    根據編碼規則,Arduino的解碼程序的流程可以這樣走:先判斷8號端口電平是否為高,如果不為高,則是攝像頭上的繼電器沒有閉合;如果為高,則說明繼電器動作了,首先輸出的是起始位,延時25ms,確認起始位后,進入存儲數據位的代碼段,因為每個位為50ms,所以每隔50ms采集一下,采集點正好位于方波的中心(見圖3)。經過8次采集,把數據移入一個字節的變量中,再進行第二次采集,并把數據移入另一個變量。當2個變量的值同時,說明數據接收正確。在這里只是使用了簡單的校驗方法,如果需要更加保險,可以再加個校驗字節,或者讓第二個字節為第一個字節的反碼。最后就是把接收下來的數據反映到0~7號端口進行輸出。

    03


    圖3 采集數據示意圖

    1 2 > 
    攝像頭 Arduino I/O端口

    相關閱讀

    暫無數據

    一周熱門

    主站蜘蛛池模板: 成人精品一区二区三区在线观看| 精品91自产拍在线观看二区| 无码精品一区二区三区在线| 青春草无码精品视频在线观| 人妻少妇精品系列| 亚洲精品无码久久一线| 人人妻人人澡人人爽人人精品97| 国产日韩精品欧美一区| 精品亚洲综合在线第一区| 成人午夜精品久久久久久久小说| 精品久久久久久无码中文野结衣| 久久夜色撩人精品国产小说| 亚洲日韩精品A∨片无码| 国产精品视频一区二区三区四| 99久久婷婷免费国产综合精品| 99爱在线视频这里只有精品| 巨大黑人极品VIDEOS精品 | 青青草原综合久久大伊人精品| 国产精品黄页免费高清在线观看| 欧美成人精品高清在线播放| 久久久无码人妻精品无码| 老司机国内精品久久久久| 久久久久国产精品三级网| 日产精品久久久久久久性色| 国产成人精品久久二区二区| 国产国产成人精品久久| 国产精品自在线拍国产手机版| 野狼精品社区| 国产精品影音先锋| 拍国产乱人伦偷精品视频| 成人午夜精品视频在线观看| 欧美精品播放| 大桥未久在线精品视频在线| 久久综合精品国产一区二区三区| 国精无码欧精品亚洲一区| 国产精品无码免费播放| 精品无码国产一区二区三区51安 | 久久精品免费一区二区三区| 欧美精品成人3d在线| 996久久国产精品线观看| 欧美精品在线免费|