可以编程的 “骰子” :带 LED、陀螺仪,WiFi!

MAKER:moekoe/译:趣无尽

来源:芯片之家

排版:晓宇

今天给大家带来一个非常好玩的项目,带有 54 颗 LED、陀螺仪,支持 WiFi 控制的可编程骰子。

这枚骰子主要由一个 ESP8285-01F、六块 PCB 和 54 颗 LED 组成。其结构设计十分巧妙,在制作的过程中也处处体现出结构的精巧(文中「组装骰子」部分有完整的焊接视频)。

1、主要部件简介:

1、内部的陀螺仪传感器可以检测运动和骰子的位置。

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

3、骰子内部的控制器旁有一个 150mAh 的锂电池和充电电路。

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

5、骰子内部的控制器旁有一个 150mAh 的锂电池和充电电路。

如果你想要了解更小立方体,可点击查看我的第一版由环氧树脂制作的立方体。
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、组装骰子

关于组装骰子的细节,你可以参考视频来组装。

组装骰子的焊接部分比较难,因此我设计了一种小型焊接辅助工具,可以先将三个 PCB 板焊接在一起。

重复两次,然后将它们的 PCB 边缘焊接起来即可完成。注意检查骰子是否能够正常使用。

在连接电池插孔之前,请确保将三个 PCB 板焊接在一起。你需要修改 .stl 文件,在插孔处添加一个合适的小孔。

.stl 文件请在项目文件库中下载。
https://make.quwj.com/project/214

下面是完整的焊接视频,步骤还是有些复杂的,需要耐心,感兴趣的朋友可以了解一下:

6、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

7、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 草图中获得更多信息。

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/

-END-

猜你喜欢

48岁的C语言,你知道它背后的历史吗?

博士学位真的那么重要吗?上交大博士亲述科研心路,获4万高赞,网友:这是知乎最好的回答

都是做嵌入式凭什么高薪offer归别人

 最 后  

 

若觉得文章不错,转发分享,也是我们继续更新的动力。

5T资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、单片机、等等

在公众号内回复「更多资源」,即可免费获取,期待你的关注~

长按识别图中二维码关注

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值