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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 16212|回復: 7
打印 上一主題 下一主題
收起左側

開源課程:Arduino創意機器人設計教程(Word文檔下載)

  [復制鏈接]
跳轉到指定樓層
樓主
ID:450541 發表于 2018-12-20 10:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

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

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

本電子教材共設計了22課,其中4節課為選學內容。我們期望教師采用兩節課連上的方式,以9個專題18課時的形式展開教學。當然,也可以采用單節課的形式,其中教材中的1課剛好為1課時,根據學生的學習情況,適當調整課時。如果有條件,建議增加幾個綜合創意的活動課,讓課時增加到36。具體教材的課時安排請參考我們提供教學設計、教學課件、教學微視頻等資源。

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

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

Arduino創意機器人學習套件地址:wwwdfrobot點com點cn


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


緒論 認識機器人

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




































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

【挑戰自我】
你最想設計的機器人是怎么樣的?請大膽想象,并且對照機器人的三大結構,分別寫出機器人各個的功能。


第一章智能LED

第1課 走進Arduino的世界
    對喜好機器人與機器人技術的人而言,除了希望了解機器人的定義及其構成之外,更有興趣的是參與機器人的設計與創新,那么我們到底通過什么來制作機器人呢?大家有沒有接觸過Arduino?通過這節課的學習,我們將帶大家進入到Arduino的神奇世界中來。  
【任務導航】
    1.認識Arduino,了解Arduino控制板的種類;
    2.掌握Arduino驅動的安裝;
    3.體驗Arduino編程界面。
【材料閱讀】
   1.什么是Arduino
    Arduino是一個基于開放源碼的軟硬件平臺,構建于開放源碼simple I/O界面版,并具有使用類似Java、C語言的IDE集成開發環境和圖形化編程環境。由于源碼開放和價格低廉,Arduino目前廣泛地應用于歐美等國家和地區的電子設計以及互動藝術設計領域,得到了Make magazine(中文版名稱為《愛上制作》)等出版物和Instructable等網站的認可和推薦。Arduino被稱為“科技藝術”,作為一種新的“玩具”,甚至新的藝術載體,吸引了各個領域的人們加入到Arduino的神奇世界里來。
  • Arduino板子種類
Arduino先后發布了十多個型號的板子,有可以縫在衣服上的LiLiPad ,也有為Andriod設計的Mega,也有最基礎的型號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到串口驅動芯片,而是把Atmega8U2編程為一個USB到串口轉換器,目前Arduino UNO已成為Arduino主推的產品。
3.Arduino Romeo V1
本書使用的Arduino控制器是由DFRobot出品的Arduino Romeo V1,如圖1.1.5所示。該控制器采用的是最基礎且應用最廣泛的UNO板卡。它繼承了Arduino 328控制器所有的特性而且集成了電機驅動、鍵盤、IO擴展板、無線數據串行通訊等接口。它不僅可以兼容幾乎所有Arduino系列的傳感器和擴展板,而且可以直接驅動12個舵機。除此之外,它還提供了更多人性化設計,采用了3P彩色排針,能夠對應傳感器連接線,防止插錯。其中紅色對應電源,黑色對應GND,藍色對應模擬口,綠色對應數字口。
  • 處理器:ATmega328
  • 輸出電源:5V2A/3.3V
  • 數字IO腳:(其中,35691011路作為PWM輸出),數字口的值為01
  • 模擬輸入值:A0-A7,模擬口的值為0-1023之間的任意值;
  • EEPROM1KB
  • IIC3個(其中有兩個是90度針腳接頭);
  • 測試按鈕:5個(S0-S4);
  • 復位按鈕:1個(RST);
  • 工作時鐘:16MHZ

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

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

圖1.1.11 選擇“瀏覽計算機以查找驅動程序軟件”


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

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

Arduino的歷史

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

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


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

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

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

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

(2)中國地質大學學生發明了投幣式臺燈,當硬幣投入臺燈下的儲蓄罐中時,臺燈便可開始照明,半小時后,燈自動熄滅。

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

圖1.4.1 ArduBlock環境中的常量

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

圖1.4.2 變量

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

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

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

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

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

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

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

下面給大家舉個簡單的例子,比如說0~100之間的20可以轉化為0~10之間的2。
這節課我們實現了光控LED,即光線暗LED亮,光線強LED滅;我們也知道了光線傳感器的值為0~1023,而LED的亮度為0~255,那么能否根據光線光線的強弱控制LED的亮度呢?【利用映射實現】
【挑戰自我】
我們已經學會了用按鈕或者傳感器控制LED的亮滅和明暗,請同學們想想,我們還可以制作哪些有創意的LED?還能用哪些傳感器控制我們的LED?

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

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

