久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開始

搜索
查看: 16069|回復(fù): 7
收起左側(cè)

開源課程:Arduino創(chuàng)意機(jī)器人設(shè)計(jì)教程(Word文檔下載)

  [復(fù)制鏈接]
ID:450541 發(fā)表于 2018-12-20 10:28 | 顯示全部樓層 |閱讀模式

機(jī)器人教育融機(jī)械、傳感與控制等為一體,讓學(xué)生在手腦并用解決實(shí)際問題的過程中,有效地提高其邏輯思維能力、判斷能力、動(dòng)手能力和創(chuàng)新能力,是實(shí)施素質(zhì)教育的一個(gè)重要平臺(tái),十分有利于培養(yǎng)強(qiáng)國需要的高素質(zhì)人才。為推廣機(jī)器人教育,中國教育技術(shù)協(xié)會(huì)專業(yè)委員會(huì)啟動(dòng)了“機(jī)器人進(jìn)課堂”項(xiàng)目。該項(xiàng)目將在全國部分省市以地方課程或校本課程的形式開展機(jī)器人教育實(shí)驗(yàn),從試點(diǎn)開始逐步積累經(jīng)驗(yàn),擴(kuò)大影響,直至形成遍及全國的成熟的機(jī)器人教育課程。

溫州中學(xué)有幸成為“機(jī)器人進(jìn)課堂”項(xiàng)目的首批實(shí)驗(yàn)學(xué)校,于2011年開始實(shí)施基于Arduino的機(jī)器人課程。本電子教材配合“Arduino創(chuàng)意機(jī)器人”課程進(jìn)行使用,由浙江省溫州中學(xué)謝作如老師主編,南師大教育科學(xué)學(xué)院研究生張祿、張麗芳和劉正云三位同學(xué)一起參與編寫。作為面向中小學(xué)的Arduino選修課程,“Arduino創(chuàng)意機(jī)器人”設(shè)計(jì)了大量需要學(xué)生動(dòng)手實(shí)踐的任務(wù)或者實(shí)驗(yàn),引導(dǎo)學(xué)生在玩中學(xué)、做中學(xué)。

本電子教材共設(shè)計(jì)了22課,其中4節(jié)課為選學(xué)內(nèi)容。我們期望教師采用兩節(jié)課連上的方式,以9個(gè)專題18課時(shí)的形式展開教學(xué)。當(dāng)然,也可以采用單節(jié)課的形式,其中教材中的1課剛好為1課時(shí),根據(jù)學(xué)生的學(xué)習(xí)情況,適當(dāng)調(diào)整課時(shí)。如果有條件,建議增加幾個(gè)綜合創(chuàng)意的活動(dòng)課,讓課時(shí)增加到36。具體教材的課時(shí)安排請(qǐng)參考我們提供教學(xué)設(shè)計(jì)、教學(xué)課件、教學(xué)微視頻等資源。

為方便更多的學(xué)校開展教學(xué),也方便學(xué)生們根據(jù)網(wǎng)絡(luò)視頻、教材自學(xué),我們特意為“Arduino創(chuàng)意機(jī)器人”教材設(shè)計(jì)了學(xué)習(xí)套件,采用了Arduino中國代理商DFRobot公司的各種模塊,必選模塊的價(jià)格為600左右。你也可以根據(jù)器材清單,通過淘寶網(wǎng)的其他店鋪購買。根據(jù)研究進(jìn)程,我們將推出其他品牌的Arduino學(xué)習(xí)套件。

本電子教材的討論地址:blog.sina.com.cn/xiezuoru

Arduino創(chuàng)意機(jī)器人學(xué)習(xí)套件地址:www點(diǎn)dfrobot點(diǎn)com點(diǎn)cn


教材目錄
緒論 認(rèn)識(shí)機(jī)器人
第一章 智能LED
第1課 走進(jìn)Arduino的世界
第2課 閃爍LED
第3課 按鈕控制的LED
第4課 聰明的按鈕
第5課 呼吸燈
第6課 光控LED
第7課 LED綜合創(chuàng)意
第二章 智能風(fēng)扇
第1課 聲控風(fēng)扇
第2課 換擋風(fēng)扇
第3課 自動(dòng)變速風(fēng)扇
第4課 遙控風(fēng)扇
第5課 搖頭風(fēng)扇
第6課 自動(dòng)跟蹤風(fēng)扇
第7課 風(fēng)扇綜合創(chuàng)意
第三章 智能小車
第1課 走直線小車
第2課 跳8字舞的小車
第3課 避障小車
第4課 防跌落小車
第5課 巡線小車一
第6課 巡線小車二
第7課 小車綜合創(chuàng)意
附錄:Arduino機(jī)器人教學(xué)套件


緒論 認(rèn)識(shí)機(jī)器人

科技每時(shí)每刻都在悄然改變著我們的生活,機(jī)器人這個(gè)以前看似遙不可及的事物已經(jīng)慢慢融入了我們的日常生活中。什么是機(jī)器人?什么是智能機(jī)器人?怎么學(xué)習(xí)機(jī)器人技術(shù)?在緒論部分,我們將了解機(jī)器人,理解機(jī)器人的幾大主要組成部分以及它們的功能。
【任務(wù)導(dǎo)航】
認(rèn)識(shí)機(jī)器人的幾大主要組成部分及其功能。
了解機(jī)器人技術(shù)的發(fā)展。
【材料閱讀】
1.什么是機(jī)器人?
機(jī)器人(Robot)這個(gè)詞最早出現(xiàn)在上世紀(jì)初捷克科幻作家的一部叫做《羅索姆的萬能機(jī)器人》的小說中,在原文里本來是寫作“Robota”的,后來慢慢演變成了大家都接受的“Robot”一詞。不過,大家可別被機(jī)器人這個(gè)名字所誤導(dǎo),認(rèn)為機(jī)器人就一定長(zhǎng)得和我們?nèi)祟愑袔追窒嗨啤?shí)際上,機(jī)器人的外表千奇百怪,很多和我們?nèi)祟惖耐獗頉]有半點(diǎn)相似性可言。那么機(jī)器人是如何定義的呢?科學(xué)家們說,“機(jī)器人是一種自動(dòng)化的機(jī)器,能夠依靠自身的動(dòng)力和控制能力實(shí)現(xiàn)某種任務(wù),這種機(jī)器具備一些與人或生物相似的智能能力,如感知能力、規(guī)劃能力、動(dòng)作能力和協(xié)同能力等”。按照這個(gè)定義,我們?nèi)粘I钪忻刻於冀佑|到的很多機(jī)械設(shè)備,如:自動(dòng)售貨機(jī)、全自動(dòng)洗衣機(jī)、自動(dòng)取款機(jī)、甚至是紅外感應(yīng)的自動(dòng)沖水馬桶都能算是機(jī)器人了。看!機(jī)器人離我們的生活并不遠(yuǎn),對(duì)吧?
而智能機(jī)器人比起一般的機(jī)器人來又進(jìn)了一步。如果一個(gè)機(jī)器人能夠利用傳感器感知外部世界,然后依靠自身的智能對(duì)外界環(huán)境的變化做出反應(yīng),那么這種機(jī)器人就可以被叫做智能機(jī)器人了。
2.機(jī)器人的三大組成部分
根據(jù)機(jī)器人所需要完成的任務(wù)不同,它們的設(shè)計(jì)也是千差萬別,光從外貌很難看出規(guī)律。不過,如果我們仔細(xì)地對(duì)它們做個(gè)總結(jié)就會(huì)發(fā)現(xiàn),大多數(shù)的機(jī)器人無外乎包括下面的幾個(gè)部分,而且這幾大部件都和人類或動(dòng)物的身體器官能夠一一對(duì)應(yīng)呢!
機(jī)器人的大腦——主控制器
和我們?nèi)祟惖拇竽X一樣,機(jī)器人的大腦——主控制器,是機(jī)器人最核心的部件。我們?yōu)闄C(jī)器人編寫的各種控制程序和人工智能程序都要運(yùn)行在主控制器中。由機(jī)器人的傳感器得到的眾多的外界環(huán)境信息在這里得到匯總,然后控制器中的人工智能程序就會(huì)對(duì)這些信息進(jìn)行處理,再隨之給各種驅(qū)動(dòng)器、執(zhí)行器發(fā)出控制命令。機(jī)器人就是以這種方式去執(zhí)行各種各樣實(shí)際的任務(wù)了。
那么主控制器具體是什么東西呢?實(shí)際上,它就是一種計(jì)算機(jī)而已。這里的計(jì)算機(jī)是一個(gè)相當(dāng)寬泛的概念,它們可不僅僅是指我們家里每天用的個(gè)人電腦。除了個(gè)人電腦外,還有其它形形色色的各種計(jì)算機(jī),小到只有同學(xué)們指甲蓋大小的單片機(jī)(MCU),大到要裝滿幾個(gè)大房間的超級(jí)計(jì)算機(jī)。而這些計(jì)算機(jī)中最廣泛被用作機(jī)器人控制器的還是要數(shù)單片機(jī)了。同學(xué)們可以想一想,如果我們要制造一臺(tái)全自動(dòng)洗衣機(jī)——前面說過了全自動(dòng)洗衣機(jī)也是一種機(jī)器人——那么用上一臺(tái)個(gè)人電腦去做控制器,是不是就有些“殺雞用牛刀”了呢?這種時(shí)候,單片機(jī)就可以大展拳腳了。單片機(jī)是典型的“麻雀  雖小,五臟俱全”。一片小小的單片機(jī)中就包括了中央處理器、存儲(chǔ)器、定時(shí)器、數(shù)字輸入/輸出接口、模擬輸入/輸出接口等。本書中所使用的機(jī)器人的主控制器就是以一個(gè)單片機(jī)為核心的,它的計(jì)算能力說出來可能會(huì)嚇同學(xué)們一跳,小小的一片單片機(jī)一秒鐘能做上千萬次的運(yùn)算呢!
機(jī)器人的眼睛、耳朵和觸角——傳感器
如果機(jī)器人只能按照我們編好的程序指令有一是一,有二是二地行動(dòng),會(huì)不會(huì)就顯得太“笨”了呢?科學(xué)家們?cè)缇拖朕k法讓機(jī)器人具備了更高的智能,讓它們能夠根據(jù)環(huán)境的變化做出反應(yīng)。比如說,現(xiàn)在已經(jīng)有服務(wù)機(jī)器人可以根據(jù)主人家里的溫度變化調(diào)節(jié)空調(diào)、暖氣,讓主人一直處于舒適的環(huán)境中。再比如說,在國外的一些博物館中已經(jīng)有導(dǎo)游機(jī)器人為人們服務(wù)了,它們能不知疲倦地帶領(lǐng)你進(jìn)行參觀并且進(jìn)行講解。但是在博物館中,人來人往,導(dǎo)游機(jī)器人怎么能夠防止自己撞上其他游客呢?這些能力就要靠“傳感器”來實(shí)現(xiàn)了。傳感器就像是我們?nèi)祟惖难劬Α⒈亲印⒍浠蚴莿?dòng)物的觸角、聲納。它們可以將環(huán)境中的聲、光、電、磁、溫度、濕度等物理量轉(zhuǎn)化為機(jī)器人的大腦——控制器可以處理的電信號(hào)。控制器通過讀取這些電信號(hào)就可以很快知道周圍發(fā)生了什么,然后其中的智能程序就可以根據(jù)周圍環(huán)境的變化,做出實(shí)時(shí)的響應(yīng)了。
機(jī)器人的手、足——驅(qū)動(dòng)器和執(zhí)行器
前面所舉的機(jī)器人的例子,如智能抽水馬桶、全自動(dòng)洗衣機(jī)等,都是沒有移動(dòng)能力的機(jī)器人。但是想想看,會(huì)跑的機(jī)器人也許能更好地幫助人類,我們可不想家里的智能管家機(jī)器人只能呆在一個(gè)房間中,對(duì)吧?因此,人們制造了一大類可以自由運(yùn)動(dòng)的機(jī)器人,它們被稱作移動(dòng)機(jī)器人。而幫助它們移動(dòng)的機(jī)械和電子設(shè)備就叫做驅(qū)動(dòng)器。同樣,機(jī)器人的驅(qū)動(dòng)器也是五花八門。大多數(shù)機(jī)器人就像我們?nèi)粘I钪谐R姷母鞣N車輛一樣,是用輪子或者履帶運(yùn)動(dòng)的。也有機(jī)器人應(yīng)用仿生學(xué)原理,像人或動(dòng)物一樣用兩足、四足或六足的方式運(yùn)動(dòng)。還有的機(jī)器人可以用螺旋槳產(chǎn)生的推力翱翔在天空,可以像蛟龍一樣自由地潛入水下。看,有了驅(qū)動(dòng)器的幫助,是不是機(jī)器人變得上山下海,無所不能了呢?
機(jī)器人的結(jié)構(gòu)中用來實(shí)際完成特定任務(wù)的裝置就被叫做執(zhí)行器,比如自動(dòng)售貨機(jī)中,把貨物取出交給顧客的裝置就是執(zhí)行器。還有一些機(jī)器人的執(zhí)行器更加復(fù)雜,也看起來更像是人類的手臂。現(xiàn)代工廠中的焊接機(jī)器人、噴漆機(jī)器人、碼垛機(jī)器人就都有一只靈活、強(qiáng)壯的手。也許在工廠中做某些技術(shù)活兒時(shí),機(jī)器人還是不如有經(jīng)驗(yàn)的人類師傅。但是在做那些高強(qiáng)度、重復(fù)性的勞動(dòng)時(shí),機(jī)器人就會(huì)全面勝出了,它們可以不知疲倦地工作,又快又好地完成任務(wù)。現(xiàn)在最先進(jìn)的機(jī)器人已經(jīng)可以進(jìn)行復(fù)雜的外科手術(shù)了。這些是不是很神奇呢?
【動(dòng)手操作】
活動(dòng)主題:尋找生活中的機(jī)器人。
同學(xué)們的生活中能見到各種各樣機(jī)器人的身影,讓我們睜大發(fā)現(xiàn)的眼睛,去尋找生活中的各種機(jī)器人,并且用這節(jié)課我們教給大家的思路分析它們的幾大組成部分吧,把你的結(jié)果填寫在下面的表格中。
表1 尋找生活中的機(jī)器人
機(jī)器人名稱
功能
控制器
傳感器
驅(qū)動(dòng)器
執(zhí)行器
例子:智能沖水馬桶
感知到有人使用后自動(dòng)沖水
小單片機(jī)
紅外熱釋電傳感器
電動(dòng)沖水裝置




































【探究思考】
              不管是《終結(jié)者》還是《I,Robot》中AI和機(jī)器人試圖取代人類,都是一種極為普遍的想法。或許這代表了人類對(duì)未來科技的恐慌,但這并未阻止技術(shù)的進(jìn)步。雖然人類往往擁有不可預(yù)知的創(chuàng)造性,但機(jī)器人在很多方面都具備先天優(yōu)勢(shì)。所以,有人說人類將逐步失業(yè),機(jī)器人正偷走人類的工作。
              請(qǐng)思考一下,哪些工作將逐步被機(jī)器人替代?人類該做出哪些對(duì)策?
【視野拓展】
1.機(jī)器人是如何幫助人類的?
機(jī)器人可以代替人類完成重復(fù)性、高強(qiáng)度的體力勞動(dòng)。在現(xiàn)代化工廠中,大部分枯燥的體力勞動(dòng)都可以用不知疲倦的工業(yè)機(jī)器人代替工人師傅們完成了,工人師傅們?cè)陔娔X屏幕后就可以完成原來又臟又累的工作了。機(jī)器人進(jìn)行重復(fù)性工作時(shí)的精確度也是人類無法比擬的,因此產(chǎn)品的質(zhì)量會(huì)更有保障。
機(jī)器人還可以代替人類在危險(xiǎn)或者難以生存的條件下工作。不久的將來,大家就會(huì)發(fā)現(xiàn),一旦發(fā)生自然災(zāi)害后,救災(zāi)機(jī)器人會(huì)沖在第一線,挽救災(zāi)區(qū)人民的生命和財(cái)產(chǎn)。現(xiàn)在已經(jīng)有發(fā)達(dá)國家在軍隊(duì)中裝備了機(jī)器人,這種機(jī)器人可以負(fù)重幾百公斤在各種地貌環(huán)境中前進(jìn)。從月球、火星到海底、火山,凡是科學(xué)家們需要探索的地方都少不了機(jī)器人的身影。美國發(fā)射的幾代火星探索機(jī)器人已經(jīng)正在火星上進(jìn)行科考工作了。
機(jī)器人還可以與人類和諧相處。現(xiàn)代社會(huì)中生活節(jié)奏變得越來越快,在物質(zhì)豐富的同時(shí)也產(chǎn)生了各種社會(huì)問題。越來越多的“空巢老人”和行動(dòng)不便的病人需要人來照顧,面對(duì)這些問題,科學(xué)技術(shù)能如何幫助我們呢?科學(xué)家們?cè)O(shè)計(jì)出了各種服務(wù)機(jī)器人,來滿足我們的要求。“請(qǐng)遞給我一杯水”“把房間溫度調(diào)高一些”“幫我接通社區(qū)醫(yī)院的電話”,以后主人們只要像這樣說出自己的命令,服務(wù)機(jī)器人就會(huì)及時(shí)滿足他們的要求了。除了幫做家務(wù),當(dāng)主人感到孤獨(dú)時(shí),機(jī)器人寵物還可以陪伴主人,給主人精神慰藉。根據(jù)最新的報(bào)道,法國科學(xué)家研制的Nao機(jī)器人,已經(jīng)被用于治愈自閉癥兒童,并且產(chǎn)生了驚人的效果。很多患有和人們交流障礙的兒童,通過和Nao機(jī)器人的相處改變了自己,也改變了未來。
2.什么是單片機(jī)?
單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域廣泛應(yīng)用。從上世紀(jì)80年代,由當(dāng)時(shí)的4位、8位單片機(jī),發(fā)展到現(xiàn)在的300M的高速單片機(jī)。一些功能比較簡(jiǎn)單的機(jī)器人,都是用單片機(jī)作為控制器的。
2.怎么學(xué)習(xí)機(jī)器人技術(shù)?
機(jī)器人技術(shù)并非高不可攀的新技術(shù),但是其涉及運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)、系統(tǒng)結(jié)構(gòu)、傳感技術(shù)、控制技術(shù)等多領(lǐng)域的交叉學(xué)科,制作機(jī)器人的過程,就是整合科學(xué)、技術(shù)、數(shù)學(xué)領(lǐng)域的知識(shí),以工程標(biāo)準(zhǔn)化的思想進(jìn)行綜合實(shí)踐的過程。學(xué)習(xí)機(jī)器人的過程,大致可以分為模仿、改造、創(chuàng)新三個(gè)部分,循序漸進(jìn),螺旋上升。如果有能力,建議通過淘寶自行購買相關(guān)的學(xué)習(xí)套件,將自己的創(chuàng)意實(shí)現(xiàn)出來。

【挑戰(zhàn)自我】
你最想設(shè)計(jì)的機(jī)器人是怎么樣的?請(qǐng)大膽想象,并且對(duì)照機(jī)器人的三大結(jié)構(gòu),分別寫出機(jī)器人各個(gè)的功能。


第一章智能LED

第1課 走進(jìn)Arduino的世界
    對(duì)喜好機(jī)器人與機(jī)器人技術(shù)的人而言,除了希望了解機(jī)器人的定義及其構(gòu)成之外,更有興趣的是參與機(jī)器人的設(shè)計(jì)與創(chuàng)新,那么我們到底通過什么來制作機(jī)器人呢?大家有沒有接觸過Arduino?通過這節(jié)課的學(xué)習(xí),我們將帶大家進(jìn)入到Arduino的神奇世界中來。  
【任務(wù)導(dǎo)航】
    1.認(rèn)識(shí)Arduino,了解Arduino控制板的種類;
    2.掌握Arduino驅(qū)動(dòng)的安裝;
    3.體驗(yàn)Arduino編程界面。
【材料閱讀】
   1.什么是Arduino
    Arduino是一個(gè)基于開放源碼的軟硬件平臺(tái),構(gòu)建于開放源碼simple I/O界面版,并具有使用類似Java、C語言的IDE集成開發(fā)環(huán)境和圖形化編程環(huán)境。由于源碼開放和價(jià)格低廉,Arduino目前廣泛地應(yīng)用于歐美等國家和地區(qū)的電子設(shè)計(jì)以及互動(dòng)藝術(shù)設(shè)計(jì)領(lǐng)域,得到了Make magazine(中文版名稱為《愛上制作》)等出版物和Instructable等網(wǎng)站的認(rèn)可和推薦。Arduino被稱為“科技藝術(shù)”,作為一種新的“玩具”,甚至新的藝術(shù)載體,吸引了各個(gè)領(lǐng)域的人們加入到Arduino的神奇世界里來。
  • Arduino板子種類
Arduino先后發(fā)布了十多個(gè)型號(hào)的板子,有可以縫在衣服上的LiLiPad ,也有為Andriod設(shè)計(jì)的Mega,也有最基礎(chǔ)的型號(hào)UNO,還有最新的Leonardo,如圖1.1.1~1.1.4所示。

   
圖1.1.1 LiLyPad
圖1.1.2 MEGA
圖1.1.3 UNO
圖1.1.4 Leonardo
Arduino UNO是USB系列的最新版本,不同于以前的各種Arduino控制器,它不再使用FIDI的USB到串口驅(qū)動(dòng)芯片,而是把Atmega8U2編程為一個(gè)USB到串口轉(zhuǎn)換器,目前Arduino UNO已成為Arduino主推的產(chǎn)品。
3.Arduino Romeo V1
本書使用的Arduino控制器是由DFRobot出品的Arduino Romeo V1,如圖1.1.5所示。該控制器采用的是最基礎(chǔ)且應(yīng)用最廣泛的UNO板卡。它繼承了Arduino 328控制器所有的特性而且集成了電機(jī)驅(qū)動(dòng)、鍵盤、IO擴(kuò)展板、無線數(shù)據(jù)串行通訊等接口。它不僅可以兼容幾乎所有Arduino系列的傳感器和擴(kuò)展板,而且可以直接驅(qū)動(dòng)12個(gè)舵機(jī)。除此之外,它還提供了更多人性化設(shè)計(jì),采用了3P彩色排針,能夠?qū)?yīng)傳感器連接線,防止插錯(cuò)。其中紅色對(duì)應(yīng)電源,黑色對(duì)應(yīng)GND,藍(lán)色對(duì)應(yīng)模擬口,綠色對(duì)應(yīng)數(shù)字口。
  • 處理器:ATmega328
  • 輸出電源:5V2A/3.3V
  • 數(shù)字IO腳:(其中,35691011路作為PWM輸出),數(shù)字口的值為01
  • 模擬輸入值:A0-A7,模擬口的值為0-1023之間的任意值;
  • EEPROM1KB
  • IIC3個(gè)(其中有兩個(gè)是90度針腳接頭);
  • 測(cè)試按鈕:5個(gè)(S0-S4);
  • 復(fù)位按鈕:1個(gè)(RST);
  • 工作時(shí)鐘:16MHZ

