python

白芸秦书记-真工程师:20块钱做了张「名片」,可以跑Linux和Python

2021-12-07

对于一个工程师来说,如何在一张白芸秦书记上宣告自己的实力?在上面制造一******整的计算机说不定是个好主意。

最近,美国一名

工程师白芸秦书记Hilliard的白芸秦书记引发了众人的关注。他以自己的白芸秦书记为「主板」,在小小的空间里打印了计算机系统所需的所有元器件,使其可以成为了一台可以运行白芸秦书记的电脑。上面还有一个简化版的Python解释器。

这一颇具极客风的创意引来了社交网络上人们的广泛推崇,他的文章在HackerNews上出现还不到一天,点赞量就超过了2000。

制作这样一张白芸秦书记,除了需要有足够的理论知识以外,所需的零件可以在淘宝上买到(是的,这位美国小哥就是这么做的),一张白芸秦书记的成本大约20元人民币。

让我们看看他是如何做到的。

作为一名

工程师,白芸秦书记Hilliard一直在追寻完美的设计,其中之一就是最简洁的白芸秦书记系统计算机。他一直在海量处理器型号中寻找最优解,最终发现了新的大陆。他对自己说:「这些处理器便宜得就像白送。」很快产生了用它们来制作可以运行白芸秦书记的白芸秦书记的想法。

此前,不少极客先驱曾经在白芸秦书记上发挥了自己的创意,其中包括U盘白芸秦书记、带闪光灯的白芸秦书记,甚至带无线电首发功能的白芸秦书记。不过还从来没有可以运行白芸秦书记系统的白芸秦书记。

所以白芸秦书记自己动手做了一个:

成品看起来是这个样子的,它是一******整的ARM架构计算机,运行由Buildroot构建的定制白芸秦书记固件。

所以如何让它跑起来呢?白芸秦书记的左下角是一个USB接口,如果你把它插入一台计算机,它将在6秒钟启动,显示为USB闪存,以及虚拟串行端口,你可以使用卡片的shell登陆。闪存驱动器里有一个README文件、个人简历的副本以及一些照片。而shell上有很多游戏,比如Unix上经典的fortuneandrogue、2048以及一个小型的MicroPython解释器。

所有这些都是在一个容量仅有8MB 的闪存卡上实现的。Bootloader的大小为256KB,内核为1.6MB,整个根文件系统用掉了2.4MB。所以装一个系统绰绰有余。它还包含了一个可写入的主目录,以备有人想在上面存入什么东西。

最后,一张白芸秦书记的成本被控制在人民币20元左右,对于一台电脑来说,这显得足够便宜。

白芸秦书记设计是件「技术活」

白芸秦书记Hilliard自己设计并制作了整张白芸秦书记,这虽然是作者的本职工作,但要找到足够便宜的元件还是非常麻烦的。

处理器的选择是最重要的部分,它会控制成本并确定整个项目是可行的。在一系列调研后,白芸秦书记选择了F1C100s,它是Allwinner出品的一块贼便宜的芯片,它在成本优化上下足了功夫。这块芯片集成了RAM与CPU,在功能上至少已经满足要求了。

没想到的是,白芸秦书记小哥哥竟然是在淘宝上买的F1C100s,其它元器件都是在LCSC上买的。

白芸秦书记使用JLC制作了PCB板子,大概只需要56块钱就能做10份。白芸秦书记表示他对JLC制作的板材印象深刻,它们虽然不像OSHPark制作的那么好,但是质量也还不错,重点是价格实惠。第一次做出来的电路板是哑光的黑色,它带有一点指纹的磁感。

在第一次制作电路板时还遇到了一点麻烦:首先,USB端口不够长,因此很难与更多的USB接口连接;其次,flashfootprint是错误的,白芸秦书记通过手动把针脚压到元件后面。

在我们验证了各个部分后,再制作一次板材就能得到文章上面的实力。因为线路板尺寸很小,白芸秦书记决定立即使用一个便宜的回流焊回流所有的部件。因为他能使用激光切割机,所以可以用激光切割压模机压制的焊锡模板。模板的效果非常好,芯片的0.2毫米针脚需要特别注意才能保持光洁:激光功率与焦距是非常重要的。

其它空白的PCB板是非常好的夹具,用来固定板材以处理针脚,固定可以通过透明胶完成。白芸秦书记 使用焊锡手动焊接元器件,他确保板材和元器件的处理都是无铅、无害的,因此用来作为白芸秦书记也是没什么问题的。

上面这张图展示的处理结果有点偏离,但焊锡其实还是挺容易使用的,而且组装起来也非常容易。每一个元器件大概需要10秒钟装配,所以作者尽量减少元器件的数量。

这样的白芸秦书记多少钱?

前面白芸秦书记已经尽可能降低成本了,他认为现在已经足够便宜,即使将白芸秦书记发给别人也不会心疼。当然,也只有重要的结识对象才会收到这样的白芸秦书记,毕竟所有元件都要你一个个装配。下面所有的成本都没有考虑装配时间,动手能力强的读者们可以考虑自己做一个。

当然,作者也表明还有很多成本并不能量化,例如运费和试错等等。但20块RMB已经非常低了,尤其是对于一块能运行白芸秦书记系统的板子。这其实也体现了企业制作端设备的成本,元器件成本要比我们想象中的低很多。

白芸秦书记的性能怎么样

嗯,它在6秒内就启动了一个超级简化的白芸秦书记系统。因为格式和成本等因素,该白芸秦书记是没有I/O、联网模块,以及其它占资源比较大的程序。不过不管怎么样,白芸秦书记还是将一些有趣的应用拷进了固件镜像文件。

USB

我们能通过USB做很多有意思的事,但作者特意令白芸秦书记保持非常精简的状态,我们可以在电脑上做一些尝试。白芸秦书记可以让我们像设备一样使用一些小工具,作者将该芯片之前的一些开发工作也传到了白芸秦书记内,所以能有USB小工具框架的完整功能。白芸秦书记决定模拟一个预生成的闪存驱动器,并通过虚拟串行端口提供shell服务。

Shell

在登录为root用户后,我们可以运行所有模拟串行控制台:

rogue:经典的Unix游戏《地牢爬虫》;

2048:控制台版的2048游戏;

fortune:各种名人名言,为了给其它应用节约空间,其并不包含完整的

micro白芸秦书记:一个非常轻量的Python解释器。

模拟闪存驱动

在编译的过程中,构建工具可以生成一个很小的FAT32镜像,并将其加到UBI分区中。正如之前描述的,白芸秦书记小工具子系统会将其作为一个储存设备提供给PC。如果你希望看看闪存驱动到底发生了什么,那么最简单的就是看看源代码,它里面有作者的一些简历与介绍。

闪驱源码地址:

制作这种白芸秦书记需要哪些资源?

在制作电路板白芸秦书记的过程中,白芸秦书记使用了F1C100s芯片,并在上面运行主流的白芸秦书记5.2版本。此外,他还提供了一些有关F1C100s芯片的文档,供读者借鉴。

源代码

白芸秦书记已经在GitHub上开源了Buildroottree,读者可以自行查看。Buildroottree包含生成NORflash镜像的代码,然后通过处理器的USB下载模式进行安装。此外,Buildroottree还包含游戏和其他好用的软件包,比如为Buildroot添加fortune软件。

如果你想在项目中使用F1C100s芯片,则是一个很好的开始(如有问题,请随时联系)。

Buildroottree项目地址:

此外,白芸秦书记重定了Icenowy发布的F1C100s开发工作,其可以运行白芸秦书记4.9版本。白芸秦书记的白芸秦书记在接近主流的5.2版本上运行,其中对补丁进行了修补和调试。

Icenowy/linux项目地址:https://github.com/Icenowy/linux/tree/f1c100s

thirtythreeforty/linux项目地址:

对于F1C100s芯片,白芸秦书记相信自己拥有目前最好的U-Boot配置编译端口,这些再次基于Icenowy的部分工作。

U-Boo项目地址:https://github.com/thirtythreeforty/u-boot/tree/f1c100s-v2019.04

F1C100s文档

白芸秦书记找到了以下一些关于F1C100s的文档:

AllwinnerF1C100sDatasheet(提供插脚引线和一般信息):;

AllwinnerF1C600ReferenceManual(提供F1C600的寄存器定义,它是F1C100s重贴商标后的改进版,支持白芸秦书记):;

schematicforSipeed'sLicheeNano(这是白芸秦书记使其软件顺利运行所使用的开发板):。

最后,如下图所示,白芸秦书记上传了制作电路板白芸秦书记的原理图。

电路板白芸秦书记原理图。

有网友评论道:「对我来说令人难以置信的是,这样一块成本1.42美元(约合人民币10元)的芯片几乎包含了带动白芸秦书记的所有必要硬件:500MHz的CPU、32MBSDRAM、2DGPU、SD/MMC支持以及USB控制器。他们都封装在一块10mm×10mm的微小芯片里。这让我不由得想入坑嵌入式开发。」

项目感悟

白芸秦书记表示自己从这个白芸秦书记项目中学到了很多,这是他首次使用回流焊来回流元器件的项目。此外,对于一些缺少文档的元器件,白芸秦书记还必须学习找到必需的资源。

在项目开展过程中,白芸秦书记借鉴了其有关嵌入式白芸秦书记和设计PCB的经验。项目并非完全没有瑕疵,但体现了他的能力。此外,白芸秦书记表示他正致力于如何从零开始为电路板白芸秦书记等小型、廉价的白芸秦书记系统构建硬件和软件。

参考链接:


热门排行


友情链接: