以下作品由安信可社區用戶
bzhou830制作
1. 項目簡介
本項目通過M62模組設計的超級mini板搭配兩個8*8點陣,并利用水銀開關作為重力檢測部件完成一個電子沙漏。外殼采用3D打印的方式制作一個大小合適的外形。另外搭配鋰電池和充放電模塊,實現便攜不插線的使用。
2. 硬件說明
硬件上主要使用了Ai-M62-CBS開發板,兩個Max7219點陣模塊,水銀開關,充放電模塊,鋰電池。
2.1 主控板
本項目采用的主控是Ai-M62-CBS開發板,這個超級迷你的板子是莫工在2024年設計的。大小非常的迷你,大概和一個usb-ttl的大小還要短一點點,外形如下圖。

這款模組的資料可在如下鏈接中找到:
Ai-M62系列模組專題 | 安信可科技
2.2 MAX7219 8*8點陣
MAX7219 片內包括 BCD 譯碼器、多路掃描控制器、字和位驅動器和 8×8 靜態 RAM。外部只需要一個電阻設置所有 LED 顯示器字段電流。MAX7219 和微處理器只需三根導線連接,每位顯示數字有一個地址由微處理器寫入。允許使用者選擇每位是 BCD 譯碼或不譯碼。使用者還可選擇停機模式、數字亮度控制、從 1~8 選擇掃描位數和對所有 LED 顯示器的測試模式。
MAX7219模塊原理圖如下:

2.3 水銀開關
水銀開關,又稱傾側開關,是電路開關的一種,以一接著電極的小巧容器儲存著一小滴水銀,容器中多數為真空或注入惰性氣體。可能是由于各種加速度傳感器價格的降低,這種元器件見到的并不多了。
本項目中使用水銀開關主要是檢測沙漏的上下朝向,從而決定沙礫的流動方向。

3. 代碼實現
兩個點陣屏模塊和M62的接線按照如下進行
#define Max7219_pinDIN GPIO_PIN_10
#define Max7219_pinCS GPIO_PIN_11
#define Max7219_pinCLK GPIO_PIN_12
#define Max7219_2_pinDIN GPIO_PIN_28
#define Max7219_2_pinCS GPIO_PIN_29
#define Max7219_2_pinCLK GPIO_PIN_30
在主函數中開啟定時器,定時器的一個周期沙漏的沙子流動一次。
void timer0_isr(int irq, void *arg)
{
bool status = bflb_timer_get_compint_status(timer0, TIMER_COMP_ID_0);
if (status) {
bflb_timer_compint_clear(timer0, TIMER_COMP_ID_0);
printf("timer0 comp0 triggerrn");
step();
}
}
void timer_init()
{
/* timer clk = XCLK/(div + 1 )*/
struct bflb_timer_config_s cfg0;
cfg0.counter_mode = TIMER_COUNTER_MODE_PROLOAD; /* preload when match occur */
cfg0.clock_source = TIMER_CLKSRC_XTAL;//選擇外部時鐘晶振,40MHz
cfg0.clock_div = 39; /* for bl616/bl808/bl606p is 39, for bl702 is 31 */
cfg0.trigger_comp_id = TIMER_COMP_ID_0;
/* 比較值ID1,當計數達到1000000時,根據前面的分頻一微秒一個計數,也就是總共1秒 */
cfg0.comp0_val = 1000000; /* match value 0 */
cfg0.comp1_val = 1500000; /* match value 1 */
cfg0.comp2_val = 2500000; /* match value 2 */
/* 重裝載值,開始的值,以及比較完所有ID個數后重啟的值 */
cfg0.preload_val = 0; /* preload value */
timer0 = bflb_device_get_by_name("timer0");
/* Timer init with default configuration */
bflb_timer_init(timer0, &cfg0);
bflb_irq_attach(timer0->irq_num, timer0_isr, NULL);
bflb_irq_enable(timer0->irq_num);
/* Enable timer */
bflb_timer_start(timer0);
}
4. 外形設計
這里的外殼直接采用MakerWorld上的設計。前面板安裝兩個點陣屏,側開一個type-c的充電口。背部保留三個按鈕的位置。本項目中實際上只使用了一個按鈕的位置,給設備開關機使用。

打印組裝后的效果如圖

內部結構如圖

好了,來看看效果吧:

審核編輯 黃宇
-
藍牙
+關注
關注
119文章
6350瀏覽量
179026 -
wi-fi
+關注
關注
15文章
2449瀏覽量
129775
發布評論請先 登錄
MWC 2026焦點:AI驅動Wi-Fi 8破局,全球巨頭搶灘發新品
泰凌微電子發布全新ML9118A Wi-Fi模組
Wi-Fi:無線連接的全球通用語
唯捷創芯推出Wi-Fi 7和藍牙雙連接前端模組
Wi-Fi模塊選型指南 | 低功耗藍牙/Wi-Fi 6模塊推薦 | 物聯網設備集成攻略
【WiFi+藍牙模組】高性能 Wi-Fi +藍牙模組的國產替代方案
【WiFi+藍牙】智能門鎖、智能插座:用Ai-WB2系列,價格更低,性能更強
基于 SSID 的 Wi-Fi 定位:與其他定位服務的性能比較
安信可Ai-M62-CBS,極小尺寸的Wi-Fi/藍牙二合一模組
Wi-Fi音頻傳輸+百倍AI性能飛躍!開放式耳機上新高度
用Wi-Fi藍牙模組Ai-M62-CBS做一個電子沙漏
評論