圖1.1.5 Remeo
Arduino Romeo V1的功能和連接說明如圖1.1.6所示。
圖1.1.6 UNO的功能和連接說明

4.Arduino IDE 安裝
得益于Arduino的開源,我們可以訪問Arduino的官方網(wǎng)站(www.Arduino.cc),下載Arduino IDE軟件,該軟件用來編寫程序并上傳程序到控制器上,下載網(wǎng)址為http://Arduino.cc/en/Main/Software。這里要提醒大家的是下載版本要與計(jì)算機(jī)的操作系統(tǒng)相匹配。該軟件下載之后,無需安裝,解壓后即可使用,如圖1.1.7所示。
圖1.1.7 解壓后的Arduino IDE文件列表
Arduino IDE的環(huán)境不僅有文本式的編程環(huán)境(圖1.1.8所示),還有圖形化積木式的編程環(huán)境ArduBlock(圖1.1.9所示),本書采用的編程環(huán)境是后者。
圖1.1.8 Arduino IDE開發(fā)環(huán)境
圖1.1.9 ArduBlock開發(fā)環(huán)境
    5.Arduino 驅(qū)動(dòng)的安裝
Arduino控制器和計(jì)算機(jī)的連接一般采用USB連接線。計(jì)算機(jī)第一次連接上Arduino控制器,需要安裝驅(qū)動(dòng),以后再將Arduino控制器連到電腦上之后,就不需要安裝驅(qū)動(dòng)了。驅(qū)動(dòng)程序在Arduino IDE安裝目錄的Drivers文件夾中。下面以Windows 7操作系統(tǒng)為例,介紹驅(qū)動(dòng)安裝過程,如圖1.1.10~1.1.15所示。
圖1.1.10 打開“設(shè)備管理器”,找到Arduino UNO設(shè)備

圖1.1.11 選擇“瀏覽計(jì)算機(jī)以查找驅(qū)動(dòng)程序軟件”


圖1.1.12 選擇驅(qū)動(dòng)程序Drivers所在的文件夾
圖1.1.13 如果系統(tǒng)出現(xiàn)安全提示,選擇“安裝”
圖1.1.14 安裝完畢
驅(qū)動(dòng)程序安裝之后,在“設(shè)備管理器”的端口一項(xiàng)中將增加一個(gè)COM口設(shè)備,請(qǐng)記下該端口號(hào),如圖1.1.15所示,Arduino與計(jì)算機(jī)通信端口號(hào)為COM4。
圖1.1.15 通過設(shè)備管理器查看Arduino的COM口
最后要在Arduino開發(fā)環(huán)境中設(shè)置相應(yīng)的串口號(hào)以及Arduino板的型號(hào),注意Arduino板卡的型號(hào)為Arduino UNO,串口設(shè)置要與設(shè)備管理器中顯示的Arduino的COM口一致(比如我們這里的COM4)。
6.體驗(yàn)Arduino
驅(qū)動(dòng)安裝完之后,就可以開始Arduino之旅了。接下來我們用Arduino IDE開發(fā)環(huán)境中LED閃爍的示例來體驗(yàn)一下Arduino吧。在Arduino UNO板的13號(hào)針腳上已經(jīng)帶了一個(gè)LED燈,如圖1.1.16所示。點(diǎn)擊文件——>示例——> Basic——>Blink,這時(shí)會(huì)彈出一個(gè)已經(jīng)加載到程序編輯區(qū)的IDE環(huán)境,點(diǎn)擊 ,將程序上傳到Arduino控制器中,程序上傳完之后會(huì)有上傳成功的提示,大家會(huì)看到LED燈在不停的閃爍。
圖1.1.16 數(shù)字針腳13指示燈

【動(dòng)手操作】
活動(dòng)主題一:Arduino 驅(qū)動(dòng)的安裝
在裝完Arduino驅(qū)動(dòng)之后,要打開設(shè)備管理器,查看自己的Arduino UNO的端口,并在打開Arduino IDE之后修改端口號(hào)使其保持一致,除此之外還要選擇板卡為Arduino UNO。
活動(dòng)主題二:上傳Blink示例程序,觀察現(xiàn)象
【探究思考】
請(qǐng)同學(xué)們上網(wǎng)或者查閱相關(guān)的資料,了解一下通過Arduino平臺(tái)可以制作哪些有生活意義、有趣的智能人造物。
【視野拓展】

Arduino的歷史

Arduino這個(gè)經(jīng)典的開源項(xiàng)目,誕生于意大利的一間設(shè)計(jì)學(xué)校。Arduino的核心開發(fā)團(tuán)隊(duì)成員包括:Massimo Banzi,David Cuartielles,Tom Igoe,Gianluca Martino,David Mellis和Nicholas Zambetti。
據(jù)說,Massimo Banzi的學(xué)生們經(jīng)常抱怨找不到便宜好用的微控制器,2005年冬天,Massimo Banzi跟朋友David Cuartielles討論了這個(gè)問題,David Cuartielles是一個(gè)西班牙籍晶片工程師,當(dāng)時(shí)在這所學(xué)校做訪問學(xué)者。兩人決定設(shè)計(jì)自己的電路板,并引入了Banzi的學(xué)生David Mellis為電路板設(shè)計(jì)編程語言。兩天以后,David Mellis就寫出了程式碼。又過了三天,電路板就完工了。這塊電路板被命名為Arduino。幾乎任何人,即使不懂電腦編程,也能用Arduino做出很酷的東西,比如對(duì)感測(cè)器作出回應(yīng),閃爍燈光,還能控制馬達(dá)。
隨后Banzi,Cuartielles,和Mellis把設(shè)計(jì)圖放到了網(wǎng)上。保持設(shè)計(jì)的開放源碼理念,因?yàn)榘鏅?quán)法可以監(jiān)管開源軟件,卻很難用在硬件上,他們決定采用Creative Commons許可。Creative Commons(CC)是為保護(hù)開放版權(quán)行為而出現(xiàn)的類似GPL的一種許可。在Creative Commons許可下,任何人都被允許生產(chǎn)電路板的復(fù)制品,還能重新設(shè)計(jì),甚至銷售原設(shè)計(jì)的復(fù)制品。你不需要付版稅,甚至不用取得Arduino團(tuán)隊(duì)的許可。然而,如果你重新發(fā)布了引用設(shè)計(jì),你必須說明原始Arduino團(tuán)隊(duì)的貢獻(xiàn)。如果你調(diào)整或改動(dòng)了電路板,你的最新設(shè)計(jì)必須使用相同或類似的 Creative Commons許可,以保證新版本的Arduino電路板也會(huì)一樣的自由和開放。唯一被保留的只有Arduino這個(gè)名字,它被注冊(cè)成了商標(biāo)。如果有人想用這個(gè)名字賣電路板,那他們可能必須付一點(diǎn)商標(biāo)費(fèi)用給Arduino的核心開發(fā)團(tuán)隊(duì)成員。你可以參考Arduino 的官方網(wǎng)站,在那里你會(huì)找到各種創(chuàng)意作品的源碼,當(dāng)然也有很多機(jī)器人應(yīng)用實(shí)例代碼,例如直流電機(jī)PWM 調(diào)速、舵機(jī)控制、超聲波測(cè)距、紅外傳感器尋跡等,相信它能使你早日實(shí)現(xiàn)DIY 機(jī)器人的夢(mèng)想。
【挑戰(zhàn)自我】
同學(xué)們已經(jīng)大概了解了Arduino,請(qǐng)大膽想象,使用Arduino可以制作哪些機(jī)器人作品?

第2課 閃爍LED
燈是我們?nèi)粘I钪凶畛R姷碾娖髦唬呀?jīng)成為我們?nèi)粘I钪斜夭豢缮俚碾娖鳎覀兛梢酝ㄟ^開關(guān)或者聲音控制燈的亮滅,那么我們能否用Arduino來實(shí)現(xiàn)呢?如何實(shí)現(xiàn)?這節(jié)課我們來用Arduino點(diǎn)亮一盞燈。
【任務(wù)導(dǎo)航】
  • 熟悉ArduBlock
  • 搭建電路;
  • 制作一個(gè)閃爍的LED
【材料閱讀】
1.ArduBlock   
ArduBlock(圖1.2.1所示)是一款為Arduino設(shè)計(jì)的圖形化編程軟件,是Arduino官方編程環(huán)境的第三方軟件,目前必須依附于Arduino IDE軟件運(yùn)行。ArduBlock是使用圖形化積木搭建的方式編程的,這樣的方式加強(qiáng)了編程的可視化和交互性,降低了編程門檻,即使沒有編程經(jīng)驗(yàn)的人也可以嘗試給Arduino控制器編寫程序。除此之外我們還可以對(duì)程序進(jìn)行批注。
   圖 1.2.1 ArduBlock編程環(huán)境
程序中的各個(gè)模塊都是從左側(cè)的模塊庫里“拖進(jìn)”編程界面的,然后用這些模塊積木進(jìn)行拼接,拼接對(duì)了,會(huì)發(fā)出一聲“咔”的清脆響聲。如果要?jiǎng)h去模塊,直接把不需要的模塊“拖出”編程界面即可。當(dāng)我們編寫好一個(gè)程序,點(diǎn)擊編程環(huán)境上方的“上載到Arduino”按鈕,會(huì)發(fā)現(xiàn)Arduino文本式的編程環(huán)境上的“上傳”圖標(biāo)也開始工作了,而且在Arduino文本式的編程環(huán)境里還生成了文本式的代碼。程序上傳成功之后,文本式的文本環(huán)境下面會(huì)提示我們“上傳成功”。
2.ArduinoLED模塊的連接
LED(Light Emitting Diode,發(fā)光二極管)是一種能夠?qū)㈦娔苻D(zhuǎn)化為可見光的固態(tài)半導(dǎo)體器件,如圖1.2.2所示。它可以直接把電能轉(zhuǎn)化為光,具有體積小、耗電量低、高亮度低熱量、使用壽命長(zhǎng)的特點(diǎn),是Arduino機(jī)器人作品中實(shí)現(xiàn)光效功能的最佳選擇。LED發(fā)光模塊具有紅、綠、藍(lán)等多種顏色,并且只能顯示一種顏色,如圖1.2.3所示。一般來說,LED接到Arduino上,需要串聯(lián)限流電阻。
     
      圖 1.2.2發(fā)光二極管                      圖 1.2.3 LED發(fā)光模塊
本書使用的LED發(fā)光模塊是由DFRobot出品的數(shù)字食人魚LED發(fā)光模塊,如圖1.2.3所示。該發(fā)光模塊利用SMT將LED二極管焊在可愛的PCB板上,然后引出3P接口,我們通過3P線將LED發(fā)光模塊插到Arduino的數(shù)字口上即可。
不管是LED發(fā)光模塊還是連接到Arduino控制器的其他傳感器,一般有三條連接線,分別為輸入電壓(標(biāo)注為“+”或“5V”或“VCC”等)、輸出信號(hào)(標(biāo)注為“D”或“S”等)以及地線(標(biāo)注為“-”或“GND”等),這三條線分別和Arduino控制器的數(shù)字口或者模擬口連接。這三條線分別連接電壓、數(shù)字口或者模擬口、地。以LED發(fā)光模塊與Arduino的連接為例,連接圖如圖1.2.4所示。
圖1.2.4 控制器與LED發(fā)光模塊的接連
接好線之后要記住接的針腳號(hào),如圖接的是數(shù)字針腳3。這里要提醒大家的是在接線的時(shí)候,黑色的線接黑色的針腳,即GND,紅色的線接紅色針腳,即VCC,綠色的線接信號(hào)針腳,即D。除此之外,數(shù)字針腳0和1用于計(jì)算機(jī)和Arduino之間的通信,其中數(shù)字針腳0用于接收信號(hào),數(shù)字針腳1用于發(fā)送信號(hào),所以在接線的時(shí)候數(shù)字針腳0和1不要接。
3.制作閃爍的LED
數(shù)字針腳的值為1或0,即高電平或低電平,我們使用的這款LED發(fā)光模塊,高電平可以點(diǎn)亮LED,而低電平則熄滅LED。
其中【延遲】模塊的功能是上一個(gè)模塊執(zhí)行的持續(xù)時(shí)間,例如延遲1000毫秒,指的是上一個(gè)模塊會(huì)持續(xù)執(zhí)行1000毫秒。
【動(dòng)手操作】
     活動(dòng)主題一:制作閃爍的LED
在了解了Arduino的相關(guān)知識(shí),也熟悉了ArduBlock編程環(huán)境之后,我們自己動(dòng)手制作閃爍的LED吧。
器材:Arduino板子、LED、USB數(shù)據(jù)線。
1.硬件搭建
    同學(xué)們?cè)谶B接LED發(fā)光模塊與Arduino控制器時(shí),要注意黑線一般接GND,紅線接5V,第三根線接數(shù)字針腳,同時(shí)要記住自己接的針腳號(hào)。在這里提醒大家數(shù)字針腳0和1不要接。
  • 參考程序
圖 1.2.5 閃爍LED程序
  • 程序下載,觀察現(xiàn)象
在下載程序之前,要提醒同學(xué)們是查看自己的板卡和端口號(hào)是否正確,ArduBlock編程環(huán)境里面的數(shù)字針腳號(hào)是否與LED發(fā)光模塊接到Arduino控制器上的數(shù)字針腳號(hào)一致。
    活動(dòng)主題二:模擬交通燈
紅燈亮A秒之后滅掉,綠燈亮B秒之后滅掉,黃燈亮C秒之后滅掉,以此類推。
器材:Arduino板子、三個(gè)LED、USB數(shù)據(jù)線。
1.硬件搭建
    將三個(gè)LED發(fā)光模塊分別接在Arduino控制器的數(shù)字口,比如數(shù)字針腳3、4、5。
2.參考程序
圖 1.2.6模擬交通燈
【探究思考】
    大家已經(jīng)學(xué)會(huì)了制作閃爍的LED,想想日常生活中哪些地方用到了LED?這些LED有何功能?有什么效果?
【視野拓展】
全彩的LED
我們前面使用的LED發(fā)光模塊,盡管有紅、綠、藍(lán)等多種顏色,但是只能顯示一種顏色。其實(shí),還有一種類型的LED,它可以顯示多種顏色,這類LED稱為全彩LED。全彩LED內(nèi)置了紅(Red)、綠(Green)和藍(lán)(Blue)三種顏色的燈珠,根據(jù)三原色的原理調(diào)出多種顏色。常見的LED大屏幕都是利用這種原理進(jìn)行調(diào)色,呈現(xiàn)出全彩的效果。
8*8 LED RGB Matrix是由DFRobot出品的一個(gè)XY軸可任意級(jí)聯(lián)的三色全彩LED顯示矩陣模塊,如圖1.2.6所示。它可以用于顯示圖片和文字,支持多圖層和各圖層的各種平移效果。
圖 1.2.7  8*8 LED RGB Matrix
【挑戰(zhàn)自我】
    大家已經(jīng)學(xué)會(huì)了制作閃爍的LED,想想還能做哪些效果的LED?流水燈的效果能否實(shí)現(xiàn)?


第3課 按鈕控制的LED
在上節(jié)課我們已經(jīng)學(xué)會(huì)了制作閃爍的LED,即用程序來控制LED的變化,而控制的實(shí)現(xiàn)只能靠不同時(shí)間的間隔來表現(xiàn)一些特殊的閃爍方式,這好像有些呆板了,而且實(shí)際應(yīng)用大都是利用外部信號(hào)來控制的,日常生活中我們的燈一般是通過開關(guān)來控制的,我們也先用簡(jiǎn)單的按鈕來控制LED吧。
【任務(wù)導(dǎo)航】
  • 認(rèn)識(shí)按鈕,正確連接電路;
  • 制作“按鈕按下亮,放開滅”的LED
3.制作“按鈕按下亮,延時(shí)一段時(shí)間,自動(dòng)滅”的LED。
【材料閱讀】
    1.按鈕
按鈕,也稱為按鍵,是一種常用的控制電器元件,常用來接通或斷開“控制電路”(其中電流很小),從而達(dá)到控制電動(dòng)機(jī)或其他電氣設(shè)備運(yùn)行目的的一種開關(guān)。
我們使用的按鈕如圖1.3.1所示,也叫做按壓式的開關(guān)數(shù)字輸入模塊,能夠?qū)崿F(xiàn)非常有趣的互動(dòng)作品,該按鈕模塊使用大按鈕加優(yōu)質(zhì)按鍵帽,使用方便可以做到“即插即用”。按鈕有兩種狀態(tài),即按下或者放開。我們使用的這款按鈕按下是1(HIGH),放開是0(LOW),注意不同廠家生產(chǎn)的按鈕可能不同。按鈕模塊與LED模塊一樣,也是接Arduino控制器的數(shù)字口,通常黑線接GND,紅線接5V,綠線接數(shù)字針腳。

圖1.3.1 按鈕
2.選擇結(jié)構(gòu)--【如果】
當(dāng)我們需要判斷某些結(jié)果來決定是否要執(zhí)行不同的程序時(shí),選擇性結(jié)構(gòu)是一個(gè)很方便的結(jié)構(gòu),判斷結(jié)果決定是否執(zhí)行內(nèi)部的程序。選擇性語句的判斷有【如果】和【如果—否則】。在程序當(dāng)中,若有以上幾種結(jié)構(gòu),便會(huì)依據(jù)不同的條件選擇,執(zhí)行不同的程序片段,以達(dá)成不同的目的。這節(jié)課我們主要來學(xué)習(xí)【如果】模塊。
選擇結(jié)構(gòu)【如果】的基本形式:
圖1.3.2 選擇結(jié)構(gòu)—【如果】
其語義是:如果條件滿足即值為真,則執(zhí)行模塊里面語句,否則不執(zhí)行該語句。其過程可表示為圖1.3.3。其中判斷條件既可以是關(guān)系運(yùn)算也可以是邏輯運(yùn)算。
圖1.3.3 選擇結(jié)構(gòu)

  • 數(shù)字口的輸入
     
(1)功能:讀取指定數(shù)字針腳的輸入值。
(2)參數(shù):需要讀取輸入值的針腳號(hào)。
    (3)實(shí)例:含義是讀取數(shù)字針腳3的值。
【動(dòng)手操作】
主題一:制作“按鈕按下亮,放開滅”的LED
1.硬件搭建
連接電路時(shí),按鈕模塊與LED模塊一樣,都要接到數(shù)字口。
器材:Arduino 控制器、LED模塊、按鈕模塊以及USB數(shù)據(jù)線。
2.參考程序
圖1.3.4 按鈕按下亮,放開滅的LED

主題二:制作“按鈕按下亮,延時(shí)一段時(shí)間,自動(dòng)關(guān)閉”的LED
1.生活實(shí)例
(1)走廊里的燈,亮了之后過一會(huì)自動(dòng)關(guān)閉了。

(2)中國地質(zhì)大學(xué)學(xué)生發(fā)明了投幣式臺(tái)燈,當(dāng)硬幣投入臺(tái)燈下的儲(chǔ)蓄罐中時(shí),臺(tái)燈便可開始照明,半小時(shí)后,燈自動(dòng)熄滅。

2.參考程序
   
圖1.3.5 按鈕按下亮,延時(shí)一段時(shí)間,自動(dòng)關(guān)閉的LED
【探究思考】
除了以上按鈕控制LED亮滅的效果,還可以用按鈕控制LED實(shí)現(xiàn)哪些效果?
【視野拓展】
波段開關(guān)
一般的開關(guān)如前面介紹的按鈕只有兩種狀態(tài)即按下或者放開,如果說需要輸出多個(gè)狀態(tài)的話,我們還需要再接幾個(gè)按鈕到Arduino控制器上面,而波段開關(guān)它有多種狀態(tài)。以DFRobot出品的波段開關(guān)為例,如圖1.3.6所示,該模塊波段開關(guān)是一種通過旋轉(zhuǎn)來調(diào)整信號(hào)輸出的開關(guān)。它只需要一個(gè)模擬口就能讀取12個(gè)狀態(tài),大大節(jié)省了其他數(shù)字端口。而且這款波段開關(guān)具備12個(gè)檔位,每個(gè)檔位邊上都有LED顯示,產(chǎn)生炫酷的燈光效果,我們可以實(shí)時(shí)了解檔位的狀態(tài),非常方便。
圖1.3.6 波段開關(guān)
【挑戰(zhàn)自我】
    請(qǐng)同學(xué)們嘗試實(shí)現(xiàn)按鈕按下LED亮,再按下LED滅。
第4課 聰明的按鈕
     一般來說,家里面的燈都是通過開關(guān)來控制的,即按下開,再按下關(guān),那么能否用Arduino實(shí)現(xiàn)呢?這節(jié)課我們一起來學(xué)習(xí)用按鈕開關(guān)實(shí)現(xiàn)按下開,再按下關(guān)的LED效果。
【任務(wù)導(dǎo)航】
    1.掌握布爾類型和變量;
    2.制作“按鈕按下開,再按下關(guān)”的LED。
