亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2020-12-21 03:48:17謝作如
        中國信息技術(shù)教育 2020年23期
        關(guān)鍵詞:編程語言樹莓開源

        謝作如

        ● pinpong庫的起源

        2020年初,筆者受清華大學(xué)出版社的委托,組建團(tuán)隊(duì)來編寫初中的信息技術(shù)教材。按照主編樊磊教授的要求,教材中不僅要涉及人工智能、數(shù)據(jù)科學(xué),還要加入物聯(lián)網(wǎng)和開源硬件等知識。這時(shí)筆者發(fā)現(xiàn),教材中應(yīng)該使用哪一款開源硬件,已經(jīng)成為一道難題。

        1.開源硬件大盤點(diǎn)

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

        從表1中會發(fā)現(xiàn),樹莓派、虛谷號、拿鐵熊貓和pcDuino等開源硬件,因?yàn)槎疾捎昧诵阅茌^好的芯片,能夠運(yùn)行標(biāo)準(zhǔn)的Linux操作系統(tǒng),所以能夠支持Python語言,支持Python idle之類任何一款能夠運(yùn)行Linux的Python IDE。而Arduino、micro:bit和掌控板這三種市場占有率最高的開源硬件,都不支持Python。這些硬件中共同支持的編程工具,只有Arduino IDE。

        Arduino的興起,是因?yàn)槠洳捎昧藰?biāo)準(zhǔn)的編程規(guī)范,簡化了單片機(jī)的開發(fā)難度,畢竟創(chuàng)客教育面向的是非專業(yè)人群。但是Arduino IDE采用的是C/C++,在開發(fā)難度上比Python要高很多。當(dāng)中小學(xué)的主流編程轉(zhuǎn)向Python后,大家不得不重新尋求一種新的解決方案。因而,MicroPython一出現(xiàn),就很快成為開源硬件編程語言中的熱點(diǎn)。micro:bit和掌控板的一夜成名,MU、BXY和mPython等工具的先后面世,并且寫入國家教材,正是因?yàn)槠漤槕?yīng)了中小學(xué)編程語言發(fā)展的潮流。

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

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

        除了Arduino IDE外,有沒有一種編程語言,用統(tǒng)一的編程規(guī)范來控制不同的開源硬件?答案肯定是有的,那就是新興的Mind+、Kittenbot等圖形化編程工具。因?yàn)轭愃芐cratch、Blockly的圖形化代碼最終會“轉(zhuǎn)化”為相應(yīng)的代碼,如Arduino代碼或者M(jìn)icroPython代碼。這樣就降低了編程的門檻,同樣的代碼規(guī)范,在不同的硬件上都通用。

        3.開發(fā)pinpong庫的可行性分析

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

        (1)Python已經(jīng)成為中小學(xué)主流編程語言

        Python雖然古老,但因?yàn)殚_源而與時(shí)俱進(jìn)。作為一個(gè)為非專業(yè)用戶設(shè)計(jì)的編程語言,Python類似Shell,讓用戶不需要過多關(guān)注算法之外的細(xì)節(jié),淡化了界面設(shè)計(jì),成為培養(yǎng)學(xué)生計(jì)算思維的最好工具之一??梢钥隙?,接下來從初中開始,主流的編程語言一定是Python。那么用擴(kuò)展庫的方式,讓Python又多了一項(xiàng)功能,是最主流也是最合理的一種選擇。

        (2)用Python控制開源硬件已經(jīng)有一定的基礎(chǔ)

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

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

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

        ● pinpong庫的規(guī)劃

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

        1.工作原理

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

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

        2.支持硬件

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

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

        3.基本用法

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

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

        4.基礎(chǔ)對象

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

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

        ● 結(jié)束語

        筆者很幸運(yùn)地遇上了一個(gè)非常專業(yè)的創(chuàng)客團(tuán)隊(duì),因而在短短的時(shí)間內(nèi),pinpong庫成形并開始測試。筆者在0.3版上通過基本的功能測試,體驗(yàn)非常好。就在啟動pinpong項(xiàng)目的這段時(shí)間內(nèi),筆者了解到更多人的需求,也越來越體會到開發(fā)pinpong庫的價(jià)值。

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

        猜你喜歡
        編程語言樹莓開源
        壓力-體積轉(zhuǎn)換在CFC編程語言中的實(shí)現(xiàn)解析
        Java編程語言的特點(diǎn)與應(yīng)用
        五毛錢能買多少頭牛
        基于樹莓派的騎行智能頭盔設(shè)計(jì)
        電子制作(2019年11期)2019-07-04 00:34:32
        淺談不同編程語言對計(jì)算機(jī)軟件開發(fā)的影響
        電子制作(2018年1期)2018-04-04 01:48:36
        基于樹莓派的遠(yuǎn)程家居控制系統(tǒng)的設(shè)計(jì)
        電子制作(2017年17期)2017-12-18 06:40:43
        大家說:開源、人工智能及創(chuàng)新
        開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
        響應(yīng)面法優(yōu)化紅樹莓酒發(fā)酵工藝
        中國釀造(2016年12期)2016-03-01 03:08:19
        面向?qū)ο骔eb開發(fā)編程語言的的評估方法
        国产看黄网站又黄又爽又色| 国产午夜视频一区二区三区| 久久人妻少妇嫩草av| 99精品国产99久久久久久97| 天天躁日日躁狠狠躁一区| 杨幂二区三区免费视频| 亚洲最大中文字幕熟女| 巨胸喷奶水www视频网站| 欧美高清国产在线播放| 91精品国产乱码久久久| 久久精品一区午夜视频| 国产国拍精品av在线观看按摩| AV永久天堂网| 久久偷拍国内亚洲青青草| 丰满少妇被猛烈进入高清播放 | 国产在线精品欧美日韩电影 | 免费av网址一区二区| 亚洲一区二区在线观看网址| 少妇饥渴偷公乱a级无码| 婷婷色综合成人成人网小说| 色偷偷亚洲精品一区二区| 婷婷五月六月激情综合色中文字幕| 中文字幕人妻丝袜乱一区三区| 亚洲 暴爽 AV人人爽日日碰| 男女互舔动态视频在线观看| 国产综合久久久久久鬼色| 大地资源网最新在线播放| 伊人久久婷婷综合五月97色| 风韵丰满熟妇啪啪区99杏| 久久aⅴ人妻少妇嫩草影院| 中文字幕亚洲精品第1页| 国产伦理一区二区久久精品| 亚洲精品白浆高清久久久久久| 亚洲国产一区二区三区亚瑟| 久久人妻少妇中文字幕| 日韩中文字幕版区一区二区三区 | 欧美专区在线| 白嫩少妇在线喷水18禁| 亚洲日韩精品a∨片无码加勒比| 国产免费午夜a无码v视频| 亚洲熟女国产熟女二区三区|