Innehållsförteckning:

USB Paddle Game Controller: 7 steg (med bilder)
USB Paddle Game Controller: 7 steg (med bilder)

Video: USB Paddle Game Controller: 7 steg (med bilder)

Video: USB Paddle Game Controller: 7 steg (med bilder)
Video: Universal Joystick Driver for Windows 7, 8, 10, and 11 (2024) | Best Joystick? : (Read Description) 2024, November
Anonim
USB Paddle Game Controller
USB Paddle Game Controller
USB Paddle Game Controller
USB Paddle Game Controller
USB Paddle Game Controller
USB Paddle Game Controller

Min son hade en retro -videospelkväll för sin födelsedag, och på morgonen på dagen bestämde jag mig för att se om jag kunde göra ett par USB -paddel -spelkontroller för Pong med hjälp av en 3D -skrivare och elektronik från mitt lager. Medan jag lyckades få dem att fungera i tid, var folk för upptagna med andra spel för Pong i slutändan.

Kontrollerna kan användas för Pong med DICE-kretsnivåemulatorn eller med min ganska exakta pygame-version, för Atari 2600-spel med en emulator och för Etch-a-Sketch-liknande funktioner med ett målningsprogram som Tux Paint.

Det finns tre omkopplingsbara lägen:

  • Emulering av Stelladaptor paddle: de ska fungera med all Atari 2600 emuleringsprogramvara som stöder Stelladaptor; i Stelladaptor-läge fungerar paddlarna som två-axlig tvåknapps-joystick, varvid varje paddel styr en axel och en knapp
  • dubbel joystickemulering: varje paddel fungerar som en joystick med en knapp (med paddelrörelsen översätts till rörelse på båda joystickaxlarna)
  • mus: varje paddel styr en rörelseriktning för en absolut mus, och knapparna är musknappar; tillsammans med ett målningsprogram kan du få en högteknologisk enhet som liknar en Etch-a-Sketch.

Tillbehör

Du kommer behöva:

  • stm32f103c8t6 blått piller
  • 2x linjär potentiometer (jag rekommenderar 20K-100K)
  • 2x 12 mm bredd mikrobrytare med knapp
  • 3d skrivare
  • diverse (glödtråd, trådar, löd, lödkolv, varmt lim)

Steg 1: Förbered styrelse och Arduino -miljö

Förbered styrelse och Arduino -miljö
Förbered styrelse och Arduino -miljö
Förbered styrelse och Arduino -miljö
Förbered styrelse och Arduino -miljö
  1. Löd de sex huvudstiften i mitten av ditt stm32f103c8t6 -kort.
  2. Kontrollera motståndet mellan A12 och 3.3V. Den bör vara 1,5K för en fylligare USB -kompatibilitet. Många brädor har 10K istället. Om du är en av dem, idealiskt lödning i ett 1.8K -motstånd från A12 till 3.3V, men du kan ha tur och få dina datorer att fungera med 10K.
  3. Installera en bootloader. Det finns instruktioner i steg 2 i denna instruktionsbok. En sak att notera är vilken blixtstorlek som rapporteras av STM -demonstratorn. Om det är 32K har du en falsk stm32f103c8 som förmodligen är en ommärkt stm32f103c6. Detta projekt bör fortfarande fungera med det, men notera att du har den falska brädan för ett framtida steg.
  4. Installera Arduino, Arduino Zero och Rogers libmaple-baserade kärna enligt instruktionerna i steg 3 i instruktionsboken du använde i föregående steg. Ignorera biblioteksinstruktionerna i det steget.
  5. Ladda ner den senaste versionen av mitt USB Composite -bibliotek och packa upp det i din Arduino/Libraries -mapp.
  6. Ladda ner min paddlecontrollers -skiss och packa upp den i din Arduino -mapp.
  7. I Arduino, gå till Verktyg | Styrelse | Generisk STM32F103C -serie, såvida du inte har det falska c6 -kortet, i så fall väljer du Generic STM32F103C6/fake STM32F103C8 istället. Om du inte är säker på vilken du har är det faktiskt säkrare att välja det falska alternativet.

Steg 2: Ladda upp

Ladda upp
Ladda upp

Anslut kortet till din dators USB -adapter, ladda paddlecontroller -skissen och klicka på uppladdningsknappen (högerpekande pil). Om allt går bra ska skissen laddas upp och tavlan ska dyka upp på din dator som en tvåaxlig två-knapps joystick som heter "Stelladaptor". I Windows kan du verifiera detta med Windows-R, joy.cpl [enter].

Naturligtvis kommer detta inte att göra någonting förrän du har resten av hårdvaran monterad.

Steg 3: Skriv ut

Skriva ut
Skriva ut
  1. Ladda ner stl- och/eller scad -filer från min Thingiverse -sida för detta projekt. Observera att paddelknappen är modifierad härifrån.
  2. Om din mikrobrytarkåpsbredd skiljer sig från 12 mm, måste du justera knappbreddsparametern i filen paddlemain-standalone.scad. Du kan göra det i OpenSCAD eller i Thingiverse Customizer.
  3. Du kan behöva justera mätningarna i paddleknob.scad -filen för att passa din potentiometer.
  4. Skriv ut dessa filer (gör bara en kopia av "2x" -filerna om du bara vill ha en paddel). Jag använde PLA, men ABS borde fungera bra också.

    • 2x paddlemain.stl
    • 2x paddleknob.stl
    • 1x paddleconverter.stl
    • 1x PCB -innehavarenrrower.stl
    • 2x knapplock110.stl (tillval)
    • 1x 12.stl (valfritt; skriv ut i en annan färg och limma på för att märka de två paddlarna)