【材料閱讀】
  • 變量和常量
在編程過程中變量和常量是基本的數(shù)據(jù)對(duì)象。編寫程序總是要與各種數(shù)據(jù)打交道,如馬達(dá)的速度、等待的時(shí)間等,這就需要涉及到變量和常量了。
常量指的是程序在運(yùn)行過程中,其值不能改變的數(shù)據(jù),如圖1.4.1所示。其中常量分為數(shù)字常量、字符常量、字符串常量等。

圖1.4.1 ArduBlock環(huán)境中的常量

變量是指在程序中用來代表數(shù)據(jù)的字符,這些字符的值是可以變化的,其中變量有多種類型,如數(shù)字變量、模擬變量、字符變量等等。ArduBlock環(huán)境中的部分變量如下圖1.4.2所示。

圖1.4.2 變量

2.布爾類型
布爾類型(bool)用于表示真/假。該類型的變量值只能是0或者1。無論賦予任何非零值給該類型的變量,它的值都只會(huì)是1。
表4-1 布爾類型
燈亮
1
TRUE
高電平
高電位
按下按鈕
HIGH
燈滅
0
FALSE
低電平
低電位
放開按鈕
LOW

3.非運(yùn)算符
運(yùn)算符是告訴編譯程序執(zhí)行特定算術(shù)或邏輯操作的符號(hào)。運(yùn)算符主要分為三大類:算術(shù)運(yùn)算符、 關(guān)系運(yùn)算符與邏輯運(yùn)算符、按位運(yùn)算符。我們這節(jié)課主要來學(xué)習(xí)邏輯運(yùn)算符里面的非運(yùn)算。
非運(yùn)算是單目符號(hào)運(yùn)算的一種,所謂單目運(yùn)算符就是只有需要一個(gè)操作數(shù)的運(yùn)算符。非運(yùn)算的符號(hào)是“!”,其意思就是取與表達(dá)式相反的值,若表達(dá)式值為真,則邏輯非運(yùn)算結(jié)果為假。例如,如果數(shù)字針腳的值為0,非0就是1即真;相反如果數(shù)字針腳的值為1,非1就是0即假。
4.按鈕抖動(dòng)
通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開時(shí)也不會(huì)一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動(dòng),為了不產(chǎn)生這種現(xiàn)象而做的措施就是按鍵消抖。而最簡(jiǎn)單的消抖方法就是加入延時(shí)。
【動(dòng)手操作】
活動(dòng)主題:制作“按鈕按下開,再按下關(guān)”的LED
    1.硬件搭建
電路的連接跟上節(jié)課一樣,這里還是要特別強(qiáng)調(diào)一下我們的按鈕模塊接數(shù)字口,并且黑線接GND,紅線接5V,第三根線接信號(hào)針腳。在接好電路之后,要記住自己接的是哪個(gè)數(shù)字口。
器材:Arduino Romeo控制器、按鈕、LED發(fā)光模塊以及數(shù)據(jù)線。
2.參考程序一
圖1.4.3 按鈕按下開,再按下關(guān)的LED
參考程序二
提示:參考程序二加了延時(shí)。
參考程序三
提示:參考程序三加了兩個(gè)延時(shí)(按下和放開都加了延時(shí))同時(shí)加了當(dāng)循環(huán)。
【探究思考】
  • 請(qǐng)同學(xué)們下載程序,仔細(xì)觀察LED的穩(wěn)定性如何?解釋為什么出現(xiàn)這種現(xiàn)象?如何來解決?
  • 思考一個(gè)按鈕控制LED,還有哪些情況?
【視野拓展】
  • 按鈕抖動(dòng)現(xiàn)象
通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開時(shí)也不會(huì)一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動(dòng),為了不產(chǎn)生這種現(xiàn)象而作的措施就是按鍵消抖,如圖1.4.4所示。
    抖動(dòng)時(shí)間的長(zhǎng)短由按鍵的機(jī)械特性決定,一般為5ms~10ms。這是一個(gè)很重要的時(shí)間參數(shù),在很多場(chǎng)合都要用到。
圖1.4.4 按鍵抖動(dòng)

    按鍵穩(wěn)定閉合時(shí)間的長(zhǎng)短則是由操作人員的按鍵動(dòng)作決定的,一般為零點(diǎn)幾秒至數(shù)秒。鍵抖動(dòng)會(huì)引起一次按鍵被誤讀多次。為確保CPU對(duì)鍵的一次閉合僅作一次處理,必須去除鍵抖動(dòng)。在鍵閉合穩(wěn)定時(shí)讀取鍵的狀態(tài),并且必須判別到鍵釋放穩(wěn)定后再作處理。
  • 按鈕消抖
    消抖是為了避免在按鍵按下或是抬起時(shí)電平劇烈抖動(dòng)帶來的影響。按鍵的消抖,可用硬件或軟件兩種方法。一般來說,我們會(huì)使用軟件方法去抖,即檢測(cè)出鍵閉合后執(zhí)行一個(gè)延時(shí)程序,5ms~10ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測(cè)鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下。當(dāng)檢測(cè)到按鍵釋放后,也要給5ms~10ms的延時(shí),待后沿抖動(dòng)消失后才能轉(zhuǎn)入該鍵的處理程序。
    軟件消抖的方法是不斷檢測(cè)按鍵值,直到按鍵值穩(wěn)定。實(shí)現(xiàn)方法:假設(shè)未按鍵時(shí)輸入1,按鍵后輸入為0,抖動(dòng)時(shí)不定。可以做以下檢測(cè):檢測(cè)到按鍵輸入為0之后,延時(shí)5ms~10ms,再次檢測(cè),如果按鍵還為0,那么就認(rèn)為有按鍵輸入。延時(shí)的5ms~10ms恰好避開了抖動(dòng)期。
【挑戰(zhàn)自我】
  • 思考能否用模擬變量實(shí)現(xiàn)按鈕按下LED亮,再按下LED滅?
  • 兩個(gè)按鈕控制LED,有哪些效果?思考并嘗試實(shí)現(xiàn)。

第5課 呼吸燈
在前面的實(shí)例當(dāng)中,我們都是用Arduino控制器來控制LED燈的亮或滅的變化。但是并沒有體現(xiàn)LED的電壓由高到低或者由低到高的變化,即中間過程沒有得到體現(xiàn)。但有時(shí)要有,比如在KTV或演唱會(huì)上,為了達(dá)到很好的燈光效果,有時(shí)要使燈的亮暗漸變,即是個(gè)連續(xù)變化的過程。那我們能否實(shí)現(xiàn)呢?
【任務(wù)導(dǎo)航】
  • 認(rèn)識(shí)呼吸燈;
  • 掌握PWM
  • 掌握模擬輸出;
  • 掌握當(dāng)循環(huán)。
【材料閱讀】
1.呼吸燈
呼吸燈,顧名思義,就是燈光在微電腦控制之下完成由亮到暗的逐漸變化,感覺像是在呼吸。廣泛應(yīng)用于手機(jī)之上,并成為各大品牌新款手機(jī)的賣點(diǎn)之一。如果你的手機(jī)里面有未處理的通知,比如說未接來電,未查收的短信等等,呼吸燈就會(huì)由暗到亮的變化,像呼吸一樣那么有節(jié)奏,起到一個(gè)通知提醒的作用。
   2.PWM
現(xiàn)今多數(shù)系統(tǒng)皆采用數(shù)字控制的方式,由核心微處理器接收回傳的感測(cè)信息,并針對(duì)與目標(biāo)的差值再調(diào)整輸出。而數(shù)字信號(hào)只有0與1兩種變化,怎么調(diào)整輸出值的大小滿足需求呢?這時(shí)我們可以將數(shù)字信號(hào)轉(zhuǎn)化成模擬信號(hào),這就需要我們的PWM了。
脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫,簡(jiǎn)稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中,它可以將數(shù)字信號(hào)轉(zhuǎn)化為模擬信號(hào)。
Arduino Romeo控制器的數(shù)字口上有6個(gè)針腳支持PWM信號(hào),即3、5、6、9、10和11。PWM的輸出值為0~255,LED發(fā)光模塊接到這幾個(gè)針腳上面,就可以控制LED的亮度,不會(huì)只有單純的亮跟滅兩種選擇。這里要注意的是LED發(fā)光模塊是可以調(diào)亮度的,有些LED發(fā)光模塊不能調(diào)節(jié)亮度,即便插在這個(gè)針腳上面,也無法控制LED的亮度。本書用的LED發(fā)光模塊是可以調(diào)節(jié)亮度的。
3.模擬針腳的輸出
   
  • 功能:將指定的值給模擬口。
  • 參數(shù):Pin是需要輸入值的針腳號(hào);Value的取值為0~255之間的任意值。
    (3)實(shí)例:意思就是將模擬針腳3的值設(shè)定為255。
  • 當(dāng)循環(huán)
前面介紹的選擇結(jié)構(gòu)只能判斷一次,只有程序流程重新來過時(shí),才會(huì)再次判斷。而某些情況下還需要條件滿足的時(shí)候不斷地重復(fù)執(zhí)行某些語句,這就需要循環(huán)型的控制語句如重復(fù)循環(huán)或當(dāng)循環(huán)了。
當(dāng)循環(huán)的基本形式:
功能描述:當(dāng)條件成立即為真(1)的時(shí)候,執(zhí)行循環(huán)體內(nèi)的語句,且循環(huán)體會(huì)重復(fù)執(zhí)行;當(dāng)條件不成立的時(shí)候即為假(0)時(shí),跳出循環(huán)體,結(jié)束循環(huán)。如果條件始終成立,則會(huì)進(jìn)入死循環(huán),循環(huán)體一直執(zhí)行下去。
【動(dòng)手操作】
    活動(dòng)主題一:數(shù)值控制LED亮度
1.硬件搭建
在連接電路時(shí),LED模塊要接到數(shù)字口支持PWM信號(hào)的針腳上,即3、5、6、9、10、和11。
器材:Arduino Romeo控制器、LED發(fā)光模塊以及數(shù)據(jù)線。
   2.參考程序
  
   活動(dòng)主題二:制作呼吸燈

圖1.5.1 呼吸燈參考程序
【探究思考】
1.能否用按鈕控制LED的亮度情況?如何實(shí)現(xiàn)?
2.你會(huì)使用條件語氣制作呼吸燈?
3.還可以制作哪些效果的LED?
【視野拓展】
  • PWM
    PWM,脈寬調(diào)制:即通過一系列脈沖的寬帶來調(diào)制(或控制)來等效得到所需要的波形(包括形狀和幅值),如圖1.5.2所示,咱們可以通過很多脈沖來恢復(fù)得到正弦波形。這也可以從高中所學(xué)積分的面積等效的原理解釋。比如第1個(gè)脈沖所圍的面積,等于第一個(gè)脈沖前由正弦波形圍成的面積。通過改變方波的占空比,就可以改變等效的輸出電壓波形。試想一下,如果每個(gè)脈沖的寬度相等,則所等效的波形為一條直線,即為直流電壓信號(hào)。PWM調(diào)制廣泛應(yīng)用與電機(jī)調(diào)速和閥門控制中。比如現(xiàn)在的電動(dòng)車就是通過PWM調(diào)速的。
圖1.5.2 PWM
    2.數(shù)字信號(hào)和模擬信號(hào)
    數(shù)字信號(hào):是指幅度取值離散的,其值被限制在有限域范圍內(nèi),如二進(jìn)制碼就是一種離散信號(hào)。其特點(diǎn)是抗干擾能力強(qiáng),易于數(shù)字信號(hào)處理。現(xiàn)在很多信號(hào)基本上都是數(shù)字信號(hào),如手機(jī)信號(hào),計(jì)算機(jī)處理信息等等。
模擬信號(hào):是指其信號(hào)波形是連續(xù)變化的,咱們可以在任意的瞬間取值。由于模擬信號(hào)易受干擾影響,不容易處理,一般都是先將模擬信號(hào)離散成數(shù)字信號(hào),以便處理。兩者的區(qū)別如圖1.5.4所示:
圖1.5.4 A/D區(qū)別
【挑戰(zhàn)自我】
前面我們已經(jīng)學(xué)過了用按鈕控制LED的亮滅,請(qǐng)同學(xué)們嘗試用按鈕控制呼吸燈。

第6課 光控LED
    既然Arduino能夠輸出模擬的電壓,那么Arduino能不能感知到外界模擬的信號(hào)呢,如聲音、光線等信息?這些就需要用到我們的傳感器了。這節(jié)課我們就來學(xué)習(xí)利用傳感器感知外界的信息來控制LED。
【任務(wù)導(dǎo)航】
  • 認(rèn)識(shí)傳感器;
2.能夠正確連接傳感器,并利用傳感器信息進(jìn)行相應(yīng)的控制;
3.掌握串口監(jiān)視器的使用。
【材料閱讀】
1.傳感器
傳感器是一種物理裝置或生物器官,能夠探測(cè)、感受外界的信號(hào)、物理?xiàng)l件(如光、熱、濕度)或化學(xué)組成(如煙霧),并將探知的信息傳遞給其他裝置或器官。傳感器一般由敏感元件、轉(zhuǎn)換器件 和轉(zhuǎn)換電路三個(gè)部分組成,通過敏感元件獲取外界信息并轉(zhuǎn)換成電信號(hào)輸出,然后由控制器進(jìn)行分析處理,如圖1.6.1所示。
圖 1.6.1 傳感器結(jié)構(gòu)
可以從不同的維度對(duì)傳感器進(jìn)行分類,這里我們只介紹以其輸出信號(hào)為標(biāo)準(zhǔn)對(duì)傳感器進(jìn)行分類,可以分為:
模擬傳感器——將被測(cè)量的非電學(xué)量轉(zhuǎn)換成模擬電信號(hào),如聲音傳感器、光線傳感器等。
數(shù)字傳感器——將被測(cè)量的非電學(xué)量轉(zhuǎn)換成數(shù)字輸出信號(hào)(包括直接和間接轉(zhuǎn)換),如尋線傳感器、防跌落傳感器等。
開關(guān)傳感器——當(dāng)一個(gè)被測(cè)量的信號(hào)達(dá)到某個(gè)特定的閾值時(shí),傳感器相應(yīng)地輸出一個(gè)設(shè)定的低電平或高電平信號(hào),如按鈕。
其中開關(guān)傳感器以及數(shù)字傳感器統(tǒng)稱為數(shù)字傳感器。
2.光線傳感器
光線傳感器也稱環(huán)境光線傳感器,本書使用的光線傳感器是由DFRobot出品的模擬環(huán)境光線傳感器,如圖1.6.2所示。該傳感器模塊可以用來對(duì)環(huán)境光線的強(qiáng)度進(jìn)行檢測(cè),通常用來制作隨光線強(qiáng)度變化產(chǎn)生特殊效果的互動(dòng)作品。
圖1.6.2 光線傳感器
光線傳感器是一種模擬傳感器,它要接到Arduino Romeo控制板的模擬口上,值的范圍為0~1023,光線強(qiáng)弱的不同會(huì)輸出不同的值,光線越強(qiáng)數(shù)值越大,光線越暗數(shù)值越小。光線傳感器在接線時(shí),也是黑線接GND,紅線接5V,第三根線接模擬針腳。光線傳感器與Arduino Romeo控制器的連接示意圖,如圖1.6.3所示。
圖1.6.3 光線傳感器與Arduino的連接
3.串口監(jiān)視器
光線傳感器可以檢測(cè)當(dāng)前環(huán)境的光線值,那光線值到底是多少呢?這就需要用到串口監(jiān)視器了。ArduBlock開發(fā)環(huán)境下的(串口監(jiān)視器)用來監(jiān)控串口的通訊狀況。單擊串口監(jiān)視器按鈕后將出現(xiàn)類似于如圖1.6.4所示的窗口。 串口監(jiān)視器可以顯示從Arduino Romeo 控制器發(fā)來的數(shù)據(jù),比如光線傳感器、聲音傳感器的值等。Serial Monitor(串口監(jiān)視器)是非常有用的工具,特別是在調(diào)試程序時(shí)。
圖1.6.4 串口監(jiān)視器
串口輸出要用到,具體使用方法如圖1.6.5所示:
圖1.6.5 串口輸出針腳值
這里要提醒大家的是其中的【message】模塊可有可無,而且【message】模塊里面的message可以改為其它的字符串;如果我們要輸出的模擬傳感器的值,我們要選擇【和模擬量結(jié)合】模塊,如果是數(shù)字傳感器或者LED發(fā)光模塊的值,我們要選擇【和數(shù)字量結(jié)合】模塊,其中數(shù)字針腳或者模擬針腳換成我們傳感器或者LED發(fā)光模塊的針腳值。
【動(dòng)手操作】
活動(dòng)主題一:讀取光線傳感器的值
1.硬件搭建
光線傳感器模塊要接到Arduino控制器模擬口上。
器材:Arduino Romeo控制器、USB線、光線傳感器。
  2.參考程序
圖1.6.6 串口輸出光線傳感器的值
活動(dòng)主題二:制作光控LED
  1.作品描述
如果光線暗,LED點(diǎn)亮,否則LED熄滅。
   2.硬件搭建
光線傳感器模塊要接到Arduino控制器模擬針腳上,LED發(fā)光模塊接到Arduino控制器的數(shù)字針腳上。
器材:Arduino Romeo控制器、USB線、光線傳感器以及LED發(fā)光模塊。
  3.參考程序
圖1.6.7 光控LED
提示:程序中30是光線暗的時(shí)候傳感器的值。不同的光線傳感器數(shù)值是不一樣的,需要根據(jù)具體傳感器進(jìn)行修改。

【探究思考】
利用光線傳感器還可以實(shí)現(xiàn)哪些效果的LED?光線傳感器還可以控制哪些東西?能不能制作其他效果的LED?
【視野拓展】
映射
ArduBlock編程環(huán)境中有一個(gè)【映射】模塊,該模塊可以將一定范圍內(nèi)的一個(gè)值轉(zhuǎn)化為另一個(gè)范圍內(nèi)的值。下面簡(jiǎn)單介紹一下該模塊的使用。

下面給大家舉個(gè)簡(jiǎn)單的例子,比如說0~100之間的20可以轉(zhuǎn)化為0~10之間的2。
這節(jié)課我們實(shí)現(xiàn)了光控LED,即光線暗LED亮,光線強(qiáng)LED滅;我們也知道了光線傳感器的值為0~1023,而LED的亮度為0~255,那么能否根據(jù)光線光線的強(qiáng)弱控制LED的亮度呢?【利用映射實(shí)現(xiàn)】
【挑戰(zhàn)自我】
我們已經(jīng)學(xué)會(huì)了用按鈕或者傳感器控制LED的亮滅和明暗,請(qǐng)同學(xué)們想想,我們還可以制作哪些有創(chuàng)意的LED?還能用哪些傳感器控制我們的LED?

第7課 LED綜合創(chuàng)意
通過前面幾節(jié)課的學(xué)習(xí),我們已經(jīng)了解并學(xué)會(huì)了利用按鈕或者傳感器來控制LED的亮度以及明暗情況,在我們一起設(shè)計(jì)和開發(fā)的過程中,同學(xué)們有沒有產(chǎn)生一些創(chuàng)意的想法呢?這節(jié)課我們就來制作一些有創(chuàng)意的LED。
【任務(wù)導(dǎo)航】
    1.熟悉防跌落傳感器和聲音傳感器;
2.設(shè)計(jì)并嘗試實(shí)現(xiàn)一個(gè)創(chuàng)意的LED作品。
【材料閱讀】
1.聲音傳感器
本書所用到的聲音傳感器使用的是DFrobot出品的模擬聲音傳感器,如圖1.7.1所示。這是一款簡(jiǎn)單、實(shí)惠的電子耳朵,它可以用來對(duì)周圍環(huán)境的聲音強(qiáng)度進(jìn)行檢測(cè),并轉(zhuǎn)化為模擬信號(hào),檢測(cè)到的聲音強(qiáng)度與輸出電壓成正比,它通常用來制作一些與聲音有關(guān)的機(jī)器人作品,例如聽到聲音點(diǎn)亮LED,延時(shí)一段時(shí)間LED自動(dòng)關(guān)閉。該傳感器模塊的接線與光線傳感器模塊的接線相同,同樣接的是模擬口。
圖1.7.1 聲音傳感器
2.防跌落傳感器
本書使用的數(shù)字防跌落傳感器模塊采用夏普的紅外測(cè)距模塊,如圖1.7.2所示。該模塊輸出的數(shù)字信號(hào),有效距離10cm,當(dāng)檢測(cè)到10cm內(nèi)有障礙物時(shí),輸出低電平;而沒有檢測(cè)到障礙物時(shí),輸出高電平。該模塊也有三個(gè)針腳,接線方法與LED發(fā)光模塊一樣,紅色接VCC,黑色接GND,第三根線接數(shù)字針腳。同樣,使用該傳感器也可以制作一些創(chuàng)意的機(jī)器人作品,例如使用兩個(gè)防跌落傳感器可以制作手勢(shì)控制LED,比如手勢(shì)從左到右點(diǎn)亮LED;手勢(shì)從右到左熄滅LED。
圖1.7.2 數(shù)字防跌落傳感器

【動(dòng)手操作】
活動(dòng)主題一:聲控?zé)簦牭铰曇?/strong>LED亮,再聽到聲音LED滅)
   1.硬件搭建
在連接電路時(shí),聲音傳感器模塊要接到模擬口上面,LED發(fā)光模塊接到數(shù)字口。
器材:Arduino Romeo 控制器、USB線、聲音傳感器以及LED模塊。
  2.參考程序
圖1.7.4 聲控LED
活動(dòng)主題二:制作手勢(shì)控制LED
  1.硬件搭建
在搭建硬件時(shí),兩個(gè)數(shù)字防跌落傳感器以及LED發(fā)光模塊接到數(shù)字口上面。
器材:Arduino Romeo 控制器、USB線、兩個(gè)數(shù)字防跌落傳感器以及LED模塊。
   2.參考程序
