Inhoudsopgave:

ESP32 Basic-pc met VGA-uitgang - Ajarnpa
ESP32 Basic-pc met VGA-uitgang - Ajarnpa

Video: ESP32 Basic-pc met VGA-uitgang - Ajarnpa

Video: ESP32 Basic-pc met VGA-uitgang - Ajarnpa
Video: Видеовыход Raspberry Pi Pico VGA с использованием только резисторов 2024, Juli-
Anonim
Image
Image
ESP32-kaarten, Arduino IDE-installatie en VGA-bibliotheekconfiguratie
ESP32-kaarten, Arduino IDE-installatie en VGA-bibliotheekconfiguratie

In deze Instructable ga ik laten zien hoe je een eenvoudige retro-stijl pc kunt bouwen met een enkele ESP32 en een paar andere componenten.

Deze pc draait Tiny Basic, een vereenvoudigd dialect van BASIC, en genereert de output voor een VGA-monitor.

De resolutie is 640x350 pixels, waardoor 80x25 asci-tekens in 8 kleuren mogelijk zijn. Een PS2-toetsenbord kan worden aangesloten en gebruikt om de code te schrijven, waardoor maximaal 14059 bytes geheugen mogelijk is.

De ESP32 I/O-pinnen kunnen direct worden aangestuurd door speciale BASIC-commando's.

Dit project wordt mogelijk gemaakt door de geweldige ESP32 VGA-bibliotheek, geschreven door Fabrizio Di Vittorio. Zie hier voor meer details.

Stap 1: ESP32-kaarten, Arduino IDE-installatie en VGA-bibliotheekconfiguratie

ESP32-kaarten, Arduino IDE-installatie en VGA-bibliotheekconfiguratie
ESP32-kaarten, Arduino IDE-installatie en VGA-bibliotheekconfiguratie
ESP32-kaarten, Arduino IDE-installatie en VGA-bibliotheekconfiguratie
ESP32-kaarten, Arduino IDE-installatie en VGA-bibliotheekconfiguratie

Allereerst dien je een ESP32 revisie 1 of hoger aan te schaffen. Er zijn veel versies beschikbaar, maar ik raad aan om er een te kiezen met veel pinnen. Ik gebruik deze versie, maar ik denk dat vele andere ook goed zijn. In de beschrijving van deze video kun je bijvoorbeeld drie andere modellen vinden die minder dan 5 dollar kosten.

Zodra je het bord hebt, moet je doorgaan met de volgende drie substappen:

  1. Installeer de laatste Arduino IDE
  2. Configureer de ESP32 in de IDE en
  3. Installeer de VGA-bibliotheek

Substap 1.

Er zijn verschillende methoden om de ESP32 te programmeren, maar hier moet je de nieuwste Arduino IDE gebruiken (ik gebruik de versie 1.8.9). Om het te installeren, kun je naar de Arduino IDE-pagina gaan en de instructies volgen.

Substap 2

Nadat de vorige bewerking is voltooid, moet u uw ESP32 configureren binnen de Arduino IDE. Dit is niet triviaal, aangezien de ESP32 er (nog?) niet in voorkomt. U kunt deze zelfstudie of de volgende stappen volgen.

1) open de Arduino IDE

2) open het voorkeurenvenster, Bestand/Voorkeur, of druk op "Ctrl+komma"

3) ga naar de "Extra Board Manager-URL's", kopieer en plak de volgende tekst:

https://dl.espressif.com/dl/package_esp32_index.json

en klik op de OK-knop.

4) Bordenmanager openen. Ga naar Tools/Board/Boards Manager…

5) Zoek naar ESP32 en druk op de installatieknop voor de “ESP32 by Espressif Systems“:

6) Op dit punt, wanneer u voor de eerste keer uw ESP32 aansluit, moet u het juiste model kiezen in de lange lijst met beschikbare ESP32-kaarten (zie de afbeelding in deze stap). Kies bij twijfel over het model gewoon de generieke, d.w.z. de eerste. Het werkt voor mij.

7) het systeem moet ook de juiste USB-poort en de uploadsnelheid kiezen (normaal 921600). Op dit punt moet de verbinding tussen uw pc en het ESP32-bord tot stand worden gebracht.

Substap 3

Ten slotte moet u de FabGL VGA-bibliotheek installeren. [update juli 2019] Je hebt een oude versie van deze bibliotheek nodig: je kunt het zip-bestand src.old.zip onderaan deze stap downloaden, uitpakken en de map hernoemen als "src" in je

"…\arduino-1.8.9\bibliotheken " map.

Nadat u deze bewerkingen hebt uitgevoerd, kunt u naar de volgende stap gaan en de gewijzigde TinyBasic uploaden na de volgende stap.

Stap 2: Tiny Basic Code uploaden naar de ESP32

Tiny Basic Code uploaden naar de ESP32
Tiny Basic Code uploaden naar de ESP32
Tiny Basic Code uploaden naar de ESP32
Tiny Basic Code uploaden naar de ESP32

Download ESP32_TinyBasicPlus_PS2_FabLab_beta.ino onderaan deze stap.

Open het met de Arduino IDE en upload het naar je onbewerkte ESP32.

Als je geen foutmeldingen hebt, zou de code al actief moeten zijn.

Facultatieve stap: als je TinyBasic wilt testen voordat je het VGA- en PS2-toetsenbord aansluit, dan kan dat al met een SSH- en telnet-client. Ik gebruik PuTTY.

U kunt zien hoe het eruit ziet in de afbeeldingen in deze stap.

Stap 3: De VGA-poort aansluiten

De VGA-poort aansluiten
De VGA-poort aansluiten

Je hebt de volgende onderdelen nodig:

  • een DSUB15-connector, d.w.z. een vrouwelijke VGA-connector of een VGA-kabel die moet worden doorgeknipt.
  • drie weerstanden van 270 Ohm.

Verbind de ESP32 GPIO pin 2, 15 en 21 met respectievelijk VGA Rood, Groen en Blauw via de 270 Ohm weerstanden.

Sluit de VGA Hsync en Vsync aan op respectievelijk ESP32 GPIO-pinnen 17 en 4.

Sluit de DSUB15-connectoren pinnen 5, 6, 7, 8 en 10 aan op ESP32 GND.

Zie de afbeelding in deze stap voor de definitie van de VGA DSUB15-connectorpin. Let op, dit is de soldeerzijde van de vrouwelijke connector.

Stap 4: De PS2-poort aansluiten

De PS2-poort aansluiten
De PS2-poort aansluiten

Je hebt een vrouwelijke connector voor een PS2-toetsenbord nodig.

Je kunt er een krijgen van een oud pc-moederbord, gewoon onverkocht met een warmtepistool. In de afbeelding die in deze stap wordt getoond, vindt u de functie van de benodigde pinnen van de PS2-connector.

De aansluitingen zijn:

  • Toetsenbordgegevens naar ESP32 GPIO pin 32
  • Toetsenbord IRQ (klok) naar ESP32 GPIO pin 33
  • U moet ook de 5V-pin en de GND-pin aansluiten.

Stap 5: Programmeren met Tiny Basic

Programmeren met Tiny Basic
Programmeren met Tiny Basic
Programmeren met Tiny Basic
Programmeren met Tiny Basic

Op dit punt, als u de VGA-monitor en het PS2-toetsenbord en de ESP32 op de voeding kunt aansluiten.

De hier getoonde afbeelding zou op de monitor moeten verschijnen. Nu kun je een beetje spelen met Tiny Basic-commando's.

Probeer bijvoorbeeld het verplichte Hello, Word! oneindige lus:

10 afdrukken "Hallo, wereld!"

20 ga naar 10

loop

Je kunt veranderen in vier verschillende kleuren door op de esc-knop te drukken en de lus te stoppen met ctrl+c

Let op: als u een typfout maakt, kunt u deze niet annuleren! Of beter, je kunt annuleren maar dan wordt de typfoutcorrectie niet herkend. U moet de hele opdrachtregel herschrijven.

Nu kun je iets ingewikkelders proberen, zoals het aansturen van het knipperen van een LED met een basisprogramma. Sluit bijvoorbeeld de LED-anode (de lange poot) aan op ESP32 GPIO-pin 13 en de kathode op GND.

Schrijf dan:

nieuwe

10 i=1000

20 afdrukken

30 vertraging i

40 dwrite 13, hoog

50 vertraging i

60 dwrite 13, laag

70 i=i*9/10

80 als ik>0 ga naar 20

90 einde

loop

U kunt het resultaat zien in de video die is ingesloten in deze Instructable.

Stap 6: Een SD-geheugenkaart aansluiten

Een SD-geheugenkaart aansluiten
Een SD-geheugenkaart aansluiten
Een SD-geheugenkaart aansluiten
Een SD-geheugenkaart aansluiten

Een vintage pc, hoe klein en zwak ook, kan niet compleet zijn als je je programma's niet permanent kunt opslaan.

In deze stap zal ik laten zien hoe je een SD-geheugenkaart aansluit, maar helaas werkt het opslaan van programma's voorlopig (ik hoop alleen voor het moment) niet!

Trouwens, ik heb een microSD-naar-SD-kaartadapter gebruikt en ik heb 8 L-vormige pinnen gesoldeerd zoals weergegeven in de afbeelding in deze stap.

Vervolgens heb ik de pinnen van de SD-adapter op de ESP32 aangesloten volgens de tweede foto, d.w.z. ik heb de ESP32 GPIO-pinnen 5, 18, 19, 23 aangesloten op respectievelijk SC, klok, MISO, MOSO plus 3,3 V en twee GND.

Ik heb ook de instructies en voorbeelden gevolgd die hier te vinden zijn, en met de voorbeeldcode SD_test.ino kan ik op mijn 2 GBytes microSD-kaart schrijven.

Dus als iemand een oplossing vindt, laat het me dan zo snel mogelijk weten via mijn e-mail [email protected] en ik zal dit Instructable voltooien.

Stap 7: Dankbetuigingen

Dankbetuigingen
Dankbetuigingen

Ik wil mijn tanks uiten aan Fabrizio Di Vittorio voor zijn geweldige ESP32 VGA-bibliotheek. Voor meer details, voorbeelden, en… Space Invaders, bezoek zijn site hier.

veel dank ook aan de auteurs van Tiny Basic:

  • Mike Field
  • Scott Lawrence
  • Brian O'Dell

Tot slot, als je dit project leuk vindt, schrijf dan een opmerking of deel een foto van het apparaat dat je bouwt… en stem er vooral op in de Arduino-wedstrijd!

Aanbevolen: