Indholdsfortegnelse:

USB Paddle Game Controller: 7 trin (med billeder)
USB Paddle Game Controller: 7 trin (med billeder)

Video: USB Paddle Game Controller: 7 trin (med billeder)

Video: USB Paddle Game Controller: 7 trin (med billeder)
Video: PXN V10 vs V9: Entry-level steering wheel SHOWDOWN 2024, Juli
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 søn havde en retro videospil nat til sin fødselsdag, og om morgenen på dagen besluttede jeg mig for at se, om jeg kunne lave et par USB -padle -spilkontroller til Pong ved hjælp af en 3D -printer og elektronik fra mit lager. Selvom jeg formåede at få dem til at fungere i tide, var folk for travlt med andre spil til Pong i sidste ende.

Controllerne kan bruges til Pong med DICE-kredsløbsniveauemulatoren eller med min ret præcise pygame-version, til Atari 2600-spil med en emulator og til Etch-a-Sketch-lignende funktionalitet med et maleprogram som Tux Paint.

Der er tre omskiftelige tilstande:

  • Stelladaptor -padleemulering: de skal fungere med al Atari 2600 -emuleringssoftware, der understøtter Stelladaptor; i Stelladaptor-tilstand fungerer padlerne som to-akset joystick med to knapper, hver padle styrer en akse og en knap
  • dobbelt joystick -emulering: hver padle fungerer som et joystick med en knap (med padlebevægelsen oversat til bevægelse på begge joystick -akser)
  • mus: hver padle styrer en bevægelsesretning for en absolut mus, og knapperne er museknapper; sammen med et maleprogram kan du få en højteknologisk enhed, der ligner en Etch-a-Sketch.

Forbrugsvarer

Du får brug for:

  • stm32f103c8t6 blå pille
  • 2x lineært potentiometer (jeg vil anbefale 20K-100K)
  • 2x 12 mm bred mikrokontakt med knap
  • 3D printer
  • diverse (glødetråd, ledninger, lodning, loddejern, varm lim)

Trin 1: Forbered bord og Arduino -miljø

Forbered bord og Arduino -miljø
Forbered bord og Arduino -miljø
Forbered bord og Arduino -miljø
Forbered bord og Arduino -miljø
  1. Lod de seks hovedstifter i midten af dit stm32f103c8t6 bord.
  2. Kontroller modstanden mellem A12 og 3.3V. Det skal være 1,5K for en fyldigere USB -kompatibilitet. Mange tavler har 10K i stedet. Hvis din er en af dem, ideelt lodning i en 1.8K modstand fra A12 til 3.3V, selvom du måske er heldig og får dine computere til at fungere med 10K.
  3. Installer en bootloader. Der er instruktioner i trin 2 i denne instruktionsbog. En ting at notere sig er, hvad flashstørrelsen rapporteret af STM Demonstrator er. Hvis det er 32K, har du en falsk stm32f103c8, som sandsynligvis er en ommærket stm32f103c6. Dette projekt skal stadig arbejde med det, men notér, at du har det falske bord til et fremtidigt trin.
  4. Installer Arduino, Arduino Zero og Rogers libmaple-baserede kerne ved at følge instruktionerne i trin 3 i den instruks, du brugte i det foregående trin. Ignorer biblioteksinstruktionerne i det trin.
  5. Download den seneste version af mit USB Composite -bibliotek, og pak det ud i din Arduino/Libraries -mappe.
  6. Download min paddlecontrollers -skitse, og pak den ud i din Arduino -mappe.
  7. I Arduino skal du gå til Værktøjer | Bestyrelse | Generisk STM32F103C -serie, medmindre du har det falske c6 -kort, i så fald vælg Generic STM32F103C6/fake STM32F103C8 i stedet. Hvis du ikke er sikker på, hvilken du har, er det faktisk sikrere at vælge den falske mulighed.

Trin 2: Upload

Upload
Upload

Sæt kortet i din computers USB -adapter, indlæs skitsen til paddlecontroller, og klik på Upload -knappen (højre pegepil). Hvis alt går godt, skal skitsen uploades, og tavlen skal vises på din computer som et to-akset joystick med to knapper kaldet "Stelladaptor". I Windows kan du bekræfte dette med Windows-R, joy.cpl [enter].

Dette vil selvfølgelig ikke gøre noget, før du har resten af hardwaren samlet.

Trin 3: Udskriv

Print
Print
  1. Download stl- og/eller scad -filerne fra min Thingiverse -side til dette projekt. Bemærk, at padleknappen er ændret herfra.
  2. Hvis din mikrokontakthusbredde er forskellig fra 12 mm, skal du justere parameteren for knapbredde i filen paddlemain-standalone.scad. Du kan gøre det i OpenSCAD eller i Thingiverse Customizer.
  3. Du skal muligvis justere målingerne i paddleknob.scad -filen, så den passer til dit potentiometer.
  4. Udskriv disse filer (lav kun en kopi af "2x" -filerne, hvis du bare vil have en padle). Jeg brugte PLA, men ABS burde også fungere godt.

    • 2x padlemain.stl
    • 2x paddleknob.stl
    • 1x padleconverter.stl
    • 1x pcbholdernarrower.stl
    • 2x knaphætte110.stl (valgfri)
    • 1x 12.stl (valgfrit; print i en anden farve og lim på for at mærke de to padler)

Trin 4: Ledningsføring

