資料介紹
描述
在本教程中,我將向您介紹Pico:ed和Smart Cutebot ,并提供一些有關CircuitPython的提示。這些產(chǎn)品由ELECFREAKS制造,ELECFREAKS 是一家生產(chǎn)和銷售 STEM 電子套件的公司。我們將使用這兩個對象一起使用 CircuitPython 編程語言制作一個用于教育目的的微型機器人。
Pico:ed
Pico:ed 是一個小型開發(fā)板(他的形狀總是讓我想起吃豆人幽靈!)(部分)與最著名的Micro:bit兼容,但具有RaspberryPI RP2040作為微控制器單元 ( MCU )。
你會注意到我部分地使用了這個詞:你知道我喜歡準確,所以這個詞到期了。
起初我已經(jīng)在 Pico:ed 上寫了一個不同的 MCU:RP2040(雙核 Cortex-M0+ @133MHz,2MB 閃存可擴展,265kB RAM )而不是 Nordic nRF51822(Cortex-M0 @16MHz,256kB閃存,16kB RAM )所以,從數(shù)字上看,Pico:ed 上使用的 MCU 更強大。在 Micro:bit 上使用 Microsoft Makecode:這允許圖形化的類似 Scratch 的環(huán)境、Python 或 Javascript。在 Pico:ed 上,我們可以使用常見的 RP2040 Python分支(MicroPython或CircuitPython )或C++ 。
CircuitPython 是最佳選擇,因為 ELECFREAKS 和 Adafruit 用我們需要的所有庫制作了 CircuitPython 固件。到 Micro:bit。這些功能是 IMU(慣性測量單元)和藍牙無線電。
個人考慮很少:Micro:bit 上的藍牙是使用的 MCU 的一個功能,因為 Nordic nRF51822 是用嵌入式藍牙模塊構建的。如果您需要這些功能,請考慮始終可以使用外部板添加 IMU 或無線電模塊。
另一方面,Pico:ed 擁有 Micro:bit 沒有的其他很酷的東西。Micro:bit 上的 LED 矩陣顯示器是使用 5x5 (25) 個 LED 制成的,而在 RP2040 兄弟上,我們有一個 7x17 (119) LED 矩陣,使用更小(更密集)的 LED;此外,這些 LED 由 IS31FL3731 IC 驅動,它可以獨立地對每個 LED 進行 PWM:這將帶來更準確和可讀的滾動文本和動畫以及灰度圖像!最后,在 Pico:ed 上,我們還有一個很酷的蜂鳴器來制作聲音和音樂。
底部的邊緣連接器采用 Micro:bit 外形,因此該板與大多數(shù) Micro:bit 板兼容。
聰明的可愛機器人
Smart Cutebot 是一個采用經(jīng)典配置的微型機器人平臺:帶有后樞軸點(投球器)的差動驅動。該平臺旨在與 Micro:bit 或 Pico:ed 配對,用于制作非常適合兒童和教育目的的小型機器人(或僅用于學習如何在實際應用程序中使用 Python - 實際上你不會需要像孩子一樣玩這些東西!)。
Cutebot 的特點是:
- 用于 Micro:bit 或 Pico:ed 的邊緣連接器
- 2 個全封閉式減速電機 + 后置滾珠腳輪
- 前面有 2 個大 (10mm) RGB LED
- 2 個 RGB LED(Neopixel)在底盤下方,在車輪前面
- 可拆卸式 HC-SR04 超聲波傳感器
- 2 IR 光反射器位于底部,用于巡線
- 一個紅外線接收器,用于使用遙控器控制機器人
- 機器人正面 (I2C) 和背面的擴展接頭用于連接配件
- 使用 3 節(jié) AAA 電池的電池座供電(有使用鋰聚合物的可選附件)
- 盒子里還有一條紙軌(白底黑線),可用于線跟隨器模式
Cutebot 已經(jīng)組裝好,您只需將微控制器板插入插槽、超聲波傳感器和電池座。當我在 Instagram 上發(fā)布這個機器人的帖子時,一些人聯(lián)系我說已經(jīng)安裝好的電路板在組裝階段并沒有帶來樂趣。是的,這是一個正確的觀點,但考慮到整個機器人的重量約為 120 克(包括電池和微控制器板)并且適合一只手。
為了達到這個體積,機器人是使用 SMD 組件制造的,并且不容易在家中或學校組裝(還考慮到由于不正確的操作而導致的故障)。最后一個特點:Cutebot 真的很安靜!移動時幾乎聽不到。
準備 Pico:ed
首先,您必須在 Pico:ed 板上上傳CircuitPython 解釋器。拿起 Pico:ed 并按住Bootsel按鈕。Bootsel 按鈕是板背面微型 USB 連接器左側的按鈕:
在按住該按鈕的同時,使用 USB 電纜將電路板連接到計算機:等待幾秒鐘,必須出現(xiàn)一個名為RPI-RP2的新存儲單元。
獎勵信息這是所有 Raspberry Pi RP2040 開發(fā)板的工作方式。使用 Python 分支和 C++ 對其進行編程的唯一區(qū)別在于,對于 Python,您僅在第一次上傳 Python 解釋器,然后您可以將源代碼(其中許多)作為 .py 文件(不在本 RPI-RP2 單元中)上傳但另一個 circuitpython 解釋器將創(chuàng)建),而在 C++ 中編程時,您將編譯代碼以獲得要在引導加載程序模式下上傳的.uf2文件(C/C++ 是一種編譯語言)。
現(xiàn)在您必須上傳 CircuitPython 解釋器。您可以從 CircuitPython 官方網(wǎng)站下載。這是鏈接。
獎勵信息使用這個用于 Pico:ed 的官方 Adafruit Circuitpython 解釋器,你不需要上傳庫來使用一些功能,例如 led 驅動器 IS31FL3731,或者蜂鳴器,例如:包括這個特定板所需的一切。這些功能稱為FrozenModules :它們是已嵌入 CircuitPython 解釋器的庫。包含的模塊有:adafruit_is31fl3731、adafruit_motor、adafruit_ticks、asyncio、elecfreaks_music、neopixel、picoed
下載.uf2文件后,您只需將該文件拖放到計算機上的RPI-RPI2存儲單元上。等待幾秒鐘:RPI-RPI2單元將消失,一個名為CIRCUITPY的新單元將出現(xiàn)。
在啟動時(我的意思是不按 bootsel 按鈕),您在引導加載程序模式下上傳的.uf2開始:在這種情況下將是 CircuitPython 解釋器,它將使電路板作為 CIRCUITPY 單元可見:在這里您可以上傳具有.py擴展名。CircuitPython 解釋器啟動后,它將搜索一個特定的命名文件(我們稍后會看到)以使其啟動,否則它什么都不做。
現(xiàn)在您可以開始用 Circuitpython 語言編寫代碼并將它們上傳到板上。
即使您可以使用簡單的文本編輯器(Python 程序是簡單的文本文件)執(zhí)行此操作,然后使用拖放操作上傳文件,也開發(fā)了更強大的工具來以安全的方式執(zhí)行此操作,避免損壞文件的內(nèi)容閃存(記住不安全的存儲單元刪除會損壞代碼)并使用稱為REPL (讀取評估打印循環(huán))的功能,該功能允許您從命令行進行一些調試和啟動程序。
我說過你可以將你的.py文件上傳到創(chuàng)建的內(nèi)存存儲單元上,但是文件不會在開機時自動執(zhí)行。如果你想讓程序在給電路板供電時自動啟動,你必須將其命名為code.txt或code.py或main.py或main.txt - 這是確切的優(yōu)先順序。如果您放置一個名為code.py的文件和另一個名為main.py的文件,則只有code.py會自動啟動。如果您將文件命名為與此不同,您可以使用 REPL 功能啟動它(我們很快就會看到),因此這個平臺對于在同一塊板上存儲許多軟件實驗和調試非常有用。
我喜歡使用Thonny IDE :它可能是最常用于 Python / Python 分支的,我喜歡它的工作方式(另一個類似的編輯器是Mu。Mu是 Adafruit 的建議)。
下載Thonny(我在上面放的鏈接是Github Release page——在那里你可以下載一個不需要安裝的便攜版本,無論如何你也可以去Thonny官方頁面),安裝/啟動它;現(xiàn)在我們將進行一些快速設置以使其與我們的 Pico:ed 一起使用。
單擊工具/選項:
單擊Interpreter并從下面的列表中選擇CircuitPython (generic) ,然后按 OK:
現(xiàn)在使文件和外殼窗口可見,因為這些功能對于向開發(fā)板上傳/下載文件以及與 REPL 交互非常有用。單擊“查看”菜單,然后選擇“文件”和“外殼”:
棘手的設置都完成了!
為確保 Pico:ed 已連接到 Thonny,shell 窗口中必須出現(xiàn)與此類似的文字(連接電路板并按下Thonny 上的停止按鈕):
如果顯示一些錯誤,請轉到本教程中的故障排除段落。
shell中的那3個>>>是REPL的提示符,等待命令或者準備寫東西
出色地。即使我們上傳的 CircuitPython 解釋器是為使用所有 Pico:ed 功能而制作的,現(xiàn)在我們必須上傳使用 Cutebot 功能所需的庫(用于驅動電機、使用超聲波傳感器等)。
我說過我們已經(jīng)有一些FrozenModules,是的:這對特定的板有效。Smart Cutebot 是連接到 Pico:ed 的附件板,因此沒有凍結的模塊,因此我們必須手動添加它們。
從此鏈接下載 cutebot 庫(它是一個名為cutebot.py 的文件)。
該鏈接將從所在的 Github 存儲庫以 zip 格式下載庫,并且始終是最新上傳的。該庫的 Github 存儲庫位于此鏈接。
如果我們也想使用紅外遙控功能(注意:包裝中不包含紅外遙控),我們還可以從此鏈接下載 Adafruit Circuitpython紅外遙控庫。
讓我們解壓縮文件,我們從下載中需要的唯一文件稱為cutebot.py和adafruit_irremote.py:將它們復制到計算機或外部驅動器上的文件夾中,以便您可以在接下來的段落中快速找到它們。
我們必須將這 2 個文件上傳到 Pico:ed 上一個名為lib的特殊文件夾中,我們的代碼中將在該文件夾中導入庫。
從 Thonny 右鍵單擊?? circuitpythondevice窗口并選擇NewDirectory
在下一個窗口中寫入lib ,然后按OK 。現(xiàn)在雙擊lib文件夾,這樣您現(xiàn)在就位于 Pico:ed 上的該文件夾中。
從上面顯示計算機內(nèi)容的窗口(文件)中,搜索放置cutebot.py和adafruit_irremote.py的文件夾,選擇它們并單擊鼠標右鍵。選擇上傳到/lib
等待幾秒鐘以允許上傳。現(xiàn)在您將在CircuitPython 設備窗口中看到這些庫。現(xiàn)在您可以退出設備上的lib文件夾以返回根目錄,以便您可以在此處保存您的程序:只需單擊CircuitPython 設備寫入。
我們上傳的這兩個庫是單個文件庫。會發(fā)生其他庫由文件夾中的更多文件組成的情況:在這種情況下,您將上傳整個文件夾,因此/lib文件夾中會有子文件夾。
出色地。一切就緒。讓我們編寫一個簡單的程序上傳到 Pico:ed,看看是否一切正常。
在 Thonny 上單擊文件,然后單擊新建。將出現(xiàn)一個空的編輯器窗口。復制并粘貼此代碼:
from picoed import display
while True:
display.scroll("HACKSTER.IO")
按播放按鈕:
由于這個文件是新的,沒有保存,Thonny 會要求您保存它,因此會出現(xiàn)一個窗口詢問保存位置:如果在計算機上或在 CircuitPython 設備上,我們將按 che CircuitPythonDevice按鈕。
然后你必須輸入一個名字:write scroll.py然后ok
該程序將開始在 LED 矩陣上顯示HACKSTER.IO 的文字。
很簡單,不是嗎?
我們可以在不啟動文件的情況下按“保存”按鈕來保存文件。讓我們指出一些事情: - 一個非常常見的錯誤是沒有將.py擴展名放在文件的末尾:即使按下播放按鈕文件無論如何都會被執(zhí)行,編輯器中的語法突出顯示將不起作用。 -如果你想讓文件在開機時自動啟動,你必須像我上面說的那樣調用它:例如code.py或main.py,在所有其他情況下你可以讓程序在你編寫后按下 Thonny 的播放按鈕開始或者在編輯器中加載(雙擊.py文件)
出色地。現(xiàn)在是組裝 Cutebot 的時候了。
準備智能可愛機器人
這里有幾件事要做:
插入超聲波傳感器。前面有一個 4x2 母接頭(機器人的前面是兩個 RGB LED 所在的位置。超聲波傳感器接頭必須插入最前面的孔中:
將自粘膠帶貼在電池座背面
將電池座連接器連接到機器人中心的插座中,在電機之間穿過電纜,然后將電池座粘在電機外殼上,注意與 Pico:ed 插槽保持間隙:最好對齊電池座的中心如圖所示帶輪軸:
確保 ON/OFF 開關處于最右邊的位置 (OFF),然后將 3 節(jié) AAA 電池(不包含在供貨范圍內(nèi))放入電池座中。
將 Pico:ed 插入其面向前面 LED 矩陣的插槽中
組裝完成!讓我們編寫第一個程序來測試 linefollower
編程實例
在 ELECFREAKS wiki 上,有一個將 Smart Cutebot 與 Pico:ed 結合使用的分步教程。每節(jié)課都教如何每次使用一個元素。我建議您先按照他們的教程進行操作,然后嘗試下面的 Line Follower 示例。
線跟隨器
我編寫了自己的巡線器程序,試圖將 Pico:ed 和 Cutebot 的大部分功能放入其中:我在前面使用了蜂鳴器、點陣顯示器和 RGB LED。
這個巡線程序以這種方式工作:
- 打開機器人后,等待點陣顯示屏上出現(xiàn)“興奮”的臉
- 將機器人放在紙張軌道上,注意前面的兩個小 smd 藍色 LED 燈都亮著,表示黑色軌道就在紅外傳感器下方
- 按下 Pico:ed 上的“A”按鈕(這是你左邊的那個,機器人的臉在你面前)
- 按下按鈕后,正面 BIG LED 會呈藍白色閃爍,并會播放類似警車的聲音
- 機器人開始沿著軌道移動。前面的大 LED 變成綠色。沿直線移動時,點陣顯示器(面部)上會出現(xiàn)微笑。當機器人轉動時,顯示屏上描繪的臉會根據(jù)方向向右或向左看
- 如果機器人偏離軌道,LED 變?yōu)榧t色,面部變化,機器人轉圈試圖恢復線路
- 如果你按下“B”按鈕,機器人就會停止,LED 會變紅,面部也會發(fā)生變化。按“A”按鈕重新啟動
您可以在我的 Cutebot Github 存儲庫中下載我的示例,請點擊此處。
以下是一些注意事項和提示:
- 在我的示例中,機器人運行速度比官方 ELECFREAKS 示例慢。這是一件需要的事情,因為我也在使用點陣顯示器,即使沒有人注意到它,更新點陣顯示器時也會有一些延遲,這會導致線跟蹤操作延遲,使機器人不斷偏離軌道,所以最快的解決方案是讓機器人緩慢移動。
- 沿線跟蹤使用超聲波傳感器模塊具有挑戰(zhàn)性,因為超聲波模塊需要時間并且不能連續(xù)調用(測量之間必須至少允許 500 毫秒),因此您不能簡單地將距離讀數(shù)放入跟蹤循環(huán)中,否則會發(fā)生奇怪的錯誤,使機器人卡住在無限循環(huán)中。恕我直言,最好的方法是使用單獨/異步任務來執(zhí)行此操作(這對您來說是一個專業(yè)挑戰(zhàn))。
- 機箱下的 2 neopixel 可以使用 CircuitPython 的 Adafruit Neopixel 庫(它是一個凍結模塊)進行管理。
故障排除
有時您會注意到 Thonny IDE 卡住了,找不到顯示錯誤消息的開發(fā)板。在這種情況下,您必須嘗試(從第一件事到最后):
- 按下停止按鈕
- 斷開并重新連接 USB 數(shù)據(jù)線,等待 10 秒,然后按下停止按鈕
- 關閉并重新啟動 Thonny IDE,重復上述所有操作
- 在舊的 Microsoft Windows 版本上,有時即使未連接CIRCUITPY單元也會在計算機設備中可見:在這種情況下,您只能重新啟動 PC。我在 Windows 7 上總是出現(xiàn)這種故障,而在 Windows 10 和 11 上則不會發(fā)生這種情況。無論如何最好在代碼上傳后安全地斷開 Circuitpy 單元。
在其他情況下,您會看到 main.py 不會執(zhí)行:當代碼中存在錯誤導致 python 解釋器卡住導致無限循環(huán)時,就會發(fā)生這種情況。在這種情況下,將電路板連接到計算機,打開 thonny,加載程序并按播放按鈕執(zhí)行程序,以便您可以在終端窗口中讀取錯誤。
在其他情況下,您只是將文件命名為與main.py或code.py不同的名稱,但無論如何您都希望它在開機時自啟動:它不能!
非常常見的編程錯誤:
- Python 適用于縮進(沒有大括號!),所以請檢查你的縮進
- 我經(jīng)常犯的錯誤是沒有將冒號放在 IF 語句之后。我真的總是犯這個錯誤,所以我在我的顯示器上貼了一張便利貼,上面寫著:IF 后面的冒號!
- 在函數(shù)外聲明的變量是全局的,但是如果你想在函數(shù)中使用它們,你必須使用關鍵字global否則你會遇到一個not previously declared variable錯誤或類似的東西
鏈接
- V3H 入門套件硬件手冊(R20UT4302ED0100)
- [CS+] Renesas RX66T Smart Configurator 入門套件教程手冊 Rev.1.00
- [CS+] Renesas RX72T Smart Configurator 入門套件教程手冊 Rev.1.00
- Raspberry Pi Pico多功能入門套件
- V3H 入門套件硬件手冊(R20UT4302ED0100)
- [CS+] Renesas RX66T Smart Configurator 入門套件教程手冊 Rev.1.00
- [CS+] Renesas RX72T Smart Configurator 入門套件教程手冊 Rev.1.00
- 樹莓派pico入門學習筆記(一)
- GitHub入門與實踐 0次下載
- 松下PLC入門基礎培訓課件下載 125次下載
- PIC32以太網(wǎng)入門工具包的中文介紹和使用的詳細概述
- PSIM仿真入門學習-課件下載 186次下載
- 樂華R 3318ED彩電電路圖
- JVC C211ED彩電電路圖
- 金長城1772ED顯示器圖紙
- 松下Smart Projector Control App手機配置無線控制使用介紹 474次閱讀
- 使用PICO示波器配合PICO軟件的邏輯觸發(fā)功能 285次閱讀
- 樹莓派Pico文件系統(tǒng)應用:數(shù)據(jù)記錄器 1000次閱讀
- swagger和smart-doc的區(qū)別 891次閱讀
- swagger和smart-doc的區(qū)別 418次閱讀
- Pico W的無線功能 883次閱讀
- S7-200 SMART如何下載程序? 4115次閱讀
- 介紹NimBLE軟件包在RT-Thread Smart下的使用 1227次閱讀
- 如何用RaspberryPi Pico來控制直流電機? 3970次閱讀
- 基于Raspberry Pi Pico開發(fā)先進的家庭自動化系統(tǒng) 2850次閱讀
- 友善之臂Smart210核心板介紹 9603次閱讀
- 友善之臂Smart6818核心板介紹 3288次閱讀
- 使用DLP Pico產(chǎn)品設計更小的移動投影和顯示應用 1301次閱讀
- Pico示波器進行電源及其功率因數(shù)的分析 2383次閱讀
- PLC入門需要多久_PLC入門需要看哪些書籍 1.7w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多