今天給大家?guī)硪粋€非常好玩的項目,帶有 54 顆 LED、陀螺儀,支持 WiFi 控制的可編程骰子。
這枚骰子主要由一個 ESP8285-01F、六塊 PCB 和 54 顆 LED 組成。其結構設計十分巧妙,在制作的過程中也處處體現(xiàn)出結構的精巧(文中「組裝骰子」部分有完整的焊接視頻)。
3、骰子內部的控制器旁有一個 150mAh 的鋰電池和充電電路。
4、每塊 PCB 板的尺寸為 25×25mm,包括了九個 WS2812-2020 迷你 LED 像素。
5、骰子內部的控制器旁有一個 150mAh 的鋰電池和充電電路。
如果你想要了解更小立方體,可點擊查看我的第一版由環(huán)氧樹脂制作的立方體。
https://www.makermoekoe.net/post/pikocube-is-it-the-smallest-led-cube
2、材料清單
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
3、PCB 設計
我使用 Autodesk EAGLE 設計 PCB 板。并同時用兩種不同的方法來設計 PCB 板,確保骰子的體積不要過大。兩塊 PCB 的尺寸均為 25x25mm 的正方形。
這些 PCB 板的不同之處在于,每側的三個蜂窩式的孔可以將三個信號(+5V、GND 和 LED 信號)分布到整個骰子上。
PCB 板的排列方式如圖所示。一旦骰子組裝折疊后,彩色的邊就聚集在一起。
箭頭圖標記出 WS2812 的信號線。
兩版的 PCB 設計原理圖、電路板和 BOM 文件請在項目文件庫中下載。
https://make.quwj.com/project/214
4、PCB 板的說明
整個骰子由兩種不同類型的 PCB 板組成。一種帶有充電電路和鋰電池插孔,另一種帶有 MCU、傳感器和一些電源自鎖電路。每塊 PCB 板只安裝一次,骰子其余外部的面都包含九個 LED。
PCB 板的每一個邊都帶有蜂窩式的孔,它具有兩種功能。一方面,這些孔或焊料墊讓這些板子看起來像一個骰子,同時可以將所有東西固定到位。另一方面,它還可以傳輸 LED 的功率和 WS2812 的信號。
后者較為復雜,它必須按照特定的順序進行排列。每個 PCB 板都有一個輸入信號和一個輸出信號。為了防止在某一點上中斷信號,我添加了一些貼片焊接跳線墊。
5、組裝骰子
關于組裝骰子的細節(jié),你可以參考視頻來組裝。
組裝骰子的焊接部分比較難,因此我設計了一種小型焊接輔助工具,可以先將三個 PCB 板焊接在一起。
重復兩次,然后將它們的 PCB 邊緣焊接起來即可完成。注意檢查骰子是否能夠正常使用
。
在連接電池插孔之前,請確保將三個 PCB 板焊接在一起。你需要修改 .stl 文件,在插孔處添加一個合適的小孔。
.stl 文件請在項目文件庫中下載。
https://make.quwj.com/project/214
下面是完整的焊接視頻,步驟還是有些復雜的,需要耐心,感興趣的朋友可以了解一下:
6、Arduino 編程
骰子開始可以啟用禁用 WiFi 的模式以便節(jié)省電量,這就是調制解調器睡眠模式。關于 ESPs 數(shù)據(jù)表,MCU 在調制解調器休眠時僅消耗 15mA 的電流,而在正常模式下則需要 70mA 左右。
因此這種設置適用于電池供電的設備。為此,在調用設置功能時,你需要輸入以下代碼。
void preini
t() {
ESP8266WiFiClass::preinitWiFiOff();
}
按下另一個按鈕,你可以通過調用標準 WWiFi.begin() 功能或 Blynk.begin() 來喚醒 WiFi。它是我用來控制骰子的 APP 設置。
在骰子上,一些動畫轉換其實是一些數(shù)字的轉換。骰子外體墻面的矩陣可以轉化為像素,它是通過輸入以下代碼完成的:
int get_pixel(int mat, int px, int py) {
//starting at top left corner
return (px + py * 3) + mat * 9;
}
第一個矩陣是頂部的矩陣,第二個矩陣是面向正面的矩陣,第三個矩陣是圍繞骰子向右方移動,最后一個矩陣是底部的矩陣。
使用代碼時,需要將 WiFi 憑證連接到你的網(wǎng)絡。為了正確使用 Blynk APP,在打開草圖之前,請將兩個文件( BLYNK.ino 和另一個包含 Blynk 的文件)放入同一文件夾中。草圖中包含兩個不同的選項卡。
另一個文件實際上不執(zhí)行任何操作,不需要配備其他選項卡,它僅用于在未按下按鈕時使骰子休眠。否則,骰子就無法進入睡眠狀態(tài),并會一直消耗電量。
代碼文件請在項目文件庫中下載。
https://make.quwj.com/project/214
7、APP 設置
只需要按下一個按鈕就可以開始把玩骰子了,但不是從 WiFi 的功能開始。當骰子啟動后再按一次按鈕就可以啟用 WiFi 并連接到預定義的網(wǎng)絡。
稍后,你可以使用 Blynk APP 來控制骰子。
https://blynk.io/en/getting-started
這里展示一個 Blynk APP 內部的簡單布局。它包括了兩個 SLIDER(亮度和動畫速度)、兩個 STYLED 按鈕(更改動畫模式并關閉骰子)、一個用于切換骰子的邏輯、一個用于顯示骰子面朝上的 LED 以及用于顯示電池狀態(tài)的 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);
8、完成
設計和建造骰子非常的有意思!但它也存在一些問題,需要我們去思考。
1、在第一版中,我使用升壓轉換器電路,以確保 WS2812 LED 以 5V 運行。實際上,它們將以大約 3.7V 的電池電壓運行,因為升壓轉換器的噪聲太高干擾了 LED 的信號,從而導致骰子非正常的閃爍。
2、在第二版中,我嘗試使用無線充電。我添加了一些充電墊,可從骰子的外部訪問這些充電墊,但電感功率會受到 PCB 和其他元件的干擾。因此,我必須再造一個 3D 打印的充電座將骰子放進去,并且設置一些觸點。
http://make.quwj.com/project/214
via instructables.com/id/Six-Sided-PCB-LED-Dice-With-WIFI-Gyroscope-PIKOCUB/
博士學位真的那么重要嗎?上交大博士親述科研心路,獲4萬高贊,網(wǎng)友:這是知乎最好的回答
若覺得文章不錯,轉發(fā)分享,也是我們繼續(xù)更新的動力。
5T資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、單片機、等等!
在公眾號內回復「
更多資源
」,即可免費獲取,期待你的關注~
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!