資料介紹
本教程是關(guān)于在 FabGL 和 ESP32 微控制器系列的基礎(chǔ)上用 BASIC 解釋器構(gòu)建一個 80 年代風(fēng)格的家用電腦。該系統(tǒng)支持聲音、圖形和網(wǎng)絡(luò)。輸入設(shè)備是PS2鍵盤。
微控制器硬件是TTGO生產(chǎn)的一塊板子,已經(jīng)安裝了VGA、PS2和音頻插座。它最初是為復(fù)古計算和運行70年代和80年代操作系統(tǒng)的模擬器而設(shè)計的。這里的項目展示了一個新開發(fā)的 BASIC 解釋器。
由于軟件設(shè)置和電路板的一些功能不完全是初學(xué)者水平,我被要求發(fā)布一個關(guān)于細節(jié)的教程。這里是。
鍵盤和顯示器
你需要什么
要構(gòu)建計算機,您將需要以下硬件組件:
TTGO ESP32 顯示板。我直接從全球速賣通的貨源那里得到了我的。目前價格約為 15 歐元。
VGA 顯示器或帶有 VGA 輸入和 VGA 電纜的舊電視機。
PS2鍵盤。
微型 SD 卡。
帶 3.5mm AUX 輸入的揚聲器
所需的軟件組件是
Arduino IDE,版本 1.8.15 或更高版本。
ESP32 開發(fā)板定義。
FabGL 庫。
有關(guān)這些庫的詳細信息以及如何將它們放在一起的詳細信息將在本教程中進一步介紹。這很簡單,但需要注意庫版本和設(shè)置。
簡要了解 TTGO 董事會
該板專為復(fù)古計算和游戲而設(shè)計。它的核心是一個ESP32微控制器。該芯片驅(qū)動計算機的所有功能。聲音信號、VGA 信號和鍵盤處理都在軟件中完成。
它有一個 VGA 連接器,使用 8 個 ESP32 的 GPIO 引腳。鼠標和鍵盤連接器使用另外 4 個引腳。SPI 總線連接到板上的 SD 卡插槽。可以使用標準微型 SD 卡。總線也在電源插頭旁邊的一小塊區(qū)域引出。SPI 在引腳 12、2 和 14 上,其中 13 是 SD 卡的芯片選擇。引腳 39 和 34 也可免費使用。
該板設(shè)計用于 FabGL 庫http://www.fabglib.org 。該庫包含許多有用的軟件組件,如聲音發(fā)生器、ASCII 終端和仿真器。該庫可以從 repo 或 Arduino IDE 庫管理器下載。
憑借其 520 kB RAM,它有足夠的內(nèi)存用于圖形緩沖區(qū)和用戶程序。時間和中斷在板上很棘手。軟件開發(fā)對初學(xué)者來說沒什么。
下載軟件組件
您將需要 Arduino IDE,版本 1.8.15 或更高版本。我自己在1.8.15上開發(fā),不時在2.0上測試。IDE 可以從https://www.arduino.cc/en/software 下載。
除了 Arduino IDE,您可能還需要一些 USB 轉(zhuǎn)串口芯片的驅(qū)動程序。有些與 IDE 捆綁在一起。ESP 網(wǎng)站上有一些關(guān)于驅(qū)動程序的信息。在這里可以找到分步安裝指南https://www.instructables.com/Installing-ESP32-on-Arduino-IDE-the-Easy-Method/
讀取開發(fā)環(huán)境的下一步是安裝板定義。轉(zhuǎn)到 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。轉(zhuǎn)到 Arduino IDE 的庫管理器并在搜索框中輸入 fabgl。下載最新版本。我現(xiàn)在使用 1.0.8。這經(jīng)過測試可與 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 是一個功能齊全的 BASIC 解釋器,是使用各種來源的概念從頭開始開發(fā)的。
打開 IoTBasic.ino 以設(shè)置語言功能。在文件的開頭附近,您將看到硬件定義部分。確保它看起來像這樣
?
?
#define BASICFULL #undef BASICINTEGER #undef BASICSIMPLE #undef BASICMINIMAL #undef BASICTINYWITHFLOAT
?
?
這會激活解釋器的所有功能,包括字符串、數(shù)組、浮點運算和其他一些新功能。
接下來查看 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é)議中的默認值。
再往下是電路板部分。這些是預(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 解釋器,請轉(zhuǎn)到開發(fā)板菜單的 ESP32 部分并為“TTGO T7 1.4 mini32”編譯。這是具有正確引出線的電路板定義。
編譯上傳。將電路板連接到鍵盤和顯示器。一段時間后,應(yīng)該會出現(xiàn)歡迎消息。
下一步是什么?
許多演示程序都移植了這種 BASIC 方言。您可以從示例部分的repo 文件夾https://github.com/slviajero/tinybasic/tree/main/examples下載演示。最好從教程開始。
使用 MANDELV.BAS 計算 Mandelbrot 集很有趣,而 ELIZA.BAS 是眾所周知的在線收縮。
https://github.com/slviajero/tinybasic/blob/main/MANUAL.md中有關(guān)于所有語言功能和命令的手冊。在這個特定的硬件上有一個特殊的部分https://github.com/slviajero/tinybasic/blob/main/MANUAL.md#esp32-vga-with-fabgl包括聲音命令。
?
- 樂鑫ESP32_技術(shù)規(guī)格書
- 樂鑫ESP32_技術(shù)參考手冊
- 樂鑫ESP32_藍牙配網(wǎng)用戶指南
- 樂鑫ESP32_藍牙架構(gòu)用戶指南
- 樂鑫ESP32-MINI-1參考設(shè)計
- 樂鑫ESP32_ECO_V3_使用指南
- 樂鑫ESP32_Bug_描述及解決方案
- 樂鑫ESP32-SenseKit參考設(shè)計
- 樂鑫ESP32-WROVER_技術(shù)規(guī)格書
- 樂鑫ESP32-WROOM-32UE參考設(shè)計
- 樂鑫ESP32-WROOM-32_技術(shù)規(guī)格書
- 樂鑫ESP32-WROVER-E-V1.2參考設(shè)計
- 樂鑫ESP32-WROOM-32E-V1.2參考設(shè)計
- 樂鑫ESP32-WROVER-IE-V1.2參考設(shè)計
- esp32s下載電路原理圖下載 28次下載
- 【代碼分享】基于樂鑫ESP32的串口不定長數(shù)據(jù)接收方法 707次閱讀
- ESP32能取代STM32嗎?哪個更好? 1.3w次閱讀
- 基于ESP32-S3的高性能開發(fā)板介紹 1w次閱讀
- ESP32-C3硬件定時器簡介及使用 4900次閱讀
- 什么是ESP32-CAM攝像頭? 2.4w次閱讀
- 基于ESP32的簡易web服務(wù)器設(shè)計 3990次閱讀
- ESP32 OTA無線更新系列——Basic OTA 5076次閱讀
- 使用ESP32連接騰訊云實現(xiàn)遠程控制 3745次閱讀
- 介紹一個使用ESP32模塊開發(fā)的信息顯示器 2493次閱讀
- 使用ESP32實現(xiàn)UDP通信的方法 6519次閱讀
- ESP8266/ESP32自動下載原理 4742次閱讀
- ESP32的數(shù)字遙測實現(xiàn) 1779次閱讀
- 如何利用ESP32實現(xiàn)太陽能氣象站的設(shè)計 4646次閱讀
- 如何在ESP32上使用代碼運行TensorFlow模型? 4818次閱讀
- dfrobotBeetle-ESP32控制器簡介 2974次閱讀
下載排行
本周
- 1A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 2PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 3PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 4dsPIC33EDV64MC205電機控制開發(fā)板用戶指南
- 5.78MB | 8次下載 | 免費
- 5STC15系列常用寄存器匯總免費下載
- 1.60 MB | 7次下載 | 5 積分
- 6模擬電路仿真實現(xiàn)
- 2.94MB | 4次下載 | 免費
- 7PCB圖繪制實例操作
- 2.92MB | 2次下載 | 免費
- 8零死角玩轉(zhuǎn)STM32F103—指南者
- 26.78 MB | 1次下載 | 1 積分
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 141次下載 | 1 積分
- 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設(shè)計
- 0.10 MB | 137次下載 | 免費
- 4A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 5PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 6如何正確測試電源的紋波
- 0.36 MB | 19次下載 | 免費
- 7PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統(tǒng)EMC試驗方法及要求
- 1.97 MB | 8次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多