一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何使用CircuitPython

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-27 11:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

如何使用CircuitPython

因此,您有了這個(gè)新的 CircuitPython兼容板。您將其插入。也許它顯示為名為CIRCUITPY的磁盤(pán)驅(qū)動(dòng)器。也許不是!無(wú)論哪種方式,您都需要知道從這里出發(fā)的去向。好吧,我們已經(jīng)覆蓋了您!

本指南將幫助您開(kāi)始使用CircuitPython!

關(guān)于您的新主板,有很多令人驚奇的事情。其中之一是能夠運(yùn)行CircuitPython的能力。您可能在Adafruit網(wǎng)站上的某個(gè)地方看到過(guò)該名稱。不確定是什么?我們可以提供幫助!

“但是我一生從未編碼過(guò)。我沒(méi)有辦法!”你絕對(duì)可以! CircuitPython旨在幫助您從頭開(kāi)始學(xué)習(xí)。如果您不熟悉所有內(nèi)容,那么這是開(kāi)始的地方!

本指南將引導(dǎo)您逐步了解CircuitPython入門(mén)。您將學(xué)習(xí)如何安裝CircuitPython,更新到CircuitPython的最新版本,如何設(shè)置串行連接以及如何編輯文件。

歡迎使用CircuitPython!

什么是CircuitPython?

CircuitPython是一種編程語(yǔ)言,旨在簡(jiǎn)化在低成本微控制器板上進(jìn)行編程的實(shí)驗(yàn)和學(xué)習(xí)。它使入門(mén)變得比以往任何時(shí)候都更加輕松,無(wú)需預(yù)先下載桌面。設(shè)置好電路板后,打開(kāi)任何文本編輯器,然后開(kāi)始編輯代碼。就是這么簡(jiǎn)單。

CircuitPython基于Python

Python是增長(zhǎng)最快的編程語(yǔ)言。它在學(xué)校和大學(xué)中教授。這是一種高級(jí)編程語(yǔ)言,這意味著它的設(shè)計(jì)易于閱讀,編寫(xiě)和維護(hù)。它支持模塊和包,這意味著可以輕松地將代碼重用于其他項(xiàng)目。它具有內(nèi)置的解釋器,這意味著無(wú)需其他步驟即可使代碼正常工作,例如 compiling 。當(dāng)然,Python是開(kāi)源軟件,這意味著任何人都可以免費(fèi)使用,修改或改進(jìn)它。

CircuitPython為所有這些令人驚奇的功能添加了硬件支持。如果您已經(jīng)具備Python知識(shí),則可以輕松地將其應(yīng)用于CircuitPython。如果您以前沒(méi)有經(jīng)驗(yàn),那么開(kāi)始就非常簡(jiǎn)單!

為什么要使用CircuitPython?

CircuitPython設(shè)計(jì)為在微控制器板上運(yùn)行。微控制器板是帶有微控制器芯片的板,本質(zhì)上是一臺(tái)很小的多合一計(jì)算機(jī)。您拿著的板是微控制器板! CircuitPython易于使用,因?yàn)槟枰闹皇悄菈K小板,一條USB電纜和一臺(tái)具有USB連接的計(jì)算機(jī)。但這僅僅是開(kāi)始。

使用CircuitPython的其他原因包括:

您要快速啟動(dòng)并運(yùn)行。編輯您的代碼,保存文件,它會(huì)立即運(yùn)行。無(wú)需編譯,無(wú)需下載,也不需要上傳。

您是編程的新手。 CircuitPython在設(shè)計(jì)時(shí)就考慮了教育。開(kāi)始學(xué)習(xí)編程的過(guò)程很容易,您會(huì)立即從董事會(huì)獲得反饋。

輕松更新代碼。由于代碼位于磁盤(pán)驅(qū)動(dòng)器上,因此您可以隨時(shí)對(duì)其進(jìn)行編輯您還可以保留多個(gè)文件,以方便進(jìn)行實(shí)驗(yàn)。

串行控制臺(tái)和REPL。這些功能可讓您從代碼和交互式編程中獲得實(shí)時(shí)反饋。

文件存儲(chǔ)。 CircuitPython的內(nèi)部存儲(chǔ)使其非常適合數(shù)據(jù)記錄,播放音頻剪輯以及與文件交互。

強(qiáng)大的硬件支持。 有許多用于傳感器,分支板和其他外部組件的庫(kù)和驅(qū)動(dòng)程序。

它是Python! Python是增長(zhǎng)最快的編程語(yǔ)言。它在學(xué)校和大學(xué)中教授。 CircuitPython與Python幾乎完全兼容。它只是增加了硬件支持。

這僅僅是開(kāi)始。 CircuitPython不斷發(fā)展,并不斷更新。我們歡迎并鼓勵(lì)社區(qū)提供反饋,并將其納入開(kāi)發(fā)CircuitPython的方式中。這是開(kāi)源概念的核心。這使CircuitPython更適合您和使用它的每個(gè)人!

常見(jiàn)問(wèn)題

這些是有關(guān)CircuitPython和CircuitPython微控制器的一些常見(jiàn)問(wèn)題。

隨著我們繼續(xù)開(kāi)發(fā)CircuitPython和創(chuàng)建新版本,我們將停止支持較早的版本。訪問(wèn)https://circuitpython.org/downloads為您的電路板下載最新版本的CircuitPython。您必須下載與您的CircuitPython版本匹配的CircuitPython庫(kù)捆綁包。請(qǐng)更新CircuitPython,然后訪問(wèn)https://circuitpython.org/libraries下載最新的庫(kù)捆綁包。

我必須繼續(xù)使用CircuitPython 3.x或2.x,在哪里可以找到兼容的庫(kù)?

我們不再構(gòu)建或支持CircuitPython 2.x和3.x庫(kù)包。我們強(qiáng)烈建議您將CircuitPython更新到最新版本并使用當(dāng)前版本的庫(kù)。。但是,如果由于某種原因而無(wú)法更新,則可以在此處找到最后一個(gè)可用的2.x版本和最后一個(gè)可用的3版本。 .x在此處構(gòu)建。

CircuitPython是否支持ESP8266ESP32?為什么不呢?

我們從4.x版本開(kāi)始不再支持ESP8266-對(duì)于更多信息,請(qǐng)?jiān)谶@里閱讀!

https://learn.adafruit.com/welcome-to-circuitpython/circuitpython-for-esp8266

div》

如何使用CircuitPython連接到Internet?

如果您想添加WiFi支持,請(qǐng)參閱我們的ESP32/ESP8266作為協(xié)處理器的指南。

CircuitPython中是否有異步支持 》

我們目前在CircuitPython中沒(méi)有異步支持

我的RGB NeoPixel/點(diǎn)星形LED閃爍有趣的顏色-這是什么意思?

狀態(tài)LED可以告訴您CircuitPython開(kāi)發(fā)板的最新動(dòng)態(tài)。

什么是MemoryError?

當(dāng)您嘗試在板上存儲(chǔ)過(guò)多存儲(chǔ)空間時(shí)會(huì)發(fā)生內(nèi)存分配錯(cuò)誤。 CircuitPython微控制器板的可用內(nèi)存量有限。 M0 Express板上可以包含約250行代碼。如果您嘗試import太多的庫(kù),大型庫(kù)的組合,或者運(yùn)行的程序包含太多的代碼行,則您的代碼將無(wú)法運(yùn)行,并且您會(huì)在串行控制臺(tái)中收到MemoryError (REPL)。

當(dāng)我遇到MemoryError嗎?

嘗試重置主板。每次重置板卡時(shí),它都會(huì)重新分配內(nèi)存。雖然這不太可能解決您的問(wèn)題,但這是一個(gè)簡(jiǎn)單的步驟,值得嘗試。

請(qǐng)確保您使用的是庫(kù)的 .mpy 版本。捆綁包中的所有CircuitPython庫(kù)均以 .mpy 格式提供,與.py格式相比占用的內(nèi)存更少。確保您使用的是最新版本的CircuitPython庫(kù)包。

如果這不能解決問(wèn)題,請(qǐng)嘗試縮短代碼??s短注釋,刪除多余或不需要的代碼,或執(zhí)行其他任何清理操作以縮短代碼。如果您使用了很多函數(shù),則可以嘗試將它們移至單獨(dú)的庫(kù)中,創(chuàng)建該庫(kù)的.mpy并將其導(dǎo)入代碼中。

您可以將整個(gè)函數(shù)文件放入.mpy,將import放入code.py。這意味著您將無(wú)法在板上實(shí)時(shí)編輯代碼,但可以節(jié)省空間。

我的import語(yǔ)句的順序會(huì)影響內(nèi)存嗎?

這可能是因?yàn)閮?nèi)存根據(jù)分配順序和大小的不同而碎片化了對(duì)象。加載.mpy文件會(huì)占用較少的內(nèi)存,因此建議您對(duì)未編輯的文件執(zhí)行此操作。

如何創(chuàng)建自己的.mpy文件?

您可以使用以下方法制作自己的.mpy版本的文件: mpy-cross。

您可以從CircuitPython版本頁(yè)面(最新的2.x版本)為您的操作系統(tǒng)下載mpy-cross的CircuitPython 2.x版本。

您可以通過(guò)克隆CircuitPython GitHub存儲(chǔ)庫(kù)并在mpy-cross目錄中運(yùn)行make來(lái)為CircuitPython 3.x構(gòu)建circuitpython/mpy-cross/。然后運(yùn)行。/mpy-cross path/to/foo.py在與原始文件相同的目錄中創(chuàng)建foo.mpy。

如何查看我有多少可用內(nèi)存?

import gc

gc.mem_free()

將為您提供可用的字節(jié)數(shù)。

CircuitPython是否支持中斷?

否。 CircuitPython當(dāng)前不支持中斷。我們尚無(wú)確定何時(shí)將其包含在內(nèi)。

Feather M0是否支持WINC1500?

否,WINC1500將不適合M0閃存空間。

諸如ATmega328或ATmega2560的AVR可以運(yùn)行CircuitPython嗎?

否。

常用的首字母縮寫(xiě)

CP或CPy = CircuitPython

CPC =游樂(lè)場(chǎng)經(jīng)典版

CPX =游樂(lè)場(chǎng)特快版

安裝Mu編輯器

Mu是一個(gè)簡(jiǎn)單的代碼編輯器,可與Adafruit CircuitPython板一起使用。它是用Python編寫(xiě)的,可在Windows,MacOS,Linux和Raspberry Pi上運(yùn)行。內(nèi)置了串行控制臺(tái),因此您可以立即從開(kāi)發(fā)板的串行輸出中獲得反饋!

Mu是我們推薦的編輯器-請(qǐng)使用它(除非您已經(jīng)是一位經(jīng)驗(yàn)豐富的編碼人員,并且擁有喜歡的編輯器?。?/p>

下載并安裝Mu

從https://codewith.mu下載Mu。單擊下載或從這里開(kāi)始鏈接以獲取下載和安裝說(shuō)明。該網(wǎng)站還有很多其他信息,包括廣泛的教程和操作方法。

使用Mu

首次啟動(dòng)Mu時(shí),系統(tǒng)會(huì)提示您選擇“模式”-您可以以后總是要改變主意?,F(xiàn)在,請(qǐng)選擇 Adafruit !

當(dāng)前模式顯示在窗口的右下角,在“齒輪”圖標(biāo)旁邊。如果模式顯示“ Microbit”或其他名稱,請(qǐng)單擊該名稱,然后在出現(xiàn)的對(duì)話框中選擇“ Adafruit”。

Mu會(huì)嘗試自動(dòng)檢測(cè)您的電路板,因此請(qǐng)插入CircuitPython設(shè)備并確保其顯示為 CIRCUITPY 驅(qū)動(dòng)器,然后再啟動(dòng)Mu

,現(xiàn)在就可以編寫(xiě)代碼了!讓我們繼續(xù)吧。。..

安裝CircuitPython

在我們繼續(xù)開(kāi)發(fā)CircuitPython和創(chuàng)建新版本時(shí),我們將停止支持較舊的版本。如果您正在運(yùn)行CircuitPython 2.x,則需要更新到3.x。通常,Adafruit將支持最后兩個(gè)主要版本。

一些與CircuitPython兼容的電路板已安裝CircuitPython。其他的支持CircuitPython的,但需要安裝它。同樣,您可能想更新板上已經(jīng)安裝的CircuitPython的版本。安裝和更新步驟相同。這里我們將介紹如何在您的板上安裝或更新CircuitPython。

僅必須安裝CircuitPython ONCE,之后,您可以自由地編寫(xiě)自己喜歡的代碼,而無(wú)需再次進(jìn)行此過(guò)程,直到需要升級(jí)為止!

下載最新版本!

您要做的第一件事就是下載最新版本版本的CircuitPython。

如果您已經(jīng)在運(yùn)行CircuitPython,請(qǐng)確保您正在運(yùn)行最新版本!如果不確定,可以按照以下步驟操作,以確保安裝了最新版本。

總是在安裝或更新電路之前備份您的代碼。在大多數(shù)情況下,在更新過(guò)程中不會(huì)從您的開(kāi)發(fā)板上刪除任何內(nèi)容,但是這種情況可能會(huì)發(fā)生。如果板上已經(jīng)有代碼,請(qǐng)確保在執(zhí)行以下步驟之前將其備份到計(jì)算機(jī)上。

CircuitPython代碼的兩個(gè)位置

在2019年4月之前,從Adafruit CircuitPython Github網(wǎng)站下載了代碼。從2019年4月開(kāi)始,創(chuàng)建了新網(wǎng)站CircuitPython.org來(lái)托管CircuitPython。支持的板的定義在那里進(jìn)行了更新,更容易找到。創(chuàng)建板定義文件并將其上傳到站點(diǎn)后,將添加來(lái)自Adafruit和其他各方的新板。

通過(guò)單擊下面的綠色按鈕前往CircuitPython.org下載適用于您板的最新軟件。

點(diǎn)擊此處從CircuitPython.org下載CircuitPython

目前,這些文件仍在Adafruit的CircuitPython GitHub存儲(chǔ)庫(kù)中仍然可用。這些文件將來(lái)可能會(huì)遷移到新的CircuitPython.org存儲(chǔ)庫(kù)。

單擊此處查看最新的CircuitPython版本

向下滾動(dòng)到以下列表: CircuitPython文件,然后選擇適合您的電路板的文件。每個(gè)文件都包含與其兼容的板的名稱。為您的電路板下載文件。

接下來(lái),您將要使用已知良好的USB數(shù)據(jù)線插入板子。確保USB電纜是數(shù)據(jù)電纜!有些僅適用于充電,可能會(huì)導(dǎo)致很多挫敗感。

Windows 7驅(qū)動(dòng)程序

如果使用Windows 7,您需要在插入電路板之前安裝驅(qū)動(dòng)程序。

如果您使用的是Windows 7,請(qǐng)使用下面的鏈接下載驅(qū)動(dòng)程序包。您無(wú)需在Mac,Linux或Windows 10上安裝驅(qū)動(dòng)程序。

下載Adafruit Windows 7驅(qū)動(dòng)程序安裝程序

啟動(dòng)UF2引導(dǎo)加載程序

幾乎所有CircuitPython板均隨附了名為UF2的引導(dǎo)加載程序( U SB F 鞭打版本 2 ),這使得安裝和更新CircuitPython變得快速而簡(jiǎn)單。引導(dǎo)加載程序是您的電路板需要使用的模式,才能使您下載的CircuitPython .uf2 文件工作。如果您下載的與電路板名稱匹配的文件以 uf2 結(jié)尾,那么您想繼續(xù)此部分。但是,如果文件以 .bin 結(jié)尾,則必須執(zhí)行更復(fù)雜的安裝-請(qǐng)轉(zhuǎn)到此頁(yè)面以了解如何執(zhí)行此操作。

在板上找到重置按鈕。 。這是一個(gè)小的黑色按鈕,在大多數(shù)板上,它將是唯一可用的按鈕。 (在Circuit Playground Express上,它是位于面板中央的較小按鈕。)

點(diǎn)擊兩次此按鈕進(jìn)入引導(dǎo)程序。如果第一次嘗試不起作用,請(qǐng)不要?dú)鈊isc。拍子的節(jié)奏需要正確,有時(shí)需要幾次嘗試。如果您有Circuit Playground Express,并且剛從背包中拿出來(lái),請(qǐng)嘗試按一下按鈕。

成功后,板上的RGB LED將閃爍紅色,然后保持綠色。新的驅(qū)動(dòng)器將顯示在您的計(jì)算機(jī)上。該驅(qū)動(dòng)器將稱為boardnameBOOT,其中 boardname 是對(duì)特定板的引用。例如,一根羽毛將具有FEATHERBOOT,小飾品將具有TRINKETBOOT等。向前,我們將其稱為引導(dǎo)驅(qū)動(dòng)器BOOT

該板現(xiàn)在處于引導(dǎo)加載程序模式!這就是我們安裝或更新CircuitPython所需要的。

現(xiàn)在找到您下載的文件。將該文件拖到計(jì)算機(jī)上的BOOT驅(qū)動(dòng)器上。

指示燈應(yīng)再次閃爍,BOOT將消失,計(jì)算機(jī)上將出現(xiàn)一個(gè) new 驅(qū)動(dòng)器,稱為CIRCUITPY。

恭喜!您已成功安裝或更新CircuitPython!

CIRCUITPY和boardnameBOOT有什么區(qū)別?

將CircuitPython開(kāi)發(fā)板插入計(jì)算機(jī)時(shí),計(jì)算機(jī)會(huì)將開(kāi)發(fā)板的閃存視為USB閃存驅(qū)動(dòng)器,可以在其中存儲(chǔ)文件被存儲(chǔ)。成功安裝CircuitPython后,您將看到CIRCUITPY驅(qū)動(dòng)器。雙擊重置按鈕時(shí),您會(huì)看到boardnameBOOT驅(qū)動(dòng)器。您可以將文件拖到兩個(gè)文件,但是只有CIRCUITPY才能運(yùn)行CircuitPython代碼。

通常,將文件拖到已安裝的USB驅(qū)動(dòng)器時(shí),該文件將復(fù)制到該驅(qū)動(dòng)器中,然后能夠在文件瀏覽器中顯示。但是,將CircuitPython UF2文件拖到boardnameBOOT驅(qū)動(dòng)器時(shí),它似乎消失了,并且驅(qū)動(dòng)器斷開(kāi)了連接。這個(gè)是正常的! UF2本質(zhì)上是一個(gè)安裝程序文件,并且不僅位于驅(qū)動(dòng)器上,而且如果該板處于引導(dǎo)加載程序模式(即boardnameBOOT)也可以安裝CircuitPython。