Ledninger
Ledninger
Ledninger
Ledninger
Ledninger
Ledninger

Du skal køre fire ledninger fra stm32f103c -kortet til hver paddle -controller. Du kan bruge gamle USB -ledninger til disse ledninger. Jeg havde tilfældigvis flotte selvstændige ledninger fra et ethernet -kabel, som jeg bandt sammen med krympevik.

Hver skovl har en mikrokontakt og et potentiometer. Brug et multimeter til at identificere et par tilstødende (ikke diagonale) ben på mikrokontakten, der er tilsluttet/afbrudt ved at trykke på knappen. Jeg vil mærke disse ben S1 og S2 i diagrammet. De tre ben på potentiometeret har jeg mærket P1, P2 og P3 fra top til bund, set fra undersiden af potentiometeret, med stifter pegende til højre.

Skub de fire ledninger fra brættet gennem hullet på siden af padlehuset (paddlemain.stl).

Når du tilslutter ledninger til mikrokontakten, skal du først skubbe ledningerne gennem hullerne i siden af skovlhuset og lodde til kontakten, mens kontakten ligger på ydersiden af huset. Træk derefter kontakten til huset, så stifterne og de vedhæftede ledninger passer ind i hullerne. Jeg skar de unødvendige stifter af.

Begge padler:

  • P1 til S1
  • P1 til board 3.3V (3.3)
  • P3 til bord GND (G)

Padle 1:

  • P2 til board A1
  • S2 til bord A2

Padle 2:

  • P2 til board A3
  • S2 til board A4

Test nu forbindelserne ved at oprette forbindelse til din computer og bruge et joystick -testprogram. I Windows, Windows-R, joy.cpl [enter], vælg Stelladaptor, klik på Egenskaber. Padle 1 skal styre X-aksen og den første knap; padle 2 skal styre Y-aksen og den anden knap.

Trin 5: Endelig samling

Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling

Mikrokontakterne kan limes (varm lim gjorde jobbet for mig) på deres placeringer på siden af padleboksen. Knaphætter kan klikkes på med en smule varm lim for stabilitet.

Potentiometeret fastgøres til det store hul i toppen af padleboksen. Knappen skal glide på og holde fast. Forstør huller med en boremaskine efter behov. Skub bunddækslet på og tilføj lidt varm lim, hvis du vil.

Det blå pillebræt passer inde i PCB -objektglasset, som derefter skrues fast i bunden af konverterboksen, som også har et låg, der kan dække det til.

Jeg tilføjede lidt Shoe Goo, hvor ledninger møder huset for at beskytte ledningerne. Og jeg limede "1" og "2" etiketter på padlerne.

Trin 6: Betjeningsformer

Driftsformer
Driftsformer
Driftsformer
Driftsformer

Padlerne har tre funktionsmåder. Du kan skifte funktionsmåde ved at trykke på en bestemt kombination af knapper, mens du tilslutter dem til en USB -port, og slipper, når kortets lysdioder holder op med at blinke. Når du har skiftet driftstilstand, gemmes den i flashhukommelsen og forbliver, indtil du ændrer den næste gang. (Så hvis du ikke vil ændre tilstanden, skal du ikke trykke på en knap, mens du tilslutter padlerne til en USB -port.) Her er mulighederne:

  • Kun venstre padleknap: Et to-akset joystick med to knapper, hvor hver akse og knap styres af en padle. Desuden identificeres padlerne som en Stelladaptor, en udgået USB -adapter til Atari 2600 -controllere, og derfor skulle Atari 2600 -emulatorer som Stella og Z26, der er kompatible med Stelladapter, fungere perfekt.
  • Begge padleknapper: Hver padle viser et separat joystick. Joysticket har en betjeningsknap, og drejning af padlen bevæger joysticket diagonalt, så enten X- eller Y -aksen fungerer for padlen.
  • Kun højre padleknap: Padlerne vises som en absolut to-knaps mus. Du kan nu bruge dette på samme måde som en Etch-a-Sketch med et tegneprogram.

Trin 7: Pong

Pong
Pong
Pong
Pong

Pong var det store originale padle spil. Jeg anbefaler den originale version, fordi kloner ofte undlader at inkludere al den dejlige subtile funktionalitet, som ændringer i hastighed med gentagne slag, vinklen ændres afhængigt af den del af padlen, der rammer bolden, eller den subtile, men ikke let forudsigelige position af serveren efter en miss. For en grundig analyse af originalen, se her.

En af de bedste måder at spille Pong på er med DICE-kredsløbsemulatoren, hvis din computer er hurtig nok til at bruge den ved fuld hastighed. (Min bærbare Windows er, men Raspberry PI 3+ er alt for langsom.) Jeg anbefaler version 0.8.

Hvis du bruger Stelladaptor -tilstand i padlerne, skal du gå til Indstillinger | Konfigurer input … i DICE, og vælg Joystick 1 og Absolute for Player 1 Paddle, og indstil både vandret og lodret til Joy 1 X-Axis. Gør derefter det samme for Player 2 Paddle, undtagen med Y-Axis.

Hvis din computer er for langsom til DICE, lavede jeg en Python3+pygame -version, hvis tidspunkter og funktionalitet er beregnet til at være meget tæt på den originale Pong (jeg er taknemmelig for hjælp fra Dr. Hugo Holden i denne forbindelse).

Anbefalede: