查看: 74159|回復: 241
打印 上一主題 下一主題

開源DIY,Arduino+舊手機制作視頻監控機器人,可異地遠程遙控

  [復制鏈接]

該用戶從未簽到

跳轉到指定樓層
樓主
發表于 2015-11-9 16:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 atemphot 于 2015-11-19 09:45 編輯

本人花費大半年時間,用Arduino+舊手機 做了一個視頻監控機器人,DIY成果分享一下。
說明,項目程序和源代碼都開放,3D打印部件的 3DSTL文件和設計源文件也開放,歡迎大家使用!


演示視頻:












網靈機器人是特殊的,Ta跟常見的wifi-robot不同。常見的wifi-robot大多采用OpenWRT路由器板子和USB攝像頭,而網靈機器人采用閑置的安卓舊手機作為機器人的大腦。
這不僅是廢物利用的環保理念,而且通過充分利用安卓手機的強大計算能力和硬件資源,讓網靈機器人的功能更加有亮點:
1)無需外接USB攝像頭,直接利用安卓手機的高清攝像頭,并通過手機強勁的GPU進行視頻H.264壓縮編碼,以便網絡傳輸。
2)利用安卓手機的聯網能力,wifi、3G、4G都可以聯網。并且集成了網靈的P2P云連接功能,從世界任何地方都可以連接機器人。
3)利用手機計算能力,實現語音識別,用自然語音控制機器人動作。
4)利用手機計算能力,基于OpenCV軟件庫,實現手勢分析和人臉追蹤。

除了作為大腦的安卓手機外,網靈機器人還采用了Arduino單片機,用于控制電機舵機和連接傳感器模塊。




作為大腦的安卓手機 與 Arduino單片機是通過藍牙串口(例如市面上常見的HC-06)進行通信的,其通信協議很簡單,是基于字符串格式的,Arduino向安卓手機周期性發送傳感器讀數,安卓手機向Arduino發送控制命令。






網靈機器人的顯著特點是:可以用手機控制端和電腦控制端從異地遠程遙控機器人,并實時觀看攝像頭圖像。這個功能的實現是基于網靈的P2P云連接平臺,這是網靈多年來積累的底層核心技術。只要機器人接入網絡,就可以從世界上的任何角落連接到機器人,無需設置路由器端口,無需做動態域名映射,完全自動穿透NAT內網。
網靈機器人的控制端軟件就是 網靈云控制, 它相當于一個“帶視頻回傳的遠程遙控手柄”,有一些手柄按鍵和2個虛擬搖桿,其UI界面是這樣的:












終上所述,網靈機器人的總體框架原理圖是這樣的:








Arduino源代碼:
wl_rob_arduino_src.zip (6.57 KB, 下載次數: 662)


安卓大腦源代碼比較大,超過附件大小限制,可以從網靈極客論壇下載。
支持我的朋友,可以回復留電子郵箱,直接發給你~~~~~~~~

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


機器人Arduino周邊電路連接就很容易。準備一些3Pin杜邦線和導電線,按照下面的電路圖連接相應的電路模塊:








可以看出,Arduino控制板的供電是由L298N電機控制板的5V輸出的。
電壓檢測模塊連接到Arduino的模擬口A5;頭部舵機連接到Arduino的數字口D9;
你后續也可以擴展連接更多的傳感器,比如:
氣體傳感器MQ2連接到模擬口A4,溫濕度傳感器連接到數字口D8,
這些都是在Arduino的程序代碼中預定義好的,需要跟代碼對應:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include <Servo.h>
#include <dht.h>

//模擬IO口和數字IO口的定義

#define PIN_UNDEFINED  255

#define PIN_A_VOLTAGE  5  //電池電壓傳感器
#define PIN_A_MQX      4  //氣體傳感器,MQ2,MQ135

#define PIN_D_SERVO_V  9
#define PIN_D_SERVO_H  PIN_UNDEFINED
#define PIN_D_SERVO_L  5  //PIN_UNDEFINED
#define PIN_D_SERVO_R  6  //PIN_UNDEFINED
#define PIN_D_DHT      8  //PIN_UNDEFINED  //DHT11溫濕度傳感器
#define PIN_D_RELAY    PIN_UNDEFINED  //一路繼電器
#define PIN_D_RED      PIN_UNDEFINED  //紅外人體感應傳感器
#define PIN_D_LEDA     PIN_UNDEFINED  //LED指示燈A
#define PIN_D_LEDB     PIN_UNDEFINED  //LED指示燈B

