Inhoudsopgave:

Games uploaden naar Arduboy en 500 games naar Flash-cart: 8 stappen
Games uploaden naar Arduboy en 500 games naar Flash-cart: 8 stappen

Video: Games uploaden naar Arduboy en 500 games naar Flash-cart: 8 stappen

Video: Games uploaden naar Arduboy en 500 games naar Flash-cart: 8 stappen
Video: 8-Bit Unboxing - February 2018 2024, November
Anonim
Games uploaden naar Arduboy en 500 games naar Flash-cart
Games uploaden naar Arduboy en 500 games naar Flash-cart

Ik heb wat zelfgemaakte Arduboy gemaakt met Serial Flash-geheugen dat maximaal 500 games kan opslaan om onderweg te spelen. Ik hoop te delen hoe je games kunt laden, inclusief hoe je games opslaat in het seriële flashgeheugen en hoe je je eigen geconsolideerde gamepakket kunt maken om onderweg te spelen.

Je kunt deze YouTube-video bekijken voor het volledige creatieproces en de uitleg

Stap 1: Arduino IDE instellen

Als Arduino nieuw voor u is, blader dan naar https://www.arduino.cc om de Arduino IDE te downloaden voor het besturingssysteem dat u gebruikt, bijvoorbeeld Windows 10 of Mac OSX of Linux.

Installeer het dan.

Stap 2: Maak de USBasp-kabel

In tegenstelling tot het laden van binaire codes/games op een Arduino-bord, kan de bootloader niet worden geprogrammeerd via de USB-poort.

Om de aangepaste bootloader (Cathy3K) op de Atmega32U4-chip te branden, heb je een USBasp-programmeur nodig. Onze creatie werkt echter op 3,3 V, we moeten de USBasp-programmeur verder aanpassen om in 3,3 V te werken.

Raadpleeg het volgende instructable-project om uw USBasp-programmeur aan te passen om te werken op zowel 3,3V als 5V via jumperinstellingen.

www.instructables.com/id/Modify-a-5V-USBasp-Arduino-Bootloader-Programmer-t/

Volg daarna de pinlay-out en de video om de USBasp naar ArduBaby-programmakabel te maken. de originele USBasp-kabel die bij de USBasp wordt geleverd, heeft twee connectoren, elk 10 pinnen. We zullen deze kabel doormidden hakken en een 6-pins mannelijke header op het ene uiteinde aansluiten, terwijl we het andere uiteinde dat op de USBasp-kaart op 10pin aansluit, houden.

Dit andere uiteinde verbindt de GND-, VCC-, MOSI-, MISO-, SCK-, Reset-pinnen van de USBasp met de overeenkomstige pinnen van de ATmega32U4 via de mannelijke header die verbinding maakt met de eerste zes pinnen van de vrouwelijke header op de Ardubaby (mijn versie van zelfgemaakte Arduboy). Uw versie heeft mogelijk een andere pinlay-out. U kunt naar mijn video verwijzen om het ontwerp aan te passen aan uw versie van zelfgemaakte Arduboy.

Om het programma uit te voeren of de bootloader naar ATmega32U4 te branden, verwijdert u de knophoed en sluit u deze 6-pins USBasp-kabel aan.

Zorg ervoor dat u duidelijk op de kop van de kabel markeert welke pin pin één is, zodat u geen verkeerde verbinding maakt. Toen ik de pinlay-out voor de Ardubaby button hat-headers ontwerp, heb ik geprobeerd de pinnen zo te rangschikken dat zelfs als je pin 1 verwisselt met pin 13, de -ve voeding niet per ongeluk de +ve voeding zal ontmoeten om schade te voorkomen. U weet echter nooit, er kunnen andere dingen gebeuren die uw kit nog steeds kunnen beschadigen als u de verkeerde richting aansluit.

Ik zal een klein gaatje branden om dat op de kop te markeren met behulp van de punt van de soldeerbout.

Stap 3: Brand de Bootloader

MR. Blinky creëerde het Arduboy-homemade-pakket voor zelfgemaakte Arduboy.

Zijn pakket bevat de boarddrivers en bibliotheek van Arduboy die zowel met verschillende versies van de originele Arduboy als met zelfgemaakte versies werkt.

1. Blader naar de GitHub-map van MR. Blinky voor de zelfgemaakte Arduboy. https://github.com/MrBlinky/Arduboy-homemade-package 2. Volg de instructies op de GitHub om je Arduino IDE te configureren met het zelfgemaakte pakket. 3. Kopieer eerst de url van de “Extra boardmanager” voor Arduboy zelfgemaakte pakket.

4. Start Arduino IDE. Klik op Voorkeuren in het hoofdmenu van Arduino. Plak deze tekst in de "Extra Boards Manager-URL's" Opmerking: als u al andere tekst in dit veld heeft, voegt u deze aanvullende tekst aan het begin in, voegt u een ", " toe en houdt de andere tekst intact. 5. Sluit Arduino IDE af en start de IDE opnieuw om de bovenstaande wijziging door te voeren. 6. Klik op Extra -> Bord: -> Bordbeheer. Voer zelfgemaakte in om te zoeken. Selecteer om het zelfgemaakte Arduboy-pakket van Mr. Blinky te installeren. Klik vervolgens op update om de nieuwste versie te krijgen. Het pakket wordt toegevoegd aan Arduino. 7. Selecteer nu Tools-> Board: “Home-made Arduboy. en selecteer de volgende parameters voor Homemade Arduboy” Gebaseerd op: “SparkFun Pro Micro 5V - Standard bedrading” Kern: “Arduboy Optimized core” Bootloader: “Cathy3K” Programmeur: USBasp 8. Schakel de Ardubaby uit en verwijder de knophoed. 9. Stel de jumper op de USBasp in op 3,3V. Zorg ervoor dat u een aangepaste USBasp gebruikt die volledig in 3.3V werkt. 10. Sluit de USBasp aan op de USB-poort van uw computer. Sluit de speciale USBasp-naar-ArduBaby-kabel aan op USBasp en het andere uiteinde op de button hat-header van de Ardubaby, lijn pin 1 uit op pin 1. Alleen de eerste 6 pinnen van de Ardubaby worden gebruikt voor het branden van de bootloader.

11. Uw Ardubaby zou nu moeten worden ingeschakeld via de 3,3V-stroom geleverd door de USBasp. 12. Druk eenmaal op de resetknop van de ArduBaby. 13. Klik op de knop Tools->Boards->Burn Bootloader op de Arduino IDE. 14. Controleer het bericht om te zien of het branden van de bootloader is gelukt. 15. Als dit niet het geval is, controleer dan de kabel en zorg ervoor dat u de pinnen in de juiste richting aansluit en pin 1 op één lijn brengt met pin 1. Soms begint de Ardubaby een vorig spel te spelen als het opstartmenu een time-out krijgt. U moet dus snel op de Burn bootloader-knop klikken nadat u op de reset-knop hebt gedrukt om de Ardubaby in de wachtstand op flitsmodus te zetten. 16. Als alles goed is, zal de ArduBaby opnieuw opstarten en zie je ofwel het opstartmenu, ofwel het vorige spel dat je in de ArduBaby hebt geladen.

Stap 4: Compileer en upload enkele spellen naar Arduboy

Games voor Arduboy kunnen worden gedownload van de volgende bronnen:

Arduboy-communityforum voor games:

De GitHub-zoekopdracht op "Arduboy-games" https://github.com/topics/arduboy-game of zoek gewoon op "GitHub arduboy-games" op google.

Spelcollecties gedeeld door anderen. bijv. Erwin's Arduboy-collecties

arduboy.ried.cl/

Je kunt de broncode van de game die je auto laadt naar Arduino downloaden en uploaden naar de Arduboy. Bekijk de video hoe je dit doet.

of alleen het hex-bestand (het gecompileerde binaire bestand maar weergegeven in Hex-nummer afgedrukt naar een tekstbestand in plaats van een binair bestand).

YVoor broncode, open gewoon de broncode in Arduino IDE.

De broncode b.v. picovaders.ino moet worden opgeslagen in een map met dezelfde naam, b.v. picovaders

De vereiste Arduboy2-bibliotheken zouden al in de vorige stap moeten zijn geïnstalleerd, waar we de boardmanager voor het zelfgemaakte Arduboy-pakket laden.

Sluit de Arduboy gewoon aan op de USB-poort van uw computer.

Schakel het in en klik vervolgens op de knop Uploaden op de Arduino IDE om de code te compileren en te uploaden naar de Arduboy om het spel te spelen.

Stap 5: Upload enkele hexadecimale bestanden

Hex-bestand is een tekstbestand met binaire codes die resulteren uit de compilatie van uw Arduino-programma (schets), maar weergegeven in een tekstbestandsindeling met tweecijferige hexadecimale getallen 0-9, A-F.

U kunt deze hex-bestanden op verschillende manieren verkrijgen.

1. We kunnen hex-bestanden downloaden van de verschillende bronnen die we hierboven hebben uitgelegd:

community.arduboy.com/c/games Arduboy-gamecollecties van Erwin

Zoek naar 'Arduboy-games' op GitHub.com of op google.com

Sla deze hex-bestanden op in bestanden met de extensie.hex.

2. Als alternatief kunt u uw eigen hex-bestand maken.

Selecteer in de Arduino IDE Sketch > Export Compiled Binary. Je schets wordt gecompileerd, waarna een kopie van het gecompileerde.hex-bestand wordt uitgevoerd naar de map van je schets. Blader naar de schetsmap of selecteer in de IDE Sketch > Show Sketch Folder om het hex-bestand te zien. Als je het zelfgemaakte pakket van MR. Blinky hebt geïnstalleerd, worden er twee versies van het.hex-bestand gemaakt. Als u bijvoorbeeld de picovaders.ino-sketh compileert, worden de volgende twee.hex-bestanden gemaakt.

picovaders.ino-arduboy-promicro-ssd1306.hex picovaders.ino with_bootloader-arduboy-promicro-ssd1306.hex

We zullen het eerste bestand gebruiken: picovaders.ino-arduboy-promicro-ssd1306.hex

3. Om een hex-bestand naar Arduboy te uploaden, moet u een uploader gebruiken. Er staan er veel op internet. Ik gebruik graag de uploader van MR. Blinky omdat deze eenvoudig te gebruiken is.

Blader naar https://github.com/MrBlinky/Arduboy-Python-Utilities en volg de instructies daar om de Arduboy Python-hulpprogramma's van MR. Blinky te installeren. Als je geen python hebt geïnstalleerd, moet je eerst de instructies volgen om python en de vereiste python-modules te installeren.

4. Sluit de Arduboy aan op de USB-poort van uw computer. Schakel de Arduboy in.

5. Start het shell-programma in uw besturingssysteem, b.v. de terminal-app in Mac OSX of de opdrachtprompt in Windows om de volgende opdrachten te typen om het hex-bestand naar de Arduboy te uploaden. We nemen onze vorige schets picovaders.ino als voorbeeld.

python uploader.py picovaders.ino-arduboy-promicro-ssd1306.hex

6. Zodra het spel is geüpload, zal de Arduboy resetten en het spel starten.

Stap 6: Spellen schrijven naar Seriële Flash

1. Om het geconsolideerde spelbestand naar seriële flash te schrijven, moet u MR. Blinky's Arduboy Python Utilities opnieuw gebruiken. U zou dit al moeten hebben geïnstalleerd als u de vorige stap volgt.

Blader anders naar https://github.com/MrBlinky/Arduboy-Python-Utilities en volg de instructies daar om de Arduboy Python-hulpprogramma's van MR. Blinky te installeren. Als je geen python hebt geïnstalleerd, moet je eerst de instructies volgen om python en de vereiste python-modules te installeren.

2. Maak het indexbestand voor het geconsolideerde spelbeeldbestand voor maximaal 500 spellen.

We zullen het script Gebruik het flashcart-builder.py gebruiken om de geconsolideerde game-afbeeldingsbestanden te bouwen voor alle games die u wilt opslaan in de seriële flash van de Arduboy. Een seriële flash van 16 MB kan maar liefst 500 games bevatten. Dit script bouwt een binaire flash-image van een indexbestand (.csv) en de volgende 2 bestanden voor elk spel: a..hex-bestanden dat is het tekstbestand met de hexadecimale codes van de binaire afbeeldingen van de gecompileerde Arduboy-spellen. Raadpleeg het bestand Zie voorbeeld-flashcart\flashcart-index.csv voor voorbeeldsyntaxis. Dit bestand wordt in het pakket opgenomen als u op Klonen of Downloaden klikt. B.-p.webp

De youtube-video legt ook uit hoe je dingen op de juiste plaats van dit.csv-indexbestand plaatst. Een ding om op te merken, het voorbeeld.csv-bestand van MR. Blinky's GitHub wordt gebruikt in Windows PC, backslash "\" wordt gebruikt in de padnamen. Als u een liunx-systeem of MAC OSX gebruikt, moet u dit wijzigen in "/".

Om een snelle start te maken, kun je mijn pakket van 63 spellen downloaden van https://github.com/cheungbx/ArduBaby 63games.zip

Dit pakket bevat de hex-bestanden en png-bestanden van de 63 spellen die ik heb gekozen, plus het indexbestand games.csv en het bestand games-image.bin dat is gemaakt met het script flashcard-builder.py.

U kunt meer games toevoegen aan games.csv en uw eigen geconsolideerde binaire afbeeldingsbestand voor games maken om naar de seriële flash te worden geschreven. Je kunt maximaal 500 games op de 16M seriële flitser zetten.

Ik zal uitleggen hoe je het.csv-bestand maakt met behulp van de games.csv die je kunt downloaden van mijn GitHub.

Hoewel het.csv-bestand kan worden geopend met Excel. Gebruik Excel NIET om het bestand te openen. Het zal het bestand beschadigen. Gebruik alleen een platte teksteditor. U kunt Kladblok gebruiken in Windows. Ik gebruikte de textEdit in MAC en klik op "Format"-> "Make Plain Text".

De eerste regel van het.csv-bestand is de header die u kunt negeren. Lijst;Beschrijving;Titelscherm;Hex-bestand

De tweede regel wijst naar het grafische afbeeldingsbestand (moet 128x64 pixels zijn in png-bestandsformaat) voor het opstartscherm van de opstartlader. 0;Bootloader;arduboy_loader.png;;;

De spellen worden geconfigureerd vanaf de derde regel. Games zijn georganiseerd in groepen in het bootloader-menu, genaamd categorieën. Deze regel is de groepstitel van de lijst met spellen voor die groep, b.v. Actie spel. Het verwijst ook naar het grafische afbeeldingsbestand voor de groep games. De "1" aan het begin geeft groepsnummer 1 aan. Alle spellen die op deze groep volgen, beginnen met dit nummer. 1;Actiespellen;category-screens\Action.png;;;

Vervolgens voeg je één regel toe voor elk spel binnen die groep. Beginnend met groep nummer 1, naam van het spel, en het pad van het grafische bestand voor een momentopname van het scherm, en het pad van het hex-bestand. Allemaal gescheiden door ";". Voeg nog een ";" toe om de parameter voor het opslagbestand over te slaan. 1;1943;Arcade/Nineteen43.png;Arcade/Nineteen43.hex;; 1;2048;Arcade/2048.png;Arcade/2048.hex;;

Nadat u de eerste groep games hebt voltooid, kunt u de tweede groep games toevoegen, enzovoort. bijv.

9;Demo & Test;demo's/demotest.png;;; 9;Hete boter;demo's/HotButter_AB.png;demo's/HotButter_AB.hex;; 9;Flashcart-test;demo's/flashcart-test/flashcart-test-title.png;demo's/flashcart-test/flashcart-test.hex;demo's/flashcart-test/badapple-frames.bin;

De laatste regel heeft een opslagbestand in de parameter die een tekenfilmfilm is.

3. Om het geconsolideerde game-afbeeldingsbestand te maken, typt u de opdracht, waarbij games.csv uw game-indexbestand is.

python flashcart-builder.py games.csv

Dit zal een bestand maken met de naam games-image.bin

4. Schrijf het geconsolideerde spelbeeldbestand naar Arduboy.

We gebruiken het flashcart-writer.py-script van MR. Blinky om het geconsolideerde spelbeeldbestand naar het seriële flashgeheugen van de Arduboy te schrijven.

Als je mijn voorbeeldgames-image.bin-bestand gebruikt, kun je deze opdracht typen.

python flashcart-writer.py games-image.bin

Als u een SSD1309 OLED-scherm gebruikt in plaats van de SSD1306 OLED op de standaardversie, kunt u de schermdriver on-the-fly patchen. Om de SSD1309-patch automatisch toe te passen op de geüploade afbeelding, maak je een kopie van flashcart-writer.py en hernoem je deze naar flashcart-writer-1309.py. Typ vervolgens

python flashcart-writer-1309.py games-image.bin

Stap 7: Speel games vanaf Seriële Flash

Om games van seriële flash te spelen, zet je de Arduboy aan.

Als je al een spel hebt geladen, wordt het spel automatisch gestart. Druk eenmaal op de resetknop aan de bovenkant van de Ardubaby om naar het bootloader-menu te gaan.

Het bootloader-menu wordt weergegeven. De RGB-LED zal achtereenvolgens oplichten.

Als u in plaats daarvan een pictogram ziet dat op een USB-poort lijkt, werkt uw seriële flashgeheugenchip niet. Controleer de bedrading.

Als u niet binnen 12 seconden op een toets drukt, wordt het spel dat al in het interne flashgeheugen van de ATMega32U4 is opgeslagen, uitgevoerd.

Om van een game terug te gaan naar het bootloader-menu, druk je één keer op de Reset-knop.

U kunt op de linker- of rechterknop drukken om door de verschillende categorie (groep) games te bladeren. Druk op de knop omlaag of omhoog om door de games binnen een categorie (groep) te bladeren. Druk op de "B"-knop om het spel van het seriële flashgeheugen naar het interne flashgeheugen van de ATMega32U4 te kopiëren. Het spel start binnen een seconde.

Nu heb je een kleine gameconsole die je onderweg kunt spelen.

Ik daag je uit om je 16M seriële flitser te verzamelen en op te laden met 500 spellen. Ik heb nog niemand gezien die dat heeft gedaan om de seriële flits te vullen. Als je dat kunt doen, deel dan dat geconsolideerde spelbestand met ons.

Stap 8: Referenties

Een volledige instructie hiervan zal worden gepubliceerd in deze link van Instructables.comTBD

Youtube video voor de demonstratie van de ArduBaby game console

Youtube video voor de 3.3V modificatie van de USBasp bootloader programmer.

Spelbestanden en schema's van het circuit in deze video zijn te vinden op deze GitHub-link

Schema's

MR. Blinky's GitHub-link voor Arduboy zelfgemaakte pakket

MR. Blinky's GitHub-link voor python-hulpprogramma's voor game-upload en seriële flash-geheugenbewerkingen

Erwin's Arduboy-gamecollecties

Met dank aan de maker (Kevin Bates), de Arduboy is een zeer succesvolle 8-bits gameconsole. Er zijn duizenden games geschreven door de hobbyist die ze vrijelijk heeft gedeeld op het communityforum van Arduboy, zodat meer mensen kunnen leren coderen.

Met dank aan MR. Blinky voor het maken van het zelfgemaakte pakket, de flashcart en de python-hulpprogramma's.

Aanbevolen: