0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CircuitPython:用于教育的嵌入式 Python

gfhtrdfd ? 2022-12-29 10:02 ? 次閱讀

“變化是唯一不變的”是希臘哲學(xué)家赫拉克利特的智慧明珠。這一點(diǎn)在數(shù)字電子世界中最為真實(shí)。C 語言是 1970 年代初期計(jì)算熱潮的產(chǎn)物,自從 BASIC 語言放棄其對(duì)微控制器編程的統(tǒng)治地位以來,它就一直主導(dǎo)著嵌入式開發(fā)。今天風(fēng)向又變了,這次轉(zhuǎn)向了日益流行的 Python 編程語言。MicroPython 在過去幾年出現(xiàn),以彌合面向桌面的 CPython 參考語言與相對(duì)有限的微控制器硬件規(guī)格之間的差距。

盡管如此,對(duì)于新手嵌入式開發(fā)人員來說,MicroPython 還是有點(diǎn)挑戰(zhàn)。輸入CircuitPython,它是 MicroPython 語言的一個(gè)分支,經(jīng)過調(diào)整以滿足學(xué)生和其他希望學(xué)習(xí)現(xiàn)代嵌入式系統(tǒng)開發(fā)的人的特定需求。自 2017 年夏季首次發(fā)布以來,由Adafruit Industries主辦的CircuitPython 語言在制造商和教育標(biāo)記中的受歡迎程度一直在穩(wěn)步增長。

在其當(dāng)前迭代中,即本文的 6.1.0 版,CircuitPython 支持由 Microchip Technology Atmel SAMD21和SAMD51微控制器以及 Nordic Semiconductor nRF52840片上系統(tǒng) (SoC) 提供支持的眾多開發(fā)板。以前的 CircuitPython 版本支持流行的 ESP8266 微控制器,但從版本 4 開始不再支持。雖然 CircuitPython 在許多方面與 MicroPython 相似,但它確實(shí)去除了復(fù)雜性并為那些剛剛接觸嵌入式電子產(chǎn)品的人提供了更直接的開發(fā)工作流程。

CircuitPython 入門

首先,與 MicroPython 一樣,CircuitPython 需要將特殊固件上傳到開發(fā)板,稱為 USB 閃存版本 2 或 UF2。許多受支持的開發(fā)板都預(yù)裝了固件。但是,所有開發(fā)板都提供一種機(jī)制,使系統(tǒng)進(jìn)入引導(dǎo)加載程序模式,從而允許刷新 UF2 固件。UF2 固件特定于每個(gè)開發(fā)板,因此請(qǐng)確保下載特定于您的開發(fā)板的最新固件。CircuitPython網(wǎng)站使這項(xiàng)任務(wù)變得簡單。將開發(fā)板插入計(jì)算機(jī)并啟用引導(dǎo)加載程序模式后,開發(fā)板應(yīng)顯示為名為BOOT的閃存驅(qū)動(dòng)器。只需將之前下載的UF2文件拖入BOOT的根目錄即可駕駛。成功安裝后,將出現(xiàn)一個(gè)名為CIRCUITPY的新驅(qū)動(dòng)器。至此,開發(fā)板已經(jīng)為它的第一個(gè)項(xiàng)目做好了準(zhǔn)備。

雖然任何代碼編輯器都可用于編輯 CircuitPython 源文件 (.py ),但建議初學(xué)者使用Mu 編輯器。安裝并運(yùn)行編輯器后,只需單擊“新建”按鈕即可創(chuàng)建一個(gè)空白的 Python 腳本文件。有大量示例代碼可以滿足幾乎所有需求。當(dāng)然,舉世聞名的Blinky LED就是硬件世界的Hello, World。這是一個(gè)閃爍 LED 的示例:

進(jìn)口板

進(jìn)口數(shù)碼

導(dǎo)入時(shí)間

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

而真實(shí)的:

led.value = 真

時(shí)間.睡眠(0.5)

led.value = 假

時(shí)間.睡眠(0.5)

輸入代碼后,將文件命名為code.py并將其保存到CIRCUITPY驅(qū)動(dòng)器的根目錄。如果您將文件保存在其他地方,例如桌面,只需單擊文件并將其從桌面拖動(dòng)到CIRCUITPY驅(qū)動(dòng)器圖標(biāo)即可。重要說明,文件名對(duì) CircuitPython 很重要,因?yàn)橛行┪募菫樘厥饽康谋A舻?。code.py 文件在每次重新加載后運(yùn)行。要建立僅在啟動(dòng)時(shí)運(yùn)行一次的任何設(shè)置函數(shù),請(qǐng)將該代碼放在名為boot.py的文件中。

