找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 32219|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

舊手機(jī)扔了太可惜?做個(gè)萌萌噠的機(jī)器人吧

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:98924 發(fā)表于 2015-12-9 05:40 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式


先給51黑電子論壇的朋友來(lái)個(gè)視頻吧:



編者注:本項(xiàng)目名叫“網(wǎng)靈機(jī)器人”,來(lái)自資深創(chuàng)客高華,創(chuàng)客項(xiàng)目的詳細(xì)情況發(fā)表在網(wǎng)靈極客論壇。2012年高華開(kāi)始接觸Arduino和智能硬件,之后也經(jīng)歷過(guò)硬件創(chuàng)業(yè),雖然沒(méi)有成功,但動(dòng)手和分享的樂(lè)趣并沒(méi)改變。本項(xiàng)目的所有電路結(jié)構(gòu)和源代碼都已經(jīng)開(kāi)源。硬創(chuàng)邦已經(jīng)取得了本文章的相關(guān)授權(quán),并對(duì)原文進(jìn)行了少量編輯,著作權(quán)歸原作者所有,商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
網(wǎng)靈機(jī)器人是一個(gè)特殊的機(jī)器人,Ta跟常見(jiàn)的wifi-robot不同。常見(jiàn)的wifi-robot大多采用Openwrt路由器板子和USB攝像頭,而網(wǎng)靈機(jī)器人采用閑置的安卓舊手機(jī)作為機(jī)器人的大腦。

重新利用廢舊手機(jī)不僅是廢物利用的環(huán)保理念,而且還能通過(guò)充分利用安卓手機(jī)的強(qiáng)大計(jì)算能力和硬件資源,讓網(wǎng)靈機(jī)器人的功能更加強(qiáng)大、更有亮點(diǎn):
  • 無(wú)需外接USB攝像頭,直接利用安卓手機(jī)的高清攝像頭,并通過(guò)手機(jī)強(qiáng)勁的GPU進(jìn)行視頻H.264壓縮編碼,以便網(wǎng)絡(luò)傳輸。
  • 利用安卓手機(jī)的聯(lián)網(wǎng)能力,WiFi、3G、4G都可以聯(lián)網(wǎng)。并且集成了網(wǎng)靈的P2P云連接功能,從世界任何地方都可以連接機(jī)器人。
  • 利用手機(jī)計(jì)算能力,實(shí)現(xiàn)語(yǔ)音識(shí)別,用自然語(yǔ)音控制機(jī)器人動(dòng)作。
  • 利用手機(jī)計(jì)算能力,基于OpenCV軟件庫(kù),實(shí)現(xiàn)手勢(shì)分析和人臉追蹤。
除了作為大腦的安卓手機(jī)外,網(wǎng)靈機(jī)器人還采用了Arduino單片機(jī),用于控制電機(jī)舵機(jī)和連接傳感器模塊。
作為大腦的安卓手機(jī)與Arduino是通過(guò)藍(lán)牙串口(例如市面上常見(jià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)——只要機(jī)器人接入網(wǎng)絡(luò),就可以從世界上的任何角落連接到機(jī)器人,無(wú)需設(shè)置路由器端口,無(wú)需做動(dòng)態(tài)域名映射,完全自動(dòng)穿透NAT內(nèi)網(wǎng)。
網(wǎng)靈機(jī)器人的控制端軟件就是網(wǎng)靈云控制,其UI界面是這樣的:
終上所述,網(wǎng)靈機(jī)器人的總體框架原理圖是這樣的:
原材料和組件
  • 方形卡通寵物外觀的紙巾盒1個(gè)(這是萌的關(guān)鍵,某寶上有賣)
  • 萬(wàn)能手機(jī)夾1個(gè)(某寶上有賣)
  • 網(wǎng)靈機(jī)器人3D打印件1套
  • Arduino控制板+藍(lán)牙小板1塊
  • L298N電機(jī)驅(qū)動(dòng)模塊1塊
  • 標(biāo)準(zhǔn)舵機(jī)1個(gè)
  • 電池電壓傳感器模塊1個(gè)
  • 可充電鋰電池1塊
  • 65mm輪子+電機(jī)(轉(zhuǎn)速不要太快,大概為50轉(zhuǎn)每分鐘)2套
  • 一寸萬(wàn)向輪1個(gè)
  • 開(kāi)關(guān)1個(gè)
  • M3x30mm長(zhǎng)螺絲4根,M3x25mm螺絲若干,M3x8mm螺絲若干,自攻螺絲若干,銅柱長(zhǎng)螺絲2根,M3螺母若干
  • 杜邦線若干,導(dǎo)電線若干
工具
  • 電烙鐵,電鉆,502膠,電膠布,鉗子,改錐,小刀
相關(guān)的代碼和程序點(diǎn)擊下面的鏈接下載(也可點(diǎn)擊這里查看原發(fā)布頁(yè)面):
組裝過(guò)程
首先,將紙巾盒的上下兩部分揭開(kāi),分為上面的盒子和下面的底蓋,先用盒子。將3D打印手機(jī)夾左支架和手機(jī)夾右支架用自攻螺絲固定到盒子上,如下圖,注意左右支架都要固定到盒子的最邊緣,否則后面步驟將沒(méi)有足夠的寬度放置手機(jī)夾。
準(zhǔn)備好標(biāo)準(zhǔn)舵機(jī),尺寸40.7*19.7*42.9mm;用2個(gè)自攻螺絲把舵機(jī)固定到手機(jī)夾左支架上面,如下圖:
下面開(kāi)始弄萬(wàn)能手機(jī)夾,先把里面的一層透明塑料板拆下來(lái),透明塑料板后面要用到,別扔了。把一側(cè)的2片可活動(dòng)塑料片調(diào)整一下位置,下方的一片將會(huì)固定到手機(jī)夾右支架上。將3D打印手機(jī)夾聯(lián)軸器插到手機(jī)夾的凹槽處,如下圖所示:
準(zhǔn)備將手機(jī)夾安放到左右2個(gè)支架上去。一邊是:一字?jǐn)[臂插到舵機(jī)的轉(zhuǎn)軸上。另一邊是:用2個(gè)自攻螺絲將手機(jī)夾右支架和手機(jī)夾的下方可活動(dòng)塑料片緊緊固定。
到此,盒子部分就準(zhǔn)備好了。下面開(kāi)始弄底蓋部分。
用M3x25mm的長(zhǎng)螺絲將2個(gè)3D打印件底盤(pán)車輪支架固定到底蓋,然后把3D打印件底盤(pán)萬(wàn)向輪支架也固定到底蓋。用電鉆在底蓋上鉆2個(gè)孔:一個(gè)直徑20mm,用于裝開(kāi)關(guān);另一個(gè)直徑9mm,用于裝充電接口。
然后用M3x30mm的長(zhǎng)螺絲把2個(gè)車輪(帶電機(jī))安裝到底盤(pán)車輪支架上,兩對(duì)電機(jī)線4根從底蓋穿孔引到里面去;用M3x8mm的螺絲把萬(wàn)向輪安裝到底盤(pán)萬(wàn)向輪支架上。
在里面用螺絲固定3D打印件電池固定盒,然后安裝L298N電機(jī)驅(qū)動(dòng)板,如下圖所示:
把2個(gè)長(zhǎng)的M3銅柱螺絲裝上去,然后把之前拆下來(lái)的手機(jī)夾透明塑料板安裝到銅柱螺絲上,用2個(gè)螺母固定。透明塑料板上的螺絲孔可以用電路鐵或電鉆弄出來(lái)。把“Arduino+藍(lán)牙”控制板用螺絲固定到透明塑料板上,把鋰電池安裝到電池固定盒中:
把電池電壓檢測(cè)模塊小板也安裝上去:
把鋰電池的DC母頭線安裝到底蓋的充電孔中,用502膠固定;把20mm直徑的開(kāi)關(guān)安裝到底蓋的開(kāi)關(guān)孔中。
到此,底蓋部分要裝的也裝好了。(當(dāng)然,后續(xù)如果你要往Arduino控制板上連接傳感器模塊的話,隨時(shí)可以揭開(kāi)盒子連接線路。(zhǔn)備把紙巾盒上下兩部分蓋上:
OK,物理結(jié)構(gòu)就組裝完畢了,大功告成!。
最后還可以在左右兩邊再裝上2個(gè)舵機(jī),固定2個(gè)小手臂,機(jī)器人看起來(lái)會(huì)更萌。而如果多做幾個(gè)看起來(lái)簡(jiǎn)直會(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,控制智能開(kāi)關(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
所有的東西都配置好了之后,就該是挑逗TA的時(shí)間了:



評(píng)分

參與人數(shù) 3黑幣 +18 收起 理由
huzuntao2013 + 5 很給力!
qjzyx + 5 贊一個(gè)!
蘆葦劫 + 8 很給力!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:79544 發(fā)表于 2015-12-11 16:25 | 只看該作者
樓主你好:有51的源碼嗎?再就是怎么獲得ID謝謝!
回復(fù)

使用道具 舉報(bào)

板凳
ID:70330 發(fā)表于 2015-12-21 08:39 | 只看該作者
贊,51hei有你更精彩
回復(fù)

使用道具 舉報(bào)

地板
ID:236970 發(fā)表于 2017-11-5 15:48 | 只看該作者
厲害。樓主你就是機(jī)器人的作者么?
回復(fù)

使用道具 舉報(bào)

5#
ID:277773 發(fā)表于 2018-1-19 16:24 | 只看該作者
厲害了
回復(fù)

使用道具 舉報(bào)

6#
ID:266116 發(fā)表于 2018-1-19 22:37 | 只看該作者
很好的一個(gè)想法~~~~~~改天也試試!
回復(fù)

使用道具 舉報(bào)

7#
ID:81444 發(fā)表于 2018-3-29 10:46 | 只看該作者
利用手機(jī)做機(jī)器人是個(gè)好的創(chuàng)意。
回復(fù)

使用道具 舉報(bào)

8#
ID:277420 發(fā)表于 2018-4-10 10:35 | 只看該作者
qjzyx 發(fā)表于 2018-1-19 22:37
很好的一個(gè)想法~~~~~~改天也試試!

利用手機(jī)做機(jī)器人是個(gè)好的創(chuàng)意。
回復(fù)

使用道具 舉報(bào)

9#
ID:162514 發(fā)表于 2018-4-12 05:30 | 只看該作者
這也行?
回復(fù)

使用道具 舉報(bào)

10#
ID:331493 發(fā)表于 2018-5-16 18:33 | 只看該作者
贊,51hei有你更精彩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表