直接用手指掌控的LED
現實生活中我們習慣用開關來控制燈光的關閉,燈的亮度,現在介紹的是一款可以帶觸摸的智能控制燈亮程度的LED臺燈,如圖1.7.6所示。或許這樣酷的臺燈會出現在某個精致的書吧,在面板上方用手指輕觸感應用手指跨度的距離對LED燈光強弱進行控制,關閉燈光的方式是迅速劃過面板。
圖1.7.6 手指掌控的LED
【挑戰自我】
同學們想一想我們還可以制作哪些有創意的LED?我們設計的LED還有哪些地方需要改進?

第二章 智能風扇


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

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

【挑戰自我】
    請同學們思考一下,根據前面學過的按鈕控制的LED,若使用兩個按鈕做換擋風扇,一個是加檔,一個是減檔,你可以實現嗎?嘗試一下。再想一想還有其他的控制方式嗎?

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

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

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




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

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

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

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

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

第三章 智能小車

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

圖3.1.1 小車直流電機

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

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

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


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

                    

                     

圖3.2.1 雙輪差速小車的運動

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

【動手操作】
活動主題一:會轉彎的機器人小車
根據雙輪差速驅動小車的原理,改變左右電機的轉動數值,使其向左轉、向右轉、原地轉圈。觀察一下現象并完成表格3.1.1。
表3.1.1 電機速度與小車狀態
左電機值






右電機值






小車狀態







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

圖3.2.4 小車走8字

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







【探究思考】
              通過上面的測試,我們已經找到了一種小車走8字的參數值。請同學們繼續試驗,調整左右電機數值差、測出小車轉一圈的時間,實現幾個圓圈半徑大小與之前不一樣的8字舞,并將相關參數填在下面的表格中。
半徑:     (cm)
表3.2.3 參數列表1
參數
a
b
c
數值







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







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







【視野拓展】
三輪全驅動全向導機構
三輪全驅動全導向機構屬于同步驅動的裝置方式。如下圖所示,在該機構中,三個輪子成120°放置,用齒輪或者鏈條將輪子同電機相連。每個輪子都可獨立地進行轉向控制和速度控制,因此在結構和原理上類似于前輪驅動前輪導向機構的前輪。當三個輪子保持初始位置以相同的速度轉動時,及其本體做原地零半徑旋轉運動;當三個輪子導向角度相同并以相同速度驅動時,本體按照該導向角方向做直線運動。施加適當的控制,利用該機構實現的機器人本體能夠按照任意指定的軌跡運動,具有很高的運動靈活性。但是該機構的整體結構比較復雜,完成每個動作都需要對6個伺服電機進行合理控制,且對于方向和驅動控制精度有較高要求,因此控制難度較大。
圖3.2.5 三輪全驅動全導向機構

【挑戰自我】
根據第二章遙控風扇的內容,嘗試用遙控器控制小車前進、后退、左轉、右轉、原地轉圈、跳8字舞。在下面填寫你遇到的問題以及擬解決辦法。

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

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

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

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

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

1.觸角作用

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

常見的迷宮圖如下:


圖3.3.4 常見迷宮

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

在本項目中我們將采用左手規則實施走迷宮的任務。假定你自己在一個漆黑的迷宮場地中按左手規則行走,你一定會用左手去尋找你左側的墻壁,以確定前進的方向,用右手伸向前方以防備在前進的過程中撞到前方拐彎處的墻上。因為場地漆黑你會根據兩手獲得的墻壁觸摸信息做出以下四種判斷:

  • 當左手和伸向前方的右手都摸不到墻壁時,向左轉彎;
  • 當左手摸不到墻壁,伸向前方的右手摸到墻壁時,向右轉彎;
  • 當左手和伸向前方的右手都摸到墻壁時向右轉彎。
  • 當左手摸到墻壁,伸向前方的右手摸不到墻壁時,直走;

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

圖3.3.5 左手規則示意
【挑戰自我】
你會用避障小車走迷宮嗎?將你的代碼或者是設計思路寫在下面的橫線上。

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

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

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

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

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

【探究思考】
思考數字防跌落傳感器的有效檢測距離為什么是10cm,如果有效距離過長,在遇到臺階的時候,還能避免摔下臺階的“悲慘命運”嗎?你覺得較之數字防跌落傳感器,使用超聲波傳感器進行防跌落,有什么優勢?

【視野拓展】

爬樓梯機器人

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

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

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

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

輪組式爬樓梯裝置的活動范圍廣,運動靈活,但是上下樓梯時平穩性不高,重心起伏較大,會使乘坐者感到不適。此外,輪組式爬樓梯裝置體積較大,很難在普通住宅樓梯上使用。

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

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

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

圖3.5.1 MINI巡線傳感器

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

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


圖3.5.2  小車走直線圖