圖1.7.4 手勢(shì)控制LED
活動(dòng)主題三:其他創(chuàng)意的LED
【探究思考】
同學(xué)們互相交換自己的創(chuàng)意LED,并相互評(píng)價(jià)。
【視野拓展】
風(fēng)能驅(qū)動(dòng)的LED路燈
這是一款可以被風(fēng)驅(qū)動(dòng)的LED路燈,如圖1.7.5所示。外面的燈罩是透明的扇片并排列成圓筒型,點(diǎn)亮后與我們傳統(tǒng)的走馬燈相似,而中間就是低能耗的LED燈,只要風(fēng)速達(dá)到1.5米/秒就可以被點(diǎn)亮,LED功率不大卻足夠照亮附近的區(qū)域。
白天只要有風(fēng)轉(zhuǎn)動(dòng)燈罩,LED路燈就能將風(fēng)能轉(zhuǎn)化成電能儲(chǔ)存起來,如同涓涓細(xì)流般匯聚起來讓LED燈點(diǎn)亮整個(gè)晚上。這款利用風(fēng)能的LED路燈將風(fēng)能發(fā)電部分與LED路燈完美地融為一體,簡(jiǎn)單而實(shí)用,而且扇片快速轉(zhuǎn)動(dòng)時(shí)透出光線的效果也是很獨(dú)特的。無需額外的電網(wǎng)供電與控制,幽藍(lán)色的LED路燈能夠很好地融入自然環(huán)境,在幽暗的環(huán)境里為人們提供一個(gè)明亮的守候。
圖1.7.5 風(fēng)能驅(qū)動(dòng)的LED路燈

直接用手指掌控的LED
現(xiàn)實(shí)生活中我們習(xí)慣用開關(guān)來控制燈光的關(guān)閉,燈的亮度,現(xiàn)在介紹的是一款可以帶觸摸的智能控制燈亮程度的LED臺(tái)燈,如圖1.7.6所示。或許這樣酷的臺(tái)燈會(huì)出現(xiàn)在某個(gè)精致的書吧,在面板上方用手指輕觸感應(yīng)用手指跨度的距離對(duì)LED燈光強(qiáng)弱進(jìn)行控制,關(guān)閉燈光的方式是迅速劃過面板。
圖1.7.6 手指掌控的LED
【挑戰(zhàn)自我】
同學(xué)們想一想我們還可以制作哪些有創(chuàng)意的LED?我們?cè)O(shè)計(jì)的LED還有哪些地方需要改進(jìn)?

第二章 智能風(fēng)扇


第1課 聲控風(fēng)扇
風(fēng)扇是我們生活中常見的家用電器,它是通過直流電機(jī)帶動(dòng)扇葉轉(zhuǎn)動(dòng)的,可以用Arduino控制風(fēng)扇嗎?如何控制呢?在這節(jié)課里,我們可以理解Arduino控制直流電機(jī)的方式以及制作聲控風(fēng)扇。
【任務(wù)導(dǎo)航】
1. Romeo控制直流電機(jī);
2. 制作聲控風(fēng)扇。
【材料閱讀】
1.Romeo控制直流電機(jī)
Romeo控制器不僅繼承Arduino328控制器所有的特性,而且集成了電機(jī)驅(qū)動(dòng)、按鈕、IO擴(kuò)展板、無線數(shù)據(jù)串行通訊等接口。由于本節(jié)課主要用到的是帶動(dòng)風(fēng)扇的電機(jī),這里就主要講解一下Romeo中直流電機(jī)的控制。
控制LED是將LED模塊直接連接到數(shù)字針腳,那么控制風(fēng)扇是不是也將電機(jī)直接連接到數(shù)字針腳呢?當(dāng)然不是,因?yàn)獒樐_直接輸出的電流太小,無法帶動(dòng)電機(jī)轉(zhuǎn)動(dòng),所以需要專門的電機(jī)輸出——Romeo板的L298驅(qū)動(dòng)。
Romeo中電機(jī)控制針跳線,將分配用于電機(jī)控制針腳為數(shù)字口4、5、6、7。拔掉跳線將釋放數(shù)字口,電機(jī)控制器將被禁用。接線圖如2.1.1所示,連接電機(jī)的地方變式電機(jī)驅(qū)動(dòng)模塊。另外,Romeo可以使用外接電源,也可不使用,通過跳線控制。
圖2.1.1 電機(jī)接線圖
Romeo控制電機(jī)有兩種模式:PWM模式和PLL模式,這里我們用到的是PWM模式,PLL模式在視野拓展中會(huì)有介紹。通過改變兩個(gè)數(shù)字IO針腳和兩個(gè)PWM針腳的PWM對(duì)直流電動(dòng)機(jī)控制端口實(shí)現(xiàn)。如表2.1.1是PWM控制模式的針腳分配,圖2.1.2是對(duì)應(yīng)的實(shí)物。其中,M1是電機(jī)1,M2是電機(jī)2。
表2.1.1 PWM針腳分配
針腳
功能
4
電機(jī)1的方向控制
5
電機(jī)1的PWM控制
6
電機(jī)2的PWM控制
7
電機(jī)2的方向控制
圖2.1.2 PWM控制模式
2.模擬聲音傳感器
模擬聲音傳感器在第一章進(jìn)行了簡(jiǎn)單的介紹,這里再具體介紹一下。它是一款簡(jiǎn)單、實(shí)惠的電子耳朵,它能“聽到”聲音的大小,并轉(zhuǎn)化為模擬信號(hào)。通過模擬反饋電壓信號(hào)的大小值體現(xiàn)環(huán)境聲音的大小。要一個(gè)簡(jiǎn)單的3芯數(shù)據(jù)線就能將它連接到“大腦”Arduino控制器。Arduino在“聽到”不同強(qiáng)弱的聲音后做出你設(shè)定的反應(yīng)。它是基于麥克風(fēng)為聲音檢測(cè)的傳感器,可用來對(duì)周圍環(huán)境中的聲音強(qiáng)度進(jìn)行檢測(cè),具有300倍的放大器,輸出模擬信號(hào)能使用3.3V和5V為基準(zhǔn)AD采集,可以用來實(shí)現(xiàn)根據(jù)聲音大小進(jìn)行互動(dòng)的效果、制作聲控機(jī)器人、聲控開關(guān)、聲控報(bào)警等。實(shí)物如圖2.1.3所示,接線時(shí)注意連接模擬針腳。
圖2.1.3 模擬聲音傳感器
【動(dòng)手操作】
活動(dòng)主題:制作我的聲控風(fēng)扇
同學(xué)們?cè)诹私饬讼嚓P(guān)的知識(shí)后,可以自己制作本課的聲控風(fēng)扇了,我們用到的器材主要是Romeo板子、模擬聲音傳感器、風(fēng)扇(帶直流電機(jī))。
1.硬件搭建(聲控風(fēng)扇的連接)
在連接物理電路時(shí),需要注意:模擬聲音傳感器接到模擬口(程序中,傳感器連接的是模擬口1,電機(jī)接的是M1接線柱)。
  • 參考程序
(1)讀取模擬聲音傳感器的值
圖2.1.4 讀取模擬聲音傳感器的值
(2)聲控風(fēng)扇
圖2.1.5 聲控風(fēng)扇
【探究思考】
請(qǐng)同學(xué)們討論一下,在生活中聲控風(fēng)扇可以用在哪里呢?哪些地方也用到了聲音控制?
【視野拓展】
1.直流電機(jī)的控制方式
直流電機(jī)是將直流電能轉(zhuǎn)換成機(jī)械能的裝置,是目前應(yīng)用最廣泛的一種機(jī)器人驅(qū)動(dòng)器件,具有效率高、調(diào)速性能好和起動(dòng)轉(zhuǎn)矩大等特點(diǎn)。直流電機(jī)應(yīng)用磁感應(yīng)原理將電能轉(zhuǎn)換為機(jī)械能,在磁場(chǎng)中放入通有電流的導(dǎo)體就會(huì)產(chǎn)生磁感應(yīng)效應(yīng)。
圖2.1.7中所示為一個(gè)典型的直流電機(jī)控制電路。電路得名于“H橋驅(qū)動(dòng)電路”是因?yàn)樗男螤羁崴谱帜窰。在這里,4個(gè)三極管組成H的4條垂直腿,而電機(jī)就是H中的橫杠(注意:圖2.1.7及隨后的兩個(gè)圖都只是示意圖,而不是完整的電路圖,其中三極管的驅(qū)動(dòng)電路沒有畫出來)。
如圖所示,H橋式電機(jī)驅(qū)動(dòng)電路包括4個(gè)三極管和一個(gè)電機(jī)。要使電機(jī)運(yùn)轉(zhuǎn),必須導(dǎo)通對(duì)角線上的一對(duì)三極管。根據(jù)不同三極管對(duì)的導(dǎo)通情況,電流可能會(huì)從左至右或從右至左流過電機(jī),從而控制電機(jī)的轉(zhuǎn)向。
圖2.1.6 H橋驅(qū)動(dòng)電路示意圖
要使電機(jī)運(yùn)轉(zhuǎn),必須使對(duì)角線上的一對(duì)三極管導(dǎo)通。例如,如圖2.1.8所示,當(dāng)Q1管和Q4管導(dǎo)通時(shí),電流就從電源正極經(jīng)Q1從左至右穿過電機(jī),然后再經(jīng)Q4回到電源負(fù)極。按圖中電流箭頭所示,該流向的電流將驅(qū)動(dòng)電機(jī)順時(shí)針轉(zhuǎn)動(dòng)。當(dāng)三極管Q1和Q4導(dǎo)通時(shí),電流將從左至右流過電機(jī),從而驅(qū)動(dòng)電機(jī)按特定方向轉(zhuǎn)動(dòng)(電機(jī)周圍的箭頭指示為順時(shí)針方向)。
圖2.1.7 H橋驅(qū)動(dòng)電動(dòng)機(jī)順時(shí)針轉(zhuǎn)動(dòng)
圖2.1.9所示為另一對(duì)三極管Q2和Q3導(dǎo)通的情況,電流將從右至左流過電機(jī)。當(dāng)三極管Q2和Q3導(dǎo)通時(shí),電流將從右至左流過電機(jī),從而驅(qū)動(dòng)電機(jī)沿另一方向轉(zhuǎn)動(dòng)(電機(jī)周圍的箭頭表示為逆時(shí)針方向)。
圖2.1.8 H橋驅(qū)動(dòng)電動(dòng)機(jī)逆時(shí)針轉(zhuǎn)動(dòng)
2.PLL控制模式
Romeo也支持PLL相位鎖相環(huán)控制模式。如表2.1.2是PLL控制模式的針腳分配,圖2.1.10是對(duì)應(yīng)的實(shí)物圖。
表2.1.2 PLL針腳分配
針腳
功能
4
電機(jī)1啟用控制
5
電機(jī)1方向控制
6
電機(jī)2方向控制
7
電機(jī)2啟用控制
圖2.1.9 PLL控制模式
對(duì)這種控制模式感興趣的同學(xué)可以利用網(wǎng)絡(luò)查找并了解一下。
【挑戰(zhàn)自我】
我們制作的聲控風(fēng)扇有聲音時(shí)轉(zhuǎn)動(dòng),沒聲音時(shí)馬上就停掉了,如果想讓風(fēng)扇過一會(huì)在停掉,可以怎樣解決呢?
回想一下LED中學(xué)過按鈕可以控制LED的亮滅,可以控制風(fēng)扇的開關(guān)嗎?自己嘗試一下。

第2課 換擋風(fēng)扇
家中的風(fēng)扇一般是可以換擋的,而上節(jié)課我們制作的風(fēng)扇不能實(shí)現(xiàn)這個(gè)功能。Arduino可以制作出換擋風(fēng)扇嗎?答案是肯定的,這節(jié)課就來學(xué)習(xí)換擋風(fēng)扇的制作。
【任務(wù)導(dǎo)航】
1.掌握選擇結(jié)構(gòu)的嵌套;
2.進(jìn)一步熟悉PWM控制直流電機(jī)的速度;
3.制作換擋風(fēng)扇。
【材料閱讀】
1.選擇結(jié)構(gòu)
我們前面已經(jīng)學(xué)習(xí)過選擇結(jié)構(gòu),包括“如果……”和“如果……否則……”兩種基本結(jié)構(gòu),如圖2.2.1所示:
圖2.2.1 選擇結(jié)構(gòu)
其實(shí)選擇結(jié)構(gòu)還可以嵌套使用,如圖2.2.2所示:
圖2.2.2 選擇結(jié)構(gòu)的嵌套
2.用按鈕換擋
用按鈕換擋可以制作出換擋風(fēng)扇,用自然語言描述換擋風(fēng)扇的功能:初始狀態(tài)是空檔,風(fēng)扇靜止;按鈕按下一次,風(fēng)扇一檔,風(fēng)扇轉(zhuǎn)動(dòng)稍快;再按一次,風(fēng)扇二檔,風(fēng)扇轉(zhuǎn)動(dòng)更快;再按一次,回空擋,風(fēng)扇停止轉(zhuǎn)動(dòng)……
控制風(fēng)扇轉(zhuǎn)速是通過設(shè)定針腳5的值,前提是電機(jī)接的M1接線柱;若接M2的話,則是設(shè)定針腳6的值。注意:值的取值范圍應(yīng)該是0-255之間。
【動(dòng)手操作】
活動(dòng)主題:制作我的換擋風(fēng)扇
  • 任務(wù)描述
同學(xué)們?cè)诹私饬讼嚓P(guān)的知識(shí)后,可以自己制作本課的換擋風(fēng)扇了,我們用到的器材主要是Romeo板子、按鈕、風(fēng)扇(帶直流電機(jī))。
1.硬件搭建(換擋風(fēng)扇的連接)
在連接物理電路時(shí),需要注意:按鈕接到數(shù)字口上(程序中,按鈕連接的是數(shù)字口2,電機(jī)接的是M1接線柱)。
2.參考程序
圖2.2.3 換擋風(fēng)扇
【探究思考】
想一想,你做的換擋風(fēng)扇性能如何,符合你的預(yù)期嗎?請(qǐng)同學(xué)們相互討論一下,你的風(fēng)扇還可以做哪些改進(jìn),或者是還可以添加哪些創(chuàng)意的效果。
【視野拓展】
1.ArduBlock中控制電機(jī)的模塊
我們都使用了“設(shè)定針腳數(shù)字值”和“設(shè)定針腳模擬值”這兩個(gè)模塊來控制電機(jī)的轉(zhuǎn)動(dòng),以控制電機(jī)M1為例,我們可以通過設(shè)定針腳4的高低電平來控制其轉(zhuǎn)動(dòng)方向,通過設(shè)定針腳5的PWM值來控制其轉(zhuǎn)動(dòng)速度。
其實(shí),ArduBlock還為我們提供了其它的電機(jī)控制模塊。在“教育機(jī)器人”一欄中,分別有“電機(jī)運(yùn)行”“設(shè)置電機(jī)”“停止電機(jī)”三個(gè)電機(jī)控制模塊。下面我們就分別介紹一下這三個(gè)模塊。
“電機(jī)運(yùn)行”模塊如圖2.2.4所示,是同時(shí)設(shè)置電機(jī)M1和M2的轉(zhuǎn)動(dòng)方向和轉(zhuǎn)動(dòng)速度。參數(shù)的正負(fù)代表轉(zhuǎn)動(dòng)方向,參數(shù)值大小代表轉(zhuǎn)動(dòng)速度,參數(shù)范圍在-255到255之間。
圖2.2.4 “電機(jī)運(yùn)行”模塊
“設(shè)置電機(jī)”模塊如圖2.2.5所示,是設(shè)置某一個(gè)電機(jī)的轉(zhuǎn)動(dòng)方向與轉(zhuǎn)動(dòng)速度。上面參數(shù)是電機(jī)編號(hào),下面參數(shù)是電機(jī)轉(zhuǎn)動(dòng)方向和轉(zhuǎn)動(dòng)速度,同“電機(jī)運(yùn)行”。
圖2.2.5 “設(shè)置電機(jī)”模塊
“停止電機(jī)”模塊如圖2.2.6所示,是停止所有電機(jī)。
圖2.2.6 “停止電機(jī)”模塊
這幾個(gè)模塊使用起來都比較簡(jiǎn)單,有興趣的同學(xué)可以嘗試試用一下。
2.延時(shí)消抖
還記得LED中按鈕抖動(dòng)現(xiàn)象嗎?細(xì)心的同學(xué)會(huì)發(fā)現(xiàn),我們這里的按鈕也會(huì)有抖動(dòng)現(xiàn)象。對(duì)于本課中的風(fēng)扇利用延時(shí)消抖,其實(shí)很簡(jiǎn)單,就在程序最后加上一個(gè)小的延時(shí),如下面紅框中標(biāo)出的即是。
圖2.2.7 延時(shí)消抖

【挑戰(zhàn)自我】
    請(qǐng)同學(xué)們思考一下,根據(jù)前面學(xué)過的按鈕控制的LED,若使用兩個(gè)按鈕做換擋風(fēng)扇,一個(gè)是加檔,一個(gè)是減檔,你可以實(shí)現(xiàn)嗎?嘗試一下。再想一想還有其他的控制方式嗎?

第3課 自動(dòng)變速風(fēng)扇
通過前面的學(xué)習(xí),同學(xué)們了解了風(fēng)扇的轉(zhuǎn)速是可以變化的,比如用按鈕制作的換擋風(fēng)扇,那么風(fēng)扇可以根據(jù)我們的需要自動(dòng)變速嗎?聽起來很酷吧。在這節(jié)課里,我們就來嘗試一下制作自動(dòng)變速風(fēng)扇。
【任務(wù)導(dǎo)航】
1.了解超聲波傳感器及其測(cè)距原理;
2.制作自動(dòng)變速風(fēng)扇。
【材料閱讀】
1.超聲波傳感器
我們使用的超聲波傳感器是HC-SR04超聲波傳感器,它基于聲納原理,通過監(jiān)測(cè)發(fā)射一連串調(diào)制后的超聲波及其回波的時(shí)間差來得知傳感器與目標(biāo)物體間的距離值。其性能比較穩(wěn)定,測(cè)度距離精確,盲區(qū)為2cm,如圖2.3.1是HC-SR04超聲波傳感器。
圖2.3.1 HC-SR04超聲波傳感器
HC-SR04超聲波傳感器的主要參數(shù)如下:
  • 使用電壓:DC5V
  • 靜態(tài)電流:小于2mA
  • 電平輸出:高5V,低0V
  • 感應(yīng)角度:不大于15°;
  • 探測(cè)距離:2cm450cm
  • 精度:0.2cm
在使用HC-SR04超聲波傳感器時(shí),應(yīng)先將其插好在電路板上再通電,避免產(chǎn)生高電平的誤動(dòng)作,如果產(chǎn)生了,重新通電方可解決。針腳定義,如表2.3.1所示。
表2.3.1 HC-SR04超聲波傳感器針腳定義
針腳
說明
VCC
電源+5V輸入
GND
電源地線
Echo
超聲波接收端
Trig
超聲波發(fā)射端

2.超聲波傳感器測(cè)距
在這里,我們只學(xué)習(xí)超聲波測(cè)距的最簡(jiǎn)單的一種,也是本課需要用到的,即將超聲波傳感器固定住,此時(shí)可以測(cè)量其與障礙物之間的距離。HC-SR04的工作原理:(1)采用IO觸發(fā)測(cè)距,給至少10us的高電平信號(hào);(2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;(3)有信號(hào)返回,通過IO輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間,測(cè)試距離=(高電平時(shí)間×聲速)/2。
在ArduBlock里面可以直接讀出超聲波傳感器測(cè)到的距離值,如下圖2.3.2所示,Trig連接數(shù)字口8,Echo連接數(shù)字口9。
圖2.3.2 超聲波測(cè)距并顯示
【動(dòng)手操作】
活動(dòng)主題:制作我的自動(dòng)變速風(fēng)扇
同學(xué)們?cè)诹私饬讼嚓P(guān)的知識(shí)后,可以自己制作本課的自動(dòng)變速風(fēng)扇了,我們用到的器材主要是Romeo板子、HC-SR04超聲波傳感器、風(fēng)扇(帶直流電機(jī))。
1.硬件搭建
在連接物理電路時(shí),需要注意:Trig和Echo分別接到數(shù)字口(程序中,Trig和Echo分別連接數(shù)字口8和9,電機(jī)接的是M1接線柱)。
2.參考程序
由于風(fēng)扇、電機(jī)或者載重的不同,使風(fēng)扇轉(zhuǎn)動(dòng)的最小電平也會(huì)不同的,請(qǐng)同學(xué)們自己檢測(cè)一下使風(fēng)扇轉(zhuǎn)動(dòng)的PWM值最小是多少,并記錄下來。
圖2.3.3 自動(dòng)變速風(fēng)扇
【探究思考】
請(qǐng)同學(xué)們思考并討論一下,在我們?nèi)粘I钪校睦镉杏玫匠暡y(cè)距?哪里可以運(yùn)用超聲波測(cè)距呢?超聲波測(cè)距都有哪些優(yōu)缺點(diǎn)?
【視野拓展】
1.超聲波測(cè)距
由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測(cè)量,如測(cè)距儀和物位測(cè)量?jī)x等都可以通過超聲波來實(shí)現(xiàn)。利用超聲波檢測(cè)往往比較迅速、方便、計(jì)算簡(jiǎn)單、易于做到實(shí)時(shí)控制,并且在測(cè)量精度方面能達(dá)到工業(yè)實(shí)用的要求,因此在移動(dòng)機(jī)器人研制上也得到了廣泛的應(yīng)用。
超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計(jì)時(shí)。超聲波在空氣中的傳播速度為340m/s,根據(jù)計(jì)時(shí)器記錄的時(shí)間t,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離(s),即:s=340×t/2 。這就是所謂的時(shí)間差測(cè)距法。
超聲波測(cè)距的原理是利用超聲波在空氣中的傳播速度為已知,測(cè)量聲波在發(fā)射后遇到障礙物反射回來的時(shí)間,根據(jù)發(fā)射和接收的時(shí)間差計(jì)算出發(fā)射點(diǎn)到障礙物的實(shí)際距離。由此可見,超聲波測(cè)距原理與雷達(dá)原理是一樣的。
測(cè)距的公式表示為:L=C×T
式中L為測(cè)量的距離長(zhǎng)度;C為超聲波在空氣中的傳播速度;T為測(cè)量距離傳播的時(shí)間差(T為發(fā)射到接收時(shí)間數(shù)值的一半)。
超聲波測(cè)距主要應(yīng)用于倒車提醒、建筑工地、工業(yè)現(xiàn)場(chǎng)等的距離測(cè)量,雖然目前的測(cè)距量程上能達(dá)到百米,但測(cè)量的精度往往只能達(dá)到厘米數(shù)量級(jí)。
2.紅外線測(cè)距
還有一種測(cè)距是利用紅外線測(cè)距的。紅外測(cè)距原理和雷達(dá)測(cè)距原理相似,是發(fā)射紅外線然后測(cè)量回波時(shí)間,光速乘以時(shí)間再除以2就得到距離。
由于光速很快,而紅外測(cè)距儀一般測(cè)量距離比較短,用常規(guī)的脈沖法(發(fā)射一個(gè)脈沖然后計(jì)算收到反射脈沖的時(shí)間)常常因?yàn)闀r(shí)間過短而無法測(cè)量,所以一般是將紅外線發(fā)射功率調(diào)制上一個(gè)較低的頻率,然后測(cè)量回波與發(fā)射波的相位差,根據(jù)相位差可以計(jì)算出回波時(shí)間。利用紅外線發(fā)射裝置發(fā)出紅外線,經(jīng)過障礙物反射以后,被一紅外線接收探頭收到,將接收到的紅外線信號(hào)轉(zhuǎn)化為電信號(hào)進(jìn)行計(jì)算,公式就是從發(fā)射到接受到的時(shí)間的一半乘以光速!
紅外測(cè)距還是有很多應(yīng)用的,比如:汽車超速抓拍、貨車限高檢測(cè)、飛機(jī)高度檢測(cè)、列車到站檢測(cè)、接觸網(wǎng)檢測(cè)、船舶對(duì)接檢測(cè)、礦井電梯位置檢測(cè)、倉儲(chǔ)料位監(jiān)測(cè)、橋梁高度檢測(cè)、吊機(jī)高度位置檢測(cè)、礦井輪廓掃描等等。
【挑戰(zhàn)自我】
請(qǐng)同學(xué)們思考一下,假如超聲波傳感器可以前后移動(dòng),那么測(cè)距的時(shí)候需要做哪些考慮呢?寫下你的想法,與其他同學(xué)討論一下。

