王 彤,夏 利,張立立
(東北大學 計算機科學與工程學院,遼寧 沈陽110819)
深化教育改革,注重知識、能力和素質全面發(fā)展,以培養(yǎng)具有堅實專業(yè)基礎、實踐能力和創(chuàng)新思維人才為目的是我校實訓課程一直遵循的教學理念[1]。東北大學計算機科學與工程學院計算機實驗教學中心是東北大學第三個國家級實驗教學示范中心,以促進大學生的全面發(fā)展和適應社會需求為宗旨,以培養(yǎng)創(chuàng)新精神為核心[2],形成了“強化基礎、重視能力、面向應用、鼓勵創(chuàng)新”的教學理念,針對計算機類、電子信息類和生物工程等專業(yè)本科生開設了多層次、立體化的實訓教學體系,在提供教學和實驗平臺的同時,為學生競賽、創(chuàng)新創(chuàng)業(yè)以及科研活動提供了實驗環(huán)境和支撐平臺。
為順應社會對創(chuàng)新人才需求的趨勢,本次教學探索通過向學生傳授樹莓派的結構、使用等知識,啟發(fā)學生根據(jù)題目要求、結合實際應用環(huán)境等合理發(fā)揮,開啟創(chuàng)新思維,培養(yǎng)學生在知識綜合運用和工程設計等方面的分析、解決問題的能力,為以后的進一步學習奠定基礎。
當前已有部分高校實踐教師開展了對實訓的積極探索與實踐。本次改革探索增設多個實訓實驗,根據(jù)計算機課程改革的需要,結合計算機教學委員會提出“增強學生系統(tǒng)能力”的要求,我們通過與多個企業(yè)開展的實訓教學合作,并結合我校電子信息類、計算機類、生物醫(yī)學工程大一本科生的校內實訓,在幫助學生學習計算機學科知識的同時,為學生提供了豐富的資源平臺,使教學實踐與技術發(fā)展與時俱進,培養(yǎng)學生運用所學知識解決實際工程問題的能力,逐步形成基于Raspberry Pi(樹莓派)的實踐技能實訓模式。
該實訓結合東北大學與東軟、東網(wǎng)科技等企業(yè)合作,以及校內各實訓課程已開展多年,此次由計算機學院與中荷生物醫(yī)學學院共同發(fā)起,是在電子信息類、計算機類以及生物醫(yī)學工程專業(yè)大學一年級第二學期開展,融入了樹莓派、物聯(lián)網(wǎng)等新課程為期4周時間的創(chuàng)新實訓教學項目,包括基礎知識教學環(huán)節(jié)和實踐訓練環(huán)節(jié)兩大部分,其中實踐訓練環(huán)節(jié)分為基礎實踐(基于樹莓派的簡單程序設計實例)和自主創(chuàng)新綜合實踐(如基于樹莓派的智能車設計)。
基礎知識是創(chuàng)新的基礎,只有在基礎知識的根基上學生的想象力才有用武之地。本次實訓內容包括學生開展樹莓派應用所需的軟硬件基礎知識,在此基礎上實現(xiàn)基于樹莓派的簡單程序設計實例,并完成更復雜的創(chuàng)新性設計題目。首先,教師向學生傳授樹莓派基礎知識、Linux操作系統(tǒng)、C語言以及Python語言程序設計等開展樹莓派創(chuàng)新實踐應用所必需的軟硬件基礎知識,燒錄系統(tǒng)、從零開始下載安裝所需軟件并配置基本環(huán)境,在Linux環(huán)境下使用命令編輯、編譯和調試簡單的C語言程序;接著,進一步介紹設計硬件系統(tǒng)的基本流程方法、樹莓派GPIO接口、傳感器的使用方法、基于樹莓派的程序設計方法以及Linux環(huán)境下如何使用命令編譯和執(zhí)行程序(C語言或Python)等知識,引導學生實現(xiàn)一個基于樹莓派的簡單實例了解樹莓派的實際應用;在此基礎上,學生可以根據(jù)實際需求和實驗室提供的硬件器件,自主創(chuàng)新、合理設計基于樹莓派的智能車,完成設計作品。
實訓教學在我校已開展多年,本次實訓教學改革探索融入了新的教學內容,基于樹莓派的計算機類實訓是新增環(huán)節(jié),面向電子信息類、計算機類以及生物醫(yī)學工程專業(yè),在大學一年級下學期開展。
基于樹莓派的實訓教學為8學時,包括基礎知識教學環(huán)節(jié)和實踐訓練環(huán)節(jié)兩大部分,其中實踐訓練環(huán)節(jié)分為基礎實踐和自主創(chuàng)新綜合實踐(基礎知識2學時、兩部分實踐共占6學時)?;A實踐實現(xiàn)一個基于樹莓派的簡單程序設計實例,自主創(chuàng)新綜合實踐要求學生設計實現(xiàn)基于樹莓派的智能小車。課程第一階段為樹莓派的系統(tǒng)燒錄,每名學生在兩個學時內獨立完成,由教師驗收合格后,利用2學時的時間繼續(xù)完成第二階段基于樹莓派的簡單程序設計實例。接著自由組隊,每組2~3人,采用組長負責制,完成基于樹莓派的智能車設計。學生小組根據(jù)需求合理提出解決設計方案,由教師評估,評估時教師要注意學生設計的規(guī)范性,引導學生在設計時養(yǎng)成良好的開發(fā)習慣;評估通過后用4學時完成實驗;最后由學生以組為單位向全體師生進行項目展示,包括演講、答辯以及評價交流,了解不同的解決方案,分享遇到的問題及解決方法,拓寬設計思路。
基于樹莓派的實訓教學包括基礎知識教學、基礎實踐和綜合實踐3部分。
該環(huán)節(jié)是創(chuàng)新設計的基礎。本實訓模式的基礎教學以信息技術為主,包括認識樹莓派、燒錄樹莓派系統(tǒng)、樹莓派端口介紹、環(huán)境配置和軟件安裝,引導學生在樹莓派上編輯、編譯和調試簡單的程序。
本次實驗所需的實驗元件包括Raspberry Pi、TF卡(32G)、讀卡器、VGA線、電源(1A、2.5A)、USB 線 (2根 )、HDMI轉 VGA(有源 )、鼠標、鍵盤以及一臺windows環(huán)境臺式機。
在項目水資源論證階段,對項目區(qū)實行嚴格的水資源論證審批制度,項目規(guī)模和布局以取水總量控制指標為指導,項目取水不得突破國家下達的地表水和地下水取水總量控制指標,對于已達到或超過控制指標的地區(qū),不得新增取水,對于接近控制指標的地區(qū),限制新增取水。地下水超采區(qū)內不得新增取用地下水,生態(tài)脆弱區(qū)限制地下水開采,防止出現(xiàn)生態(tài)環(huán)境問題。
樹莓派Rpi/RasPi / RPI (Raspberry Pi)是一款基于ARM的微型電腦主板,以SD卡為存儲媒體,同時擁有視頻模擬信號的電視輸出接口和HDMI高清視頻輸出接口[3]。創(chuàng)始人埃本·厄普頓(Eben Epton)是英國劍橋大學博士,最初開發(fā)動機是用于教育。樹莓派的尺寸為信用卡大小,價格僅25/35美金,基于Linux的操作系統(tǒng)、Python語言開發(fā)環(huán)境,同時也支持C、Java等語言,可連接電視、顯示器、鍵盤鼠標等設備使用,性價比高,功能強大,可用于學習計算機編程、培養(yǎng)計算機程序設計的興趣和能力,廣泛應用于教育、工控、機器人、物聯(lián)網(wǎng)以及智能家居等領域[4]。
Genernal Purpose Input Output(通用輸入/輸出)簡稱為GPIO,或總線擴展器,利用工業(yè)標準12C、SMBus或SPI接口簡化I/O口的擴展[5]。當微控制器或芯片組沒有足夠的I/O端口,或當系統(tǒng)需要采用遠端串行通信或控制時,GPIO產(chǎn)品能夠提供額外的控制和監(jiān)視功能。
在燒錄樹莓派系統(tǒng)前,引導學生將所需實驗元件正確連線。然后,引導學生自行燒錄樹莓派系統(tǒng),為學生提供官方下載地址自行下載樹莓派鏡像,運行Win32DiskImager,用讀卡器以及鏡像燒寫軟件Win32DiskImager寫系統(tǒng)到SD卡中,軟件界面如圖1所示。這里,本實訓所燒錄的系統(tǒng)為RaspBian,關于操作系統(tǒng)的知識可參閱文獻[6]。
環(huán)境配置包括網(wǎng)絡環(huán)境配置、本地語言以及鍵盤映射等。此部分由學生自行查找資料完成環(huán)境配置和軟件安裝,如音頻播放、文檔編輯等軟件。
圖1 Win32DiskImager軟件使用界面
引導學生編輯、編譯和調試簡單的C語言程序示例,建立文件編輯程序,通過命令執(zhí)行hello world程序。同時,要求學生使用Python編寫程序實現(xiàn)hello world程序,并在樹莓派上運行[7]。
要求學生課下查閱資料自行完成,并在實驗報告中對思考題作答,思考題可在下列題目中抽取設置,如安裝視頻播放軟件并播放視頻,配置藍牙功能,使手機與樹莓派通過藍牙傳輸文件等。
通過基于樹莓派的簡單程序設計實例體會樹莓派在實際中的應用,引導學生學習使用樹莓派設計硬件系統(tǒng)的基本流程方法[8]。在掌握樹莓派GPIO接口使用方法的基礎上,根據(jù)掌握的傳感器知識、程序設計方法,在Linux環(huán)境下使用命令編譯和執(zhí)行程序(C語言或Python)根據(jù)實驗需求點亮LED燈。
設計硬件電路,分別使用C語言和Python語言編寫程序實現(xiàn)下述兩個需求。小燈逐個閃爍(跑馬燈程序),用戶手離超聲波傳感器遮擋進入一定范圍小燈全亮(20cm或更小距離);奇數(shù)小燈和偶數(shù)小燈交替閃爍,用戶手離超聲波傳感器遮擋進入一定范圍小燈全滅(20cm或更小距離)。
本實驗是一個基于樹莓派的簡單實踐,學生需要學習硬件系統(tǒng)的基本流程方法,利用樹莓派GPIO接口知識,超聲波傳感器的工作原理及其使用,完成算法及相應電路的設計,調試分析程序,最后實現(xiàn)跑馬燈程序,并設計方法提高系統(tǒng)的靈敏度。
通過前兩個階段的學習以及開發(fā)實踐,學生可在教師引導下,根據(jù)已掌握的開源軟硬件知識,按照小組團隊根據(jù)需求完成設計方案,通過匯報和教師評估不斷完善,最終完成基于樹莓派的智能車設計[9]。
設計智能小車硬件電路,并分別用C語言和Python語言使智能小車按照規(guī)定軌跡行進;當遇到障礙物(約20cm)時,轉向其他方向,即循跡和避障功能。
智能車為機器人的一種,機器人的定義為能自動執(zhí)行工作的機械裝置[10]。機器人由機械裝置、傳感裝置和控制系統(tǒng)組成,機械裝置相當于執(zhí)行機構,傳感器相當于人類的感覺實現(xiàn)傳動和感知功能。這里,控制系統(tǒng)我們使用樹莓派實現(xiàn)。智能車的工作需要執(zhí)行代碼通過GPIO接口,去控制傳動和感知設備,讓機械設備按照預想的動作執(zhí)行任務。其中,傳感器與人類的感官相似,有聽、說、看、動(上、下等),傳感器有超聲波傳感器、紅外傳感器、溫濕度傳感器等。本實踐用到的傳感器為超聲波傳感器和灰度傳感器。
本環(huán)節(jié)除基礎知識部分提到的元件外,還需要超聲波傳感器、灰度傳感器、直流電機、L289N直流電機驅動器、輪式小車底盤,及相關固定框架等主要元件。其中,小車組裝配件包括底盤、T型連接器、六角尼龍柱、車輪等零件。
小車底盤的組裝。首先,固定直流電機,將T型連接器穿過底盤A一側的方形卡槽,將直流電機緊貼T型連接器外側放好,使上下兩個螺絲孔重合,取出較長的螺桿,穿過螺絲孔,將螺母擰緊固定,另一側的直流電機也按照此法固定;接著,安裝車輪,將車輪上的方形卡槽與直流電機的驅動軸對齊,輕按,將車輪安裝到直流電機的驅動軸上;然后,安裝萬向輪,取出萬向輪和較短的六角尼龍柱,用螺絲將萬向輪通過尼龍柱與小車底盤A相連接,用較長的六角尼龍柱固定底盤B和底盤A;最后,組裝完成后,智能車底盤如圖2所示。
圖2 智能車底盤
傳感器的安裝說明:智能小車配備兩個一路灰度傳感器和一個超聲波傳感器;灰度傳感器附著于直流電機底部,帶光敏電阻的一側置于車輪的前方;超聲波傳感器置于小車的前方,底盤A和底盤B之間;其中,小車底盤安裝萬向輪的一方為車尾。
其他部件:LP298N驅動板固定于底盤A的上方;Rpi(樹莓派)固定于底盤B上方。
避障部分的連線說明:首先,連接超聲波傳感器HC-SR04;vcc對應raspi的2號針腳,即5v電源口;Trig對應13號;Echo對應15號;Gnd對應14號,即ground接地引腳。
樹莓派、電機驅動器、電機之間的連線。樹莓派控制小車電機需要4路控制信號和2路使能信號。如有升壓模塊,可將Raspberry Pi 的5v供電升至12v,然后連接lp298n 的12v供電端口。如果沒有升壓站,請直接連接相鄰的5v供電端口。樹莓派、電機驅動器、電機之間的連線如圖3所示。其中,In1~In4 分別對應Wiring Pi,GPIO的21~24端口;ENA,ENB分別對應Wiring Pi,GPIO的0、1端口;超聲波傳感器使用wiringpi,gpio的2、3端口;灰度傳感器使用wiringpi,gpio的27、28端口。循跡部分連線圖見圖4。
圖3 樹莓派、電機驅動器、電機連線圖
圖4 循跡部分連線圖
本實驗是一個比較完整的工程實踐,學生需要學習樹莓派GPIO接口的使用方法,掌握超聲波傳感器、灰度傳感器的工作原理、內部結構及其使用以及智能車的組裝方法,并對實驗內容進行方案論證,完成算法和相應電路的設計,程序的調試分析,并設計方法排除環(huán)境因素對實驗結果的影響,提高智能車循跡和避障的靈敏度。
最后,實驗完成后,組織學生以組為單位進行項目展示,包括演講、答辯以及評價交流,進而了解不同的解決方案,分享遇到的問題及解決方法,拓寬設計思路。
圖5和圖6分別展示了學生完成的基礎實踐和綜合實踐的學生成果,并在答辯演示中分析了實驗中遇到的問題以及解決方法等。組內每名學生也在答辯過程和實驗報告中列舉了自己在實驗過程中的心得體會。
計算機類實訓作為實踐教學中的一個重要環(huán)節(jié),不但可以將理論與實踐結合,而且能夠提高學生對復雜工程問題的獨立解決能力和就業(yè)競爭力,為步入社會打下堅實基礎。同時,本次實訓改革進一步推動了我校國家級教學實驗中心的建設。實訓所需購置元件費用約2萬元,對于實驗室建設而言投入不大,即使學生后續(xù)想自購一套樹莓派設備深入學習,也只需約500元左右,學生可接受。教學實踐也證明了該實訓教學模式的可行性和有效性,但實訓內容、方法和手段等問題仍有待進一步地探討,以逐步提高實訓的質量和效果。
圖5 基礎實踐學生成果
圖6 綜合實踐學生成果
[1]賈杰. 創(chuàng)客教育與高等院校工程訓練的融合 [J]. 實驗技術與管理, 2015,32(12): 30-35.
[2]陳亞男, 李慧. 電工技能實訓課程開發(fā)與實踐[J]. 實驗技術與管理, 2010(27): 172-176.
[3]王江偉, 劉青. 玩轉樹莓派Raspberry Pi [M]. 北京: 北京航空航天大學出版, 2013.
[4]Matt R, Shawo W. 愛上Raspberry pi [M]. 北京: 科學出版社, 2013.
[5]Brendan H. Raspberry Pi樹莓派實作應用[M]. 北京: 人民郵電出版社, 2014 .
[6]鳥哥. 鳥哥的Linux 私房菜 [M]. 北京: 人民郵電出版社, 2011.
[7]Wolfram D. Learn Raspberry pi programming with python [M]. Boxton: NewnesPress, 2014.
[8]關靜麗, 艾紅, 陳雯柏. 基于樹莓派和Yeelink的開放實驗室監(jiān)控系統(tǒng)設計[J]. 實驗研究與探索, 2017(36): 115-119.
[9]朱軼. 曹清華. 基于Android、樹莓派、Arduino、機器人的創(chuàng)客技能教育探索與實踐 [J]. 實驗技術與管理, 2016(33): 172-175.
[10]胡福文, 徐福海, 張超英, 等. 基于創(chuàng)客文化的實驗室開放平臺建設研究與探索[J]. 實驗技術與管理, 2015, 32(7): 244-248.