Inhoudsopgave:

Arduino Basic-pc met tv-uitgang - Ajarnpa
Arduino Basic-pc met tv-uitgang - Ajarnpa

Video: Arduino Basic-pc met tv-uitgang - Ajarnpa

Video: Arduino Basic-pc met tv-uitgang - Ajarnpa
Video: Устройство для безопасной проверки приборов. Гальваническая развязка. (PCBWay) 2024, Juni-
Anonim
Image
Image
Arduino Basic-pc met tv-uitgang
Arduino Basic-pc met tv-uitgang
Arduino Basic-pc met tv-uitgang
Arduino Basic-pc met tv-uitgang
Arduino Basic-pc met tv-uitgang
Arduino Basic-pc met tv-uitgang

In deze Instructables zal ik laten zien hoe je een retro 8-bit computer met BASIC bouwt, door middel van twee Arduino en enkele andere componenten.

U kunt de variabelen en het BASIC-programma invoeren met een PS2-toetsenbord, en de uitvoer wordt weergegeven op een monitor met een tekst 47 kolommen x 29 rijen van 8x8 pixels tekens (B&W), een resolutie vergelijkbaar of beter dan de Commodore 64, gelijk aan 40 x 25 tekens.

Je kunt het in actie zien in de bovenste video.

Het programma kan vervolgens worden opgeslagen op de Arduino EEPROM en u kunt de I/O-pinnen nog steeds rechtstreeks bedienen via speciale basiscommando's.

Eén Arduino is de "master" en draait Tiny Basic Plus, een C-implementatie van Tiny Basic, met een focus op ondersteuning voor Arduino. Het bestuurt ook een PS2-toetsenbord. De output wordt vervolgens via de seriële poort naar de tweede Arduino gestuurd die de video-output genereert dankzij de geweldige MRETV-bibliotheek.

Het idee om een of meer Arduino te gebruiken om een pc in oude stijl te maken met een dialect van Basic is niet nieuw, maar tot nu toe waren er enkele sterke beperkingen in de uitvoerresolutie. In sommige projecten die op het internet beschikbaar zijn, gebruikten mensen LCD-schermen, terwijl in andere, om het gebruik van monitoren mogelijk te maken, de TVout-bibliotheek werd gebruikt, die een veel lagere resolutie heeft. Verder moeten in veel van deze projecten speciale schilden of hardware worden gebouwd.

Hier heb je slechts twee Arduino nodig, een paar diodes, een paar weerstanden en de connector voor het PS2-toetsenbord en de monitor, zoals weergegeven in de bovenstaande afbeelding.

Stap 1: Bouw de Arduino Master met TinyBasic en PS2-toetsenbord

TinyBasic Plus en MRETV werken voor oudere - en andere - Arduino IDE.

Download eerst IDE 1.6.4 van de officiële Arduino-webpagina. Als u een nieuwere versie op uw pc hebt, kunt u deze het beste downloaden in.zip-indeling en deze op uw pc decomprimeren. Klik op deze link om de Windows-versie te downloaden.

Je hebt dan de PS2-toetsenbordbibliotheek nodig. Deze vind je onderaan deze pagina. Decomprimeer het gewoon en kopieer de PS2keyboard-map naar: arduino-1.6.4\libraries

Download ten slotte op deze pagina het bestand: TinyBasicPlus_PS2.ino, decomprimeer en upload het naar uw Arduino.

Dit is een variatie op de standaard TinyBasic Plus waar ik de PS2-bibliotheek heb toegevoegd en de code heb aangepast om de viariable ervan te accepteren.

Meer details over TiniBasic Plus en tutorials zijn te vinden op deze link.

Als er geen problemen en compatibiliteitsproblemen zijn, is Tiny Basic al actief. U kunt het testen via een seriële monitor in uw pc. Hiervoor gebruik ik PuTTY, maar er zijn veel andere programma's beschikbaar.

Je moet de juiste COM-poort instellen (het is dezelfde die je vindt in de Arduino IDE) en baudrate = 2400

Hier kun je al een aantal programma's in Basic testen door ze gewoon met je pc-toetsenbord te typen (NB later zal ik laten zien hoe je het PS2-toetsenbord rechtstreeks op de Arduino kunt aansluiten).

Probeer bijvoorbeeld:

10 AFDRUKKEN "Hallo, wereld!"

20 GA NAAR 10

LOOP

U kunt de oneindige lus dan stoppen door ctrl+c te typen. Merk op dat deze combinatie niet werkt voor het PS2-toetsenbord.

In de volgende stap zal ik laten zien hoe je het PS2-toetsenbord op Arduino kunt aansluiten.

Stap 2: Sluit het PS2-toetsenbord aan op de Master Arduino

Sluit het PS2-toetsenbord aan op de Master Arduino
Sluit het PS2-toetsenbord aan op de Master Arduino

Ik heb alle informatie en bibliotheek van deze Instructable.

In wezen moet u de volgende vier pinnen aansluiten:

  • toetsenbordgegevens naar Arduino pin 8,
  • toetsenbord IRQ (klok) naar Arduino pin 3;
  • natuurlijk moet je ook GND en +5V aansluiten.

Ik heb een oude vrouwelijke PS2-connector van een kapot pc-moederbord gekregen. Je kunt het eenvoudigweg met een warmtepistool weer verkopen.

In de afbeelding die in deze stap wordt getoond, vindt u de functie van de benodigde pinnen van de PS2-connector.

Stap 3: Upload de MRETV-bibliotheek op de tweede Arduino en zet alles samen

Upload de MRETV-bibliotheek op de tweede Arduino en zet alles samen
Upload de MRETV-bibliotheek op de tweede Arduino en zet alles samen

Het belangrijkste punt van dit project is het bestaan van de geweldige MRETV-bibliotheek. Er is een speciale Instructable waar het in details wordt beschreven.

Het gebruikt slechts twee weerstanden en twee diodes om video op volledig scherm te genereren, met een tekstresolutie van 47 x 29 van 8x8 tekens. Zoals in de inleiding staat: "Er is al eerder video-generatie gedaan, maar niet op deze manier. VOLLEDIGE DUPLEX-serie nog steeds beschikbaar tijdens het genereren van video". Hierdoor kunnen de gegevens van de "master" Arduino worden opgehaald en op de monitor worden weergegeven. In de praktijk wordt deze tweede "slave" Arduino gebruikt als grafische interface!

Aangezien MRETV voor IDE 1.6.6 werkt, moet u het downloaden van de officiële Arduino-webpagina. Nogmaals, het beste is om het te downloaden in.zip-indeling en ze uit te pakken op uw pc. Klik op deze link om de Windows-versie te downloaden.

Download dan de MRETV-bibliotheek via deze link.

Pak het uit en sla de map "MRETV" op in: arduino-1.6.6\libraries

Download tot slot TVtext_slave.rar onderaan deze pagina, decomprimeer het en upload het in je Arduino-slave.

Als er geen foutmelding is, kunt u de RCA-connector aansluiten. Je hebt de twee diodes en de weerstanden van 1 kOhm en 300 Ohm nodig, zoals weergegeven in het schema op deze pagina.

Op dit punt kun je alles met elkaar verbinden.

De volledige lijst met materialen is:

  • twee Arduino Uno Rev. 3 of twee Arduino Nano 3.x (ATmega328)
  • twee weerstanden 1 kOhm
  • een weerstand 300 Ohm
  • twee diodes 1n4148 (x2) of soortgelijke silicium schakeldiode
  • twee RCA-stekker vrouwelijk (één voor video, één - facultatief - voor audio)
  • een vrouwelijke PS2-connector
  • een breadboard en draden

De master Arduino stuurt de data naar de slave via de oranje kabel, d.w.z. master pin 1 (Tx) naar slave pin 2 (Rx). Als u een code opnieuw moet uploaden, moet u deze kabel eerst loskoppelen.

Sluit vervolgens de slave-arduino aan op een 5V-voeding, de RCA-kabel op de tv en het toetsenbord op de PS2 en je zou nu de code op je tv moeten zien!

De functies van dit basisdialect worden in detail beschreven op de homepage (zie link in stap 2). Met de commando's "esave" en "eload" kunt u één basisprogramma opslaan in de EEPROM. Dit programma wordt standaard uitgevoerd elke keer dat u de master Arduino reset. Om het te verwijderen kunt u het commando "eformat" gebruiken.

Een van de belangrijkste kenmerken van dit programma is dat je de master Arduino I/O nog steeds kunt aansturen met speciale basiscommando's, zoals

  • DWRITE pin, waarde - stel pin in met een waarde (HIGH, HI, LOW, LO)
  • AWRITE pin, waarde - set pin met analoge waarde (pwm) 0..255
  • DREAD(pin) - verkrijg de waarde van de pin
  • AREAD(analogPin) - verkrijg de waarde van de analoge pin

U kunt dus een programma in Basic schrijven dat bepaalde hardware aanstuurt, het in de EEPROM opslaan en het vervolgens automatisch laten draaien door de Arduino opnieuw in te stellen.

Stap 4: Optioneel: een PCB gebruiken

Optioneel: een PCB gebruiken
Optioneel: een PCB gebruiken
Optioneel: een PCB gebruiken
Optioneel: een PCB gebruiken
Optioneel: een PCB gebruiken
Optioneel: een PCB gebruiken

Je kunt deze Basic PC ook bouwen met een klein printje. Je kunt je laten inspireren door de foto's in deze stap of je kunt zelfs je bord afdrukken.

Je kunt twee vrouwelijke headerstrips met 15 gaten gebruiken voor de video-uitgang Arduino, terwijl ik voor de master vier strips raad. Op deze manier kunt u de externe gebruiken om de contacten van uw projectcomponenten in te voegen.

Ik heb in het midden ook de overgebleven strips toegevoegd, de ene aangesloten op 5 V en de andere voor GND.

Ten slotte vindt u in het.rar-bestand de maskers om een verkoperd bord te etsen.

Stap 5: Laatste opmerkingen en dankbetuigingen

Dit project was niet mogelijk geweest zonder de MRETV-bibliotheek. Dus mijn belangrijkste erkenning gaat naar zijn auteur, die het acroniem de heer E.

Veel dank ook aan de auteurs van TinyBasic Plus:

  • Tiny Basic 68k - Gordon Brandly
  • Arduino Basic / Tiny Basic C - Michael Field
  • Tiny Basic Plus - Scott Lawrence

Dank ook aan "djsadeepa", de auteur van de Instructable voor de aansluiting van het PS2-toetsenbord.

Aan alle mensen die geïnteresseerd zijn in dit project: het is gemakkelijker te bouwen dan het op het eerste gezicht lijkt. Mijn grootste problemen waren met de Arduino IDE-compatibiliteit. Als u problemen ondervindt, aarzel dan niet om suggesties te vragen in de opmerkingen.

Als het je lukt, schrijf dan ook een opmerking of deel een foto van het apparaat dat je bouwt.

Aanbevolen: