Facebook CEO 馬克·扎克伯格(Mark Zuckerberg)周末在 Facebook 個(gè)人頁面上撰文,公布了他 2016 年的一大目標(biāo):開發(fā)能控制家庭環(huán)境的人工智能技術(shù)。 以下是扎克伯格的文章全文: 每年,我都會(huì)接受個(gè)人挑戰(zhàn),學(xué)習(xí)新事物,在Facebook的工作以外獲得成長(zhǎng)。近年來,我設(shè)定的挑戰(zhàn)包括每月讀兩本書,學(xué)習(xí)中文,以及每天認(rèn)識(shí)一位新朋友。 2016年,我的個(gè)人挑戰(zhàn)是開發(fā)簡(jiǎn)單的人工智能技術(shù),控制家庭環(huán)境,并協(xié)助我開展工作。這類似于《鋼鐵俠》中的人工智能助手賈維斯。 最開始,我將了解市場(chǎng)上已有什么樣的技術(shù)。隨后,我將教會(huì)人工智能助手理解我的語音,以控制家中一切,包括音樂、照明和溫度等等。我將教會(huì)它識(shí)別朋友們的面部圖片,在朋友們按門鈴時(shí)讓他們進(jìn)入。我將教會(huì)它提醒我,當(dāng)我沒有陪伴著女兒麥柯斯時(shí),她的房間里是否發(fā)生了什么事需要我去查看。關(guān)于工作,它將通過虛擬現(xiàn)實(shí)實(shí)現(xiàn)數(shù)據(jù)可視化,幫助我開發(fā)更優(yōu)秀的服務(wù),更有效地領(lǐng)導(dǎo)我的組織。 每次挑戰(zhàn)都有一個(gè)主題,而今年的主題就是發(fā)明。 在Facebook,我花了很多時(shí)間與工程師們合作,開發(fā)新產(chǎn)品。深入了解技術(shù)項(xiàng)目的細(xì)節(jié)使我獲益良多。關(guān)于Internet.org,我們探討開發(fā)太陽能飛機(jī)和衛(wèi)星,提供互聯(lián)網(wǎng)接入服務(wù);關(guān)于Oculus,我們會(huì)了解所涉及的控制器或軟件的細(xì)節(jié);關(guān)于Messenger,我們討論通過人工智能回答你的問題。但自行開發(fā)產(chǎn)品將帶來完全不同的收獲。因此,今年我的個(gè)人挑戰(zhàn)就是去做這件事。 對(duì)我自己來說,編寫代碼是有趣的智力挑戰(zhàn)。我很期待,在經(jīng)過一年的學(xué)習(xí)后可以與你們分享。 by 扎克伯格 制作一個(gè)賈維斯那樣的機(jī)器人,自然不是一件容易的事,這篇文章也只是機(jī)器人教學(xué)入門,很難有“強(qiáng)大”的智能。但是像扎克伯格一樣去探索,去好奇,去挑戰(zhàn) 2016 的自己,是我們都可以做的事情。 你也可以@身邊的某人,讓Ta給你做一個(gè)可愛的機(jī)器人,這是2016年最浪漫的禮物了~ 教學(xué)全文 制作一個(gè)機(jī)器人只需要五步:組裝機(jī)器人;給機(jī)器人接線;連接電源 ;安裝Arduino軟件;給機(jī)器人編程。 你想要學(xué)習(xí)如何制作你自己的機(jī)器人嗎?有很多種可以DIY的機(jī)器人。大部分人想要讓一個(gè)機(jī)器人從A點(diǎn)移動(dòng)到B點(diǎn)。你完全可以通過模擬分量(analogue components)或者購買初學(xué)者工具包來制作機(jī)器人。制作機(jī)器人是自學(xué)電子學(xué)和計(jì)算機(jī)編程的一種非常好的方式。 第一步:組裝機(jī)器人 1.收集元件。為了制作一個(gè)基本的機(jī)器人,你將需要一些簡(jiǎn)單元件。你能從附近的業(yè)余愛好者商店或者在線零售店買到大部分元件(如果不是全部的話)。一些基本的工具包也可能包括所有的元件。這款機(jī)器人不需要很多的焊料。 Arduino UNO(或者其他的微控制器) 2個(gè)連續(xù)旋轉(zhuǎn)舵機(jī) 2個(gè)適合上述舵機(jī)的輪子 1個(gè)連鑄機(jī)輥 1個(gè)小型無焊料的試驗(yàn)電路板(要找一個(gè)每邊有兩個(gè)正負(fù)線的電路板) 1個(gè)遠(yuǎn)程傳感器(有四腳連接器電纜) 1個(gè)包含1個(gè)1萬歐姆的電阻的按鈕開關(guān) 1套線對(duì)板連接器 1個(gè)6 x AA的電池支架,包含一個(gè)9V DC插座 1包跨接線或者22 gauge的布線用電線 強(qiáng)力雙面膠帶或者熱粘接劑 2.翻轉(zhuǎn)電池支架,背面朝上。你將會(huì)用這個(gè)電池支架作為機(jī)器人身體的基礎(chǔ) 3.將兩個(gè)舵機(jī)與電池支架末端對(duì)齊。這應(yīng)該是電池支架的電線伸出來的末端。舵機(jī)應(yīng)該觸到底部,并且每個(gè)舵機(jī)的旋轉(zhuǎn)部分應(yīng)該在電池支架的兩邊。舵機(jī)被合理的對(duì)齊是很重要的,這是為了讓輪子放的直一些。端機(jī)的電線應(yīng)該從電池支架的背部出來。 4.用膠帶或膠水黏貼舵機(jī)。確定它們被牢牢地粘在一起。舵機(jī)的背部應(yīng)該和電池支架的背部緊緊地貼在一起。 舵機(jī)現(xiàn)在應(yīng)該占了電池支架背部的一半 5.將電路板平行貼在電池支架背部空下的區(qū)域上。它應(yīng)該距離電池支架前端有一點(diǎn)點(diǎn)距離,橫向在電池支架兩邊應(yīng)該露出一小部分。在下一步之前,確定它粘附的很牢。“A”排應(yīng)該很接近舵機(jī)。 6.將Arduino微控制器粘在舵機(jī)的頂部。如果兩個(gè)舵機(jī)放的很合適的話,應(yīng)該它們之間的接觸部分應(yīng)該有一段平的區(qū)域。將Arduino微控制器放在這部分區(qū)域上,以使Arduino的USB和電源線朝后(遠(yuǎn)離電路板)。Arduino的前端應(yīng)該剛剛與線路板有重疊。 7.將輪子裝在舵機(jī)上。將輪子緊緊的裝到舵機(jī)的旋轉(zhuǎn)部分中。這可能需要很大的力量,因?yàn)檩喿颖辉O(shè)計(jì)目的就是為了緊緊嵌入舵機(jī)來提供最大的牽引力。 8.將連鑄輥接在接線板底部。如果你把機(jī)身反過來,你應(yīng)該看到電路板露在外邊一點(diǎn)。將連鑄輥裝到露在外面的部分,必要的話使用冒口。連鑄輥的作用是前輪,方便機(jī)器人轉(zhuǎn)向。 如果你買了一個(gè)工具包,里面可能附帶了一些對(duì)應(yīng)連鑄輥的冒口,以保證連鑄輥接觸地面。 第二步:給機(jī)器人接線 1.改造兩個(gè)三腳連接器。你將用這些將舵機(jī)連到電路板上。移動(dòng)針部,讓兩邊距離相等。 2.插入兩個(gè)連接器到電路板E排的1-3插口和6-8插口。確定它們被牢牢的插入。 3.將舵機(jī)電纜連到連接器上,黑色電纜在左邊。(接到1口和6口上)。這會(huì)將舵機(jī)與電路板連接在一起。確定左邊的舵機(jī)連接到左邊的連接器上,右邊的舵機(jī)連接到右邊的連接器上。 4.紅色跨接線分別從C2針和C7針連到紅色導(dǎo)軌(正級(jí))針上。確定你用的是電路板后部的紅色導(dǎo)軌針(red rail)(靠近機(jī)身的其他部分區(qū)域的紅色導(dǎo)軌針)。 5.將黑色跨接線分別從B1針和B6針接到藍(lán)色導(dǎo)軌針(地線)上。確定你用的是電路板后部的藍(lán)色導(dǎo)軌針(blue rail pins)。不要插到紅色導(dǎo)軌針上。 6.白色跨接線從Arduino 的針12和針13連接到A3和A8上。這讓Arduino控制這些舵機(jī)和輪子。 7.將傳感器裝到電路板前面。它不能插到電路板的外部電源區(qū)域中,應(yīng)該插到第一排J行中。確定你精確地插到了中間區(qū)域,兩邊有數(shù)量相等的針數(shù)剩余。 8.黑色跨接線連接針I(yè)14和傳感器左側(cè)第一個(gè)可用的藍(lán)色針。這會(huì)讓傳感器接地。 9.黑色跨接線連接針I(yè) 17和傳感器右側(cè)第一個(gè)可用的紅色針。這給傳感器提供電力。 10.白色跨接線連接針I(yè) 15和Arduino上的針9,類似地,再連接針I(yè)16和針8。這將傳感器的信息提供給微控制器。 第三步:連接電源 1.翻轉(zhuǎn)機(jī)身,看到支架中的電池。讓其電池支架的電纜線從左下角伸出。 2.用紅色的電纜線連接左下角的彈簧。一定要確定電池支架放置正確。 3.用黑色電纜線連接右下角最后一個(gè)彈簧。這兩個(gè)電線給Arduino提供正確的電壓。 4.將上述紅色和黑色的電線連到電路板最右邊紅色和藍(lán)色的針上。黑色電線應(yīng)該插入到藍(lán)色導(dǎo)軌針的針30處。紅色電纜線應(yīng)該插到紅色電纜線的針30處。 5.黑色電線連接Arduino上的GND針和電路板后部的藍(lán)色導(dǎo)軌針。藍(lán)色導(dǎo)軌針處連接位置是針28. 6.一個(gè)黑色電線連接電路板后部的藍(lán)色導(dǎo)軌針和前部的藍(lán)色導(dǎo)軌針(位置均在針29處)。不要連接紅色導(dǎo)軌,因?yàn)槟菢雍芸赡軗p壞Arduino。 7.連接電路板前部的紅色導(dǎo)軌針(針30)到Arduino上的5V針。這將會(huì)給Arduino提供電力。 8.在兩排的間隔處pin24-26處插入按鈕開關(guān)。這個(gè)開關(guān)讓你不需要通過拔電源就能關(guān)閉機(jī)器人。 9.用一根紅色線連接H24和傳感器右側(cè)下一個(gè)可用的針。這會(huì)給按鈕提供電力。 10.用電阻連接H26和藍(lán)色導(dǎo)軌針。直接將電阻與針連接,并連到幾步之前用到的黑色線旁邊。 11.用一根白色線連接G26和Arduino的針2處。這讓Arduino在按鈕那里注冊(cè)。 第四步:安裝Arduino軟件 1.下載并提取Arduino IDE。這是Arduino的開發(fā)環(huán)境,這樣,你可以將指令編程并上傳到你的Arduino微型控制器中。你可以從arduino.cc/en/main/software網(wǎng)站中免費(fèi)下載它。解壓下載下來的文件,找到該文件夾,不需要安裝程序,只需要雙擊arduino.exe來運(yùn)行它。 2.將電池架連到Arduino上。給Arduino的連接器接上電池組來為其提供電力。 3.用USB將Arduino接入電腦。Windows很有可能不識(shí)別這個(gè)設(shè)備。 4.按下win+R,并輸入“devmgmt.msc”。這會(huì)調(diào)出設(shè)備管理器。 5.右擊在“其他設(shè)備”選項(xiàng)中的“未知設(shè)備”,并選擇“更新驅(qū)動(dòng)軟件”。如果你沒有看到這個(gè)選項(xiàng),點(diǎn)擊“屬性”,選擇“驅(qū)動(dòng)”標(biāo)簽,接著點(diǎn)擊“更新驅(qū)動(dòng)”。 6.選擇“瀏覽我的電腦來尋找驅(qū)動(dòng)軟件。”選擇Arduino IDE中自帶的驅(qū)動(dòng)軟件。 7.點(diǎn)擊“瀏覽”,接著找到你之前下載并解壓好的文件夾。你會(huì)在文件夾里找到一個(gè)名為“drivers”的文件夾。 8.選擇“drivers”文件夾,并點(diǎn)擊“確定”。如果你被警告“這是未知軟件”,確認(rèn)你想要繼續(xù)。 第五步:為機(jī)器人編程 1.雙擊IDE文件夾中的“arduino.exe”啟動(dòng)Arduino IDE。你會(huì)看到一個(gè)空白的工程。 2. 粘貼以下代碼來讓你的機(jī)器人可以走直線。以下的代碼將會(huì)讓你的Arduino不停地前進(jìn)。 3.構(gòu)建并上傳代碼。點(diǎn)擊左上角的“向右的箭頭”來將代碼構(gòu)建并上傳到USB連接著的Arduino。 你可能想要把機(jī)器人拿起來,因?yàn)橐坏┐a上傳好,它會(huì)繼續(xù)向前移動(dòng)。 4.增加關(guān)閉功能。增加代碼到源代碼的“void loop()”部分中來激活關(guān)閉功能。具體位置在“void loop()”中“write()”函數(shù)上面。 5.上傳并測(cè)試你的代碼。有了增加后的關(guān)閉功能,你可以上傳并測(cè)試機(jī)器人了。它應(yīng)該在你按下按鈕之前不停的前進(jìn),當(dāng)你按完后,它會(huì)停止。 |