查看: 73882|回復: 238
打印 上一主題 下一主題

開源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, 下載次數: 660)


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

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


機器人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]
    您需要登錄后才可以回帖 登錄 | 立即注冊  

    本版積分規則

    熱門推薦

    為拍月亮而生的便攜望遠鏡系統。
    為拍月亮而生的便攜望遠鏡
    參賽項目: 便攜望遠鏡系統 參賽組員: 1人 布丁:嵌入式軟件、上位機軟件、電路、結
    基于機器視覺的智能分揀機械臂
    基于機器視覺的智能分揀機
    本作品是一個基于機器視覺的智能機械臂操作平臺,其采用atmega32單片機作為主控制系統
    小白求助
    小白求助
    也許我這個問題也許看起來有些幼稚。。。 還在入門的路上打滾,在看《愛上Arduino》這
    SpiderRobot 蜘蛛
    SpiderRobot 蜘蛛
    關于SpiderRobot 項目實行方案 之前有人推薦我做這個項目,于是乎就有了這個 h
    沒有合適的模塊,想到自己焊接芯片
    沒有合適的模塊,想到自己
    有些模塊沒有加工過的模塊銷售,想著自己要是能把芯片焊在一起也是一樣的。只是這個尺
    Copyright   ©2015-2016  Arduino中文社區  Powered by©Discuz!   
    快速回復 返回頂部 返回列表
    北京快乐8论坛