CircuitPython 的一個(gè)很好的特性是它可以檢測(cè)到任何時(shí)候添加或更新文件并自動(dòng)重新啟動(dòng)代碼。無需按下重置按鈕或拔下/重新插入開發(fā)板的 USB 電纜。所有源代碼都保留為用戶可讀文件,因此您可以將開發(fā)板連接到任何計(jì)算機(jī)并以零配置管理工作進(jìn)行代碼更改。換句話說,您始終在設(shè)備上擁有最新的源代碼。

CircuitPython 通過使用庫使擴(kuò)展功能變得非常簡單。在CIRCUITPY驅(qū)動(dòng)器的根文件夾中,應(yīng)該有一個(gè)名為 lib 的文件夾。如果沒有,使用計(jì)算機(jī)的文件資源管理器從頭開始創(chuàng)建文件夾是安全的。這是存儲(chǔ)添加功能或與傳感器和執(zhí)行器交互所需的所有支持文件的地方。CircuitPython 提供標(biāo)準(zhǔn)的庫包,這些庫在 CircuitPython 開發(fā)人員中很受歡迎。這些庫文件針對(duì)嵌入式設(shè)備進(jìn)行了顯式優(yōu)化,并以 . MPY文件擴(kuò)展名。確保庫包的版本號(hào)與您正在使用的 CircuitPython 的版本號(hào)相匹配至關(guān)重要。在升級(jí) CircuitPython 固件時(shí),不要忘記同時(shí)升級(jí)庫包。

CircuitPython 與 MicroPython

CircuitPython 和 MicroPython 之間的其他一些主要區(qū)別包括:

所有構(gòu)建都啟用了浮點(diǎn)數(shù)。

不支持并發(fā)。

CircuitPython 中引入了一種安全模式,可在檢測(cè)到硬崩潰或掉電情況時(shí)阻止用戶代碼運(yùn)行。

模塊別名不可用。換句話說,uos和utime模塊不能作為os和time 使用。為了保持 CPython 兼容性,CircuitPython 操作系統(tǒng)和時(shí)間模塊是其 CPython 對(duì)應(yīng)項(xiàng)的子集。因此,CircuitPython 代碼在 CPython 中是可執(zhí)行的,但反之則不一定。

引入存儲(chǔ)模塊來掛載文件系統(tǒng)。

與其他 Python 版本一樣,CircuitPython 通過讀取-評(píng)估-打印循環(huán) (REPL) 終端提供交互式編程體驗(yàn)。對(duì)于 CircuitPython,可以在主代碼完成后通過串行終端連接到電路板并按鍵盤上的任意鍵進(jìn)入 REPL 環(huán)境。輸入 REPL 會(huì)禁用自動(dòng)重新加載功能。

CircuitPython 的另一個(gè)令人興奮的方面是Blinka。雖然 CircuitPython 在微控制器上運(yùn)行,但 Blinka 將 CircuitPython 庫帶到了微型個(gè)人計(jì)算機(jī)上,這些個(gè)人計(jì)算機(jī)被稱為單板計(jì)算機(jī) (SBC),例如 Raspberry Pi。對(duì)于那些來自桌面開發(fā)人員背景的人,Blinka 使 MicroPython 成為可在面向桌面的 Python 版本中運(yùn)行的 pip 可安裝 Python 庫,從而使使用與 SBC 相同的庫與各種傳感器和執(zhí)行器交互成為可能用于微控制器。

Python,Python,無處不在

CircuitPython 是進(jìn)入嵌入式系統(tǒng)軟件開發(fā)“Python 化”的激動(dòng)人心的入口。它的設(shè)計(jì)簡單,加上強(qiáng)大的功能集,使其成為教育工作者和創(chuàng)客等人的誘人編程語言。CircuitPython 還為專業(yè)人士提供了獨(dú)特的機(jī)會(huì)。對(duì)于嵌入式工程師來說,學(xué)習(xí) Python 等強(qiáng)大語言的機(jī)會(huì)有助于教授桌面和 Web 應(yīng)用程序技能。對(duì)于傳統(tǒng)的桌面應(yīng)用程序軟件開發(fā)人員,CircuitPython 提供了一種將他們的編碼技能從 PC 遷移到嵌入式系統(tǒng)的方法。

