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

讓開源硬件的選擇不再成為難題

2020-12-21 03:48:17謝作如
中國信息技術教育 2020年23期

謝作如

● pinpong庫的起源

2020年初,筆者受清華大學出版社的委托,組建團隊來編寫初中的信息技術教材。按照主編樊磊教授的要求,教材中不僅要涉及人工智能、數據科學,還要加入物聯網和開源硬件等知識。這時筆者發現,教材中應該使用哪一款開源硬件,已經成為一道難題。

1.開源硬件大盤點

據不完全統計,目前市場上有一百多種開源硬件,其中在中小學市場占有率較高的有Arduino、micro:bit、掌控板等,這些開源硬件支持的編程語言和工具如表1所示。

從表1中會發現,樹莓派、虛谷號、拿鐵熊貓和pcDuino等開源硬件,因為都采用了性能較好的芯片,能夠運行標準的Linux操作系統,所以能夠支持Python語言,支持Python idle之類任何一款能夠運行Linux的Python IDE。而Arduino、micro:bit和掌控板這三種市場占有率最高的開源硬件,都不支持Python。這些硬件中共同支持的編程工具,只有Arduino IDE。

Arduino的興起,是因為其采用了標準的編程規范,簡化了單片機的開發難度,畢竟創客教育面向的是非專業人群。但是Arduino IDE采用的是C/C++,在開發難度上比Python要高很多。當中小學的主流編程轉向Python后,大家不得不重新尋求一種新的解決方案。因而,MicroPython一出現,就很快成為開源硬件編程語言中的熱點。micro:bit和掌控板的一夜成名,MU、BXY和mPython等工具的先后面世,并且寫入國家教材,正是因為其順應了中小學編程語言發展的潮流。

2.選擇開源硬件難在哪里

不同的開源硬件采用了不同的芯片,其支持的編程語言和編程工具也各自不同,甚至連引腳編號和支持的擴展模塊也不同。Arduino的優勢在于其外部擴展資源多,掌控板的優勢在于它能夠便捷聯網,虛谷號的優勢在于它支持標準的Python,那么究竟是選擇Arduino、micro:bit還是選擇掌控板、虛谷號呢?

除了Arduino IDE外,有沒有一種編程語言,用統一的編程規范來控制不同的開源硬件?答案肯定是有的,那就是新興的Mind+、Kittenbot等圖形化編程工具。因為類似Scratch、Blockly的圖形化代碼最終會“轉化”為相應的代碼,如Arduino代碼或者MicroPython代碼。這樣就降低了編程的門檻,同樣的代碼規范,在不同的硬件上都通用。

3.開發pinpong庫的可行性分析

筆者為什么選擇用開發Python庫的形式,而不是開發一個全新的編程語言,主要有如下幾點理由。

(1)Python已經成為中小學主流編程語言

Python雖然古老,但因為開源而與時俱進。作為一個為非專業用戶設計的編程語言,Python類似Shell,讓用戶不需要過多關注算法之外的細節,淡化了界面設計,成為培養學生計算思維的最好工具之一。可以肯定,接下來從初中開始,主流的編程語言一定是Python。那么用擴展庫的方式,讓Python又多了一項功能,是最主流也是最合理的一種選擇。

(2)用Python控制開源硬件已經有一定的基礎

據了解,早在2014年就有創客團隊在開發一個名叫pingo的Python庫。其初衷也是希望為Raspberry Pi、BeagleBone Black、pcDuino和伽利略等開源硬件的編程提供統一的API,就像Python DBAPI為Python中的數據庫編程提供了統一的API一樣。只是很可惜,這個項目在四年前停止了開發。除此之外,為Arduino設計的Python庫還有多個,如pyfirmata和PyMata,以及虛谷號的xugu庫等。

(3)能運行Python的開源硬件將越來越普及

繼樹莓派之后,越來越多的“派”系列產品被設計出來,如pcDuino、香蕉派和香橙派等,這些開源硬件的價格越來越親民,因此,與其想方設法用MicroPython的方式去兼容單片機,還不如直接用Python代碼去控制開源硬件。這樣一來,Python的各種“無所不能”的庫都可以用起來。

● pinpong庫的規劃

如何設計一個Python庫?筆者首先確定了這個庫的第一目標人群是中小學生,是初學者。其次,考慮到micro:bit和掌控板都支持MicroPython,那這個庫要兼容它們的語法。因此,這個庫需要具備代碼簡潔、語法靈活和使用簡單三大特點。

1.工作原理

pinpong庫選擇的方案是使用標準的Python代碼來控制開源硬件,這和MicroPython的做法不一樣。MicroPython是借用了Python的語法風格,最終會編譯為C語言。而Python中大量的庫都要經過重新編寫才能使用。

那么,如何通過pinpong來控制開源硬件呢?筆者借助了一個通用的串口通信協議Firmata。開源硬件會輸入一個特定的固件,計算機發送命令給開源硬件,開源硬件執行命令后再反饋信息給計算機,這個過程的速度很快,如同直接控制開源硬件一樣。

2.支持硬件

pinpong庫將支持市場上絕大多數的開源硬件。pinpong庫的設計,是為了讓開發者在開發過程中不用被繁雜的硬件型號所束縛,而將重點轉移到軟件的實現。哪怕程序編寫初期用Arduino開發,部署時改成了掌控板,只要修改一下硬件的參數就能正常運行,實現了“一次編寫處處運行”。

從表1可以看出,開源硬件的品牌雖然很多,但基本上可以分為Arduino(涵蓋了拿鐵熊貓和虛谷號等)、ESP32(包括ESP8266和掌控板等)、micro:bit和樹莓派(涵蓋了pcDuino和banana派等)這四個類別。筆者給這些開源硬件分別起了一個“別名”,即board_name,如下頁表2所示。目前,pinpong庫已經支持Arduino、虛谷號和掌控板,其他的開源硬件支持已經在規劃中。

3.基本用法

如何讓代碼更加簡潔,并且容易理解?以Arduino UNO為例,下頁表3中的代碼將點亮Arduino板載的LED燈(D13引腳)。

從上述代碼可以看出,初始化硬件只要正確輸入硬件的品牌和型號即可。如果端口號省略,pinpong會自動掃描本機可用的所有串口,然后給硬件燒錄特定的固件。這樣一來,開源硬件的入門門檻降到了最低:只需要能辨別開源硬件的型號,并且知道其引腳的正確編號。

4.基礎對象

pinpong的基礎對象分為四種,分別為Board、Pin、Servo和I2C,具體說明如表4。

控制I/O引腳,是開源硬件的最核心的功能。pinpong庫中將引腳模式分為四種,分別為Pin.IN(輸?模式)、Pin.OUT(輸出模式)、Pin.ANALOG(模擬輸入模式)和Pin.PWM(模擬輸出模式)。不同的引腳模式,對應不同的讀寫方法,具體如表5所示。

● 結束語

筆者很幸運地遇上了一個非常專業的創客團隊,因而在短短的時間內,pinpong庫成形并開始測試。筆者在0.3版上通過基本的功能測試,體驗非常好。就在啟動pinpong項目的這段時間內,筆者了解到更多人的需求,也越來越體會到開發pinpong庫的價值。

也許pinpong庫還有很多不完善之處,但是筆者相信,有這么多一線教師和專業研發團隊的支持,pinpong庫一定會越來越好用,會助力我國乃至全球的信息技術教育的發展,讓更多的孩子愛上編程,愛上開源硬件。

主站蜘蛛池模板: 天堂在线www网亚洲| 一本色道久久88亚洲综合| av在线无码浏览| 亚洲av综合网| 国产精品一线天| 亚洲第一页在线观看| 日韩精品一区二区三区大桥未久| 露脸真实国语乱在线观看| 国产精品视频观看裸模| 69国产精品视频免费| 中文字幕乱妇无码AV在线| 欧美成人在线免费| 91在线高清视频| 香蕉国产精品视频| 无码丝袜人妻| 亚洲大尺码专区影院| 四虎精品黑人视频| 国产女人在线观看| 天天干天天色综合网| 精品一區二區久久久久久久網站 | 无码一区中文字幕| 一级高清毛片免费a级高清毛片| 日韩国产高清无码| 久久亚洲国产最新网站| 天天躁夜夜躁狠狠躁躁88| 婷婷六月综合网| 亚洲综合色在线| 亚洲一级毛片在线观播放| a级毛片免费网站| 最近最新中文字幕免费的一页| 国内精品伊人久久久久7777人| 国产夜色视频| 亚洲综合天堂网| 亚洲精品在线影院| 亚洲男人的天堂久久香蕉| 97影院午夜在线观看视频| 国产二级毛片| a毛片在线| 看国产一级毛片| 国产精品美女免费视频大全| 人妻中文字幕无码久久一区| 中文字幕在线视频免费| 日本一本正道综合久久dvd| 欧美亚洲一区二区三区导航| 亚洲一级毛片| 成人午夜免费观看| 69国产精品视频免费| 亚洲第一页在线观看| 亚洲制服丝袜第一页| 精品偷拍一区二区| 91亚洲精品第一| 99re在线免费视频| 凹凸国产熟女精品视频| 素人激情视频福利| 欧美一级在线播放| 久久精品丝袜高跟鞋| 四虎综合网| 久久国产精品无码hdav| 午夜少妇精品视频小电影| 国产福利影院在线观看| 国产精品视频3p| 99ri国产在线| 亚洲精品桃花岛av在线| 欧美精品啪啪| 亚卅精品无码久久毛片乌克兰| 久久永久视频| 国产区在线看| 国产喷水视频| 亚洲无码视频一区二区三区| 国产91九色在线播放| 亚洲欧美另类日本| 亚洲男人的天堂在线| 精品国产成人国产在线| 亚洲天堂成人| 欧美19综合中文字幕| 国产成人av一区二区三区| 无码日韩视频| 福利小视频在线播放| 欧美成人综合视频| 欧洲熟妇精品视频| 欧美日韩成人在线观看 | 久久99国产乱子伦精品免|