该内容已被发布者删除 该内容被自由微信恢复
文章于 2020年3月7日 被检测为删除。
查看原文
被用户删除
其他

“我的名片可以运行 Linux”

GitHubDaily 2020-02-24

公众号关注 “GitHubDaily

设为 “星标”,每天带你逛 GitHub!


转自量子位,作者晓查
猜猜它是什么?印着姓名、职位和邮箱,看起来是个名片。可是右下角有芯片,看起来又像是个 PCB 电路板。
其实它是一台超迷你的 ARM 计算机,不仅能够运行 Linux 系统,有 Python 解释器,连上电脑还能玩 2048 小游戏。
而且只需 6 秒就能快速启动操作系统。
当然,它也是一个电子名片,系统中可以存入你的简历信息、照片。
这是一位嵌入式工程师 George Hilliard 作品,整个名片的成本才 20 元,却已经拥有如此多的功能,难怪让不少网友惊叹,一天之内就在 Hacker News 上收获 2000 多赞。
下面让我们一起来看看他是如何制作的吧。

设计和组装

在合理的设计下,这张名片的成本极低,PCB、芯片和其他电子器件加起来,总成本不超过 3 美元
如何选择一款成本低廉且可用的处理器,是这个项目最关键的部分。
经过大量的研究,George 选择了深圳全志公司的 F1C100s,选择它的原因是太 XX 的便宜了(damn cheap),且集成了 RAM 和 CPU。
这款芯片是他在淘宝上买的(不得不让人感叹万能的淘宝)。其他元器件均购自 LCSC。
George 小哥在 JLC 上制作了 PCB,花 8 美元得到了 10 块电路板,颜色是磨砂黑,看起来高端大气上档次。
不过制作完的 PCB 还是有点小问题:USB 接口不够长,很难与多数端口稳定连接;芯片引脚有错,必须手动弯曲调整。
由于这些零件的尺寸很小,George 小哥决定使用便宜的回流焊。而且他有激光切割机,可以制作焊锡膏丝印模板。
在涂好焊锡膏后,他手动贴上了元器件。零件和焊锡膏均符合 RoHS 规定。
由于手动贴一个电子器件需要 10 秒,因此 George 小哥尽量减少了贴片的数量来降低工作量。
最后附上完整的物料成本:
这里只包括硬件成本,一张名片需要 2.88 美元,折合人民币大约 20 元。

能跑 Linux 和 Python

这款名片能够做什么?
由于尺寸和成本的原因,名片卡缺少 I/O 接口,不能再外接其他设备。尽管如此,George 还是设法将很多有趣的东西塞入了固件中。

Shell

将名片的 USB 接口插上电脑,大约 6 秒内即可启动超级精简的 Linux 系统。电脑会将其显示为 USB 闪存驱动器和虚拟串行接口。
名片通过虚拟串行接口提供 shell 服务,我们可以登录 root 账户,访问以下程序:
  • rogue经典的 Unix 游戏《地牢爬虫》


  • 2048曾经风靡全球的数字游戏《2048》控制台版本

  • fortune各种名人名言,为了给其他功能腾出空间,并不包括完整的数据库。

  • micropython一个简化版的 Python 解释器。

这个名片包含一个超级精简的 Linux 系统,和一个简化版的 Python 解释器 MicroPython,登录 shell 后还能运行 rogue、2048 小游戏。

模拟闪存驱动器

在编译过程中,构建工具会生成一个小的 FAT32 镜像,并将其添加到 UBI 分区。Linux 小工具子系统会将其作为存储设备呈现给 PC。
George 在里面放上了自己的简历和摄影作品,可以在源代码中查看到这些内容。

DIY 资源

小哥在 GitHub 上开源了所有的代码、电路原理图,至于 FC100s 芯片如何开发,官方有技术文档可供参考。
如果你有兴趣,也可以去试试。
博客地址:
https://www.thirtythreeforty.net/posts/2019/12/my-business-card-runs-linux/#source-code
源代码:
https://github.com/thirtythreeforty/businesscard-linux
电路原理图:
https://www.thirtythreeforty.net/media/F1C100s_Datasheet_V1.0.pdf
FC100s 技术文档:
https://www.thirtythreeforty.net/media/F1C100s_Datasheet_V1.0.pdf
https://www.thirtythreeforty.net/media/Allwinner_F1C600_User_Manual_V1.0.pdf
推荐阅读:
GitHub 热榜第一:最全中华古诗词数据库,收录30多万诗词
大幅提高开发效率的 9 款工具
动画: 一个浏览器是如何工作的?
表弟的数学题,我竟然用了 Python 才解出来
这款开源的 Markdown 编辑器,我爱了!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存