Inhoudsopgave:
- Stap 1: Onderdelen die ik heb gebruikt
- Stap 2: Het circuit
- Stap 3: De printplaat
- Stap 4: De code uploaden
- Stap 5: Montage
- Stap 6: Bugs en toekomstig werk
Video: Handheld BASIC Computer - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Dit Instructable beschrijft mijn proces van het bouwen van een kleine draagbare computer met BASIC. De computer is gebouwd rond de ATmega 1284P AVR-chip, die ook de inspiratie vormde voor de gekke naam voor de computer (HAL 1284).
Deze build is ZWAAR geïnspireerd door het geweldige project dat hier te vinden is en de SuperCON BASIC-badge.
De computer draait een aangepaste versie van TinyBasic, hoewel veel van de software gebaseerd is op het project van dan14. Je kunt deze Instructable natuurlijk volgen, of nog beter, verbeteren omdat ik een paar fouten heb gemaakt.
Voor dit project heb ik ook een handleiding gemaakt. Het vermeldt enkele bugs en bijzonderheden voor de gekozen monitor, maar het belangrijkste is dat het de lijst met BASIC-bewerkingen heeft.
Nadat dit was gepubliceerd, heb ik een video gemaakt waarin ik het project presenteerde.
Stap 1: Onderdelen die ik heb gebruikt
Voor de hoofd-IC:
- ATMega 1284P
- 16MHz kristal
- 2x 22pf keramische condensator
- 10KΩ-weerstand (voor reset pull-up)
- 4-pins knop (voor reset)
- 470Ω Reistor (voor composietvideo)
- Weerstand van 1 kΩ (voor composiet videosynchronisatie)
- 3-pins jumper (voor videosignaal)
- Passieve zoemer
Voor toetsenbordbediening:
- ATmega 328P (zoals die worden gebruikt in de Arduino Uno)
- 16MHz kristal
- 2x 22pf keramische condensator
- 12x 10KΩ-weerstand (voor reset pull-up en knoppen)
- 51x 4-pins knop (voor het eigenlijke toetsenbord)
Voor kracht:
- L7805 Spanningsregelaar
- 3 mm LED
- 220Ω weerstand (voor LED)
- 2x 0,1 µF elektrolytische condensator
- 0,22 µF elektrolytische condensator (Je zou deze 0,22 en één 0,1 kunnen vervangen door één 0,33. Mij is ook verteld dat de waarden er niet echt toe doen, maar ik ben niet zo goed met condensatoren)
- 2x 2-pins jumper (voor stroomingang en voor hoofdschakelaar)
GPIO (misschien nog een paar redenen toevoegen):
- 7-pins jumper
- 2x 8-pins jumper
- 2-pins jumper (voor 5V en GND)
- 3-4-pins jumper (voor seriële communicatie)
Niet-PCB:
- 4" LCD-scherm met composiet video (de mijne had een ingangsspanning tussen 7-30V)
- 3D-geprinte houder voor weergave
- Een soort schakelaar
Stap 2: Het circuit
Het circuit is niet erg mooi en een groot deel van de belangrijkste IC-regio is geïnspireerd op dan14. Dat gezegd hebbende, het is een vrij ongecompliceerde Arduino op een Breadboard-circuit. Het toetsenbord is een eenvoudig raster en wordt bestuurd door de ATmega328. De twee AVR-chips communiceren via de UART seriële pinnen.
Zowel een afbeelding als mijn Eagle-bestanden zijn bijgevoegd en zullen hopelijk voldoende zijn om het circuit opnieuw te maken. Als dat niet het geval is, laat het me dan weten en ik zal de Instructable bijwerken.
Stap 3: De printplaat
De PCB is 2-laags en gemaakt met behulp van Auto Route (Oh, wat een gat!). Het heeft knoppen en power-indicator LED aan de voorkant en de rest aan de achterkant. Ik heb mijn PCB laten maken met JCL PCB, en ze hebben er geweldig werk mee gedaan. De bestanden die nodig zijn om de print opnieuw te maken, moeten van tevoren in de Eagle-bestanden staan.
Ik zou willen voorstellen dat je de PCB opnieuw ontwerpt, omdat ik een aantal dingen heb die ik anders zou willen doen. Als je mijn ontwerp leuk vindt, ik heb (op het moment van schrijven) nog vier ongebruikte borden die ik graag wil verkopen.
Het bord heeft vier boorgaten die ik heb gebruikt voor het monteren van het LCD-scherm.
Stap 4: De code uploaden
Zowel de 1284 als de 328 hebben natuurlijk code nodig en de code die ik heb gebruikt vind je hier: https://github.com/PlainOldAnders/HAL1284 onder ArduinoSrc/src. Ik heb gewoon de Arduino IDE gebruikt om de code aan te passen en te uploaden, maar voordat dat kan, moet je bootloaders op de IC's branden:
ATMega328:
Deze is eenvoudig, in die zin dat er veel ondersteuning is voor het branden van een bootloader en het uploaden van code naar dit IC. Ik volg meestal deze handleiding, vooral omdat ik de details steeds vergeet.
De code voor de 328 (onder ArduinoSrc/keypad) is vrij eenvoudig. Het is volledig afhankelijk van de Adafruit_Keypad-master-bibliotheek. Voor het geval er iets verandert aan de lib, heb ik de versie die ik gebruikte op mijn github-pagina onder ArduinoSrc/lib opgenomen.
ATmega1284:
Dit was een beetje moeilijk voor mij toen ik voor het eerst de IC kreeg. Ik begon met het ophalen van de bootloader vanaf hier en volgde de installatiehandleiding. Om de bootloader te branden, deed ik gewoon hetzelfde als bij de 328 en kreeg ik hier hulp. Voor beide IC's heb ik zojuist een Arduino Uno gebruikt voor zowel het branden van de bootloader als het uploaden van de code (IC verwijderd van Arduino Uno bij het uploaden).
De code (onder ArduinoSrc/HAL1284Basic) is veel te ingewikkeld voor mij, maar ik heb enkele delen van de code kunnen wijzigen:
Ik heb een aantal commando's toegevoegd (die gemarkeerd met [A] in de manual.pdf), en ik heb ook andere commando's gewijzigd:
Toon: Het tooncommando gebruikte eerder de toonfunctie van Arduino, maar bij gebruik van de TVout-bibliotheek werkte de zoemer niet goed. Ik heb het gewijzigd om de toonfunctie van TVout te gebruiken, maar dit betekent dat de toonpin pin 15 moet zijn (voor de atmega1284)
Seriële communicatie: aangezien het toetsenbord zelfgemaakt is, gebruikt het seriële communicatie voor het lezen van de karakters. Aangezien de atmega1284 hier wordt gebruikt, zijn er twee beschikbare seriële communicatielijnen, en wanneer "sercom" is ingeschakeld, maakt de code het ook mogelijk om via de seriële poort te schrijven (vanaf een computer of wat dan ook).
Resolutie: de monitor die voor dit project wordt gebruikt, is behoorlijk dom en er is een kleine resolutie nodig, anders flikkert het beeld. Als een betere monitor wordt gebruikt, raad ik u aan de resolutie in de setup-functie te wijzigen.
Stap 5: Montage
Met de code geüpload en de printplaat en onderdelen klaar, is het nu tijd voor montage. Alle onderdelen die ik gebruikte waren doorlopende gaten, dus het solderen was niet al te moeilijk (in tegenstelling tot de badass-SMD-soldeer-jongens die er zijn). De monitor werd met een 3D-geprinte houder op de vier boorgaten in de print bevestigd. Als er een andere monitor wordt gebruikt, kunnen de vier boorgaten hopelijk worden gebruikt om deze te monteren.
De monitorhouder die hier wordt gebruikt, is ook ontworpen om een tuimelschakelaar (aangesloten op de "switch"-jumper op de print) en de drie bedieningsknoppen voor de monitor te huisvesten. De houder wordt vastgezet met kunststof M3 bouten en afstandhouders.
Voor de stekker heb ik een JST PCB-connector gebruikt, hoewel een gladde barrel-jack wat soepeler zou zijn geweest. Om het bord van stroom te voorzien, schakelde ik tussen een 12V-voeding of drie 18650-batterijen in serie. Een vlottere cowboy dan ik zou waarschijnlijk een gelikte batterijhouder voor het bord kunnen ontwerpen.
Stap 6: Bugs en toekomstig werk
Pijltjestoetsen: De pijltjestoetsen zijn per ongeluk geplaatst en hebben niet veel functie. Dit maakt navigatie moeilijk
Bestands-I/O: Er bestaan bestands-I/O-mogelijkheden, maar deze zijn niet geïmplementeerd. Om dit tegen te gaan, kan de HAL1284Com-software bestanden uploaden naar het bord. Het is ook mogelijk om te uploaden naar de EEPROM.
PEEK/POKE: PEEK en POKE zijn niet getest en ik weet niet zeker wat de adressen zijn.
Break: Break (Esc) heeft soms met de hele code geknoeid, in oneindige lussen.
Pin 7: De PWM-pin 7 kan moeilijk zijn bij het proberen om DWRITE High of AWRITE 255 te gebruiken. Het werkt prima met AWRITE 254.
Idioot: Het zou ideaal zijn om ook via UART1 te kunnen uploaden, maar uploaden kan alleen via UART0, dus uploaden zal moeten gebeuren door het hoofd-IC uit te pakken. Het scherm en de spanningsregelaar 5 worden iets te warm bij langdurig gebruik.
Aanbevolen:
Handheld weerstation: 4 stappen
Handheld weerstation: in deze Instructable zullen we een Arduino, een oled-display en een SparkFun-omgevingssensorcombinatie met CCS811- en BME280-sensoren aan boord gebruiken om een handheld-apparaat te bouwen dat temperatuur, vochtigheid, TVOC-niveaus, barometrische druk, een
Grote bestanden van computer naar computer verzenden: 6 stappen
Grote bestanden van computer naar computer verzenden: bestandsgroottes blijven toenemen naarmate de technologie vordert. Als je creatief bezig bent, zoals ontwerpen of modelleren, of gewoon een hobbyist bent, kan het overzetten van grote bestanden een gedoe zijn. De meeste e-maildiensten beperken de maximale grootte van bijlagen tot ongeveer 25
GamePi - de handheld-emulatorconsole: 17 stappen (met afbeeldingen)
GamePi - de Handheld Emulator Console: Intro: Dit instructable beschrijft de bouw van een Raspberry Pi 3 aangedreven handheld emulatieconsole - ik heb het GamePi gedoopt. Er zijn veel vergelijkbare instructables voor dergelijke apparaten, maar naar mijn smaak zijn de meeste te groot, te klein, te
Handheld-gameconsole - Arduboy Clone: 6 stappen (met afbeeldingen)
Handheld-gameconsole | Arduboy Clone: Een paar maanden geleden kwam ik Arduboy tegen, dat volgens de officiële website een miniatuur 8-bits spelplatform is dat het gemakkelijk maakt om online games te leren, te delen en te spelen. Het is een open source-platform. De spellen voor de Arduboy zijn gemaakt door de gebruiker
Gebruik SSH en XMing om X-programma's van een Linux-computer op een Windows-computer weer te geven: 6 stappen
Gebruik SSH en XMing om X-programma's weer te geven vanaf een Linux-computer op een Windows-computer: Als u Linux op het werk en Windows thuis gebruikt, of vice versa, moet u mogelijk soms inloggen op de computer op uw andere locatie , en programma's uitvoeren. Welnu, u kunt een X-server installeren en SSH-tunneling inschakelen met uw SSH-client, en één