您將能夠復(fù)制其他文件文件加載到引導(dǎo)加載程序驅(qū)動(dòng)器(boardnameBOOT),但它們將無(wú)法運(yùn)行或無(wú)法被CircuitPython訪問(wèn)。因此,請(qǐng)確保在完成CircuitPython的安裝后,將其拖到CIRCUITPY驅(qū)動(dòng)器上并在其中編輯文件!

Bootloader驅(qū)動(dòng)器名稱

此列表并不詳盡,但是應(yīng)該讓您知道在Bootloader驅(qū)動(dòng)器名稱中要查找的內(nèi)容。

小飾品M0 = TRINKETBOOT

寶石M0 = GEMMABOOT

電路游樂(lè)場(chǎng)Express = CPLAYBOOT

ItsyBitsy M0 Express = ITSYBOOT

ItsyBitsy M4 Express = ITSYM4BOOT

羽毛M0 Express = FEATHERBOOT

羽毛M4 Express = FEATHERBOOT

地鐵M0 Express = METROBOOT

地鐵M4 Express = METROM4BOOT

盛大Central M4 Express = GCM4BOOT

NeoTrelis M4 Express = TRELM4BOOT

CIRCUITPY驅(qū)動(dòng)器

當(dāng)CircuitPython完成安裝,或者將CircuitPython板插入已安裝CircuitPython的計(jì)算機(jī)時(shí),該板將作為USB驅(qū)動(dòng)器顯示在計(jì)算機(jī)上 CIRCUITPY 。

CIRCUITPY 驅(qū)動(dòng)器是您的代碼以及必需的庫(kù)和文件所在的位置。您可以直接在此驅(qū)動(dòng)器上編輯代碼,保存時(shí)它將自動(dòng)運(yùn)行。創(chuàng)建和編輯代碼時(shí),會(huì)將代碼保存在 CIRCUITPY 驅(qū)動(dòng)器上的code.py文件中。如果要與“學(xué)習(xí)”指南一起關(guān)注,則可以粘貼內(nèi)容教程示例中的內(nèi)容放入 CIRCUITPY 驅(qū)動(dòng)器上的code.py中并保存以運(yùn)行示例。

CircuitPython查找code.py并運(yùn)行其中的內(nèi)容當(dāng)板子啟動(dòng),重新加載或保存對(duì)文件的更改時(shí),文件會(huì)自動(dòng)生成。這就是讓您輕松開(kāi)始項(xiàng)目并更新代碼的原因!

設(shè)備

有許多與CircuitPython一起使用的板。您可能會(huì)發(fā)現(xiàn)自己處于同時(shí)使用多個(gè)板的情況。當(dāng)您將多塊板插入計(jì)算機(jī)時(shí)會(huì)發(fā)生什么?您有多個(gè) CIRCUITPY 驅(qū)動(dòng)器!您怎么知道是哪一個(gè)?您可以重命名每個(gè) CIRCUITPY 驅(qū)動(dòng)器以避免混淆。

重命名CIRCUITPY

重命名 CIRCUITPY 時(shí),它將名稱寫(xiě)入文件系統(tǒng)。這意味著更改名稱將通過(guò)斷開(kāi)電路板連接以及重新加載CircuitPython來(lái)持續(xù)!

名稱必須小于等于11個(gè)字符!這是文件系統(tǒng)的限制。如果您選擇的名稱超過(guò)11個(gè)字符,則會(huì)收到錯(cuò)誤消息。

在Mac上重命名CIRCUITPY

在Mac上重命名 CIRCUITPY 驅(qū)動(dòng)器很簡(jiǎn)單。在Finder中單擊驅(qū)動(dòng)器,以便查看內(nèi)容。然后,右鍵單擊Finder中的驅(qū)動(dòng)器,然后選擇“重命名”。

單擊“重命名”后,在右鍵菜單中,驅(qū)動(dòng)器名稱將顯示在一個(gè)文本框中,您可以在其中重命名驅(qū)動(dòng)器。鍵入新名稱。

在Windows上重命名CIRCUITPY

在Windows上重命名 CIRCUITPY 驅(qū)動(dòng)器很容易。打開(kāi)文件資源管理器,找到 CIRCUITPY 驅(qū)動(dòng)器。右鍵單擊它,然后單擊“重命名”。

在Windows上重命名 CIRCUITPY 驅(qū)動(dòng)器很容易。打開(kāi)文件資源管理器,找到 CIRCUITPY 驅(qū)動(dòng)器。右鍵單擊它,然后單擊“重命名”。

還可以通過(guò)“屬性”菜單重命名驅(qū)動(dòng)器,該菜單可以通過(guò)Windows File Explorer以幾種不同的方式打開(kāi),包括右鍵單擊 CIRCUITPY 驅(qū)動(dòng)器,然后選擇“屬性”。

在Linux上重命名CIRCUITPY

在Linux上重命名 CIRCUITPY 需要幾個(gè)步驟。您需要確定安裝點(diǎn),然后運(yùn)行命令以重命名驅(qū)動(dòng)器。

打開(kāi)終端程序。運(yùn)行以下命令找出您的電路板的安裝位置:

下載:文件

復(fù)制代碼

df | grep CIRCUITPY df | grep CIRCUITPY

您將在結(jié)果行的右端看到CIRCUITPY。該行左端的dev/foo(其中foo是安裝點(diǎn)的名稱)是安裝點(diǎn)。

接下來(lái),您可以運(yùn)行以下命令卸下電路板,將foo替換為您的特定掛載點(diǎn)。

下載:文件

復(fù)制代碼

sudo umount /dev/foo sudo umount /dev/foo

要重命名木板,請(qǐng)運(yùn)行以下命令:

下載:文件

復(fù)制代碼

sudo fatlabel /dev/foo NEW_NAME sudo fatlabel /dev/foo NEW_NAME

然后彈出板,拔下電源插頭,然后重新插入,以強(qiáng)制使用新名稱重新安裝。

要檢查其是否工作,請(qǐng)?jiān)谝韵挛恢貌檎因?qū)動(dòng)器您的文件管理器?;蛘?,您可以運(yùn)行以下命令:

下載:文件

復(fù)制代碼

df | grep NEW_NAME df | grep NEW_NAME

通過(guò)CircuitPython重命名CIRCUITPY

您還可以使用CircuitPython重命名板。在您的 CIRCUITPY 驅(qū)動(dòng)器上創(chuàng)建一個(gè)名為boot.py的新文件。將以下代碼復(fù)制到新的boot.py文件中:

下載:文件

復(fù)制代碼

import storage

storage.remount(“/”, readonly=True)

m = storage.getmount(“/”)

m.label = “NEW_NAME”

storage.remount(“/”, readonly=False) import storage

storage.remount(“/”, readonly=True)

m = storage.getmount(“/”)

m.label = “NEW_NAME”

storage.remount(“/”, readonly=False)

彈出板,然后按一次“重置”按鈕或拔下板來(lái)重新啟動(dòng)板并重新插入。片刻之后,它應(yīng)該會(huì)以您選擇的NEW_NAME出現(xiàn)在文件瀏覽器中!您可以在文件瀏覽器中顯示新命名的板后刪除boot.py。

還原為CIRCUITPY

您可以按照上述相同的過(guò)程將驅(qū)動(dòng)器重命名為 CIRCUITPY 。

您還將通過(guò)擦除文件系統(tǒng)恢復(fù)為 CIRCUITPY 。如果您需要擦除CircuitPython板上的文件系統(tǒng),則驅(qū)動(dòng)器名稱將在完成后恢復(fù)為 CIRCUITPY 。

創(chuàng)建和編輯代碼

CircuitPython最好的事情之一就是使代碼的啟動(dòng)和運(yùn)行變得如此簡(jiǎn)單。在本節(jié)中,我們將介紹如何創(chuàng)建和編輯第一個(gè)CircuitPython程序。

要?jiǎng)?chuàng)建和編輯代碼,只需要一個(gè)編輯器即可。有很多選擇。 我們強(qiáng)烈建議您使用Mu!它是為CircuitPython設(shè)計(jì)的,并且非常簡(jiǎn)單易用,帶有內(nèi)置的串行控制臺(tái)!

如果您不使用Mu,則可以使用基本的文本編輯器進(jìn)入每個(gè)操作系統(tǒng),例如Windows上的記事本,Mac上的TextEdit和Linux上的gedit。但是,許多這些編輯器不會(huì)立即將更改寫(xiě)回到您編輯的文件中。使用CircuitPython時(shí)可能會(huì)導(dǎo)致問(wèn)題。請(qǐng)參閱下面的“編輯代碼”部分。如果您現(xiàn)在想跳過(guò)該部分,請(qǐng)確保在不使用Mu的情況下在寫(xiě)入文件后在Windows上執(zhí)行“彈出”或“安全刪除”,或者在Linux上執(zhí)行“同步”。 (在MacOS上這不是問(wèn)題。)

創(chuàng)建代碼

打開(kāi)編輯器,然后創(chuàng)建一個(gè)新文件。如果您使用的是Mu,請(qǐng)單擊左上角的 New 按鈕

復(fù)制并粘貼將以下代碼添加到編輯器中:

下載:文件

復(fù)制代碼

import board

import digitalio

import time

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

while True:

led.value = True

time.sleep(0.5)

led.value = False

time.sleep(0.5) import board

import digitalio

import time

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

while True:

led.value = True

time.sleep(0.5)

led.value = False

time.sleep(0.5)

看起來(lái)像這樣-請(qǐng)注意,在while True:行下,接下來(lái)的四行有空格以使其縮進(jìn),但是它們的縮進(jìn)量完全相同。其他所有行在文本之前都沒(méi)有空格。

將此文件另存為CIRCUITPY上的 code.py

。在每個(gè)板上,您都會(huì)發(fā)現(xiàn)一個(gè)紅色的小LED。現(xiàn)在它應(yīng)該閃爍。每秒一次

恭喜,您已經(jīng)運(yùn)行了第一個(gè)CircuitPython程序!

編輯代碼

要編輯代碼,請(qǐng)打開(kāi)CIRCUITPY驅(qū)動(dòng)器上的 code.py 文件進(jìn)入編輯器。

對(duì)代碼進(jìn)行所需的更改。保存文件。就是這樣!

文件保存完成后,您的代碼更改將立即運(yùn)行。

在繼續(xù)之前,我們只有一個(gè)警告……

Don單擊重置或拔出!

板上的CircuitPython代碼將檢測(cè)何時(shí)更改或?qū)懭胛募?,并?huì)自動(dòng)重新啟動(dòng)代碼。

但是,這樣做可以使編碼變得非???。

但是,您必須 等到文件保存完成后才能拔出或重置主板! 在使用某些編輯器的Windows上,有時(shí)可能會(huì)花費(fèi) 90秒,在Linux上,則可能需要30秒來(lái)完成,因?yàn)槲谋揪庉嬈鞑粫?huì)保存完全歸檔。 Mac OS似乎沒(méi)有此延遲,這很好!

要意識(shí)到這一點(diǎn)非常重要。如果在計(jì)算機(jī)完成將文件寫(xiě)入板之前拔出板或重置板,則可能損壞驅(qū)動(dòng)器。如果發(fā)生這種情況,您可能會(huì)丟失編寫(xiě)的代碼,因此定期將代碼備份到計(jì)算機(jī)上很重要。

有幾種方法可以避免這種情況:

1。保存時(shí),請(qǐng)使用可以完全寫(xiě)出文件的編輯器。

推薦的編輯器:

mu 是可以安全地寫(xiě)入所有更改的編輯器(它也是我們推薦的編輯器?。?/p>

emacs 還是一個(gè)可以在保存時(shí)完全寫(xiě)入文件的編輯器

Sublime Text 安全地寫(xiě)入所有更改

Visual Studio代碼似乎可以安全地寫(xiě)入所有更改

gedit 在Linux上似乎可以安全地寫(xiě)入所有更改

推薦僅具有特定設(shè)置或附加組件:

vim / vi 安全地寫(xiě)入所有更改。但是將 vim 設(shè)置為不將交換文件(.swp文件:您的編輯的臨時(shí)記錄)寫(xiě)入CIRCUITPY。使用vim -n運(yùn)行vim,設(shè)置no swapfile選項(xiàng),或設(shè)置directory選項(xiàng)以在其他位置寫(xiě)入交換文件。否則,交換文件writestrigger會(huì)重新啟動(dòng)程序。

如果在“設(shè)置”-》“系統(tǒng)設(shè)置”-》“同步”中啟用了“安全寫(xiě)入”,則 PyCharm IDE 是安全的(默認(rèn)情況下為true) 。

如果您使用的是 Atom ,請(qǐng)安裝保存時(shí)fsync軟件包,以便它始終將對(duì)CIRCUITPY上文件的所有更改寫(xiě)出。

SlickEdit 僅在您添加了宏來(lái)刷新磁盤(pán)時(shí)有效。

我們不推薦這些編輯器:

記事本(默認(rèn)的Windows編輯器)和N otepad ++ 可能寫(xiě)起來(lái)很慢,因此我們建議使用上面的編輯器!如果您使用的是記事本,請(qǐng)確保彈出驅(qū)動(dòng)器(見(jiàn)下文)

IDLE 不會(huì)立即強(qiáng)制更改

nano (在Linux上)不會(huì)強(qiáng)制更改

geany (在Linux上)不會(huì)強(qiáng)制更改

其他任何操作-我們尚未測(cè)試其他編輯器,因此請(qǐng)使用推薦的編輯器!

2。寫(xiě)入后彈出或同步驅(qū)動(dòng)器

如果您使用的是我們不推薦的編輯器之一,則不會(huì)丟失所有信息!您仍然可以使其工作。

在Windows上,您可以彈出或安全刪除 CIRCUITPY驅(qū)動(dòng)器。它實(shí)際上不會(huì)彈出,但是會(huì)強(qiáng)制操作系統(tǒng)將文件保存到磁盤(pán)。在Linux上,在終端中使用 sync 命令來(lái)強(qiáng)制寫(xiě)入磁盤(pán)。

哦,我沒(méi)有做錯(cuò)什么,現(xiàn)在CIRCUITPY驅(qū)動(dòng)器沒(méi)有顯示?。。?/p>

別擔(dān)心!損壞驅(qū)動(dòng)器并不是世界末日(或您的董事會(huì)?。?。如果發(fā)生這種情況,請(qǐng)按照每塊主板指南的“故障排除”頁(yè)面上的步驟操作,以重新啟動(dòng)您的主板。

返回編輯代碼。..

現(xiàn)在!讓我們嘗試編輯添加到板上的程序。在編輯器中打開(kāi) code.py 文件。我們將進(jìn)行簡(jiǎn)單的更改。將第一個(gè)0.5更改為0.1。代碼應(yīng)如下所示:

下載:文件

復(fù)制代碼

import board

import digitalio

import time

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

while True:

led.value = True

time.sleep(0.1)

led.value = False

time.sleep(0.5) import board

import digitalio

import time

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

while True:

led.value = True

time.sleep(0.1)

led.value = False

time.sleep(0.5)

其余代碼保持原樣。保存文件??纯窗迳系腖ED會(huì)怎樣?事情變了!你知道為什么嗎?讓我們找出答案吧!

探索您的第一個(gè)CircuitPython程序

首先,我們來(lái)看一下正在編輯的代碼。

這又是原始代碼:

下載:文件

復(fù)制代碼

import board

import digitalio

import time

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

while True:

led.value = True

time.sleep(0.5)

led.value = False

time.sleep(0.5) import board

import digitalio

import time

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

while True:

led.value = True

time.sleep(0.5)

led.value = False

time.sleep(0.5)

導(dǎo)入和庫(kù)

您運(yùn)行的每個(gè)CircuitPython程序都需要掌握很多信息。 CircuitPython使用起來(lái)如此簡(jiǎn)單的原因是,大多數(shù)信息都存儲(chǔ)在其他文件中并在后臺(tái)運(yùn)行。這些文件稱為庫(kù)。其中一些內(nèi)置在CircuitPython中。其他文件則存儲(chǔ)在您的CIRCUITPY驅(qū)動(dòng)器上的 lib 文件夾中。

下載:文件

復(fù)制代碼

import board

import digitalio

import time import board

import digitalio

import time

import語(yǔ)句告訴董事會(huì)您重新使用代碼中的特定庫(kù)。在此示例中,我們導(dǎo)入了三個(gè)庫(kù):board,digitalio和time。所有這三個(gè)庫(kù)都內(nèi)置在CircuitPython中,因此不需要單獨(dú)的文件。這就是使它成為出色的第一個(gè)例子的原因之一。您不需要任何額外的東西即可使其正常工作! board使您可以訪問(wèn)板上的硬件,digitalio可以使您訪問(wèn)該硬件作為輸入/輸出,而time您通過(guò)“睡眠”來(lái)打發(fā)時(shí)間

向上發(fā)光二極管

接下來(lái)的兩行代碼設(shè)置使用發(fā)光二極管的代碼。

下載:文件

復(fù)制代碼

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

您的主板將紅色LED表示為D13。因此,我們初始化該引腳,并將其設(shè)置為輸出。我們將led設(shè)置為等于該信息的其余部分,因此我們以后不必在代碼中再次輸入所有信息。

循環(huán)去循環(huán)

第三部分以while語(yǔ)句開(kāi)頭。 while True:本質(zhì)上表示“永遠(yuǎn)執(zhí)行以下操作:”。 while True:創(chuàng)建一個(gè)循環(huán)。代碼將在條件為“ true”(相對(duì)于false)時(shí)“ while”循環(huán),并且由于True永遠(yuǎn)都不為False,因此代碼將永遠(yuǎn)循環(huán)。在while True:下縮進(jìn)的所有代碼都在循環(huán)“內(nèi)部”。

在循環(huán)內(nèi)部,我們有四個(gè)項(xiàng)目:

下載:文件

復(fù)制代碼

while True:

led.value = True

time.sleep(0.5)

led.value = False

time.sleep(0.5) while True:

led.value = True

time.sleep(0.5)

led.value = False

time.sleep(0.5)

首先,我們有l(wèi)ed.value = True。這條線告訴LED點(diǎn)亮。在下一行,我們有time.sleep(0.5)。此行告訴CircuitPython將運(yùn)行代碼暫停0.5秒。由于這是在打開(kāi)和關(guān)閉LED之間進(jìn)行的操作,因此LED將持續(xù)0.5秒。

接下來(lái)的兩行類(lèi)似。 led.value = False告訴LED熄滅,time.sleep(0.5)告訴CircuitPython再暫停0.5秒。

然后在再次關(guān)閉LED并重新打開(kāi)LED的同時(shí)發(fā)生這種情況。

然后,循環(huán)將再次開(kāi)始,只要代碼正在運(yùn)行,循環(huán)就會(huì)繼續(xù)!

p》

因此,當(dāng)您將第一個(gè)0.5更改為0.1時(shí),可以減少代碼使LED點(diǎn)亮的時(shí)間。因此,它會(huì)在關(guān)閉之前快速閃爍!

辛苦了!您已經(jīng)在CircuitPython程序中編輯了代碼!

如果我沒(méi)有循環(huán)怎么辦?

如果沒(méi)有循環(huán),代碼將運(yùn)行到最后并退出。在這樣的簡(jiǎn)單程序中,這可能導(dǎo)致某些意想不到的行為,因?yàn)椤巴顺觥边€會(huì)重置硬件狀態(tài)。這與通過(guò)REPL運(yùn)行命令不同。因此,如果您正在編寫(xiě)似乎無(wú)法正常運(yùn)行的簡(jiǎn)單程序,則可能需要在最后添加一個(gè)循環(huán),以使該程序不會(huì)退出。

最簡(jiǎn)單的循環(huán)是:

while True:

pass

記住,您可以按 退出循環(huán)。

另請(qǐng)參閱文檔中的“行為”部分。

更多更改

我們不必在此止步!我們繼續(xù)吧。將第二個(gè)0.5更改為0.1,使其如下所示:

下載:文件

復(fù)制代碼

while True:

led.value = True

time.sleep(0.1)

led.value = False

time.sleep(0.1) while True:

led.value = True

time.sleep(0.1)

led.value = False

time.sleep(0.1)

現(xiàn)在,它閃爍的很快!您減少了代碼打開(kāi)和關(guān)閉LED的時(shí)間!

現(xiàn)在嘗試將兩個(gè)0.1都增加到1。您的LED指示燈閃爍的速度會(huì)慢得多,因?yàn)槟黾恿舜蜷_(kāi)和關(guān)閉LED指示燈的時(shí)間。

