当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]不过,前两个版本需要联网,因为它们通过Wolfram Alpha API获取答案;而这个新版本则完全离线运行。因为它在Arduino UNO Q(2GB型号)上运行了一个本地的大语言模型(LLM)。

不过,前两个版本需要联网,因为它们通过Wolfram Alpha API获取答案;而这个新版本则完全离线运行。因为它在Arduino UNO Q(2GB型号)上运行了一个本地的大语言模型(LLM)。

硬件

这个项目的核心当然就是那台“打字机”本身,它是一台德州仪器的Silent 700(型号745),生产于上世纪70年代中期。

其他仅有的组件是Arduino UNO Q(2GB)以及一个基于MAX3232的RS232-TTL收发器。后者之所以必要,是因为终端工作电压远高于Arduino可安全接触的范围(±15V)。

在之前版本的Termi中,我在这方面相当粗心大意,幸运的是没有造成任何损坏。但为了Termi3,我决定采用正确的方法。

我使用Makera Z1铣削定制的PCB板,充当一个微型保护罩,用于连接Arduino的引脚与RS232收发器及数据线。

如果你对通信细节感兴趣,可以查看我关于Termi2的详细说明。

本地LLM

我希望Termi3能完全离线运行,这就需要一个能够在Arduino UNO Q本地运行的LLM。这本身就是一个挑战,而由于我的设备只有2GB版本,难度更是加大了。

我选择的型号是Llama 3.2-1B,这是一个通用型、参数高达12.3亿的模型,专为低功耗应用设计,非常适合此类场景。

即便如此,响应时间仍然可能相当缓慢。因此,一些技巧有助于让其看起来性能更好。前缀缓存提示符和令牌限制能起到很大作用。但最主要的因素是,它在生成答案之前就开始返回结果。

用户在终端输入内容时,Arduino UNO Q 通过 MAX3232 和位操作接收字符。当字符传入后,STM32 会将它们通过 Arduino 路由器桥接发送到 Linux 端的 Python 脚本,该脚本再将信息传递给 Llama 服务器。一旦收到回车字符,提示符就会被提交。

当 Llama 模型开始生成回复时,它会通过相同的通信链路(反向)将字符回传至终端,终端则会忠实打印这些字符。

从按下回车键到开始显示回复之间的时间仅需 2 到 3 秒,这勉强够快以供使用。但为了保险起见,Arduino 内置的 LED 矩阵会显示状态图标,让用户知道系统正在思考,需要稍等片刻。

完成之后,系统即可重新开始整个流程。

外壳

我非常希望为这个作品打造一个精美的外壳,因此投入了大量精力。我在Autodesk Fusion中设计了结构,然后逐件进行加工制作。

外壳的底座采用一块6061铝合金制成,由我的Bostomatic 312数控铣床加工而成。这块底座重约3500磅,制造于上世纪90年代初。后来我对其进行了升级改装,安装了更现代的控制器,并通过Mach3系统运行。

铣削完成后,我使用Ramco水平带锯将铝块切下。接着用Gorton 9-J手动铣床将底部表面加工成平整,再用同一台机床钻出安装孔,最后用手攻丝完成M3螺纹。

随后对表面进行玻璃珠喷砂处理,使其呈现出漂亮的质感。

中间部分是使用Bambu Lab H2C设备3D打印的PETG材料。我为外表面添加了轻微的毛边纹理,以增强视觉层次感并减少明显的分层线。

顶部部件则是一整块透明亚克力板,由Makera Z1设备铣削而成。

之后,我使用xTool O1 Omni UV打印机在亚克力板顶部添加了图案设计。整体效果看起来非常美观,使整个作品呈现出光滑、精致的外观。

前台

你可能在2026年Open Sauce展会上见过Termi3(在一个更简单的外壳中)。我当时正在那里展出,反响非常热烈——以至于我桌上的其他东西几乎都被忽略了。

人们真的非常喜欢它!我惊讶地发现,年轻人(尤其是十几岁的女孩)似乎对Termi3最感兴趣。我觉得这背后的原因在于它的体验既新颖、复古又富有触感,同时又充满乐趣且易于上手,因此格外吸引人。有点像数码相机和MP3播放器再次流行一样。

但需要指出的是,Termi3其实有点“傻瓜式”。有时候它的回答合理而准确;但有时,答案则从令人困惑到滑稽可笑不等。

这大概也是为什么持续与它互动如此有趣:你想看看它会给出哪些荒唐的回答。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