我的毕业帽运行 Rust
摘要
作者使用 ATtiny85 微控制器和 WS2812B LED 制作了一款由 Rust 驱动的发光毕业帽,用于检测流苏的移动。该项目展示了在定制硬件项目中使用 avr-hal 等嵌入式 Rust 库的应用。
暂无内容
查看缓存全文
缓存时间: 2026/05/13 03:10
# 我的毕业帽运行 Rust
来源:https://ericswpark.com/blog/2026/2026-05-12-my-graduation-cap-runs-rust/
### 2026年5月12日
我以前从未毕业过。我是说,从大学毕业。所以那些关于学士帽和学位服的事情对我来说都是全新的。
趣闻 #1:在美国,你是租用学士帽和学位服的。你必须归还它们。而且它们也很贵!我仅仅为了获得租用它们的资格就支付了 94 美元,这太疯狂了,因为它们的制造成本可能远低于此。如果说,你表示不需要学士帽和学位服怎么办?好吧,那你不能参加毕业典礼。所以你确实需要掏钱租用它们。而且它们不给你直接购买学士帽和学位服的选项。
好吧,这不算什么趣闻。那么:
趣闻 #2:当你毕业时,他们会将你的流苏从右边移到左边,以表示……什么?为什么不从左到右?左撇子的人怎么办?!为什么毕业典礼会歧视左撇子?!
无论如何。我在想趣闻 #2,然后我想到如果当有人移动我的流苏时,我的帽子着火了可能会很酷。但租赁协议第 98.c.2 条可能禁止这样做,而且我认为普渡大学(Purdue)可能不会很喜欢我在舞台上放火。
嗯。如果我制作一个装置,检测流苏被移开时并点亮帽子的底部,会怎样?
就这样,我开始构建这个疯狂的想法。结果如果让我自己说,非常漂亮:
## 常见问题
### 你使用了哪些部件?
- 一个 Digispark ATtiny85
- 48 个 WS2812B LED
- 从已报废的 Apple USB-C-to-C 电缆中剥出的电线
- 干簧管和磁铁,用于检测流苏的移动(演示中未显示)
- USB-C 电源传输(Power Delivery)触发板
- 充电宝(和 USB-C 电缆)
### 你在这个东西上花了多长时间?!
编写代码大约花了 2 小时,主要是因为 `avr-hal` 和 `ws2812-avr` 开箱即用不支持 ATtiny85,至少没有一些调整是不行的。我不得不分叉它们,并对一些东西进行脏补丁,包括将默认时钟速度设置为 16 MHz。
如果我不使用 Rust 而是直接使用 Arduino 库,或者使用不同的电路板,可能会更容易。但我对这个博客帖子标题的想法非常执着,而且我很确定 ESP32 电路板会显得过于复杂,并且无法牢固地固定在帽子上。
硬件方面花的时间最长,超过 3 小时。如果有人告诉你硬件很容易,他们要么错了,要么在撒谎,并且从未参与过自定义硬件项目!
### 你真的会在毕业时戴这个吗?
绝对不行。
我考虑过,但决定它看起来很俗气。它看起来像是孩子们认为的游戏电脑,而婴儿潮一代认为的癫痫发作。
### 说到癫痫,确实有一个错失的机会……
……错失?
**警告:以下视频包含快速闪烁的光线。我已经写出来了,这样使用屏幕阅读器阅读的人就知道不要看视频!**
WKUK 让你心碎(https://www.youtube.com/watch?v=uQRIvXymJZI)
### 我能看到代码吗?
https://github.com/ericswpark/gradcap-rs
---
相似文章
在Raspberry Pi Pico 2 W上用Rust编写的Matter Wi-Fi灯泡
针对Raspberry Pi Pico 2的Rust Embassy示例,涵盖I2C、SPI和1-Wire通信。
Rust 与 GBA:环境搭建与像素渲染
一份教程指南,讲解如何搭建 Rust 项目以构建能在 Game Boy Advance 上运行的 ROM,涵盖项目设置和像素渲染。
@paldenbhutiaa: https://x.com/paldenbhutiaa/status/2069076745827836333
一位创客分享的初级电子学路线图,他从不知道如何点亮一个LED,到制造探测车并赢得黑客马拉松。它涵盖了理解电路、使用Arduino以及构建实际项目。
Show HN: 我花了一个周末用Rust重写了IDE中我唯一使用的部分
Kyde 是一个快速的原生Git客户端和代码编辑器,使用Rust基于Zed的gpui框架构建,具有GPU渲染、并排差异对比、tree-sitter语法高亮以及一个精心调校的深色主题。
在8位微控制器上托管网站
一个爱好者项目演示了在8位AVR微控制器上托管简单网站,通过串口连接使用SLIP协议与Linux PC通信,避免了以太网硬件需求。