將工具盒中的兩個MINI巡線傳感器一左一右安裝在小車底盤上,兩個傳感器之間的距離大于黑線寬度。將小車放置在黑線上(左右兩個MINI巡線傳感器跨在黑線上)。
小車會出現如下圖三種情況(途中紅色圓點代表巡線傳感器):
a:一般情況下,小車左右巡線傳感器都檢測不到黑線(也就是左右巡線傳感器跨在線上),小車會直走
b:因為地面摩擦,重力等各種因素,小車會走偏。當小車向右偏時,也就是左邊傳感器檢測到黑線,右邊傳感器檢測不到黑線,我們要讓小車左轉回來。
c:小車向左偏時,右巡線傳感器檢測到黑線,左巡線傳感器檢測不到,我們要讓小車右轉回來;
具體情況見下圖:



圖3.5.3  小車走直線分析圖

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


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

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

表3.5.1  評價表格

A組

左電機數值

右電機數值

走直線時間

走S型時間

是否一直沿著黑線運動







B組












C組












D組...













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

灰度傳感器

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

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

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

圖3.6.3 十字路口

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

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




圖3.6.4 十字路口

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

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

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


圖3.7.5  六大模塊關系圖

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


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

列表(產品編號為KIT0075)
數量
Romeo 三合一Arduino兼容控制器
1
數字食人魚白色LED發光模塊(Arduino兼容)
1
數字食人魚綠色LED發光模塊(Arduino兼容)
1
數字食人魚藍色LED發光模塊(Arduino兼容)
1
TowerPro SG90舵機
1
數字大按鈕模塊(Arduino兼容)
1
Mini尋線傳感器V3.0
2
模擬聲音傳感器(Arduino兼容)
1
數字鋼球傾角傳感器(Arduino兼容)
1
IR kit紅外遙控套件
1
近距離紅外數字避障傳感器(防跌落傳感器)
2
碰撞傳感器(右)
1
碰撞傳感器(左)
1
模擬環境光線傳感器(Arduino兼容)
1
USB電纜
1
MiniQ小車上層安裝板
1
MiniQ 桌面機器人底盤套件
1
SR-04超聲波傳感器
1
130玩具車小電機小馬達
1
三葉風扇
1
ABS塑料條
1
小號兩用螺絲刀
1
模擬LM35線性溫度傳感器(Arduino兼容)
1
7.4V 2200MA 鋰電池 (帶充放電保護板)
1
鋰電池充電器
1
DC2.1 電源轉接頭 母頭
1
尼龍扎帶
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廠商的一點說明

              “Arduino創意機器人”課程為開源課程,任何廠商可以使用課程資源進行商用,也可以修改教材以適合自己產品。如果有類似的產品,需要開發相應的課程,請聯系我們團隊,具體的合作要求如下:

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

評分

參與人數 2黑幣 +65 收起 理由
lyxxzrb + 15
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:272625 發表于 2019-2-14 15:27 來自觸屏版 | 只看該作者
有創意,好…
回復

使用道具 舉報

板凳
ID:452731 發表于 2019-4-21 01:13 | 只看該作者
很好的課程
回復

使用道具 舉報

地板
ID:318672 發表于 2019-6-27 22:51 來自觸屏版 | 只看該作者
感謝分享
回復

使用道具 舉報

5#
ID:683400 發表于 2020-1-8 10:16 | 只看該作者

感謝分享
回復

使用道具 舉報

6#
ID:234938 發表于 2020-1-14 22:49 | 只看該作者
資源很豐富,感謝樓主分享。
回復

使用道具 舉報

7#
ID:686523 發表于 2020-1-15 21:15 來自觸屏版 | 只看該作者
感謝分享,謝謝
回復

使用道具 舉報

8#
ID:437129 發表于 2025-4-3 11:34 | 只看該作者
很好的教程,類似于Mixly(米思齊)。
樓主辛苦,感謝分享!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av官网在线| 国产成人福利 | 欧美成人一区二区 | 亚洲精品一区二区三区在线 | 中文字幕 在线观看 | 中文字幕高清一区 | 成人国产精品久久 | 粉嫩国产精品一区二区在线观看 | 国产福利91精品一区二区三区 | 久久成人免费观看 | 欧美性受xxx | 成人在线 | 高清成人免费视频 | 国产精品久久久久久久久久久久 | 国产一区二区在线免费 | 久久国产精品一区二区三区 | 精品在线看 | 三极网站 | 粉嫩国产精品一区二区在线观看 | 国产成人综合在线 | 狠狠色综合久久丁香婷婷 | 亚洲国产一区在线 | 久久9久| 精品久久久久久 | 亚洲精品久久久久久国产精华液 | 中文字幕日韩在线 | 日韩中文字幕一区二区三区 | 亚洲欧美视频在线观看 | 亚洲视频欧美视频 | 欧美日韩国产精品一区 | 古装人性做爰av网站 | 日韩精品在线播放 | 色视频www在线播放国产人成 | 亚洲一区二区久久 | 亚洲成人第一页 | 国产www. | 中文字幕免费中文 | 草草视频在线观看 | 热99在线 | 日本视频免费 | 免费观看黄 |