資料介紹
本教程是關(guān)于在 FabGL 和 ESP32 微控制器系列的基礎(chǔ)上用 BASIC 解釋器構(gòu)建一個(gè) 80 年代風(fēng)格的家用電腦。該系統(tǒng)支持聲音、圖形和網(wǎng)絡(luò)。輸入設(shè)備是PS2鍵盤。
微控制器硬件是TTGO生產(chǎn)的一塊板子,已經(jīng)安裝了VGA、PS2和音頻插座。它最初是為復(fù)古計(jì)算和運(yùn)行70年代和80年代操作系統(tǒng)的模擬器而設(shè)計(jì)的。這里的項(xiàng)目展示了一個(gè)新開發(fā)的 BASIC 解釋器。
由于軟件設(shè)置和電路板的一些功能不完全是初學(xué)者水平,我被要求發(fā)布一個(gè)關(guān)于細(xì)節(jié)的教程。這里是。

鍵盤和顯示器
你需要什么
要構(gòu)建計(jì)算機(jī),您將需要以下硬件組件:
TTGO ESP32 顯示板。我直接從全球速賣通的貨源那里得到了我的。目前價(jià)格約為 15 歐元。
VGA 顯示器或帶有 VGA 輸入和 VGA 電纜的舊電視機(jī)。
PS2鍵盤。
5V供電,最好帶2A電源輸出。
微型 SD 卡。
帶 3.5mm AUX 輸入的揚(yáng)聲器
所需的軟件組件是
Arduino IDE,版本 1.8.15 或更高版本。
ESP32 開發(fā)板定義。
FabGL 庫。
有關(guān)這些庫的詳細(xì)信息以及如何將它們放在一起的詳細(xì)信息將在本教程中進(jìn)一步介紹。這很簡單,但需要注意庫版本和設(shè)置。
簡要了解 TTGO 董事會(huì)

該板專為復(fù)古計(jì)算和游戲而設(shè)計(jì)。它的核心是一個(gè)ESP32微控制器。該芯片驅(qū)動(dòng)計(jì)算機(jī)的所有功能。聲音信號(hào)、VGA 信號(hào)和鍵盤處理都在軟件中完成。
它有一個(gè) VGA 連接器,使用 8 個(gè) ESP32 的 GPIO 引腳。鼠標(biāo)和鍵盤連接器使用另外 4 個(gè)引腳。SPI 總線連接到板上的 SD 卡插槽??梢允褂脴?biāo)準(zhǔn)微型 SD 卡??偩€也在電源插頭旁邊的一小塊區(qū)域引出。SPI 在引腳 12、2 和 14 上,其中 13 是 SD 卡的芯片選擇。引腳 39 和 34 也可免費(fèi)使用。

該板設(shè)計(jì)用于 FabGL 庫http://www.fabglib.org 。該庫包含許多有用的軟件組件,如聲音發(fā)生器、ASCII 終端和仿真器。該庫可以從 repo 或 Arduino IDE 庫管理器下載。
憑借其 520 kB RAM,它有足夠的內(nèi)存用于圖形緩沖區(qū)和用戶程序。時(shí)間和中斷在板上很棘手。軟件開發(fā)對(duì)初學(xué)者來說沒什么。
下載軟件組件
您將需要 Arduino IDE,版本 1.8.15 或更高版本。我自己在1.8.15上開發(fā),不時(shí)在2.0上測(cè)試。IDE 可以從https://www.arduino.cc/en/software 下載。
除了 Arduino IDE,您可能還需要一些 USB 轉(zhuǎn)串口芯片的驅(qū)動(dòng)程序。有些與 IDE 捆綁在一起。ESP 網(wǎng)站上有一些關(guān)于驅(qū)動(dòng)程序的信息。在這里可以找到分步安裝指南https://www.instructables.com/Installing-ESP32-on-Arduino-IDE-the-Easy-Method/
讀取開發(fā)環(huán)境的下一步是安裝板定義。轉(zhuǎn)到 Arduino IDE 的首選項(xiàng)菜單。在底部,您會(huì)看到一個(gè)用于附加板 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 版。請(qǐng)確保您使用更新的 2.0.x 版本。最初的版本有點(diǎn)問題。
準(zhǔn)備好 IDE 后,您仍然需要下載 FabGL。轉(zhuǎn)到 Arduino IDE 的庫管理器并在搜索框中輸入 fabgl。下載最新版本。我現(xiàn)在使用 1.0.8。這經(jīng)過測(cè)試可與 ESP 2.0.5 板定義一起使用。舊版本的 FabGL 無法在 ESP 2.x 內(nèi)核上編譯。
現(xiàn)在你已經(jīng)設(shè)置好了 IDE。
下載并編譯 BASIC 解釋器
從我的倉庫https://github.com/slviajero/tinybasic/tree/main/IoTBasic下載 BASIC 解釋器。
該目錄中的所有文件都是必需的。IoTBasic.ino 是解釋器,basic.h 是頭文件,hardware-arduino.h 是硬件定義文件。IoTBasic 是一個(gè)功能齊全的 BASIC 解釋器,是使用各種來源的概念從頭開始開發(fā)的。
打開 IoTBasic.ino 以設(shè)置語言功能。在文件的開頭附近,您將看到硬件定義部分。確保它看起來像這樣
?
?
#define BASICFULL #undef BASICINTEGER #undef BASICSIMPLE #undef BASICMINIMAL #undef BASICTINYWITHFLOAT
?
?
這會(huì)激活解釋器的所有功能,包括字符串、數(shù)組、浮點(diǎn)運(yùn)算和其他一些新功能。
接下來查看 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
?
?
一切都應(yīng)該是#undef。這是回購協(xié)議中的默認(rèn)值。
再往下是電路板部分。這些是預(yù)定義的硬件設(shè)置。
?
?
#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,所有其他設(shè)置都是#undef。
要編譯 BASIC 解釋器,請(qǐng)轉(zhuǎn)到開發(fā)板菜單的 ESP32 部分并為“TTGO T7 1.4 mini32”編譯。這是具有正確引出線的電路板定義。
編譯上傳。將電路板連接到鍵盤和顯示器。一段時(shí)間后,應(yīng)該會(huì)出現(xiàn)歡迎消息。
下一步是什么?

