這不僅是廢物利用的環保理念,而且通過充分利用安卓手機的強大計算能力和硬件資源,讓網靈機器人的功能更加有亮點:
1)無需外接USB攝像頭,直接利用安卓手機的高清攝像頭,并通過手機強勁的GPU進行視頻H.264壓縮編碼,以便網絡傳輸。
2)利用安卓手機的聯網能力,wifi、3G、4G都可以聯網。并且集成了網靈的P2P云連接功能,從世界任何地方都可以連接機器人。
3)利用手機計算能力,實現語音識別,用自然語音控制機器人動作。
4)利用手機計算能力,基于OpenCV軟件庫,實現手勢分析和人臉追蹤。
原理介紹:
除了作為大腦的安卓手機外,網靈機器人還采用了Arduino單片機,用于控制電機舵機和連接傳感器模塊。
作為大腦的安卓手機 與 Arduino單片機是通過藍牙串口(例如市面上常見的HC-06)進行通信的,其通信協議很簡單,是基于字符串格式的,Arduino向安卓手機周期性發送傳感器讀數,安卓手機向Arduino發送控制命令。
網靈機器人的顯著特點是:可以用手機控制端和電腦控制端從異地遠程遙控機器人,并實時觀看攝像頭圖像。這個功能的實現是基于網靈的P2P云連接平臺,這是 網靈多年來積累的底層核心技術。只要機器人接入網絡,就可以從世界上的任何角落連接到機器人,無需設置路由器端口,無需做動態域名映射,完全自動穿透 NAT內網。
網靈機器人的控制端軟件就是 網靈云控制, 它相當于一個“帶視頻回傳的遠程遙控手柄”,有一些手柄按鍵和2個虛擬搖桿,其UI界面是這樣的:
機器人手勢識別和人臉追蹤是基于OpenCV開發的,源程序在Android代碼的jni目錄,只是搭了一個框架,拋磚引玉,歡迎創客們改進和擴展。。。
原材料和組件
1)方形卡通寵物外觀的紙巾盒 1個(淘寶上有售)
2)萬能手機夾 1個(淘寶上有售)
3)網靈機器人3D打印件 1套
4)Arduino控制板 + 藍牙小板 1塊
5)L298N電機驅動模塊 1塊
6)標準舵機 1個
7)電池電壓傳感器模塊 1個
8)可充電鋰電池 1塊
9)65mm輪子 + 電機(轉速不要太快,大概為50轉每分鐘) 2套
10)一寸萬向輪 1個
11)開關 1個
12)M3x30mm 長螺絲 4根,M3x25mm螺絲若干,M3x8mm螺絲若干,自攻螺絲若干,銅柱長螺絲 2根,M3螺母若干
13)杜邦線若干,導電線若干
工具
電烙鐵,電鉆,502膠,電膠布,鉗子,改錐,小刀
組裝步驟
首先,將紙巾盒的上下兩部分揭開,分為上面的盒子和下面的底蓋,先用盒子。
將3D打印件--手機夾左支架 和 手機夾右支架 用自攻螺絲固定到盒子上,如下圖,注意左右支架都要固定到盒子的最邊緣,否則后面步驟將沒有足夠的寬度放置手機夾。
準備好標準舵機,尺寸 40.7*19.7*42.9mm
用2個自攻螺絲把舵機固定到‘手機夾左支架’上面,如下圖:
從正面看看,
下面開始弄萬能手機夾,先把里面的一層透明塑料板拆下來,透明塑料板后面要用到,別扔了。
把一側的2片可活動塑料片調整一下位置,下方的一片將會固定到‘手機夾右支架’上。
將3D打印件--‘手機夾聯軸器’ 插到手機夾的凹槽處,如下圖所示:
注意,舵機配帶的一字擺臂是事先用自攻螺絲 固定到‘手機夾聯軸器’上,這個一字擺臂是將要插到舵機的轉軸上的。
準備將手機夾安放到 左右2個支架上去。一邊是:一字擺臂插到舵機的轉軸上。
另一邊是:用2個自攻螺絲將‘手機夾右支架’和手機夾的下方可活動塑料片 緊緊固定。
到此,盒子部分就準備好了。下面開始弄底蓋部分。
用M3x25mm的長螺絲 將2個3D打印件‘底盤車輪支架’固定到底蓋。
然后把3D打印件‘底盤萬向輪支架’也固定到底蓋。
反面看是這樣的:
用電鉆在底蓋上鉆2個孔:
一個直徑20mm, 用于裝開關;
另一個直徑9mm,用于裝充電接口;
然后用M3x30mm的長螺絲把2個車輪(帶電機)安裝到‘底盤車輪支架’上,兩對電機線4根從底蓋穿孔引到里面去;
用M3x8mm的螺絲把萬向輪安裝到‘底盤萬向輪支架’上。
在里面用螺絲固定3D打印件‘電池固定盒’,
然后安裝L298N電機驅動板,如下圖所示:
把2個長的M3銅柱螺絲裝上去,然后把之前拆下來的手機夾透明塑料板安裝到銅柱螺絲上,用2個螺母固定。
透明塑料板上的螺絲孔可以用電路鐵或電鉆弄出來。
把“Arduino+藍牙”控制板用螺絲固定到透明塑料板上,
把鋰電池安裝到‘電池固定盒’中:
換個角度看看:
把電池電壓檢測模塊小板 也安裝上去:
把鋰電池的DC母頭線安裝到 底蓋的充電孔中,用502膠固定;
把20mm直徑的開關安裝到 底蓋的開關孔中。
到此,底蓋部分要裝的也裝好了。(當然,后續如果你要往Arduino控制板上連接傳感器模塊的話,隨時可以揭開盒子連接線路?。?/p>
準備把紙巾盒上下兩部分蓋上:
OK,物理結構就組裝完畢了,大功告成?。?!
最后還可以在左右兩邊再裝上2個舵機,固定2個小手臂,機器人看起來會更萌。
電子電路模塊連接
當你把網靈機器人的物理結構組裝好后,那電路連接就很容易了。準備一些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
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
機器人
+關注
關注
211文章
28524瀏覽量
207532 -
L298N
+關注
關注
21文章
224瀏覽量
78715 -
安卓
+關注
關注
5文章
2134瀏覽量
57317 -
Arduino
+關注
關注
188文章
6472瀏覽量
187348
發布評論請先 登錄
相關推薦
評論