加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

bom2buy可編程魔方2.0版已揭開它的神秘面紗

2019/03/14
261
閱讀需 38 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

?


bom2buy 魔方是一個可編程設備。從外觀看,它結(jié)構(gòu)簡單,沒有任何按鈕或顯示屏,其實它的底部和機身配有多種 LED,同時還配有麥克風、加速計和 USB 接口。

魔方開箱即用,在您學會編程后還可以體驗更多有趣的功能。


說明
首先,您可以在魔方的底部看到 10 個隨機閃亮的白色 LED。當拿在手里時,魔方有時會燈光閃爍。觀察一會兒您就可以發(fā)現(xiàn),每當有人拍手、擊打或周圍有很大噪聲時,指示燈就會閃爍,這其實表明了魔方內(nèi)部有麥克風,我們可以通過聲音來控制它的 LED。
?

部件

?

?

??????????????? ???????

連接計算機
如果將魔方與計算機建立通信,就可以支持更多功能。通信通過虛擬串行端口執(zhí)行,因此,如果計算機配有串口終端軟件 (RealTerm 或類似軟件),可以發(fā)送一個命令到魔方,它將給您返回相應的狀態(tài)或數(shù)據(jù)。串口通信配置為 9600、8、N、1。這個串口用于向魔方發(fā)送命令或參數(shù),獲取狀態(tài)、切換模式、開關(guān)指示燈等。不要忘記每個命令后面設置自動 CR 和 LF 字符,因為魔方的固件通過每個命令后面的這種字符進行識別。


命令行不區(qū)分大小寫,可以包含一個命令字 (或縮寫)、一個 (可選) 單字符操作數(shù)或一個 (可選) 數(shù)值數(shù)據(jù),彼此之間用空格隔開。除了 HELP (幫助) 命令,所有命令縮寫均為兩個字符。HELP (幫助) 命令的縮寫由一個問號代替。因此,如果輸入“?” (然后輸入 <CR> 和 <LF> ),將顯示 HELP (幫助) 屏幕。

如下圖所示:
?


上圖的幫助信息可供您了解魔方可以執(zhí)行的操作。當然啦,還有一些獨立功能是不需要通過終端軟件操作的。不過,USB 連接還是有必要的,至少您需要將魔方連接到電源。也就是說,您需要使用 USB 線將魔方連接到計算機,或者連接到 USB 充電器。

基本功能
魔方內(nèi)置兩種指示燈。一種位于魔方底部,由 10 個 LED 組成,稱為副燈;另一種位于魔方頂部,由 5 個大功率 LED 組成,稱為主燈。默認狀態(tài)下,底部指示燈隨機閃爍,可以通過模式(MODE) 命令 關(guān)閉 (OFF) 或永久打開 (ON),可設置 R (隨機)、P (永久) 或 D (熄滅)。默認狀態(tài)下,頂部指示燈常亮 (MODE 1) ,它也可以被關(guān)閉 (MODE 2)、逆時針依序發(fā)亮 (MODE 3)、順時針依序發(fā)亮 (MODE 4) 或閃爍 (MODE 5)。請注意,每個命令可輸入雙字符縮寫代替。

您也可以拍手或拍打桌子上的物體切換模式。通過這種方式操作時,必須分別記錄每個模式的拍打方式,這些方式是開關(guān)指示燈的“密碼”。我們在后面的“拍打方式編程”中再談。

狀態(tài) (STATUS) 命令用于讀取魔方當前狀態(tài): 起始閾值 (Attack)、衰減閾值 (Decay)、通知時長 (Notification)、延遲系數(shù) (Speed) 和模式 (Mode)。所有列出的參數(shù)都可以通過輸入 DEFAULT 來重置默認狀態(tài),我們會在后面的“高級命令”中詳談這些參數(shù)。

魔方內(nèi)置加速計 MEMS 傳感器,它檢測 X、Y 和 Z 軸的重力加速度,從而感知魔方的角度位置。輸入 ACCEL,可以讀取魔方當前位置。ACCEL_LOOP 命令以無限循環(huán)方式執(zhí)行相同的操作,您可以看到魔方旋轉(zhuǎn)和移動過程中,這些參數(shù)的變化。循環(huán)可通過發(fā)送字符 Q 終止 (這是唯一不需要 <CR> 和 <LF> 就可以發(fā)出的命令)。