做得好!你做得很好!您已經(jīng)準(zhǔn)備好開(kāi)始新的示例并對(duì)其進(jìn)行編輯以查看會(huì)發(fā)生什么!這些是簡(jiǎn)單的更改,但是主要更改是使用相同的過(guò)程完成的。進(jìn)行所需的更改,保存并獲取結(jié)果。

命名程序文件

CircuitPython在板上尋找要運(yùn)行的代碼文件。有四個(gè)選項(xiàng): code.txt , code.py , main.txt 和 main.py 。 CircuitPython按該順序查找那些文件,然后運(yùn)行找到的第一個(gè)文件。雖然我們建議使用 code.py 作為代碼文件,但重要的是要知道其他選項(xiàng)的存在。如果您的程序在工作時(shí)似乎沒(méi)有更新,請(qǐng)確保沒(méi)有創(chuàng)建另一個(gè)正在讀取的代碼文件,而不是正在處理的代碼文件。

連接到串行控制臺(tái)

CircuitPython的主要功能之一(通常是編程!)被稱為“打印語(yǔ)句”。這是您包含在代碼中的一行,使您的代碼輸出文本。 CircuitPython中的打印語(yǔ)句如下:

print(“Hello, world!”)

此行將導(dǎo)致:

Hello, world!

但是,這些打印語(yǔ)句需要在某個(gè)地方顯示。串行控制臺(tái)就在這里!

串行控制臺(tái)接收從CircuitPython板通過(guò)USB發(fā)送的輸出并顯示它,以便您查看。當(dāng)您在代碼中包含了一條打印語(yǔ)句并且想要查看打印的內(nèi)容時(shí),這是必需的。這對(duì)于解決錯(cuò)誤也很有用,因?yàn)槟碾娐钒鍟?huì)發(fā)送錯(cuò)誤,而串行控制臺(tái)也會(huì)打印錯(cuò)誤。

串行控制臺(tái)需要終端程序。終端是一個(gè)程序,為您提供一個(gè)基于文本的界面來(lái)執(zhí)行各種任務(wù)。

如果您使用的是Linux,并且在連接到串行控制臺(tái)時(shí)遇到數(shù)秒的延遲,或者在連接時(shí)看到“ AT”和其他亂碼,則說(shuō)明Modemmanager服務(wù)可能會(huì)干擾。只需將其刪除;除非您仍在使用撥號(hào)調(diào)制解調(diào)器,否則它用處不大。要?jiǎng)h除,請(qǐng)?jiān)谕鈿ど湘I入以下命令:

下載:file

復(fù)制代碼

sudo apt purge modemmanager sudo apt purge modemmanager

您在使用Mu嗎?

如果是,這是個(gè)好消息!串行控制臺(tái)內(nèi)置在Mu 中,并且會(huì)自動(dòng)檢測(cè)您的電路板,使用REPL 真的非常簡(jiǎn)單。

請(qǐng)注意Mu尚未與基于nRF52或ESP8266的CircuitPython板一起使用時(shí),請(qǐng)?zhí)料乱徊糠?,以了解有關(guān)使用終端程序的詳細(xì)信息。

首先,確保已插入CircuitPython電路板。如果使用Windows 7,請(qǐng)確保已安裝

在Mu中,在菜單中查找 Serial 按鈕,然后單擊

在Linux上

設(shè)置權(quán)限

在Linux上,如果看到錯(cuò)誤當(dāng)您按下 Serial (串行)按鈕,您需要將自己添加到用戶組中才能具有連接到串行控制臺(tái)的權(quán)限。

在Ubuntu和Debian上,通過(guò)執(zhí)行以下操作將自己添加到 dialout 組中:

sudo adduser $USER dialout

運(yùn)行上述命令后,重新啟動(dòng)計(jì)算機(jī)即可訪問(wèn)該組。在其他Linux發(fā)行版上,您需要的組可能不同。有關(guān)如何將您自己添加到正確的組的詳細(xì)信息,請(qǐng)參見(jiàn)Mac和Linux上的高級(jí)串行控制臺(tái)。

使用其他功能嗎?

如果您不使用Mu進(jìn)行編輯,則使用ESP8266或nRF52 CircuitPython,或者由于某些原因您不喜歡該功能內(nèi)置的串行控制臺(tái),您可以將串行控制臺(tái)作為單獨(dú)的程序運(yùn)行。

Windows要求您下載終端程序,請(qǐng)查看此頁(yè)面以獲取更多詳細(xì)信息

Mac和Linux都內(nèi)置了一個(gè),盡管可以下載其他選項(xiàng),請(qǐng)查看此頁(yè)面以獲取更多詳細(xì)信息

與串行控制臺(tái)交互

成功連接到串行控制臺(tái)后,就該開(kāi)始使用它了。

您編寫(xiě)的代碼較早版本沒(méi)有輸出到串行控制臺(tái)。因此,我們將對(duì)其進(jìn)行編輯以創(chuàng)建一些輸出。

在編輯器中打開(kāi)您的code.py文件,并包含一個(gè)print語(yǔ)句。您可以打印任何喜歡的東西!只需將您的詞組放在括號(hào)內(nèi)的引號(hào)之間即可。例如:

下載:文件

復(fù)制代碼

import board

import digitalio

import time

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

while True:

print(“Hello, CircuitPython!”)

led.value = True

time.sleep(1)

led.value = False

time.sleep(1) import board

import digitalio

import time

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

while True:

print(“Hello, CircuitPython!”)

led.value = True

time.sleep(1)

led.value = False

time.sleep(1)

保存文件。

現(xiàn)在,讓我們看一下與串行控制臺(tái)連接的窗口。

優(yōu)秀!我們的控制臺(tái)上會(huì)顯示我們的打印聲明!嘗試將打印的文本更改為其他內(nèi)容。

將串行控制臺(tái)窗口保留在可以看到的位置。保存文件。您將看到板重啟時(shí)串行控制臺(tái)顯示的內(nèi)容。然后,您將看到新的更改!

Traceback (most recent call last):告訴您董事會(huì)在保存文件之前所做的最后一件事。這是正?,F(xiàn)象,每次主板復(fù)位時(shí)都會(huì)發(fā)生。這對(duì)于故障排除非常方便。讓我們介紹一個(gè)錯(cuò)誤,以便我們可以看到它的用法。

從e行的True末尾刪除led.value = True,使其顯示為led.value = Tru

保存文件。您會(huì)注意到您的紅色LED指示燈將停止閃爍,并且可能有彩色的狀態(tài)LED指示燈向您閃爍。這是因?yàn)榇a不再正確,也無(wú)法正常運(yùn)行。我們需要修復(fù)它!

通常,當(dāng)您遇到錯(cuò)誤時(shí),這并不是因?yàn)槟室庖胨鼈?。您可能?00行代碼,并且不知道錯(cuò)誤可能隱藏在哪里。這是串行控制臺(tái)可以提供幫助的地方。讓我們看一下!

Traceback (most recent call last):告訴您它能夠運(yùn)行的最后一件事是代碼中的第10行。下一行是您的錯(cuò)誤:NameError: name ‘Tru’ is not defined。該錯(cuò)誤可能對(duì)您沒(méi)有多大影響,但是結(jié)合知道問(wèn)題出在第10行之后,它為您提供了一個(gè)絕佳的起點(diǎn)!

返回您的代碼,然后看一下第10行顯然,您已經(jīng)知道問(wèn)題所在了。但是,如果您沒(méi)有這樣做,則希望查看第10行,看看是否可以解決。如果仍然不確定,請(qǐng)嘗試使用該錯(cuò)誤來(lái)獲取幫助。在這種情況下,您知道要查找什么。您拼寫(xiě)錯(cuò)了。修正錯(cuò)字并保存文件。

解決錯(cuò)誤的好工作!您的串行控制臺(tái)正在流式傳輸,并且紅色LED再次閃爍。

串行控制臺(tái)將顯示您的代碼生成的所有輸出。某些傳感器(例如濕度傳感器或熱敏電阻)會(huì)接收數(shù)據(jù),您可以使用打印語(yǔ)句來(lái)顯示該信息。您也可以使用打印語(yǔ)句進(jìn)行故障排除。如果您的代碼無(wú)法正常工作,并且想知道失敗的地方,則可以將打印語(yǔ)句放在各個(gè)位置,以查看停止打印的地方。

串行控制臺(tái)有很多用途,這是一個(gè)了不起的成就用于學(xué)習(xí)和編程的整體工具!

REPL

串行連接的另一個(gè)功能是 R ead- E valuate - P rint- L oop或REPL。 REPL允許您輸入單獨(dú)的代碼行并使它們立即運(yùn)行。如果您遇到某個(gè)特定程序的麻煩而又不知道原因,那將非常方便。它是交互式的,因此非常適合測(cè)試新想法。

要使用REPL,您首先需要連接到串行控制臺(tái)。建立連接后,您需要按 Ctrl + C 。

如果正在運(yùn)行代碼,它將停止并且您會(huì)看到Press any key to enter the REPL. Use CTRL-D to reload.請(qǐng)按照這些說(shuō)明操作,然后按鍵盤(pán)上的任意鍵。

Traceback (most recent call last):告訴您在按Ctrl + C并中斷之前,董事會(huì)正在做的最后一件事。 KeyboardInterrupt是按Ctrl + C組合鍵。此信息在進(jìn)行故障排除時(shí)會(huì)很方便,但是現(xiàn)在不用擔(dān)心。只需注意這是預(yù)期的行為。

如果沒(méi)有代碼在運(yùn)行,則按Ctrl + C后將立即輸入REPL。由于沒(méi)有代碼在運(yùn)行,因此在中斷之前您的電路板沒(méi)有任何信息。

不管哪種方式,一旦您按下一個(gè)鍵,您都會(huì)看到一個(gè)》》》提示符,歡迎您使用REPL!

如果無(wú)法進(jìn)入》》》提示符,請(qǐng)嘗試再按Ctrl + C幾次。

從REPL獲得的第一件事就是有關(guān)您的木板的信息。

此行告訴您正在使用的CircuitPython的版本以及發(fā)布的時(shí)間。接下來(lái),它為您提供了所使用的板的類(lèi)型以及該板使用的微控制器的類(lèi)型。視您使用的版本而定,每個(gè)部分對(duì)于您的電路板可能會(huì)有所不同。

其后是CircuitPython提示符。

在此提示符下,您可以運(yùn)行各種命令和代碼。我們要做的第一件事是運(yùn)行help()。這將告訴我們從哪里開(kāi)始探索REPL。要在REPL中運(yùn)行代碼,請(qǐng)?jiān)赗EPL提示符旁邊鍵入它。

在REPL中的提示符旁邊鍵入help()。

然后按Enter。然后,您應(yīng)該會(huì)看到一條消息。

消息的第一部分是對(duì)您正在使用的CircuitPython版本的另一個(gè)引用。其次,是CircuitPython相關(guān)項(xiàng)目指南的URL。那。..等等這是什么? To list built-in modules, please do `help(“modules”)`。還記得您在創(chuàng)建代碼時(shí)學(xué)到的庫(kù)嗎?這就是這里所說(shuō)的!這是一個(gè)理想的起點(diǎn)。讓我們看一下!

在提示旁邊的REPL中鍵入help(“modules”),然后按Enter。

這是CircuitPython內(nèi)置的所有核心庫(kù)的列表。我們討論了電路板如何包含您可以在代碼中使用的電路板上的所有引腳。在REPL中,您可以看到該列表!

在REPL中鍵入import board,然后按Enter。它將轉(zhuǎn)到新的提示??雌饋?lái)好像什么都沒(méi)發(fā)生,但事實(shí)并非如此!如果您還記得的話,import語(yǔ)句只是告訴代碼期望對(duì)該模塊執(zhí)行某些操作。在這種情況下,它告訴REPL您打算對(duì)該模塊進(jìn)行操作。

下一步,在REPL中鍵入dir(board)并按Enter。

這是主板上所有可用引腳的列表供您在代碼中使用。每個(gè)板的列表將根據(jù)可用的引腳數(shù)而略有不同。您看到D13嗎?這就是您用來(lái)使紅色LED閃爍的引腳!

REPL也可以用于運(yùn)行代碼。請(qǐng)注意,您輸入到REPL中的任何代碼都不會(huì)保存。如果要測(cè)試要保留的新內(nèi)容,請(qǐng)確保也將其保存在計(jì)算機(jī)上!

每種編程語(yǔ)言中的每個(gè)程序員都以一段代碼開(kāi)頭, “你好,世界?!蔽覀円蛣e的東西打招呼。鍵入REPL:

print(“Hello, CircuitPython!”)

然后按Enter。

這就是在REPL中運(yùn)行代碼的全部!干得好!

您可以編寫(xiě)單行運(yùn)行的代碼。您也可以將整個(gè)程序?qū)懭隦EPL以對(duì)其進(jìn)行測(cè)試。正如我們所說(shuō),請(qǐng)記住,鍵入REPL不會(huì)保存任何內(nèi)容。

REPL可以為您做很多事情。如果您想看看是否有幾行新的代碼行得通,這對(duì)于測(cè)試新想法非常有用。通過(guò)一次輸入一行代碼并找出失敗的地方來(lái)對(duì)代碼進(jìn)行故障排除,這非常了不起。它可以讓您查看可用的庫(kù)并瀏覽這些庫(kù)。

嘗試在REPL中輸入更多內(nèi)容以查看會(huì)發(fā)生什么!

返回串行控制臺(tái)

當(dāng)您準(zhǔn)備離開(kāi)REPL并返回串行控制臺(tái)時(shí),只需按 Ctrl + D 。這將重新加載您的電路板并重新進(jìn)入串行控制臺(tái)。在輸入REPL之前,您將重新啟動(dòng)已運(yùn)行的程序。在控制臺(tái)窗口中,您將看到正在運(yùn)行的程序的任何輸出。而且,如果您的程序影響了板上的任何視覺(jué)效果,您也會(huì)看到它再次啟動(dòng)。

您可以隨時(shí)返回REPL!

CircuitPython硬件

現(xiàn)在是時(shí)候根據(jù)您所學(xué)的知識(shí)做點(diǎn)大事了!每塊CircuitPython板都非常適合項(xiàng)目。但是,每個(gè)人在不同領(lǐng)域都表現(xiàn)出色。我們將為您提供有關(guān)每塊板的一些詳細(xì)信息,并突出顯示使用每塊板的學(xué)習(xí)指南。您可以嘗試這些方法或?yàn)樽约旱捻?xiàng)目獲取想法!

小飾品M0

Adafruit Trinket M0是我們隨身攜帶的最小的CircuitPython開(kāi)發(fā)板。但是,不要讓那個(gè)愚弄你!這是一塊功能強(qiáng)大的小板。我們希望設(shè)計(jì)一種微控制器板,該板足夠小以適合任何項(xiàng)目,并且成本低廉,可以毫不猶豫地使用。計(jì)劃測(cè)試概念驗(yàn)證并需要CircuitPython開(kāi)發(fā)板投入使用?還沒(méi)準(zhǔn)備好拆卸您辛苦設(shè)計(jì)的項(xiàng)目以提取上次使用的電路板嗎?小飾品M0已覆蓋。它是目前可用的最低價(jià)的CircuitPython開(kāi)發(fā)板,但可以輕松地與更大的開(kāi)發(fā)板保持一致!

Trinket M0隨CircuitPython一起提供,并且板上已包含演示代碼。您可以打開(kāi)和編輯CIRCUITPY驅(qū)動(dòng)器上找到的main.py文件以開(kāi)始使用,也可以創(chuàng)建自己的文件! Trinket M0指南為您提供了有關(guān)板子需要了解的所有信息。請(qǐng)查看CircuitPython部分,以找到大量示例示例。

您可以使用Trinket M0來(lái)制作Chilled Drinkibot,該設(shè)備使用Trinket來(lái)控制飲料的熱電冷卻。或構(gòu)建一個(gè)怪異的萬(wàn)圣節(jié)項(xiàng)目,將您的糖果桶變成尖叫的大鍋!

Gemma M0

Adafruit Gemma M0是一個(gè)很小的CircuitPython板,具有足夠的內(nèi)置功能來(lái)構(gòu)建許多簡(jiǎn)單的項(xiàng)目。它被設(shè)計(jì)用于您的可穿戴項(xiàng)目,外部有大孔用于縫制(而且它們對(duì)鱷魚(yú)夾也很友好!)。 Gemma M0將為您的可穿戴設(shè)備充電,并且比以往更易于使用。電路板上內(nèi)置電容觸摸板,一個(gè)開(kāi)-關(guān)開(kāi)關(guān)和一個(gè)RGB DotStar LED,因此您無(wú)需添加任何東西就可以做很多事情。添加導(dǎo)電線和LED,您將立即擁有眨眼的可穿戴設(shè)備!

