發(fā)現(xiàn)Elecrow RP2350 Pico W5:功能和編程
Elecrow Pico W5是基于Raspberry的RP2350的電路板,具有獨特的特性,使其與眾不同。
介紹
自2024年8月推出以來,Raspberry的RP2350微控制器已被各種設(shè)計人員和制造商采用來開發(fā)自己的電路板。從Raspberry Pico Version 2到具有特定增強功能的變體,例如增加內(nèi)存或額外的外設(shè),該芯片推動了新一代設(shè)備的發(fā)展。
在這些選擇中,elecow Pico W5脫穎而出,不僅包含8mb閃存,而且還具有2.4 GHz和5.8 GHz頻段的WiFi連接。
它還包括藍牙5.0,使其成為物聯(lián)網(wǎng)(IoT)項目和許多其他應(yīng)用程序的絕佳選擇。
在本文中,我將向您介紹Pico W5的主要特性,最重要的是,介紹如何充分利用其連接功能。在第一部分中,我們將探索它與Arduino的使用,而在接下來的文章中,我們將看到如何使用MicroPython。
特性
讓我們快速瀏覽一下這塊板的主要特點:
CPU
Pico W5由Raspberry的新RP2350提供支持,它獨特地包括兩個不同的CPU塊-一個基于arm,另一個是RISC-V,都具有雙核。此外,它比它的前身RP2040更快、更強大。
RP2350高達150mhz
雙核架構(gòu),可在Arm Cortex-M33或Hazard3 RISC-V之間選擇
內(nèi)存
Pico W5因其豐富的閃存容量而脫穎而出:
8 mb閃光
520kb RAM(集成在RP2350中)
GPIO
該板保持與Raspberry Pico 2相同的尺寸和外形因素,確保與為其設(shè)計的模塊和擴展兼容。
?24個多功能GPIO引腳(比Pico 2少兩個,因為它們用于WiFi模塊)
?兼容樹莓Pico 2
?重置按鈕
?啟動按鈕
?用戶可控板載LED
?用于焊接電路板作為模塊的柱狀引腳
?USB-C接口,用于電源和編程
如下圖所示為該板的引腳:
連接
Pico W5的連接由B&T的BW16模塊供電,該模塊集成了Realtek RTL7820芯片。
支持2.4 GHz和5.8 GHz頻段的WiFi 802.11a/b/g/n
藍牙LE與藍牙5.0
BW16模塊通過UART接口連接到RP2350,使用GPIO4和GPIO5。它包括AiThinker固件,實現(xiàn)WiFi網(wǎng)絡(luò)接入、HTTP請求、MQTT協(xié)議支持和藍牙通信等常用功能。這些功能使用AT命令進行控制。
編程
Pico W5可以使用多種語言編程,最流行的是MicroPython和C/ c++,它也兼容Arduino。
下面,我們將介紹如何使用Arduino對其進行編程,在接下來的文章中,我們將探索如何使用MicroPython進行相同的編程。
設(shè)置Arduino IDE 2
要使用Arduino對Pico W5進行編程,首先需要安裝Arduino IDE 2,這是Arduino開發(fā)環(huán)境的最新改進版本。
您可以從Arduino官方網(wǎng)站下載安裝程序。選擇與您的操作系統(tǒng)(Windows、macOS或Linux)兼容的版本,然后按照安裝步驟操作。這個過程很簡單,與安裝任何其他程序類似。
一旦安裝了Arduino IDE,您需要使用board Manager添加board支持。
這是一個簡單的過程,如果您已經(jīng)在IDE中使用過其他電路板(如ESP32),那么您可能對它很熟悉。
首先,通過從菜單中選擇File > preferences(或按Control +逗號)打開IDE首選項:
如果您已經(jīng)有另一個展板的URL,不要刪除它——只需添加下面的新展板即可。
點擊“OK”按鈕,進入Arduino IDE左側(cè)工具欄中的Board Manager。
在搜索框中,輸入RP2350。您將看到基于RP2040和RP2350的各種板的安裝程序。點擊“INSTALL”繼續(xù)。
幾分鐘后,將下載并安裝所有必需的軟件包。
接下來,使用USB電纜將電路板連接到計算機。確保它被識別為新設(shè)備——請記住,有些USB電纜只提供電源,不支持數(shù)據(jù)傳輸。
從菜單中選擇單板:
工具→單板→樹莓派Pico RP2040/RP2350→通用RP2350
接下來,通過選擇指定連接板的端口:
工具→接口
在Windows中,查找COM端口。第一次,你可能會看到一些不同的東西,比如“UF2 Board”,但在上傳第一個代碼后,它將顯示為COM端口。
最后,將閃存大小設(shè)置為8 MB。
一旦你完成了這些步驟,你的Arduino IDE完全配置為編程Pico W5。你可以通過運行“Blink”程序來測試它,你可以在下面找到:
文件→示例
例子
現(xiàn)在,讓我們探索一些編程示例。由于GPIO控制和其他基本功能與Pico 2相同,因此我們將重點關(guān)注連接,這是該板的關(guān)鍵區(qū)別特征。
第一個示例是一個簡單的“終端”,它將您在串行監(jiān)視器中輸入的內(nèi)容鏡像到BW16模塊,反之亦然。這允許您試驗不同的AT命令。
這里記錄了所有可用的AT命令。
下面是對一些測試命令的響應(yīng)。
無線網(wǎng)絡(luò)連接
為了管理與WiFi網(wǎng)絡(luò)的連接,固件提供了幾個命令,包括:
?AT+WMODE:設(shè)置或查詢操作模式
?AT+WJAP:連接到網(wǎng)絡(luò)
?AT+WSCAN:掃描可用網(wǎng)絡(luò)
本節(jié)以STA方式連接單板至WiFi網(wǎng)絡(luò)為例:
無論連接2.4 GHz還是5.8 GHz網(wǎng)絡(luò),使用的步驟和命令都是相同的。
HTTP請求
這個示例演示了如何使用HTTP向API發(fā)出GET請求。
該請求使用的命令為AT+HTTPCLIENTLINE,格式如下:
您可以在這里找到該命令的完整文檔。
對于本例,我向open-meteo.com API發(fā)出了一個GET請求,將我所在位置的經(jīng)緯度作為參數(shù)傳遞,并將請求的數(shù)據(jù)(current=temperature_2m)作為參數(shù)傳遞,該數(shù)據(jù)表示距離地面2米處的當前溫度。
響應(yīng)為JSON格式,如下所示:
在所有返回的信息中,您可以在最后看到請求的溫度值(26.5度)。
MQTT
在本例中,我將向您展示如何連接到MQTT服務(wù)器并將數(shù)據(jù)發(fā)布到主題。
連接到WiFi網(wǎng)絡(luò)后,通過發(fā)送多個AT+MQTT命令來配置MQTT代理連接,這些命令具有不同的參數(shù):代理地址、連接端口、連接方法和客戶端ID
.然后,使用AT+MQTT命令指定的參數(shù)建立連接。
然后,每5秒向PicoW5主題發(fā)布一個簡單的文本“Hello”。
可以使用MQTTX這樣的客戶端查看代理上接收到的數(shù)據(jù):
如果觀察到MQTT連接錯誤,應(yīng)該重新啟動單板以終止之前打開的任何連接,然后再試一次。
藍牙
最后,這里是一個使用Pico W5的低功耗藍牙(BLE)接口的例子。
這是一個簡單的程序,將BW16模塊配置為Slave模式,通過藍牙接收文本數(shù)據(jù)。如果接收到的文本為“LED=ON”,則Pico上的板載LED打開,如果接收到“LED=OFF”,則LED關(guān)閉。
為了測試這個功能,我使用了一個名為Arduino Bluetooth Controller for Android的簡單應(yīng)用程序,你可以從app Store下載。有許多類似的應(yīng)用程序可用,所以你可以使用任何其他的服務(wù)相同的目的。
在應(yīng)用程序中,我使用了Switch功能,該功能允許定義在屏幕上開關(guān)的兩個位置發(fā)送的文本。這些值必須根據(jù)代碼所期望的設(shè)置:“LED=ON”表示打開位置,“LED=OFF”表示關(guān)閉位置。
存儲庫
本文中發(fā)布的所有示例程序,以及我將繼續(xù)為Pico W5添加的其他示例程序,都可以在這個存儲庫中找到
結(jié)論
在本文中,我向您介紹了來自Elecrow的RP2350 Pico W5的主要功能和一些應(yīng)用程序。我們探索了它的技術(shù)規(guī)格,重點介紹了它的閃存容量、USB-C接口以及支持5.8 GHz WiFi網(wǎng)絡(luò)的能力。我們還分析了可用的編程選項,并逐步介紹了如何設(shè)置Arduino IDE以開始使用它。
最后,我介紹了幾個示例程序,演示了如何使用內(nèi)置BW16模塊的AT命令來執(zhí)行基本的連接功能,如WiFi連接、HTTP請求、MQTT通信和BLE使用。
總之,Pico W5是一款功能強大的多功能電路板,非常適合物聯(lián)網(wǎng)應(yīng)用和家庭自動化。它與Raspberry Pico 2硬件的兼容性使其成為所有級別開發(fā)人員的絕佳選擇,使他們能夠在需要多種連接選項的項目中充分利用其潛力。此外,它在5.8 GHz網(wǎng)絡(luò)上運行的能力使其與市場上的許多其他電路板區(qū)別開來,提供更快,更穩(wěn)定的連接,特別是在2.4 GHz頻段因大量連接設(shè)備而擁擠的環(huán)境中。
本文編譯自hackster.io