资料介绍
本教程是关于在 FabGL 和 ESP32 微控制器系列的基础上用 BASIC 解释器构建一个 80 年代风格的家用电脑。该系统支持声音、图形和网络。输入设备是PS2键盘。
微控制器硬件是TTGO生产的一块板子,已经安装了VGA、PS2和音频插座。它最初是为复古计算和运行70年代和80年代操作系统的interwetten与威廉的赔率体系 器而设计的。这里的项目展示了一个新开发的 BASIC 解释器。
由于软件设置和电路板的一些功能不完全是初学者水平,我被要求发布一个关于细节的教程。这里是。
键盘和显示器
你需要什么
要构建计算机,您将需要以下硬件组件:
TTGO ESP32 显示板。我直接从全球速卖通的货源那里得到了我的。目前价格约为 15 欧元。
VGA 显示器或带有 VGA 输入和 VGA 电缆的旧电视机。
PS2键盘。
微型 SD 卡。
带 3.5mm AUX 输入的扬声器
所需的软件组件是
Arduino IDE,版本 1.8.15 或更高版本。
ESP32 开发板定义。
FabGL 库。
有关这些库的详细信息以及如何将它们放在一起的详细信息将在本教程中进一步介绍。这很简单,但需要注意库版本和设置。
简要了解 TTGO 董事会
该板专为复古计算和游戏而设计。它的核心是一个ESP32微控制器。该芯片驱动计算机的所有功能。声音信号、VGA 信号和键盘处理都在软件中完成。
它有一个 VGA 连接器,使用 8 个 ESP32 的 GPIO 引脚。鼠标和键盘连接器使用另外 4 个引脚。SPI 总线连接到板上的 SD 卡插槽。可以使用标准微型 SD 卡。总线也在电源插头旁边的一小块区域引出。SPI 在引脚 12、2 和 14 上,其中 13 是 SD 卡的芯片选择。引脚 39 和 34 也可免费使用。
该板设计用于 FabGL 库http://www.fabglib.org 。该库包含许多有用的软件组件,如声音发生器、ASCII 终端和仿真器。该库可以从 repo 或 Arduino IDE 库管理器下载。
凭借其 520 kB RAM,它有足够的内存用于图形缓冲区和用户程序。时间和中断在板上很棘手。软件开发对初学者来说没什么。
下载软件组件
您将需要 Arduino IDE,版本 1.8.15 或更高版本。我自己在1.8.15上开发,不时在2.0上测试。IDE 可以从https://www.arduino.cc/en/software 下载。
除了 Arduino IDE,您可能还需要一些 USB 转串口芯片的驱动程序。有些与 IDE 捆绑在一起。ESP 网站上有一些关于驱动程序的信息。在这里可以找到分步安装指南https://www.instructables.com/Installing-ESP32-on-Arduino-IDE-the-Easy-Method/
读取开发环境的下一步是安装板定义。转到 Arduino IDE 的首选项菜单。在底部,您会看到一个用于附加板 URLS 的框。添加以下行
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
如图所示。
完成此操作后,您需要打开板管理器菜单并安装 esp32 板定义。可以在此处找到一些屏幕截图:https://www.instructables.com/Installing-ESP32-on-Arduino-IDE-the-Easy-Method/ 。
我使用的是 2.0.5 版。请确保您使用更新的 2.0.x 版本。最初的版本有点问题。
准备好 IDE 后,您仍然需要下载 FabGL。转到 Arduino IDE 的库管理器并在搜索框中输入 fabgl。下载最新版本。我现在使用 1.0.8。这经过测试可与 ESP 2.0.5 板定义一起使用。旧版本的 FabGL 无法在 ESP 2.x 内核上编译。
现在你已经设置好了 IDE。
下载并编译 BASIC 解释器
从我的仓库https://github.com/slviajero/tinybasic/tree/main/IoTBasic下载 BASIC 解释器。
该目录中的所有文件都是必需的。IoTBasic.ino 是解释器,basic.h 是头文件,hardware-arduino.h 是硬件定义文件。IoTBasic 是一个功能齐全的 BASIC 解释器,是使用各种来源的概念从头开始开发的。
打开 IoTBasic.ino 以设置语言功能。在文件的开头附近,您将看到硬件定义部分。确保它看起来像这样
#define BASICFULL #undef BASICINTEGER #undef BASICSIMPLE #undef BASICMINIMAL #undef BASICTINYWITHFLOAT
这会激活解释器的所有功能,包括字符串、数组、浮点运算和其他一些新功能。
接下来查看 hardware-arduino.h。在部分
#undef USESPICOSERIAL #undef ARDUINOPS2 #undef ARDUINOUSBKBD #undef ARDUINOZX81KBD #undef ARDUINOPRT #undef DISPLAYCANSCROLL #undef ARDUINOLCDI2C #undef ARDUINONOKIA51 #undef ARDUINOILI9488 #undef ARDUINOSSD1306 #undef ARDUINOMCUFRIEND #undef ARDUINOGRAPHDUMMY #undef LCDSHIELD #undef ARDUINOTFT #undef ARDUINOVGA #undef ARDUINOEEPROM #undef ARDUINOI2CEEPROM #undef ARDUINOEFS #undef ARDUINOSD #undef ESPSPIFFS #undef RP2040LITTLEFS #undef ARDUINORTC #undef ARDUINOWIRE #undef ARDUINOWIRESLAVE #undef ARDUINORF24 #undef ARDUINOETH #undef ARDUINOMQTT #undef ARDUINOSENSORS #undef ARDUINOSPIRAM #undef STANDALONE
一切都应该是#undef。这是回购协议中的默认值。
再往下是电路板部分。这些是预定义的硬件设置。
#undef UNOPLAIN #undef AVRLCD #undef WEMOSSHIELD #undef MEGASHIELD #define TTGOVGA #undef DUETFT #undef MEGATFT #undef NANOBOARD #undef MEGABOARD #undef UNOBOARD #undef ESP01BOARD #undef RP2040BOARD #undef RP2040BOARD2 #undef ESP32BOARD #undef MKR1010BOARD
确保只选择了 TTGOVGA,所有其他设置都是#undef。
要编译 BASIC 解释器,请转到开发板菜单的 ESP32 部分并为“TTGO T7 1.4 mini32”编译。这是具有正确引出线的电路板定义。
编译上传。将电路板连接到键盘和显示器。一段时间后,应该会出现欢迎消息。
下一步是什么?
许多演示程序都移植了这种 BASIC 方言。您可以从示例部分的repo 文件夹https://github.com/slviajero/tinybasic/tree/main/examples下载演示。最好从教程开始。
使用 MANDELV.BAS 计算 Mandelbrot 集很有趣,而 ELIZA.BAS 是众所周知的在线收缩。
https://github.com/slviajero/tinybasic/blob/main/MANUAL.md中有关于所有语言功能和命令的手册。在这个特定的硬件上有一个特殊的部分https://github.com/slviajero/tinybasic/blob/main/MANUAL.md#esp32-vga-with-fabgl包括声音命令。
- 乐鑫ESP32_威廉希尔官方网站 规格书
- 乐鑫ESP32_威廉希尔官方网站 参考手册
- 乐鑫ESP32_蓝牙配网用户指南
- 乐鑫ESP32_蓝牙架构用户指南
- 乐鑫ESP32-MINI-1参考设计
- 乐鑫ESP32_ECO_V3_使用指南
- 乐鑫ESP32_Bug_描述及解决方案
- 乐鑫ESP32-SenseKit参考设计
- 乐鑫ESP32-WROVER_威廉希尔官方网站 规格书
- 乐鑫ESP32-WROOM-32UE参考设计
- 乐鑫ESP32-WROOM-32_威廉希尔官方网站 规格书
- 乐鑫ESP32-WROVER-E-V1.2参考设计
- 乐鑫ESP32-WROOM-32E-V1.2参考设计
- 乐鑫ESP32-WROVER-IE-V1.2参考设计
- esp32-s3_datasheet
- ESP32能取代STM32吗?哪个更好? 2383次阅读
- 基于ESP32-S3的高性能开发板介绍 8722次阅读
- ESP32-C3硬件定时器简介及使用 4259次阅读
- 什么是ESP32-CAM摄像头? 2.1w次阅读
- 基于ESP32的简易web服务器设计 3305次阅读
- ESP32 OTA无线更新系列——Basic OTA 4178次阅读
- 使用ESP32连接腾讯云实现远程控制 3240次阅读
- 介绍一个使用ESP32模块开发的信息显示器 2179次阅读
- 使用ESP32实现UDP通信的方法 5727次阅读
- ESP8266/ESP32自动下载原理 4249次阅读
- ESP32的数字遥测实现 1521次阅读
- 如何利用ESP32实现太阳能气象站的设计 4281次阅读
- 如何在ESP32上使用代码运行TensorFlow模型? 4526次阅读
- 基于一个micro USB连接器串行IC对ESP32芯片实现编程 3063次阅读
- dfrobotBeetle-ESP32控制器简介 2695次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多