像Trinket一樣,Gemma M0隨CircuitPython一起提供,并且板上已經(jīng)有演示代碼。您可以打開(kāi)和編輯CIRCUITPY驅(qū)動(dòng)器上的main.py文件,也可以創(chuàng)建自己的文件! Gemma M0指南向您顯示了有關(guān)板子的所有信息,并提供了很多CircuitPython示例供您試用。

使用Gemma M0創(chuàng)建一對(duì)帶有NeoPixel環(huán)上有趣光圖案的Clockwork護(hù)目鏡。或搭配此3D打印的Sheikah吊墜為您的下一個(gè)服裝添加一點(diǎn)光!

Circuit Playground Express

Adafruit Circuit Playground Express是邁向完美介紹電子學(xué)和編程的下一步。它擠滿了傳感器,LED,按鈕和開(kāi)關(guān),而且上手起來(lái)超級(jí)容易!該板超級(jí)通用。無(wú)論您是電子和編程的新手,還是經(jīng)驗(yàn)豐富的老手,Circuit Playground Express都是一款很棒的主板。電路板內(nèi)置了如此多的元件,您無(wú)需購(gòu)買(mǎi)任何其他零件,即可了解不同類(lèi)型的電子產(chǎn)品的工作原理并對(duì)其進(jìn)行編程。您所需要的只是USB電纜和開(kāi)發(fā)板!但是,這僅僅是開(kāi)始。電路板外部的許多焊盤(pán)都有多種功能,可讓您將其他東西連接到電路板上。例如,您可以連接伺服或電位器。可能性無(wú)窮無(wú)盡!

Circuit Playground Express指南包含有關(guān)棋盤(pán)所有出色功能的大量信息。該指南的CircuitPython部分提供了使用CircuitPython和開(kāi)發(fā)板的內(nèi)置功能的大量示例列表。還有一個(gè)叫做Python Playground的小節(jié),有更多的演示和一個(gè)Drum Machine項(xiàng)目供您試用。

您可以使用Lime Key上的觸摸板將Circuit Playground Express變成電容式按鍵音鋼琴。董事會(huì)。使用內(nèi)置的加速度計(jì),可以在您的木板上制作帶有燈光和外來(lái)聲音的UFO飛碟,以及房屋周?chē)?D打印飛碟上的一些額外物品!

羽毛M0 Express

Adafruit Feather M0 Express是第一個(gè)專門(mén)為CircuitPython設(shè)計(jì)的Feather。它是Adafruit Feather開(kāi)發(fā)板產(chǎn)品線的一部分,該開(kāi)發(fā)板可獨(dú)立工作或堆疊工作,并由USB或鋰離子電池供電,因此可用于固定項(xiàng)目和移動(dòng)項(xiàng)目。 Feather M0 Express帶有兩個(gè)用于無(wú)焊面包板的接頭,或者您可以將電線直接焊接到板上的引腳上。這允許您在處理項(xiàng)目時(shí)進(jìn)行原型制作,并在準(zhǔn)備就緒時(shí)進(jìn)行永久安裝。 Feather M0 Express令人驚嘆的一件事是大量的板塊,稱為Featherwings,其設(shè)計(jì)恰好適合Feather。

羽毛M0 Express出廠時(shí)已安裝CircuitPython,并已安裝UF2引導(dǎo)程序,并準(zhǔn)備在您收到電路板時(shí)安裝CircuitPython。創(chuàng)建您的第一個(gè)程序,將其保存到板上,然后就可以使用! Feather M0 Express指南包含有關(guān)您的開(kāi)發(fā)板的所有詳細(xì)信息,并提供了一個(gè)CircuitPython部分以幫助您入門(mén)。

Feather M0 Express可用于為各種項(xiàng)目提供動(dòng)力。使用3D打印的零件和DotStar條帶構(gòu)建CircuitPython Painter POV LED魔杖。用NeoPixels創(chuàng)建一個(gè)刻有邊緣照明的LED丙烯酸標(biāo)牌。 Featherwings提供了一些指南,這些指南解釋了如何將它們與CircuitPython一起使用,例如OLED Display和Adalogger Featherwing。

Metro M0 Express

Metro M0 Express是第一款設(shè)計(jì)用于CircuitPython的Metro板。這不是初學(xué)者委員會(huì)。如果您只是入門(mén),我們建議您使用以前的主板之一。它具有與Feather M0 Express相同的許多功能,以及一些特定于開(kāi)發(fā)的功能(例如內(nèi)置的SWD端口?。?。 Metro M0 Express旨在與Arduino尺寸一起使用,因此,如果您已經(jīng)有了Arduino擴(kuò)展板,那么該板將非常適合您。已經(jīng)有一些屏蔽的CircuitPython庫(kù)。它有25個(gè)GPIO引腳(是所有這些主板中的大多數(shù)!),因此如果您正在尋找很多選擇,那就非常好。

Metro M0 Express出廠時(shí)已安裝CircuitPython且已安裝UF2引導(dǎo)程序,并且準(zhǔn)備好在您收到電路板時(shí)安裝CircuitPython。創(chuàng)建您的第一個(gè)程序,將其保存到開(kāi)發(fā)板中,一切順利! Metro M0 Express指南為您提供了有關(guān)板卡的所有詳細(xì)信息,并且CircuitPython部分可幫助您入門(mén)。

所有帶有CircuitPython庫(kù)的傳感器和分線板將與運(yùn)行CircuitPython的Metro M0 Express一起使用。找到適合您的傳感器的指南,然后按照指南查找如何進(jìn)行接線。有很多選項(xiàng)。

下一步是什么?

現(xiàn)在,您準(zhǔn)備跳入更多的學(xué)習(xí)指南,或者開(kāi)始一個(gè)全新的項(xiàng)目。干得好,祝你好運(yùn)!

CircuitPython庫(kù)

在我們繼續(xù)開(kāi)發(fā)CircuitPython并創(chuàng)建新版本時(shí),我們將停止支持較舊的版本。訪問(wèn)https://circuitpython.org/downloads為您的電路板下載最新版本的CircuitPython。您必須下載與您的CircuitPython版本匹配的CircuitPython庫(kù)捆綁包。請(qǐng)更新CircuitPython,然后訪問(wèn)https://circuitpython.org/libraries下載最新的庫(kù)包。

您運(yùn)行的每個(gè)CircuitPython程序都需要很多工作的信息。 CircuitPython使用起來(lái)如此簡(jiǎn)單的原因是,大多數(shù)信息都存儲(chǔ)在其他文件中并在后臺(tái)運(yùn)行。這些文件稱為庫(kù)。其中一些內(nèi)置在CircuitPython中。其他的則存儲(chǔ)在您的 CIRCUITPY 驅(qū)動(dòng)器上的一個(gè)名為 lib 的文件夾中。使CircuitPython如此出色的部分原因在于它能夠獨(dú)立于固件本身存儲(chǔ)代碼。將代碼與固件分開(kāi)存儲(chǔ),可以更輕松地更新您編寫(xiě)的代碼和所依賴的庫(kù)。

您的開(kāi)發(fā)板可能已經(jīng)附帶了一個(gè) lib 文件夾,該文件夾位于基礎(chǔ)中驅(qū)動(dòng)器的目錄。如果沒(méi)有,只需自己創(chuàng)建文件夾。首次安裝CircuitPython時(shí),將為您創(chuàng)建一個(gè)空的 lib 目錄。

CircuitPython庫(kù)的工作方式與常規(guī)Python模塊相同,因此Python文檔為它們的工作方式提供了很好的參考。用Python術(shù)語(yǔ),我們可以將庫(kù)文件放置在 lib 目錄中,因?yàn)槟J(rèn)情況下它是Python路徑的一部分。

這種單獨(dú)的庫(kù)方法的缺點(diǎn)是它們是而不是內(nèi)置的。要使用它們,必須先將它們復(fù)制到 CIRCUITPY 驅(qū)動(dòng)器,然后才能使用它們。幸運(yùn)的是,我們提供了一個(gè)完整的庫(kù)捆綁包。

我們的捆綁包和發(fā)行版還具有庫(kù)擴(kuò)展名,帶有 .mpy 。這些文件在驅(qū)動(dòng)器上占用的空間更少,并且在加載時(shí)具有較小的內(nèi)存占用。

安裝CircuitPython庫(kù)捆綁包

我們正在不斷更新和改進(jìn)我們的庫(kù),因此(目前)我們不這樣做隨我們的CircuitPython板一起提供完整的庫(kù)包。相反,您可以在電路板指南中找到依賴外部庫(kù)的示例代碼。這些庫(kù)中的某些庫(kù)可以從Adafruit處獲得,有些庫(kù)庫(kù)由社區(qū)成員編寫(xiě)!

無(wú)論哪種方式,當(dāng)您開(kāi)始探索CircuitPython時(shí),您都想知道如何在庫(kù)中使用庫(kù)。

您可以通過(guò)單擊下面的按鈕來(lái)獲取最新版本的Adafruit CircuitPython捆綁包。

注意:將捆綁包版本與您所使用的CircuitPython版本進(jìn)行匹配正在運(yùn)行-用于運(yùn)行任何版本的CircuitPython 3的3.x庫(kù),用于運(yùn)行任何版本的CircuitPython 4的4.x庫(kù),等等。如果將庫(kù)與主要CircuitPython版本混合使用,則由于在運(yùn)行期間庫(kù)接口可能發(fā)生變化,很可能會(huì)出錯(cuò)主要版本更改。

單擊以獲取最新的Adafruit CircuitPython庫(kù)捆綁軟件版本

如果需要其他版本,還可以訪問(wèn)捆綁軟件發(fā)行頁(yè)面,該頁(yè)面將可以讓您確切選擇要查找的版本以及有關(guān)更改的信息。

無(wú)論哪種方式,下載與CircuitPython固件版本匹配的版本。如果您不知道該版本,請(qǐng)查看CircuitPython REPL中的初始提示,其中會(huì)報(bào)告該版本。例如,如果您正在運(yùn)行v4.0.1,請(qǐng)下載4.x庫(kù)捆綁包。還有一個(gè) py 軟件包,其中包含未壓縮的python文件,除非您在庫(kù)上進(jìn)行高級(jí)工作,否則您可能不想要。

下載zip后,解壓縮其內(nèi)容。這通常是通過(guò)雙擊拉鏈來(lái)完成的。在Mac OSX上,它將文件放在與zip相同的目錄中。

打開(kāi)包文件夾。在內(nèi)部,您將找到兩個(gè)信息文件和兩個(gè)文件夾。一個(gè)文件夾是lib捆綁包,另一個(gè)文件夾是示例捆綁包。

現(xiàn)在打開(kāi)lib文件夾。當(dāng)您打開(kāi)文件夾時(shí),您會(huì)看到大量的 mpy 文件和文件夾

示例文件

每個(gè)庫(kù)中的所有示例文件現(xiàn)在都包含在捆綁軟件以及僅示例捆綁軟件中。包含這些內(nèi)容主要有兩個(gè)原因:

允許快速測(cè)試設(shè)備。

提供示例代碼庫(kù),可以輕松地將其用于個(gè)性化目的。

將庫(kù)復(fù)制到板上

首先,您要?jiǎng)?chuàng)建 CIRCUITPY 驅(qū)動(dòng)器上的 lib 文件夾。打開(kāi)驅(qū)動(dòng)器,右鍵單擊,選擇創(chuàng)建新文件夾的選項(xiàng),并將其命名為 lib 。然后,打開(kāi)從下載的zip提取的 lib 文件夾。在內(nèi)部,您會(huì)找到許多文件夾和 .mpy 文件。找到您要使用的庫(kù),然后將其復(fù)制到 CIRCUITPY 上的lib文件夾中。

這也適用于示例文件。它們僅作為原始的 .py 文件提供,因此如果遇到以下問(wèn)題,可能需要使用 mpy-cross 實(shí)用程序?qū)⑺鼈冝D(zhuǎn)換為 .mpy 。 MemoryErrors。 《 CircuitPython Essentials指南》中對(duì)此進(jìn)行了討論。用法與上文“快速公告板”部分中所述的用法相同。注意:如果不將示例放在單獨(dú)的文件夾中,則應(yīng)從import語(yǔ)句中刪除示例。

示例:ImportError由于缺少庫(kù)

如果選擇加載庫(kù)根據(jù)需要,您可以編寫(xiě)代碼嘗試使用尚未加載的庫(kù)。我們將演示當(dāng)您嘗試?yán)冒迳衔醇虞d的庫(kù)時(shí)發(fā)生的情況,并介紹解決此問(wèn)題所需的步驟。

此演示只會(huì)返回錯(cuò)誤如果您沒(méi)有將所需的庫(kù)加載到 CIRCUITPY 驅(qū)動(dòng)器上的 lib 文件夾中。

讓我們使用修改后的版本示例。

下載:文件

復(fù)制代碼

import board

import time

import simpleio

led = simpleio.DigitalOut(board.D13)

while True:

led.value = True

time.sleep(0.5)

led.value = False

time.sleep(0.5) import board

import time

import simpleio

led = simpleio.DigitalOut(board.D13)

while True:

led.value = True

time.sleep(0.5)

led.value = False

time.sleep(0.5)

保存此文件。董事會(huì)沒(méi)有任何反應(yīng)。讓我們檢查串行控制臺(tái)以查看發(fā)生了什么。

我們有一個(gè)ImportError。它說(shuō)有no module named ‘simpleio’。那就是我們剛剛包含在我們代碼中的代碼!

單擊上面的鏈接下載正確的捆綁包。從下載的捆綁文件中提取lib文件夾。向下滾動(dòng)以找到 simpleio.mpy 。這是我們要查找的庫(kù)文件!請(qǐng)按照上述步驟加載單個(gè)庫(kù)文件。

LED再次開(kāi)始閃爍!讓我們檢查串行控制臺(tái)。

沒(méi)有錯(cuò)誤!優(yōu)秀。您已經(jīng)成功解決了ImportError!

如果以后再遇到此錯(cuò)誤,請(qǐng)按照上述步驟操作,然后選擇與您所缺少的庫(kù)匹配的庫(kù)。

非Express板上的庫(kù)安裝

如果您有Trinket M0或Gemma M0,則需要按照上面示例中的相同步驟安裝所需的庫(kù)。您不必總是等待ImportError,因?yàn)槟赡苤滥诖a中添加了哪個(gè)庫(kù)。只需打開(kāi)下載的 lib 文件夾,找到所需的庫(kù),然后將其拖到 CIRCUITPY 驅(qū)動(dòng)器上的 lib 文件夾中即可。

即使僅根據(jù)需要加載庫(kù),也可能最終在Trinket M0或Gemma M0上空間不足。您可以使用許多步驟來(lái)嘗試解決此問(wèn)題。您可以在學(xué)習(xí)板指南的“疑難解答”頁(yè)面中找到它們。

更新CircuitPython庫(kù)/示例

庫(kù)和示例會(huì)不時(shí)更新,因此,重要的是更新 CIRCUITPY 驅(qū)動(dòng)器。

要更新單個(gè)庫(kù)或示例,請(qǐng)遵循上述相同步驟。將庫(kù)文件拖到lib文件夾時(shí),它將詢問(wèn)您是否要替換它。說(shuō)是就是這樣!

每次對(duì)庫(kù)進(jìn)行更新時(shí),都會(huì)發(fā)布一個(gè)新的庫(kù)捆綁包。更新內(nèi)容包括錯(cuò)誤修復(fù)和新功能。經(jīng)常檢查一次很重要,以查看您使用的庫(kù)是否已更新。

歡迎來(lái)到社區(qū)!

CircuitPython是一種編程語(yǔ)言,入門(mén)非常簡(jiǎn)單,非常適合學(xué)習(xí)。它可以在微控制器上運(yùn)行,并且可以直接使用。您可以將其插入并開(kāi)始使用任何文本編輯器。最好的部分? CircuitPython帶有一個(gè)很棒的支持社區(qū)。

每個(gè)人都?xì)g迎! CircuitPython是開(kāi)源的。這意味著任何人都可以使用,編輯,復(fù)制和改進(jìn)它。這也意味著CircuitPython變得更好,因?yàn)槟鷧⑴c其中。不管這是您的第一個(gè)微控制器板還是計(jì)算機(jī)工程師,提供Adafruit CircuitPython社區(qū)都是重要的。我們將重點(diǎn)介紹您可以成為其中一部分的多種方式!

Adafruit Discord

Adafruit Discord服務(wù)器是最好的起點(diǎn)。 Discord是社區(qū)聚集在一起進(jìn)行志愿活動(dòng)并提供各種實(shí)時(shí)支持的地方。從一般討論到詳細(xì)的問(wèn)題解決,以及介于兩者之間的一切,Discord是一個(gè)數(shù)字制造商空間,來(lái)自世界各地的制造商。

有很多不同的渠道,因此您可以選擇最適合自己的需求。每個(gè)通道在Discord上都顯示為“ #channelname”。 #projecthelp頻道可為您當(dāng)前的項(xiàng)目提供幫助,或?yàn)橄乱粋€(gè)項(xiàng)目提供幫助。 #showandtell頻道可用于炫耀您的最新作品。不要害怕在任何頻道中提問(wèn)!如果您不確定,#general是一個(gè)不錯(cuò)的起點(diǎn)。如果另一個(gè)渠道更有可能為您提供更好的答案,那么有人會(huì)指導(dǎo)您。

CircuitPython渠道是您處理CircuitPython問(wèn)題的地方。 #circuitpython適用于新用戶和開(kāi)發(fā)人員,請(qǐng)隨時(shí)提出問(wèn)題或發(fā)表評(píng)論!任何經(jīng)驗(yàn)水平的人士都可以參加。我們很想聽(tīng)聽(tīng)您怎么說(shuō)!

對(duì)社區(qū)做出貢獻(xiàn)的最簡(jiǎn)單方法是在Discord上為他人提供幫助。支持他人并不總是意味著回答問(wèn)題。一起慶祝成功!慶祝你的錯(cuò)誤!有時(shí),只要聽(tīng)到別人經(jīng)過(guò)類(lèi)似的斗爭(zhēng)就足以使制造商前進(jìn)。

Adafruit Discord是您可以帶給孫女的24x7x365黑客空間。

訪問(wèn)https://adafru.it/discord以注冊(cè)Discord。我們期待與您見(jiàn)面!

Adafruit論壇

Adafruit論壇是理想的支持場(chǎng)所。 Adafruit有出色的付費(fèi)支持人員,可以回答您可能遇到的任何問(wèn)題。無(wú)論您的硬件給您帶來(lái)了問(wèn)題還是代碼似乎都無(wú)法正常工作,論壇總是在那里供您提問(wèn)。您需要一個(gè)Adafruit帳戶才能發(fā)布到論壇。您可以使用從Adafruit訂購(gòu)的同一帳戶。

盡管Discord可能會(huì)比論壇提供更快的響應(yīng),但論壇是更可靠的信息來(lái)源。如果您確定要得到Adafruit支持的答案,那么論壇是最好的選擇。

論壇類(lèi)別涵蓋了所有主題,包括Adafruit的所有主題。在“受支持的產(chǎn)品和項(xiàng)目”下的Adafruit CircuitPython和MicroPython類(lèi)別是發(fā)布CircuitPython問(wèn)題的最佳位置。

請(qǐng)確保包括到達(dá)目的地的步驟。如果涉及布線,請(qǐng)張貼圖片!如果您的代碼給您帶來(lái)麻煩,請(qǐng)將您的代碼包括在您的帖子中!這些是確保有足夠的信息來(lái)幫助您解決問(wèn)題的好方法。

您可能會(huì)認(rèn)為您才剛剛開(kāi)始,但您肯定知道別人沒(méi)有的東西。論壇的好處是您也可以幫助其他人!歡迎并鼓勵(lì)大家對(duì)任何已發(fā)布的問(wèn)題提供建設(shè)性的反饋。這是為社區(qū)做出貢獻(xiàn)并分享您的知識(shí)的絕妙方法!

Adafruit Github

無(wú)論您是剛剛起步還是想要做出貢獻(xiàn)的終生程序員,都有許多方法可以使每個(gè)人都參與構(gòu)建CircuitPython。 GitHub是為CircuitPython本身做出貢獻(xiàn)的最佳途徑。如果您需要一個(gè)帳戶,請(qǐng)?jiān)L問(wèn)https://github.com/并注冊(cè)。

如果您是GitHub的新手或一般編程人員,那么您將有很多機(jī)會(huì)。轉(zhuǎn)到GitHub上的adafruit/circuitpython,單擊“問(wèn)題”,您將找到一個(gè)列表,其中包含標(biāo)有“良好的第一期”的問(wèn)題。這些都是我們認(rèn)為具有任何經(jīng)驗(yàn)水平的人都可以幫助的事情。這些問(wèn)題包括諸如更新文檔,提供反饋和修復(fù)簡(jiǎn)單錯(cuò)誤之類(lèi)的選項(xiàng)。

已經(jīng)經(jīng)驗(yàn)豐富,正在尋找挑戰(zhàn)?查看其余的問(wèn)題列表,您會(huì)發(fā)現(xiàn)很多貢獻(xiàn)的方法。您將找到從新驅(qū)動(dòng)程序請(qǐng)求到核心模塊更新的所有內(nèi)容。任何級(jí)別的每個(gè)人都有很多機(jī)會(huì)!

使用CircuitPython時(shí),您可能會(huì)發(fā)現(xiàn)問(wèn)題。如果發(fā)現(xiàn)錯(cuò)誤,那就太好了!我們喜歡蟲(chóng)子!將詳細(xì)的問(wèn)題發(fā)布到GitHub是有助于改進(jìn)CircuitPython的寶貴方法。確保包括復(fù)制問(wèn)題的步驟以及您認(rèn)為相關(guān)的任何其他信息。越詳細(xì),越好!

測(cè)試新軟件非常容易,而且非常有用。只需將最新版本的CircuitPython或庫(kù)加載到CircuitPython硬件上,然后使用它。通過(guò)將新問(wèn)題發(fā)布到GitHub,讓我們知道您發(fā)現(xiàn)的任何問(wèn)題。在當(dāng)前和Beta版本中進(jìn)行軟件測(cè)試是貢獻(xiàn)CircuitPython的非常重要的一部分。我們自己不可能找到所有問(wèn)題!我們需要您的幫助以使CircuitPython變得更好。

在GitHub上,您可以提交功能請(qǐng)求,提供反饋,報(bào)告問(wèn)題等等。如有疑問(wèn),請(qǐng)記住,Discord和論壇都在這里尋求幫助!

ReadTheDocs

ReadTheDocs是深入了解CircuitPython的絕佳資源。您可以在這里找到API文檔和有關(guān)核心模塊的詳細(xì)信息。還有一個(gè)設(shè)計(jì)指南,其中包含有關(guān)CircuitPython的貢獻(xiàn)指南。

RTD使您可以深入了解CircuitPython。有關(guān)每個(gè)核心模塊的詳細(xì)信息。每個(gè)模塊都列出了可用的庫(kù)。每個(gè)模塊庫(kù)頁(yè)面列出了可用的參數(shù)以及每個(gè)參數(shù)的說(shuō)明。在許多情況下,您會(huì)找到快速的代碼示例,以幫助您了解模塊和參數(shù)的工作方式,但是其中沒(méi)有像《學(xué)習(xí)指南》這樣的詳細(xì)說(shuō)明。如果您需要幫助來(lái)了解正在編寫(xiě)的任何CircuitPython代碼的幕后情況,ReadTheDocs可以為您提供幫助!

Windows上的高級(jí)串行控制臺(tái)

Windows 7驅(qū)動(dòng)程序

如果您使用的是Windows 7,請(qǐng)使用下面的鏈接下載驅(qū)動(dòng)程序包。您無(wú)需在Mac,Linux或Windows 10上安裝驅(qū)動(dòng)程序。

下載Windows 7驅(qū)動(dòng)程序

什么是COM?

首先,您需要確定您的主板正在使用哪個(gè)串行端口。當(dāng)您將開(kāi)發(fā)板插入計(jì)算機(jī)上的USB時(shí),它會(huì)連接到串行端口。該端口就像一扇門(mén),您的主板可以通過(guò)它使用USB與計(jì)算機(jī)進(jìn)行通信。

我們將使用Windows設(shè)備管理器來(lái)確定主板正在使用哪個(gè)端口。確定主板正在使用哪個(gè)端口的最簡(jiǎn)單方法是首先不插入檢查主板。打開(kāi)設(shè)備管理器。單擊端口(COM和LPT)。您應(yīng)該在該列表中已經(jīng)找到帶有(COM#)的內(nèi)容,其中#是數(shù)字。

現(xiàn)在將板子插入。設(shè)備管理器列表將刷新,并且新項(xiàng)目將出現(xiàn)在端口(COM和LPT)下。您會(huì)在列表中此項(xiàng)目之后找到其他(COM#)。

有時(shí),該項(xiàng)目指的是木板的名稱。如上圖所示,其他時(shí)候它可能被稱為USB串行設(shè)備。無(wú)論哪種方式,名稱后都會(huì)有一個(gè)新的(COM#)。這是您的電路板正在使用的端口。

安裝膩?zhàn)?/p>

如果使用Windows,則需要下載終端程序。我們將使用PuTTY。

首先要做的是下載最新版本的PuTTY。您將要下載Windows安裝程序文件。您最有可能需要64位版本。下載文件并在計(jì)算機(jī)上安裝程序。如果遇到問(wèn)題,可以嘗試下載32位版本。但是,該64位版本適用于大多數(shù)PC。

現(xiàn)在您需要打開(kāi)PuTTY。

在連接類(lèi)型下: 串行旁邊的按鈕。

在串行行下的框中,輸入您發(fā)現(xiàn)主板正在使用的串行端口。

在速度下的框中,輸入115200。這稱為波特率,它是通過(guò)串行連接發(fā)送數(shù)據(jù)的每秒速度(以比特為單位)。對(duì)于帶有內(nèi)置USB的板卡來(lái)說(shuō),沒(méi)什么大不了的,但是對(duì)于ESP8266和其他帶有單獨(dú)芯片的板卡,板卡所需的速度為每秒115200位。因此,您最好也使用115200!

如果要保存這些設(shè)置以供以后使用,請(qǐng)使用加載,保存或刪除存儲(chǔ)的會(huì)話下的選項(xiàng)。在保存的會(huì)話下的框中輸入名稱,然后單擊右側(cè)的保存按鈕。

輸入設(shè)置后,就可以連接到串行控制臺(tái)了。點(diǎn)擊窗口底部的“打開(kāi)”。一個(gè)新窗口將打開(kāi)。

如果沒(méi)有代碼在運(yùn)行,則該窗口將為空白或與上面的窗口類(lèi)似?,F(xiàn)在您可以查看代碼的結(jié)果。

干得好!您已連接到串行控制臺(tái)!

在Mac和Linux上的高級(jí)串行控制臺(tái)

在Mac和Linux上連接到串行控制臺(tái)的過(guò)程基本上相同。兩種操作系統(tǒng)都不需要安裝驅(qū)動(dòng)程序。在MacOSX上,已安裝終端。在Linux上,有多種,例如KDE上的gnome-terminal(稱為T(mén)erminal)或Konsole。

端口是什么?

首先,您要確定主板使用的是哪個(gè)串行端口。當(dāng)您將開(kāi)發(fā)板插入計(jì)算機(jī)上的USB時(shí),它會(huì)連接到串行端口。該端口就像一扇門(mén),您的主板可以通過(guò)該門(mén)使用USB與計(jì)算機(jī)進(jìn)行通信。

我們將使用終端來(lái)確定主板使用的端口。確定主板正在使用哪個(gè)端口的最簡(jiǎn)單方法是先檢查是否未插入主板。在Mac上,打開(kāi)“終端”并鍵入以下內(nèi)容:

ls /dev/tty.*

每個(gè)串行連接都顯示在/dev/目錄中。它的名稱以tty.開(kāi)頭。命令ls向您顯示目錄中的項(xiàng)目列表。您可以將*用作通配符,以搜索以相同字母開(kāi)頭但以其他字母結(jié)尾的文件。在這種情況下,我們要求查看/dev/中所有以tty.開(kāi)頭并以任何結(jié)尾結(jié)束的列表。這將向我們顯示當(dāng)前的串行連接。

對(duì)于Linux,過(guò)程相同,但是名稱略有不同。如果您使用的是Linux,則將輸入:

ls /dev/ttyACM*

與Linux的概念相同。我們要求查看/dev/文件夾中的列表,這些列表以ttyACM開(kāi)頭,以任何結(jié)尾。這將顯示當(dāng)前的串行連接。在下面的示例中,錯(cuò)誤表明沒(méi)有以ttyACM開(kāi)頭的當(dāng)前串行連接。

現(xiàn)在,插入板子。在Mac上,鍵入:

ls /dev/tty.*

這將向您顯示當(dāng)前的串行連接,現(xiàn)在將包括您的主板。

使用Mac,出現(xiàn)了一個(gè)新列表,名為/dev/tty.usbmodem141441。此清單的tty.usbmodem141441部分是示例板所使用的名稱。

使用Linux,鍵入:

ls /dev/ttyACM*

這將向您顯示當(dāng)前的串行連接,現(xiàn)在包括您的面板。

使用Linux,出現(xiàn)了一個(gè)新列表,名為/dev/ttyACM0。此清單的ttyACM0部分是示例板所使用的名稱。您的名字將被稱為類(lèi)似。

與屏幕連接

現(xiàn)在,您知道板子正在使用的名稱,就可以連接到串行控制臺(tái)了。我們將使用名為screen的命令。 screen命令包含在MacOS中。 Linux用戶可能需要使用其軟件包管理器進(jìn)行安裝。要連接到串行控制臺(tái),請(qǐng)使用終端。鍵入以下命令,將board_name替換為您的開(kāi)發(fā)板正在使用的名稱:

screen /dev/tty.board_name 115200

第一部分這是使用screen命令建立的。第二部分告訴屏幕您要使用的板的名稱。第三部分告訴屏幕用于串行連接的波特率。波特率是通過(guò)串行連接發(fā)送數(shù)據(jù)的速度,以每秒比特?cái)?shù)為單位。在這種情況下,開(kāi)發(fā)板所需的速度為每秒115200位。

使用示例板名的MacOS屏幕命令

按Enter鍵運(yùn)行命令。它將在同一窗口中打開(kāi)。如果沒(méi)有代碼在運(yùn)行,則該窗口將為空白。否則,您將看到代碼的輸出。

干得好!您已連接到串行控制臺(tái)!

Linux上的權(quán)限

如果您嘗試運(yùn)行screen卻無(wú)法正常運(yùn)行,則可能是權(quán)限問(wèn)題。 Linux跟蹤用戶和組以及允許他們執(zhí)行和不執(zhí)行的操作,例如訪問(wèn)與串行連接關(guān)聯(lián)的硬件以運(yùn)行screen。因此,如果您看到以下內(nèi)容:

,那么您可能需要授予自己訪問(wèn)權(quán)限。通常有兩種方法可以執(zhí)行此操作。首先是使用screen命令運(yùn)行sudo,這會(huì)暫時(shí)為您提供提升的特權(quán)。

輸入密碼后,您應(yīng)該位于:

第二種方法是將自己添加到組中與硬件相關(guān)聯(lián)。要確定該組是什么,請(qǐng)使用命令ls -l,如下所示。群組名稱以紅色圈出。

然后使用命令adduser將您自己添加到該群組中。您需要提升的特權(quán)才能執(zhí)行此操作,因此您需要使用sudo。在下面的示例中,組為 adm ,用戶為 ackbar 。

將自己添加到論壇后,您需要注銷(xiāo)并重新登錄,或者在某些情況下,請(qǐng)重新啟動(dòng)計(jì)算機(jī)。再次登錄后,請(qǐng)使用命令groups確認(rèn)您已添加到該組。如果您仍不在該組中,請(qǐng)重新啟動(dòng)并再次檢查。

現(xiàn)在您應(yīng)該可以運(yùn)行screen而不使用sudo。

而您位于:

以上示例使用screen,但是如果您愿意,也可以使用其他程序,例如putty或picocom。

PyCharm和CircuitPython

此過(guò)程無(wú)效。該插件從未設(shè)計(jì)過(guò)與CircuitPython一起使用。這里描述的過(guò)程是一種變通辦法,功能有限。如果您想在Pycharm中使用REPL,請(qǐng)?jiān)诮K端和屏幕中使用內(nèi)置功能。和錯(cuò)誤突出顯示。它在社區(qū)版中免費(fèi)提供。

最近,他們添加了一個(gè)MicroPython插件,該插件可從編輯器內(nèi)部使用REPL。官方不支持CircuitPython,但是我們有一些步驟使其能夠正常工作!

在您的計(jì)算機(jī)上下載并安裝PyCharm。然后,插入您的電路板并執(zhí)行以下步驟!

創(chuàng)建新項(xiàng)目或打開(kāi)現(xiàn)有項(xiàng)目。

打開(kāi)PyCharm偏好設(shè)置/設(shè)置。點(diǎn)擊插件,然后搜索“ micropython”。單擊在存儲(chǔ)庫(kù)中搜索。

此過(guò)程無(wú)效。該插件從未設(shè)計(jì)過(guò)與CircuitPython一起使用。這里描述的過(guò)程是一種變通辦法,功能有限。如果要在Pycharm中使用REPL,請(qǐng)?jiān)诮K端和屏幕中使用內(nèi)置的。

點(diǎn)擊安裝。

安裝完成后,單擊重新啟動(dòng)PyCharm 。

重新啟動(dòng)后,打開(kāi)“首選項(xiàng)/設(shè)置”。單擊語(yǔ)言和框架,然后選擇 MicroPython 。

此過(guò)程無(wú)效。該插件從未設(shè)計(jì)過(guò)與CircuitPython一起使用。這里描述的過(guò)程是一種變通辦法,功能有限。如果要在Pycharm中使用REPL,請(qǐng)?jiān)诮K端和屏幕中使用內(nèi)置的。

從列表中選擇項(xiàng)目目錄。

從“設(shè)備名稱”列表中選擇 ESP8266 。

現(xiàn)在,無(wú)論使用哪種板,您都將使用此選項(xiàng)。

您需要手動(dòng)添加設(shè)備路徑。這是您的串行連接的路徑。輸入后,單擊確定。

如果需要幫助來(lái)查找設(shè)備的串行連接,請(qǐng)參閱Windows上的“高級(jí)串行控制臺(tái)”。和Mac和Linux上的高級(jí)串行控制臺(tái)。

i》 此過(guò)程無(wú)效。該插件從未設(shè)計(jì)過(guò)與CircuitPython一起使用。這里描述的過(guò)程是一種變通辦法,功能有限。如果要在Pycharm中使用REPL,請(qǐng)?jiān)诮K端和屏幕中使用內(nèi)置的。

現(xiàn)在,從您選擇的項(xiàng)目目錄中打開(kāi)任何Python文件。

一條消息可能會(huì)彈出,提示“找不到ESP8266支持所需的軟件包”,然后是軟件包列表。單擊此消息上的安裝要求以安裝所需的軟件包。

現(xiàn)在,您可以單擊工具菜單,您應(yīng)該會(huì)找到一個(gè) MicroPython 菜單。突出顯示這一點(diǎn),您將找到 MicroPython REPL 。

REPL將在PyCharm窗口的底部打開(kāi)?,F(xiàn)在您可以開(kāi)始編碼了!

如果要將內(nèi)置REPL與其他電路板一起使用,則需要進(jìn)入并將Device Path更改為與您要使用的電路板匹配的路徑。

要更改設(shè)備路徑,請(qǐng)按照上述步驟從手動(dòng)添加設(shè)備路徑開(kāi)始。

PyCharm REPL不能同時(shí)在多個(gè)板上使用。在多個(gè)項(xiàng)目上執(zhí)行上述步驟并不能始終如一地打開(kāi)多個(gè)REPL連接。

“從MicroPython設(shè)備中刪除所有文件”和“ Flash項(xiàng)目”功能不起作用,但可能會(huì)損壞您的電路板。不要嘗試使用這些功能。請(qǐng)記住,CircuitPython不受官方支持,并且上述步驟是一種解決方法。

此過(guò)程無(wú)效。該插件從未設(shè)計(jì)過(guò)與CircuitPython一起使用。這里描述的過(guò)程是一種變通辦法,功能有限。如果要在Pycharm中使用REPL,請(qǐng)使用內(nèi)置的端子和屏幕。

用于ESP8266的CircuitPython