第4課 遙控風(fēng)扇
紅外遙控器是我們常用的一種遙控設(shè)備,可以用它控制電視、空調(diào)等家用電器。前面我們用過的風(fēng)扇也是生活中常見的家用電器,可以用遙控控制嗎?這節(jié)課通過對(duì)紅外遙控的學(xué)習(xí),我們就可以控制風(fēng)扇了,開始智能家居的一點(diǎn)嘗試吧。
【任務(wù)導(dǎo)航】
1.了解紅外遙控套件;
2.制作遙控風(fēng)扇。
【材料閱讀】
1.紅外遙控套件簡(jiǎn)介
紅外遙控是目前使用最廣泛的一種通信和遙控手段。由于紅外遙控裝置具有體積小、功耗低、功能強(qiáng)、成本低等特點(diǎn),繼彩電、錄像機(jī)之后,在錄音機(jī)、音響設(shè)備、空凋以及玩具等其它小型電器裝置上也紛紛采用紅外遙控。工業(yè)設(shè)備中,在高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線遙控不僅完全可靠而且能有效地隔離電氣干擾。
紅外遙控主要包括紅外遙控器和紅外接收頭,如圖2.4.1所示。紅外遙控器有21個(gè)按鍵,紅外接收頭針腳的定義是:D連接數(shù)字口,VCC接5V,GND接GND。
圖2.4.1 紅外遙控套件
紅外遙控器都有對(duì)應(yīng)的鍵值,在使用時(shí),首先需對(duì)遙控器進(jìn)行解碼,本書中用到的紅外遙控器的鍵值(十六進(jìn)制的數(shù)值)如表2.4.1所示。
表2.4.1 紅外遙控器鍵值附表
遙控器字符
鍵值
遙控器字符
鍵值
紅色按鈕
FD00FF
ST/REPT
FD708F
VOL+
FD807F
1
FD08F7
FUNC/STOP
FD40BF
2
FD8877
左2個(gè)三角
FD20DF
3
FD48B7
暫停鍵
FDA05F
4
FD28D7
右2個(gè)三角
FD609F
5
FDA857
向下三角
FD10EF
6
FD6897
VOL-
FD906F
7
FD18E7
向上三角
FD50AF
8
FD9867
0
FD30CF
9
FD58A7
EQ
FDB04F




【動(dòng)手操作】
活動(dòng)主題:制作我的遙控風(fēng)扇
同學(xué)們?cè)诹私饬讼嚓P(guān)的知識(shí)后,可以自己制作本課的遙控風(fēng)扇了,我們用到的器材主要是Romeo板子、紅外遙控套件、風(fēng)扇(帶直流電機(jī))。功能:通過遙控控制風(fēng)扇開啟,關(guān)閉。
1.硬件搭建
在連接物理電路時(shí),需要注意:紅外接收頭連接到數(shù)字口,取出紅外遙控器電池外面的塑料絕緣片(程序中,紅外接收頭連接數(shù)字口11,電機(jī)接的是M1接線柱)。
  • 參考程序
(1)紅外遙控器的解碼程序
圖2.4.2 紅外遙控器的解碼
(2)遙控風(fēng)扇的參考程序
圖2.4.3 遙控風(fēng)扇
【探究思考】
請(qǐng)同學(xué)們思考一下,在我們小時(shí)候的玩具中,有沒有用到遙控的呢?比如遙控飛機(jī)、遙控汽車等,它們是紅外遙控嗎?如果不是,與紅外遙控有什么區(qū)別?
【視野拓展】
1.紅外遙控工作原理
紅外遙控器發(fā)出的信號(hào)是一連串的二進(jìn)制脈沖碼,為了使其在無線傳輸過程中免受其他紅外信號(hào)的干擾,通常都是先將其調(diào)制在特定的載波頻率上,然后再經(jīng)紅外發(fā)射二極管發(fā)射出去,而紅外線接收裝置則要濾除其他雜波,只接收該特定頻率的信號(hào)并將其還原成二進(jìn)制脈沖碼,也就是解調(diào)。
內(nèi)置接收管將紅外發(fā)射管發(fā)射出來的光信號(hào)轉(zhuǎn)換為微弱的電信號(hào),此信號(hào)經(jīng)由IC內(nèi)部放大器進(jìn)行放大,然后通過自動(dòng)增益控制、帶通濾波、解調(diào)變、 波形整形后還原為遙控器發(fā)射出的原始編碼,經(jīng)由接收頭的信號(hào)輸出腳輸入到電器上的編碼識(shí)別電路。
要想對(duì)某一遙控器進(jìn)行解碼必須要了解該遙控器的編碼方式,這就叫知己知彼,百戰(zhàn)不殆 。本節(jié)課使用的遙控器的編碼方式為:NEC協(xié)議。下面就介紹一下NEC協(xié)議:
(1)8位地址位,8位命令位;
(2)為了可靠性,地址位和命令為被傳輸兩次;
(3)脈沖位置調(diào)制;
(4)載波頻率38khz;
(5)每一位的時(shí)間為1.125ms或2.25ms。
2.智能家居
智能家居是以住宅為平臺(tái),利用綜合布線技術(shù)、網(wǎng)絡(luò)通信技術(shù)、 智能家居-系統(tǒng)設(shè)計(jì)方案安全防范技術(shù)、自動(dòng)控制技術(shù)、音視頻技術(shù)將家居生活有關(guān)的設(shè)施集成,構(gòu)建高效的住宅設(shè)施與家庭日程事務(wù)的管理系統(tǒng),提升家居安全性、便利性、舒適性、藝術(shù)性,并實(shí)現(xiàn)環(huán)保節(jié)能的居住環(huán)境。
智能家居是在互聯(lián)網(wǎng)影響之下的物聯(lián)化體現(xiàn)。智能家居通過物聯(lián)網(wǎng)技術(shù)將家中的各種設(shè)備(如音視頻設(shè)備、照明系統(tǒng)、窗簾控制、空調(diào)控制、安防系統(tǒng)、數(shù)字影院系統(tǒng)、網(wǎng)絡(luò)家電以及三表抄送等)連接到一起,提供家電控制、照明控制、窗簾控制、電話遠(yuǎn)程控制、室內(nèi)外遙控、防盜報(bào)警、環(huán)境監(jiān)測(cè)、暖通控制、紅外轉(zhuǎn)發(fā)以及可編程定時(shí)控制等多種功能和手段。與普通家居相比,智能家居不僅具有傳統(tǒng)的居住功能,兼?zhèn)浣ㄖ⒕W(wǎng)絡(luò)通信、信息家電、設(shè)備自動(dòng)化,集系統(tǒng)、結(jié)構(gòu)、服務(wù)、管理為一體的高效、舒適、安全、便利、環(huán)保的居住環(huán)境,提供全方位的信息交互功能。幫助家庭與外部保持信息交流暢通,優(yōu)化人們的生活方式,幫助人們有效安排時(shí)間,增強(qiáng)家居生活的安全性,甚至為各種能源費(fèi)用節(jié)約資金。
同學(xué)們有沒有想過通過紅外遙控控制家中的其他家電呢?趕快體驗(yàn)一下智能家居吧!
【挑戰(zhàn)自我】
前面我們做過一個(gè)換擋風(fēng)扇,這次我們使用紅外遙控控制風(fēng)扇,做一個(gè)可換擋的風(fēng)扇。

第5課 搖頭風(fēng)扇
前面我們制作的風(fēng)扇都是朝一個(gè)方向吹的,而家里的有些風(fēng)扇是可以搖頭的,能不能讓我們的風(fēng)扇也搖頭呢?當(dāng)然可以,這就需要舵機(jī)的加入了,這節(jié)課我們將了解舵機(jī)的有關(guān)知識(shí),并制作出搖頭風(fēng)扇。
【任務(wù)導(dǎo)航】
1.了解舵機(jī)相關(guān)知識(shí);
2.制作搖頭風(fēng)扇。
【材料閱讀】
舵機(jī)簡(jiǎn)介
舵機(jī),又稱伺服電機(jī),航海模愛好者們經(jīng)常用這種電機(jī)來控制模型的方向舵,所以它就俗稱為“舵機(jī)”。其工作過程是把所接收到的電信號(hào)轉(zhuǎn)換成電動(dòng)機(jī)軸上的角位移或角速度輸出。目前廣泛應(yīng)用于機(jī)器人控制領(lǐng)域中。本書用到的舵機(jī)是TowerPro出品的SG90舵機(jī),如圖2.5.1所示。該舵機(jī)采用高強(qiáng)度ABS透明外殼配以內(nèi)部高精度尼龍齒輪組,加上精準(zhǔn)的控制電路、高檔輕量化空心杯電機(jī)使該微型舵機(jī)的重量只有9克,而輸出力矩達(dá)到了驚人的1.8kg*cm。標(biāo)準(zhǔn)的舵機(jī)有三條控制線,分別是電源、地和信號(hào)線。舵機(jī)的針腳定義為:棕色線——GND,紅色線——5V,橙色線——信號(hào)線。
圖2.5.1 SG90舵機(jī)
舵機(jī)的控制一般需要不斷地發(fā)給它一個(gè)高電平時(shí)間在1-2ms之間、低電平時(shí)間在5-20ms之間的脈沖信號(hào)。注意:Arduino板上支持舵機(jī)的只有數(shù)字口9和10,因此舵機(jī)橙色線只能連接數(shù)字口9或10,另外我們使用的SG90舵機(jī)轉(zhuǎn)動(dòng)角度在0-180°之間。
【動(dòng)手操作】
活動(dòng)主題:制作我的搖頭風(fēng)扇
同學(xué)們?cè)诹私饬讼嚓P(guān)的知識(shí)后,可以自己制作本課的搖頭風(fēng)扇了,我們用到的器材主要是Romeo板子、舵機(jī)、風(fēng)扇(帶直流電機(jī))。
1.硬件搭建(搖頭風(fēng)扇的連接)
在連接物理電路時(shí),需要注意:舵機(jī)接到數(shù)字針腳(程序中,舵機(jī)連接的是數(shù)字針腳9,電機(jī)接的是M1接線柱)。
2.控制舵機(jī)從0°轉(zhuǎn)到180°的參考程序
圖2.5.3 控制舵機(jī)
3.搖頭風(fēng)扇的參考程序
搖頭風(fēng)扇是舵機(jī)從0°轉(zhuǎn)到180°,然后再轉(zhuǎn)回來,并且一直保持風(fēng)扇的電機(jī)開啟即可,如下所示。
圖2.5.4 搖頭風(fēng)扇
【探究思考】
請(qǐng)同學(xué)們觀察一下,風(fēng)扇都是自動(dòng)搖頭,我們可以控制它嗎?討論一下,如何實(shí)現(xiàn)?

【視野拓展】
1.舵機(jī)的工作原理
舵機(jī)是遙控模型控制動(dòng)作的動(dòng)力來源,不同類型的遙控模型所需的舵機(jī)種類也隨之不同。如何審慎地選擇經(jīng)濟(jì)且合乎需求的舵機(jī),也是一門不可輕忽的學(xué)問。
工作原理:控制信號(hào)由接收機(jī)的通道進(jìn)入信號(hào)調(diào)制芯片,獲得直流偏置電壓。它內(nèi)部有一個(gè)基準(zhǔn)電路,產(chǎn)生周期為20ms,寬度為1.5ms的基準(zhǔn)信號(hào),將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負(fù)輸出到電機(jī)驅(qū)動(dòng)芯片決定電機(jī)的正反轉(zhuǎn)。當(dāng)電機(jī)轉(zhuǎn)速一定時(shí),通過級(jí)聯(lián)減速齒輪帶動(dòng)電位器旋轉(zhuǎn),使得電壓差為0,電機(jī)停止轉(zhuǎn)動(dòng)。當(dāng)然我們可以不用去了解它的具體工作原理,知道它的控制原理就夠了。就像我們使用晶體管一樣,知道可以拿它來做開關(guān)管或放大管就行了,至于管內(nèi)的電子具體怎么流動(dòng)是可以完全不用去考慮的。
2.舵機(jī)的控制方式
舵機(jī)的伺服系統(tǒng)由可變寬度的脈沖來進(jìn)行控制,控制線是用來傳送脈沖的。脈沖的參數(shù)有最小值,最大值,和頻率。一般而言,舵機(jī)的基準(zhǔn)信號(hào)都是周期為20ms,寬度為1.5ms。這個(gè)基準(zhǔn)信號(hào)定義的位置為中間位置。舵機(jī)有最大轉(zhuǎn)動(dòng)角度,中間位置的定義就是從這個(gè)位置到最大角度與最小角度的量完全一樣。最重要的一點(diǎn)是,不同舵機(jī)的最大轉(zhuǎn)動(dòng)角度可能不相同,但是其中間位置的脈沖寬度是一定的,那就是1.5ms。如圖2.5.5所示。
圖2.5.5 脈沖寬度
角度是由來自控制線的持續(xù)的脈沖所產(chǎn)生。這種控制方法叫做脈沖調(diào)制。脈沖的長(zhǎng)短決定舵機(jī)轉(zhuǎn)動(dòng)多大角度。例如:1.5毫秒脈沖會(huì)到轉(zhuǎn)動(dòng)到中間位置(對(duì)于180°舵機(jī)來說,就是90°位置)。當(dāng)控制系統(tǒng)發(fā)出指令,讓舵機(jī)移動(dòng)到某一位置,并讓他保持這個(gè)角度,這時(shí)外力的影響不會(huì)讓它的角度產(chǎn)生變化,但是這個(gè)是由上限的,上限就是他的最大扭力。除非控制系統(tǒng)不停的發(fā)出脈沖穩(wěn)定舵機(jī)的角度,舵機(jī)的角度不會(huì)一直不變。當(dāng)舵機(jī)接收到一個(gè)小于1.5ms的脈沖,輸出軸會(huì)以中間位置為標(biāo)準(zhǔn),逆時(shí)針旋轉(zhuǎn)一定角度。接收到的脈沖大于1.5ms情況相反。不同品牌,甚至同一品牌的不同舵機(jī),都會(huì)有不同的最大值和最小值。一般而言,最小脈沖為1ms,最大脈沖為2ms。如圖2.5.6所示。
圖2.5.6 脈沖寬度與轉(zhuǎn)動(dòng)角度
【挑戰(zhàn)自我】
搖頭風(fēng)扇很不錯(cuò)吧?但是我們并不希望它一直在搖頭,有什么辦法可以控制它嗎,以便于我們讓它搖頭才搖頭,不讓它搖頭就停止搖頭,試一試吧。

第6課 自動(dòng)跟蹤風(fēng)扇
通過上一節(jié)課,我們可以讓風(fēng)扇搖頭了,那么它可以自動(dòng)搖頭嗎?如何實(shí)現(xiàn)呢?這節(jié)課我們將學(xué)習(xí)數(shù)字防跌落傳感器,并通過兩個(gè)數(shù)字防跌落傳感器的配合使用制作自動(dòng)跟蹤風(fēng)扇。
【任務(wù)導(dǎo)航】
1.了解數(shù)字防跌落傳感器;
2.制作自動(dòng)跟蹤風(fēng)扇。
【材料閱讀】
1.數(shù)字防跌落傳感器
數(shù)字防跌落傳感器在第一章做過介紹,但因?yàn)槭沁x修,所以這里再重點(diǎn)講解一下。采用夏普公司的距離傳感器,有效測(cè)距10cm,開關(guān)量輸出,可當(dāng)作近距離避障傳感器使用。如圖2.6.1所示。
圖2.6.1 數(shù)字防跌落傳感器
數(shù)字防跌落傳感器輸出的信號(hào)為數(shù)字信號(hào),針腳定義為:紅線——5V,綠線——信號(hào),黑線——GND。接線圖如圖2.6.2所示。
圖2.6.2 數(shù)字防跌落傳感器接線圖
2.自動(dòng)跟蹤風(fēng)扇原理
自動(dòng)跟蹤風(fēng)扇,也可稱為自動(dòng)搖頭風(fēng)扇,是可以自動(dòng)感應(yīng)的風(fēng)扇,比如它可以隨手的晃動(dòng)跟著搖頭。它是通過左右兩個(gè)數(shù)字防跌落傳感器檢測(cè)障礙物的運(yùn)動(dòng)方向的,若左側(cè)傳感器檢測(cè)到障礙物而右側(cè)傳感器沒有檢測(cè)到,則舵機(jī)向左轉(zhuǎn)動(dòng);若右側(cè)傳感器檢測(cè)到障礙物而左側(cè)傳感器沒有檢測(cè)到,則舵機(jī)向右轉(zhuǎn)動(dòng);若兩側(cè)傳感器同時(shí)檢測(cè)到障礙物,則保持原來方向。
另外,數(shù)字防跌落傳感器的探頭前方無障礙時(shí)輸出高電平,有障礙時(shí)則相反。障礙在有效距離(10cm)內(nèi)則輸出低電平,否則是高電平。因此,可以通過比較左右傳感器的電平高低值判斷舵機(jī)的轉(zhuǎn)動(dòng)方向,即哪側(cè)電平低向哪側(cè)轉(zhuǎn)動(dòng)。
【動(dòng)手操作】
活動(dòng)主題:制作我的自動(dòng)跟蹤風(fēng)扇
同學(xué)們?cè)诹私饬讼嚓P(guān)的知識(shí)后,可以自己制作本課的自動(dòng)跟蹤風(fēng)扇了,我們用到的器材主要是Romeo板子、數(shù)字防跌落傳感器、舵機(jī)、風(fēng)扇(帶直流電機(jī))。功能:實(shí)現(xiàn)自動(dòng)跟蹤轉(zhuǎn)動(dòng)。
1.自動(dòng)跟蹤風(fēng)扇的連接
在連接物理電路時(shí),需要注意這樣幾點(diǎn):數(shù)字防跌落傳感器和舵機(jī)均連接數(shù)字口(程序中,數(shù)字防跌落傳感器分別連接數(shù)字口11和12,舵機(jī)連接數(shù)字口9,電機(jī)接的是M1接線柱)。
2.參考程序
圖2.6.3 自動(dòng)跟蹤風(fēng)扇
【探究思考】
請(qǐng)同學(xué)們思考一下,前面我們學(xué)過的超聲波測(cè)距可以用來做避障嗎?如果可以,你來試一試吧。
【視野拓展】
1.紅外傳感器
紅外傳感系統(tǒng)是用紅外線為介質(zhì)的測(cè)量系統(tǒng),紅外傳感技術(shù)已經(jīng)在現(xiàn)代科技、國防和工農(nóng)業(yè)等領(lǐng)域獲得了廣泛的應(yīng)用。紅外技術(shù)已經(jīng)眾所周知,這項(xiàng)技術(shù)在現(xiàn)代科技、國防科技和工農(nóng)業(yè)科技等領(lǐng)域得到了廣泛的應(yīng)用。紅外傳感系統(tǒng)是用紅外線為介質(zhì)的測(cè)量系統(tǒng),按照功能能夠分成五類:(1)輻射計(jì),用于輻射和光譜測(cè)量;(2)搜索和跟蹤系統(tǒng),用于搜索和跟蹤紅外目標(biāo),確定其空間位置并對(duì)它的運(yùn)動(dòng)進(jìn)行跟蹤;(3)熱成像系統(tǒng),可產(chǎn)生整個(gè)目標(biāo)紅外輻射的分布圖像;(4)紅外測(cè)距和通信系統(tǒng);(5)混合系統(tǒng),是指以上各類系統(tǒng)中的兩個(gè)或者多個(gè)的組合。
利用紅外線的物理性質(zhì)來進(jìn)行測(cè)量的傳感器。紅外線又稱紅外光,它具有反射、折射、散射、干涉、吸收等性質(zhì)。任何物質(zhì),只要它本身具有一定的溫度(高于絕對(duì)零度),都能輻射紅外線。紅外線傳感器測(cè)量時(shí)不與被測(cè)物體直接接觸,因而不存在摩擦,并且有靈敏度高,響應(yīng)速度快等優(yōu)點(diǎn)。
紅外線傳感器包括光學(xué)系統(tǒng)、檢測(cè)元件和轉(zhuǎn)換電路。光學(xué)系統(tǒng)按結(jié)構(gòu)不同可分為透射式和反射式兩類。檢測(cè)元件按工作原理可分為熱敏檢測(cè)元件和光電檢測(cè)元件。熱敏元件應(yīng)用最多的是熱敏電阻。熱敏電阻受到紅外線輻射時(shí)溫度升高,電阻發(fā)生變化,通過轉(zhuǎn)換電路變成電信號(hào)輸出。光電檢測(cè)元件常用的是光敏元件,通常由硫化鉛、硒化鉛、砷化銦、砷化銻、碲鎘汞三元合金、鍺及硅摻雜等材料制成。
紅外線傳感器常用于無接觸溫度測(cè)量,氣體成分分析和無損探傷,在醫(yī)學(xué)、軍事、空間技術(shù)和環(huán)境工程等領(lǐng)域得到廣泛應(yīng)用。例如采用紅外線傳感器遠(yuǎn)距離測(cè)量人體表面溫度的熱像圖,可以發(fā)現(xiàn)溫度異常的部位,及時(shí)對(duì)疾病進(jìn)行診斷治療(見熱像儀);利用人造衛(wèi)星上的紅外線傳感器對(duì)地球云層進(jìn)行監(jiān)視,可實(shí)現(xiàn)大范圍的天氣預(yù)報(bào);采用紅外線傳感器可檢測(cè)飛機(jī)上正在運(yùn)行的發(fā)動(dòng)機(jī)的過熱情況等。
【挑戰(zhàn)自我】
我們已經(jīng)學(xué)過風(fēng)扇的多種控制,想一想還可以做出什么創(chuàng)意來?查找并統(tǒng)計(jì)一下還有哪些傳感器。

