概述
因此,您有了這個新的 CircuitPython兼容板。您將其插入。也許它顯示為名為CIRCUITPY的磁盤驅動器。也許不是!無論哪種方式,您都需要知道從這里出發的去向。好吧,我們已經覆蓋了您!
本指南將幫助您開始使用CircuitPython!
關于您的新主板,有很多令人驚奇的事情。其中之一是能夠運行CircuitPython的能力。您可能在Adafruit網站上的某個地方看到過該名稱。不確定是什么?我們可以提供幫助!
“但是我一生從未編碼過。我沒有辦法!”你絕對可以! CircuitPython旨在幫助您從頭開始學習。如果您不熟悉所有內容,那么這是開始的地方!
本指南將引導您逐步了解CircuitPython入門。您將學習如何安裝CircuitPython,更新到CircuitPython的最新版本,如何設置串行連接以及如何編輯文件。
歡迎使用CircuitPython!
什么是CircuitPython?
CircuitPython是一種編程語言,旨在簡化在低成本微控制器板上進行編程的實驗和學習。它使入門變得比以往任何時候都更加輕松,無需預先下載桌面。設置好電路板后,打開任何文本編輯器,然后開始編輯代碼。就是這么簡單。
CircuitPython基于Python
Python是增長最快的編程語言。它在學校和大學中教授。這是一種高級編程語言,這意味著它的設計易于閱讀,編寫和維護。它支持模塊和包,這意味著可以輕松地將代碼重用于其他項目。它具有內置的解釋器,這意味著無需其他步驟即可使代碼正常工作,例如 compiling 。當然,Python是開源軟件,這意味著任何人都可以免費使用,修改或改進它。
CircuitPython為所有這些令人驚奇的功能添加了硬件支持。如果您已經具備Python知識,則可以輕松地將其應用于CircuitPython。如果您以前沒有經驗,那么開始就非常簡單!
為什么要使用CircuitPython?
CircuitPython設計為在微控制器板上運行。微控制器板是帶有微控制器芯片的板,本質上是一臺很小的多合一計算機。您拿著的板是微控制器板! CircuitPython易于使用,因為您所需要的只是那塊小板,一條USB電纜和一臺具有USB連接的計算機。但這僅僅是開始。
使用CircuitPython的其他原因包括:
您要快速啟動并運行。編輯您的代碼,保存文件,它會立即運行。無需編譯,無需下載,也不需要上傳。
您是編程的新手。 CircuitPython在設計時就考慮了教育。開始學習編程的過程很容易,您會立即從董事會獲得反饋。
輕松更新代碼。由于代碼位于磁盤驅動器上,因此您可以隨時對其進行編輯您還可以保留多個文件,以方便進行實驗。
串行控制臺和REPL。這些功能可讓您從代碼和交互式編程中獲得實時反饋。
文件存儲。 CircuitPython的內部存儲使其非常適合數據記錄,播放音頻剪輯以及與文件交互。
強大的硬件支持。 有許多用于傳感器,分支板和其他外部組件的庫和驅動程序。
它是Python! Python是增長最快的編程語言。它在學校和大學中教授。 CircuitPython與Python幾乎完全兼容。它只是增加了硬件支持。
這僅僅是開始。 CircuitPython不斷發展,并不斷更新。我們歡迎并鼓勵社區提供反饋,并將其納入開發CircuitPython的方式中。這是開源概念的核心。這使CircuitPython更適合您和使用它的每個人!
常見問題
這些是有關CircuitPython和CircuitPython微控制器的一些常見問題。
隨著我們繼續開發CircuitPython和創建新版本,我們將停止支持較早的版本。訪問https://circuitpython.org/downloads為您的電路板下載最新版本的CircuitPython。您必須下載與您的CircuitPython版本匹配的CircuitPython庫捆綁包。請更新CircuitPython,然后訪問https://circuitpython.org/libraries下載最新的庫捆綁包。
我必須繼續使用CircuitPython 3.x或2.x,在哪里可以找到兼容的庫?
我們不再構建或支持CircuitPython 2.x和3.x庫包。我們強烈建議您將CircuitPython更新到最新版本并使用當前版本的庫。。但是,如果由于某種原因而無法更新,則可以在此處找到最后一個可用的2.x版本和最后一個可用的3版本。 .x在此處構建。
CircuitPython是否支持ESP8266或ESP32?為什么不呢?
我們從4.x版本開始不再支持ESP8266-對于更多信息,請在這里閱讀!
https://learn.adafruit.com/welcome-to-circuitpython/circuitpython-for-esp8266
div》
如何使用CircuitPython連接到Internet?
如果您想添加WiFi支持,請參閱我們的ESP32/ESP8266作為協處理器的指南。
CircuitPython中是否有異步支持 》
我們目前在CircuitPython中沒有異步支持
我的RGB NeoPixel/點星形LED閃爍有趣的顏色-這是什么意思?
狀態LED可以告訴您CircuitPython開發板的最新動態。
什么是MemoryError?
當您嘗試在板上存儲過多存儲空間時會發生內存分配錯誤。 CircuitPython微控制器板的可用內存量有限。 M0 Express板上可以包含約250行代碼。如果您嘗試import太多的庫,大型庫的組合,或者運行的程序包含太多的代碼行,則您的代碼將無法運行,并且您會在串行控制臺中收到MemoryError (REPL)。
當我遇到MemoryError嗎?
嘗試重置主板。每次重置板卡時,它都會重新分配內存。雖然這不太可能解決您的問題,但這是一個簡單的步驟,值得嘗試。
請確保您使用的是庫的 .mpy 版本。捆綁包中的所有CircuitPython庫均以 .mpy 格式提供,與.py格式相比占用的內存更少。確保您使用的是最新版本的CircuitPython庫包。
如果這不能解決問題,請嘗試縮短代碼。縮短注釋,刪除多余或不需要的代碼,或執行其他任何清理操作以縮短代碼。如果您使用了很多函數,則可以嘗試將它們移至單獨的庫中,創建該庫的.mpy并將其導入代碼中。
您可以將整個函數文件放入.mpy,將import放入code.py。這意味著您將無法在板上實時編輯代碼,但可以節省空間。
我的import語句的順序會影響內存嗎?
這可能是因為內存根據分配順序和大小的不同而碎片化了對象。加載.mpy文件會占用較少的內存,因此建議您對未編輯的文件執行此操作。
如何創建自己的.mpy文件?
您可以使用以下方法制作自己的.mpy版本的文件: mpy-cross。
您可以從CircuitPython版本頁面(最新的2.x版本)為您的操作系統下載mpy-cross的CircuitPython 2.x版本。
您可以通過克隆CircuitPython GitHub存儲庫并在mpy-cross目錄中運行make來為CircuitPython 3.x構建circuitpython/mpy-cross/。然后運行。/mpy-cross path/to/foo.py在與原始文件相同的目錄中創建foo.mpy。
如何查看我有多少可用內存?
import gc
gc.mem_free()
將為您提供可用的字節數。
CircuitPython是否支持中斷?
否。 CircuitPython當前不支持中斷。我們尚無確定何時將其包含在內。
Feather M0是否支持WINC1500?
否,WINC1500將不適合M0閃存空間。
諸如ATmega328或ATmega2560的AVR可以運行CircuitPython嗎?
否。
常用的首字母縮寫
CP或CPy = CircuitPython
CPC =游樂場經典版
CPX =游樂場特快版
安裝Mu編輯器
Mu是一個簡單的代碼編輯器,可與Adafruit CircuitPython板一起使用。它是用Python編寫的,可在Windows,MacOS,Linux和Raspberry Pi上運行。內置了串行控制臺,因此您可以立即從開發板的串行輸出中獲得反饋!
Mu是我們推薦的編輯器-請使用它(除非您已經是一位經驗豐富的編碼人員,并且擁有喜歡的編輯器!)
下載并安裝Mu
從https://codewith.mu下載Mu。單擊下載或從這里開始鏈接以獲取下載和安裝說明。該網站還有很多其他信息,包括廣泛的教程和操作方法。
使用Mu
首次啟動Mu時,系統會提示您選擇“模式”-您可以以后總是要改變主意。現在,請選擇 Adafruit !
當前模式顯示在窗口的右下角,在“齒輪”圖標旁邊。如果模式顯示“ Microbit”或其他名稱,請單擊該名稱,然后在出現的對話框中選擇“ Adafruit”。
Mu會嘗試自動檢測您的電路板,因此請插入CircuitPython設備并確保其顯示為 CIRCUITPY 驅動器,然后再啟動Mu
,現在就可以編寫代碼了!讓我們繼續吧。。..
安裝CircuitPython
在我們繼續開發CircuitPython和創建新版本時,我們將停止支持較舊的版本。如果您正在運行CircuitPython 2.x,則需要更新到3.x。通常,Adafruit將支持最后兩個主要版本。
一些與CircuitPython兼容的電路板已安裝CircuitPython。其他的支持CircuitPython的,但需要安裝它。同樣,您可能想更新板上已經安裝的CircuitPython的版本。安裝和更新步驟相同。這里我們將介紹如何在您的板上安裝或更新CircuitPython。
僅必須安裝CircuitPython ONCE,之后,您可以自由地編寫自己喜歡的代碼,而無需再次進行此過程,直到需要升級為止!
下載最新版本!
您要做的第一件事就是下載最新版本版本的CircuitPython。
如果您已經在運行CircuitPython,請確保您正在運行最新版本!如果不確定,可以按照以下步驟操作,以確保安裝了最新版本。
總是在安裝或更新電路之前備份您的代碼。在大多數情況下,在更新過程中不會從您的開發板上刪除任何內容,但是這種情況可能會發生。如果板上已經有代碼,請確保在執行以下步驟之前將其備份到計算機上。
CircuitPython代碼的兩個位置
在2019年4月之前,從Adafruit CircuitPython Github網站下載了代碼。從2019年4月開始,創建了新網站CircuitPython.org來托管CircuitPython。支持的板的定義在那里進行了更新,更容易找到。創建板定義文件并將其上傳到站點后,將添加來自Adafruit和其他各方的新板。
通過單擊下面的綠色按鈕前往CircuitPython.org下載適用于您板的最新軟件。
點擊此處從CircuitPython.org下載CircuitPython
目前,這些文件仍在Adafruit的CircuitPython GitHub存儲庫中仍然可用。這些文件將來可能會遷移到新的CircuitPython.org存儲庫。
單擊此處查看最新的CircuitPython版本
向下滾動到以下列表: CircuitPython文件,然后選擇適合您的電路板的文件。每個文件都包含與其兼容的板的名稱。為您的電路板下載文件。
接下來,您將要使用已知良好的USB數據線插入板子。確保USB電纜是數據電纜!有些僅適用于充電,可能會導致很多挫敗感。
Windows 7驅動程序
如果使用Windows 7,您需要在插入電路板之前安裝驅動程序。
如果您使用的是Windows 7,請使用下面的鏈接下載驅動程序包。您無需在Mac,Linux或Windows 10上安裝驅動程序。
下載Adafruit Windows 7驅動程序安裝程序
啟動UF2引導加載程序
幾乎所有CircuitPython板均隨附了名為UF2的引導加載程序( U SB F 鞭打版本 2 ),這使得安裝和更新CircuitPython變得快速而簡單。引導加載程序是您的電路板需要使用的模式,才能使您下載的CircuitPython .uf2 文件工作。如果您下載的與電路板名稱匹配的文件以 uf2 結尾,那么您想繼續此部分。但是,如果文件以 .bin 結尾,則必須執行更復雜的安裝-請轉到此頁面以了解如何執行此操作。
在板上找到重置按鈕。 。這是一個小的黑色按鈕,在大多數板上,它將是唯一可用的按鈕。 (在Circuit Playground Express上,它是位于面板中央的較小按鈕。)
點擊兩次此按鈕進入引導程序。如果第一次嘗試不起作用,請不要氣disc。拍子的節奏需要正確,有時需要幾次嘗試。如果您有Circuit Playground Express,并且剛從背包中拿出來,請嘗試按一下按鈕。
成功后,板上的RGB LED將閃爍紅色,然后保持綠色。新的驅動器將顯示在您的計算機上。該驅動器將稱為boardnameBOOT,其中 boardname 是對特定板的引用。例如,一根羽毛將具有FEATHERBOOT,小飾品將具有TRINKETBOOT等。向前,我們將其稱為引導驅動器BOOT
該板現在處于引導加載程序模式!這就是我們安裝或更新CircuitPython所需要的。
現在找到您下載的文件。將該文件拖到計算機上的BOOT驅動器上。
指示燈應再次閃爍,BOOT將消失,計算機上將出現一個 new 驅動器,稱為CIRCUITPY。
恭喜!您已成功安裝或更新CircuitPython!
CIRCUITPY和boardnameBOOT有什么區別?
將CircuitPython開發板插入計算機時,計算機會將開發板的閃存視為USB閃存驅動器,可以在其中存儲文件被存儲。成功安裝CircuitPython后,您將看到CIRCUITPY驅動器。雙擊重置按鈕時,您會看到boardnameBOOT驅動器。您可以將文件拖到兩個文件,但是只有CIRCUITPY才能運行CircuitPython代碼。
通常,將文件拖到已安裝的USB驅動器時,該文件將復制到該驅動器中,然后能夠在文件瀏覽器中顯示。但是,將CircuitPython UF2文件拖到boardnameBOOT驅動器時,它似乎消失了,并且驅動器斷開了連接。這個是正常的! UF2本質上是一個安裝程序文件,并且不僅位于驅動器上,而且如果該板處于引導加載程序模式(即boardnameBOOT)也可以安裝CircuitPython。
您將能夠復制其他文件文件加載到引導加載程序驅動器(boardnameBOOT),但它們將無法運行或無法被CircuitPython訪問。因此,請確保在完成CircuitPython的安裝后,將其拖到CIRCUITPY驅動器上并在其中編輯文件!
Bootloader驅動器名稱
此列表并不詳盡,但是應該讓您知道在Bootloader驅動器名稱中要查找的內容。
小飾品M0 = TRINKETBOOT
寶石M0 = GEMMABOOT
電路游樂場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驅動器
當CircuitPython完成安裝,或者將CircuitPython板插入已安裝CircuitPython的計算機時,該板將作為USB驅動器顯示在計算機上 CIRCUITPY 。
CIRCUITPY 驅動器是您的代碼以及必需的庫和文件所在的位置。您可以直接在此驅動器上編輯代碼,保存時它將自動運行。創建和編輯代碼時,會將代碼保存在 CIRCUITPY 驅動器上的code.py文件中。如果要與“學習”指南一起關注,則可以粘貼內容教程示例中的內容放入 CIRCUITPY 驅動器上的code.py中并保存以運行示例。
CircuitPython查找code.py并運行其中的內容當板子啟動,重新加載或保存對文件的更改時,文件會自動生成。這就是讓您輕松開始項目并更新代碼的原因!
設備
有許多與CircuitPython一起使用的板。您可能會發現自己處于同時使用多個板的情況。當您將多塊板插入計算機時會發生什么?您有多個 CIRCUITPY 驅動器!您怎么知道是哪一個?您可以重命名每個 CIRCUITPY 驅動器以避免混淆。
重命名CIRCUITPY
重命名 CIRCUITPY 時,它將名稱寫入文件系統。這意味著更改名稱將通過斷開電路板連接以及重新加載CircuitPython來持續!
名稱必須小于等于11個字符!這是文件系統的限制。如果您選擇的名稱超過11個字符,則會收到錯誤消息。
在Mac上重命名CIRCUITPY
在Mac上重命名 CIRCUITPY 驅動器很簡單。在Finder中單擊驅動器,以便查看內容。然后,右鍵單擊Finder中的驅動器,然后選擇“重命名”。
單擊“重命名”后,在右鍵菜單中,驅動器名稱將顯示在一個文本框中,您可以在其中重命名驅動器。鍵入新名稱。
在Windows上重命名CIRCUITPY
在Windows上重命名 CIRCUITPY 驅動器很容易。打開文件資源管理器,找到 CIRCUITPY 驅動器。右鍵單擊它,然后單擊“重命名”。
在Windows上重命名 CIRCUITPY 驅動器很容易。打開文件資源管理器,找到 CIRCUITPY 驅動器。右鍵單擊它,然后單擊“重命名”。
還可以通過“屬性”菜單重命名驅動器,該菜單可以通過Windows File Explorer以幾種不同的方式打開,包括右鍵單擊 CIRCUITPY 驅動器,然后選擇“屬性”。
在Linux上重命名CIRCUITPY
在Linux上重命名 CIRCUITPY 需要幾個步驟。您需要確定安裝點,然后運行命令以重命名驅動器。
打開終端程序。運行以下命令找出您的電路板的安裝位置:
下載:文件
復制代碼
df | grep CIRCUITPY df | grep CIRCUITPY
您將在結果行的右端看到CIRCUITPY。該行左端的dev/foo(其中foo是安裝點的名稱)是安裝點。
接下來,您可以運行以下命令卸下電路板,將foo替換為您的特定掛載點。
下載:文件
復制代碼
sudo umount /dev/foo sudo umount /dev/foo
要重命名木板,請運行以下命令:
下載:文件
復制代碼
sudo fatlabel /dev/foo NEW_NAME sudo fatlabel /dev/foo NEW_NAME
然后彈出板,拔下電源插頭,然后重新插入,以強制使用新名稱重新安裝。
要檢查其是否工作,請在以下位置查找驅動器您的文件管理器。或者,您可以運行以下命令:
下載:文件
復制代碼
df | grep NEW_NAME df | grep NEW_NAME
通過CircuitPython重命名CIRCUITPY
您還可以使用CircuitPython重命名板。在您的 CIRCUITPY 驅動器上創建一個名為boot.py的新文件。將以下代碼復制到新的boot.py文件中:
下載:文件
復制代碼
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)
彈出板,然后按一次“重置”按鈕或拔下板來重新啟動板并重新插入。片刻之后,它應該會以您選擇的NEW_NAME出現在文件瀏覽器中!您可以在文件瀏覽器中顯示新命名的板后刪除boot.py。
還原為CIRCUITPY
您可以按照上述相同的過程將驅動器重命名為 CIRCUITPY 。
您還將通過擦除文件系統恢復為 CIRCUITPY 。如果您需要擦除CircuitPython板上的文件系統,則驅動器名稱將在完成后恢復為 CIRCUITPY 。
創建和編輯代碼
CircuitPython最好的事情之一就是使代碼的啟動和運行變得如此簡單。在本節中,我們將介紹如何創建和編輯第一個CircuitPython程序。
要創建和編輯代碼,只需要一個編輯器即可。有很多選擇。 我們強烈建議您使用Mu!它是為CircuitPython設計的,并且非常簡單易用,帶有內置的串行控制臺!
如果您不使用Mu,則可以使用基本的文本編輯器進入每個操作系統,例如Windows上的記事本,Mac上的TextEdit和Linux上的gedit。但是,許多這些編輯器不會立即將更改寫回到您編輯的文件中。使用CircuitPython時可能會導致問題。請參閱下面的“編輯代碼”部分。如果您現在想跳過該部分,請確保在不使用Mu的情況下在寫入文件后在Windows上執行“彈出”或“安全刪除”,或者在Linux上執行“同步”。 (在MacOS上這不是問題。)
創建代碼
打開編輯器,然后創建一個新文件。如果您使用的是Mu,請單擊左上角的 New 按鈕
復制并粘貼將以下代碼添加到編輯器中:
下載:文件
復制代碼
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)
看起來像這樣-請注意,在while True:行下,接下來的四行有空格以使其縮進,但是它們的縮進量完全相同。其他所有行在文本之前都沒有空格。
將此文件另存為CIRCUITPY上的 code.py
。在每個板上,您都會發現一個紅色的小LED。現在它應該閃爍。每秒一次
恭喜,您已經運行了第一個CircuitPython程序!
編輯代碼
要編輯代碼,請打開CIRCUITPY驅動器上的 code.py 文件進入編輯器。
對代碼進行所需的更改。保存文件。就是這樣!
文件保存完成后,您的代碼更改將立即運行。
在繼續之前,我們只有一個警告……
Don單擊重置或拔出!
板上的CircuitPython代碼將檢測何時更改或寫入文件,并會自動重新啟動代碼。
但是,這樣做可以使編碼變得非常快。
但是,您必須 等到文件保存完成后才能拔出或重置主板! 在使用某些編輯器的Windows上,有時可能會花費 90秒,在Linux上,則可能需要30秒來完成,因為文本編輯器不會保存完全歸檔。 Mac OS似乎沒有此延遲,這很好!
要意識到這一點非常重要。如果在計算機完成將文件寫入板之前拔出板或重置板,則可能損壞驅動器。如果發生這種情況,您可能會丟失編寫的代碼,因此定期將代碼備份到計算機上很重要。
有幾種方法可以避免這種情況:
1。保存時,請使用可以完全寫出文件的編輯器。
推薦的編輯器:
mu 是可以安全地寫入所有更改的編輯器(它也是我們推薦的編輯器!)
emacs 還是一個可以在保存時完全寫入文件的編輯器
Sublime Text 安全地寫入所有更改
Visual Studio代碼似乎可以安全地寫入所有更改
gedit 在Linux上似乎可以安全地寫入所有更改
推薦僅具有特定設置或附加組件:
vim / vi 安全地寫入所有更改。但是將 vim 設置為不將交換文件(.swp文件:您的編輯的臨時記錄)寫入CIRCUITPY。使用vim -n運行vim,設置no swapfile選項,或設置directory選項以在其他位置寫入交換文件。否則,交換文件writestrigger會重新啟動程序。
如果在“設置”-》“系統設置”-》“同步”中啟用了“安全寫入”,則 PyCharm IDE 是安全的(默認情況下為true) 。
如果您使用的是 Atom ,請安裝保存時fsync軟件包,以便它始終將對CIRCUITPY上文件的所有更改寫出。
SlickEdit 僅在您添加了宏來刷新磁盤時有效。
我們不推薦這些編輯器:
記事本(默認的Windows編輯器)和N otepad ++ 可能寫起來很慢,因此我們建議使用上面的編輯器!如果您使用的是記事本,請確保彈出驅動器(見下文)
IDLE 不會立即強制更改
nano (在Linux上)不會強制更改
geany (在Linux上)不會強制更改
其他任何操作-我們尚未測試其他編輯器,因此請使用推薦的編輯器!
2。寫入后彈出或同步驅動器
如果您使用的是我們不推薦的編輯器之一,則不會丟失所有信息!您仍然可以使其工作。
在Windows上,您可以彈出或安全刪除 CIRCUITPY驅動器。它實際上不會彈出,但是會強制操作系統將文件保存到磁盤。在Linux上,在終端中使用 sync 命令來強制寫入磁盤。
哦,我沒有做錯什么,現在CIRCUITPY驅動器沒有顯示!!!
別擔心!損壞驅動器并不是世界末日(或您的董事會!)。如果發生這種情況,請按照每塊主板指南的“故障排除”頁面上的步驟操作,以重新啟動您的主板。
返回編輯代碼。..
現在!讓我們嘗試編輯添加到板上的程序。在編輯器中打開 code.py 文件。我們將進行簡單的更改。將第一個0.5更改為0.1。代碼應如下所示:
下載:文件
復制代碼
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)
其余代碼保持原樣。保存文件。看看板上的LED會怎樣?事情變了!你知道為什么嗎?讓我們找出答案吧!
探索您的第一個CircuitPython程序
首先,我們來看一下正在編輯的代碼。
這又是原始代碼:
下載:文件
復制代碼
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)
導入和庫
您運行的每個CircuitPython程序都需要掌握很多信息。 CircuitPython使用起來如此簡單的原因是,大多數信息都存儲在其他文件中并在后臺運行。這些文件稱為庫。其中一些內置在CircuitPython中。其他文件則存儲在您的CIRCUITPY驅動器上的 lib 文件夾中。
下載:文件
復制代碼
import board
import digitalio
import time import board
import digitalio
import time
import語句告訴董事會您重新使用代碼中的特定庫。在此示例中,我們導入了三個庫:board,digitalio和time。所有這三個庫都內置在CircuitPython中,因此不需要單獨的文件。這就是使它成為出色的第一個例子的原因之一。您不需要任何額外的東西即可使其正常工作! board使您可以訪問板上的硬件,digitalio可以使您訪問該硬件作為輸入/輸出,而time您通過“睡眠”來打發時間
向上發光二極管
接下來的兩行代碼設置使用發光二極管的代碼。
下載:文件
復制代碼
led = digitalio.DigitalInOut(board.D13)
led.direction = digitalio.Direction.OUTPUT led = digitalio.DigitalInOut(board.D13)
led.direction = digitalio.Direction.OUTPUT
您的主板將紅色LED表示為D13。因此,我們初始化該引腳,并將其設置為輸出。我們將led設置為等于該信息的其余部分,因此我們以后不必在代碼中再次輸入所有信息。
循環去循環
第三部分以while語句開頭。 while True:本質上表示“永遠執行以下操作:”。 while True:創建一個循環。代碼將在條件為“ true”(相對于false)時“ while”循環,并且由于True永遠都不為False,因此代碼將永遠循環。在while True:下縮進的所有代碼都在循環“內部”。
在循環內部,我們有四個項目:
下載:文件
復制代碼
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)
首先,我們有led.value = True。這條線告訴LED點亮。在下一行,我們有time.sleep(0.5)。此行告訴CircuitPython將運行代碼暫停0.5秒。由于這是在打開和關閉LED之間進行的操作,因此LED將持續0.5秒。
接下來的兩行類似。 led.value = False告訴LED熄滅,time.sleep(0.5)告訴CircuitPython再暫停0.5秒。
然后在再次關閉LED并重新打開LED的同時發生這種情況。
然后,循環將再次開始,只要代碼正在運行,循環就會繼續!
p》
因此,當您將第一個0.5更改為0.1時,可以減少代碼使LED點亮的時間。因此,它會在關閉之前快速閃爍!
辛苦了!您已經在CircuitPython程序中編輯了代碼!
如果我沒有循環怎么辦?
如果沒有循環,代碼將運行到最后并退出。在這樣的簡單程序中,這可能導致某些意想不到的行為,因為“退出”還會重置硬件狀態。這與通過REPL運行命令不同。因此,如果您正在編寫似乎無法正常運行的簡單程序,則可能需要在最后添加一個循環,以使該程序不會退出。
最簡單的循環是:
while True:
pass
記住,您可以按 退出循環。
另請參閱文檔中的“行為”部分。
更多更改
我們不必在此止步!我們繼續吧。將第二個0.5更改為0.1,使其如下所示:
下載:文件
復制代碼
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)
現在,它閃爍的很快!您減少了代碼打開和關閉LED的時間!
現在嘗試將兩個0.1都增加到1。您的LED指示燈閃爍的速度會慢得多,因為您增加了打開和關閉LED指示燈的時間。
做得好!你做得很好!您已經準備好開始新的示例并對其進行編輯以查看會發生什么!這些是簡單的更改,但是主要更改是使用相同的過程完成的。進行所需的更改,保存并獲取結果。
命名程序文件
CircuitPython在板上尋找要運行的代碼文件。有四個選項: code.txt , code.py , main.txt 和 main.py 。 CircuitPython按該順序查找那些文件,然后運行找到的第一個文件。雖然我們建議使用 code.py 作為代碼文件,但重要的是要知道其他選項的存在。如果您的程序在工作時似乎沒有更新,請確保沒有創建另一個正在讀取的代碼文件,而不是正在處理的代碼文件。
連接到串行控制臺
CircuitPython的主要功能之一(通常是編程!)被稱為“打印語句”。這是您包含在代碼中的一行,使您的代碼輸出文本。 CircuitPython中的打印語句如下:
print(“Hello, world!”)
此行將導致:
Hello, world!
但是,這些打印語句需要在某個地方顯示。串行控制臺就在這里!
串行控制臺接收從CircuitPython板通過USB發送的輸出并顯示它,以便您查看。當您在代碼中包含了一條打印語句并且想要查看打印的內容時,這是必需的。這對于解決錯誤也很有用,因為您的電路板會發送錯誤,而串行控制臺也會打印錯誤。
串行控制臺需要終端程序。終端是一個程序,為您提供一個基于文本的界面來執行各種任務。
如果您使用的是Linux,并且在連接到串行控制臺時遇到數秒的延遲,或者在連接時看到“ AT”和其他亂碼,則說明Modemmanager服務可能會干擾。只需將其刪除;除非您仍在使用撥號調制解調器,否則它用處不大。要刪除,請在外殼上鍵入以下命令:
下載:file
復制代碼
sudo apt purge modemmanager sudo apt purge modemmanager
您在使用Mu嗎?
如果是,這是個好消息!串行控制臺內置在Mu 中,并且會自動檢測您的電路板,使用REPL 真的非常簡單。
請注意Mu尚未與基于nRF52或ESP8266的CircuitPython板一起使用時,請跳至下一部分,以了解有關使用終端程序的詳細信息。
首先,確保已插入CircuitPython電路板。如果使用Windows 7,請確保已安裝
在Mu中,在菜單中查找 Serial 按鈕,然后單擊
在Linux上
設置權限
在Linux上,如果看到錯誤當您按下 Serial (串行)按鈕,您需要將自己添加到用戶組中才能具有連接到串行控制臺的權限。
在Ubuntu和Debian上,通過執行以下操作將自己添加到 dialout 組中:
sudo adduser $USER dialout
運行上述命令后,重新啟動計算機即可訪問該組。在其他Linux發行版上,您需要的組可能不同。有關如何將您自己添加到正確的組的詳細信息,請參見Mac和Linux上的高級串行控制臺。
使用其他功能嗎?
如果您不使用Mu進行編輯,則使用ESP8266或nRF52 CircuitPython,或者由于某些原因您不喜歡該功能內置的串行控制臺,您可以將串行控制臺作為單獨的程序運行。
Windows要求您下載終端程序,請查看此頁面以獲取更多詳細信息
Mac和Linux都內置了一個,盡管可以下載其他選項,請查看此頁面以獲取更多詳細信息
與串行控制臺交互
成功連接到串行控制臺后,就該開始使用它了。
您編寫的代碼較早版本沒有輸出到串行控制臺。因此,我們將對其進行編輯以創建一些輸出。
在編輯器中打開您的code.py文件,并包含一個print語句。您可以打印任何喜歡的東西!只需將您的詞組放在括號內的引號之間即可。例如:
下載:文件
復制代碼
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)
保存文件。
現在,讓我們看一下與串行控制臺連接的窗口。
優秀!我們的控制臺上會顯示我們的打印聲明!嘗試將打印的文本更改為其他內容。
將串行控制臺窗口保留在可以看到的位置。保存文件。您將看到板重啟時串行控制臺顯示的內容。然后,您將看到新的更改!
Traceback (most recent call last):告訴您董事會在保存文件之前所做的最后一件事。這是正常現象,每次主板復位時都會發生。這對于故障排除非常方便。讓我們介紹一個錯誤,以便我們可以看到它的用法。
從e行的True末尾刪除led.value = True,使其顯示為led.value = Tru
保存文件。您會注意到您的紅色LED指示燈將停止閃爍,并且可能有彩色的狀態LED指示燈向您閃爍。這是因為代碼不再正確,也無法正常運行。我們需要修復它!
通常,當您遇到錯誤時,這并不是因為您故意引入它們。您可能有200行代碼,并且不知道錯誤可能隱藏在哪里。這是串行控制臺可以提供幫助的地方。讓我們看一下!
Traceback (most recent call last):告訴您它能夠運行的最后一件事是代碼中的第10行。下一行是您的錯誤:NameError: name ‘Tru’ is not defined。該錯誤可能對您沒有多大影響,但是結合知道問題出在第10行之后,它為您提供了一個絕佳的起點!
返回您的代碼,然后看一下第10行顯然,您已經知道問題所在了。但是,如果您沒有這樣做,則希望查看第10行,看看是否可以解決。如果仍然不確定,請嘗試使用該錯誤來獲取幫助。在這種情況下,您知道要查找什么。您拼寫錯了。修正錯字并保存文件。
解決錯誤的好工作!您的串行控制臺正在流式傳輸,并且紅色LED再次閃爍。
串行控制臺將顯示您的代碼生成的所有輸出。某些傳感器(例如濕度傳感器或熱敏電阻)會接收數據,您可以使用打印語句來顯示該信息。您也可以使用打印語句進行故障排除。如果您的代碼無法正常工作,并且想知道失敗的地方,則可以將打印語句放在各個位置,以查看停止打印的地方。
串行控制臺有很多用途,這是一個了不起的成就用于學習和編程的整體工具!
REPL
串行連接的另一個功能是 R ead- E valuate - P rint- L oop或REPL。 REPL允許您輸入單獨的代碼行并使它們立即運行。如果您遇到某個特定程序的麻煩而又不知道原因,那將非常方便。它是交互式的,因此非常適合測試新想法。
要使用REPL,您首先需要連接到串行控制臺。建立連接后,您需要按 Ctrl + C 。
如果正在運行代碼,它將停止并且您會看到Press any key to enter the REPL. Use CTRL-D to reload.請按照這些說明操作,然后按鍵盤上的任意鍵。
Traceback (most recent call last):告訴您在按Ctrl + C并中斷之前,董事會正在做的最后一件事。 KeyboardInterrupt是按Ctrl + C組合鍵。此信息在進行故障排除時會很方便,但是現在不用擔心。只需注意這是預期的行為。
如果沒有代碼在運行,則按Ctrl + C后將立即輸入REPL。由于沒有代碼在運行,因此在中斷之前您的電路板沒有任何信息。
不管哪種方式,一旦您按下一個鍵,您都會看到一個》》》提示符,歡迎您使用REPL!
如果無法進入》》》提示符,請嘗試再按Ctrl + C幾次。
從REPL獲得的第一件事就是有關您的木板的信息。
此行告訴您正在使用的CircuitPython的版本以及發布的時間。接下來,它為您提供了所使用的板的類型以及該板使用的微控制器的類型。視您使用的版本而定,每個部分對于您的電路板可能會有所不同。
其后是CircuitPython提示符。
在此提示符下,您可以運行各種命令和代碼。我們要做的第一件事是運行help()。這將告訴我們從哪里開始探索REPL。要在REPL中運行代碼,請在REPL提示符旁邊鍵入它。
在REPL中的提示符旁邊鍵入help()。
然后按Enter。然后,您應該會看到一條消息。
消息的第一部分是對您正在使用的CircuitPython版本的另一個引用。其次,是CircuitPython相關項目指南的URL。那。..等等這是什么? To list built-in modules, please do `help(“modules”)`。還記得您在創建代碼時學到的庫嗎?這就是這里所說的!這是一個理想的起點。讓我們看一下!
在提示旁邊的REPL中鍵入help(“modules”),然后按Enter。
這是CircuitPython內置的所有核心庫的列表。我們討論了電路板如何包含您可以在代碼中使用的電路板上的所有引腳。在REPL中,您可以看到該列表!
在REPL中鍵入import board,然后按Enter。它將轉到新的提示。看起來好像什么都沒發生,但事實并非如此!如果您還記得的話,import語句只是告訴代碼期望對該模塊執行某些操作。在這種情況下,它告訴REPL您打算對該模塊進行操作。
下一步,在REPL中鍵入dir(board)并按Enter。
這是主板上所有可用引腳的列表供您在代碼中使用。每個板的列表將根據可用的引腳數而略有不同。您看到D13嗎?這就是您用來使紅色LED閃爍的引腳!
REPL也可以用于運行代碼。請注意,您輸入到REPL中的任何代碼都不會保存。如果要測試要保留的新內容,請確保也將其保存在計算機上!
每種編程語言中的每個程序員都以一段代碼開頭, “你好,世界。”我們要和別的東西打招呼。鍵入REPL:
print(“Hello, CircuitPython!”)
然后按Enter。
這就是在REPL中運行代碼的全部!干得好!
您可以編寫單行運行的代碼。您也可以將整個程序寫入REPL以對其進行測試。正如我們所說,請記住,鍵入REPL不會保存任何內容。
REPL可以為您做很多事情。如果您想看看是否有幾行新的代碼行得通,這對于測試新想法非常有用。通過一次輸入一行代碼并找出失敗的地方來對代碼進行故障排除,這非常了不起。它可以讓您查看可用的庫并瀏覽這些庫。
嘗試在REPL中輸入更多內容以查看會發生什么!
返回串行控制臺
當您準備離開REPL并返回串行控制臺時,只需按 Ctrl + D 。這將重新加載您的電路板并重新進入串行控制臺。在輸入REPL之前,您將重新啟動已運行的程序。在控制臺窗口中,您將看到正在運行的程序的任何輸出。而且,如果您的程序影響了板上的任何視覺效果,您也會看到它再次啟動。
您可以隨時返回REPL!
CircuitPython硬件
現在是時候根據您所學的知識做點大事了!每塊CircuitPython板都非常適合項目。但是,每個人在不同領域都表現出色。我們將為您提供有關每塊板的一些詳細信息,并突出顯示使用每塊板的學習指南。您可以嘗試這些方法或為自己的項目獲取想法!
小飾品M0
Adafruit Trinket M0是我們隨身攜帶的最小的CircuitPython開發板。但是,不要讓那個愚弄你!這是一塊功能強大的小板。我們希望設計一種微控制器板,該板足夠小以適合任何項目,并且成本低廉,可以毫不猶豫地使用。計劃測試概念驗證并需要CircuitPython開發板投入使用?還沒準備好拆卸您辛苦設計的項目以提取上次使用的電路板嗎?小飾品M0已覆蓋。它是目前可用的最低價的CircuitPython開發板,但可以輕松地與更大的開發板保持一致!
Trinket M0隨CircuitPython一起提供,并且板上已包含演示代碼。您可以打開和編輯CIRCUITPY驅動器上找到的main.py文件以開始使用,也可以創建自己的文件! Trinket M0指南為您提供了有關板子需要了解的所有信息。請查看CircuitPython部分,以找到大量示例示例。
您可以使用Trinket M0來制作Chilled Drinkibot,該設備使用Trinket來控制飲料的熱電冷卻。或構建一個怪異的萬圣節項目,將您的糖果桶變成尖叫的大鍋!
Gemma M0
Adafruit Gemma M0是一個很小的CircuitPython板,具有足夠的內置功能來構建許多簡單的項目。它被設計用于您的可穿戴項目,外部有大孔用于縫制(而且它們對鱷魚夾也很友好!)。 Gemma M0將為您的可穿戴設備充電,并且比以往更易于使用。電路板上內置電容觸摸板,一個開-關開關和一個RGB DotStar LED,因此您無需添加任何東西就可以做很多事情。添加導電線和LED,您將立即擁有眨眼的可穿戴設備!
像Trinket一樣,Gemma M0隨CircuitPython一起提供,并且板上已經有演示代碼。您可以打開和編輯CIRCUITPY驅動器上的main.py文件,也可以創建自己的文件! Gemma M0指南向您顯示了有關板子的所有信息,并提供了很多CircuitPython示例供您試用。
使用Gemma M0創建一對帶有NeoPixel環上有趣光圖案的Clockwork護目鏡。或搭配此3D打印的Sheikah吊墜為您的下一個服裝添加一點光!
Circuit Playground Express
Adafruit Circuit Playground Express是邁向完美介紹電子學和編程的下一步。它擠滿了傳感器,LED,按鈕和開關,而且上手起來超級容易!該板超級通用。無論您是電子和編程的新手,還是經驗豐富的老手,Circuit Playground Express都是一款很棒的主板。電路板內置了如此多的元件,您無需購買任何其他零件,即可了解不同類型的電子產品的工作原理并對其進行編程。您所需要的只是USB電纜和開發板!但是,這僅僅是開始。電路板外部的許多焊盤都有多種功能,可讓您將其他東西連接到電路板上。例如,您可以連接伺服或電位器。可能性無窮無盡!
Circuit Playground Express指南包含有關棋盤所有出色功能的大量信息。該指南的CircuitPython部分提供了使用CircuitPython和開發板的內置功能的大量示例列表。還有一個叫做Python Playground的小節,有更多的演示和一個Drum Machine項目供您試用。
您可以使用Lime Key上的觸摸板將Circuit Playground Express變成電容式按鍵音鋼琴。董事會。使用內置的加速度計,可以在您的木板上制作帶有燈光和外來聲音的UFO飛碟,以及房屋周圍或3D打印飛碟上的一些額外物品!
羽毛M0 Express
Adafruit Feather M0 Express是第一個專門為CircuitPython設計的Feather。它是Adafruit Feather開發板產品線的一部分,該開發板可獨立工作或堆疊工作,并由USB或鋰離子電池供電,因此可用于固定項目和移動項目。 Feather M0 Express帶有兩個用于無焊面包板的接頭,或者您可以將電線直接焊接到板上的引腳上。這允許您在處理項目時進行原型制作,并在準備就緒時進行永久安裝。 Feather M0 Express令人驚嘆的一件事是大量的板塊,稱為Featherwings,其設計恰好適合Feather。
羽毛M0 Express出廠時已安裝CircuitPython,并已安裝UF2引導程序,并準備在您收到電路板時安裝CircuitPython。創建您的第一個程序,將其保存到板上,然后就可以使用! Feather M0 Express指南包含有關您的開發板的所有詳細信息,并提供了一個CircuitPython部分以幫助您入門。
Feather M0 Express可用于為各種項目提供動力。使用3D打印的零件和DotStar條帶構建CircuitPython Painter POV LED魔杖。用NeoPixels創建一個刻有邊緣照明的LED丙烯酸標牌。 Featherwings提供了一些指南,這些指南解釋了如何將它們與CircuitPython一起使用,例如OLED Display和Adalogger Featherwing。
Metro M0 Express
Metro M0 Express是第一款設計用于CircuitPython的Metro板。這不是初學者委員會。如果您只是入門,我們建議您使用以前的主板之一。它具有與Feather M0 Express相同的許多功能,以及一些特定于開發的功能(例如內置的SWD端口!)。 Metro M0 Express旨在與Arduino尺寸一起使用,因此,如果您已經有了Arduino擴展板,那么該板將非常適合您。已經有一些屏蔽的CircuitPython庫。它有25個GPIO引腳(是所有這些主板中的大多數!),因此如果您正在尋找很多選擇,那就非常好。
Metro M0 Express出廠時已安裝CircuitPython且已安裝UF2引導程序,并且準備好在您收到電路板時安裝CircuitPython。創建您的第一個程序,將其保存到開發板中,一切順利! Metro M0 Express指南為您提供了有關板卡的所有詳細信息,并且CircuitPython部分可幫助您入門。
所有帶有CircuitPython庫的傳感器和分線板將與運行CircuitPython的Metro M0 Express一起使用。找到適合您的傳感器的指南,然后按照指南查找如何進行接線。有很多選項。
下一步是什么?
現在,您準備跳入更多的學習指南,或者開始一個全新的項目。干得好,祝你好運!
CircuitPython庫
在我們繼續開發CircuitPython并創建新版本時,我們將停止支持較舊的版本。訪問https://circuitpython.org/downloads為您的電路板下載最新版本的CircuitPython。您必須下載與您的CircuitPython版本匹配的CircuitPython庫捆綁包。請更新CircuitPython,然后訪問https://circuitpython.org/libraries下載最新的庫包。
您運行的每個CircuitPython程序都需要很多工作的信息。 CircuitPython使用起來如此簡單的原因是,大多數信息都存儲在其他文件中并在后臺運行。這些文件稱為庫。其中一些內置在CircuitPython中。其他的則存儲在您的 CIRCUITPY 驅動器上的一個名為 lib 的文件夾中。使CircuitPython如此出色的部分原因在于它能夠獨立于固件本身存儲代碼。將代碼與固件分開存儲,可以更輕松地更新您編寫的代碼和所依賴的庫。
您的開發板可能已經附帶了一個 lib 文件夾,該文件夾位于基礎中驅動器的目錄。如果沒有,只需自己創建文件夾。首次安裝CircuitPython時,將為您創建一個空的 lib 目錄。
CircuitPython庫的工作方式與常規Python模塊相同,因此Python文檔為它們的工作方式提供了很好的參考。用Python術語,我們可以將庫文件放置在 lib 目錄中,因為默認情況下它是Python路徑的一部分。
這種單獨的庫方法的缺點是它們是而不是內置的。要使用它們,必須先將它們復制到 CIRCUITPY 驅動器,然后才能使用它們。幸運的是,我們提供了一個完整的庫捆綁包。
我們的捆綁包和發行版還具有庫擴展名,帶有 .mpy 。這些文件在驅動器上占用的空間更少,并且在加載時具有較小的內存占用。
安裝CircuitPython庫捆綁包
我們正在不斷更新和改進我們的庫,因此(目前)我們不這樣做隨我們的CircuitPython板一起提供完整的庫包。相反,您可以在電路板指南中找到依賴外部庫的示例代碼。這些庫中的某些庫可以從Adafruit處獲得,有些庫庫由社區成員編寫!
無論哪種方式,當您開始探索CircuitPython時,您都想知道如何在庫中使用庫。
您可以通過單擊下面的按鈕來獲取最新版本的Adafruit CircuitPython捆綁包。
注意:將捆綁包版本與您所使用的CircuitPython版本進行匹配正在運行-用于運行任何版本的CircuitPython 3的3.x庫,用于運行任何版本的CircuitPython 4的4.x庫,等等。如果將庫與主要CircuitPython版本混合使用,則由于在運行期間庫接口可能發生變化,很可能會出錯主要版本更改。
單擊以獲取最新的Adafruit CircuitPython庫捆綁軟件版本
如果需要其他版本,還可以訪問捆綁軟件發行頁面,該頁面將可以讓您確切選擇要查找的版本以及有關更改的信息。
無論哪種方式,下載與CircuitPython固件版本匹配的版本。如果您不知道該版本,請查看CircuitPython REPL中的初始提示,其中會報告該版本。例如,如果您正在運行v4.0.1,請下載4.x庫捆綁包。還有一個 py 軟件包,其中包含未壓縮的python文件,除非您在庫上進行高級工作,否則您可能不想要。
下載zip后,解壓縮其內容。這通常是通過雙擊拉鏈來完成的。在Mac OSX上,它將文件放在與zip相同的目錄中。
打開包文件夾。在內部,您將找到兩個信息文件和兩個文件夾。一個文件夾是lib捆綁包,另一個文件夾是示例捆綁包。
現在打開lib文件夾。當您打開文件夾時,您會看到大量的 mpy 文件和文件夾
示例文件
每個庫中的所有示例文件現在都包含在捆綁軟件以及僅示例捆綁軟件中。包含這些內容主要有兩個原因:
允許快速測試設備。
提供示例代碼庫,可以輕松地將其用于個性化目的。
將庫復制到板上
首先,您要創建 CIRCUITPY 驅動器上的 lib 文件夾。打開驅動器,右鍵單擊,選擇創建新文件夾的選項,并將其命名為 lib 。然后,打開從下載的zip提取的 lib 文件夾。在內部,您會找到許多文件夾和 .mpy 文件。找到您要使用的庫,然后將其復制到 CIRCUITPY 上的lib文件夾中。
這也適用于示例文件。它們僅作為原始的 .py 文件提供,因此如果遇到以下問題,可能需要使用 mpy-cross 實用程序將它們轉換為 .mpy 。 MemoryErrors。 《 CircuitPython Essentials指南》中對此進行了討論。用法與上文“快速公告板”部分中所述的用法相同。注意:如果不將示例放在單獨的文件夾中,則應從import語句中刪除示例。
示例:ImportError由于缺少庫
如果選擇加載庫根據需要,您可以編寫代碼嘗試使用尚未加載的庫。我們將演示當您嘗試利用板上未加載的庫時發生的情況,并介紹解決此問題所需的步驟。
此演示只會返回錯誤如果您沒有將所需的庫加載到 CIRCUITPY 驅動器上的 lib 文件夾中。
讓我們使用修改后的版本示例。
下載:文件
復制代碼
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)
保存此文件。董事會沒有任何反應。讓我們檢查串行控制臺以查看發生了什么。
我們有一個ImportError。它說有no module named ‘simpleio’。那就是我們剛剛包含在我們代碼中的代碼!
單擊上面的鏈接下載正確的捆綁包。從下載的捆綁文件中提取lib文件夾。向下滾動以找到 simpleio.mpy 。這是我們要查找的庫文件!請按照上述步驟加載單個庫文件。
LED再次開始閃爍!讓我們檢查串行控制臺。
沒有錯誤!優秀。您已經成功解決了ImportError!
如果以后再遇到此錯誤,請按照上述步驟操作,然后選擇與您所缺少的庫匹配的庫。
非Express板上的庫安裝
如果您有Trinket M0或Gemma M0,則需要按照上面示例中的相同步驟安裝所需的庫。您不必總是等待ImportError,因為您可能知道您在代碼中添加了哪個庫。只需打開下載的 lib 文件夾,找到所需的庫,然后將其拖到 CIRCUITPY 驅動器上的 lib 文件夾中即可。
即使僅根據需要加載庫,也可能最終在Trinket M0或Gemma M0上空間不足。您可以使用許多步驟來嘗試解決此問題。您可以在學習板指南的“疑難解答”頁面中找到它們。
更新CircuitPython庫/示例
庫和示例會不時更新,因此,重要的是更新 CIRCUITPY 驅動器。
要更新單個庫或示例,請遵循上述相同步驟。將庫文件拖到lib文件夾時,它將詢問您是否要替換它。說是就是這樣!
每次對庫進行更新時,都會發布一個新的庫捆綁包。更新內容包括錯誤修復和新功能。經常檢查一次很重要,以查看您使用的庫是否已更新。
歡迎來到社區!
CircuitPython是一種編程語言,入門非常簡單,非常適合學習。它可以在微控制器上運行,并且可以直接使用。您可以將其插入并開始使用任何文本編輯器。最好的部分? CircuitPython帶有一個很棒的支持社區。
每個人都歡迎! CircuitPython是開源的。這意味著任何人都可以使用,編輯,復制和改進它。這也意味著CircuitPython變得更好,因為您參與其中。不管這是您的第一個微控制器板還是計算機工程師,提供Adafruit CircuitPython社區都是重要的。我們將重點介紹您可以成為其中一部分的多種方式!
Adafruit Discord
Adafruit Discord服務器是最好的起點。 Discord是社區聚集在一起進行志愿活動并提供各種實時支持的地方。從一般討論到詳細的問題解決,以及介于兩者之間的一切,Discord是一個數字制造商空間,來自世界各地的制造商。
有很多不同的渠道,因此您可以選擇最適合自己的需求。每個通道在Discord上都顯示為“ #channelname”。 #projecthelp頻道可為您當前的項目提供幫助,或為下一個項目提供幫助。 #showandtell頻道可用于炫耀您的最新作品。不要害怕在任何頻道中提問!如果您不確定,#general是一個不錯的起點。如果另一個渠道更有可能為您提供更好的答案,那么有人會指導您。
CircuitPython渠道是您處理CircuitPython問題的地方。 #circuitpython適用于新用戶和開發人員,請隨時提出問題或發表評論!任何經驗水平的人士都可以參加。我們很想聽聽您怎么說!
對社區做出貢獻的最簡單方法是在Discord上為他人提供幫助。支持他人并不總是意味著回答問題。一起慶祝成功!慶祝你的錯誤!有時,只要聽到別人經過類似的斗爭就足以使制造商前進。
Adafruit Discord是您可以帶給孫女的24x7x365黑客空間。
訪問https://adafru.it/discord以注冊Discord。我們期待與您見面!
Adafruit論壇
Adafruit論壇是理想的支持場所。 Adafruit有出色的付費支持人員,可以回答您可能遇到的任何問題。無論您的硬件給您帶來了問題還是代碼似乎都無法正常工作,論壇總是在那里供您提問。您需要一個Adafruit帳戶才能發布到論壇。您可以使用從Adafruit訂購的同一帳戶。
盡管Discord可能會比論壇提供更快的響應,但論壇是更可靠的信息來源。如果您確定要得到Adafruit支持的答案,那么論壇是最好的選擇。
論壇類別涵蓋了所有主題,包括Adafruit的所有主題。在“受支持的產品和項目”下的Adafruit CircuitPython和MicroPython類別是發布CircuitPython問題的最佳位置。
請確保包括到達目的地的步驟。如果涉及布線,請張貼圖片!如果您的代碼給您帶來麻煩,請將您的代碼包括在您的帖子中!這些是確保有足夠的信息來幫助您解決問題的好方法。
您可能會認為您才剛剛開始,但您肯定知道別人沒有的東西。論壇的好處是您也可以幫助其他人!歡迎并鼓勵大家對任何已發布的問題提供建設性的反饋。這是為社區做出貢獻并分享您的知識的絕妙方法!
Adafruit Github
無論您是剛剛起步還是想要做出貢獻的終生程序員,都有許多方法可以使每個人都參與構建CircuitPython。 GitHub是為CircuitPython本身做出貢獻的最佳途徑。如果您需要一個帳戶,請訪問https://github.com/并注冊。
如果您是GitHub的新手或一般編程人員,那么您將有很多機會。轉到GitHub上的adafruit/circuitpython,單擊“問題”,您將找到一個列表,其中包含標有“良好的第一期”的問題。這些都是我們認為具有任何經驗水平的人都可以幫助的事情。這些問題包括諸如更新文檔,提供反饋和修復簡單錯誤之類的選項。
已經經驗豐富,正在尋找挑戰?查看其余的問題列表,您會發現很多貢獻的方法。您將找到從新驅動程序請求到核心模塊更新的所有內容。任何級別的每個人都有很多機會!
使用CircuitPython時,您可能會發現問題。如果發現錯誤,那就太好了!我們喜歡蟲子!將詳細的問題發布到GitHub是有助于改進CircuitPython的寶貴方法。確保包括復制問題的步驟以及您認為相關的任何其他信息。越詳細,越好!
測試新軟件非常容易,而且非常有用。只需將最新版本的CircuitPython或庫加載到CircuitPython硬件上,然后使用它。通過將新問題發布到GitHub,讓我們知道您發現的任何問題。在當前和Beta版本中進行軟件測試是貢獻CircuitPython的非常重要的一部分。我們自己不可能找到所有問題!我們需要您的幫助以使CircuitPython變得更好。
在GitHub上,您可以提交功能請求,提供反饋,報告問題等等。如有疑問,請記住,Discord和論壇都在這里尋求幫助!
ReadTheDocs
ReadTheDocs是深入了解CircuitPython的絕佳資源。您可以在這里找到API文檔和有關核心模塊的詳細信息。還有一個設計指南,其中包含有關CircuitPython的貢獻指南。
RTD使您可以深入了解CircuitPython。有關每個核心模塊的詳細信息。每個模塊都列出了可用的庫。每個模塊庫頁面列出了可用的參數以及每個參數的說明。在許多情況下,您會找到快速的代碼示例,以幫助您了解模塊和參數的工作方式,但是其中沒有像《學習指南》這樣的詳細說明。如果您需要幫助來了解正在編寫的任何CircuitPython代碼的幕后情況,ReadTheDocs可以為您提供幫助!
Windows上的高級串行控制臺
Windows 7驅動程序
如果您使用的是Windows 7,請使用下面的鏈接下載驅動程序包。您無需在Mac,Linux或Windows 10上安裝驅動程序。
下載Windows 7驅動程序
什么是COM?
首先,您需要確定您的主板正在使用哪個串行端口。當您將開發板插入計算機上的USB時,它會連接到串行端口。該端口就像一扇門,您的主板可以通過它使用USB與計算機進行通信。
我們將使用Windows設備管理器來確定主板正在使用哪個端口。確定主板正在使用哪個端口的最簡單方法是首先不插入檢查主板。打開設備管理器。單擊端口(COM和LPT)。您應該在該列表中已經找到帶有(COM#)的內容,其中#是數字。
現在將板子插入。設備管理器列表將刷新,并且新項目將出現在端口(COM和LPT)下。您會在列表中此項目之后找到其他(COM#)。
有時,該項目指的是木板的名稱。如上圖所示,其他時候它可能被稱為USB串行設備。無論哪種方式,名稱后都會有一個新的(COM#)。這是您的電路板正在使用的端口。
安裝膩子
如果使用Windows,則需要下載終端程序。我們將使用PuTTY。
首先要做的是下載最新版本的PuTTY。您將要下載Windows安裝程序文件。您最有可能需要64位版本。下載文件并在計算機上安裝程序。如果遇到問題,可以嘗試下載32位版本。但是,該64位版本適用于大多數PC。
現在您需要打開PuTTY。
在連接類型下: 串行旁邊的按鈕。
在串行行下的框中,輸入您發現主板正在使用的串行端口。
在速度下的框中,輸入115200。這稱為波特率,它是通過串行連接發送數據的每秒速度(以比特為單位)。對于帶有內置USB的板卡來說,沒什么大不了的,但是對于ESP8266和其他帶有單獨芯片的板卡,板卡所需的速度為每秒115200位。因此,您最好也使用115200!
如果要保存這些設置以供以后使用,請使用加載,保存或刪除存儲的會話下的選項。在保存的會話下的框中輸入名稱,然后單擊右側的保存按鈕。
輸入設置后,就可以連接到串行控制臺了。點擊窗口底部的“打開”。一個新窗口將打開。
如果沒有代碼在運行,則該窗口將為空白或與上面的窗口類似。現在您可以查看代碼的結果。
干得好!您已連接到串行控制臺!
在Mac和Linux上的高級串行控制臺
在Mac和Linux上連接到串行控制臺的過程基本上相同。兩種操作系統都不需要安裝驅動程序。在MacOSX上,已安裝終端。在Linux上,有多種,例如KDE上的gnome-terminal(稱為Terminal)或Konsole。
端口是什么?
首先,您要確定主板使用的是哪個串行端口。當您將開發板插入計算機上的USB時,它會連接到串行端口。該端口就像一扇門,您的主板可以通過該門使用USB與計算機進行通信。
我們將使用終端來確定主板使用的端口。確定主板正在使用哪個端口的最簡單方法是先檢查是否未插入主板。在Mac上,打開“終端”并鍵入以下內容:
ls /dev/tty.*
每個串行連接都顯示在/dev/目錄中。它的名稱以tty.開頭。命令ls向您顯示目錄中的項目列表。您可以將*用作通配符,以搜索以相同字母開頭但以其他字母結尾的文件。在這種情況下,我們要求查看/dev/中所有以tty.開頭并以任何結尾結束的列表。這將向我們顯示當前的串行連接。
對于Linux,過程相同,但是名稱略有不同。如果您使用的是Linux,則將輸入:
ls /dev/ttyACM*
與Linux的概念相同。我們要求查看/dev/文件夾中的列表,這些列表以ttyACM開頭,以任何結尾。這將顯示當前的串行連接。在下面的示例中,錯誤表明沒有以ttyACM開頭的當前串行連接。
現在,插入板子。在Mac上,鍵入:
ls /dev/tty.*
這將向您顯示當前的串行連接,現在將包括您的主板。
使用Mac,出現了一個新列表,名為/dev/tty.usbmodem141441。此清單的tty.usbmodem141441部分是示例板所使用的名稱。
使用Linux,鍵入:
ls /dev/ttyACM*
這將向您顯示當前的串行連接,現在包括您的面板。
使用Linux,出現了一個新列表,名為/dev/ttyACM0。此清單的ttyACM0部分是示例板所使用的名稱。您的名字將被稱為類似。
與屏幕連接
現在,您知道板子正在使用的名稱,就可以連接到串行控制臺了。我們將使用名為screen的命令。 screen命令包含在MacOS中。 Linux用戶可能需要使用其軟件包管理器進行安裝。要連接到串行控制臺,請使用終端。鍵入以下命令,將board_name替換為您的開發板正在使用的名稱:
screen /dev/tty.board_name 115200
第一部分這是使用screen命令建立的。第二部分告訴屏幕您要使用的板的名稱。第三部分告訴屏幕用于串行連接的波特率。波特率是通過串行連接發送數據的速度,以每秒比特數為單位。在這種情況下,開發板所需的速度為每秒115200位。
使用示例板名的MacOS屏幕命令
按Enter鍵運行命令。它將在同一窗口中打開。如果沒有代碼在運行,則該窗口將為空白。否則,您將看到代碼的輸出。
干得好!您已連接到串行控制臺!
Linux上的權限
如果您嘗試運行screen卻無法正常運行,則可能是權限問題。 Linux跟蹤用戶和組以及允許他們執行和不執行的操作,例如訪問與串行連接關聯的硬件以運行screen。因此,如果您看到以下內容:
,那么您可能需要授予自己訪問權限。通常有兩種方法可以執行此操作。首先是使用screen命令運行sudo,這會暫時為您提供提升的特權。
輸入密碼后,您應該位于:
第二種方法是將自己添加到組中與硬件相關聯。要確定該組是什么,請使用命令ls -l,如下所示。群組名稱以紅色圈出。
然后使用命令adduser將您自己添加到該群組中。您需要提升的特權才能執行此操作,因此您需要使用sudo。在下面的示例中,組為 adm ,用戶為 ackbar 。
將自己添加到論壇后,您需要注銷并重新登錄,或者在某些情況下,請重新啟動計算機。再次登錄后,請使用命令groups確認您已添加到該組。如果您仍不在該組中,請重新啟動并再次檢查。
現在您應該可以運行screen而不使用sudo。
而您位于:
以上示例使用screen,但是如果您愿意,也可以使用其他程序,例如putty或picocom。
PyCharm和CircuitPython
此過程無效。該插件從未設計過與CircuitPython一起使用。這里描述的過程是一種變通辦法,功能有限。如果您想在Pycharm中使用REPL,請在終端和屏幕中使用內置功能。和錯誤突出顯示。它在社區版中免費提供。
最近,他們添加了一個MicroPython插件,該插件可從編輯器內部使用REPL。官方不支持CircuitPython,但是我們有一些步驟使其能夠正常工作!
在您的計算機上下載并安裝PyCharm。然后,插入您的電路板并執行以下步驟!
創建新項目或打開現有項目。
打開PyCharm偏好設置/設置。點擊插件,然后搜索“ micropython”。單擊在存儲庫中搜索。
此過程無效。該插件從未設計過與CircuitPython一起使用。這里描述的過程是一種變通辦法,功能有限。如果要在Pycharm中使用REPL,請在終端和屏幕中使用內置的。
點擊安裝。
安裝完成后,單擊重新啟動PyCharm 。
重新啟動后,打開“首選項/設置”。單擊語言和框架,然后選擇 MicroPython 。
此過程無效。該插件從未設計過與CircuitPython一起使用。這里描述的過程是一種變通辦法,功能有限。如果要在Pycharm中使用REPL,請在終端和屏幕中使用內置的。
從列表中選擇項目目錄。
從“設備名稱”列表中選擇 ESP8266 。
現在,無論使用哪種板,您都將使用此選項。
您需要手動添加設備路徑。這是您的串行連接的路徑。輸入后,單擊確定。
如果需要幫助來查找設備的串行連接,請參閱Windows上的“高級串行控制臺”。和Mac和Linux上的高級串行控制臺。
i》 此過程無效。該插件從未設計過與CircuitPython一起使用。這里描述的過程是一種變通辦法,功能有限。如果要在Pycharm中使用REPL,請在終端和屏幕中使用內置的。
現在,從您選擇的項目目錄中打開任何Python文件。
一條消息可能會彈出,提示“找不到ESP8266支持所需的軟件包”,然后是軟件包列表。單擊此消息上的安裝要求以安裝所需的軟件包。
現在,您可以單擊工具菜單,您應該會找到一個 MicroPython 菜單。突出顯示這一點,您將找到 MicroPython REPL 。
REPL將在PyCharm窗口的底部打開。現在您可以開始編碼了!
如果要將內置REPL與其他電路板一起使用,則需要進入并將Device Path更改為與您要使用的電路板匹配的路徑。
要更改設備路徑,請按照上述步驟從手動添加設備路徑開始。
PyCharm REPL不能同時在多個板上使用。在多個項目上執行上述步驟并不能始終如一地打開多個REPL連接。
“從MicroPython設備中刪除所有文件”和“ Flash項目”功能不起作用,但可能會損壞您的電路板。不要嘗試使用這些功能。請記住,CircuitPython不受官方支持,并且上述步驟是一種解決方法。
此過程無效。該插件從未設計過與CircuitPython一起使用。這里描述的過程是一種變通辦法,功能有限。如果要在Pycharm中使用REPL,請使用內置的端子和屏幕。
用于ESP8266的CircuitPython
我們不再在ESP8266上支持CircuitPython。此頁面僅用于歷史目的。無法保證說明會繼續有效。
為什么要放棄對ESP8266的支持?
ESP8266上的CircuitPython對于用戶來說并不是一個很好的體驗。由于它沒有本地USB,因此很難將文件發送到設備,并且您很快就會用完RAM(添加網絡堆棧后,內存會比您想象的要少)。我們決定僅將ESP用作協處理器。特別是ESP32,因為它具有良好的TLS/SSL支持,即使是最基本的交互,現在也必不可少。
如果您想使用ESP8266,請繼續使用3.x版本,不支持。您還可以查看仍受支持的MicroPython for ESP8266!
如果您想添加WiFi支持,請查看有關ESP32/ESP8266作為協處理器的指南。
關于CircuitPython的ESP8266(3.x)
我們有兩個CircuitPython的“應變”,主要的是具有本地USB連接的基于ATSAMD21/51的板。原生USB意味著該板可以顯示為名為CIRCUITPY的磁盤驅動器并在其中保存所有文件。
還有ESP8266和nRF52832等板的CircuitPython,這些芯片確實不錯分別內置WiFi和Bluetooth。但是它們沒有本地USB!,這意味著該芯片無法作為磁盤驅動器出現。您仍然可以將它們與CircuitPython一起使用,但是難度要大得多,因此我們不建議初學者使用它們。這是關于將非本機芯片用于CircuitPython的一些知識:
僅 個獲得REPL連接!沒有HID鍵盤/鼠標或其他USB接口
沒有用于拖放文件移動的磁盤驅動器,必須通過 ampy 這樣的特殊工具來移動文件通過REPL為您輸入文件
加載CircuitPython需要命令行工具
在ESP8266上安裝CircuitPython
要將CircuitPython與ESP8266一起使用,您需要先使用最新固件對其進行刷新。
下載esptool
首先安裝esptool.py可以在ESP8266上燒寫固件的軟件。安裝此工具的最簡單方法是使用Python的pip包管理器。如果尚未安裝,則需要安裝Python 2.7(在Windows上安裝時,請確保選中將Python放入系統路徑的框),然后在終端中運行以下命令:pip install esptool
在Mac OSX和Linux上的注意事項,您可能需要使用sudo以root身份運行命令,例如:sudo pip install esptool
如果收到的錯誤是esptool.py僅支持Python 2.x,請嘗試使用 pip2 命令而不是pip再次運行(可能您的系統正在使用Python 3,并且pip命令對要使用的版本感到困惑)。
下載最新的CircuitPython固件
下一步下載最新的CircuitPython ESP8266固件文件:
下載最新的ESP8266 Huzzah固件(v3.1.2)
讓ESP8266準備好進行引導加載
現在您需要將ESP8266設置為固件刷新模式。每個ESP8266板略有不同:
對于原始ESP8266模塊,您需要將GPIO0和RESET引腳的按鈕接地。按住GPIO0按鈕(或將線接地),同時仍將GPIO0接地,按住并釋放RESET按鈕(或從地面連接并釋放線),然后釋放GPIO0。
對于板中內置了用于GPIO0和RESET的HUZZAHESP8266 Breakout 按鈕。按住GPIO0,然后按并釋放RESET(同時保持GPIO0),最后釋放GPIO0。
對于Feather HUZZAH ESP8266 ,您無需執行任何特殊操作即可進入固件刷新模式。該評估板用于檢測何時打開串行端口進行刷新,并自動配置ESP8266模塊以接收固件。 請務必先在Windows和Mac OSX上安裝SiLabs CP210x驅動程序,以使開發板的串行端口可見! 在Windows上,您需要普通的VCP驅動程序,而不是“具有串行枚舉”驅動程序。
擦除ESP8266
建議在上傳固件前先擦除ESP8266開發板的整個閃存。在終端中運行以下命令以執行此擦除:
下載:文件
復制代碼
esptool.py --port ESP8266_PORTNAME erase_flash esptool.py --port ESP8266_PORTNAME erase_flash
其中ESP8266_PORTNAME是連接到ESP8266的串行端口的路徑或名稱。設備的確切名稱取決于串行到USB轉換器芯片的類型,因此您可能需要查看有無設備連接的串行端口才能找到其名稱。
程序ESP8266
現在將ESP8266放回固件刷新模式,然后運行以下命令來加載下載的固件文件:
下載:文件
復制代碼
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設置為連接到ESP8266的串行端口的路徑或名稱。另外,將 firmware.bin 設置為您要加載的固件文件的名稱或路徑。
i》
工具完成固件刷新后(在此過程中,您通常會看到ESP8266模塊上的藍燈閃爍),請按ESP8266板上的RESET按鈕或斷開連接,然后將其重新連接到計算機。應該都準備好開始使用板上的最新CircuitPython固件!
請注意,如果看到“檢測不是有效的flash_size參數”錯誤,則可能是使用了較早版本的esptool。 py要升級到最新版本,請運行以下命令pip install --upgrade esptool
使用Ampy上載庫和文件!
ESP8266的最大與眾不同之處在于,您需要使用一種特殊的工具來移動文件。閱讀本指南,查看ampy。它與MicroPython有關,但CircuitPython幾乎相同,因此總體安裝和用法相同!
了解如何使用ampy在ESP8266上移動文件
其他需要了解的東西!
REPL的工作方式與您期望的一樣希望如此,因此請查看該介紹性頁面。
文件存儲與CircuitPython在同一芯片中,因此如果進行更新,則可能會丟失文件!保留備份。
庫和API也與其他CircuitPython板相同。
請注意,ESP8266沒有大量引腳,只有一個模擬輸入為0 -1.0V范圍。沒有可用的UART端口(這是用于REPL的端口!)。
沒有模擬輸出。
對于SPI和I2C,您可以使用它們!但是您將需要使用bitbangio創建總線對象
卸載CircuitPython
我們的許多開發板都可以與多種編程語言一起使用。例如,Circuit Playground Express可以與MakeCode,Code.org CS Discoveries,CircuitPython和Arduino一起使用。
也許您嘗試過CircuitPython并想回到MakeCode或Arduino?沒問題
隨時可以隨時刪除/重新安裝CircuitPython !哎呀,您每天都可以改變主意!
備份您的代碼
在卸載CircuitPython之前,請不要忘記備份小磁盤驅動器上的代碼。這意味著您的 main.py 或 code.py 任何其他文件, lib 文件夾等。刪除CircuitPython時,這些文件可能會丟失,因此備份是關鍵!只需將文件拖到便攜式計算機或臺式計算機上的文件夾中,就像使用任何USB驅動器一樣。
移動到MakeCode
如果您想重新使用MakeCode,這真的很容易。訪問makecode.adafruit.com,找到您要上傳的程序。單擊下載以下載由MakeCode生成的 .uf2 文件。
現在,雙擊CircuitPython板,直到看到板載LED變綠并且 。.. BOOT 目錄出現。
然后找到下載的MakeCode .uf2 文件,并將其拖到 。.. BOOT 驅動器上。
您的MakeCode現在正在運行,并且CircuitPython已刪除。向前,您只需單擊重置按鈕
移至Arduino
如果要將固件更改為Arduino,這也非常簡單。
首先插入板子,然后雙擊重置,直到獲得綠色的板上LED為止-就像使用MakeCode
在Arduino IDE中一樣,選擇匹配的板,例如Circuit Playground Express
選擇正確的匹配端口:
創建新簡單的Blink草圖示例:
下載:文件
復制代碼
// 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仍為綠色,然后單擊上傳以上傳閃爍。成功上傳后,串行端口將更改,因此重新選擇新的端口!
一旦上傳了閃爍,您就不再需要雙擊進入引導加載程序模式,上傳后Arduino將自動重置
非UF2安裝
僅當您不安裝此頁面時才需要安裝了UF2引導程序(例如boardBOOT拖放)!此頁面適用于非Express Feather M0,Arduino Zero和M0以及其他自定義ATSAMD21開發板。
用Bossac閃爍-用于非Express Feather M0和Arduino Zero
我們較舊的Feather M0板沒有UF2不附帶,而是附帶了一個更簡單的名為 bossa 的引導程序。這也是安裝在Arduino Zero和其他使用ATSAMDx1或nRF52840的CircuitPython兼容板上的東西。如果CircuitPython安裝文件是 .bin 而不是 .uf2
命令行!
使用bossac進行閃爍需要使用計算機的命令行界面。在Windows上,這是 cmd 或 powershell 工具。在Mac和Linux上,使用終端!
下載最新的CircuitPython固件
您要做的第一件事就是下載最新版本的CircuitPython。
截至2019年4月,有兩個站點可以下載適當的.bin文件。 Adafruit正在將文件遷移到CircuitPython.org。建議首先通過搜索兼容板找到.bin文件。在該站點上只會列出對適當的引腳定義文件有拉取請求的兼容板,如果開發人員希望看到列出的新CircuitPython板,則開發人員應提交要包含的材料。
單擊下面的綠色按鈕以搜索您的電路板以找到合適的文件。
從CircuitPython.org查找并下載電路板軟件
或者,使用GitHub
目前,CircuitPython開發板文件也位于Adafruit CircuitPython GitHub存儲庫中,盡管它們將來可能會遷移到專用的CircuitPython存儲庫。如果對CircuitPython.org有問題,請使用下面的第二個綠色按鈕從GitHub下載。
為CircuitPython開發板下載.bin文件
下載后,將 .bin 文件保存到桌面上,您將很快需要它!
如果您運行的是Windows 7,則必須安裝驅動程序集(
下載BOSSA
一旦有了固件映像,就需要下載BOSSA工具,該工具可以在SAMD21/51板上加載固件。 Arduino IDE在對這些板進行編程時實際上在內部使用此工具,但是您可以自己使用它來加載自定義固件
請注意,必須使用 1.7。 Bossac的0或更高版本,可為SAMD21和SAMD51板編程BOSSA 1.7.0之前的版本不起作用,因為它不支持SAMD21/51芯片。 還請注意,bossac 1.9.0和更高版本已不兼容地更改了其命令行參數,并且在不受保護的情況下可以擦除您的引導加載程序。(Adafruit板隨附受保護的引導加載程序。)請按照以下說明進行操作
要使用bossac(BOSSA的命令行工具)進行刷新,請先從此處下載最新版本。 ming32版本適用于Windows,apple-darwin適用于Mac OSX,而各種linux選項適用于Linux。
bossac適用于.bin文件僅,它不適用于.uf2文件!
測試bossac
打開一個終端,并使用bossac工具導航到該文件夾。然后使用--help選項運行該工具以檢查其運行情況:
打開一個終端,并使用bossac工具導航到該文件夾。然后使用帶有--help選項的bossac --help
來運行該工具,以檢查該工具是否運行。或者,如果您使用的是Linux或Mac OSX,則需要添加 。/以指定從當前目錄(例如 。/bossac --help
)運行bossac,確保您看到的是BOSSA版本1.7.0或更高版本!,請參閱以下有關1.9.0及更高版本的警告。如果看到較低的版本,則表示您不小心下載了該工具的較舊版本,并且該工具無法刷新SAMD21芯片。返回并如上所述從該BOSSA GitHub存儲庫中獲取最新版本。
端口Mac OS的選擇
如果您使用的是Mac,則需要知道要使用哪個端口。
在同一終端窗口中,運行命令ls /dev/cu.*。記下列出的端口,然后插入板子并再次運行命令。可能會列出該設備,例如/dev/cu.usbmodem14301 。記下下面bossac部分的端口名稱。
進入引導加載程序
您必須手動將板“踢”入引導加載程序。雙擊重置按鈕即可。紅色的“#13” LED指示燈應點亮和熄滅。如果您使用的是Arduino Zero,請確保您已連接到本地USB 端口,而不是調試/編程端口。
如果使用的是Arduino,請特別注意來自Arduino.org的M0,您需要將其引導程序替換為Arduino零引導程序,以便它可以與BOSSA一起使用。為此,請在Arduino IDE板管理器中安裝Arduino/Genuino Zero板,然后按照以下步驟刻錄Arduino Zero引導加載程序(使用板上的編程端口)。加載Arduino Zero Bootloader之后,您應該能夠按照以下說明將M0與bossac一起使用。
運行thebossac命令
插入電路板并運行引導加載程序后,您就可以將CircuitPython固件刷新到電路板上了。將固件.bin文件復制到與bossac工具相同的目錄中,然后在終端中導航到該位置并運行以下命令之一,具體取決于您擁有的bossac版本。
對于bossac 1.9或更高版本,必須在命令行上使用--offset參數,并且必須對您的電路板具有正確的值。
對于bossac 1.9或更高版本,您必須提供一個--offset參數此參數是在bossac 1.8.0中添加的,默認值為0x2000,但從1.9開始,默認偏移量已更改為0x0000,在大多數情況下這不是您想要的。如果您省略了bossac 1.9或更高版本的參數,則可能會看到來自bossac的“ 驗證失敗”錯誤。切記更改-p或--port的選項以匹配Mac上的端口。
將下面的文件名替換為下載的名稱 .bin :這將根據您的主板而有所不同!
使用bossac版本1.7.0、1.8
有沒有可用的--offset參數。使用這樣的命令行:
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或更高版本
對于具有8kB引導程序的M0板,必須指定-offset=0x2000,例如:
bossac -p /dev/cu.usbmodem14301 -e -w -v -R --offset=0x2000 adafruit-circuitpython-feather_m0_express-3.0.0.bin
對于具有16kB引導程序的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寫入給定的文件,v驗證寫入并R設置板。在Linux或MacOS上,您可能需要使用sudo 。/bossac 。..運行此命令,或首先將自己添加到撥號組。
在BOSSA加載固件后,您應該會看到輸出類似于以下內容:
重置后,CircuitPython應該正在運行,并且會出現 CIRCUITPY 驅動器。您始終可以通過單擊重置按鈕來手動重置板,有時需要將其“喚醒”。 Express板可能會警告USB驅動器過早彈出,但請忽略它。沒什么重要的事情被寫入驅動器!
故障排除
有時,在使用CircuitPython時會遇到問題。這是您可能會遇到的一些問題以及如何解決它們。
繼續開發CircuitPython并創建新版本,我們將停止支持舊版本。訪問https://circuitpython.org/downloads為您的電路板下載最新版本的CircuitPython。您必須下載與您的CircuitPython版本匹配的CircuitPython庫捆綁包。請更新CircuitPython,然后訪問https://circuitpython.org/libraries下載最新的庫捆綁包。
始終運行最新版本的CircuitPython和庫
在繼續開發CircuitPython和創建新版本時,我們將不再支持較舊版本發布。 您需要更新到最新的CircuitPython。
您需要下載與您的CircuitPython版本匹配的CircuitPython庫捆綁包。 請更新CircuitPython,然后下載最新的軟件包。
當我們發布CircuitPython的新版本時,我們將停止提供以前的軟件包作為Adafruit CircuitPython庫軟件包倉庫中自動創建的下載文件。 。如果必須繼續使用早期版本,則仍可以從CircuitPython存儲庫上特定版本的CircuitPython中下載mpy-cross的相應版本,并創建自己的兼容.mpy庫文件。 但是,最好將CircuitPython和庫捆綁包都更新為最新版本。
我必須繼續使用CircuitPython 3.x或2.x,在哪里可以找到兼容的庫?
我們是不再構建或支持CircuitPython 2.x和3.x庫包。我們強烈建議您將CircuitPython更新到最新版本并使用當前版本的庫。。但是,如果由于某種原因而無法更新,則可以在此處找到最后一個可用的2.x版本和最后一個可用的3版本。 .x在此處構建。
CPLAYBOOT,TRINKETBOOT ,FEATHERBOOT或GEMMABOOT驅動器不存在 ,您可能擁有其他板子。
只有Adafruit Express板子和Trinket M0和Gemma M0板子才裝有UF2引導程序。 Feather M0 Basic,Feather M0 Adalogger和類似的電路板使用常規的Arduino兼容引導加載程序,該引導加載程序不顯示boardnameBOOT驅動器。
MakeCode
如果您正在Circuit Playground Express上運行MakeCode程序,只需按一下重置按鈕即可顯示CPLAYBOOT驅動器。兩次按下將不起作用。
Windows 10
您是否誤安裝了Adafruit Windows Drivers軟件包?對于大多數Adafruit板,您不需要在Windows 10上安裝此軟件包。舊版本(v1.5)可能會干擾您的設備識別。轉到設置-》 應用,并卸載所有“ Adafruit”驅動程序。
Windows 7
最新版本的Adafruit Windows驅動程序(2.0.0.0版或更高版本)將解決Windows 7上缺少的boardnameBOOT驅動器問題。要解決此問題,請先卸載舊版本的驅動程序:
拔下所有板子。在卸載或更改程序(控制面板-》程序-》卸載程序)中,卸載所有名為“ Windows Driver Package-Adafruit Industries LLC 。..”的內容。
現在安裝新的2.3.0.0(或更高版本)的Adafruit Windows驅動程序包:
安裝最新的Windows驅動程序
運行時安裝程序,將顯示一個可供選擇的驅動程序列表。您可以選中和取消選中復選框以選擇要安裝的驅動程序。
現在應該完成!通過拔下并重新插入電路板進行測試。您應該看到CIRCUITPY驅動器,然后雙擊重置按鈕(單擊運行MakeCode的Circuit Playground Express一次),您應該看到相應的boardnameBOOT驅動器。
如果這不適合您,請在Adafruit支持論壇或Adafruit Discord上告訴我們!
訪問boardnameBOOT驅動器時Windows資源管理器鎖定
在Windows上,我們知道的一些第三方程序可能會引起問題。癥狀是您嘗試訪問boardnameBOOT驅動器,而Windows或Windows資源管理器似乎已鎖定。已知這些程序會引起麻煩:
AIDA64 :要修復,請停止該程序。此問題已報告給AIDA64。他們獲得了要測試的硬件,并發布了可解決該問題的beta版本。這可能已合并到最新版本中。如果您測試此插件,請在論壇中告訴我們。
硬盤前哨
卡巴斯基反病毒軟件:修復后,您可能需要完全禁用卡巴斯基。禁用卡巴斯基的某些方面并不總是能夠解決問題。已經向卡巴斯基報告了此問題。
將UF2復制到boardnameBOOT驅動器時,復制已掛起0%
在Windows上,其外部USB驅動器附帶的 Western Digit(WD)實用程序干擾將UF2文件復制到boardnameBOOT驅動器。卸載該實用程序以解決問題。
未顯示CIRCUITPY驅動器
卡巴斯基反病毒軟件會阻止CIRCUITPY驅動器的出現。我們尚未發現可以防止這種情況的設置更改。完全卸載卡巴斯基可以解決此問題。
Norton防病毒軟件可能會干擾CIRCUITPY。用戶已在Windows 7上報告了此問題。該用戶關閉了智能防火墻和自動保護,然后出現CIRCUITPY。
Mu中的串行控制臺不顯示任何內容
有時,串行控制臺將完全不顯示任何內容,例如例如,當當前沒有代碼在運行,或者在打開控制臺之前沒有串行輸出的代碼已經在運行。但是,如果您發現自己應該出現類似錯誤的情況,請考慮以下事項。
根據屏幕或Mu窗口的大小,在打開串行控制臺時,串行控制臺面板可能很小。這可能是個問題。一個基本的CircuitPython錯誤需要10行才能顯示!
下載:文件
復制代碼
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.
更復雜的錯誤將占用更多行!
因此,如果您的串行控制臺面板是高度不超過五行,您可能只會看到空白行或空白行,后跟Press any key to enter the REPL. Use CTRL-D to reload.。在這種情況下,您需要將鼠標懸停在面板頂部以利用該選項來調整串行面板的大小,或者使用右側的滾動條向上滾動以查找消息。
這適用于任何類型的串行輸出,無論是錯誤消息還是打印語句。因此,在開始嘗試在硬件方面調試問題之前,請確保檢查是否由于串行輸出面板的高度而不只是錯過了串行消息。
CircuitPython RGB狀態燈
Feather M0 Express,Feather M4 Express,Metro M0 Express ,Metro M4 Express,ItsyBitsy M0 Express,ItsyBitsy M4 Express,Gemma M0和Trinket M0的板上都有單個NeoPixel或DotStar RGB LED,用于指示CircuitPython的狀態。
電路游樂場Express沒有狀態指示燈。在引導加載程序中時,LED會閃爍綠色。它們在運行CircuitPython時不會指示任何狀態。
以下是顏色和閃爍的含義:
穩定的綠色:code.py(或 code.txt,main.py或main.txt)正在運行
向綠色施加脈沖:code.py(等)完成或不存在
穩定黃色 :( 4.0.0-alpha.5及更高版本)CircuitPython正在等待重置以表明它應該在安全模式下啟動
以脈沖方式黃色:電路Python處于安全模式:崩潰并重新啟動
穩定的白色: REPL正在運行
穩定運行藍色:boot.py正在運行
以下帶有多次閃爍的顏色表示Python異常,然后表示行號錯誤。第一次閃爍的顏色表示錯誤的類型:
綠色:IndentationError
CYAN :SyntaxError
白色:NameError
橙色:OSError
紫色:ValueError
黃色:其他錯誤
這些錯誤之后會閃爍指示行號,包括位置值。 白色閃爍是數千個位置,藍色是數百個位置,黃色是數十個位置,青色是一個人的地方。因此,例如,第32行的錯誤將黃色閃爍三下,然后 CYAN 閃爍兩次。零表示為一個超長的暗間隙。
ValueError:不兼容的.mpy文件。
當導入以mpy二進制文件存儲的模塊時,會發生此錯誤,該二進制文件由CircuitPython的不同版本生成。它被加載到其中。特別是mpy二進制格式在CircuitPython版本2.x和3.x之間以及在1.x和2.x之間進行了更改。
例如,如果您升級了從2.x到CircuitPython 3.x,您需要下載庫的更新版本,該庫在import上觸發了錯誤。它們都可以在Adafruit捆綁包中找到。
如果使用CircuitPython版本2.2.4,請確保下載文件名中具有2.0.0或更高版本的版本,以及具有3.0.0或更高版本的版本。如果使用的是CircuitPython 3.0版,則文件名應更高。
CIRCUITPY驅動器問題
您可能會發現無法再將文件保存到您的CIRCUITPY驅動器中。您可能會發現CIRCUITPY停止顯示在文件資源管理器中,或顯示為NO_NAME。這些是文件系統有問題的指示器。
第一次檢查-您是否已使用Arduino對電路板進行編程?如果是這樣,CircuitPython將不再能夠提供USB服務。重置開發板,以便獲得一個boardnameBOOT驅動器而不是一個CIRCUITPY驅動器,將最新版本的CircuitPython(.uf2)復制回到該板上,然后進行重置。這可能會恢復CIRCUITPY功能。
如果仍然損壞-當CIRCUITPY磁盤在通過按鈕重置或與USB斷開連接之前未安全彈出時,可能會損壞閃存駕駛。在Windows,Mac或Linux上都可能發生這種情況。
在這種情況下,必須完全擦除開發板,并且必須將CircuitPython重新加載到開發板上。
完成以下步驟后,您將失去董事會上的所有東西。如有可能,請復制代碼,然后再繼續。
最簡單的方法:使用storage.erase_filesystem()
從2.3.0版開始,CircuitPython包含一個內置函數來擦除和重新格式化文件系統。如果您的電路板上有舊版本的CircuitPython,則可以執行此操作以更新到最新版本。
使用Mu或終端程序重新連接到CircuitPython。
類型:
下載:文件
復制代碼
》》》 import storage
》》》 storage.erase_filesystem() 》》》 import storage
》》》 storage.erase_filesystem()
CIRCUITPY將被刪除并重新格式化,然后您的電路板將重新啟動。就是這樣!
Circuit Playground Express,Feather M0 Express和Metro M0 Express:
如果您無法使用REPL,或者您正在運行2.3.0之前的CircuitPython版本,并且不想要升級,可以執行此操作。
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)
電路游樂場Bluefruit(QSPI)
Monster M4SK(QSPI)
PyBadge/PyGamer QSPI Eraser.UF2
2.雙擊板上的重置按鈕以調出boardnameBOOT驅動器。
3.拖動擦除.uf2文件放入boardnameBOOT驅動器。
4.板載NeoPixel將變為黃色或藍色,表示擦除已開始。
5。大約15秒鐘后,主板NeoPixel將點亮綠色。在NeoTrellis M4上,這是網格上的第一個NeoPixel。
6.雙擊板上的重置按鈕以調出boardnameBOOT驅動器。
7.拖動適當的最新版本的CircuitPython .uf2驅動器上的cc = 1》文件。
它將自動重新啟動,并且您應該在文件資源管理器中再次看到boardnameBOOT。
如果LED指示燈在步驟5期間呈紅色閃爍,表示擦除失敗。重復從2開始的步驟。
如果尚未為電路板下載最新版本的CircuitPython,請查看安裝頁面。您還需要安裝您的庫和代碼!
舊方法:對于具有UF2引導程序(Gemma M0,Trinket M0)的非Express板:
如果您無法使用REPL,或者您正在運行CircuitPython版本2.3.0之前的版本,并且您不想升級,則可以執行此操作。
1.下載擦除文件:
Gemma M0,Trinket M0
2.雙擊板上的重置按鈕以調出CIRCUITPY驅動器。
3.將擦除的boardnameBOOT文件拖到.uf2驅動器。
4.引導LED將再次開始閃爍,并且boardnameBOOT驅動器將重新出現。
5.將適當的最新發行版CircuitPython boardnameBOOT文件拖到.uf2驅動器。
它將自動重啟,并且您應該在文件瀏覽器中再次看到boardnameBOOT。
如果尚未下載最新版本的CircuitPython您的面板上,請查看安裝頁面您還需要安裝天秤座ries和代碼!
沒有UF2引導程序(羽毛M0基本原型,羽毛Adalogger,Arduino零)的非Express板:
如果您運行的是2.3.0之前的CircuitPython版本,并且不想升級,
只需按照以下說明使用CIRCUITPY重新加載CircuitPython,這將擦除并重新創建bossac。
p》
非Express板上文件空間不足
板上的文件系統非常小。 (比古老的軟盤要小。)因此,很可能您會用完空間但不要驚慌!有兩種釋放空間的方法。
該板還附帶Windows 7串行驅動程序!如果不需要或已經安裝,請隨時刪除。它的大小約為12KiB。
刪除某些內容!
釋放空間的最簡單方法是從驅動器中刪除文件。也許CIRCUITPY文件夾中有一些不再使用的庫,或者未使用的測試代碼。不過,不要完全刪除lib文件夾,只需刪除不需要的內容即可。
使用標簽
Python的一個獨特功能是縮進代碼很重要。通常建議對每個縮進使用四個空格縮進代碼。通常,我們也建議這樣做。 但是,存儲更多人類可讀代碼的一個技巧是使用單個制表符進行縮進。這種方法使用縮進空間的1/4,當我們計算字節數時可能很重要。
Mac OSX喜歡添加額外的文件。
幸運的是,您可以禁用Mac上的一些其他隱藏文件OSX通過運行一些命令來添加禁用搜索索引并創建零字節占位符的功能。請按照以下步驟操作,以最大程度地利用OSX上的可用空間:
防止并刪除Mac OSX隱藏文件
首先找到主板的卷名。插入木板后,在終端中運行以下命令以列出所有卷:
下載:文件
復制代碼
lib ls -l /Volumes
查找名稱類似于ls -l /Volumes的卷(默認用于CircuitPython)。卷的完整路徑是CIRCUITPY路徑。
現在按照此問題的步驟運行以下終端命令,以防止在板上創建隱藏文件:
下載:文件
復制代碼
/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 -,如果不相同,請使用完整的木板音量路徑。此時,應從開發板上清除所有隱藏文件,并阻止某些隱藏文件的創建。
但是,在某些情況下,Mac OSX仍會創建隱藏文件。特別是,如果您復制從Internet下載的文件,它將具有特殊的元數據,Mac OSX將這些元數據存儲為隱藏文件。幸運的是,您可以從終端運行復制命令來不復制該隱藏的元數據文件。請參閱下面的步驟。
在Mac OSX上復制文件而不創建隱藏文件
在Mac上使用上述命令禁用并刪除了隱藏文件后, OSX,您需要小心使用特殊命令將文件復制到板上,以防止將來創建隱藏文件。不幸的是,您無法在Finder中使用拖放副本,因為在某些情況下(對于從Internet下載的文件,例如Adafruit的模塊),它仍會創建這些隱藏的擴展屬性文件。
要復制文件或文件夾,請在終端中的 cp 命令中使用 -X 選項。例如,使用以下命令將/Volumes/CIRCUITPY文件復制到板上:
下載:文件
復制代碼
foo.mpy cp -X foo.mpy /Volumes/CIRCUITPY
(將 cp -X foo.mpy /Volumes/CIRCUITPY
替換為您的文件名要復制。)或復制文件夾及其所有子文件/文件夾,請使用以下命令:
下載:文件
復制代碼
foo.mpy cp -rX folder_to_copy /Volumes/CIRCUITPY
如果要復制到cp -rX folder_to_copy /Volumes/CIRCUITPY文件夾或其他文件夾,請確保該文件夾在復制之前存在。
下載:文件
復制代碼
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節省空間的提示
如果需要查看驅動器上已使用的空間量并手動刪除隱藏的文件,這里是操作方法。首先使用 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/驅動器上使用的空間量:
讓我們先刪除CIRCUITPY個文件。
哇!我們比以前多了13 Ki!現在可以將此空間用于庫和代碼!
CircuitPython Essentials
您已經閱讀了“歡迎使用CircuitPython”指南。您已經完成所有設置,并已運行CircuitPython。大!怎么辦? CircuitPython Essentials!
CircuitPython內置了許多核心模塊,并且提供了常用的庫。 《 Essentials指南》將向您介紹這些內容,并向您展示如何使用它們的示例。
責任編輯:wv
-
python
+關注
關注
56文章
4801瀏覽量
84863
發布評論請先 登錄
相關推薦
評論