正常操作期間,魔方每次轉(zhuǎn)到新位置時發(fā)送位置更改信息。試著翻轉(zhuǎn)一下魔方,它將顯示‘Cube Left’ (即魔方的左面朝下放置)、‘Cube Right’、‘Cube Bottom’等信息。此外,每種模式通過拍打方式改變后,將顯示“Clap 1” (即拍打方式 1 被魔方識別) 、“Clap 2” 等。兩個選項都可通過 MODE N 關(guān)閉,第一個選項可通過 MODE S (Side) 打開,第二個選項可以通過 MODE C (Clap) 打開。

拍打方式編程
想要通過編程讓主燈按某種拍打方式亮起 (MODE 1) ,需將魔方的左側(cè)朝下放置。如果已連接到計算機,終端軟件將顯示 "Cube Left"。同時,主燈亮一段時間 (這個時間段可以通過 NOTIF 命令來設置),然后熄滅?,F(xiàn)在,您可以拍手、打響指或用硬物或指甲輕輕敲打桌面(拍打的時間間隔才是唯一重要的參數(shù),而不是拍打的力度)。拍打方式應該為 3 到 31 下,否則不會被接受。完成拍打方式編程后靜等一會兒,直到魔方燈光重復相同的方式。然后,將魔方放回到正立位置 (底部向下),測試是否正常工作。所有可用模式最多可用五種拍打方式進行編程。以下列表是各模式對應的燈光效果和編程時需要將魔方放置的位置。

MODE1?? ?主燈亮?? ?左面朝下放置
MODE2?? ?主燈滅?? ?右面朝下放置
MODE3?? ?主燈逆時針依序發(fā)亮?? ?前面朝下放置
MODE4?? ?主燈順時針依序發(fā)亮?? ?后面朝下放置
MODE5?? ?主燈閃爍?? ?上面朝下放置(倒置)


如果您忘了其中任何一種拍打方式,只需將魔方傾倒到對應的一側(cè),靜等至少 3 秒鐘, 魔方將使用燈光表示拍打方式。


如果不喜歡新的方式,可以重置魔方 (輸入 PATTERN_RD,或斷開然后重新連接 USB 插頭),重新加載最后記錄的拍打方式 (如果有通過 PATTERN_WR 命令保存的話)。當完成所有的拍打方式的編程 (或重新編程,因為可以多次編程) 后,您可能想將方式記錄在內(nèi)部非易失性 EEPROM 存儲器中,這時您可以輸入 PATTERN_WR 命令,當魔方下次連接電源時,將重新加載上次記錄的拍打方式。

高級命令


以上命令可以讓您設置聲音的閾值,這個閾值將決定拍打的聲音是否會被魔方識別。如果閾值過高,有些拍打不會識別;如果過低,環(huán)境噪聲會被誤識別為拍打。因此,必須將閾值調(diào)整到最佳水平。您可以分別調(diào)整起始閾值和和衰減閾值。起始和衰減閾值默認值分別為 80 和 60。

?
Drawing represents the waveform of the typical clap signal
NOTIF n 魔方位置變化后通知 (燈亮) 時長 (n × 13 ms)
當魔方從正立位置變動為其他位置時,例如進行拍打方式編程時將魔方傾向一側(cè),主燈會亮起一段時間,以表示記錄拍打方式編程之前的保護期。這個時長可以使用此命令預設。默認的值是 110,也就是說 NOTIF 時長是 1.4 s。

SPEED n 定時功能延遲系數(shù) (n = 延遲系數(shù))
有些定時功能可以使用這個系數(shù)來達到延遲 (如 ACCEL_LOOP 和 MODE 5 閃爍功能)。默認延遲系數(shù)為 1。

GET_PATTERN n 在屏幕上顯示拍打方式的計時 (n = MODE 1...5)
以十進制 ASCII 數(shù)字列出所編程模式 n 的拍打方式的計時 (以 13 ms 為一個時段)。注意,計時數(shù)會少于拍打數(shù),因為最后一次拍打后的計時是無限的??偣灿?31 個時段,記錄有若干拍打數(shù),所有未使用的時段表示為零。

PUT_PATTERN n 上傳拍打方式 (n = MODE 1...5)
您可以采用十進制 ASCII 數(shù)字編寫好拍打方式的計時,然后上傳到魔方。編寫好后上傳,和用拍打方式編程 (Pattern Programming) 來編寫,是一樣的效果。上傳的代碼格式應當和 GET_PATTERN 命令中所述展示的格式相同。

