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

面向新工科的Python物聯網硬件編程教學設計研究

2019-02-26 06:45:44王德志梁俊艷
計算機教育 2019年12期
關鍵詞:教學學生

王德志,梁俊艷

(1.華北科技學院 計算機學院,河北 廊坊 065201;2.華北科技學院 圖書館,河北 廊坊 065201)

0 引言

從2017 年2 月以來,新工科教育成為當前高校教育改革的一項重要目標。新工科的核心思想是讓傳統的非計算機專業,結合計算機專業的特點,利用計算機技術與傳統專業高度融合,培養具有能夠利用計算機思維方式解決專業問題的人才,產生出新的創新成果[1-4]。在當前以物聯網、大數據、云計算、移動通信、人工智能為代表的計算機發展新方向都脫離不開軟件編程,因此新工科人才培養的一個重要能力是軟件編程能力提升[5]。物聯網技術作為近年發展的新興專業,由傳統的認為“傳感器+無線通信”,逐漸發展到多學科的交叉應用,人工智能、大數據等都不斷地融合應用到物聯網中。物聯網技術也應用到越來越多的傳統行業中,例如交通、機械制造、電氣工程等。而在此背景下,新工科人才的培養中,如何把物聯網技術與軟件編程有機的融合在一起,成為一個需要研究的問題。

1 現有物聯網硬件編程學習的問題

物聯網技術學習設計的知識體系較多,其中硬件編程的學時是基礎也是較難的內容之一。對于物聯網硬件編程主要設計的知識包括硬件電路知識、軟件編程知識和數據通信知識等。傳統的教學方法是把上述知識點分解到不同的課程中,雖然為學生打下了良好的基礎根基,但是也存在一些問題。

1.1 硬件學習難度高

物聯網的硬件知識涵蓋了電路基礎、數字電路和模擬電路等,對于計算機專業學生需要系統地學習相關知識,才能夠進行硬件的選型、設計與開發,重點在于讓學生掌握硬件設計的知識,能夠獨立設計開發硬件電路。而對于非計算機專業的新工科教學,硬件的學習重點在于讓非計算機專業學生理解硬件的設計思想,能夠看懂基本的硬件技術參數,能夠根據硬件技術參數進行產品的選型,而不是從最基礎的硬件電路設計開始。這是兩者最大的區別。因此,原有的硬件教學方式不適合新工科人才能力的培養。

1.2 編程語言學習種類多

物聯網硬件的編程語言可以涉及多類編程語言,從底層的匯編語言,通用的C/C++語言,一直到高級的Java 或.NET 編程語言等,都可以應用到物聯網設備編程中。雖然編程的語言種類不同,但是在物聯網應用中不同的語言都可以實現一些基本相同的硬件編程功能。例如TCP/IP 通信、串口通信等。對于計算機專業的學生,由于今后的工作需要在不同平臺上進行軟硬件開發,因此需要全面掌握從底層到高層的各類編程語言。而對于新工科的非計算機專業學生,重點在于如何通過軟件編程來實現物聯網的硬件功能。在實際工作中應用軟件編程的平臺相對穩定,因此在編程語言學習方面,可以減少學習語言的種類,通過學習一到兩種編程語言來解決實際工作的問題即可。

1.3 非計算機專業學習重點不突出

物聯網技術本身就是近年新發展的一個交叉學科,融合傳感器、無線通信、嵌入式系統開發和軟件開發技術等多門技術。其專業人才培養方面,知識覆蓋面廣、難度深,是一個相對較難學的專業。對于新工科人才培養知識體系,如何培養非計算機專業人員具有“物聯網思維”方式是其中一個難點問題。原先在大學的本科教學體系中,非計算機專業學生主要通過“大學計算機基礎”和“程序設計語言”這兩門課程培養“計算思維”,而沒有過多地強調“物聯網思維”方式。“計算思維”偏重于通過軟件編程方式解決問題,例如數據分析、邏輯控制等。而“物聯網思維”則是通過考慮應用“硬件+軟件+數據”的方式來解決問題。如何在新工科的人才培養中利用有限的教學時間,突出“物聯網思維”能力的培養成為一個難點。

2 Python語言硬件編程學習的優勢

Python 語言是20 世紀90 年代初誕生,在近年由于大數據和人工智能的發展,而得到快速發展的一種腳本解釋語言。從2018 年9 月開始第一次進入TiOBE 指數前3 名,一直保持在前3名中,而且熱度還在不斷提升中。Python 利用自身“后發”的優勢,融合前期傳統成功編程語言(例如C/C++、Java)的優點,在計算機各個領域中都嶄露頭角,例如Web 編程、數據分析、人工智能、自動化運維等領域[6-8]。Python 語言在物聯網硬件中的應用,近年也在不斷地發展,涌現出不同的技術分支。從應用標準Python 庫進行硬件編程,到針對特定硬件衍生的不同嵌入式Python 版本,在物聯網中應用的方案越來越多[9-10]。

2.1 Python在物聯網中運行版本

Python 在物聯網設備開發中,目前主要分為兩類方向,如表1 所示。一類是基于標準Python庫,以“嵌入式硬件+Linux 操作系統”為平臺為基礎,在Linux 上開發Python 程序,驅動硬件工作;第二類是基于嵌入式Python 庫,一般是第三方開發的擴展Python 庫,在特定硬件平臺上開發Python 程序。

目前,發展比較好的是基于樹莓派的Python、MicroPython 和Zerynth。其 中Zerynth的發展方向偏重于商業化發展,需要專用的開發平臺、專用云代碼存儲等,開源性不強,用戶可發揮的空間有限。而基于樹莓派的Python 和MicroPython 的發展是基于開源的思路,由第三方貢獻了大量的開源功能庫,具有豐富的硬件驅動庫,支持的硬件設備豐富。其中樹莓派平臺由于其支持高運算頻率和超大存儲空間,一般應用在高端的視頻圖像和復雜數據處理中。而MicroPython 由于其硬件平臺的低功耗、體積小和高性能特點,一般應用在物聯網底層的數據采集與傳輸環節中。

表1 物聯網開發應用Python版本

2.2 MicroPython的技術特點

MicroPython 是由英國劍橋大學教授Damien George 花費6 個月時間開發的,并于2014 年在KickStarter 眾籌網站上推廣,從而得到廣大用戶認可的開源平臺。MicroPython 本身使用GNU C進行開發,最早在意法公司STM32F4 微處理器平臺實現了Python3 的基本功能,擁有完善的解析器、編譯器、虛擬機和類庫等。通過不斷發展,現在已經提供了豐富的傳感器和硬件驅動庫,例如LED、液晶、舵機、SD 卡、UART、I2C 和SPI 等。支持的硬件平臺也在不斷擴展,現在已經可以移植到STM32L4、STM32F7、ESP8266、ESP32、micro:bit、MSP432 等眾多硬件平臺。其經典的基于STM32F4 的pyboard 硬件平臺開發板,如圖1 所示。

圖1 pyboard開發板圖

MicroPython 的體系結構采用如圖2 所示的方案。它由微控制器(系統底層)硬件、Micro Python 固件和用戶應用程序3 部分構成。硬件和固件是最基礎的部分,不同的硬件對應不同的固件,也是相對不變的,而用戶程序可以隨時改變,可以存放多個用戶程序到系統中,隨時調用或者切換。

圖2 MicroPython體系結構圖

2.3 利用MicroPython進行新工科教學的優勢

2.3.1 屏蔽硬件的異構性

由MicroPython 的體系結構可以看出,用戶在調用系統的硬件資源時,由于存在中間固件庫的屏蔽,對用戶而言,不需要過多了解不同硬件設備的具體驅動方式,只要掌握固件庫對應的硬件接口函數使用方法就可以直接驅動硬件工作。這樣,在教學環節中就可以有效降低對不同微控制器功能講解的難度,只要進行微控制器基本功能講解就可以。例如不同微控制器均具有通用型串口模塊,傳統的授課方式需要講解每種微控制器串口模塊控制寄存器的不同初始化方法,需要學生記住不同配置寄存器每位不同狀態代表的含義,難度較大。而應用MicroPython 固件庫調用,只要理解固件庫中串口的初始化函數,即可使用串口。例如利用串口間隔1 秒循環發送“hello world”給PC 機,代碼如下所示。

從上述代碼可以看出,基于MicroPython 進行硬件開發能夠屏蔽硬件的異構性,用戶只要掌握基本硬件驅動函數的使用方法,就可以快速完成硬件功能的實現。

2.3.2 硬件驅動庫的豐富

MicroPython 提供了豐富硬件驅動庫,根據其支持的硬件主要分為兩類。一類是微控制器自身包含的硬件接口功能的支持,如STM32F4微控制器包含的通用型輸入/輸出端口、串口、I2C、SPI、ADC、DAC、硬件定時器、硬件外部中斷等。另一類是外接常用硬件模塊的驅動,如慣導模塊、ESP8266WIFI 模塊、OLED顯示模塊、紅外接收模塊、DHT11 溫濕度模塊、LCD1602 液晶模塊等。由于MicroPython 采用開源模式,不斷有新的第三方硬件模塊驅動添加到硬件驅動庫中,極大地擴展了MicroPython 的應用范圍。

2.3.3 軟件編程的簡單化

采用MicroPython 提供的硬件驅動庫,能夠極大地減少程序的代碼量。以DS18B20 溫度傳感器為例。這是一種常用的溫度采集傳感器,它采用單線雙向通信模式。通過在一個GPIO 端口進行命令的輸出和數據的輸入,采用不同時序的控制,實現工作模式的配置以及實時溫度的采集。由于需要頻繁地切換GPIO 端口的工作模式,傳統C 語言的硬件編程具有一定的復雜度。而采用MicroPython 的硬件驅動庫,能夠極大地簡化代碼量,如下所示。

從上述代碼可以看出,硬件驅動庫中的函數已經完成了基本的硬件初始化、數據采集、數據轉換等功能,用戶只要調用相應的函數就可以實現應用功能開發,極大優化了代碼量。

2.3.4 編譯平臺的通用性

在嵌入式物聯網硬件編程中,傳統的方式是交叉編譯方式,在PC 機上編寫源代碼,然后利用特定編譯平臺編譯為嵌入式微控制器可執行代碼,然后通過網絡或專用調試端口下載到微控制器中。源代碼從編寫一直到下載執行需要多個工具平臺的支持,帶來了一定的使用難度。而Python 語言是一種解釋腳本語言,MicroPython很好地利用了這一特點。在MicroPython 的固件庫中,除了集成常用的硬件驅動之外,還包含了解析器、編譯器和虛擬機。對于用戶應用程序,只需要利用通用型文本編輯器編寫main.py 主程序,然后通過串口或調試端口把.py 文件下載到微控制器的Flash 中即可。由固件庫中虛擬機負責完成源代碼的解析、編譯和執行。這樣就減少了交叉編譯的環節,降低了對交叉編譯工具的依賴性,提升了程序調試的方便性。

3 基于MicroPython的物聯網編程教學設計

對于非計算機專業學生學習Python 語言硬件編程是一項很有挑戰性的任務,不同的專業背景,思維方式也不盡相同。為了提升學生學習物聯網技術的興趣,達到較好的教學效果,需要從多個方面進行教學設計,體現出MicroPython 在物聯網硬件編程中的特點,從而激發學生學習物聯網技術的熱情,培養“物聯網思維”的方式。

3.1 授課內容