//PT2272 Recv,D0->D3用模擬IO口實現,因為Arduino UNO的數字IO口不夠用
#define PIN_D_2272VT   4
#define PIN_A_2272D0   0
#define PIN_A_2272D1   1
#define PIN_A_2272D2   2
#define PIN_A_2272D3   3

//315M、433M RF Send,控制智能開關、智能插座、電動窗簾。。。
#define PIN_D_315SEND   7  //PIN_UNDEFINED
#define PIN_D_433SEND   PIN_UNDEFINED

//左中右三個方向的壁障傳感器pin定義
#define PIN_D_BIZ_C     PIN_UNDEFINED
#define PIN_D_BIZ_L     PIN_UNDEFINED
#define PIN_D_BIZ_R     PIN_UNDEFINED

//L298N電機驅動板的控制pin
//舵機用了9號PWM,L298N用10,11號PWM的話,會導致10號PWM失效!!!
// motor A
#define dir1PinA    2
#define dir2PinA    10
#define speedPinA   3
// motor B
#define dir1PinB    12
#define dir2PinB    13
#define speedPinB   11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  • TA的每日心情
    開心
    2016-10-27 20:32
  • 簽到天數: 16 天

    [LV.4]偶爾看看III

    沙發
    發表于 2015-11-9 21:40 | 只看該作者
    沙發~~~
    好贊 ,樓主這么棒,關鍵是集成了這么多功能。
    剛好這學期有門智能機器人的選修課,就參考這個做些基礎的好了。
    樓主快把機器人大腦資料放到我碗里來。郵箱:[email protected]
    謝謝謝謝

    該用戶從未簽到

    板凳
    發表于 2015-11-10 00:03 | 只看該作者
    太牛叉了,新人報道。

    該用戶從未簽到

    地板
     樓主| 發表于 2015-11-10 09:13 | 只看該作者
    veraposeidon 發表于 2015-11-9 21:40
    沙發~~~
    好贊 ,樓主這么棒,關鍵是集成了這么多功能。
    剛好這學期有門智能機器人的選修課,就參考這個做些 ...

    已發到你郵箱,趕緊查收

    該用戶從未簽到

    5#
    發表于 2015-11-10 17:15 | 只看該作者
    這個機器人好眼熟 好像在某寶上見過 。因萌噠噠的 所以有印象。{:soso_e179:}給贊
  • TA的每日心情
    開心
    2016-10-27 20:32
  • 簽到天數: 16 天

    [LV.4]偶爾看看III

    8#
    發表于 2015-11-10 21:11 | 只看該作者
    atemphot 發表于 2015-11-10 09:13
    已發到你郵箱,趕緊查收

    不好意思 樓主我沒收到。要不你發我QQ郵箱?
    [email protected]
  • TA的每日心情
    開心
    2016-6-10 21:07
  • 簽到天數: 4 天

    [LV.2]偶爾看看I

    9#
    發表于 2015-11-10 22:17 | 只看該作者
    準備帶學生弄Arduino ,請樓主發一個源碼過來好嗎?[email protected]
  • TA的每日心情
    奮斗
    2016-12-30 20:43
  • 簽到天數: 1 天

    [LV.1]初來乍到

    10#
    發表于 2015-11-11 04:58 來自手機 | 只看該作者
    大牛啊!這個資料一定要弄一整套…請樓主順便再留個手機給我,有事相商:[email protected]
    您需要登錄后才可以回帖 登錄 | 立即注冊  

    本版積分規則

    熱門推薦

    Blynk與m5stack basic以及uiflow的交互玩法
    Blynk與m5stack basic以及
    Blynk與m5stack basic以及uiflow的交互玩法 [準備工作我們假設玩家已經熟悉下面的準備
    ADC模擬輸入讀取獨立按鍵值
    ADC模擬輸入讀取獨立按鍵
    在論壇H2O了這么久,給大家分享一個實用的小技巧!在使用按鍵與單片機進行人機交互時
    IIC 12864 OLED
    IIC 12864 OLED
    請問想通過u8glib庫 根據接收到的無線信號調用指針顯示冒號后的字符,該怎么寫代碼呢
    【原創】全球最小口袋3D打印機mini one直播教程貼
    【原創】全球最小口袋3D打
    最近閑得蛋疼,沒事搞個掌上3D打印機,先放效果圖吧。 搞了半天,終于能正常打印,
    好消息,免費版可以用小愛同學控制了
    好消息,免費版可以用小愛
    今天看到官方開發文檔里免費版多了一個小愛同學,測試了下可以控制,太棒了
    Copyright   ©2015-2016  Arduino中文社區  Powered by©Discuz!   
    快速回復 返回頂部 返回列表
    3d每天组六27个号必中