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

基于 Arduino DUE 的家用计算机

发布时间:2022-01-15
分享到:

基于 Arduino DUE 的家用计算机

发布时间:2022-01-15
分享到:

这个项目开始于 2021 年一个多雨的夏天,在疫情期间,我开始从头开始为 Arduino 编写 BASIC 解释器。该项目很简单,主要针对 Arduino UNO 和其他小型系统,但现在已经过时了。该项目旨在展示如何使用它构建完整的独立计算机。

这里的计算机是基于 Arduino DUE 的家用计算机,具有 7 英寸 800*480 图形显示器、打印机支持、SD 卡磁盘、PS2 键盘和实时时钟。它包括完整的 Arduino I/O 支持和从 BASIC 语言访问 I2C 设备的简单方法。

如何选择合适的显示器
购买合适的显示器可能有点棘手。市场上有许多不同质量的库支持。我选择了7寸SSD1936兼容800*480屏幕。它可以与 UTFT 库一起使用。要将其连接到 Arduino Mega 或 DUE,需要一个屏蔽。由于两个 Arduino 中 SPI 引脚的布局不同,DUE 和 Mega 屏蔽有所不同。

最好在购买显示器之前查阅 UTFT 库手册。

当您将 TFT 屏蔽用于 DUE 时,还有一点更重要。在 UTFT 的库文件夹(UTFT/hardware/arm)中,您需要编辑 HW_ARM_defines.h 并取消注释#define CTE_DUE_SHIELD 1.

准备TFT屏蔽和TFT
TFT shield 将完全覆盖 Arduino 的上侧。无需额外的电线即可轻松连接。市场上没有与屏蔽配合使用的原型板。出于这个原因,我在屏蔽层上焊接了几根电线以获取电源。

蓝线为GND,白线为+5V,绿线为+3.3V。电线可以连接到显示器底部的面包板,为键盘和其他设备供电。

我的 DUE 作为自己的 SD 卡插槽。使用 FAT 文件系统格式化的旧 2 GB SD 卡用作大容量存储。

DUE 屏蔽板的中间有一个 SPI 连接器。与 MEGA 256 不同,DUE 的 SPI 总线不能从引脚 50-53 访问。它只能通过中间的 SPI 连接器访问。MEGA Shield在 DUE 上不起作用。

准备 Arduino
我使用引脚 8 和 9 连接 PS2 键盘、打印机的第二个串行端口以及可选实时时钟和其他外围设备的 I2C 引脚。

要在没有更多焊接电缆的情况下访问引脚,可以在连接屏蔽之前将其连接到 DUE。

按下屏蔽上的 DUE 将使电缆固定到位。这不是完美的电子产品,但它可以工作。

然后将 DUE 和屏蔽插入显示器的背面

准备 PS2 插座
按照本页https://www.pjrc.com/teensy/td_libs_PS2Keyboard.html上的说明在 PS2 插座上焊接电线

如果您使用的是 5V 机器 Arduino MEGA 256,您在焊接后就完成了。您可以将 Arduino 的引脚 8 连接到键盘插座的时钟引脚,将引脚 9 连接到数据引脚。键盘的电源来自 GND 和焊接到屏蔽层的 5V。在这里仔细检查,因为电源的极性错误会炸键盘。

对于 Arduino DUE,建议在键盘和 Arduino PIN 之间使用电平转换器,因为 DUE 是 3.3V 系统。

GND 和 +5V 引脚以及 PS2 插座的连接器连接到电平转换器的 5V 侧,而 GND、3.3V 电源和两个 Arduino 引脚连接到 3.3V 侧。最好将电平转换器安装在屏幕后面的面包板上。

上传软件
从网站加载 Arduino IDE 中的 UTFT 库。还要确保您拥有 PS2 库的实际修补版本(请参阅下面的链接)。如果您计划添加时钟,您还应该下载 uRTCLib 和 uEEPROMLib。

在 Arduino IDE 中加载 BASIC 解释器。您只需要草图TinybasicArduino/TinybasicArduino.ino 。一切都在一个文件中。接下来您需要打开文件并设置语言功能。

以及代码开头的硬件特性

编译并上传到 Arduino DUE。享受带图形功能的全功能 60kB BASIC 家用电脑。

上面的输出是由这个小程序生成的

使用的库
PS2 键盘:https ://github.com/PaulStoffregen/PS2Keyboard

UTFT 库:http ://www.rinkydinkelectronics.com/library.php?id=51

本文中所用到的一些代码

如果您对此项目有任何想法、意见或问题,请在下方留言。

原文链接丨以上内容来源网络,如涉及侵权可联系删除。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论