許多演示程序都移植了這種 BASIC 方言。您可以從示例部分的repo 文件夾https://github.com/slviajero/tinybasic/tree/main/examples下載演示。最好從教程開始。
使用 MANDELV.BAS 計(jì)算 Mandelbrot 集很有趣,而 ELIZA.BAS 是眾所周知的在線收縮。
https://github.com/slviajero/tinybasic/blob/main/MANUAL.md中有關(guān)于所有語言功能和命令的手冊(cè)。在這個(gè)特定的硬件上有一個(gè)特殊的部分https://github.com/slviajero/tinybasic/blob/main/MANUAL.md#esp32-vga-with-fabgl包括聲音命令。
?
- 樂鑫ESP32_技術(shù)規(guī)格書
- 樂鑫ESP32_技術(shù)參考手冊(cè)
- 樂鑫ESP32_藍(lán)牙配網(wǎng)用戶指南
- 樂鑫ESP32_藍(lán)牙架構(gòu)用戶指南
- 樂鑫ESP32-MINI-1參考設(shè)計(jì)
- 樂鑫ESP32_Bug_描述及解決方案
- 樂鑫ESP32-SenseKit參考設(shè)計(jì)
- 樂鑫ESP32-WROVER_技術(shù)規(guī)格書
- 樂鑫ESP32-WROOM-32UE參考設(shè)計(jì)
- 樂鑫ESP32-WROVER-E-V1.2參考設(shè)計(jì)
- 樂鑫ESP32-WROOM-32E-V1.2參考設(shè)計(jì)
- 樂鑫ESP32-WROVER-IE-V1.2參考設(shè)計(jì)
- 編譯BASIC解釋器方案
- Arduinos上的BASIC解釋器
- esp32s下載電路原理圖下載 28次下載
- ESP32-運(yùn)行網(wǎng)頁服務(wù)器(Web Server)-實(shí)用篇 3.3k次閱讀
- ESP32運(yùn)行網(wǎng)頁服務(wù)器 (Web-Server)-入門篇 6.9k次閱讀
- 【代碼分享】基于樂鑫ESP32的串口不定長數(shù)據(jù)接收方法 2.1k次閱讀
- ESP32能取代STM32嗎?哪個(gè)更好? 1.9w次閱讀
- 基于ESP32-S3的高性能開發(fā)板介紹 1.7w次閱讀
- 基于ESP32的簡易web服務(wù)器設(shè)計(jì) 5.2k次閱讀
- ESP32 OTA無線更新系列——Basic OTA 6.6k次閱讀
- 使用ESP32連接騰訊云實(shí)現(xiàn)遠(yuǎn)程控制 5.5k次閱讀
- 介紹一個(gè)使用ESP32模塊開發(fā)的信息顯示器 3.4k次閱讀
- 使用ESP32實(shí)現(xiàn)UDP通信的方法 8.7k次閱讀
- ESP8266/ESP32自動(dòng)下載原理 6.5k次閱讀
- ESP32的數(shù)字遙測(cè)實(shí)現(xiàn) 2.7k次閱讀
- 如何利用ESP32實(shí)現(xiàn)太陽能氣象站的設(shè)計(jì) 5.8k次閱讀
- 如何在ESP32上使用代碼運(yùn)行TensorFlow模型? 6.5k次閱讀
- dfrobotBeetle-ESP32控制器簡介 3.8k次閱讀
下載排行
本周
- 1新一代網(wǎng)絡(luò)可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費(fèi)
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數(shù)據(jù)手冊(cè)
- 2.33 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管S9012數(shù)據(jù)手冊(cè)
- 2.62 MB | 次下載 | 免費(fèi)
- 5LAT1218 如何選擇和設(shè)置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環(huán)繞擴(kuò)音機(jī) AVR-1507手冊(cè)
- 2.50 MB | 次下載 | 免費(fèi)
- 8MS1000TA 超聲波測(cè)量模擬前端芯片技術(shù)手冊(cè)
- 0.60 MB | 次下載 | 免費(fèi)
本月
- 1愛華AIWA HS-J202維修手冊(cè)
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊(cè)
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測(cè)距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準(zhǔn)諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協(xié)議電壓誘騙控制器IC技術(shù)手冊(cè)
- 1.81 MB | 1次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論