基于MicroPython 的物聯網硬件編程教學授課可以融合在Python 語言的授課中,也可采用獨立授課的方式。教學內容主要涵蓋了標準Python 語言的基本語法使用方法和MicroPython特定教學內容。授課內容的框架如圖3 所示。

圖3 MicroPython授課框架圖

對于MicroPython 部分的教學內容,側重硬件案例講解,每一個硬件完成一個特定的應用功能,并可以結合已經學過的硬件構成綜合案例。例如LCD1602 液晶模塊案例,可以與前期的溫濕度傳感器結合,利用液晶模塊實時顯示采集的溫濕度值,同時可以結合輸入開關功能,實現對系統的啟動、關閉、重啟和參數調整等功能。通過不斷引入新的硬件設備,不斷豐富案例的內容,最終形成一個具有物聯網特色的應用案例。

3.2 授課方式

由于MicroPython 授課涉及硬件、軟件和平臺等多方面的內容,在有限的學時內都進行詳細講解有一定難度,因此,可以結合慕課教學的優點,采用“慕課+理論+實驗”的方法。把基礎介紹性的、需要記憶和頻繁操作的內容放到慕課教學中,例如pyboard 開發板功能介紹、pyboard開發板連接方法、代碼下載與運行方式等放到慕課中。采用課前學生預習、課上教師實操演示、課下學生利用慕課復習鞏固的方式,便于學生記憶和操作。對于需要分析和理解的內容,例如常用硬件接口參數配置方法、硬件驅動編程案例等,采用理論授課和實驗相結合的方式。通過教師課上深入淺出的理論與案例講解,讓學生理解MicroPython 硬件驅動編程思路和框架。通過實驗讓學生實際動手編寫代碼驅動硬件工作,從而掌握利用MicroPython 實際硬件編程的能力。

3.3 考核方式

當前,在教學改革中,對于考核方式推薦使用過程量化考核,避免一卷定分數的僵化模式。在MicroPython 的教學中,一方面側重于“物聯網思維”的理論培養,另一方面也要強調實際軟硬件綜合編程實操能力的培養。因此,在考核方式上,可以采用項目綜合評價方法。在授課開始的時候,就讓學生構思一個基于MicroPython 的硬件編程項目,在授課的過程中,讓學生不斷完善這個項目內容。通過每次實驗,完成項目的一定內容。最后在課程結束時,提交一個綜合性具有一定應用價值的設計項目。

通過每次實驗的檢查,監督學生項目的進度,并及時了解學生的學習情況,及時調整教學進度和教學內容。通過項目的技術文檔考核學生理解和掌握的理論知識水平,通過項目代碼與功能演示考核學生實際軟硬件編程操作能力。通過教學中對項目進展的跟蹤,避免在最后項目評價時的誤判,給出合理的考核結果。

4 教學效果評估

從2018 年4 開始,教學團隊在“程序設計語言(Python)”和“物聯網底層程序設計開放實驗”中進行MicroPython 教學授課示范工作。截止2019 年7 月,共5 個非計算機專業,學生115人次參加了相關課程的學習。授課結束后,對學生進行了匿名電子問卷調查工作,共有109 學生參與。調查結果如表2 所示。

表2 教學效果評估表 %

從表2 中數據可以看出,學生對于課程整體效果比較滿意,其中滿意度最高的是案例和考核方式,相對較低的是教材和授課內容。經過課后座談討論反饋,在授課內容方面,學生認為知識很新,很有創新性,但是知識學習偏難,知識點內容較多,授課學時較少,導致需要花費大量時間進行課下的學習和實踐操作。在教材方面,由于講授的知識點較多,沒有非常符合教學內容的教材,因此采用“教材+講義+參考書”的方式讓學生學習,學生需要學習多本教材或參考書,把握不住重點。在考核方式與學時分配上,學生比較滿意,能夠滿足大多數學生的需要。

5 結語

