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

网友投稿 2019-11-03 15:55

https://cdn.china-scratch.com/timg/191105/15545G640-0.jpg
   MAKER:Rob Cai/ 译:趣无尽

本期将为大家介如何用两个 Arduino 制作一个可以运行 BASIC 的复古8位计算机。更棒的是,这个计算机带有 VGA 接口和 PS2 键盘接口,已经还原了当年上微机课时所用的老爷机了(暴露年龄,逃~)。

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

程序保存在 Arduino EEPROM 中,你甚至可以通过 Basic 指令来直接控制 I/O 脚。

这个项目也可用于在显示器上打印简单文本消息,如图所示。
https://cdn.china-scratch.com/timg/191105/15545W292-1.jpg

把其中一个 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 和相关教程的更多详细信息:

https://github.com/BleuLlama/TinyBasicPlus

如果兼容性等其他的问题, 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 的主机

https://cdn.china-scratch.com/timg/191105/15545R424-2.jpg
请在这篇《在 Arduino 上使用 PS/2 键盘进行输入》中获取所有的信息和库。

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


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

https://cdn.china-scratch.com/timg/191105/15545U549-3.jpg
1、下载本项目文件库中的 VGAx-PC.ino 代码,然后将其复制到电脑上的同名目录中。

2、从GitHub上的点击链接下载VGAx 库。最简单的方法是将其复制到名为 “libraries” 的 Arduino 文件夹中,以便立即识别。

https://github.com/smaffer/vgax

注意:此库适用于 Arduno IDE 1.6.4,它与旧版本或新版本不完全兼容。

3、在另一个 Arduino 板上传 VGAx-PC.ino (我测试它的 Nano 版本,但 Uno 应该也能正常运行)。
内存不足的警告是正常的。如果你没有其他错误,一切正常,你可以马上开始构建自己的 8-bit 电脑。

原理图如上图所示。请按照图中所示步骤中示出了完成的“控制台”的示例。
VGAx-PC.inov文件请在项目文件库中下载:
https://maker.quwj.com/project/92

可选:制作电路板

https://cdn.china-scratch.com/timg/191105/1554591T5-4.jpg
https://cdn.china-scratch.com/timg/191105/1554592426-5.jpg
https://cdn.china-scratch.com/timg/191105/15545aC5-6.jpg
https://cdn.china-scratch.com/timg/191105/15545G640-0.jpg
你也可以使用一块小电路板来制作这款 Basic VGA 的电脑。你可以从图片中获取灵感,或者甚至可以设计自己的电路板。

我使用了两条带15孔的母头线,用于视频输出 Arduino 。对于 Arduino 主机,我使用两条双排母排座。

通过这种方式,我可以使用外部的插口与其他项目组件组合在一起,可以用 Basic 代码直接驱动。我还在中心添加几条预留的线,一个连接到5V ,另一个连接到 GND 。

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

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com