• 正文
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

原創(chuàng)
2019/03/14
200
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

?


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

魔方開箱即用,在您學(xué)會(huì)編程后還可以體驗(yàn)更多有趣的功能。


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

部件

?

?

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

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


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

如下圖所示:
?


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

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

您也可以拍手或拍打桌子上的物體切換模式。通過這種方式操作時(shí),必須分別記錄每個(gè)模式的拍打方式,這些方式是開關(guān)指示燈的“密碼”。我們?cè)诤竺娴摹芭拇蚍绞骄幊獭敝性僬劇?/p>

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

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

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

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

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


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


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

高級(jí)命令


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

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

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

GET_PATTERN n 在屏幕上顯示拍打方式的計(jì)時(shí) (n = MODE 1...5)
以十進(jìn)制 ASCII 數(shù)字列出所編程模式 n 的拍打方式的計(jì)時(shí) (以 13 ms 為一個(gè)時(shí)段)。注意,計(jì)時(shí)數(shù)會(huì)少于拍打數(shù),因?yàn)樽詈笠淮闻拇蚝蟮挠?jì)時(shí)是無限的??偣灿?31 個(gè)時(shí)段,記錄有若干拍打數(shù),所有未使用的時(shí)段表示為零。

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

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

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

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

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

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

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

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

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

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

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

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



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



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

?

相關(guān)推薦