網(wǎng)靈機(jī)器人采用閑置的安卓舊手機(jī)作為機(jī)器人的大腦。
這不僅是廢物利用的環(huán)保理念,而且通過(guò)充分利用安卓手機(jī)的強(qiáng)大計(jì)算能力和硬件資源,讓網(wǎng)靈機(jī)器人的功能更加有亮點(diǎn):
1)無(wú)需外接USB攝像頭,直接利用安卓手機(jī)的高清攝像頭,并通過(guò)手機(jī)強(qiáng)勁的GPU進(jìn)行視頻H.264壓縮編碼,以便網(wǎng)絡(luò)傳輸。
2)利用安卓手機(jī)的聯(lián)網(wǎng)能力,wifi、3G、4G都可以聯(lián)網(wǎng)。并且集成了網(wǎng)靈的P2P云連接功能,從世界任何地方都可以連接機(jī)器人。
3)利用手機(jī)計(jì)算能力,實(shí)現(xiàn)語(yǔ)音識(shí)別,用自然語(yǔ)音控制機(jī)器人動(dòng)作。
4)利用手機(jī)計(jì)算能力,基于OpenCV軟件庫(kù),實(shí)現(xiàn)手勢(shì)分析和人臉追蹤。
原理介紹:
除了作為大腦的安卓手機(jī)外,網(wǎng)靈機(jī)器人還采用了Arduino單片機(jī),用于控制電機(jī)舵機(jī)和連接傳感器模塊。
作為大腦的安卓手機(jī) 與 Arduino單片機(jī)是通過(guò)藍(lán)牙串口(例如市面上常見的HC-06)進(jìn)行通信的,其通信協(xié)議很簡(jiǎn)單,是基于字符串格式的,Arduino向安卓手機(jī)周期性發(fā)送傳感器讀數(shù),安卓手機(jī)向Arduino發(fā)送控制命令。
網(wǎng)靈機(jī)器人的顯著特點(diǎn)是:可以用手機(jī)控制端和電腦控制端從異地遠(yuǎn)程遙控機(jī)器人,并實(shí)時(shí)觀看攝像頭圖像。這個(gè)功能的實(shí)現(xiàn)是基于網(wǎng)靈的P2P云連接平臺(tái),這是 網(wǎng)靈多年來(lái)積累的底層核心技術(shù)。只要機(jī)器人接入網(wǎng)絡(luò),就可以從世界上的任何角落連接到機(jī)器人,無(wú)需設(shè)置路由器端口,無(wú)需做動(dòng)態(tài)域名映射,完全自動(dòng)穿透 NAT內(nèi)網(wǎng)。
網(wǎng)靈機(jī)器人的控制端軟件就是 網(wǎng)靈云控制, 它相當(dāng)于一個(gè)“帶視頻回傳的遠(yuǎn)程遙控手柄”,有一些手柄按鍵和2個(gè)虛擬搖桿,其UI界面是這樣的:
機(jī)器人手勢(shì)識(shí)別和人臉追蹤是基于OpenCV開發(fā)的,源程序在Android代碼的jni目錄,只是搭了一個(gè)框架,拋磚引玉,歡迎創(chuàng)客們改進(jìn)和擴(kuò)展。。。
原材料和組件
1)方形卡通寵物外觀的紙巾盒 1個(gè)(淘寶上有售)
2)萬(wàn)能手機(jī)夾 1個(gè)(淘寶上有售)
3)網(wǎng)靈機(jī)器人3D打印件 1套
4)Arduino控制板 + 藍(lán)牙小板 1塊
5)L298N電機(jī)驅(qū)動(dòng)模塊 1塊
6)標(biāo)準(zhǔn)舵機(jī) 1個(gè)
7)電池電壓傳感器模塊 1個(gè)
8)可充電鋰電池 1塊
9)65mm輪子 + 電機(jī)(轉(zhuǎn)速不要太快,大概為50轉(zhuǎn)每分鐘) 2套
10)一寸萬(wàn)向輪 1個(gè)
11)開關(guān) 1個(gè)
12)M3x30mm 長(zhǎng)螺絲 4根,M3x25mm螺絲若干,M3x8mm螺絲若干,自攻螺絲若干,銅柱長(zhǎng)螺絲 2根,M3螺母若干
13)杜邦線若干,導(dǎo)電線若干
工具
電烙鐵,電鉆,502膠,電膠布,鉗子,改錐,小刀
組裝步驟
首先,將紙巾盒的上下兩部分揭開,分為上面的盒子和下面的底蓋,先用盒子。
將3D打印件--手機(jī)夾左支架 和 手機(jī)夾右支架 用自攻螺絲固定到盒子上,如下圖,注意左右支架都要固定到盒子的最邊緣,否則后面步驟將沒有足夠的寬度放置手機(jī)夾。
準(zhǔn)備好標(biāo)準(zhǔn)舵機(jī),尺寸 40.7*19.7*42.9mm
用2個(gè)自攻螺絲把舵機(jī)固定到‘手機(jī)夾左支架’上面,如下圖:
從正面看看,
下面開始弄萬(wàn)能手機(jī)夾,先把里面的一層透明塑料板拆下來(lái),透明塑料板后面要用到,別扔了。
把一側(cè)的2片可活動(dòng)塑料片調(diào)整一下位置,下方的一片將會(huì)固定到‘手機(jī)夾右支架’上。
將3D打印件--‘手機(jī)夾聯(lián)軸器’ 插到手機(jī)夾的凹槽處,如下圖所示:
注意,舵機(jī)配帶的一字?jǐn)[臂是事先用自攻螺絲 固定到‘手機(jī)夾聯(lián)軸器’上,這個(gè)一字?jǐn)[臂是將要插到舵機(jī)的轉(zhuǎn)軸上的。
準(zhǔn)備將手機(jī)夾安放到 左右2個(gè)支架上去。一邊是:一字?jǐn)[臂插到舵機(jī)的轉(zhuǎn)軸上。
另一邊是:用2個(gè)自攻螺絲將‘手機(jī)夾右支架’和手機(jī)夾的下方可活動(dòng)塑料片 緊緊固定。
到此,盒子部分就準(zhǔn)備好了。下面開始弄底蓋部分。
用M3x25mm的長(zhǎng)螺絲 將2個(gè)3D打印件‘底盤車輪支架’固定到底蓋。
然后把3D打印件‘底盤萬(wàn)向輪支架’也固定到底蓋。
反面看是這樣的:
用電鉆在底蓋上鉆2個(gè)孔:
一個(gè)直徑20mm, 用于裝開關(guān);
另一個(gè)直徑9mm,用于裝充電接口;
然后用M3x30mm的長(zhǎng)螺絲把2個(gè)車輪(帶電機(jī))安裝到‘底盤車輪支架’上,兩對(duì)電機(jī)線4根從底蓋穿孔引到里面去;
用M3x8mm的螺絲把萬(wàn)向輪安裝到‘底盤萬(wàn)向輪支架’上。
在里面用螺絲固定3D打印件‘電池固定盒’,
然后安裝L298N電機(jī)驅(qū)動(dòng)板,如下圖所示:
把2個(gè)長(zhǎng)的M3銅柱螺絲裝上去,然后把之前拆下來(lái)的手機(jī)夾透明塑料板安裝到銅柱螺絲上,用2個(gè)螺母固定。
透明塑料板上的螺絲孔可以用電路鐵或電鉆弄出來(lái)。
把“Arduino+藍(lán)牙”控制板用螺絲固定到透明塑料板上,
把鋰電池安裝到‘電池固定盒’中:
換個(gè)角度看看:
把電池電壓檢測(cè)模塊小板 也安裝上去:
把鋰電池的DC母頭線安裝到 底蓋的充電孔中,用502膠固定;
把20mm直徑的開關(guān)安裝到 底蓋的開關(guān)孔中。
到此,底蓋部分要裝的也裝好了。(當(dāng)然,后續(xù)如果你要往Arduino控制板上連接傳感器模塊的話,隨時(shí)可以揭開盒子連接線路?。?/p>
準(zhǔn)備把紙巾盒上下兩部分蓋上:
OK,物理結(jié)構(gòu)就組裝完畢了,大功告成?。?!
最后還可以在左右兩邊再裝上2個(gè)舵機(jī),固定2個(gè)小手臂,機(jī)器人看起來(lái)會(huì)更萌。
電子電路模塊連接
當(dāng)你把網(wǎng)靈機(jī)器人的物理結(jié)構(gòu)組裝好后,那電路連接就很容易了。準(zhǔn)備一些3Pin杜邦線和導(dǎo)電線,按照下面的電路圖連接相應(yīng)的電路模塊:
可以看出,Arduino控制板的供電是由L298N電機(jī)控制板的5V輸出的。
電壓檢測(cè)模塊連接到Arduino的模擬口A5;頭部舵機(jī)連接到Arduino的數(shù)字口D9;
你后續(xù)也可以擴(kuò)展連接更多的傳感器,比如:
氣體傳感器MQ2連接到模擬口A4,溫濕度傳感器連接到數(shù)字口D8,
這些都是在Arduino的程序代碼中預(yù)定義好的,需要跟代碼對(duì)應(yīng):
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include 《Servo.h》
#include 《dht.h》
//模擬IO口和數(shù)字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 //紅外人體感應(yīng)傳感器
#define PIN_D_LEDA PIN_UNDEFINED //LED指示燈A
#define PIN_D_LEDB PIN_UNDEFINED //LED指示燈B
//PT2272 Recv,D0-》D3用模擬IO口實(shí)現(xiàn),因?yàn)锳rduino UNO的數(shù)字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,控制智能開關(guān)、智能插座、電動(dòng)窗簾。。。
#define PIN_D_315SEND 7 //PIN_UNDEFINED
#define PIN_D_433SEND PIN_UNDEFINED
//左中右三個(gè)方向的壁障傳感器pin定義
#define PIN_D_BIZ_C PIN_UNDEFINED
#define PIN_D_BIZ_L PIN_UNDEFINED
#define PIN_D_BIZ_R PIN_UNDEFINED
//L298N電機(jī)驅(qū)動(dòng)板的控制pin
//舵機(jī)用了9號(hào)PWM,L298N用10,11號(hào)PWM的話,會(huì)導(dǎo)致10號(hào)PWM失效?。?!
// motor A
#define dir1PinA 2
#define dir2PinA 10
#define speedPinA 3
// motor B
#define dir1PinB 12
#define dir2PinB 13
#define speedPinB 11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
機(jī)器人
+關(guān)注
關(guān)注
213文章
29607瀏覽量
212156 -
L298N
+關(guān)注
關(guān)注
21文章
224瀏覽量
79497 -
安卓
+關(guān)注
關(guān)注
5文章
2150瀏覽量
58526 -
Arduino
+關(guān)注
關(guān)注
189文章
6495瀏覽量
190449
發(fā)布評(píng)論請(qǐng)先 登錄
如何遠(yuǎn)程控制機(jī)器人?
簡(jiǎn)易DIY——巧用安卓手機(jī)做智能機(jī)器人
【分享】DIY android版手機(jī)機(jī)器人
開源DIY,Arduino+舊手機(jī)變成視頻監(jiān)控機(jī)器人,可異地遠(yuǎn)程遙控
如何做個(gè)萌萌噠的機(jī)器人?。?/a>
機(jī)器人,arduino,DIY
舊手機(jī) Arduino的巔峰之作—視頻監(jiān)控機(jī)器人 ,異地遠(yuǎn)程遙控
用Arduino調(diào)試Rapiro機(jī)器人
用安卓手機(jī)遠(yuǎn)程控制

由安卓智能手機(jī)控制的DIY Arduino機(jī)器人

DIY Arduino藍(lán)牙控制機(jī)器人

DIY安卓+Arduino控制迷宮游戲

評(píng)論