我們不再在ESP8266上支持CircuitPython。此頁(yè)面僅用于歷史目的。無(wú)法保證說(shuō)明會(huì)繼續(xù)有效。

為什么要放棄對(duì)ESP8266的支持?

ESP8266上的CircuitPython對(duì)于用戶來(lái)說(shuō)并不是一個(gè)很好的體驗(yàn)。由于它沒(méi)有本地USB,因此很難將文件發(fā)送到設(shè)備,并且您很快就會(huì)用完RAM(添加網(wǎng)絡(luò)堆棧后,內(nèi)存會(huì)比您想象的要少)。我們決定僅將ESP用作協(xié)處理器。特別是ESP32,因?yàn)樗哂辛己玫腡LS/SSL支持,即使是最基本的交互,現(xiàn)在也必不可少。

如果您想使用ESP8266,請(qǐng)繼續(xù)使用3.x版本,不支持。您還可以查看仍受支持的MicroPython for ESP8266!

如果您想添加WiFi支持,請(qǐng)查看有關(guān)ESP32/ESP8266作為協(xié)處理器的指南。

關(guān)于CircuitPython的ESP8266(3.x)

我們有兩個(gè)CircuitPython的“應(yīng)變”,主要的是具有本地USB連接的基于ATSAMD21/51的板。原生USB意味著該板可以顯示為名為CIRCUITPY的磁盤(pán)驅(qū)動(dòng)器并在其中保存所有文件。

還有ESP8266和nRF52832等板的CircuitPython,這些芯片確實(shí)不錯(cuò)分別內(nèi)置WiFi和Bluetooth。但是它們沒(méi)有本地USB!,這意味著該芯片無(wú)法作為磁盤(pán)驅(qū)動(dòng)器出現(xiàn)。您仍然可以將它們與CircuitPython一起使用,但是難度要大得多,因此我們不建議初學(xué)者使用它們。這是關(guān)于將非本機(jī)芯片用于CircuitPython的一些知識(shí):

僅 個(gè)獲得REPL連接!沒(méi)有HID鍵盤(pán)/鼠標(biāo)或其他USB接口

沒(méi)有用于拖放文件移動(dòng)的磁盤(pán)驅(qū)動(dòng)器,必須通過(guò) ampy 這樣的特殊工具來(lái)移動(dòng)文件通過(guò)REPL為您輸入文件

加載CircuitPython需要命令行工具

在ESP8266上安裝CircuitPython

要將CircuitPython與ESP8266一起使用,您需要先使用最新固件對(duì)其進(jìn)行刷新。

下載esptool

首先安裝esptool.py可以在ESP8266上燒寫(xiě)固件的軟件。安裝此工具的最簡(jiǎn)單方法是使用Python的pip包管理器。如果尚未安裝,則需要安裝Python 2.7(在Windows上安裝時(shí),請(qǐng)確保選中將Python放入系統(tǒng)路徑的框),然后在終端中運(yùn)行以下命令:pip install esptool

在Mac OSX和Linux上的注意事項(xiàng),您可能需要使用sudo以root身份運(yùn)行命令,例如:sudo pip install esptool

如果收到的錯(cuò)誤是esptool.py僅支持Python 2.x,請(qǐng)嘗試使用 pip2 命令而不是pip再次運(yùn)行(可能您的系統(tǒng)正在使用Python 3,并且pip命令對(duì)要使用的版本感到困惑)。

下載最新的CircuitPython固件

下一步下載最新的CircuitPython ESP8266固件文件:

下載最新的ESP8266 Huzzah固件(v3.1.2)

讓ESP8266準(zhǔn)備好進(jìn)行引導(dǎo)加載

現(xiàn)在您需要將ESP8266設(shè)置為固件刷新模式。每個(gè)ESP8266板略有不同:

對(duì)于原始ESP8266模塊,您需要將GPIO0和RESET引腳的按鈕接地。按住GPIO0按鈕(或?qū)⒕€接地),同時(shí)仍將GPIO0接地,按住并釋放RESET按鈕(或從地面連接并釋放線),然后釋放GPIO0。

對(duì)于板中內(nèi)置了用于GPIO0和RESET的HUZZAHESP8266 Breakout 按鈕。按住GPIO0,然后按并釋放RESET(同時(shí)保持GPIO0),最后釋放GPIO0。

對(duì)于Feather HUZZAH ESP8266 ,您無(wú)需執(zhí)行任何特殊操作即可進(jìn)入固件刷新模式。該評(píng)估板用于檢測(cè)何時(shí)打開(kāi)串行端口進(jìn)行刷新,并自動(dòng)配置ESP8266模塊以接收固件。 請(qǐng)務(wù)必先在Windows和Mac OSX上安裝SiLabs CP210x驅(qū)動(dòng)程序,以使開(kāi)發(fā)板的串行端口可見(jiàn)! 在Windows上,您需要普通的VCP驅(qū)動(dòng)程序,而不是“具有串行枚舉”驅(qū)動(dòng)程序。

擦除ESP8266

建議在上傳固件前先擦除ESP8266開(kāi)發(fā)板的整個(gè)閃存。在終端中運(yùn)行以下命令以執(zhí)行此擦除:

下載:文件

復(fù)制代碼

esptool.py --port ESP8266_PORTNAME erase_flash esptool.py --port ESP8266_PORTNAME erase_flash

其中ESP8266_PORTNAME是連接到ESP8266的串行端口的路徑或名稱。設(shè)備的確切名稱取決于串行到USB轉(zhuǎn)換器芯片的類(lèi)型,因此您可能需要查看有無(wú)設(shè)備連接的串行端口才能找到其名稱。

程序ESP8266

現(xiàn)在將ESP8266放回固件刷新模式,然后運(yùn)行以下命令來(lái)加載下載的固件文件:

下載:文件

復(fù)制代碼

esptool.py --port ESP8266_PORTNAME --baud 115200 write_flash --flash_size=detect 0 firmware.bin esptool.py --port ESP8266_PORTNAME --baud 115200 write_flash --flash_size=detect 0 firmware.bin

再次將ESP8266_PORTNAME設(shè)置為連接到ESP8266的串行端口的路徑或名稱。另外,將 firmware.bin 設(shè)置為您要加載的固件文件的名稱或路徑。

i》

工具完成固件刷新后(在此過(guò)程中,您通常會(huì)看到ESP8266模塊上的藍(lán)燈閃爍),請(qǐng)按ESP8266板上的RESET按鈕或斷開(kāi)連接,然后將其重新連接到計(jì)算機(jī)。應(yīng)該都準(zhǔn)備好開(kāi)始使用板上的最新CircuitPython固件!

請(qǐng)注意,如果看到“檢測(cè)不是有效的flash_size參數(shù)”錯(cuò)誤,則可能是使用了較早版本的esptool。 py要升級(jí)到最新版本,請(qǐng)運(yùn)行以下命令pip install --upgrade esptool

使用Ampy上載庫(kù)和文件!

ESP8266的最大與眾不同之處在于,您需要使用一種特殊的工具來(lái)移動(dòng)文件。閱讀本指南,查看ampy。它與MicroPython有關(guān),但CircuitPython幾乎相同,因此總體安裝和用法相同!

了解如何使用ampy在ESP8266上移動(dòng)文件

其他需要了解的東西!

REPL的工作方式與您期望的一樣希望如此,因此請(qǐng)查看該介紹性頁(yè)面。

文件存儲(chǔ)與CircuitPython在同一芯片中,因此如果進(jìn)行更新,則可能會(huì)丟失文件!保留備份。

庫(kù)和API也與其他CircuitPython板相同。

請(qǐng)注意,ESP8266沒(méi)有大量引腳,只有一個(gè)模擬輸入為0 -1.0V范圍。沒(méi)有可用的UART端口(這是用于REPL的端口?。?/p>

沒(méi)有模擬輸出。

對(duì)于SPI和I2C,您可以使用它們!但是您將需要使用bitbangio創(chuàng)建總線對(duì)象

卸載CircuitPython

我們的許多開(kāi)發(fā)板都可以與多種編程語(yǔ)言一起使用。例如,Circuit Playground Express可以與MakeCode,Code.org CS Discoveries,CircuitPython和Arduino一起使用。

也許您嘗試過(guò)CircuitPython并想回到MakeCode或Arduino?沒(méi)問(wèn)題

隨時(shí)可以隨時(shí)刪除/重新安裝CircuitPython !哎呀,您每天都可以改變主意!

備份您的代碼

在卸載CircuitPython之前,請(qǐng)不要忘記備份小磁盤(pán)驅(qū)動(dòng)器上的代碼。這意味著您的 main.py 或 code.py 任何其他文件, lib 文件夾等。刪除CircuitPython時(shí),這些文件可能會(huì)丟失,因此備份是關(guān)鍵!只需將文件拖到便攜式計(jì)算機(jī)或臺(tái)式計(jì)算機(jī)上的文件夾中,就像使用任何USB驅(qū)動(dòng)器一樣。

移動(dòng)到MakeCode

如果您想重新使用MakeCode,這真的很容易。訪問(wèn)makecode.adafruit.com,找到您要上傳的程序。單擊下載以下載由MakeCode生成的 .uf2 文件。

現(xiàn)在,雙擊CircuitPython板,直到看到板載LED變綠并且 。.. BOOT 目錄出現(xiàn)。

然后找到下載的MakeCode .uf2 文件,并將其拖到 。.. BOOT 驅(qū)動(dòng)器上。

您的MakeCode現(xiàn)在正在運(yùn)行,并且CircuitPython已刪除。向前,您只需單擊重置按鈕

移至Arduino

如果要將固件更改為Arduino,這也非常簡(jiǎn)單。

首先插入板子,然后雙擊重置,直到獲得綠色的板上LED為止-就像使用MakeCode

在Arduino IDE中一樣,選擇匹配的板,例如Circuit Playground Express

選擇正確的匹配端口:

創(chuàng)建新簡(jiǎn)單的Blink草圖示例:

下載:文件

復(fù)制代碼

// the setup function runs once when you press reset or power the board

void setup() {

// initialize digital pin 13 as an output.

pinMode(13, OUTPUT);

}

// the loop function runs over and over again forever

void loop() {

digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(13, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

} // the setup function runs once when you press reset or power the board

void setup() {

// initialize digital pin 13 as an output.

pinMode(13, OUTPUT);

}

// the loop function runs over and over again forever

void loop() {

digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(13, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

}

確保LED仍為綠色,然后單擊上傳以上傳閃爍。成功上傳后,串行端口將更改,因此重新選擇新的端口!

一旦上傳了閃爍,您就不再需要雙擊進(jìn)入引導(dǎo)加載程序模式,上傳后Arduino將自動(dòng)重置

非UF2安裝

僅當(dāng)您不安裝此頁(yè)面時(shí)才需要安裝了UF2引導(dǎo)程序(例如boardBOOT拖放)!此頁(yè)面適用于非Express Feather M0,Arduino Zero和M0以及其他自定義ATSAMD21開(kāi)發(fā)板。

用Bossac閃爍-用于非Express Feather M0和Arduino Zero

我們較舊的Feather M0板沒(méi)有UF2不附帶,而是附帶了一個(gè)更簡(jiǎn)單的名為 bossa 的引導(dǎo)程序。這也是安裝在Arduino Zero和其他使用ATSAMDx1或nRF52840的CircuitPython兼容板上的東西。如果CircuitPython安裝文件是 .bin 而不是 .uf2

命令行!

使用bossac進(jìn)行閃爍需要使用計(jì)算機(jī)的命令行界面。在Windows上,這是 cmd 或 powershell 工具。在Mac和Linux上,使用終端!

下載最新的CircuitPython固件

您要做的第一件事就是下載最新版本的CircuitPython。

截至2019年4月,有兩個(gè)站點(diǎn)可以下載適當(dāng)?shù)?bin文件。 Adafruit正在將文件遷移到CircuitPython.org。建議首先通過(guò)搜索兼容板找到.bin文件。在該站點(diǎn)上只會(huì)列出對(duì)適當(dāng)?shù)囊_定義文件有拉取請(qǐng)求的兼容板,如果開(kāi)發(fā)人員希望看到列出的新CircuitPython板,則開(kāi)發(fā)人員應(yīng)提交要包含的材料。

單擊下面的綠色按鈕以搜索您的電路板以找到合適的文件。

從CircuitPython.org查找并下載電路板軟件

或者,使用GitHub

目前,CircuitPython開(kāi)發(fā)板文件也位于Adafruit CircuitPython GitHub存儲(chǔ)庫(kù)中,盡管它們將來(lái)可能會(huì)遷移到專用的CircuitPython存儲(chǔ)庫(kù)。如果對(duì)CircuitPython.org有問(wèn)題,請(qǐng)使用下面的第二個(gè)綠色按鈕從GitHub下載。

為CircuitPython開(kāi)發(fā)板下載.bin文件

下載后,將 .bin 文件保存到桌面上,您將很快需要它!

如果您運(yùn)行的是Windows 7,則必須安裝驅(qū)動(dòng)程序集(

下載BOSSA

一旦有了固件映像,就需要下載BOSSA工具,該工具可以在SAMD21/51板上加載固件。 Arduino IDE在對(duì)這些板進(jìn)行編程時(shí)實(shí)際上在內(nèi)部使用此工具,但是您可以自己使用它來(lái)加載自定義固件

請(qǐng)注意,必須使用 1.7。 Bossac的0或更高版本,可為SAMD21和SAMD51板編程BOSSA 1.7.0之前的版本不起作用,因?yàn)樗恢С諷AMD21/51芯片。 還請(qǐng)注意,bossac 1.9.0和更高版本已不兼容地更改了其命令行參數(shù),并且在不受保護(hù)的情況下可以擦除您的引導(dǎo)加載程序。(Adafruit板隨附受保護(hù)的引導(dǎo)加載程序。)請(qǐng)按照以下說(shuō)明進(jìn)行操作

要使用bossac(BOSSA的命令行工具)進(jìn)行刷新,請(qǐng)先從此處下載最新版本。 ming32版本適用于Windows,apple-darwin適用于Mac OSX,而各種linux選項(xiàng)適用于Linux。

bossac適用于.bin文件僅,它不適用于.uf2文件!

測(cè)試bossac

打開(kāi)一個(gè)終端,并使用bossac工具導(dǎo)航到該文件夾。然后使用--help選項(xiàng)運(yùn)行該工具以檢查其運(yùn)行情況:

打開(kāi)一個(gè)終端,并使用bossac工具導(dǎo)航到該文件夾。然后使用帶有--help選項(xiàng)的bossac --help

來(lái)運(yùn)行該工具,以檢查該工具是否運(yùn)行?;蛘?,如果您使用的是Linux或Mac OSX,則需要添加 。/以指定從當(dāng)前目錄(例如 。/bossac --help

)運(yùn)行bossac,確保您看到的是BOSSA版本1.7.0或更高版本!,請(qǐng)參閱以下有關(guān)1.9.0及更高版本的警告。如果看到較低的版本,則表示您不小心下載了該工具的較舊版本,并且該工具無(wú)法刷新SAMD21芯片。返回并如上所述從該BOSSA GitHub存儲(chǔ)庫(kù)中獲取最新版本。

端口Mac OS的選擇

如果您使用的是Mac,則需要知道要使用哪個(gè)端口。

在同一終端窗口中,運(yùn)行命令ls /dev/cu.*。記下列出的端口,然后插入板子并再次運(yùn)行命令??赡軙?huì)列出該設(shè)備,例如/dev/cu.usbmodem14301 。記下下面bossac部分的端口名稱。

進(jìn)入引導(dǎo)加載程序

您必須手動(dòng)將板“踢”入引導(dǎo)加載程序。雙擊重置按鈕即可。紅色的“#13” LED指示燈應(yīng)點(diǎn)亮和熄滅。如果您使用的是Arduino Zero,請(qǐng)確保您已連接到本地USB 端口,而不是調(diào)試/編程端口。

如果使用的是Arduino,請(qǐng)?zhí)貏e注意來(lái)自Arduino.org的M0,您需要將其引導(dǎo)程序替換為Arduino零引導(dǎo)程序,以便它可以與BOSSA一起使用。為此,請(qǐng)?jiān)贏rduino IDE板管理器中安裝Arduino/Genuino Zero板,然后按照以下步驟刻錄Arduino Zero引導(dǎo)加載程序(使用板上的編程端口)。加載Arduino Zero Bootloader之后,您應(yīng)該能夠按照以下說(shuō)明將M0與bossac一起使用。

運(yùn)行thebossac命令

插入電路板并運(yùn)行引導(dǎo)加載程序后,您就可以將CircuitPython固件刷新到電路板上了。將固件.bin文件復(fù)制到與bossac工具相同的目錄中,然后在終端中導(dǎo)航到該位置并運(yùn)行以下命令之一,具體取決于您擁有的bossac版本。

對(duì)于bossac 1.9或更高版本,必須在命令行上使用--offset參數(shù),并且必須對(duì)您的電路板具有正確的值。

對(duì)于bossac 1.9或更高版本,您必須提供一個(gè)--offset參數(shù)此參數(shù)是在bossac 1.8.0中添加的,默認(rèn)值為0x2000,但從1.9開(kāi)始,默認(rèn)偏移量已更改為0x0000,在大多數(shù)情況下這不是您想要的。如果您省略了bossac 1.9或更高版本的參數(shù),則可能會(huì)看到來(lái)自bossac的“ 驗(yàn)證失敗”錯(cuò)誤。切記更改-p或--port的選項(xiàng)以匹配Mac上的端口。

將下面的文件名替換為下載的名稱 .bin :這將根據(jù)您的主板而有所不同!

使用bossac版本1.7.0、1.8

有沒(méi)有可用的--offset參數(shù)。使用這樣的命令行:

bossac -p /dev/cu.usbmodem14301 -e -w -v -R adafruit-circuitpython-boardname-version.bin

例如,

bossac -p /dev/cu.usbmodem14301 -e -w -v -R adafruit-circuitpython-feather_m0_express-3.0.0.bin

使用bossac 1.9或更高版本

對(duì)于具有8kB引導(dǎo)程序的M0板,必須指定-offset=0x2000,例如:

bossac -p /dev/cu.usbmodem14301 -e -w -v -R --offset=0x2000 adafruit-circuitpython-feather_m0_express-3.0.0.bin

對(duì)于具有16kB引導(dǎo)程序的M4板,必須指定-offset=0x4000,例如:

bossac -p /dev/cu.usbmodem14301 -e -w -v -R --offset=0x4000 adafruit-circuitpython-feather_m4_express-3.0.0.bin