MODE n 設置模式和選項
MODE 命令后面只能跟一個參數(shù)。如果是數(shù)字 1…5,則會將模式 (MODE) 分別設置為 1...5。如果是字符 R、P 或 D,則會將副燈分別設置為隨機、永久或熄滅 (關(guān)閉) 狀態(tài)。如果是 S、C 或 N,魔方將會分別被重設為側(cè)面亮 (Side ON)、拍打亮 (Clap ON) 或者側(cè)面和拍打都關(guān)閉 (Side and Clap OFF)。(當魔方旋轉(zhuǎn)到新位置并且識別出有效的拍打方式時,魔方不會將報告發(fā)送到終端)。

PATTERN_WR 所有拍打方式寫入內(nèi)部 EEPROM
這個命令將所有拍打方式從易失性 RAM 復制到內(nèi)部非易失性 EEPROM。執(zhí)行 PATTERN_WR 命令時,以前保存的拍打方式不再使用,新方式將在下一次接通電源時加載。

PATTERN_RD 從內(nèi)部 EEPROM 讀取所有拍打方式
將所有拍打方式從內(nèi)部非易失性 EEPROM 讀入 RAM。每次接通電源時自動執(zhí)行這個命令。

WRITE 將參數(shù)寫入內(nèi)部 EEPROM
將這些參數(shù)從易失性 RAM 復制到內(nèi)部非易失性 EEPROM: 起始閾值 (Attack)、衰減閾值 (Decay)、通知時長 (Notification)、延遲系數(shù) (Speed) 和模式 (Mode)。執(zhí)行 PATTERN_WR 命令時, 以前保存的參數(shù)不再使用,新參數(shù)將在下一次接通電源時加載。

READ 從內(nèi)部 EEPROM 中讀取參數(shù)
將這些參數(shù)從內(nèi)部非易失性 EEPROM 讀入 RAM: 起始閾值 (Attack)、衰減閾值 (Decay)、通知時長 (Notification)、延遲系數(shù) (Speed) 和模式 (Mode)。每次接通電源時自動執(zhí)行這個命令。

STATUS 顯示當前狀態(tài)
在屏幕上顯示這些狀態(tài)參數(shù):起始閾值 (Attack)、衰減閾值 (Decay)、通知時長 (Notification)、延遲系數(shù) (Speed) 和模式 (Mode)。

DEFAULT 恢復出廠默認值
所有參數(shù)將預設為默認值,并刪除所有拍打方式。

出品方
所有電子產(chǎn)品 (電路板、固件) 由 Voja Antonic 開發(fā),外殼由 Giovanni Salinas 在加利福尼亞州帕薩迪納 Supplyframe 設計實驗室設計和開發(fā)。

關(guān)于魔方的 1.0 版本,你可以在《一個小方塊顛覆工程是想象,它能做的不只是個控制器》這篇文章中看到詳細信息。

與非網(wǎng)原創(chuàng)內(nèi)容,未經(jīng)許可,不得轉(zhuǎn)載!

有人說硬件技術(shù)將很快達到極限,而在我們看來,硬件創(chuàng)新,尤其是中國硬件工程師的創(chuàng)新,還遠未走到盡頭,而只是剛剛開始。作為致力于為全球硬件開發(fā)者提供技術(shù)共享服務的平臺,與非網(wǎng)母公司 SupplyFrame 旗下最大的全球硬件開發(fā)者社區(qū) Hackaday.com 已連續(xù)五年舉辦全球硬件開發(fā)者大賽 Hackadayprize,有超過 3000 多個硬件團隊在這個賽事中互動交流、切磋技藝。



這個《硬件改變世界》系列,我們挑選在前幾屆 Hackadayprize 大賽中獲獎的優(yōu)秀作品加以展示,硬件技術(shù)可以多有意思,硬件開發(fā)者可以多有創(chuàng)意,從這些作品中你可以看到。



2019 年 3 月,Hackadayprize 中國區(qū)賽事將隆重開啟,我們很期待看到國內(nèi)的硬件開發(fā)者大開腦洞、大展技藝。你準備好了沒,與來自全球的硬件開發(fā)者同臺 PK?

?

相關(guān)推薦

電子產(chǎn)業(yè)圖譜