無論您的經(jīng)驗(yàn)如何,CircuitPython 都是嵌入式開發(fā)領(lǐng)域值得一提的新編程語言。它的獨(dú)特功能使嵌入式開發(fā)入門變得輕而易舉,同時(shí)還提供了一些新概念,這些概念也應(yīng)該會(huì)吸引資深程序員。CircuitPython 是嵌入式開發(fā)編程語言傳奇歷史中一個(gè)受歡迎的新成員。

我們想知道您是否有使用 CircuitPython 的經(jīng)驗(yàn)?在Twitter 上與我們聯(lián)系并與我們分享您的 CircuitPython 支持的項(xiàng)目!有興趣開始使用 CircuitPython,請(qǐng)查看此Adafruit CircuitPython 入門工具包。

審核編輯黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4774

    瀏覽量

    84386
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是嵌入式?一文讀懂嵌入式主板

    在現(xiàn)代科技浪潮中,嵌入式技術(shù)已成為支撐各種智能設(shè)備和系統(tǒng)運(yùn)行的核心力量。那么,究竟什么是嵌入式?嵌入式系統(tǒng),顧名思義,是將計(jì)算機(jī)的硬件和軟件嵌入到某種設(shè)備或系統(tǒng)中,以實(shí)現(xiàn)特定功能的計(jì)算
    的頭像 發(fā)表于 10-16 10:14 ?412次閱讀

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統(tǒng)的核心組件,是一種用于控制和數(shù)據(jù)處理的計(jì)算機(jī)硬件,其設(shè)計(jì)旨在嵌入特定設(shè)備中執(zhí)行專門任務(wù)。嵌入式主板如同是設(shè)備
    的頭像 發(fā)表于 09-30 10:05 ?327次閱讀

    飛凌嵌入式旗下教育品牌ElfBoard亮相全國大學(xué)生嵌入式競(jìng)賽總決賽現(xiàn)場(chǎng)

    ElfBoard作為嵌入式教育市場(chǎng)的新生力量,憑借母公司飛凌嵌入式多年深耕企業(yè)級(jí)嵌入式板卡的經(jīng)驗(yàn)亮相全國嵌賽總決賽現(xiàn)場(chǎng),希望將企業(yè)的實(shí)踐經(jīng)驗(yàn)與高校的理論研究相結(jié)合,共同推動(dòng)產(chǎn)學(xué)研結(jié)合,
    的頭像 發(fā)表于 08-15 09:39 ?628次閱讀
    飛凌<b class='flag-5'>嵌入式</b>旗下<b class='flag-5'>教育</b>品牌ElfBoard亮相全國大學(xué)生<b class='flag-5'>嵌入式</b>競(jìng)賽總決賽現(xiàn)場(chǎng)

    嵌入式系統(tǒng)怎么學(xué)?

    、C++或者Python。這些語言在嵌入式系統(tǒng)開發(fā)中都被廣泛應(yīng)用。 3、微處理器/微控制器架構(gòu):學(xué)習(xí)常見的微處理器和微控制器架構(gòu),如ARM、AVR、PIC等,了解其特性和應(yīng)用場(chǎng)景。 4、嵌入式系統(tǒng)開發(fā)
    發(fā)表于 07-02 10:10

    第61屆高博會(huì)圓滿閉幕,飛凌嵌入式教育品牌ElfBoard精彩回顧

    4月15~17日,備受矚目的第61屆中國高等教育博覽會(huì)在福州隆重舉行,在這場(chǎng)匯聚了眾多高等院校、教育精英與科技創(chuàng)新成果的盛會(huì)上,飛凌嵌入式旗下的教育品牌ElfBoard盛裝亮相,這是品
    的頭像 發(fā)表于 05-27 17:03 ?273次閱讀
    第61屆高博會(huì)圓滿閉幕,飛凌<b class='flag-5'>嵌入式</b><b class='flag-5'>教育</b>品牌ElfBoard精彩回顧

    第61屆高博會(huì)圓滿閉幕,飛凌嵌入式教育品牌ElfBoard精彩回顧

    4月15~17日,備受矚目的第61屆中國高等教育博覽會(huì)在福州隆重舉行,在這場(chǎng)匯聚了眾多高等院校、教育精英與科技創(chuàng)新成果的盛會(huì)上,飛凌嵌入式旗下的教育品牌ElfBoard盛裝亮相,這是品
    的頭像 發(fā)表于 04-19 14:33 ?735次閱讀
    第61屆高博會(huì)圓滿閉幕,飛凌<b class='flag-5'>嵌入式</b><b class='flag-5'>教育</b>品牌ElfBoard精彩回顧

    嵌入式主板,你了解多少?

    嵌入式主板,也稱為嵌入式計(jì)算機(jī)主板,是一種專門設(shè)計(jì)用于嵌入式系統(tǒng)的計(jì)算機(jī)主板。與臺(tái)式機(jī)和筆記本電腦中使用的常規(guī)主板不同,嵌入式主板設(shè)計(jì)
    的頭像 發(fā)表于 04-17 15:11 ?1395次閱讀

    嵌入式fpga是什么意思

    嵌入式FPGA是指將FPGA技術(shù)集成到嵌入式系統(tǒng)中的一種解決方案。嵌入式系統(tǒng)是一種為特定應(yīng)用而設(shè)計(jì)的計(jì)算機(jī)系統(tǒng),它通常包括處理器、內(nèi)存、外設(shè)接口等組件,并且被嵌入到更大的設(shè)備或系統(tǒng)中,
    的頭像 發(fā)表于 03-15 14:29 ?1169次閱讀

    fpga是嵌入式

    FPGA(現(xiàn)場(chǎng)可編程門陣列)不是嵌入式系統(tǒng),但FPGA在嵌入式系統(tǒng)中有著重要的應(yīng)用。
    的頭像 發(fā)表于 03-14 17:19 ?2096次閱讀

    嵌入式人工智能的就業(yè)方向有哪些?

    聯(lián)網(wǎng)ARM開發(fā) NB-IoT開發(fā)及實(shí)戰(zhàn) 七:python工程師,人工智能工程師 python語法基礎(chǔ) python核心編程 基于OpenCV的機(jī)器視覺開發(fā) 嵌入式人工智能滲入生活的方
    發(fā)表于 02-26 10:17

    嵌入式系統(tǒng)發(fā)展前景?

    的發(fā)展前景也十分廣闊。 隨著物聯(lián)網(wǎng)和智能設(shè)備的快速發(fā)展,嵌入式系統(tǒng)將更為普遍地應(yīng)用于各種設(shè)備和設(shè)施,包括家用電器、醫(yī)療設(shè)備、交通工具等。這些設(shè)備將通過嵌入式系統(tǒng)實(shí)現(xiàn)智能化、網(wǎng)絡(luò)化,從而為用戶提供更為便捷
    發(fā)表于 02-22 14:09

    嵌入式工控機(jī)性能特點(diǎn) 嵌入式工控機(jī)應(yīng)用場(chǎng)景

    嵌入式工控機(jī)性能特點(diǎn) 嵌入式工控機(jī)應(yīng)用場(chǎng)景 嵌入式工控機(jī)是一種專門設(shè)計(jì)用于工業(yè)控制系統(tǒng)的計(jì)算機(jī)設(shè)備。它具有與傳統(tǒng)計(jì)算機(jī)不同的性能特點(diǎn),并且在各種工業(yè)領(lǐng)域中有廣泛的應(yīng)用場(chǎng)景。 一、
    的頭像 發(fā)表于 02-04 11:35 ?608次閱讀

    嵌入式學(xué)習(xí)步驟

    語言編寫。但是,有些嵌入式系統(tǒng)也使用其他編程語言,例如Python或Java。 (3).了解硬件:深入了解您要控制的硬件設(shè)備的功能和特性。您需要了解嵌入式系統(tǒng)的處理器、內(nèi)存、I/O端口、傳感器和其他
    發(fā)表于 02-02 15:24

    啥是嵌入式?嵌入式都有啥?薪資如何?前景如何

    嵌入式系統(tǒng)(Embedded Systems)是一種特殊類型的計(jì)算機(jī)系統(tǒng),被嵌入到其他設(shè)備或系統(tǒng)中,用于執(zhí)行特定的任務(wù)或控制特定的功能。這些系統(tǒng)通常設(shè)計(jì)用于特定的應(yīng)用領(lǐng)域,具有特定的硬
    的頭像 發(fā)表于 01-17 16:39 ?767次閱讀
    啥是<b class='flag-5'>嵌入式</b>?<b class='flag-5'>嵌入式</b>都有啥?薪資如何?前景如何

    什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)的具體應(yīng)用

    嵌入式,一般是指嵌入式系統(tǒng)。用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置。
    的頭像 發(fā)表于 12-20 13:33 ?2347次閱讀