這將e擦除芯片,w寫(xiě)入給定的文件,v驗(yàn)證寫(xiě)入并R設(shè)置板。在Linux或MacOS上,您可能需要使用sudo 。/bossac 。..運(yùn)行此命令,或首先將自己添加到撥號(hào)組。

在BOSSA加載固件后,您應(yīng)該會(huì)看到輸出類(lèi)似于以下內(nèi)容:

重置后,CircuitPython應(yīng)該正在運(yùn)行,并且會(huì)出現(xiàn) CIRCUITPY 驅(qū)動(dòng)器。您始終可以通過(guò)單擊重置按鈕來(lái)手動(dòng)重置板,有時(shí)需要將其“喚醒”。 Express板可能會(huì)警告USB驅(qū)動(dòng)器過(guò)早彈出,但請(qǐng)忽略它。沒(méi)什么重要的事情被寫(xiě)入驅(qū)動(dòng)器!

故障排除

有時(shí),在使用CircuitPython時(shí)會(huì)遇到問(wèn)題。這是您可能會(huì)遇到的一些問(wèn)題以及如何解決它們。

繼續(xù)開(kāi)發(fā)CircuitPython并創(chuàng)建新版本,我們將停止支持舊版本。訪問(wèn)https://circuitpython.org/downloads為您的電路板下載最新版本的CircuitPython。您必須下載與您的CircuitPython版本匹配的CircuitPython庫(kù)捆綁包。請(qǐng)更新CircuitPython,然后訪問(wèn)https://circuitpython.org/libraries下載最新的庫(kù)捆綁包。

始終運(yùn)行最新版本的CircuitPython和庫(kù)

在繼續(xù)開(kāi)發(fā)CircuitPython和創(chuàng)建新版本時(shí),我們將不再支持較舊版本發(fā)布。 您需要更新到最新的CircuitPython。

您需要下載與您的CircuitPython版本匹配的CircuitPython庫(kù)捆綁包。 請(qǐng)更新CircuitPython,然后下載最新的軟件包。

當(dāng)我們發(fā)布CircuitPython的新版本時(shí),我們將停止提供以前的軟件包作為Adafruit CircuitPython庫(kù)軟件包倉(cāng)庫(kù)中自動(dòng)創(chuàng)建的下載文件。 。如果必須繼續(xù)使用早期版本,則仍可以從CircuitPython存儲(chǔ)庫(kù)上特定版本的CircuitPython中下載mpy-cross的相應(yīng)版本,并創(chuàng)建自己的兼容.mpy庫(kù)文件。 但是,最好將CircuitPython和庫(kù)捆綁包都更新為最新版本。

我必須繼續(xù)使用CircuitPython 3.x或2.x,在哪里可以找到兼容的庫(kù)?

我們是不再構(gòu)建或支持CircuitPython 2.x和3.x庫(kù)包。我們強(qiáng)烈建議您將CircuitPython更新到最新版本并使用當(dāng)前版本的庫(kù)。。但是,如果由于某種原因而無(wú)法更新,則可以在此處找到最后一個(gè)可用的2.x版本和最后一個(gè)可用的3版本。 .x在此處構(gòu)建。

CPLAYBOOT,TRINKETBOOT ,F(xiàn)EATHERBOOT或GEMMABOOT驅(qū)動(dòng)器不存在 ,您可能擁有其他板子。

只有Adafruit Express板子和Trinket M0和Gemma M0板子才裝有UF2引導(dǎo)程序。 Feather M0 Basic,F(xiàn)eather M0 Adalogger和類(lèi)似的電路板使用常規(guī)的Arduino兼容引導(dǎo)加載程序,該引導(dǎo)加載程序不顯示boardnameBOOT驅(qū)動(dòng)器。

MakeCode

如果您正在Circuit Playground Express上運(yùn)行MakeCode程序,只需按一下重置按鈕即可顯示CPLAYBOOT驅(qū)動(dòng)器。兩次按下將不起作用。

Windows 10

您是否誤安裝了Adafruit Windows Drivers軟件包?對(duì)于大多數(shù)Adafruit板,您不需要在Windows 10上安裝此軟件包。舊版本(v1.5)可能會(huì)干擾您的設(shè)備識(shí)別。轉(zhuǎn)到設(shè)置-》 應(yīng)用,并卸載所有“ Adafruit”驅(qū)動(dòng)程序。

Windows 7

最新版本的Adafruit Windows驅(qū)動(dòng)程序(2.0.0.0版或更高版本)將解決Windows 7上缺少的boardnameBOOT驅(qū)動(dòng)器問(wèn)題。要解決此問(wèn)題,請(qǐng)先卸載舊版本的驅(qū)動(dòng)程序:

拔下所有板子。在卸載或更改程序(控制面板-》程序-》卸載程序)中,卸載所有名為“ Windows Driver Package-Adafruit Industries LLC 。..”的內(nèi)容。

現(xiàn)在安裝新的2.3.0.0(或更高版本)的Adafruit Windows驅(qū)動(dòng)程序包:

安裝最新的Windows驅(qū)動(dòng)程序

運(yùn)行時(shí)安裝程序,將顯示一個(gè)可供選擇的驅(qū)動(dòng)程序列表。您可以選中和取消選中復(fù)選框以選擇要安裝的驅(qū)動(dòng)程序。

現(xiàn)在應(yīng)該完成!通過(guò)拔下并重新插入電路板進(jìn)行測(cè)試。您應(yīng)該看到CIRCUITPY驅(qū)動(dòng)器,然后雙擊重置按鈕(單擊運(yùn)行MakeCode的Circuit Playground Express一次),您應(yīng)該看到相應(yīng)的boardnameBOOT驅(qū)動(dòng)器。

如果這不適合您,請(qǐng)?jiān)贏dafruit支持論壇或Adafruit Discord上告訴我們!

訪問(wèn)boardnameBOOT驅(qū)動(dòng)器時(shí)Windows資源管理器鎖定

在Windows上,我們知道的一些第三方程序可能會(huì)引起問(wèn)題。癥狀是您嘗試訪問(wèn)boardnameBOOT驅(qū)動(dòng)器,而Windows或Windows資源管理器似乎已鎖定。已知這些程序會(huì)引起麻煩:

AIDA64 :要修復(fù),請(qǐng)停止該程序。此問(wèn)題已報(bào)告給AIDA64。他們獲得了要測(cè)試的硬件,并發(fā)布了可解決該問(wèn)題的beta版本。這可能已合并到最新版本中。如果您測(cè)試此插件,請(qǐng)?jiān)谡搲懈嬖V我們。

硬盤(pán)前哨

卡巴斯基反病毒軟件:修復(fù)后,您可能需要完全禁用卡巴斯基。禁用卡巴斯基的某些方面并不總是能夠解決問(wèn)題。已經(jīng)向卡巴斯基報(bào)告了此問(wèn)題。

將UF2復(fù)制到boardnameBOOT驅(qū)動(dòng)器時(shí),復(fù)制已掛起0%

在Windows上,其外部USB驅(qū)動(dòng)器附帶的 Western Digit(WD)實(shí)用程序干擾將UF2文件復(fù)制到boardnameBOOT驅(qū)動(dòng)器。卸載該實(shí)用程序以解決問(wèn)題。

未顯示CIRCUITPY驅(qū)動(dòng)器

卡巴斯基反病毒軟件會(huì)阻止CIRCUITPY驅(qū)動(dòng)器的出現(xiàn)。我們尚未發(fā)現(xiàn)可以防止這種情況的設(shè)置更改。完全卸載卡巴斯基可以解決此問(wèn)題。

Norton防病毒軟件可能會(huì)干擾CIRCUITPY。用戶已在Windows 7上報(bào)告了此問(wèn)題。該用戶關(guān)閉了智能防火墻和自動(dòng)保護(hù),然后出現(xiàn)CIRCUITPY。

Mu中的串行控制臺(tái)不顯示任何內(nèi)容

有時(shí),串行控制臺(tái)將完全不顯示任何內(nèi)容,例如例如,當(dāng)當(dāng)前沒(méi)有代碼在運(yùn)行,或者在打開(kāi)控制臺(tái)之前沒(méi)有串行輸出的代碼已經(jīng)在運(yùn)行。但是,如果您發(fā)現(xiàn)自己應(yīng)該出現(xiàn)類(lèi)似錯(cuò)誤的情況,請(qǐng)考慮以下事項(xiàng)。

根據(jù)屏幕或Mu窗口的大小,在打開(kāi)串行控制臺(tái)時(shí),串行控制臺(tái)面板可能很小。這可能是個(gè)問(wèn)題。一個(gè)基本的CircuitPython錯(cuò)誤需要10行才能顯示!

下載:文件

復(fù)制代碼

Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.

code.py output:

Traceback (most recent call last):

File “code.py”, line 7

SyntaxError: invalid syntax

Press any key to enter the REPL. Use CTRL-D to reload.

Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.

code.py output:

Traceback (most recent call last):

File “code.py”, line 7

SyntaxError: invalid syntax

Press any key to enter the REPL. Use CTRL-D to reload.

更復(fù)雜的錯(cuò)誤將占用更多行!

因此,如果您的串行控制臺(tái)面板是高度不超過(guò)五行,您可能只會(huì)看到空白行或空白行,后跟Press any key to enter the REPL. Use CTRL-D to reload.。在這種情況下,您需要將鼠標(biāo)懸停在面板頂部以利用該選項(xiàng)來(lái)調(diào)整串行面板的大小,或者使用右側(cè)的滾動(dòng)條向上滾動(dòng)以查找消息。

這適用于任何類(lèi)型的串行輸出,無(wú)論是錯(cuò)誤消息還是打印語(yǔ)句。因此,在開(kāi)始嘗試在硬件方面調(diào)試問(wèn)題之前,請(qǐng)確保檢查是否由于串行輸出面板的高度而不只是錯(cuò)過(guò)了串行消息。

CircuitPython RGB狀態(tài)燈

Feather M0 Express,F(xiàn)eather M4 Express,Metro M0 Express ,Metro M4 Express,ItsyBitsy M0 Express,ItsyBitsy M4 Express,Gemma M0和Trinket M0的板上都有單個(gè)NeoPixel或DotStar RGB LED,用于指示CircuitPython的狀態(tài)。

電路游樂(lè)場(chǎng)Express沒(méi)有狀態(tài)指示燈。在引導(dǎo)加載程序中時(shí),LED會(huì)閃爍綠色。它們?cè)谶\(yùn)行CircuitPython時(shí)不會(huì)指示任何狀態(tài)。

以下是顏色和閃爍的含義:

穩(wěn)定的綠色:code.py(或 code.txt,main.py或main.txt)正在運(yùn)行

向綠色施加脈沖:code.py(等)完成或不存在

穩(wěn)定黃色 :( 4.0.0-alpha.5及更高版本)CircuitPython正在等待重置以表明它應(yīng)該在安全模式下啟動(dòng)

以脈沖方式黃色:電路Python處于安全模式:崩潰并重新啟動(dòng)

穩(wěn)定的白色: REPL正在運(yùn)行

穩(wěn)定運(yùn)行藍(lán)色:boot.py正在運(yùn)行

以下帶有多次閃爍的顏色表示Python異常,然后表示行號(hào)錯(cuò)誤。第一次閃爍的顏色表示錯(cuò)誤的類(lèi)型:

綠色:IndentationError

CYAN :SyntaxError

白色:NameError

橙色:OSError

紫色:ValueError

黃色:其他錯(cuò)誤

這些錯(cuò)誤之后會(huì)閃爍指示行號(hào),包括位置值。 白色閃爍是數(shù)千個(gè)位置,藍(lán)色是數(shù)百個(gè)位置,黃色是數(shù)十個(gè)位置,青色是一個(gè)人的地方。因此,例如,第32行的錯(cuò)誤將黃色閃爍三下,然后 CYAN 閃爍兩次。零表示為一個(gè)超長(zhǎng)的暗間隙。

ValueError:不兼容的.mpy文件。

當(dāng)導(dǎo)入以mpy二進(jìn)制文件存儲(chǔ)的模塊時(shí),會(huì)發(fā)生此錯(cuò)誤,該二進(jìn)制文件由CircuitPython的不同版本生成。它被加載到其中。特別是mpy二進(jìn)制格式在CircuitPython版本2.x和3.x之間以及在1.x和2.x之間進(jìn)行了更改。

例如,如果您升級(jí)了從2.x到CircuitPython 3.x,您需要下載庫(kù)的更新版本,該庫(kù)在import上觸發(fā)了錯(cuò)誤。它們都可以在Adafruit捆綁包中找到。

如果使用CircuitPython版本2.2.4,請(qǐng)確保下載文件名中具有2.0.0或更高版本的版本,以及具有3.0.0或更高版本的版本。如果使用的是CircuitPython 3.0版,則文件名應(yīng)更高。

CIRCUITPY驅(qū)動(dòng)器問(wèn)題

您可能會(huì)發(fā)現(xiàn)無(wú)法再將文件保存到您的CIRCUITPY驅(qū)動(dòng)器中。您可能會(huì)發(fā)現(xiàn)CIRCUITPY停止顯示在文件資源管理器中,或顯示為NO_NAME。這些是文件系統(tǒng)有問(wèn)題的指示器。

第一次檢查-您是否已使用Arduino對(duì)電路板進(jìn)行編程?如果是這樣,CircuitPython將不再能夠提供USB服務(wù)。重置開(kāi)發(fā)板,以便獲得一個(gè)boardnameBOOT驅(qū)動(dòng)器而不是一個(gè)CIRCUITPY驅(qū)動(dòng)器,將最新版本的CircuitPython(.uf2)復(fù)制回到該板上,然后進(jìn)行重置。這可能會(huì)恢復(fù)CIRCUITPY功能。

如果仍然損壞-當(dāng)CIRCUITPY磁盤(pán)在通過(guò)按鈕重置或與USB斷開(kāi)連接之前未安全彈出時(shí),可能會(huì)損壞閃存駕駛。在Windows,Mac或Linux上都可能發(fā)生這種情況。

在這種情況下,必須完全擦除開(kāi)發(fā)板,并且必須將CircuitPython重新加載到開(kāi)發(fā)板上。

完成以下步驟后,您將失去董事會(huì)上的所有東西。如有可能,請(qǐng)復(fù)制代碼,然后再繼續(xù)。

最簡(jiǎn)單的方法:使用storage.erase_filesystem()

從2.3.0版開(kāi)始,CircuitPython包含一個(gè)內(nèi)置函數(shù)來(lái)擦除和重新格式化文件系統(tǒng)。如果您的電路板上有舊版本的CircuitPython,則可以執(zhí)行此操作以更新到最新版本。

使用Mu或終端程序重新連接到CircuitPython。

類(lèi)型:

下載:文件

復(fù)制代碼

》》》 import storage

》》》 storage.erase_filesystem() 》》》 import storage

》》》 storage.erase_filesystem()

CIRCUITPY將被刪除并重新格式化,然后您的電路板將重新啟動(dòng)。就是這樣!

Circuit Playground Express,F(xiàn)eather M0 Express和Metro M0 Express:

如果您無(wú)法使用REPL,或者您正在運(yùn)行2.3.0之前的CircuitPython版本,并且不想要升級(jí),可以執(zhí)行此操作。

1.下載正確的擦除文件:

Circuit Playground Express

羽毛M0 Express

羽毛M4 Express

Metro M0 Express

Metro M4 Express QSPI橡皮擦

格子M4 Express(QSPI)

大Central M4 Express(QSPI)

PyPortal M4 Express(QSPI)

電路游樂(lè)場(chǎng)Bluefruit(QSPI)

Monster M4SK(QSPI)

PyBadge/PyGamer QSPI Eraser.UF2

2.雙擊板上的重置按鈕以調(diào)出boardnameBOOT驅(qū)動(dòng)器。

3.拖動(dòng)擦除.uf2文件放入boardnameBOOT驅(qū)動(dòng)器。

4.板載NeoPixel將變?yōu)辄S色或藍(lán)色,表示擦除已開(kāi)始。

5。大約15秒鐘后,主板NeoPixel將點(diǎn)亮綠色。在NeoTrellis M4上,這是網(wǎng)格上的第一個(gè)NeoPixel。

6.雙擊板上的重置按鈕以調(diào)出boardnameBOOT驅(qū)動(dòng)器。

7.拖動(dòng)適當(dāng)?shù)淖钚掳姹镜腃ircuitPython .uf2驅(qū)動(dòng)器上的cc = 1》文件。

它將自動(dòng)重新啟動(dòng),并且您應(yīng)該在文件資源管理器中再次看到boardnameBOOT。

如果LED指示燈在步驟5期間呈紅色閃爍,表示擦除失敗。重復(fù)從2開(kāi)始的步驟。

如果尚未為電路板下載最新版本的CircuitPython,請(qǐng)查看安裝頁(yè)面。您還需要安裝您的庫(kù)和代碼!

舊方法:對(duì)于具有UF2引導(dǎo)程序(Gemma M0,Trinket M0)的非Express板:

如果您無(wú)法使用REPL,或者您正在運(yùn)行CircuitPython版本2.3.0之前的版本,并且您不想升級(jí),則可以執(zhí)行此操作。

1.下載擦除文件:

Gemma M0,Trinket M0

2.雙擊板上的重置按鈕以調(diào)出CIRCUITPY驅(qū)動(dòng)器。

3.將擦除的boardnameBOOT文件拖到.uf2驅(qū)動(dòng)器。

4.引導(dǎo)LED將再次開(kāi)始閃爍,并且boardnameBOOT驅(qū)動(dòng)器將重新出現(xiàn)。

5.將適當(dāng)?shù)淖钚掳l(fā)行版CircuitPython boardnameBOOT文件拖到.uf2驅(qū)動(dòng)器。

它將自動(dòng)重啟,并且您應(yīng)該在文件瀏覽器中再次看到boardnameBOOT。

如果尚未下載最新版本的CircuitPython您的面板上,請(qǐng)查看安裝頁(yè)面您還需要安裝天秤座ries和代碼!

沒(méi)有UF2引導(dǎo)程序(羽毛M0基本原型,羽毛Adalogger,Arduino零)的非Express板:

如果您運(yùn)行的是2.3.0之前的CircuitPython版本,并且不想升級(jí),

只需按照以下說(shuō)明使用CIRCUITPY重新加載CircuitPython,這將擦除并重新創(chuàng)建bossac。

p》

非Express板上文件空間不足

板上的文件系統(tǒng)非常小。 (比古老的軟盤(pán)要小。)因此,很可能您會(huì)用完空間但不要驚慌!有兩種釋放空間的方法。