新工科人才培養,既是一次機遇,也是一次挑戰。不論對學生來說,還是對老師而言,都需要面對全新的教學內容和教學方式。利用MicroPython 語言開展物聯網硬件編程學習,拓展了Python 語言在教學中的應用范圍,為新工科人才“物聯網思維”方式的培養探索了一條途徑。但是MicroPython 的教學工作還需要進一步完善教學體系,優化教學內容,建設滿足授課需求的教材和授課案例。只有在實際教學工作中,聯系學生實際情況,不斷地改革與創新,才能使新工科人才的培養滿足社會的真正需求。

猜你喜歡
教學學生
快把我哥帶走
微課讓高中數學教學更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
如何讓高中生物教學變得生動有趣
甘肅教育(2020年12期)2020-04-13 06:25:34
《李學生》定檔8月28日
電影(2018年9期)2018-11-14 06:57:21
趕不走的學生
“自我診斷表”在高中數學教學中的應用
東方教育(2017年19期)2017-12-05 15:14:48
對外漢語教學中“想”和“要”的比較
唐山文學(2016年2期)2017-01-15 14:03:59
學生寫話
學生寫的話
跨越式跳高的教學絕招
體育師友(2013年6期)2013-03-11 18:52:18
主站蜘蛛池模板: 99re这里只有国产中文精品国产精品 | 九月婷婷亚洲综合在线| 欧美一区福利| 久久毛片免费基地| 色噜噜综合网| 天天婬欲婬香婬色婬视频播放| 亚洲欧美极品| 国产主播在线一区| 久久婷婷五月综合97色| 欧美精品亚洲二区| 扒开粉嫩的小缝隙喷白浆视频| 亚洲香蕉久久| 国内精品久久人妻无码大片高| 欧美视频二区| 亚洲无码视频喷水| 国产又粗又猛又爽视频| 亚洲欧州色色免费AV| 久久精品嫩草研究院| 亚洲精品无码日韩国产不卡| 热re99久久精品国99热| 88国产经典欧美一区二区三区| 91精品久久久久久无码人妻| 亚洲欧美一级一级a| 国产成人精品男人的天堂下载| 欧美精品导航| 国产成人综合在线观看| 青青草原国产一区二区| 久久婷婷色综合老司机| 尤物国产在线| 色综合综合网| 伊人久久大香线蕉综合影视| 亚洲综合婷婷激情| 久久国产乱子伦视频无卡顿| 五月丁香在线视频| 国产日韩欧美在线播放| 国产精品2| 人妻出轨无码中文一区二区| 为你提供最新久久精品久久综合| 亚洲成人动漫在线观看| 4虎影视国产在线观看精品| 日韩AV无码一区| 日韩人妻精品一区| 国产爽爽视频| 国产成人AV综合久久| 天天综合色天天综合网| 精品综合久久久久久97超人| 国产激情第一页| 国产黄色免费看| 日韩国产欧美精品在线| 狠狠色香婷婷久久亚洲精品| 亚洲成人在线网| 亚洲最黄视频| AV无码一区二区三区四区| 成人午夜在线播放| 婷婷99视频精品全部在线观看 | 无码电影在线观看| 国产精品亚洲欧美日韩久久| 国产精品永久在线| 国产精品嫩草影院视频| AV色爱天堂网| 99精品免费在线| 欧美日韩国产综合视频在线观看 | 无码精品一区二区久久久| 国产精品无码影视久久久久久久| 中文国产成人精品久久| 午夜影院a级片| 久久综合色88| 国产精品成人一区二区不卡| 中文成人在线视频| 日韩av电影一区二区三区四区| 午夜丁香婷婷| 国产欧美日韩va另类在线播放| 国产69精品久久久久孕妇大杂乱 | 亚洲日韩精品伊甸| 国产在线观看99| 国产一级毛片yw| 久久一级电影| 五月婷婷综合在线视频| 伊人福利视频| 国产三级毛片| 久996视频精品免费观看| 久久中文字幕2021精品|