玩花樣!教你組裝一個(gè)LED、陀螺儀、WiFi控制的可編程骰子
MAKER:moekoe/譯:趣無(wú)盡
今天給大家?guī)?lái)一個(gè)非常好玩的項(xiàng)目,帶有 54 顆 LED、陀螺儀,支持 WiFi 控制的可編程骰子。這枚骰子主要由一個(gè) ESP8285-01F、六塊 PCB 和 54 顆 LED 組成。其結(jié)構(gòu)設(shè)計(jì)十分巧妙,在制作的過(guò)程中也處處體現(xiàn)出結(jié)構(gòu)的精巧(文中「組裝骰子」部分有完整的焊接視頻)。
主要部件簡(jiǎn)介:
1、內(nèi)部的陀螺儀傳感器可以檢測(cè)運(yùn)動(dòng)和骰子的位置。
2、WiFi MCU 的尺寸為 10×12mm。
3、骰子內(nèi)部的控制器旁有一個(gè) 150mAh 的鋰電池和充電電路。
4、每塊 PCB 板的尺寸為 25×25mm,包括了九個(gè) WS2812-2020 迷你 LED 像素。
5、骰子內(nèi)部的控制器旁有一個(gè) 150mAh 的鋰電池和充電電路。
如果你想要了解更小立方體,可點(diǎn)擊查看我的第一版由環(huán)氧樹(shù)脂制作的立方體。
https://www.makermoekoe.net/post/pikocube-is-it-the-smallest-led-cube
材料清單
ESP8285-01F WiFi MCU × 1
ADXL345 陀螺儀 × 1
貼片電容器 0603(100n、1μ、10μ) × 若干
貼片電阻 0603(600、1k、5k、10k、47k、100k、190k、1M) × 若干
貼片二極管 SOD123 1N4148 × 若干
貼片 LED 0805 × 若干
貼片 Mosfet(IRLML2244、IRLML2502) × 若干
貼片 LDO MCP1700 × 若干
貼片 90deg 按鈕 × 若干
WS2812 2020 LED × 54
MCP73831 充電器 × 1
貼片二極管 MBR0530 × 若干
JST 1.25mm 2P 連接器 × 1
PCB 設(shè)計(jì)
我使用 Autodesk EAGLE 設(shè)計(jì) PCB 板。并同時(shí)用兩種不同的方法來(lái)設(shè)計(jì) PCB 板,確保骰子的體積不要過(guò)大。兩塊 PCB 的尺寸均為 25x25mm 的正方形。
這些 PCB 板的不同之處在于,每側(cè)的三個(gè)蜂窩式的孔可以將三個(gè)信號(hào)(+5V、GND 和 LED 信號(hào))分布到整個(gè)骰子上。
PCB 板的排列方式如圖所示。一旦骰子組裝折疊后,彩色的邊就聚集在一起。
箭頭圖標(biāo)記出 WS2812 的信號(hào)線。
兩版的 PCB 設(shè)計(jì)原理圖、電路板和 BOM 文件請(qǐng)?jiān)陧?xiàng)目文件庫(kù)中下載。
https://make.quwj.com/project/214
PCB 板的說(shuō)明
整個(gè)骰子由兩種不同類(lèi)型的 PCB 板組成。一種帶有充電電路和鋰電池插孔,另一種帶有 MCU、傳感器和一些電源自鎖電路。每塊 PCB 板只安裝一次,骰子其余外部的面都包含九個(gè) LED。
PCB 板的每一個(gè)邊都帶有蜂窩式的孔,它具有兩種功能。一方面,這些孔或焊料墊讓這些板子看起來(lái)像一個(gè)骰子,同時(shí)可以將所有東西固定到位。另一方面,它還可以傳輸 LED 的功率和 WS2812 的信號(hào)。
后者較為復(fù)雜,它必須按照特定的順序進(jìn)行排列。每個(gè) PCB 板都有一個(gè)輸入信號(hào)和一個(gè)輸出信號(hào)。為了防止在某一點(diǎn)上中斷信號(hào),我添加了一些貼片焊接跳線墊。
組裝骰子
關(guān)于組裝骰子的細(xì)節(jié),你可以參考視頻來(lái)組裝。
組裝骰子的焊接部分比較難,因此我設(shè)計(jì)了一種小型焊接輔助工具,可以先將三個(gè) PCB 板焊接在一起。
重復(fù)兩次,然后將它們的 PCB 邊緣焊接起來(lái)即可完成。注意檢查骰子是否能夠正常使用。
在連接電池插孔之前,請(qǐng)確保將三個(gè) PCB 板焊接在一起。你需要修改 .stl 文件,在插孔處添加一個(gè)合適的小孔。
.stl 文件請(qǐng)?jiān)陧?xiàng)目文件庫(kù)中下載。
https://make.quwj.com/project/214
下面是完整的焊接視頻,步驟還是有些復(fù)雜的,需要耐心,感興趣的朋友可以了解一下:
Arduino 編程
骰子開(kāi)始可以啟用禁用 WiFi 的模式以便節(jié)省電量,這就是調(diào)制解調(diào)器睡眠模式。關(guān)于 ESPs 數(shù)據(jù)表,MCU 在調(diào)制解調(diào)器休眠時(shí)僅消耗 15mA 的電流,而在正常模式下則需要 70mA 左右。
因此這種設(shè)置適用于電池供電的設(shè)備。為此,在調(diào)用設(shè)置功能時(shí),你需要輸入以下代碼。
void preinit() {
ESP8266WiFiClass::preinitWiFiOff();
}
按下另一個(gè)按鈕,你可以通過(guò)調(diào)用標(biāo)準(zhǔn) WWiFi.begin() 功能或 Blynk.begin() 來(lái)喚醒 WiFi。它是我用來(lái)控制骰子的 APP 設(shè)置。
在骰子上,一些動(dòng)畫(huà)轉(zhuǎn)換其實(shí)是一些數(shù)字的轉(zhuǎn)換。骰子外體墻面的矩陣可以轉(zhuǎn)化為像素,它是通過(guò)輸入以下代碼完成的:
int get_pixel(int mat, int px, int py) {
//starting at top left corner
return (px + py * 3) + mat * 9;
}
第一個(gè)矩陣是頂部的矩陣,第二個(gè)矩陣是面向正面的矩陣,第三個(gè)矩陣是圍繞骰子向右方移動(dòng),最后一個(gè)矩陣是底部的矩陣。
使用代碼時(shí),需要將 WiFi 憑證連接到你的網(wǎng)絡(luò)。為了正確使用 Blynk APP,在打開(kāi)草圖之前,請(qǐng)將兩個(gè)文件( BLYNK.ino 和另一個(gè)包含 Blynk 的文件)放入同一文件夾中。草圖中包含兩個(gè)不同的選項(xiàng)卡。
另一個(gè)文件實(shí)際上不執(zhí)行任何操作,不需要配備其他選項(xiàng)卡,它僅用于在未按下按鈕時(shí)使骰子休眠。否則,骰子就無(wú)法進(jìn)入睡眠狀態(tài),并會(huì)一直消耗電量。
代碼文件請(qǐng)?jiān)陧?xiàng)目文件庫(kù)中下載。
https://make.quwj.com/project/214
APP 設(shè)置
只需要按下一個(gè)按鈕就可以開(kāi)始把玩骰子了,但不是從 WiFi 的功能開(kāi)始。當(dāng)骰子啟動(dòng)后再按一次按鈕就可以啟用 WiFi 并連接到預(yù)定義的網(wǎng)絡(luò)。
稍后,你可以使用 Blynk APP 來(lái)控制骰子。
https://blynk.io/en/getting-started
當(dāng)然,你可以擴(kuò)展功能,這樣骰子就更好玩了!
這里展示一個(gè) Blynk APP 內(nèi)部的簡(jiǎn)單布局。它包括了兩個(gè) SLIDER(亮度和動(dòng)畫(huà)速度)、兩個(gè) STYLED 按鈕(更改動(dòng)畫(huà)模式并關(guān)閉骰子)、一個(gè)用于切換骰子的邏輯、一個(gè)用于顯示骰子面朝上的 LED 以及用于顯示電池狀態(tài)的 GAUGE。
所有這些小部件都利用虛擬引腳進(jìn)行 APP-MCU 通信。它的功能是通過(guò) MCU 讀取虛擬引腳。
V1 是指使用的虛擬引腳,而 param.asInt() 會(huì)保存該引腳的當(dāng)前值。該功能是為了限制輸入值,安全第一。
BLYNK_WRITE(V1) {
//StepH t = millis();
current_mode = constrain(param.asInt(), 0, n_modes - 1);
}
將虛擬引腳寫(xiě)入 Blynk APP,并使用以下功能:
int data = getBatteryVoltage();
Blynk.virtualWrite(V2, data);
你可以 Arduino 草圖中獲得更多信息。
完成
設(shè)計(jì)和建造骰子非常的有意思!但它也存在一些問(wèn)題,需要我們?nèi)ニ伎肌?/span>
1、在第一版中,我使用升壓轉(zhuǎn)換器電路,以確保 WS2812 LED 以 5V 運(yùn)行。實(shí)際上,它們將以大約 3.7V 的電池電壓運(yùn)行,因?yàn)樯龎恨D(zhuǎn)換器的噪聲太高干擾了 LED 的信號(hào),從而導(dǎo)致骰子非正常的閃爍。
2、在第二版中,我嘗試使用無(wú)線充電。我添加了一些充電墊,可從骰子的外部訪問(wèn)這些充電墊,但電感功率會(huì)受到 PCB 和其他元件的干擾。因此,我必須再造一個(gè) 3D 打印的充電座將骰子放進(jìn)去,并且設(shè)置一些觸點(diǎn)。
本項(xiàng)目文件庫(kù)地址:http://make.quwj.com/project/214via instructables.com/id/Six-Sided-PCB-LED-Dice-With-WIFI-Gyroscope-PIKOCUB/
作者:moekoe
翻譯:Cherry
來(lái)源:趣無(wú)盡
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!