第7課 風(fēng)扇綜合創(chuàng)意
通過前面6節(jié)課的學(xué)習(xí),我們已經(jīng)了解了許多關(guān)于風(fēng)扇的做法,在學(xué)習(xí)和制作過程中,同學(xué)們有沒有產(chǎn)生一些創(chuàng)意的想法嗎?如果有的話,那么這節(jié)課就讓我們來實(shí)現(xiàn)吧。
【任務(wù)導(dǎo)航】
1.制作定時(shí)風(fēng)扇、溫控風(fēng)扇或傾倒自動(dòng)停止風(fēng)扇中的一種;
2.自己設(shè)計(jì)并嘗試實(shí)現(xiàn)一種有創(chuàng)意的風(fēng)扇;
3.評(píng)價(jià)自己和他人的創(chuàng)意風(fēng)扇。
【材料閱讀】
1.溫度傳感器
本書用到的溫度傳感器是DFRobot的LM35線性模擬溫度傳感器,如圖2.7.1所示。基于LM35半導(dǎo)體的溫度傳感器,可以用來對(duì)環(huán)境溫度進(jìn)行定性的檢測(cè)。溫度測(cè)量常用的傳感器包括熱電偶,鉑電阻,熱敏電阻和半導(dǎo)體測(cè)溫芯片,其中熱電偶常用于高溫測(cè)量,鉑電阻用于中溫測(cè)量(到攝氏800度左右),而熱敏電阻和半導(dǎo)體溫度傳感器適合于100-200度以下的溫度測(cè)量,其中半導(dǎo)體溫度傳感器的應(yīng)用簡(jiǎn)單,有較好的線性度和較高的靈敏度。LM35半導(dǎo)體溫度傳感器是美國國家半導(dǎo)體公司生產(chǎn)的線性溫度傳感器。其測(cè)溫范圍是-40℃到150℃,靈敏度為10mV/℃,輸出電壓與溫度成正比。LM35線性溫度傳感器與Arduino專用傳感器擴(kuò)展板結(jié)合使用,可以非常容易地實(shí)現(xiàn)與環(huán)境溫度感知相關(guān)的互動(dòng)效果。
圖2.7.1 LM35線性模擬溫度傳感器
LM35線性模擬溫度傳感器的針腳定義為:1——模擬輸出信號(hào),2——GND,3——VCC。接線圖如圖2.7.2所示。
圖2.7.2 模擬溫度傳感器接線圖
LM35線性模擬溫度傳感器的測(cè)試代碼如下:
圖2.7.3 溫度傳感器
2.傾角傳感器
本書用到的傾角傳感器是DFRobot的數(shù)字鋼球傾角傳感器,如圖2.7.4所示。基于鋼球開關(guān)的數(shù)字模塊,利用鋼球的特性,通過重力作用使鋼球向低處滾動(dòng),從而使開關(guān)閉合或斷開,因此也可以作為簡(jiǎn)單的傾角傳感器使用。鋼球開關(guān)數(shù)字輸入模塊,與Arduino專用傳感器擴(kuò)展板結(jié)合使用,能夠?qū)崿F(xiàn)非常有趣的互動(dòng)作品,比使用水銀開關(guān)更加安全。
圖2.7.4 數(shù)字鋼球傾角傳感器
數(shù)字鋼球傾角傳感器的針腳定義為:1——數(shù)字信號(hào)輸出;2——VCC;3——GND。接線圖如圖2.7.5所示。
圖2.7.5 數(shù)字鋼球傾角傳感器接線圖
【動(dòng)手操作】
1.定時(shí)風(fēng)扇
定時(shí)風(fēng)扇基本思路提示:通過按鈕對(duì)風(fēng)扇進(jìn)行定時(shí),比如一個(gè)按鈕控制,按一次定時(shí)2分鐘后,風(fēng)扇自動(dòng)停止;兩個(gè)按鈕控制,按第一個(gè)按鈕2分鐘后,風(fēng)扇自動(dòng)停止,按第二個(gè)按鈕5分鐘后,風(fēng)扇自動(dòng)停止。
2.溫控風(fēng)扇
溫控風(fēng)扇基本思路提示:通過溫度傳感器感應(yīng)環(huán)境溫度,當(dāng)溫度達(dá)到某個(gè)值時(shí),風(fēng)扇自動(dòng)開啟,此后,溫度逐漸增高時(shí),風(fēng)扇自動(dòng)加快轉(zhuǎn)速。
3.傾倒自動(dòng)停止風(fēng)扇
傾倒自動(dòng)停止風(fēng)扇基本思路提示:利用傾角傳感器,判斷風(fēng)扇是否傾倒,如果是的話,風(fēng)扇自動(dòng)停止轉(zhuǎn)動(dòng),否則繼續(xù)轉(zhuǎn)動(dòng)。
4.其它創(chuàng)意風(fēng)扇
自己設(shè)計(jì)并嘗試實(shí)現(xiàn)一種有創(chuàng)意的風(fēng)扇。
【探究思考】
請(qǐng)同學(xué)們相互介紹一下自己的創(chuàng)意風(fēng)扇,大家相互評(píng)價(jià)一下。
【視野拓展】
1.創(chuàng)意風(fēng)扇——無扇葉風(fēng)扇
簡(jiǎn)介:外形像一只巨大的指環(huán)。它能產(chǎn)生強(qiáng)有力的涼爽空氣,而且安靜無聲,也比傳統(tǒng)電扇安全。另外,它清洗起來也比傳統(tǒng)電風(fēng)扇方便得多,從此不用為清理扇葉上積滿的灰塵發(fā)愁了。和傳統(tǒng)電風(fēng)扇一樣,能90度角擺動(dòng)。不同的是,它還能通過人為控制發(fā)生燈光變化。
特色:沒有扇葉,少了運(yùn)轉(zhuǎn)噪音,而且出風(fēng)量更穩(wěn)定;用風(fēng)扇風(fēng)乾頭髮時(shí),不怕頭發(fā)給捲了進(jìn)去,或是小朋友意外受傷;清理電風(fēng)扇時(shí)只要一條抹布就能輕松搞定;風(fēng)扇氣流集中強(qiáng)勁,吹起來更舒服;具備傳統(tǒng)電風(fēng)扇靈活調(diào)整特質(zhì),如可旋轉(zhuǎn)、上下角度調(diào)整等。
原理:底座中帶有的高功率馬達(dá)將空氣吸入風(fēng)扇基座內(nèi)部,經(jīng)由氣旋加速器加速后,空氣流通速度將大大增大,經(jīng)由無葉風(fēng)扇扇頭環(huán)形內(nèi)唇環(huán)繞,其環(huán)繞力帶動(dòng)扇頭附近的空氣隨之進(jìn)入扇頭,并以高速向外吹出,最終形成一股不間斷的冷空氣流。如此一來,徐徐涼風(fēng)飄然而至。這種新造型風(fēng)扇不僅外形靚麗,清理起來也十分方便,安全性也得到了提高。風(fēng)扇這種東西也從此變得更加安全。
2.創(chuàng)意風(fēng)扇——驅(qū)蚊電風(fēng)扇
構(gòu)造:電動(dòng)機(jī)、葉片、外殼體,電風(fēng)扇外殼體上安裝的電熱驅(qū)蚊器。
原理:原電風(fēng)扇殼體上適當(dāng)位置安裝有一電熱驅(qū)蚊器,上面放有驅(qū)蚊藥片,接通電源后電熱驅(qū)蚊器發(fā)熱,使驅(qū)蚊藥片被加熱散出藥物從而達(dá)到驅(qū)蚊之效。電風(fēng)扇的馬達(dá)與驅(qū)蚊器分別受控于兩個(gè)獨(dú)立的電源開關(guān),使吹風(fēng)與驅(qū)蚊兩種功能可以同時(shí)、也可以分別地工作,使用起來十分有效、方便。電風(fēng)扇在使用過程中,驅(qū)蚊噴霧器噴出的驅(qū)蚊液可以通過扇葉的轉(zhuǎn)動(dòng)而充分且大面積散發(fā),增強(qiáng)驅(qū)蚊效果,從而達(dá)到降溫、驅(qū)蚊的雙重功效。
【挑戰(zhàn)自我】
想一想風(fēng)扇還有哪些創(chuàng)意呢?或者你設(shè)計(jì)的創(chuàng)意風(fēng)扇還有哪些改進(jìn)呢?

第三章 智能小車

第1課 走直線小車
通過前面兩章的學(xué)習(xí),我們可以用Arduino控制LED燈,制作風(fēng)扇,但是我們可以使用各種傳感器制作出智能小車嗎?它可以走直線,走8字,會(huì)巡線避障......當(dāng)然答案是肯定的,只要大膽想象,扎實(shí)前進(jìn),我們就可以做出有意思的小車。這節(jié)課主要是通過簡(jiǎn)單的接線,編寫并調(diào)試程序,從而認(rèn)識(shí)小車,了解小車的基礎(chǔ)知識(shí),完成走直線小車的任務(wù)。
【任務(wù)導(dǎo)航】
  • 小車電機(jī)接線;
  • 通過編程讓小車走直線。
【材料閱讀】
  • 小車電機(jī)接線
還記得我們?cè)诘诙聦W(xué)習(xí)的《聲控風(fēng)扇》嗎?在材料閱讀里面,我們了解了Romeo控制直流電機(jī)的相關(guān)知識(shí),知道了數(shù)字針腳4、5、6、7與M1、M2對(duì)應(yīng)的關(guān)系。有了上述知識(shí)以后,仔細(xì)觀察發(fā)現(xiàn),我們的小車左右分別各有一個(gè)電機(jī)(如下圖),每個(gè)電機(jī)引出紅黑兩條線。在接線的時(shí)候,可以將兩個(gè)電機(jī)引出的紅線與黑線分別接入M1、M2的正負(fù)極,注意細(xì)心找到M1、M2旁邊的“+”“—”符號(hào)。在這里,紅黑線與M1、M2正負(fù)極的對(duì)應(yīng)關(guān)系,會(huì)影響到小車運(yùn)動(dòng)的方向。

圖3.1.1 小車直流電機(jī)

  • 小車直走分析
小車直走分為兩種情況:前進(jìn)、后退。同樣,我們也可以通過兩種方式來實(shí)現(xiàn)小車前進(jìn)、后退。
  • 編程。在接線正常的情況下(紅線接正,黑線接負(fù)),可以改變47針腳的高低電平來控制小車前進(jìn)、后退。這個(gè)道理與第二章控制風(fēng)扇正轉(zhuǎn)、反轉(zhuǎn)一樣,就不再贅述。
  • 接線。在程序不變的基礎(chǔ)下,我們改變小車電機(jī)的連接線,可以使小車的運(yùn)動(dòng)方向發(fā)生變化。具體情況如下:將電機(jī)引出的紅線分別與M1M2負(fù)極相連,黑線與正極相連,此時(shí),原本前進(jìn)的小車會(huì)后退,反之亦然;如果將一個(gè)電機(jī)的紅線接M1正極,黑線接M1負(fù)極,另一根紅線接M2負(fù)極,黑線接M2正極,此時(shí)直走的小車會(huì)原地打轉(zhuǎn)。感興趣的同學(xué)在動(dòng)手操作環(huán)節(jié)可以進(jìn)行嘗試。
【動(dòng)手操作】
活動(dòng)主題:走直線的機(jī)器人小車
1.硬件搭建
本次課中的小車已經(jīng)提前搭好,感興趣的同學(xué)可以參照搭建好的小車,自己組裝一個(gè)。將小車的電機(jī)接線接好(本課默認(rèn)將紅線接正極,黑線接負(fù)極),在ArduBlock中進(jìn)行程序調(diào)試,讓小車前進(jìn)、后退。
2.參考程序
參考程序提供兩種編程方法,通過接線改變小車前進(jìn)方向的實(shí)驗(yàn)可以自己嘗試。參考程序1如下:
圖3.1.3 針腳控制小車前進(jìn)、后退

部分代碼解釋:
觀察小車,可以發(fā)現(xiàn),小車不斷地以100的轉(zhuǎn)速向前前進(jìn)1秒,再后退一秒。在這里,我們是通過編程來控制小車運(yùn)動(dòng)方向,給數(shù)字針腳4、7以高電平,此時(shí)小車前進(jìn),反之,小車后退。
除了改變程序,還可以改動(dòng)小車接線來解決這個(gè)問題。當(dāng)我們將兩個(gè)電機(jī)引出的紅線接在接線柱的負(fù)極,黑線接到接線柱的正極,此時(shí),如果給數(shù)字針腳4、7設(shè)置高電平,小車將后退,反之,小車前進(jìn)。
參考程序2如下:

圖3.1.3 電機(jī)控制小車前進(jìn)、后退
部分代碼解釋:
參考程序中,M1、M2設(shè)置為255,此時(shí)小車前進(jìn);M1、M2設(shè)置為-255,此時(shí)小車后退。
在測(cè)試時(shí),直接將USB與Arduino主板連接可以驅(qū)動(dòng)小車,但是轉(zhuǎn)速較慢,而且受數(shù)據(jù)線長(zhǎng)短的限制,小車運(yùn)動(dòng)空間比較狹小。這種情況下,我們可以給小車接上外接電源,比如:鋰電池,使得小車脫離數(shù)據(jù)線,以便我們觀察。將鋰電池接在Romeo主控器的外接電源接口上。
   
圖3.1.4 小車連接外接電源
【探究思考】
              小車前進(jìn)、后退的實(shí)驗(yàn)中,小車走的是一條直線嗎?想想為什么。
【視野拓展】
1.小車“走不直”原因分析
在目前的智能小車中,差分驅(qū)動(dòng)仍然是主流驅(qū)動(dòng)方式。差分驅(qū)動(dòng)是指左、右兩個(gè)輪子分別用左、右兩個(gè)電機(jī)驅(qū)動(dòng),通過分別改變兩個(gè)電機(jī)的轉(zhuǎn)速來控制小車前進(jìn)或者后退。
   在這里,左右兩個(gè)電機(jī)的特性肯定不會(huì)完全相同,這就將直接導(dǎo)致即使設(shè)置的轉(zhuǎn)速一樣,兩個(gè)輪子的實(shí)際轉(zhuǎn)速也是不相同的,所以本來應(yīng)該走直線的小車行駛軌跡會(huì)發(fā)生偏移,也就產(chǎn)生了所謂的“走不直”的現(xiàn)象。
影響小車“走不直”的原因還有很多,比如:道路上的障礙物、輪子瞬間打滑、小車左右重量不一致等等。而且這些因素是無法消除的,我們只有使用其他方法來解決這個(gè)問題。簡(jiǎn)單的做法:根據(jù)小車走直線時(shí),實(shí)際路線的偏差,對(duì)小車左右電機(jī)數(shù)值進(jìn)行微調(diào)。
2.開環(huán)與閉環(huán)
在了解開環(huán)與閉環(huán)之前,在地面上畫出一條直線,分別嘗試閉著眼睛和睜開眼睛沿著直線走一遍。我們會(huì)發(fā)現(xiàn),睜開眼睛走直線比閉著眼睛走直線要簡(jiǎn)單得多。事實(shí)上,沒有安裝任何傳感器的小車就相當(dāng)于眼睛閉著的我們,顯而易見,這樣走直線是很困難的。在這里,我們將小車只通過電機(jī)控制轉(zhuǎn)速,而不添加任何傳感器行走的方式稱之為“開環(huán)控制”。相對(duì)的,閉環(huán)控制是指小車通過各種傳感器感應(yīng)外界信息,根據(jù)這些信息調(diào)整自己的運(yùn)動(dòng)。我們?cè)谙旅娴恼n程學(xué)習(xí)中,會(huì)增加多種傳感器。
【挑戰(zhàn)自我】
1. 通過改變接線控制小車前進(jìn)方向,使小車原地打轉(zhuǎn)。
2.嘗試使用其他辦法改進(jìn)小車,使其“走直”。
3.使用電機(jī)模塊控制小車時(shí),會(huì)在Arduino文本式編程環(huán)境中生成setRomeoMoto( )函數(shù),閱讀該函數(shù),嘗試?yán)斫怆姍C(jī)數(shù)值設(shè)置為正數(shù),小車前進(jìn),反之小車后退的原因。


第2課 跳8字舞的小車
上一節(jié)課中,我們已經(jīng)學(xué)會(huì)了同時(shí)驅(qū)動(dòng)兩個(gè)電機(jī),使我們的小車自如地前進(jìn)、后退。這節(jié)課我們將利用雙輪差速驅(qū)動(dòng),讓小車轉(zhuǎn)彎并且跳8字舞。
【任務(wù)導(dǎo)航】
  • 雙輪差速驅(qū)動(dòng);
  • 小車轉(zhuǎn)彎;
  • 小車跳8字舞。
【材料閱讀】
1. 雙輪差速驅(qū)動(dòng)
我們的小車是有2個(gè)電機(jī)和2個(gè)輪子的(這里不考慮主要起支撐作用的萬向輪)。對(duì)于采用這種驅(qū)動(dòng)方式的機(jī)器人來說,它運(yùn)動(dòng)時(shí)會(huì)有以下幾種情況出現(xiàn):
  • 小車前進(jìn)、后退(上節(jié)課已經(jīng)學(xué)習(xí)過)
  • 小車轉(zhuǎn)彎
左右輪子轉(zhuǎn)動(dòng)速度不同時(shí),小車就會(huì)轉(zhuǎn)彎。左右兩個(gè)輪子轉(zhuǎn)動(dòng)的速度之差決定小車轉(zhuǎn)彎半徑大小。如果左右兩個(gè)輪子轉(zhuǎn)動(dòng)的速率相同,方向正好相反,小車會(huì)原地轉(zhuǎn)動(dòng)。具體分析見下圖:

                    

                     

圖3.2.1 雙輪差速小車的運(yùn)動(dòng)

2. 8字舞的蜜蜂
在生物界中,我們可以觀察到一個(gè)關(guān)于蜜蜂的奇特的現(xiàn)象。它們常常會(huì)在空中向左先飛半個(gè)小圈,又倒轉(zhuǎn)過來向右再飛半個(gè)小圈,就像是在跳一種“8字舞”。而這種現(xiàn)象是蘊(yùn)含著一個(gè)有趣的科學(xué)道理的:蜜蜂這樣做,實(shí)際上是在用一種特殊的方式告知自己同伴蜜源的方位。它們的飛行軌跡與地面垂線的夾角,就正好表示了蜂房、太陽和蜜源三者之間的相對(duì)角度信息。比如:蜜蜂跳“8”字舞時(shí),頭朝上直飛,太陽角是零度,意思是說:“朝太陽方向飛去,就是采蜜的方向”; 如果蜜蜂跳“8”字舞時(shí),頭朝地直飛,太陽角是180°,意思是說:“背太陽方向飛去,就是采蜜的地方”; 如果蜜蜂跳“8”字舞時(shí),飛行直線同地面垂直線的左面夾角是15°角,意思是說:“向左太陽角60°方向飛去,就是采蜜的地方”。當(dāng)其它蜜蜂看到這樣的信息時(shí),就可以根據(jù)太陽的方向找到蜜源了。當(dāng)然,如果是陰天下雨,或者看不到太陽的時(shí)候,蜜蜂就會(huì)失去這種辨別方向的奇妙能力了。
3. 小車走“8”字必備條件
怎樣才能讓我們的小車像蜜蜂一樣跳出完美的“8”字舞來呢?比如說,從以下示意圖的“a”點(diǎn)先順時(shí)針飛行上半圈,再次到達(dá)“a”時(shí),再逆時(shí)針飛行下半圈。要實(shí)現(xiàn)這個(gè)效果,我們發(fā)現(xiàn)必須滿足以下條件:
  • 小車順時(shí)針轉(zhuǎn)動(dòng)一定的時(shí)間以后,進(jìn)行逆時(shí)針轉(zhuǎn)動(dòng);
  • 小車順時(shí)針轉(zhuǎn)動(dòng)的時(shí)間要滿足正好轉(zhuǎn)一圈,逆時(shí)針也是如此。
那么,我們只要根據(jù)左右電機(jī)的數(shù)值差,確定小車轉(zhuǎn)圈的半徑,從而測(cè)出小車轉(zhuǎn)一圈的時(shí)間,就可以走出一個(gè)8字出來。
圖3.1.2   8字圖

【動(dòng)手操作】
活動(dòng)主題一:會(huì)轉(zhuǎn)彎的機(jī)器人小車
根據(jù)雙輪差速驅(qū)動(dòng)小車的原理,改變左右電機(jī)的轉(zhuǎn)動(dòng)數(shù)值,使其向左轉(zhuǎn)、向右轉(zhuǎn)、原地轉(zhuǎn)圈。觀察一下現(xiàn)象并完成表格3.1.1。
表3.1.1 電機(jī)速度與小車狀態(tài)
左電機(jī)值






右電機(jī)值






小車狀態(tài)







參考代碼
圖3.1.3 小車左轉(zhuǎn)彎、右轉(zhuǎn)彎、原地轉(zhuǎn)圈
部分代碼解釋:
(1)小車左電機(jī)M1設(shè)為100,右電機(jī)M2設(shè)為150,這個(gè)時(shí)候小車會(huì)向左轉(zhuǎn)。
(2)小車左電機(jī)M1設(shè)為150,右電機(jī)M2設(shè)為100,這個(gè)時(shí)候小車會(huì)向右轉(zhuǎn)。
(3)小車左電機(jī)M1設(shè)為150,右電機(jī)M2設(shè)為-150,這個(gè)時(shí)候小車會(huì)原地轉(zhuǎn)圈。
活動(dòng)主題二:跳8字舞的機(jī)器人小車
同學(xué)們?cè)诹私饬穗p輪差速原理以及理解走“8”字的必備條件以后,就可以動(dòng)手制作我們自己的跳8字舞小車了。
結(jié)合我們前文說的小車跳8字舞的兩個(gè)條件,把我們對(duì)左轉(zhuǎn)右轉(zhuǎn)的控制以及延時(shí)語句結(jié)合起來,我們就可以編寫出簡(jiǎn)單明了的跳8字舞程序了。參考程序代碼如下,但是示例程序是不能執(zhí)行的,我們可以自己通過不斷的測(cè)試,改變其中的參數(shù)值,找出左右電機(jī)特定數(shù)值差時(shí),小車轉(zhuǎn)一圈的時(shí)間。
參考程序

圖3.2.4 小車走8字

請(qǐng)同學(xué)們將最終程序的參數(shù)填入下面表3.2-1的表格中,并粗略估計(jì)圓圈的半徑。
半徑:    (cm)
表3.2.2程序的參數(shù)
參數(shù)
a
b
c
數(shù)值







【探究思考】
              通過上面的測(cè)試,我們已經(jīng)找到了一種小車走8字的參數(shù)值。請(qǐng)同學(xué)們繼續(xù)試驗(yàn),調(diào)整左右電機(jī)數(shù)值差、測(cè)出小車轉(zhuǎn)一圈的時(shí)間,實(shí)現(xiàn)幾個(gè)圓圈半徑大小與之前不一樣的8字舞,并將相關(guān)參數(shù)填在下面的表格中。
半徑:     (cm)
表3.2.3 參數(shù)列表1
參數(shù)
a
b
c
數(shù)值







半徑:     (cm)
表3.2.4 參數(shù)列表2
參數(shù)
a
b
c
數(shù)值







半徑:     (cm)
表3.2.5 參數(shù)列表3
參數(shù)
a
b
c
數(shù)值







【視野拓展】
三輪全驅(qū)動(dòng)全向?qū)C(jī)構(gòu)
三輪全驅(qū)動(dòng)全導(dǎo)向機(jī)構(gòu)屬于同步驅(qū)動(dòng)的裝置方式。如下圖所示,在該機(jī)構(gòu)中,三個(gè)輪子成120°放置,用齒輪或者鏈條將輪子同電機(jī)相連。每個(gè)輪子都可獨(dú)立地進(jìn)行轉(zhuǎn)向控制和速度控制,因此在結(jié)構(gòu)和原理上類似于前輪驅(qū)動(dòng)前輪導(dǎo)向機(jī)構(gòu)的前輪。當(dāng)三個(gè)輪子保持初始位置以相同的速度轉(zhuǎn)動(dòng)時(shí),及其本體做原地零半徑旋轉(zhuǎn)運(yùn)動(dòng);當(dāng)三個(gè)輪子導(dǎo)向角度相同并以相同速度驅(qū)動(dòng)時(shí),本體按照該導(dǎo)向角方向做直線運(yùn)動(dòng)。施加適當(dāng)?shù)目刂疲迷摍C(jī)構(gòu)實(shí)現(xiàn)的機(jī)器人本體能夠按照任意指定的軌跡運(yùn)動(dòng),具有很高的運(yùn)動(dòng)靈活性。但是該機(jī)構(gòu)的整體結(jié)構(gòu)比較復(fù)雜,完成每個(gè)動(dòng)作都需要對(duì)6個(gè)伺服電機(jī)進(jìn)行合理控制,且對(duì)于方向和驅(qū)動(dòng)控制精度有較高要求,因此控制難度較大。
圖3.2.5 三輪全驅(qū)動(dòng)全導(dǎo)向機(jī)構(gòu)

【挑戰(zhàn)自我】
根據(jù)第二章遙控風(fēng)扇的內(nèi)容,嘗試用遙控器控制小車前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、原地轉(zhuǎn)圈、跳8字舞。在下面填寫你遇到的問題以及擬解決辦法。

第3課 避障小車
在自然界,有很多爬蟲是帶觸角的。當(dāng)前進(jìn)的道路上出現(xiàn)障礙物時(shí),它們會(huì)機(jī)智地伸出自己的觸角去確定障礙物的方向,然后及時(shí)地改變前進(jìn)路線繞道前行。在這里,昆蟲的觸角是昆蟲感知外界信息的有力武器。同樣的,當(dāng)我們的小車在前進(jìn)過程中,遇到障礙物了也可以通過類似的觸角去探索、發(fā)現(xiàn),最后避障前進(jìn)。這節(jié)課,我們嘗試給小車裝上觸角,使我們的小車在前進(jìn)的道路中智能避障。
【任務(wù)導(dǎo)航】
1. 了解觸碰傳感器;
2.  使用觸碰傳感器避障;
3.  使用防跌落傳感器避障。
【材料閱讀】
觸碰傳感器
觸碰傳感器(如下圖)是一個(gè)利用接觸片實(shí)現(xiàn)檢測(cè)觸碰功能的電子部件,主要用于檢測(cè)外界觸碰情況。例如:行進(jìn)時(shí),用于檢測(cè)障礙物;走迷宮時(shí),用于檢測(cè)墻壁等等。觸碰傳感器是一種數(shù)字傳感器,在碰到障礙物時(shí),值為0,否則值為1。當(dāng)觸角碰到障礙物時(shí),觸碰傳感器上的LED會(huì)亮。我們可以根據(jù)觸碰傳感器值的變化,調(diào)整小車前進(jìn)方向。
圖3.3.1 觸碰傳感器(左、右)

【動(dòng)手操作】
活動(dòng)主題一:使用觸碰傳感器制作避障小車
通過這個(gè)實(shí)驗(yàn),我們給小車裝上了觸角,這樣我們的小車就能跟昆蟲一樣自由避障了。實(shí)驗(yàn)步驟:
1. 硬件搭建
將觸碰傳感器一左一前(具體安裝位置可以根據(jù)實(shí)際情況而定,也可以使用多個(gè)觸碰傳感器)安裝在小車上,注意將觸碰傳感器的兩個(gè)觸角接在外面。假設(shè)左邊的觸碰傳感器接在數(shù)字口2,小車前面的觸碰傳感器接在數(shù)字口3。我們也可以將鐵絲綁在觸碰傳感器的觸角上,以便擴(kuò)大觸碰傳感器的感知范圍。

【提示】傳感器接線時(shí),避免接在數(shù)字針腳4、5、6、7和0、1上。

2. 參考程序
我們可以根據(jù)觸碰傳感器值的變化,調(diào)整小車前進(jìn)方向。比如:當(dāng)左前觸碰傳感器有一個(gè)檢測(cè)到障礙物時(shí),小車后退或者后退以后再向左或向右轉(zhuǎn)彎。我們根據(jù)上面的思路進(jìn)行編程,同學(xué)們可以根據(jù)實(shí)際情況調(diào)整程序里面小車電機(jī)數(shù)值、后退時(shí)間、左轉(zhuǎn)、右轉(zhuǎn)等。參考程序中,小車左傳感器或者前傳感器無論哪個(gè)檢測(cè)到障礙物,或者同時(shí)檢測(cè)到障礙物,小車都會(huì)后退一段距離,再右轉(zhuǎn)。如下圖。
圖3.3.2 小車簡(jiǎn)單避障
部分代碼說明如下:
在這個(gè)程序中,只要有一個(gè)觸碰傳感器檢測(cè)到的值為“0”,也就是檢測(cè)到障礙物,說明我們讓小車后退1秒鐘,再右轉(zhuǎn)。如果小車兩個(gè)觸碰傳感器一直檢測(cè)不到物體,也就是數(shù)值為“1”時(shí),讓小車前行。
程序下載完后,我們可以連接鋰電池,進(jìn)行調(diào)試了。你的小車可以避障了嗎?

活動(dòng)主題二:使用數(shù)字防跌落傳感器制作避障小車
我們可以根據(jù)數(shù)字防跌落傳感器值的變化,檢測(cè)前方是否有障礙物。注意,數(shù)字防跌落傳感器檢測(cè)到障礙物,值為0,這時(shí),我們的小車應(yīng)該采取措施(停止、轉(zhuǎn)彎等等),因?yàn)榉赖鋫鞲衅骺梢詸z測(cè)到前方10cm的距離,所以我們的小車檢測(cè)到障礙物以后,可以直接拐彎,不用后退。
  • 硬件搭建
在安裝的時(shí)候,要讓數(shù)字防跌落傳感器的感應(yīng)頭朝外。可以左右各安裝一個(gè)。
  • 參考程序
當(dāng)數(shù)字防跌落傳感器檢測(cè)到障礙物,直接右轉(zhuǎn)。
圖3.4.3 防跌落小車
部分代碼說明如下:
在這個(gè)程序中,只要有一個(gè)防跌落傳感器檢測(cè)到的值為“0”,也就是檢測(cè)到物體,說明前方10cm以內(nèi)有障礙物出現(xiàn),我們讓小車右轉(zhuǎn)1秒鐘。如果小車兩個(gè)防跌落傳感器一直檢測(cè)不到物體,也就是數(shù)值為“1”時(shí),讓小車前行。
【探究思考】
上面的避障程序可以使小車成功躲避障礙物,實(shí)現(xiàn)繞道前行。但是,如果我們利用教室里的桌椅自制一個(gè)簡(jiǎn)單的迷宮,小車如何可以走出這個(gè)迷宮呢?
【視野拓展】

1.觸角作用

 昆蟲除原尾目無觸角、高等雙翅目和膜翅目幼蟲的觸角退化外,其它種類都有1對(duì)觸角。觸角長(zhǎng)在昆蟲兩只復(fù)眼的中上方,昆蟲活動(dòng)的時(shí)候,這兩根觸角總是不停地?cái)[動(dòng)著,東察西探,象是尋找獵物的雷達(dá)。
 觸角是主要的感覺器官,有嗅覺、觸覺和聽覺的功能。觸角能夠幫助昆蟲尋找食物和配偶,并探明身體前方有無障礙物。在有些昆蟲中,觸角還有其它用處,例如雄性芫菁在交配時(shí)用來握住雌蟲,魔蚊幼蟲用來捕捉食物,仰泳蝽的觸角在水中能平衡身體,水龜蟲則用來幫助呼吸。
  • 走迷宮原理

常見的迷宮圖如下:


圖3.3.4 常見迷宮

觀察上面幾幅圖,不難發(fā)現(xiàn),讓機(jī)器人沿迷宮圍墻的某一側(cè)行走可以使機(jī)器人走遍沒有出口迷宮的每個(gè)地方,這是走迷宮的一般方法,我們稱沿左側(cè)行走的方法為左手規(guī)則,稱沿右側(cè)行走的方法為右手規(guī)則。

在本項(xiàng)目中我們將采用左手規(guī)則實(shí)施走迷宮的任務(wù)。假定你自己在一個(gè)漆黑的迷宮場(chǎng)地中按左手規(guī)則行走,你一定會(huì)用左手去尋找你左側(cè)的墻壁,以確定前進(jìn)的方向,用右手伸向前方以防備在前進(jìn)的過程中撞到前方拐彎處的墻上。因?yàn)閳?chǎng)地漆黑你會(huì)根據(jù)兩手獲得的墻壁觸摸信息做出以下四種判斷:

  • 當(dāng)左手和伸向前方的右手都摸不到墻壁時(shí),向左轉(zhuǎn)彎;
  • 當(dāng)左手摸不到墻壁,伸向前方的右手摸到墻壁時(shí),向右轉(zhuǎn)彎;
  • 當(dāng)左手和伸向前方的右手都摸到墻壁時(shí)向右轉(zhuǎn)彎。
  • 當(dāng)左手摸到墻壁,伸向前方的右手摸不到墻壁時(shí),直走;

在讓機(jī)器人走迷宮時(shí),我們可以用機(jī)器人的觸碰傳感器來代替我們的左右手,以獲取行進(jìn)方向的信息,并對(duì)獲取的觸碰信息做出判斷,以此來決定行走的動(dòng)作。走迷宮的機(jī)器人至少需要兩個(gè)觸碰傳感器,分別置于機(jī)器人左、中或者右、中。機(jī)器人可以使用灰度傳感器判斷是否回到終點(diǎn)。

圖3.3.5 左手規(guī)則示意
【挑戰(zhàn)自我】
你會(huì)用避障小車走迷宮嗎?將你的代碼或者是設(shè)計(jì)思路寫在下面的橫線上。

第4課 防跌落小車
我們的機(jī)器人小車到處走動(dòng)的時(shí)候,如果遇到有臺(tái)階的地方,它會(huì)自動(dòng)停下來嗎?為了防止小車遇到臺(tái)階仍然往前走,我們就要給它安裝相應(yīng)的傳感器,使得它具有防跌落功能。
【任務(wù)導(dǎo)航】
1.使用數(shù)字防跌落傳感器進(jìn)行防跌落;
    2.使用超聲波傳感器進(jìn)行防跌落。
【材料閱讀】
數(shù)字防跌落傳感器的安裝

圖3.4.1 數(shù)字防跌落傳感器安裝位置
我們已經(jīng)在《創(chuàng)意LED》以及《自動(dòng)跟蹤風(fēng)扇》里面使用過了數(shù)字防跌落傳感器,使用方法不再贅述。在這里主要介紹一下制作防跌落小車時(shí),該傳感器的安裝方式。數(shù)字防跌落傳感器一般安裝在輪子前方,機(jī)器人的外沿,安裝高度應(yīng)該小于地面10cm,具體可以根據(jù)實(shí)際情況調(diào)整,以此實(shí)現(xiàn)探測(cè)地面的不平度或者臺(tái)階而調(diào)整機(jī)器人前進(jìn)方向?qū)崿F(xiàn)防跌落功能。將防跌落傳感器按照上述要求一左一右安裝在小車前方,如果條件允許,也可以根據(jù)上圖安裝四個(gè)。
【動(dòng)手操作】
活動(dòng)主題一:使用數(shù)字防跌落傳感器制作的防跌落小車
參考程序
我們可以根據(jù)數(shù)字防跌落傳感器值的變化,調(diào)整小車前進(jìn)方向。注意,數(shù)字防跌落傳感器檢測(cè)不到障礙物,值為1,這時(shí),我們的小車應(yīng)該后退。
參考程序中,當(dāng)數(shù)字防跌落傳感器檢測(cè)不到障礙物(臺(tái)階出現(xiàn)),會(huì)后退一段距離,再右轉(zhuǎn)。
圖3.4.2 防跌落小車
部分代碼說明如下:
在這個(gè)程序中,只要有一個(gè)防跌落傳感器檢測(cè)到的值為“1”,也就是檢測(cè)不到物體,說明此時(shí)小車在臺(tái)階的邊緣,我們讓小車后退1秒鐘,再右轉(zhuǎn)。如果小車兩個(gè)防跌落傳感器一直可以檢測(cè)到物體,也就是數(shù)值為“0”時(shí),讓小車前行。

連接板子與電腦,加入上述代碼,調(diào)試小車,讓其在陽臺(tái)上直走,觀察你的小車是否有防跌落功能。

活動(dòng)主題二:使用超聲波傳感器制作的防跌落小車
參考程序
我們也可以使用超聲波傳感器來實(shí)現(xiàn)小車的防跌落,超聲波傳感器的安裝跟數(shù)字防跌落傳感器一樣,朝向地面。

圖3.4.3 防跌落小車
部分代碼說明如下:
該程序利用超聲波傳感器來檢測(cè)超聲波與地面的距離,如果超聲波傳感器測(cè)出來的距離大于10(具體數(shù)字自己可以設(shè)定,表示檢測(cè)不到障礙物也,也就是到達(dá)臺(tái)階邊緣),小車后退兩秒鐘,然后左轉(zhuǎn)或者右轉(zhuǎn);如果距離小于10,小車保持原來的狀態(tài)繼續(xù)前進(jìn)。(超聲波檢測(cè)臺(tái)階的距離可以根據(jù)實(shí)際情況調(diào)整):

【探究思考】
思考數(shù)字防跌落傳感器的有效檢測(cè)距離為什么是10cm,如果有效距離過長(zhǎng),在遇到臺(tái)階的時(shí)候,還能避免摔下臺(tái)階的“悲慘命運(yùn)”嗎?你覺得較之?dāng)?shù)字防跌落傳感器,使用超聲波傳感器進(jìn)行防跌落,有什么優(yōu)勢(shì)?

【視野拓展】

爬樓梯機(jī)器人

 通過上面的學(xué)習(xí),我們對(duì)小車檢測(cè)到樓梯,繞道行進(jìn)已經(jīng)有了很深的了解。但是小車是怎么爬樓梯的呢?通過這個(gè)部分的視野拓展,我們將了解小車爬樓梯的基本原理,感興趣的同學(xué)可以作進(jìn)一步研究。

(l)履帶式
履帶式爬樓梯裝置的原理類似于履帶裝甲運(yùn)兵車或坦克,其原理簡(jiǎn)單,技術(shù)也比較成熟。當(dāng)遇到樓梯等特殊地形時(shí),用戶通過適當(dāng)操作將兩側(cè)的橡膠履帶緩緩放下至地面,然后把這四個(gè)車輪收起,依靠履帶無需旁人輔助便能自動(dòng)完成爬樓等功能。

履帶式結(jié)構(gòu)傳動(dòng)效率比較高,行走時(shí)重心波動(dòng)很小,運(yùn)動(dòng)非常平穩(wěn),且使用地形范圍較廣,在一些不規(guī)則的樓梯上也能使用。但是這類裝置仍存在很多不足之處:重量大、運(yùn)動(dòng)不夠靈活、爬樓時(shí)在樓梯邊緣造成巨大的壓力,對(duì)樓梯有一定的損壞;且平地使用所受阻力較大,而且轉(zhuǎn)彎不方便,這些問題限制了其在日常生活中的推廣使用。

(2)輪組式
輪組式爬樓梯裝置按輪組中使用小輪的個(gè)數(shù)可分為兩輪組式、三輪組式以及四輪組式。單輪組式結(jié)構(gòu)穩(wěn)定性較差,在爬樓過程中需要有人協(xié)助才能保證重心的穩(wěn)定;而雙輪組式雖能實(shí)現(xiàn)自主爬樓,但由于其體積龐大且偏重,影響了它的使用范圍。

輪組式爬樓梯裝置的活動(dòng)范圍廣,運(yùn)動(dòng)靈活,但是上下樓梯時(shí)平穩(wěn)性不高,重心起伏較大,會(huì)使乘坐者感到不適。此外,輪組式爬樓梯裝置體積較大,很難在普通住宅樓梯上使用。

(3)步行式
早期的爬樓梯裝置一般都采用步行式,其爬樓梯執(zhí)行機(jī)構(gòu)由鉸鏈桿件機(jī)構(gòu)組成。上樓時(shí)先將負(fù)重抬高,再水平向前移動(dòng),如此重復(fù)這兩個(gè)過程直至爬完一段樓梯。步行式爬樓梯裝置模仿人類爬樓的動(dòng)作,外觀可視為足式機(jī)器人,采用多條機(jī)械腿交替升降、支撐座椅爬樓的原理。

步行式爬樓梯裝置爬樓時(shí)運(yùn)動(dòng)平穩(wěn),適合不同尺寸的樓梯;但它對(duì)控制的要求很高,操作比較復(fù)雜,在平地行走時(shí)運(yùn)動(dòng)幅度不大,動(dòng)作緩慢。
【挑戰(zhàn)自我】
你會(huì)綜合選擇使用觸碰傳感器、數(shù)字防跌落傳感器、超聲波傳感器,制作既能避障又能防跌落的智能小車嗎?動(dòng)手搭建起來吧。記得把你編程的思路寫在下面的橫線上。

第5課 巡線小車
              前面的學(xué)習(xí)中,我們通過觸碰傳感器成功地給小車裝上了觸角,這一節(jié)課中,我們將嘗試著給小車裝上眼睛,使我們的小車可以分辨出地面是深色還是淺色,從而可以沿著黑線的方向前進(jìn)。
【任務(wù)導(dǎo)航】
  • 了解巡線傳感器;
  • 小車簡(jiǎn)單巡線前進(jìn)。
【材料閱讀】
1. MINI巡線傳感器
MINI(如下圖)巡線傳感器以穩(wěn)定的TTL輸出信號(hào)幫助機(jī)器人進(jìn)行白線或者黑線的跟蹤(可以檢測(cè)白背景中的黑線,也可以檢測(cè)黑背景的白線),黑色低電平,白色高電平。試想一下,能否讓小車通過這種傳感器沿著一條黑色的線前進(jìn)呢?

圖3.5.1 MINI巡線傳感器

2. 小車走直線以及走“S”型分析

(1)地板是白色,線是黑色的。小車要看到這條直線,需要裝上能分辨黑白的“眼睛”——巡線傳感器。


圖3.5.2  小車走直線圖

將工具盒中的兩個(gè)MINI巡線傳感器一左一右安裝在小車底盤上,兩個(gè)傳感器之間的距離大于黑線寬度。將小車放置在黑線上(左右兩個(gè)MINI巡線傳感器跨在黑線上)。
小車會(huì)出現(xiàn)如下圖三種情況(途中紅色圓點(diǎn)代表巡線傳感器):
a:一般情況下,小車左右巡線傳感器都檢測(cè)不到黑線(也就是左右巡線傳感器跨在線上),小車會(huì)直走
b:因?yàn)榈孛婺Σ粒亓Φ雀鞣N因素,小車會(huì)走偏。當(dāng)小車向右偏時(shí),也就是左邊傳感器檢測(cè)到黑線,右邊傳感器檢測(cè)不到黑線,我們要讓小車左轉(zhuǎn)回來。
c:小車向左偏時(shí),右巡線傳感器檢測(cè)到黑線,左巡線傳感器檢測(cè)不到,我們要讓小車右轉(zhuǎn)回來;
具體情況見下圖:



圖3.5.3  小車走直線分析圖

  • 觀察“S”型圖,我們發(fā)現(xiàn)無論從哪頭開始走,小車都要左右拐彎。比之走圓圈,多了一種拐彎方式。如圖:


              圖3.5.4  小車走”S”型圖
此時(shí)有三種情況:
當(dāng)小車左右傳感器都檢測(cè)不到黑線時(shí),小車直走;
當(dāng)小車左傳感器檢測(cè)不到黑線,右傳感器檢測(cè)到黑線時(shí),小車右拐;
當(dāng)小車左傳感器檢測(cè)到黑線,右傳感器檢測(cè)不到黑線時(shí),小車左拐。
【動(dòng)手操作】
活動(dòng)主題一:小車沿黑線直走
使用巡線傳感器使小車沿著黑線直走。
  • 硬件搭建
首先讓我們像以往一樣,將小車和MINI巡線傳感器模塊連接好。這里,我們假設(shè)將左右兩個(gè)MINI巡線傳感器分別接到數(shù)字針腳2,3。

  • 參考程序
想讓小車一直沿著黑線直走,那么如果有一側(cè)的巡線傳感器檢測(cè)到黑線,我們就得往相應(yīng)側(cè)轉(zhuǎn)彎。參考程序如下:
圖3.5.5 小車沿黑線走直線
部分代碼說明如下:
在轉(zhuǎn)彎的時(shí)候,左右電機(jī)的數(shù)值差并不大,這是因?yàn)樾≤囎咧本時(shí),左右偏差不會(huì)很大,所以不需要大轉(zhuǎn)彎。
活動(dòng)主題二:小車沿黑線走S
使用巡線傳感器使小車沿著“S”型前進(jìn)。
1.  硬件搭建
接線參考小車沿黑線直走。
2.  參考程序
圖3.5.6 小車走S型
部分代碼說明如下:
小車走“S”時(shí)應(yīng)該如果要轉(zhuǎn)彎,應(yīng)該轉(zhuǎn)大彎,也就是說左右電機(jī)數(shù)值差要大,我們可以自己改變參數(shù),調(diào)試程序,使小車成功走“S”型。
【探究思考】
  • 比一比:拿出你的小車與其他同學(xué)的小車賽跑吧,看誰既能成功沿黑線前進(jìn),又能先到達(dá)終點(diǎn)。想一想,怎么調(diào)整左右電機(jī)數(shù)值,使小車既能沿黑線行進(jìn),又能走的快。評(píng)價(jià)表格如下。

表3.5.1  評(píng)價(jià)表格

A組

左電機(jī)數(shù)值

右電機(jī)數(shù)值

走直線時(shí)間

走S型時(shí)間

是否一直沿著黑線運(yùn)動(dòng)







B組












C組












D組...













2.觀察下圖,如果還是使用上面的程序,小車可以巡線走嗎?想一想為什么?
     
        圖3.5.7 “8”字路線
【視野拓展】

灰度傳感器

地面灰度檢測(cè)傳感器就是像圖3.5.8中所示的小模塊,機(jī)器人愛好者們往往在機(jī)器人的底盤上裝上它,讓機(jī)器人能夠巡著一根鋪設(shè)在白色地板上的黑線前進(jìn),所以它也常常被俗稱為“巡線”傳感器。它由一個(gè)LED小燈和一個(gè)光敏電阻組成。
圖3.5.8 模擬灰度傳感器
它的工作原理是這樣的:LED小燈會(huì)為傳感器提供一個(gè)持續(xù)穩(wěn)定的光源,它發(fā)出的光線被地面反射后并被光敏電阻檢測(cè)到。地面的顏色越淺,就會(huì)有更多的光線被反射到光敏電阻,越深則越多的光線被地面吸收。光線強(qiáng)度的變化就會(huì)使光敏電阻的阻值迅速發(fā)生變化,我們的傳感器就是依賴這種信息來檢測(cè)地面的灰度的。模擬灰度傳感器識(shí)別顏色的程序見下面。這里我們將地面灰度檢測(cè)傳感器接在模擬口0。
圖3.5.9 模擬灰度傳感器識(shí)別顏色
【挑戰(zhàn)自我】
  • 如果你身邊有灰度傳感器的話(也可以詢問老師),你會(huì)使用它讓小車尋黑線前進(jìn)嗎?
  • 探究思考里面的“8”字要怎么解決呢,你想到好的辦法了嗎?
把你的想法寫下來吧。

第6課 巡線小車二
在前面的學(xué)習(xí)中,我們認(rèn)識(shí)了MINI巡線傳感器,也成功使用巡線傳感器進(jìn)行了簡(jiǎn)單地巡線走。但事實(shí)上,機(jī)器人除了要走直線,曲線,還有各種復(fù)雜的路口。這節(jié)課,我們將來嘗試讓小車走丁字路口并學(xué)會(huì)分析十字路口。
【任務(wù)導(dǎo)航】
    1.分析丁字路口;
  • 小車走丁字路口;
  • 小車走十字路口分析。
【材料閱讀】
丁字路口分析
巡線走丁字路口,它的難度在于有一條迷惑的道路,此時(shí),左右巡線傳感器同時(shí)檢測(cè)到黑線,應(yīng)該提前規(guī)定好該丁字路口應(yīng)向左還是向右轉(zhuǎn)彎。
丁字路口示意圖如下:
圖3.6.1丁字路口
【動(dòng)手操作】
活動(dòng)主題:小車巡線走丁字路口
丁字路口如上圖,我們要使小車從a出發(fā),經(jīng)過b,最終到達(dá)c。小車在線路連接上,不用做任何改變;程序上,可以在之前簡(jiǎn)單巡線小車的基礎(chǔ)上,添加兩個(gè)巡線傳感器同時(shí)檢測(cè)到黑線時(shí),小車的活動(dòng)代碼。
參考程序

圖3.6.2 小車巡線走丁字路口
部分代碼說明如下:
人為定義,如果小車遇到上述丁字路口,就右拐。具體分析如下:代碼中前面兩個(gè)選擇結(jié)構(gòu)跟小車沿黑線直走時(shí)一樣的,這是為了確保小車可以在ab上直走。當(dāng)小車到達(dá)丁字路口,讓小車向右原地轉(zhuǎn)圈90度,轉(zhuǎn)圈的角度是由延遲時(shí)間決定,而延遲時(shí)間是由小車左右電機(jī)數(shù)值、丁字路口大小等多種因素決定的,我們需要通過不斷的測(cè)試得到這個(gè)時(shí)間值。
【探究思考】
  • .觀察下圖,按照上述編程,小車還能從ab,最后到達(dá)c嗎?為什么?

圖3.6.3 十字路口

2.觀察上圖。要使小車從a出發(fā),經(jīng)過b,最終到達(dá)d點(diǎn),還可以使用上面的程序嗎?哪里需要改動(dòng)?
【視野拓展】
“之”字巡線法
如果只有一個(gè)巡線傳感器,你會(huì)用它來巡線嗎?
因?yàn)橹挥幸粋(gè)巡線傳感器,所以我們處理的方法比較特殊。將小車傳感器位置放在靠近黑線左側(cè)或者是在黑線上。當(dāng)小車檢測(cè)到黑線的時(shí)候,立即左轉(zhuǎn);同樣,當(dāng)小車左轉(zhuǎn)以后,會(huì)發(fā)現(xiàn)白線,此時(shí)小車立刻右轉(zhuǎn)。反反復(fù)復(fù)如此前進(jìn),最后我們會(huì)發(fā)現(xiàn)小車按照“之字形”的折線巡線前進(jìn)了。因此我們稱這種方法叫做“之”字巡線法。
如果我們將小車放在了黑線的右邊,因?yàn)樵诰幊讨校O(shè)定了小車遇到黑線,左轉(zhuǎn),遇到白線右轉(zhuǎn),所以此時(shí)小車會(huì)原地打轉(zhuǎn)。所以具體程序以及小車放置的初始位置很重要。
【挑戰(zhàn)自我】
  • 你會(huì)讓小車在下面的路線中,走過一個(gè)十字路口再右轉(zhuǎn)嗎?(比如從a經(jīng)過bc,最后到達(dá)d)將你的思路寫下來【提示:設(shè)置變量】
  • 你會(huì)讓你的小車從d經(jīng)過c,最后到達(dá)b,再從b按照原路返回到達(dá)d嗎?

3.上節(jié)課留下來的“8”字,你會(huì)使用巡線傳感器完成了嗎?




圖3.6.4 十字路口

第7課 小車綜合創(chuàng)意
通過這三章的學(xué)習(xí),我們認(rèn)識(shí)了許多有意思的傳感器,并且做出了許多有趣的作品。在小車這一章的學(xué)習(xí)中,大家也肯定有很多自己的想法,這節(jié)課,讓我們嘗試將這些想法變成現(xiàn)實(shí)吧。
【任務(wù)導(dǎo)航】
1. 制作遙控控制或者串口控制的超聲波測(cè)障巡邏車;
2. 自己設(shè)計(jì)并嘗試實(shí)現(xiàn)一種有創(chuàng)意的小車;
3. 自評(píng)以及他評(píng)創(chuàng)意小車。
【材料閱讀】
串口控制
在ArduBlock【實(shí)用命令】中有一個(gè)【讀取串口】模塊,通過該模塊我們可以讀取到在串口監(jiān)視器中輸入的值。【讀取串口】模塊如圖所示:
圖3.7.1 讀取串口
串口監(jiān)視器如下圖:
圖3.7.2 串口監(jiān)視器

我們?cè)谑髽?biāo)光標(biāo)位置輸入數(shù)字,再點(diǎn)擊后面的【發(fā)送】按鈕,【讀取串口】模塊可以讀出我們輸入的數(shù)字。我們可以結(jié)合【串口打印加回車】模塊,在串口監(jiān)視器中打印出發(fā)送的數(shù)值。下面舉出一個(gè)簡(jiǎn)單的串口控制LED亮滅的實(shí)例。如下圖:
圖3.7.3 串口控制LED亮滅
在這個(gè)程序中,如果我們?cè)诖诒O(jiān)視器中發(fā)送“1”,接在數(shù)字針腳8號(hào)口的LED將會(huì)點(diǎn)亮,同樣,如果我們?cè)诖诒O(jiān)視器中發(fā)送“2”,LED將會(huì)熄滅。
【動(dòng)手操作】
  • 遙控控制
遙控控制的主要思路跟遙控風(fēng)扇一樣,先對(duì)特定的按鍵解碼,再給各個(gè)按鍵賦予對(duì)應(yīng)的指令,比如:按“2”小車前進(jìn),按“8”小車后退,按“4”小車左轉(zhuǎn),按“6”小車右轉(zhuǎn)等。
  • 串口控制
串口控制從實(shí)質(zhì)上說,比遙控控制更加簡(jiǎn)單。我們?cè)诖诶镙斎霐?shù)值,將這些數(shù)值與小車的動(dòng)作相對(duì)應(yīng),比如:輸入“2”小車前進(jìn),輸入“8”小車后退,輸入“4”小車左轉(zhuǎn),輸入“6”,小車右轉(zhuǎn)等。
3.超聲波測(cè)障
將超聲波傳感器運(yùn)用在小車上,用它來檢測(cè)障礙物,這里有兩種多種處理方法。例如:超聲波傳感器檢測(cè)到障礙物,可以通過LED或者蜂鳴器發(fā)出警報(bào);再比如:超聲波感應(yīng)到前面有障礙物時(shí),小車減速。距離障礙物越近,速度越慢,直到停下來。
4.巡邏小車
巡邏小車的關(guān)鍵除了小車要四處行走,還可以加上舵機(jī)進(jìn)行控制。具體操作可以考慮將超聲波傳感器安裝在舵機(jī)上,利用舵機(jī)的角度轉(zhuǎn)動(dòng),調(diào)整超聲波傳感器的方向,與小車自己的行進(jìn)軌跡相配合,進(jìn)行全方位、多角度的巡邏檢測(cè)。
舵機(jī)、超聲波以及小車的整體安裝可以參考下圖:
   
圖3.7.4  超聲波、舵機(jī)安裝示意圖

5.其它創(chuàng)意小車
同學(xué)們也可以加上自己的想法,制作具有個(gè)人特色的智能小車。
【探究思考】
串口控制的小車可以脫離電腦嗎?如果不可以,使用串口控制小車,是不是限制了小車的行動(dòng)范圍?可以怎么解決呢?
【視野拓展】
創(chuàng)意小車--語音控制的小車
該小車為溫州中學(xué)學(xué)生設(shè)計(jì)制作。該語音控制小車由電源模塊、主機(jī)控制模塊、紅外測(cè)障模塊、聲音模塊、平衡模塊、電機(jī)驅(qū)動(dòng)模塊6個(gè)模塊構(gòu)成。它們之間的關(guān)系如圖:


圖3.7.5  六大模塊關(guān)系圖

語言控制小車的主機(jī)控制模塊和電機(jī)驅(qū)動(dòng)模塊由電源模塊供電。用戶向機(jī)器人發(fā)出指令,由聲音模塊接受,把信號(hào)傳輸給主機(jī)控制模塊,主機(jī)控制模塊將值處理后重新返回給聲音模塊。平衡模塊根據(jù)機(jī)器人所處形態(tài)返回值給主機(jī)控制模塊。紅外模塊由紅外傳感器根據(jù)前方障礙的遠(yuǎn)近返回值給主機(jī)控制模塊。總而言之,機(jī)器人可以根據(jù)用戶發(fā)出的指令實(shí)現(xiàn)前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、問候、測(cè)障、平衡檢測(cè)等功能。
因?yàn)槠渌K之前都已經(jīng)有所涉獵,在這里,我們主要認(rèn)識(shí)一下聲音模塊。如下圖:
圖3.7.6  聲音模塊
該聲音模塊由一塊電路板ASR M08-A(內(nèi)置麥克風(fēng))和一個(gè)揚(yáng)聲器組成。可以接收人發(fā)出的非特定聲音,將聲音信號(hào)轉(zhuǎn)化為電信號(hào),并輸出給單片機(jī),單片機(jī)處理后把值返回給聲音模塊,根據(jù)返回的值播放SD卡中特定的音頻文件,并執(zhí)行特定的動(dòng)作。機(jī)器人根據(jù)指令播放音頻文件時(shí),需要用AD4格式的音頻文件,所以需要將普通的mp3格式的音頻文件轉(zhuǎn)換成AD4格式再存入SD卡才能正常運(yùn)行。
【挑戰(zhàn)自我】
閱讀無線通信,通過無線,解決串口控制小車的遺留問題。如果有其他辦法,也可以進(jìn)行嘗試。


附錄:Arduino機(jī)器人教學(xué)套件
本書用到的Arduino教學(xué)套件如下表所示,由Arduino中國代理DFrobot提供,DFrobot產(chǎn)品在淘寶、天貓上都可以購買。官方商城地址:http://www.dfrobot.com.cn

列表(產(chǎn)品編號(hào)為KIT0075)
數(shù)量
Romeo 三合一Arduino兼容控制器
1
數(shù)字食人魚白色LED發(fā)光模塊(Arduino兼容)
1
數(shù)字食人魚綠色LED發(fā)光模塊(Arduino兼容)
1
數(shù)字食人魚藍(lán)色LED發(fā)光模塊(Arduino兼容)
1
TowerPro SG90舵機(jī)
1
數(shù)字大按鈕模塊(Arduino兼容)
1
Mini尋線傳感器V3.0
2
模擬聲音傳感器(Arduino兼容)
1
數(shù)字鋼球傾角傳感器(Arduino兼容)
1
IR kit紅外遙控套件
1
近距離紅外數(shù)字避障傳感器(防跌落傳感器)
2
碰撞傳感器(右)
1
碰撞傳感器(左)
1
模擬環(huán)境光線傳感器(Arduino兼容)
1
USB電纜
1
MiniQ小車上層安裝板
1
MiniQ 桌面機(jī)器人底盤套件
1
SR-04超聲波傳感器
1
130玩具車小電機(jī)小馬達(dá)
1
三葉風(fēng)扇
1
ABS塑料條
1
小號(hào)兩用螺絲刀
1
模擬LM35線性溫度傳感器(Arduino兼容)
1
7.4V 2200MA 鋰電池 (帶充放電保護(hù)板)
1
鋰電池充電器
1
DC2.1 電源轉(zhuǎn)接頭 母頭
1
尼龍?jiān)鷰?/div>
2
單線母母頭杜邦線
4
M3*30 六角單通尼龍柱
10
M3*20 六角單通尼龍柱
10
M3*10 六角單通尼龍柱
10
M3 nuts
20
M3*6 screws
20
M2*6 screws
3
M2不銹鋼螺母
3
M3*7*1黑色尼龍墊片
10

Arduino廠商的一點(diǎn)說明

              “Arduino創(chuàng)意機(jī)器人”課程為開源課程,任何廠商可以使用課程資源進(jìn)行商用,也可以修改教材以適合自己產(chǎn)品。如果有類似的產(chǎn)品,需要開發(fā)相應(yīng)的課程,請(qǐng)聯(lián)系我們團(tuán)隊(duì),具體的合作要求如下:

  • 免費(fèi)提供2套以上完整的套件,供我們團(tuán)隊(duì)開發(fā)課程,并根據(jù)我們的課程設(shè)計(jì),提供相關(guān)的器材;
  • 開發(fā)的課程資源版權(quán)歸我們所有,我們團(tuán)隊(duì)有權(quán)免費(fèi)提供在網(wǎng)絡(luò)上,供所有師生使用;
  • 課程的設(shè)計(jì)由我們團(tuán)隊(duì)決定,廠商按照我們的需求提供器材即可,不可干擾我們的研發(fā)工作。
主    編:謝作如
參與編寫:張祿 張麗芳 劉正云
完整的Word格式文檔51黑下載地址:
Arduino創(chuàng)意機(jī)器人教材10.12.doc (13.67 MB, 下載次數(shù): 83)

評(píng)分

參與人數(shù) 2黑幣 +65 收起 理由
lyxxzrb + 15
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:272625 發(fā)表于 2019-2-14 15:27 來自手機(jī) | 顯示全部樓層
有創(chuàng)意,好…
回復(fù)

使用道具 舉報(bào)

ID:452731 發(fā)表于 2019-4-21 01:13 | 顯示全部樓層
很好的課程
回復(fù)

使用道具 舉報(bào)

ID:318672 發(fā)表于 2019-6-27 22:51 來自手機(jī) | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:683400 發(fā)表于 2020-1-8 10:16 | 顯示全部樓層

感謝分享
回復(fù)

使用道具 舉報(bào)

ID:234938 發(fā)表于 2020-1-14 22:49 | 顯示全部樓層
資源很豐富,感謝樓主分享。
回復(fù)

使用道具 舉報(bào)

ID:686523 發(fā)表于 2020-1-15 21:15 來自手機(jī) | 顯示全部樓層
感謝分享,謝謝
回復(fù)

使用道具 舉報(bào)

ID:437129 發(fā)表于 2025-4-3 11:34 | 顯示全部樓層
很好的教程,類似于Mixly(米思齊)。
樓主辛苦,感謝分享!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲在线一区二区 | 一区二区免费视频 | 在线91 | 最新国产视频 | 国产精品国产三级国产aⅴ中文 | 91精品久久久久久久久久入口 | 欧美色欧美亚洲另类七区 | 天天玩天天操天天干 | 5060网一级毛片 | 色综合色综合色综合 | 亚洲日本一区二区 | 激情国产在线 | 成人av播放 | 岛国午夜 | 亚洲国产精品久久人人爱 | 精品国产一区二区三区久久 | 国产一级网站 | 欧美精品区 | 日韩成人免费视频 | 黑人精品欧美一区二区蜜桃 | 欧美日韩中文字幕在线播放 | 成人黄色av网址 | 国产一级片 | 成人毛片视频免费 | 中文字幕av网站 | 国产精品一区二区电影 | 成人久久久 | 一区二区三区中文字幕 | 欧美99久久精品乱码影视 | 欧美高清视频在线观看 | 亚洲精品一区在线 | 欧美精品区 | 91超碰在线 | 国产在线小视频 | 国产日韩一区二区 | 日韩欧美久久精品 | 欧美一区二区三区 | 亚洲精品视频一区二区三区 | 免费一级淫片aaa片毛片a级 | a久久 | 国产高清免费视频 |