《十天學(xué)會智能車:基于Arduino》以開源硬件Arduino為技術(shù)背景,以創(chuàng)新教育為時代背景,以競速型智能車為載體,由淺人深地講述了基于Arduino的編程方法及智能車應(yīng)用?紤]到中小學(xué)的智能車教育及普及,特別講述了基于ArduBlock的圖形化編程步驟及具體應(yīng)用。
本教材分為10講,1~6講為基礎(chǔ)知識,由淺入深地熟悉Arduino的硬件和軟件平臺;7~9講為智能車的驅(qū)動、檢測和調(diào)試方法,并用簡單的整車實例講述了智能車的控制思路;第10講為積木化編程,并分別以四輪車和三輪車為例講解了圖形化編程的思路和編程方法,適合于中小學(xué)的智能車教學(xué)。
《十天學(xué)會智能車:基于Arduino》既可作為低年級大學(xué)生學(xué)習(xí)智能車的培訓(xùn)教材,也可作為中小學(xué)生創(chuàng)客創(chuàng)新教育的參考用書。
未來社會科技發(fā)展的大趨勢,就是人工智能、機器人、計算機、物聯(lián)網(wǎng)等。機器人所具有的“能聽、能看、能動’’的特性吸引了很多人的目光,機器人的分類很多,從它們的用途來說,有工業(yè)機器人、服務(wù)機器人、水下機器人、軍用機器人、農(nóng)業(yè)機器人等。除了外形像人的機器人外,還有一些外形不像人、但在其領(lǐng)域發(fā)揮巨大作用的機器人。運動方式也是多種多樣,有雙足步行的,也有輪式的,本書介紹的智能車屬于輪式機器人范疇。
智能車競速比賽是一項觀賞性強、參與面廣的科技競賽活動,已經(jīng)在全國大學(xué)生智能車競賽中得到了廣泛的開展,成為自動化及其相關(guān)專業(yè)大學(xué)生最受歡迎的競賽活動之一。在帶領(lǐng)大學(xué)生參與智能車競賽的十幾年時間里,我陸續(xù)提出了一些智能車競賽培訓(xùn)理念,例如,“人此門來選擇奮斗,出此門去已成大牛”的“奮斗大!蹦J,以及“大一看熱鬧,大二探門道,大三做主力,大四做指導(dǎo)”的大學(xué)四年培養(yǎng)模式等,將智能車競賽轉(zhuǎn)變?yōu)橐环N具有奮斗、傳承、包容、感恩、擔(dān)當?shù)染裉卣鞯闹悄苘囄幕囵B(yǎng)了一批又一批優(yōu)秀的智能車隊員。隨著智能車影響力的擴大和時間的推移,大一不再滿足于僅僅“看熱鬧”,而是想實實在在地參與智能車競賽活動。但自動化專業(yè)的大一學(xué)生并不具備專業(yè)知識,和其他工科、理課、文科的同學(xué)基礎(chǔ)是一樣的,如何讓他們快速入門,感受智能車的樂趣,是擺在每個智能車教育者面前的一道難題。
從2017年開始,全國大學(xué)生智能車競賽開始引人中小學(xué)組,其簡潔直觀的積木化編程方式讓人耳目一新。2018年我也嘗試帶領(lǐng)一支高中組的智能車隊參加競賽,竟然意外地獲得了山東賽區(qū)第一名,并最終以全國第二名的成績獲得高中組全國智能車競賽一等獎。兩名高中生表現(xiàn)出的對智能車的超級喜歡和強大的程序理解能力讓我感到驚訝:他們竟然理解了我講解的PID調(diào)節(jié)和分段控制,而且編寫出了原理相同且改進的程序,并在一個月的連續(xù)測試中跑壞了兩個舵機,最終用自己換好的第三個舵機及改進后的程序獲得佳績!
從這次指導(dǎo)高中組的競賽過程受到啟發(fā),我開始關(guān)注中小學(xué)生的編程能力需求及培養(yǎng)。蘋果公司CEO庫克曾透露,在他們公司的APP開發(fā)者里,年齡最小的只有9歲。00后和10后的孩子們從小就接觸互聯(lián)網(wǎng),接觸電子設(shè)備,擁有天然的優(yōu)勢,與其讓孩子沉迷手機,不如讓他們早一點擁抱新科技,而編程能力可能在未來會成為一種剛需。2014年,英國強制5~12歲孩子接受編程教育;2015年,美國投了40億美元,總統(tǒng)奧巴馬出面大力推廣創(chuàng)客教育;日本計劃2020年以后,把編程納人中小學(xué)的必修課。就我國而言,在教育部公布的《2019年教育信息化和網(wǎng)絡(luò)安全工作要點》中透露,將從2019年開始啟動中小學(xué)生信息素養(yǎng)測評,并推動在中小學(xué)階段設(shè)置人工智能相關(guān)課程,逐步推廣編程教育。
由此可見,編程需求低齡化已經(jīng)成為大勢所趨,得到了社會認同。在這種形勢下,如何開展編程教育就會成為一個焦點。中小學(xué)的編程教育不應(yīng)該是依樣畫葫蘆地學(xué)寫幾行代碼,而應(yīng)該是一種“編程思維”的訓(xùn)練。在日本文部科學(xué)省公布的小學(xué)新版教學(xué)大綱中,將“編程思維”定義為:為了實現(xiàn)自己的意圖,通過理性思考確定各個步驟的最優(yōu)組合并逐步完善,從而逐漸接近最理想的結(jié)果。面對智能車這種相對比較復(fù)雜的控制問題,可以分解為一個個的小問題,從熟悉開發(fā)工具人手,逐漸過渡到電機控制、舵機控制、賽道檢測、車速檢測等關(guān)鍵問題,找到整車控制與各關(guān)鍵問題之間的關(guān)聯(lián),從問題的逐一解決中找到答案。
興趣是最好的老師,而喜歡小車是孩子們的天性,哪個孩子從小沒有幾輛小車呢?而具有智能特性的小車可以自主識別賽道,并沿著特定的軌道飛速前進,對學(xué)生的吸引力很大。為了降低學(xué)習(xí)難度,通過比較甄別,本書選擇了Arduino開源式平臺。由于Arduino設(shè)計之初的目標人群就是非電子專業(yè)尤其是藝術(shù)家學(xué)習(xí)使用的,讓他們更容易實現(xiàn)自己的創(chuàng)意,這正符合不同專業(yè)大一新生的實際情況;其次,在Arduino軟件環(huán)境下,可利用積木化編程方式實現(xiàn)對智能車的控制,非常適合中小學(xué)生學(xué)習(xí)使用。
為了降低使用難度,我們開發(fā)了基于ArduinoNano的智能車系統(tǒng),并以套件的方式讓學(xué)生們組裝使用。考慮到學(xué)生的基礎(chǔ),根據(jù)學(xué)生對知識的認識規(guī)律,對教學(xué)內(nèi)容進行了精心篩選和安排,先從Arduino本身學(xué)起,逐步過渡到智能車的控制。本教材分為10講,l~6講為基礎(chǔ)知識,由淺人深地熟悉ArdLtino的硬件和軟件平臺;7~9講為智能車的驅(qū)動、檢測和調(diào)試方法,并用簡單的整車實例講述了智能車的控制思路;第10講為積木化編程,并分別以四輪車和三輪車為例講解了圖形化編程的思路和編程方法,適合于中小學(xué)的智能車教學(xué)。
第1講 智能車與創(chuàng)客教育
1.1 智能車與智能車競賽
1.1.1 汽車與智能車
1.1.2 智能車競賽
1.1.3 中小學(xué)智能車競賽
1.2 創(chuàng)客與創(chuàng)客教育
1.2.1 創(chuàng)客與創(chuàng)客文化
1.2.2 創(chuàng)客教育
1.3 開源硬件與Arduino
1.3.1 開源硬件
1.3.2 什么是Arduino
1.3.3 Arduino的優(yōu)勢
1.3.4 Arduino程序開發(fā)過程
1.4 Arduino硬件的分類
1.4.1 Arduino開發(fā)板
1.4.2 Arduino擴展硬件
1.5 Arduino軟件環(huán)境
1.5.1 什么是交叉編譯
1.5.2 Arduino IDE的安裝
1.5.3 Arduino IDE的設(shè)置
1.5.4 第一個示例程序
1.6 本講小結(jié)
第2講 Arduino編程基礎(chǔ)
2.1 Arduino基本要素
2.2 變量和數(shù)組
2.2.1 變量
2.2.2 數(shù)組
2.3 1 I/O口操作
2.3.1 數(shù)字I/O口的操作函數(shù)
2.3.2 模擬I/O口的操作函數(shù)
2.3.3 高級I/O口的操作函數(shù)
2.4 各種函數(shù)
2.4.1 時間函數(shù)
2.4.2 中斷函數(shù)
2.4.3 串口通信函數(shù)
2.4.4 庫函數(shù)
2.5 本講小結(jié)
第3講 點亮一個LED
3.1 實驗器件
3.1.1 面包板
3.1.2 杜邦線
3.1.3 電阻器
3.1.4 發(fā)光二極管
3.2 點亮一個LED
3.2.1 LED實驗原理圖
3.2.2 LED實驗電路連接
3.2.3 LED點亮實驗程序
3.2.4 程序編譯下載
3.2.5 實驗中的問題與解答
3.3 按鍵控制LED
3.3.1 按鍵電路
3.3.2 程序與理解
3.3.3 實驗思考
3.4 本講小結(jié)
第4講 點亮多個LED
4.1 流水燈實驗
4.2 數(shù)碼管顯示同一數(shù)字
4.2.1 認識數(shù)碼管
4.2.2 程序與理解
4.2.3 思考與實踐
4.3 數(shù)碼管顯示不同數(shù)字
4.3.1 靜態(tài)顯示和動態(tài)顯示
4.3.2 電路連接與程序
……
第5講 深入理解Arduino Nano
第6講 Arduino編程進階
第7講 智能車驅(qū)動控制技術(shù)
第8講 智能車檢測技術(shù)
第9講 智能車調(diào)試方法
第10講 Arduino的圖形化編程
附錄A U-ADO-F10X系列智能車套件介紹
附錄B U-ADO-F101智能車組裝說明
附錄C U-ADO-F101智能車用戶手冊與常見問題
附錄D U-ADO-F102智能車組裝說明
附錄E U-ADO-F10X主控板電路圖
參考文獻