該板還附帶Windows 7串行驅(qū)動(dòng)程序!如果不需要或已經(jīng)安裝,請(qǐng)隨時(shí)刪除。它的大小約為12KiB。

刪除某些內(nèi)容!

釋放空間的最簡(jiǎn)單方法是從驅(qū)動(dòng)器中刪除文件。也許CIRCUITPY文件夾中有一些不再使用的庫(kù),或者未使用的測(cè)試代碼。不過(guò),不要完全刪除lib文件夾,只需刪除不需要的內(nèi)容即可。

使用標(biāo)簽

Python的一個(gè)獨(dú)特功能是縮進(jìn)代碼很重要。通常建議對(duì)每個(gè)縮進(jìn)使用四個(gè)空格縮進(jìn)代碼。通常,我們也建議這樣做。 但是,存儲(chǔ)更多人類(lèi)可讀代碼的一個(gè)技巧是使用單個(gè)制表符進(jìn)行縮進(jìn)。這種方法使用縮進(jìn)空間的1/4,當(dāng)我們計(jì)算字節(jié)數(shù)時(shí)可能很重要。

Mac OSX喜歡添加額外的文件。

幸運(yùn)的是,您可以禁用Mac上的一些其他隱藏文件OSX通過(guò)運(yùn)行一些命令來(lái)添加禁用搜索索引并創(chuàng)建零字節(jié)占位符的功能。請(qǐng)按照以下步驟操作,以最大程度地利用OSX上的可用空間:

防止并刪除Mac OSX隱藏文件

首先找到主板的卷名。插入木板后,在終端中運(yùn)行以下命令以列出所有卷:

下載:文件

復(fù)制代碼

lib ls -l /Volumes

查找名稱類(lèi)似于ls -l /Volumes的卷(默認(rèn)用于CircuitPython)。卷的完整路徑是CIRCUITPY路徑。

現(xiàn)在按照此問(wèn)題的步驟運(yùn)行以下終端命令,以防止在板上創(chuàng)建隱藏文件:

下載:文件

復(fù)制代碼

/Volumes/CIRCUITPY mdutil -i off /Volumes/CIRCUITPY

cd /Volumes/CIRCUITPY

rm -rf 。{,_.}{fseventsd,Spotlight-V*,Trashes}

mkdir .fseventsd

touch .fseventsd/no_log .metadata_never_index .Trashes

cd -

替換上面的命令中的mdutil -i off /Volumes/CIRCUITPY

cd /Volumes/CIRCUITPY

rm -rf 。{,_.}{fseventsd,Spotlight-V*,Trashes}

mkdir .fseventsd

touch .fseventsd/no_log .metadata_never_index .Trashes

cd -,如果不相同,請(qǐng)使用完整的木板音量路徑。此時(shí),應(yīng)從開(kāi)發(fā)板上清除所有隱藏文件,并阻止某些隱藏文件的創(chuàng)建。

但是,在某些情況下,Mac OSX仍會(huì)創(chuàng)建隱藏文件。特別是,如果您復(fù)制從Internet下載的文件,它將具有特殊的元數(shù)據(jù),Mac OSX將這些元數(shù)據(jù)存儲(chǔ)為隱藏文件。幸運(yùn)的是,您可以從終端運(yùn)行復(fù)制命令來(lái)不復(fù)制該隱藏的元數(shù)據(jù)文件。請(qǐng)參閱下面的步驟。

在Mac OSX上復(fù)制文件而不創(chuàng)建隱藏文件

在Mac上使用上述命令禁用并刪除了隱藏文件后, OSX,您需要小心使用特殊命令將文件復(fù)制到板上,以防止將來(lái)創(chuàng)建隱藏文件。不幸的是,您無(wú)法在Finder中使用拖放副本,因?yàn)樵谀承┣闆r下(對(duì)于從Internet下載的文件,例如Adafruit的模塊),它仍會(huì)創(chuàng)建這些隱藏的擴(kuò)展屬性文件。

要復(fù)制文件或文件夾,請(qǐng)?jiān)诮K端中的 cp 命令中使用 -X 選項(xiàng)。例如,使用以下命令將/Volumes/CIRCUITPY文件復(fù)制到板上:

下載:文件

復(fù)制代碼

foo.mpy cp -X foo.mpy /Volumes/CIRCUITPY

(將 cp -X foo.mpy /Volumes/CIRCUITPY

替換為您的文件名要復(fù)制。)或復(fù)制文件夾及其所有子文件/文件夾,請(qǐng)使用以下命令:

下載:文件

復(fù)制代碼

foo.mpy cp -rX folder_to_copy /Volumes/CIRCUITPY

如果要復(fù)制到cp -rX folder_to_copy /Volumes/CIRCUITPY文件夾或其他文件夾,請(qǐng)確保該文件夾在復(fù)制之前存在。

下載:文件

復(fù)制代碼

lib # if lib does not exist, you‘ll create a file named lib !

cp -X foo.mpy /Volumes/CIRCUITPY/lib

# This is safer, and will complain if a lib folder does not exist.

cp -X foo.mpy /Volumes/CIRCUITPY/lib/

其他Mac OSX節(jié)省空間的提示

如果需要查看驅(qū)動(dòng)器上已使用的空間量并手動(dòng)刪除隱藏的文件,這里是操作方法。首先使用 df 命令列出# if lib does not exist, you’ll create a file named lib !

cp -X foo.mpy /Volumes/CIRCUITPY/lib

# This is safer, and will complain if a lib folder does not exist.

cp -X foo.mpy /Volumes/CIRCUITPY/lib/驅(qū)動(dòng)器上使用的空間量:

讓我們先刪除CIRCUITPY個(gè)文件。

哇!我們比以前多了13 Ki!現(xiàn)在可以將此空間用于庫(kù)和代碼!

CircuitPython Essentials

您已經(jīng)閱讀了“歡迎使用CircuitPython”指南。您已經(jīng)完成所有設(shè)置,并已運(yùn)行CircuitPython。大!怎么辦? CircuitPython Essentials!

CircuitPython內(nèi)置了許多核心模塊,并且提供了常用的庫(kù)。 《 Essentials指南》將向您介紹這些內(nèi)容,并向您展示如何使用它們的示例。

責(zé)任編輯:wv

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

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86784
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    1法拉電容相當(dāng)于多少容量

    文章介紹了法拉電容的容量單位換算、與電流、電壓的關(guān)系,以及與電池容量的類(lèi)比,強(qiáng)調(diào)其儲(chǔ)能能力巨大。
    的頭像 發(fā)表于 07-20 09:28 ?13次閱讀
    1法拉電容相當(dāng)于多少容量

    車(chē)載手機(jī)無(wú)線充電是什么原理

    車(chē)載無(wú)線充電通過(guò)電磁感應(yīng)實(shí)現(xiàn),結(jié)構(gòu)緊湊,安全高效,適用于現(xiàn)代汽車(chē)駕駛體驗(yàn)。
    的頭像 發(fā)表于 07-20 08:14 ?14次閱讀
    車(chē)載手機(jī)無(wú)線充電是什么原理

    XR空間音頻革命:蘋(píng)果、三星推出新技術(shù),ASAF成Vision Pro最佳搭檔

    (電子發(fā)燒友網(wǎng)綜合報(bào)道)隨著技術(shù)的不斷進(jìn)步,空間音頻標(biāo)準(zhǔn)正處于持續(xù)進(jìn)化之中,眾多科技巨頭如蘋(píng)果、三星和谷歌等都在積極布局這一領(lǐng)域。 ? 在WWDC25大會(huì)上,蘋(píng)果推出了新的空間音頻(Spatial Audio)格式:Apple Spatial Audio Format(ASAF,蘋(píng)果空間音頻格式),可以用來(lái)打造真正沉浸式的音頻體驗(yàn)。 ? ASAF 通過(guò)確保使用聲學(xué)提示來(lái)渲染音頻,從而實(shí)現(xiàn)真正外化的音頻體驗(yàn)。它由新的高精度元數(shù)據(jù)、線性 PCM 以及蘋(píng)果平臺(tái)內(nèi)置的強(qiáng)大空間渲染器組成。 ?
    的頭像 發(fā)表于 07-20 00:11 ?849次閱讀

    OpenAI發(fā)布新智能體!實(shí)現(xiàn)在線購(gòu)物和創(chuàng)建PPT演示文稿

    電子發(fā)燒友原創(chuàng) 章鷹 7月17日,美國(guó)OpenAI公司為其聊天機(jī)器人ChatGPT推出了一款人工智能體,可以完成復(fù)雜的任務(wù),這家微軟支持的人工智能初創(chuàng)公司希望在AI競(jìng)賽中領(lǐng)先于競(jìng)爭(zhēng)對(duì)手。 OpenAI的總部位于美國(guó)舊金山,這家公司在自主運(yùn)行AI機(jī)器人這一大熱領(lǐng)域推出了其最新產(chǎn)品, 這是一款能夠讓用戶自動(dòng)執(zhí)行在線購(gòu)物等任務(wù)并且能夠創(chuàng)建電子表格和PowerPoint演示文稿的智能體。 智能體被認(rèn)為是助手的進(jìn)化——已經(jīng)受到科技界的廣泛歡迎,其中包括微軟、Sale
    的頭像 發(fā)表于 07-20 00:05 ?4356次閱讀
    OpenAI發(fā)布新智能體!實(shí)現(xiàn)在線購(gòu)物和創(chuàng)建PPT演示文稿

    從良率突破到成本優(yōu)化:PLP解決方案如何改寫(xiě)半導(dǎo)體封裝規(guī)則

    電子發(fā)燒友網(wǎng)綜合報(bào)道 近日,Nordson Electronics Solutions與Powertech Technology, Inc.(PTI)聯(lián)合開(kāi)發(fā)的面板級(jí)封裝(PLP)解決方案,以流體點(diǎn)膠系統(tǒng)的技術(shù)革新為切入點(diǎn),重塑了半導(dǎo)體封裝的工藝范式與產(chǎn)業(yè)邏輯。 ? 這種基于高精度流體控制的創(chuàng)新方案,不僅突破了傳統(tǒng)封裝在良率、效率與可靠性層面的技術(shù)瓶頸,更通過(guò)面板級(jí)制造的規(guī)模效應(yīng),推動(dòng)半導(dǎo)體封裝向高集成、低成本、低功耗的方向深度變革,其影響已延伸至產(chǎn)業(yè)鏈各環(huán)節(jié)的技術(shù)路徑與市場(chǎng)格局。
    的頭像 發(fā)表于 07-20 00:04 ?1081次閱讀

    “諾基亞”推新款功能機(jī),搭載DeepSeek AI助手

    電子發(fā)燒友網(wǎng)綜合報(bào)道?最近諾基亞在京東自營(yíng)旗艦店推出了兩款帶有AI功能的手機(jī),HMD101?4G?和HMD102?4G,售價(jià)分別為149元和169元,102相比101增加了攝像頭。 ? HMD101?4G?和HMD102?4G上沒(méi)有帶有諾基亞的Logo,而是使用了HMD品牌,官方宣稱采用諾基亞手機(jī)制造工藝與測(cè)試標(biāo)準(zhǔn)。通過(guò)主鍵30萬(wàn)次按壓、耳機(jī)接口插拔3000次、USB插拔1萬(wàn)次、滾筒測(cè)試200圈、-30℃~70℃24小時(shí)冷熱沖擊等測(cè)試。 ? 來(lái)源:諾基亞手機(jī)京東自營(yíng)旗艦店 ? 在介紹頁(yè)面中,這兩款手機(jī)面向長(zhǎng)輩、
    的頭像 發(fā)表于 07-20 00:04 ?1837次閱讀
    “諾基亞”推新款功能機(jī),搭載DeepSeek AI助手

    突破三大技術(shù)瓶頸!這家企業(yè)讓鐵鉻液流電池走向商業(yè)化

    電子發(fā)燒友網(wǎng)綜合報(bào)道 在全球能源轉(zhuǎn)型的關(guān)鍵時(shí)期,新型儲(chǔ)能技術(shù)正成為推動(dòng)能源綠色低碳轉(zhuǎn)型的重要支撐?!丁笆奈濉毙滦蛢?chǔ)能發(fā)展實(shí)施方案》明確提出,到2025年,新型儲(chǔ)能要由商業(yè)化初期步入規(guī)?;l(fā)展階段。在這樣的背景下,鐵鉻液流電池憑借超長(zhǎng)循環(huán)壽命、本質(zhì)安全、成本優(yōu)勢(shì)及環(huán)境友好等特性,成為滿足新型電力系統(tǒng)長(zhǎng)時(shí)儲(chǔ)能需求的核心技術(shù)之一。 ? 與其他儲(chǔ)能技術(shù)相比,鐵鉻液流電池在充放電過(guò)程中不涉及物相變化,這一特性使其循環(huán)
    的頭像 發(fā)表于 07-20 00:03 ?4735次閱讀

    DPC陶瓷基板電鍍銅加厚工藝研究

    隨著功率半導(dǎo)體器件向高頻化、集成化方向發(fā)展,直接鍍銅(DPC)技術(shù)憑借其獨(dú)特的優(yōu)勢(shì)成為大功率封裝領(lǐng)域的核心技術(shù)。下面由深圳金瑞欣小編將系統(tǒng)闡述DPC工藝中電鍍銅加厚環(huán)節(jié)的技術(shù)要點(diǎn),并探討行業(yè)最新發(fā)展趨勢(shì)。 一、電鍍銅加厚工藝的技術(shù)價(jià)值 在DPC工藝流程中,電鍍銅加厚承擔(dān)著將初始銅層(≤1μm)增厚至功能厚度(17-105μm)的關(guān)鍵任務(wù)。這一工藝不僅決定了基板的導(dǎo)電性能,更直接影響器件的散熱效率、機(jī)械強(qiáng)度和長(zhǎng)期可靠性。特別值得
    的頭像 發(fā)表于 07-19 18:14 ?58次閱讀
    DPC陶瓷基板電鍍銅加厚工藝研究

    deepin亮相2025 RISC-V中國(guó)峰會(huì),展現(xiàn)開(kāi)源生態(tài)無(wú)限可能

    ? 2025 年 7 月 19 日,為期四天的第五屆 RISC-V 中國(guó)峰會(huì)在上海張江科學(xué)會(huì)堂圓滿落幕。本次峰會(huì)匯聚了全球 RISC-V 領(lǐng)域的頂尖企業(yè)、研究機(jī)構(gòu)和開(kāi)源社區(qū),共同探討?RISC-V 技術(shù)的創(chuàng)新與應(yīng)用。 作為國(guó)內(nèi)領(lǐng)先的桌面操作系統(tǒng)社區(qū),deepin 深度參與了此次盛會(huì),通過(guò)一系列硬核展示和互動(dòng)活動(dòng),全面彰顯了其在 RISC-V 生態(tài)建設(shè)中的重要貢獻(xiàn)和技術(shù)實(shí)力。 無(wú)約束的自由展示:流暢體驗(yàn)最新桌面系統(tǒng) 在峰會(huì)現(xiàn)場(chǎng),deepin-ports SIG 為與會(huì)者帶來(lái)了前所未有的自由體驗(yàn)。
    的頭像 發(fā)表于 07-19 17:35 ?148次閱讀
    deepin亮相2025 RISC-V中國(guó)峰會(huì),展現(xiàn)開(kāi)源生態(tài)無(wú)限可能

    《電子發(fā)燒友電子設(shè)計(jì)周報(bào)》聚焦硬科技領(lǐng)域核心價(jià)值 第4期:2025.03.17--2025.03.21

    ://www.www27dydycom.cn/d/6488730.html XIAO RP2040 開(kāi)發(fā)板支持:Micropython/Arduino/CircuitPython多種開(kāi)發(fā)環(huán)境,其中Arduino IDE作為靈活
    發(fā)表于 03-21 17:58

    【xG24 Matter開(kāi)發(fā)套件試用體驗(yàn)】藍(lán)牙密碼柜之舵機(jī)、藍(lán)牙的驅(qū)動(dòng)以及RTOS的引入

    ,非常適合作為藍(lán)牙密碼柜的主控。 首先到circuitpython的官方驅(qū)動(dòng)庫(kù)中找到BLE相關(guān)的驅(qū)動(dòng),下載和上傳代碼流程和之前一樣,此處不再重復(fù)演示。 驅(qū)動(dòng)BLE的核心代碼如下: def
    發(fā)表于 09-02 08:21

    樹(shù)莓派Pico 2發(fā)布,搭載RP2350雙核RISC-V和Arm Cortex-M33微控制器!

    2 W 版本。 Pico 2 和 RP2350 的發(fā)布伴隨著 Pico SDK 的更新版本,以及新的 MicroPython 和 CircuitPython 固件。 從方便開(kāi)展嵌入式教育的角度出發(fā)
    發(fā)表于 08-13 10:07

    【核桃派ZeroW開(kāi)發(fā)板體驗(yàn)連載】小小氣象站 04 oled測(cè)試

    : sudo pip3 install adafruit-circuitpython-ssd1306 測(cè)試 按上一篇接線的SCL、SDA接在I2C1上面,這樣體現(xiàn)了I2C的一個(gè)特點(diǎn),就是一個(gè)接口可以接
    發(fā)表于 08-11 13:33

    【核桃派ZeroW開(kāi)發(fā)板體驗(yàn)連載】小小氣象站 03 aht10、bmp280測(cè)試

    adafruit-circuitpython-ahtx0 安裝完成后,打開(kāi)遠(yuǎn)程python,新建一個(gè)文件,命名為aht10_test.py,進(jìn)入,寫(xiě)入以下代碼: \'\'\' 實(shí)驗(yàn)名稱:AHT10溫濕度
    發(fā)表于 08-10 10:04

    【xG24 Matter開(kāi)發(fā)套件試用體驗(yàn)】物聯(lián)網(wǎng)密碼柜之驅(qū)動(dòng)矩陣鍵盤(pán)和OLED顯示器

    +circuitpython進(jìn)行開(kāi)發(fā),矩陣鍵盤(pán)驅(qū)動(dòng)為自行編寫(xiě),Oled驅(qū)動(dòng)基于Adafruit SSD_1306庫(kù)。 到本階段為止已實(shí)現(xiàn)的功能: 矩陣鍵盤(pán)的輸入與識(shí)別 密碼校驗(yàn) 邊緣檢測(cè)及錯(cuò)誤處理 SSD1306顯示器的驅(qū)動(dòng)
    發(fā)表于 08-04 23:04