Arduino制作:支持Basic和VGA显示器的复古计算机


MAKER:Rob Cai/译:趣无尽 Cherry(转载请注明出处)
本期将为大家介如何用两个 Arduino 制作一个可以运行 BASIC 的复古8位计算机。更棒的是,这个计算机带有 VGA 接口和 PS2 键盘接口,已经还原了当年上微机课时所用的老爷机了(暴露年龄,逃~)。

你可以使用 PS2 键盘输入变量和 BASIC 程序,文本最大可显示24列10行。字符采用4色5×6像素。效果见下面的视频。


程序保存在 Arduino EEPROM 中,你甚至可以通过 Basic 指令来直接控制 I/O 脚。
这个项目也可用于在显示器上打印简单文本消息,如图所示。

把其中一个 Arduino 看作为项目的“主机”,它运行 Tiny Basic Plus ,一款用 C 实现的 Tiny Basic,支持 Arduino 。它还可以驱动 PS2 键盘。其输出通过串口发送到另一个 Arduino ,由 VGAx 库,产生 VGA 输出信号。

材料清单

Arduino Uno Rev 3 ×2 或 Nano 3.x ×2(ATmega328)
DSUB15连接器×1(VGA插座)
电阻 68 欧 ×2
电阻 470 欧 ×2
PS2母头连接器×1
电线×若干
面包板或条形板×1

用 TinyBasic、PS2 键盘制作 Arduino 主机

TinyBasic Plus 和 VGAx 库适用于 Arduino IDE 1.6.4。
1、从 Arduino 官方网页下载。如果你的 电脑 上有更新版本,最好以 .zip 格式下载并在 电脑 上解压缩。这个链接下载 Windows 版本。
2、使用 PS2 键盘库。你可以在本页底部找到它。只需将其解压缩并复制到 arduino-1.6.4libraries 中的 PS2keyboard 文件夹即可
3、在本项目文件库中下载文件TinyBasicPlus_PS2_VGAx.ino,解压缩并将其上传到你的 Arduino 上。
这是标准 TinyBasic Plus 的变体,我添加了 PS2 库并修改了代码以接受来自它的变量。

有关 TiniBasic Plus 和相关教程的更多详细信息,请猛击这里
如果兼容性等其他的问题, Tiny Basic 就已经跑起来。你可以通过 电脑中的串行的显示器进行测试。我使用 PuTTY ,但是还有许多其他程序可替代。
你必须设置正确的 COM 端口(它与你在 Arduino IDE 中找到的相同)

baud rate = 4800

4、在 电脑 键盘上输入一些程序就可以测试它了。
尝试如下:

10 PRINT“Hello,World!”
20 GOTO 10
RUN

5、只需键入 Ctrl + C 即可停止无限循环。
请注意,此组合不适用于 PS2 键盘。
TinyBasicPlus_PS2_VGAx.ino 和 PS2Keyboard.rar 文件请在项目文件库中下载:
https://maker.quwj.com/project/92

连接 PS2 键盘和 Arduino 的主机


请在这篇在 Arduino 上使用 PS/2 键盘进行输入中获取所有的信息和库。

四个引脚连接如下(如图):
1、键盘数据连接到 Arduino 引脚8。
2、键盘 IRQ (时钟)连接到 Arduino 引脚3。
3、连接 GND 和+ 5 V 。
PS2 所需引脚的功能如图所示。

在第二个 Arduino 中上传 VGAx 库和代码


1、下载本项目文件库中的 VGAx-PC.ino 代码,然后将其复制到电脑上的同名目录中。

2、从GitHub上的点击链接下载VGAx 库。最简单的方法是将其复制到名为 “libraries” 的 Arduino 文件夹中,以便立即识别。
注意:此库适用于 Arduno IDE 1.6.4,它与旧版本或新版本不完全兼容。

3、在另一个 Arduino 板上传 VGAx-PC.ino (我测试它的 Nano 版本,但 Uno 应该也能正常运行)。
内存不足的警告是正常的。如果你没有其他错误,一切正常,你可以马上开始构建自己的 8-bit 电脑。
原理图如上图所示。请按照图中所示步骤中示出了完成的“控制台”的示例。
VGAx-PC.inov文件请在项目文件库中下载:
https://maker.quwj.com/project/92

可选:制作电路板





你也可以使用一块小电路板来制作这款 Basic VGA 的电脑。你可以从图片中获取灵感,或者甚至可以设计自己的电路板。

我使用了两条带15孔的母头线,用于视频输出 Arduino 。对于 Arduino 主机,我使用两条双排母排座。通过这种方式,我可以使用外部的插口与其他项目组件组合在一起,可以用 Basic 代码直接驱动。我还在中心添加几条预留的线,一个连接到5V ,另一个连接到 GND 。

完成,喜欢这个项目就动手起来吧!

https://maker.quwj.com/project/92

坐沙发

发表评论

你的邮件地址不会公开


*