999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MicroPython用于單片機實驗教學新模式的設計與研究

2019-04-01 01:33:28徐志江
計算機教育 2019年3期
關鍵詞:嵌入式單片機實驗教學

徐志江,饒 晨,徐 紅,彭 宏

(浙江工業大學 信息工程學院,浙江 杭州 310023)

1 現有單片機實驗教學存在的問題

目前各大高校在單片機及嵌入式的教學方面均開設“單片機原理及應用”“嵌入式系統”等相關課程。通過該方向的課程,學生了解到相關設備的硬件結構、各模塊功能、指令集操作、軟硬件的開發環境、嵌入式系統方面的一些基礎知識,而且大部分的課程是以課堂教學結合動手實驗操作的模式。實驗既鞏固了學生在課堂所學的相關理論知識,又培養了學生對于單片機、嵌入式系統的學習興趣,提高了學生的動手實踐能力,而這對于培養行業企業所需要的高素質應用型工程技術人才,是十分有幫助的。

現有的單片機教學一般采用“理論為主,實驗為輔”的教學模式[1],現在課堂上都是講授單片機的硬件結構、匯編指令、外設的硬件結構及存儲器讀寫等相關知識,然后結合IO控制、AD、DA、中斷、定時器、DMA、I2C、SPI、串口、數碼管、LCD顯示等,做一些驗證性實驗。但是,現有的單片機實驗,必須在電腦上安裝好相應的開發環境,歷經編程、編譯、仿真調試、燒寫以及驗證等多個環節。在整個過程中,單個環節出錯往往會影響整體,哪怕出現一點問題,都必須重新來一遍[2]。也就是說,單片機實驗不能像解釋性語言一樣,在線修改、調試。經驗告訴我們,一個沒有單片機編程經驗的初學者,要想讓芯片跑起來,一旦出現問題,就要對照一兩千頁的英文文檔來排除,這絕非一天兩天學習就可以打下堅實的基礎,而需要長期的經驗積累。而且在實際的實驗教學場景中,一些學生由于編程基礎差,理解實驗模塊代碼較慢,而課堂時間又有限,學生難以感受到單片機實驗所帶來的樂趣,因而失去學習單片機課程的興趣。

2 MicroPython介紹

Python是一種結合了解釋性、編譯性、互動性和面向對象的腳本語言,擁有極其豐富的Python庫,由于其代碼語言易于理解,操作靈活,使其在許多領域得到廣泛應用,近幾年流行的數據挖掘、科學計算、人工智能以及區塊鏈技術等領域,都可以看到Python的身影[3],甚至在一些高考項目領域,也出現Python的身影。近幾年,北京、浙江等省份的信息技術教材使用簡單易懂的Python語言替代晦澀難懂的VB語言,將Python語言設置為高考內容;山東等省份也將在最新出版的小學信息技術六年級教材加入Python內容。使用Python,只需要學會如何引用各個庫中的模塊,在代碼中實現相應的邏輯即可,免去了很多“重復造輪子”的工作,使編程變得純粹,節省開發時間。

MicroPython是基于Python3語言的一個精簡版實現,擁有自家的解析器、編譯器、虛擬機和類庫等,語法基本與Python一致。軟件底層使用ANSI C進行重構,封裝了C語言中的大部分函數,并且可以在資源受限的環境中運行。用C語言或者MicroPython語言實現相同的功能,MicroPython顯得尤為精簡,例如,MicroPython查看系統文件列表,只需要一行代碼就可以實現,但是C語言實現需要數十行的代碼。MicroPython包含了諸如交互式提示、任意精度整數、關閉、列表解析、生成器、異常處理等高級功能[4]。

在實際生活中,MicroPython也被用在越來越多的工程項目中。Matenat Khamphroo等人,使用支持MicroPython語言的STM32L432KC 168MHz Cortex M4處理器芯片,結合Thread網絡協議,制作了支持無線網絡的教育型移動機器人[5]。該機器人底層的MicroPython代碼結合Blockly(由Google提出的一種可視化編程語言),讓沒有基礎的編程初學者,通過圖形化的方式編寫代碼,實現相對應的功能。林賢煉等人則在物聯網領域使用MicroPython作為編程語言,實現了辦公設備的底層驅動以及上網功能[6]。Sebastian Plamauer等人更是基于復雜的小型衛星發射的軟件源代碼部分,比較了MicroPython和C語言的可讀性,發現并使用MicroPython作為編程語言,讓人們可以更專注于功能實現,明顯提高了代碼的可讀性[7]。文獻[8]是一本講述如何在micro:bit板子上實現開發的經典指導書籍。

3 基于MicroPython的單片機實驗教學

3.1 實驗教學改革思路與方案

MicroPython的流行必將推動著嵌入式系統[9]相關產業的高速發展。隨著嵌入式相關產業的需求不斷擴大,對相關專業人才的需求量也在不斷增加,嵌入式相關專業也會變得越來越熱門。單片機相關教學課程作為嵌入式系統的啟蒙教育,對學生在今后嵌入式系統方面的學習非常重要。因此我們針對現有單片機實驗教學中出現的學生編程基礎差、實驗上手慢、編譯調試耗時長等問題,提出了新的教學方案目標與思路。

考慮到隨著Python編程語言納入高考項目被越來越多的學生所使用,在單片機實驗教學時,因為編程語法的相近,有Python編程語言經驗的學生,在使用MicroPython語言編程時,會更加得心應手。因此我們的教學方案的目標是通過將MicroPython引入到單片機實驗課程中,一方面使學生不再畏懼編程,對于底層設備的操作更容易上手,不再被繁瑣的調試開發流程所困擾,采用MicroPython作為編程語言,學生可以實現在線調試,而無需經歷仿真調試、燒寫等過程。修改完代碼后,可以立即看到實驗結果,使學生更加專注于嵌入式系統設備的學習與操作,享受實驗成功所帶給他們的快感,從而能夠更容易地提升他們對于嵌入式相關課程的興趣,以真正達到實驗輔助理論的效果。另一方面,學生在具備單片機開發的基本知識之后,能夠更容易地深入嵌入式系統方面的學習當中,使其更好地具備現代嵌入式系統開發與研究的能力。

STM32單片機是目前市場上功能強、速度快、資源豐富、支持的型號多、適應性好、庫全面的一款非常適用于教學的單片機。同時,Python基于其跨平臺的特性,可以在Windows、Linux、Mac系統上直接運行。MicroPython結合兩者的長處,配合單片機課程的教學需要,研發制作模塊化、多功能、符合實際需求的單片機實驗裝置以及編寫配套實驗指導書。學生基于此單片機實驗裝置,可以直接進行相關的實驗操作,從而加強學生的學習興趣,進而提高對理論知識的認知、概念的理解,以強化教學效果;同時,對于培養學生的自學能力、創新能力都有重要的意義[10]。

3.2 簡約但不簡單的MicroPython開發板

開發板可選用官網(http://micropython.org/)指定的Pyboard,也可以采購國內最早支持MicroPython的專業開發板。

開發板非常簡潔,內嵌了一顆ST公司的Cortex-M4高性能芯片STM32F405RGT6,一顆I2C接口的3軸方向/運動檢測傳感器MMA7660,給整塊開發板供電的一顆LDO芯片,外接一個TF卡槽和USB座,兩顆按鍵,4顆紅、黃、綠、藍的LED指示燈以及CPU引腳接口。Pyboard內置了小型內部文件系統,存儲在微控制器的閃存,路徑是/ fl ash。如果將SD卡插入卡槽,路徑是/sd。Pyboard需要選擇一個文件系統來引導,優先使用/sd,如果沒有SD卡,它會使用內部文件系統/ fl ash作為引導文件系統。也可以根據需要在SD卡上創建空文件/lf ash/SKIPSD,Pyboard將會始終使用內部文件系統啟動。Pyboard把STM32F405RGT6這顆芯片的所有外設功能全部引出。這些管腳既可以用作普通的GPIO口,又可以用于特殊功能的外設,如 AD、DA、SPI、I2C、Timer、CAN、UART等。這些外設的功能全部在MicroPython固件中實現了,只需在Python代碼中調用即可。另外,板子上的RST按鍵用于復位,USR按鍵用于普通的輸入按鍵。RST、USR按鍵結合黃、綠LED指示燈,具有“標準啟動”“安全啟動”和“重置Flash文件系統”這3種啟動模式。當Flash文件系統損壞而導致Pyboard不能正常運行時,可以使用“重置Flash文件系統”模式來修復。

Pyboard板子上的USB具有3個作用。一是USB的5V電壓經過LDO芯片,給整塊開發板供電;二是CPU內置的、至多1MB的Flash中,劃出96KB空間虛擬成可移動的U盤;三是USB轉串口,用戶通過這個虛擬串口實現REPL(Read Eval Print Loop,交互式解釋器)功能。U盤中有4個文件,其中boot.py是開發板啟動時的執行腳本,它設置了開發板的多個選項參數;main.py包含了Python程序的主要腳本,在boot.py運行后被執行;README.txt包含開啟開發板的必要基礎信息;pycdc.inf是USB設備連接的Windows 配置文件。

可以添加的設備包括GPRS、GPS、溫濕度傳感器、蜂鳴器、LCD、Camera等,充分利用Cortex-M4/M7處理器的所有外設功能,能夠完成常用的單片機實驗,如控制LED燈亮滅實驗、PWM呼吸燈實驗、流水燈實驗、ADC實驗、OLED液晶屏顯示實驗、DHT11測試溫度實驗等[11-12]。在此基礎上,結合WiFi、LAN等模塊,輕易地實現多對多的廣域的網絡通信[13]。

通過內嵌的USB轉虛擬串口,MicorPython板與電腦USB相連接,即可進行REPL交互。REPL允許用戶和MicorPython的交互式連接,使用REPL是迄今為止來測試代碼和運行命令的最簡單的方法。如果學生熟悉Python,非常容易上手。

3.3 層次化實驗內容設計

結合單片機相關課程的理論內容,充分考慮嵌入式系統開發的特點,配合不同層次實驗教學的需要,以實踐為主導的立體化方式進行單片機教學,符合學生在學習過程中由淺入深、由易到難、由硬件到軟件、由基礎到綜合、由驗證到創新的規律[10,14]。設計的實驗項目既能用MicroPython快速編寫、調試程序,完成常規的單片機實驗,也能在WiFi、LAN、GPRS、Camera等模塊的支持下,完成基于物聯網思想的實驗[15]。更重要的是,對于科研能力較強的學生,還可以用C語言編寫各種外設的固件,再結合C與Python的接口,把它集成到定制的開發板來。

淺顯、易懂的實驗,以呼吸燈為例,Pyboard上的藍色LED 燈比較特別,在讓其亮滅的同時通過函數intensity()的方法控制其亮度,亮度值在0~255之間。代碼3.1實現了藍色LED循環漸亮然后熄滅的過程,實現了呼吸燈功能。對于其它的LED燈,調用toggle()函數,配合delay(),實現LED燈的閃爍。

Damien打造的MicroPython突破了Python操控底層的限制。如代碼3.2所示,第4、5行直接在訪問RTC外設的寄存器中去掉了寫保護;第7行為Micropython修飾符,表明后續的第8~11行點亮LED燈的函數led_on()采用的是ARM匯編代碼,內嵌匯編與匯編語言非常相似。MircoPython規定寄存器r0視為一個整數,其數值在函數返回時供使用者調用,因為Python所有對象都是整數。

上述幾個例子,均可以直接在REPL下輸入、調試和驗證。雖然Python具有代碼簡潔、編程速度快等優勢,但與C語言相比,其執行的速度要慢很多(可能差100倍),在一些實時性要求很高的情況下,必須采用C語言來編寫。為此,必須修改MicroPython固件,添加相應的功能,然后再在Python代碼中調用。因此,對具有一定創新和科研能力的學生,MicroPython不僅要求掌握Python語言,也需要很好地掌握CPU架構和C語言。以一個協議解析為例說明調用接口。

如代碼3.3所示,該協議函數添加在CPU的UART外設中。函數的入口參數為buf_in,一般以bytearray或者bytes的類型傳入。第4~7行,分析了傳入的類型以及數據長度;第9、10、16、17、27、28和30行表明了解析函數的返回為字典ret,該字典有兩個key,分別是“poor_signal”和“asic_eeg”;其中第17行指出“poor_signal”值為整數10;第12~14行為從傳入的buf_in中讀取數據;第19~28行指出,“asic_eeg”返回的是長度為8的元組tuple,元組中的每個元素值為整數,其值由傳入的buf_in給出;第32行表示analyse()函數有2個入口參數;第36行表示在UART中添加了analyse()這個函數。第39~42行為在REPL中,從串口接收數據,然后調用解析函數的過程。

3.4 MicroPython實驗教學的特色

基于MicroPython的單片機實驗教學,使得單片機容易上手,學生通過MicroPython可以輕松實現對微控制器的控制,這能夠在一定程度上提高學生的興趣。最直觀來說,哪怕對于不懂C語言基礎的學生來說,簡單的控制也非常容易,只需要幾行MicroPython腳本語言,就能實現硬件底層的訪問和控制,如控制LED燈、LCD顯示器、讀取電壓、模擬鼠標等操作,這就讓更多的計算機初學者也能來動手做硬件DIY,完全顛覆了對傳統單片機學習的認知,整個實驗的過程變得簡單明了。

在實驗教材的編寫方面,可以將實驗內容標識為不同層次,加入可選步驟,便于區分選擇。學生可以根據自己相應水平能力與興趣,按不同難度層次自主選擇單片機相關的實驗項目,結合不同的外置傳感器和通信模塊來定制實驗內容,滿足各種學習需求,有助于培養本科生的研究、探索、實踐、創新能力。

4 結語

近年來,隨著計算機技術以及相關技術的高速發展,嵌入式技術在越來越多的領域發揮著重要的作用,國家、行業企業對嵌入式專業人才的需求也越來越迫切,而各個高校所開設的單片機以及嵌入式相關課程,無疑對人才的培養起到關鍵性的啟蒙作用。將MicroPython與單片機實驗教學相結合,使學生能夠以一種新的模式學習嵌入式編程,更容易將所學的理論與實際相結合。這對于培養學生的動手實踐能力,提高對于新技術的動手開發能力具有重要意義。

猜你喜歡
嵌入式單片機實驗教學
小議初中化學演示實驗教學
甘肅教育(2020年4期)2020-09-11 07:42:36
電容器的實驗教學
物理之友(2020年12期)2020-07-16 05:39:20
對初中化學實驗教學的認識和體會
甘肅教育(2020年8期)2020-06-11 06:10:04
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
幾何體在高中數學實驗教學中的應用
Microchip推出兩個全新PIC單片機系列
主站蜘蛛池模板: 2021国产乱人伦在线播放| h网址在线观看| 国产成人亚洲日韩欧美电影| 在线日韩日本国产亚洲| www精品久久| 久久久久青草线综合超碰| 亚洲精品福利视频| av一区二区三区高清久久| 亚洲永久视频| 亚洲成人一区二区| 超薄丝袜足j国产在线视频| 国产靠逼视频| 亚洲人网站| 精品三级在线| 99无码中文字幕视频| 欧美一区二区啪啪| 国产女人综合久久精品视| 中文字幕伦视频| 又黄又爽视频好爽视频| 中文字幕乱妇无码AV在线| 亚洲欧洲一区二区三区| …亚洲 欧洲 另类 春色| 国产在线自乱拍播放| 五月激情婷婷综合| 男女男免费视频网站国产| 国产在线高清一级毛片| 免费a在线观看播放| 欧美一区精品| 激情综合婷婷丁香五月尤物| 国产人妖视频一区在线观看| 欧美不卡视频一区发布| 国产SUV精品一区二区| 国产精品欧美日本韩免费一区二区三区不卡| 国产精品自拍露脸视频| 久久美女精品国产精品亚洲| 欧洲在线免费视频| 久久夜夜视频| 日韩a级片视频| 欧美日韩在线成人| 乱人伦99久久| 日本免费a视频| 香蕉在线视频网站| 怡春院欧美一区二区三区免费| 国产成人亚洲精品色欲AV | 欧美.成人.综合在线| 日本人又色又爽的视频| 欧美午夜理伦三级在线观看| 97青草最新免费精品视频| 亚洲欧洲AV一区二区三区| 中文毛片无遮挡播放免费| 91欧美亚洲国产五月天| 中文字幕在线永久在线视频2020| 72种姿势欧美久久久大黄蕉| 国内黄色精品| 色香蕉影院| 国产一区二区三区在线观看免费| 一级在线毛片| 国产91视频观看| a欧美在线| 国产精品漂亮美女在线观看| AⅤ色综合久久天堂AV色综合| 国产精品片在线观看手机版 | av尤物免费在线观看| 国产精品极品美女自在线| 精品伊人久久久久7777人| 四虎精品国产永久在线观看| 亚洲a免费| 99久久成人国产精品免费| 911亚洲精品| 露脸真实国语乱在线观看| 中文字幕 欧美日韩| 成人免费视频一区| 国产成人精品一区二区三区| 欧美.成人.综合在线| 国产精品午夜福利麻豆| 亚洲日产2021三区在线| 无码啪啪精品天堂浪潮av | 久久亚洲美女精品国产精品| 亚洲欧美不卡视频| 9啪在线视频| 都市激情亚洲综合久久| 国产aaaaa一级毛片|