Steg 4: Kabeldragning

Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning

Du måste köra fyra ledningar från stm32f103c -kortet till varje paddelkontroll. Du kan använda gamla USB -sladdar för dessa ledningar. Jag råkade ha fina fristående ledningar från en ethernet -kabel som jag band ihop med krympfolie.

Varje paddel har en mikrobrytare och en potentiometer. Använd en multimeter för att identifiera ett par intilliggande (inte diagonala) stift på mikrobrytaren som är anslutna/frånkopplade genom att trycka på knappen. Jag kommer att märka dessa stift S1 och S2 i diagrammet. De tre stiften på potentiometern har jag märkt P1, P2 och P3 uppifrån och ner, sett från undersidan av potentiometern, med stift som pekar åt höger.

Skjut de fyra trådarna från brädan genom hålet på sidan av paddelhuset (paddlemain.stl).

När du ansluter ledningar till mikrobrytaren ska du först skjuta ledningarna genom hålen på sidan av skovelhuset och lödningen till omkopplaren medan omkopplaren ligger på utsidan av huset. Dra sedan omkopplaren till huset så att stiften och de anslutna trådarna passar i hålen. Jag klippte bort de onödiga stiften.

Båda paddlarna:

  • P1 till S1
  • P1 till kort 3.3V (3.3)
  • P3 ombord på GND (G)

Paddel 1:

  • P2 till kort A1
  • S2 ombord på A2

Paddel 2:

  • P2 ombord på A3
  • S2 ombord på A4

Testa nu anslutningarna genom att ansluta till din dator och använda ett joystick -testprogram. I Windows, Windows-R, joy.cpl [enter], välj Stelladaptor, klicka på Egenskaper. Paddel 1 ska styra X-axeln och den första knappen; paddel 2 bör styra Y-axeln och den andra knappen.

Steg 5: Slutmontering

Slutmontering
Slutmontering
Slutmontering
Slutmontering
Slutmontering
Slutmontering
Slutmontering
Slutmontering

Mikrobrytarna kan limas (varmt lim gjorde jobbet för mig) på sina platser på sidan av paddelboxen. Knapplock kan knäppas på, med lite hett lim för stabilitet.

Potentiometern fäster vid det stora hålet i toppen av paddelboxen. Vredet ska glida på och hålla fast. Förstora hål med en borr efter behov. Tryck på bottenluckan och tillsätt lite varmt lim om du vill.

Den blå pillretavlan passar inuti kretskortet, som sedan skruvas fast på botten av omvandlingsboxen, som också har ett lock som kan täcka den.

Jag la till lite Shoe Goo där ledningar möter huset för att skydda trådarna. Och jag limmade på "1" och "2" etiketter på paddlarna.

Steg 6: Driftsätt

Driftsätt
Driftsätt
Driftsätt
Driftsätt

Padlarna har tre driftsätt. Du kan växla driftläge genom att trycka på en särskild kombination av knappar medan du ansluter dem till en USB -port, släppa när kortets lysdioder slutar blinka. När du har bytt driftsläge kommer det att sparas i flashminnet och förbli tills du ändrar det nästa gång. (Så, om du inte vill ändra läget, tryck inte på någon knapp när du ansluter paddlarna till en USB -port.) Här är alternativen:

  • Endast vänster paddelsknapp: En tvåaxlad tvåknapps joystick, där varje axel och knapp styrs av en paddel. Dessutom kan paddlarna identifieras som en Stelladaptor, en utgått USB -adapter för Atari 2600 -styrenheter, och därför bör Atari 2600 -emulatorer som Stella och Z26 som är Stelladapter -kompatibla fungera perfekt.
  • Båda paddelknapparna: Varje paddel visar en separat joystick. Joysticken har en manöverknapp och vridning av paddeln flyttar joysticken diagonalt, så antingen X- eller Y -axeln fungerar för paddeln.
  • Endast höger paddelknapp: Padlarna visas som en tvåknapps absolut mus. Du kan nu använda detta på samma sätt som en Etch-a-Sketch med ett ritprogram.

Steg 7: Pong

Pong
Pong
Pong
Pong

Pong var det fantastiska originalpaddelspelet. Jag rekommenderar originalversionen, eftersom kloner ofta misslyckas med att inkludera all den härliga subtila funktionaliteten, som förändringar i hastighet med upprepade träffar, vinkeländringen beroende på vilken del av paddeln som träffar bollen eller den subtila men inte lätt förutsägbara positionen av serven efter en miss. För en noggrann analys av originalet, se här.

Ett av de bästa sätten att spela Pong är med DICE-kretsnivåemulatorn om din dator är tillräckligt snabb för att kunna använda den i full hastighet. (Min bärbara Windows -dator är, men Raspberry PI 3+ är alldeles för långsam.) Jag rekommenderar version 0.8.

Om du använder Stelladaptor -läget i paddlarna, gå till Inställningar | Konfigurera ingångar … i DICE och välj Joystick 1 och Absolute for Player 1 Paddle, och ställ in både horisontellt och vertikalt på Joy 1 X-Axis. Gör sedan samma sak för Player 2 Paddle, förutom med Y-Axis.

Om din dator är för långsam för DICE, gjorde jag en Python3+pygame -version vars tider och funktionalitet är tänkt att vara mycket nära den ursprungliga Pong (jag är tacksam för hjälp från Dr. Hugo Holden i detta avseende).

Rekommenderad: