007版更新日誌
前言歡迎查看童芯派系列產品的更新日誌,該日誌包含了童芯派的大版本更新細節。 我們的大部分更新都基於相容過往,增量更新的原則,因此你無需擔心舊有程式無法繼續使用。 更新日誌的內容很細碎且涉及一定背景知識的,因此我們並不建議所有讀者都閱讀更新日誌,這可能是困惑且沒有必要的。
更新摘要- 007 相對 006 版本增加了WiFi場控的底層特性,用於後續正式功能的上線。
- 優化了CyberOS的開機介面和功能表介面,現在你可以更好地使用預製程式了。
- 我們還解決了一系列累積的 BUG,同時增加了對於我們的 mBot2 擴展板續航增強版 的支持。
- Network 相關 API 的一些 BUG 得了修復,以支持用戶更進一步地開發 CyberPi 在通信工程等領域的教學能力。
- 同時,cyberpi 的 Python3 庫將支持 mBot2 的相關 Python3 API。
- 8×16 LED點陣與四路顏色感測器模組現支援更多的積木塊及功能。
版本構成上線日期 | 9月30日 | 硬體版本 | CyberPi PCB V1.1 Pocket Shield PCB V1.1 mBot2 Shield PCB V1.1 (PCBA V1.0) mBot2 Shield PCB V1.2 *mBot2 擴展板V1.2將新增額外的外接電池擴展介面,助力 mBot2 應用於更高性能需求的相關賽項上。 | 固件版本 | CyberPi 007 固件(NEW) Pocket Shield 006 固件 mBot2 Shield 004 固件(NEW) | 積木外掛程式 | cyberpi 1.1.20(NEW) pocket_shield 0.03 mbot2 0.02 mbuild_quad_color_sensor 0.02 cyberpi_mbuild_ultrasonic2 0.01 cyberpi_mbuild_science 0.01 halocode_network 0.0.2(NEW) | 慧程式設計環境 | 網頁版環境 1.0.4 用戶端版本 5.3.1 移動端版本 2.1.3 |
新特性 WiFi 場控 433 場控下,賽事盒子通過 433 頻段與機器人上的電源管理模組進行通信,實現對機器人的控制和狀態讀取。 WiFi 場控下,其餘不變,但賽事盒子通過基於 WiFi 的 ESP32_NOW 協議來對機器人進行交付。未來,所有涉及使用童芯派的賽項,都將基於 WiFi 場控實現對機器人的控制和狀態讀取。
CyberOS 介面示意 在 CyberOS 介面實現如下的介面以讓運行著 MakeX執裁工具 APP的手機掃碼。 通過路徑為:設置-關於本機 ,進入如下介面,使用運行著 MakeX執裁工具 APP的手機掃碼,實現手機、賽事盒子、CyberPi 間無線通訊。 基於 WiFi 場控技術,MakeX執裁工具APP 將通過賽事盒子實現對賽場中機器人的暫停、軟重啟及狀態監測等諸多功能。(我們計畫在22賽季的部分賽事中使用該功能)
配套積木塊及 micro-python API
積木塊(僅支援上傳模式) | micro-python |
該積木在CyberPi 硬體設備-感知積木分類下) | cyberpi.is_makex_mode(name) 判斷 CyberPi 處於何種比賽狀態。 參數:namestr,代表可能處在的比賽狀態。有效範圍為: "auto" :自動模式 "manual" :手動模式 返回值 bool。 注意:有可能處於兩個都不是的狀態,這取決於你對於 CyberPi 在未連接場控盒子前的預設狀態定義。 |
| event.is_makex_state(name) 當 CyberPi 收到指令進入對應狀態後觸發。參數:namestr,代表可能處在的比賽狀態。有效範圍為: "auto" :自動模式 "manual" :手動模式 |
藍牙手柄積木的正式支持 007固件將正式支持如下藍牙手柄的積木塊
底盤校準 新增的底盤校準功能,使得 mBot2 小車在更改輪距和輪徑後,依舊能夠通過再次校準,智慧調節轉向係數,較精准地執行“mBot2 轉向90° ”之類的指令。該功能也能夠部分地對抗因為小車的不規範搭建而造成的轉向不准的問題。(但請注意,該功能不是萬能的,若需要恢復該功能,請使用“重置底盤參數”) 積木塊(支援上傳模式及線上模式) | micro-python 及 Python3 | | mbot2.set_auto() mbot2.reset() |
8×16 LED點陣支援表情呈現 我們在程小奔中設計的大量表情應用於 CyberPi 的 8×16 LED 點陣 擴展。現在,你可以利用該功能配合 mBot2,更好地製作一個有感情的機器人了。 積木塊(支援上傳模式及線上模式) | micro-python 及 Python3 |
| cyberpi.emotion.look_up() cyberpi.emotion.look_down() cyberpi.emotion.look_left() cyberpi.emotion.look_right() cyberpi.emotion.look_around() cyberpi.emotion.blink() cyberpi.emotion.smile() cyberpi.emotion.yeah() cyberpi.emotion.naughty() cyberpi.emotion.proud() cyberpi.emotion.yummy() cyberpi.emotion.uh_oh() cyberpi.emotion.wow() cyberpi.emotion.hurt() cyberpi.emotion.sad() cyberpi.emotion.angry() cyberpi.emotion.hello() cyberpi.emotion.sprint() cyberpi.emotion.startle() cyberpi.emotion.shiver() cyberpi.emotion.dizzy() cyberpi.emotion.sleepy() cyberpi.emotion.zzz() cyberpi.emotion.wake_up() cyberpi.emotion.yes() cyberpi.emotion.no() | 正式上線 Network 在007中,我們修復了用戶向我們回饋的一系列BUG,對Network擴展進行了正式的上線。現在你可以將其應用於網路教學中了。 我們也將持續收集使用者意見,對該部分做進一步的改良,以充分釋放童芯派的教學潛力。 積木塊(支援線上、上傳模式) | 功能描述 | micro-python、Python3 |
| | cyberpi.network.config_ap(ssid, password) cyberpi.network.config_sta(ssid, password) |
| 判斷network是否連接 | cyberpi.network.is_connect() |
| | cyberpi.network.get_ip() cyberpi.network.get_subnet_mark() cyberpi.network.get_gateway() |
| 參數ip為str 例:’192.168.4.1‘ | cyberpi.network.set_ip(ip) | | | |
| | cyberpi.network.create_client() |
| ip : '192.168.4.1' port: 5050 | cyberpi.network.client_connect_to(ip, port) | | | |
| | cyberpi.network.create_server(port) |
| | cyberpi.network.server_wait_connection(port) |
| | cyberpi.network.server_get_latest_connection(port) |
| | cyberpi.network.server_get_connections(port) |
| | cyberpi.network.server_get_connections(port)[index] | | | |
| 使用該 API 發送的消息會在末尾帶上“分行符號” data:str ip_to:str port:int | cyberpi.network.write_line(data, ip_to, port) |
| 當運行此 API 後,CyberPi 會在自己的指定埠上監聽來自 192.168.4.1 的消息,當接收到“分行符號”時,認為 CyberPi 收到了完整的資料行,返回收到的消息。 ip_from:str port:int | cyberpi.network.read_line(ip_from, port) | | | |
| data:str ip_to:str port:int | cyberpi.network.write(data, ip_to, port) |
| 當運行此 API 後,CyberPi 會在自己的指定埠上監聽來自 192.168.4.1 的消息,直至接收到的資料長度達到指定的長度時,CyberPi 將返回一個指定長度的消息。 ip_from:str data_size:int port:int | cyberpi.network.read(ip_from, data_size, port) |
簡易網路是針對要體驗網路功能的部分概念而設計的簡化積木塊,通過鎖死了一些預設設置實現了對網路積木的使用。 簡易網路的場景是,CyberPi 在該模式下預設為 STA,默認為用戶端,與其他非 CyberPi 設備(比如客戶的手機,局域網內的伺服器)建立連接。並默認以 5050 埠進行連接,實現資料的通信。 積木塊(支援線上、上傳模式) | 功能描述 | micro-python、Python3 |
| 將 CyberPi 與對應ssid,password,ip 位址的 AP 建立連接。把自己設置為用戶端。 | cyberpi.network.config_sta(ssid, password) cyberpi.network.create_client() cyberpi.network.client_connect_to(ip, port=5050) |
| 更改自身的 IP 位址 | cyberpi.network.set_ip(ip) | | | |
| 與特定位址的“伺服器”連接,然後發送消息 | cyberpi.network.client_connect_to(ip, port=5050) cyberpi.network.write_line(data, ip_to, port) |
| 讀取從特定伺服器 | cyberpi.network.read_line(ip_from, port=5050) |
| | cyberpi.network.get_ip() cyberpi.network.get_subnet_mark() cyberpi.network.get_gateway() |
| | cyberpi.network.is_connect() |
|