玩花樣!教你組裝一個LED、陀螺儀、WiFi控制的可編程骰子

今天給大家帶來一個非常好玩的項目,帶有 54 顆 LED、陀螺儀,支持 WiFi 控制的可編程骰子。這枚骰子主要由一個 ESP8285-01F、六塊 PCB 和 54 顆 LED 組成。其結構設計十分巧妙,在制作的過程中也處處體現出結構的精巧

Image placeholder
管理員 2021-03-20 17:14

MAKER:moekoe/譯:趣無盡


今天給大家帶來一個非常好玩的項目,帶有 54 顆 LED、陀螺儀,支持 WiFi 控制的可編程骰子。這枚骰子主要由一個 ESP8285-01F、六塊 PCB 和 54 顆 LED 組成。其結構設計十分巧妙,在制作的過程中也處處體現出結構的精巧(文中「組裝骰子」部分有完整的焊接視頻)。




主要部件簡介:


1、內部的陀螺儀傳感器可以檢測運動和骰子的位置。

2、WiFi MCU 的尺寸為 10×12mm。

3、骰子內部的控制器旁有一個 150mAh 的鋰電池和充電電路。

4、每塊 PCB 板的尺寸為 25×25mm,包括了九個 WS2812-2020 迷你 LED 像素。

5、骰子內部的控制器旁有一個 150mAh 的鋰電池和充電電路。



材料清單


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 設計


我使用 Autodesk EAGLE 設計 PCB 板。并同時用兩種不同的方法來設計 PCB 板,確保骰子的體積不要過大。兩塊 PCB 的尺寸均為 25x25mm 的正方形。

這些 PCB 板的不同之處在于,每側的三個蜂窩式的孔可以將三個信號(+5V、GND 和 LED 信號)分布到整個骰子上。

PCB 板的排列方式如圖所示。一旦骰子組裝折疊后,彩色的邊就聚集在一起。


箭頭圖標記出 WS2812 的信號線。

兩版的 PCB 設計原理圖、電路板和 BOM 文件請在項目文件庫中下載。

https://make.quwj.com/project/214


PCB 板的說明


整個骰子由兩種不同類型的 PCB 板組成。一種帶有充電電路和鋰電池插孔,另一種帶有 MCU、傳感器和一些電源自鎖電路。每塊 PCB 板只安裝一次,骰子其余外部的面都包含九個 LED。

PCB 板的每一個邊都帶有蜂窩式的孔,它具有兩種功能。一方面,這些孔或焊料墊讓這些板子看起來像一個骰子,同時可以將所有東西固定到位。另一方面,它還可以傳輸 LED 的功率和 WS2812 的信號。

后者較為復雜,它必須按照特定的順序進行排列。每個 PCB 板都有一個輸入信號和一個輸出信號。為了防止在某一點上中斷信號,我添加了一些貼片焊接跳線墊。


組裝骰子


關于組裝骰子的細節,你可以參考視頻來組裝。

組裝骰子的焊接部分比較難,因此我設計了一種小型焊接輔助工具,可以先將三個 PCB 板焊接在一起。

重復兩次,然后將它們的 PCB 邊緣焊接起來即可完成。注意檢查骰子是否能夠正常使用。

在連接電池插孔之前,請確保將三個 PCB 板焊接在一起。你需要修改 .stl 文件,在插孔處添加一個合適的小孔。


.stl 文件請在項目文件庫中下載。
https://make.quwj.com/project/214


下面是完整的焊接視頻,步驟還是有些復雜的,需要耐心,感興趣的朋友可以了解一下:


Arduino 編程


骰子開始可以啟用禁用 WiFi 的模式以便節省電量,這就是調制解調器睡眠模式。關于 ESPs 數據表,MCU 在調制解調器休眠時僅消耗 15mA 的電流,而在正常模式下則需要 70mA 左右。

因此這種設置適用于電池供電的設備。為此,在調用設置功能時,你需要輸入以下代碼。


  • void?preinit()?{?ESP8266WiFiClass::preinitWiFiOff();}

按下另一個按鈕,你可以通過調用標準 WWiFi.begin() 功能或 Blynk.begin() 來喚醒 WiFi。它是我用來控制骰子的 APP 設置。


在骰子上,一些動畫轉換其實是一些數字的轉換。骰子外體墻面的矩陣可以轉化為像素,它是通過輸入以下代碼完成的:

  • int?get_pixel(int?mat,?int?px,?int?py)?{?//starting?at?top?left?corner?return?(px?+?py?*?3)?+?mat?*?9;}

第一個矩陣是頂部的矩陣,第二個矩陣是面向正面的矩陣,第三個矩陣是圍繞骰子向右方移動,最后一個矩陣是底部的矩陣。


使用代碼時,需要將 WiFi 憑證連接到你的網絡。為了正確使用 Blynk APP,在打開草圖之前,請將兩個文件( BLYNK.ino 和另一個包含 Blynk 的文件)放入同一文件夾中。草圖中包含兩個不同的選項卡。

另一個文件實際上不執行任何操作,不需要配備其他選項卡,它僅用于在未按下按鈕時使骰子休眠。否則,骰子就無法進入睡眠狀態,并會一直消耗電量。

代碼文件請在項目文件庫中下載。

https://make.quwj.com/project/214


APP 設置


只需要按下一個按鈕就可以開始把玩骰子了,但不是從 WiFi 的功能開始。當骰子啟動后再按一次按鈕就可以啟用 WiFi 并連接到預定義的網絡。


稍后,你可以使用 Blynk APP 來控制骰子。
https://blynk.io/en/getting-started


當然,你可以擴展功能,這樣骰子就更好玩了!

這里展示一個 Blynk APP 內部的簡單布局。它包括了兩個 SLIDER(亮度和動畫速度)、兩個 STYLED 按鈕(更改動畫模式并關閉骰子)、一個用于切換骰子的邏輯、一個用于顯示骰子面朝上的 LED 以及用于顯示電池狀態的 GAUGE。


所有這些小部件都利用虛擬引腳進行 APP-MCU 通信。它的功能是通過 MCU 讀取虛擬引腳。


V1 是指使用的虛擬引腳,而 param.asInt() 會保存該引腳的當前值。該功能是為了限制輸入值,安全第一。

  • BLYNK_WRITE(V1)?{?//StepH?t?=?millis();?current_mode?=?constrain(param.asInt(),?0,?n_modes?-?1);


將虛擬引腳寫入 Blynk APP,并使用以下功能:

int?data?=?getBatteryVoltage();Blynk.virtualWrite(V2,?data);

你可以 Arduino 草圖中獲得更多信息。


完成


設計和建造骰子非常的有意思!但它也存在一些問題,需要我們去思考。


1、在第一版中,我使用升壓轉換器電路,以確保 WS2812 LED 以 5V 運行。實際上,它們將以大約 3.7V 的電池電壓運行,因為升壓轉換器的噪聲太高干擾了 LED 的信號,從而導致骰子非正常的閃爍。


2、在第二版中,我嘗試使用無線充電。我添加了一些充電墊,可從骰子的外部訪問這些充電墊,但電感功率會受到 PCB 和其他元件的干擾。因此,我必須再造一個 3D 打印的充電座將骰子放進去,并且設置一些觸點。



注:本文轉載自趣無盡,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責。如有侵權行為,請聯系我們,我們會及時刪除。

評論0