本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页
最热资讯


亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」
这些年来我组装了许多台式电脑。很长一段时间以来,我想从头开始构建一台计算机,因为我发现当您尝试构建某些东西时,可以更好地了解它的内部工作原理。我以前使用 6502 处理器构建了自制计算机变体,但是这些系统对新手或中级制造商来说并不友好。我构建的这台简单的计算机基于运行 TinyBASIC 的 Arduino,之前已经完成,但我想用自制的 PCB、键盘接口、监视器/电视输出、声音和 SD 卡存储来完成构建。以下就是项目的内容。
我用ATMEGA1284P-PU 芯片做 8 位计算机。因为它具有 Arduino 兼容的 8 位微控制器的高规格,基本规格如下:
如果将此芯片与 Arduino Mega 和 Uno 进行比较,那么突出的功能是 SRAM。Mega 有 8kB 的 SRAM、4kB 的 EEPROM 和 256kB 的闪存,而 Uno 有 2kB 的 SRAM、1kB 的 EEPROM 和 32KB 的闪存。
第 1 步:工具、消耗品和零件清单
我使用的工具是:
我使用的耗材是:
我使用的组件是:
第 2 步:主板
对于这个构建,我想从头开始设计和构建主板。但是该项目是自制计算机。我使用 Fritzing 设计了 pcb,并在蚀刻电路板之前在无焊面包板上构建了一个预原型。使用高速振荡器构建电路在无焊面包板上并不总是能完美工作,我发现 PS2 键盘不能很好地工作,但它足以进行概念验证。pcb 布局非常简单,可能比原理图更容易阅读。
我使用碳粉转印方法蚀刻 PCB,我发现使用 Press-n-Peel 转印纸最适合我。我用来制作PCB的过程如下:
上述步骤给我留下了准备钻孔的空白 PCB。人们似乎担心钻孔 PCB 认为它既费时又困难,但我根本没有发现这种情况。我用标准台钻钻了 PCB。专业 PCB 钻头的优点是具有较大的柄部,可以使它们在钻夹头中保持稳定。我在 PCB 上钻了 1 毫米的通孔。我花了我的时间,钻孔过程花了大约 1 小时。
随着 PCB 的制造,我只需要将所有组件焊接到位。
第 3 步:外壳打印
外壳构建非常有趣,并使用了黑客空间中可用的许多技能和资源。外壳本身包括一个激光切割的 3 毫米楔形胶合板盒,带有激光切割的亚克力底座和铰链盖,以便可以查看 PCB。外壳的顶部平台由使用钣金制动器弯曲的铝板制成。
PCB 安装在由 PLA 制造的 3D 打印支架上。这是使用 Autodesk Fusion360 设计的,然后使用 Cura 切片,然后在 Ender 3 Pro 上打印。这张照片花了很长时间,大约 4 个小时。完成相同的过程来制作 SD 卡防护罩的支架。我发现 Fusion 360 非常用户友好,因为我过去专业地使用过 Autodesk Inventor,它也有类似的感觉。我 9 岁的儿子对 3D 打印着迷,所以他直接投入了 Fusion 360,他认为这就像玩 Minecraft!
15mm x 15mm 铝挤压件用于将外壳固定在一起。
第 4 步:软件
此时您现在可以修改 TinyBASIC 草图,以便计算机可以使用 PS2 键盘、SD 卡读/写器和压电声音输出。
Arduino 核心是可以找到所有内置函数源文件的地方,我使用的 JChristensen Arduino 核心的链接在这里。https://github.com/JChristensen/mighty-1284p/tree/v1.6.3
Arduino ISP 是一个在系统编程器,用于对 AVR 微控制器进行编程。您可以使用 Arduino ISP 将草图直接上传到 Arduino 板。在这种情况下,ISP 被简单地用于上传使用 Arduino Uno 作为接口的引导加载程序。有关如何上传引导加载程序并对其进行测试的说明的一个很好的链接,以及有关如何连接 FTDI 的说明。Technoblogy.com - 使用 ATmega1284 和 Arduino IDE。使用 FTDI 时要小心,因为您需要检查是否安装了正确的驱动程序,这是一个要小心的“陷阱”!
我建议使用最新版本的 TinyBASIC Plus 作为另一个“问题”,我发现当使用旧版本之一时,输入功能不适用于外部键盘。下载 TinyBASIC Plus 的链接位于https://github.com/BleuLlama/TinyBasicPlus。
修改 TinyBASIC Plus
为了获得 TinyBASIC 的功能,你需要修改许多代码段,下面是代码段的代码片段和起始行号,以帮助找到要修改的代码,随着 TinyBASIC 代码的更新,这会发生变化,所以这些行号仅供参考。我将代码复制到记事本++中,并使用搜索功能找出要修改的代码。我已按顺序显示了这些修改。
首先将键盘库添加到草图中并定义如下所示的数据和中断引脚(从第 135 行开始)。
第 5 步:最终测试和改进
当所有组件都构建完成并经过检查后,整个系统终于组装完成并进行了测试。为了测试系统,我用 BASIC 编写了一些程序。一个好的测试程序是我编写的一个程序,用于查找用户输入的所有质数。这是一个很棒的小程序,用于测试计算机的性能。它比普通的更具挑战性,因为 TinyBASIC 具有如此精简的指令集。它没有“mod”,它是一个函数,可以在两个数字相除时为您提供余数。这对于查找素数非常有用,在我们的例子中,它只需要更多的数学运算。我发现计算所有 1000 以内的质数大约需要 5 分钟。这个小程序被移植到黑客空间的其他几台复古计算机上。
另一个程序是一个简单的调子来测试压电蜂鸣器和音调功能。这很有趣,而且非常好。我已经包括了我为其他人编写的基本程序。
我要做的最大改进是电源。在测试该项目时,我使用了一个完全没有问题的手机移动电源。当我使用台式电源时,我怀疑是交流纹波引起的问题。这是一个很大的“问题”,可以通过使用 9v 电池作为电源轻松解决。虽然电源级有两个储存电容器来帮助消除交流纹波,但我认为包括一个低通滤波器级来消除任何剩余的交流纹波并提高负载条件下直流输出电压的稳定性也是有用的。我还会在 Arduino Nano 和 ATmega1284p 的电源输入中添加 0.1uF 去耦电容器。去耦是为了抑制电源信号中的高频噪声。
以上就是项目的全部内容了,希望您能喜欢!
如何将树莓派与笔记本电脑显示屏连接
2021-06-05
只为超越Apple Watch:华为智能手表GT拆解分析超长续航背后的秘密
2019-08-18
智能美妆镜电路设计方案分析:金玉其外败絮其中
2019-07-22
华为AI音箱MINI拆解:智能音箱的一站式电路解决方案
2019-08-29
干货!从电路设计分析任天堂Switch变砖的原因
2019-08-13
基于树莓派和Arduino打造的PLC EtherCAT电路设计
2020-02-25
DIY TDA2030 2.1功放板(内含电路图讲解)
2019-07-01
共漏极放大电路电路分析
2019-07-12
基于ESP32的手机控制WIFI小风扇
2021-10-02
便携式Raspberry Pi 4平板电脑-RasPad 3首秀
2020-08-25
讨论