Hvordan koble en joystick fra en dandy til en PC. Koble til og sette opp Dendy-spillkonsollen

I denne artikkelen vil jeg ikke bare vise deg hvordan koble joystick fra dandy til datamaskin, men jeg vil også tilby deg å laste ned spill for konsollene Dendy, Nintendo, Sega. Så hvis du ikke skal koble til en joystick, kan du bare laste ned spill og spille på et vanlig tastatur.

Designet er veldig enkelt. Men før du tester grensesnittet du har laget, sørg for at alle ledningene er riktig loddet og at ingen bare ledninger berører noe. Jeg anbefaler på det sterkeste å bruke et etui for disse grensesnittene for å redusere risikoen for kortslutninger.

La oss starte med styrespaken for Dendy (NES). Hvis du har en gamepad, og den har knappene A, B, Turbo A, Turbo B, Select og Begin (de to siste er det kanskje ikke, jeg anbefaler på det sterkeste å ikke ta disse) og kommuniserer via 5 ledninger, så er det enten NES eller lignende NES og vil fungere hvis du gjør alt riktig.

Det er imidlertid på tide å komme i gang. Alt du trenger er en kobling LPT-port og (det er parallelt, det er fra skriveren), en loddebolt, fem absolutt alle dioder, og faktisk selve joysticken. La oss komme i gang.

Her er selve joystick-kontakten (ser det ut som COM?)

Alt er loddet i henhold til skjemaet, hvis du vil koble til to joysticker, så er alle ledninger også loddet bortsett fra pinnene 8 og 7 på NES, de må loddes til pinnene 11 og 12 på LPT.

Og hvis du har en joystick med en annen kontakt, se nedenfor:

For å lodde ledningene i henhold til skjemaet, må du åpne kontakten, men jeg foreslår å gjøre alt mye enklere. Du kan bare lage en slags forlengelsesadapter. I tillegg til LPT trenger vi også en COM-kontakt (hann)

En annen veldig viktig detalj. Det er en markering på diodene, de skal loddes med en stripe opp. Bare lodd ledningene i henhold til diagrammet til LPT og det er det.

Det viser seg veldig mye. Men design er ikke like viktig som arbeid!

Og nå er programvaren viktig.

Vi må:

1) Installer driveren og konfigurer den.

2) Start konsoll-emulatoren og åpne spillet som interesserer deg gjennom den.

La oss starte med å installere og konfigurere driveren.

I følge manualen passer den for OS: Win9x/Me/NT/XP/2k. Pakk ut til et passende sted og løp setup.exe . Et vindu vises på skjermen som du må klikke på:

Installasjonsprosessen består i å trykke på "Neste"-knappen og skal ikke forårsake vanskeligheter, så jeg ser ingen vits i å vurdere det i detalj.

Etter installasjonen vil mappen "Parallell Port Joystick" vises i "Start"-menyen, og det er flere snarveier i den. Vi er interessert i "Configure Joysticks" - vi lanserer den. Vinduet Joystick Configuration Utility vises på skjermen. I den klikker du på "Legg til"-knappen.

Vi ser vinduet for konfigurering av den nye styrespaken. Vi setter verdiene i den, som vist på figuren. Ikke vær flau når du velger type grensesnitt, i vårt tilfelle er dette ikke koblet til Linux OS.

Etter å ha satt alle verdiene riktig, klikk på "Legg til"-knappen. Vi kommer til forrige vindu. Hvis vi bare har én joystick, kan vi trygt trykke på "Ferdig"-knappen. Hvis vi trenger å konfigurere den andre styrespaken, klikker du på "Legg til" igjen, en kjent dialog vises, selv om valget vårt allerede er noe begrenset, men verdiene må angis på samme måte som på bildet ovenfor. Unntaket er kun i nest siste linje, dvs. kontrollerenummeret er nå ikke angitt 1, men 2 eller mer, avhengig av hvilken joystick vi kobler til i henhold til kontoen.

Vel, halve arbeidet er gjort, det gjenstår å sjekke ytelsen til styrespaken.

Vi går til "Kontrollpanel" og starter snarveien "Spillkontrollere". Velg styrespaken vi er interessert i og klikk på "Egenskaper"-knappen. Egenskapsvinduet vises. I "Test"-fanen kan vi sjekke om styrespaken vår fungerer. I det øyeblikket ingen berører joysticken og ingen av knappene trykkes inn, vil aksenes kryss være i midten av det hvite området, og bildene av knappene vil alle være like mørkerøde.

Dendy (Dandy) - den legendariske konsollen, som faktisk var en maskinvareklone av Famicom-konsollen fra Nintendo, satt sammen i Taiwan fra kinesiske komponenter. Naturligvis, for 20 år siden, var disse detaljene ikke av interesse for noen: selve det faktum å eie en konsoll med flere kassetter ble ansett som den største lykke. Dandy har blitt et kjent navn, drømmen til barn og voksne.

I dag er andre konsoller populære, men noen ganger er det et ønske om å gå tilbake til de årene da Super Mario var hovedpersonen i spill, og Mortal Kombat var ennå ikke så fargerik og realistisk, men den dro allerede unge spillere inn i et nett av dødelige kamper. For å returnere disse følelsene, trenger du bare å finne ut hvordan du kobler Dandy til TV-en.

Forbindelse

Som standard følger det med en RF-kabel med set-top-boksen, som kobles til antennekontakten på TV-en.

Husk at du kun kan koble til og fra antennen når enheten er slått av!

Selve tilkoblingen er laget som følger:

Etter det skal spillet vises på skjermen, kassetten du installerte det med i konsollen.

AV-kabel

Hvis du ønsker å oppnå beste kvalitet bilder, bruk en AV-kabel (lavfrekvens) i stedet for standard RF-kabel. Med dens hjelp byttes set-top-boksen med TV-en som ikke bruker antennekontakten, men gjennom videoinngangen.
I dette tilfellet er det ikke nødvendig med ytterligere maskinvareoppsett: du trenger bare å koble til de to enhetene med en kabel, og deretter bytte TV-en til AV-modus.

Hvis TV-en ikke har AV-utgang, men har en SCART-kontakt, bruk en spesiell adapter.

Alt har sin tid

Husk at Dandy er over 20 år gammel, så favorittspillet ditt kan se ganske lite tiltalende ut på en skjerm med høy oppløsning. Derfor er det bedre å kjøpe og koble en PS3 til en TV, og kjøre Dendy-spill på en datamaskin ved å laste ned en emulator.
Selvfølgelig vil det ikke være mulig å oppnå en fullstendig følelse av fordypning i fortiden, men hvis du for eksempel kobler en gamepad til en datamaskin, kan du tilbringe en uforglemmelig kveld i selskap med dine favoritt barndomsspill.

Alle barna på 90-tallet er kjente. Da konsollen brøt seg inn på hjemmemarkedene, ble konsollen raskt populær, og nå i alle hjem samlet barn i alle aldre seg for et spennende spill. Så, da datamaskiner ble så rimelige at alle kunne kjøpe dem, tok Dandy-alderen gradvis slutt. I tillegg begynte mer avanserte analoger å dukke opp blant konsollene, som Sega, Sony PlayStation og Nintendo 64.

Ønsket om å leke leker fra 90-tallet har imidlertid ikke stilnet så langt. Nå trenger du ikke å jage patroner for alle dine venner og bekjente. Det er nok å utføre noen få enkle manipulasjoner, og muligheten til å spille "Dandy" vil også vises på en personlig datamaskin.

Hva er "Dandy"

"Dandy" er et prefiks med en eller to styrespaker. Spillbærerne var spesielle kassetter. Dette er en mikrokrets, kledd i en plastkoffert, som bar et innspilt spill. I en tid med utilstrekkelig Internett for å spille noe nytt, var utveksling av patroner med naboer eller venner relevant.

Set-top-boksen ble koblet via kabler direkte til TV-en. Og selve spillet ble spilt ved hjelp av en eller to styrespaker utstyrt med knapper.

Litt historie

Den aller første som overfører spill fra spilleautomater til hjemme-TV-skjermer ble gjettet av det japanske selskapet Nintendo i 1984. Prefikset sprengte videospillverdenen og ble en ekte sensasjon. Nå kunne alle spille alle spill tilgjengelig på Dendy i et behagelig miljø. Interessant nok var navnet på konsollen i Japan Family Computer eller Famicom. Og hun kom til Europa og USA litt senere under navnet NES.

Konsollen kom til Russland i 1992 og ble kalt "Dandy". Den har blitt kopiert og reprodusert i ulike formater. Riktignok konkurrerte den eksisterende Atari og lignende i de tidlige stadiene med den. Men "Dandy" omgikk raskt alle kjente formater og vant hjertene til datidens spillelskere. Men med ankomsten av den nye Genesis eller Sega Mega Drive 2, og deretter Sony PlayStation, måtte hun få plass på dette markedet.

I moderne verden du kan også finne versjoner av den originale konsollen "Dandy" i spesialbutikker og spille for den såkalte "fanen".

"Dandy": moderne tid

Du kan stupe inn i den magiske verdenen av spill på "Dandy" i den moderne verden. Det er mange muligheter for dette. En av de enkleste og rimeligste er å koble joysticken fra "Dandy" til datamaskinen. Gjennom elektronikkmarkedet for å anskaffe forskjellige varianter enheter kan finnes på Internett eller på radiomarkeder. En moderne joystick for "Dandy" har som regel en USB-port, gjennom hvilken du kan koble den til en PC. Denne tilnærmingen inneholder et minimum av manipulasjon. Hvis det er et ønske om å fikse med et loddejern og den originale joysticken ble oppdaget ved et uhell, kan du koble den til ved å lage en spesiell adapter med egne hender.

Koble joysticken fra "Dandy" til datamaskinen via USB

Det første du må gjøre for en slik tilkobling er å kjøpe en joystick for "Dandy". Du finner den både på spesialiserte elektronikksider og i ulike markeder. Styrespaken trenger ikke å være lik sin opprinnelige representant. Utad kan det se ut som fra en hvilken som helst annen konsoll.

Etter at joysticken er funnet for "Dandy", må du passe på programvare. For å gjøre dette må du laste ned en spesiell applikasjon - en set-top-boksemulator. Siden "Dandy" offisielt har forkortelsen NES, må du se etter det passende programmet for nettopp en slik forespørsel. Det er mange emulatorer på nettverket. Men prinsippet for drift av denne applikasjonen er det samme - lansering av spill på "Dandy" i programvinduet.

emulator

Etter at emulatoren er funnet og lastet ned, må du finne selve spillet. Dette kan også gjøres ved å søke på spesialiserte nettsteder.

Du kan demonstrere hvordan du kobler en joystick fra "Dandy" til en datamaskin ved å bruke en av de populære emulatorene - FCEUX. Vinduet ser ut som bildet nedenfor.

Nedlasting og installasjon vil ikke ta mye tid, siden programmet veier ikke mer enn 2 megabyte og er lett å lære.

Nå er det på tide å koble til og konfigurere joysticken fra "Dandy". For å gjøre dette må du sette den inn i USB-port datamaskin. Velg deretter Config-elementet i emulatormenyen og gå til Input-delen.

I konfigurasjonsvinduet som åpnes, klikk på Konfigurer-elementet for å konfigurere styrespaken. Vil åpne nytt grensesnitt, som visuelt vil ligne plasseringen til knappene på styrespaken. Ved å klikke på den definerte knappen og stille inn den tilsvarende tasten på PC-tastaturet, konfigureres oppførselen i emulatoren. Etter å ha installert alle joystick-knappene, må du lagre alt og gå ut til hovedprogramvinduet.

Deretter må du finne ønsket spill. Det er også mange av dem fritt tilgjengelig på Internett. Spill startes gjennom File-menyen til emulatoren, der du må velge Open ROM-elementet. En ROM er et spillbilde pakket i et format som emulatoren kan forstå. I tillegg til hovedfunksjonene lar programmet deg lagre spillets tilstand når som helst og også starte det fra samme sted. Dette manglet for mange barn i en tid med vanskelige spill.

Hvordan koble en joystick fra "Dandy" til en datamaskin via en LPT-port

Ganske mange varianter og kloner av prefikset "Dandy" ble utgitt. Følgelig kan styrespakene ha en annen form og antall kontakter. I de fleste tilfeller ble det brukt 9 eller 15. En 9-pinners kontakt er veldig lik en datamaskin. Det er denne faktoren som kan brukes til å lage en adapter fra "Dandy" til en PC.

Først trenger du to kontakter - LPT og COM. De må demonteres for å kunne lodde ledningene ordentlig. Lodding utføres i henhold til den enkle ordningen vist på bildet nedenfor.

Som du kan se, er pinne 1 på styrespaken koblet til pinnene 5-9 gjennom en rekke dioder. Resten loddes direkte. Ved å koble ledningene og lodde dem i riktig rekkefølge, kan du sette sammen alt tilbake. Adapteren er klar for første test.

Joystick-drivere

Men før det må du ta vare på programvarekomponenten til utstyret. Siden operativsystemet ikke vet hvordan det skal kontrollere denne typen joystick, må du installere en driver med nødvendig informasjon. Naturligvis var det ingen som utviklet den spesielt for PC-en. Derfor må du bruke universelle verktøy for å implementere tilkoblingen av slike enheter med en datamaskin.

Slik programvareprodukter det er mange i det enorme nettverket, men det er bedre å bruke PPJoy-applikasjonen. Den er optimalisert for tilkobling ukjente enheter som styrespaker til en datamaskin, ved å velge riktig driver.

Selve nedlastings- og installasjonsprosessen er enkel. Etter vellykket installasjon vil ikonet for dette programmet vises på skrivebordet. Etter å ha kjørt den, kan du se et vindu som tilbyr å legge til en ny enhet i konfigurasjonen. Du må klikke på Legg til-knappen. Deretter vil programmet vise et vindu der du må spesifisere hvordan tilkoblingen skal skje. I innstillingene må du spesifisere følgende:

    parallellport - henholdsvis LPT1, hvis det er en;

    kontrollertype - SNES eller NES;

    grensesnitttype - Linux;

    kontrollernummer - Kontroller 1;

    kontroller undertype - NES.

Nå gjenstår det å klikke på Legg til-knappen. Dette vil legge enheten til systemet. I neste vindu du må klikke på Ferdig.

Etter å ha angitt alle styrespakinnstillingene, må du kontrollere og kalibrere den. For dette i operativsystemer Windows har et element i kontrollpanelet som heter Spillkontrollere. I den, i fanen "Egenskaper", er det mulig å sjekke hvordan styrespaken reagerer på å trykke på bestemte taster. Hvis det er aktivitet, fungerer joysticken, og du kan åpne emulatoren. Hvis ikke, må du lodde alt på nytt, siden noe gikk galt.

Kort oversikt over populære emulatorer

En liten liste over de mest populære og praktiske fungerende emulatorene:

    FCEUX. Denne emulatoren er allerede nevnt i artikkelen. Har en åpen kilde og kan kjøres på en lang rekke systemer. Den har et bredt spekter av innstillinger og funksjoner.

    iNES. En enkel og lett emulator for Windows-operativsystemet. Den har en minimal pakke med innstillinger og konfigurasjoner.

    Nestopia. Har også Kan kjøre operativsystemer Windows-systemer, Linux, MacOS. Mange innstillinger og funksjoner.

    VirtuaNes. Denne emulatoren er i stand til å støtte en lett pistol, redusere hastigheten og øke hastigheten på spillet, samt mange innstillinger relatert til videobehandling.

    retrokopi. Dette er en av multiplattform-emulatorene som er i stand til å reprodusere bilder av ikke bare Dandy-spill, men også Sega, Nintendo og mange andre maskiner og konsoller.

konklusjoner

Selvfølgelig, for radioamatører, vil den andre versjonen av Dandy-joysticken for PC være mer interessant. For enkle spillere som bestemmer seg for å kaste seg ut i nostalgien til gamle spill, er metode nummer 1 perfekt. For det første er kostnaden for USB-joysticker ikke så høy. I tillegg kan du nå kjøpe dem nesten hvor som helst. For det andre er det en betydelig tidsbesparelse når du kobler til og kalibrerer en ny enhet.

Online kl i stort antall det er spill "Dandy". Å spille med joystick eller tastatur er et personlig valg for alle. Men det er en fullstendig innlevelse i atmosfæren fra den epoken som fortsatt bare vil gi en omfattende restaurering av spillingen.

Joystick-spill har blitt portert av "Dandy"-entusiaster på en slik måte at de kan brukes på et stort antall forskjellige emulatorer. Et annet betydelig pluss er det faktum at den enkleste joysticken også kan brukes til å etterligne andre konsoller, som Sony PlayStation eller Sega. Bare installer det riktige programmet og finn bildet av ønsket spill.

Jeg er sikker på at mange har sett styrespaker for datamaskiner i butikker, for eksempel fra Sony PlayStation.

Dessverre er de veldig dyre, men hvorfor ikke lage en selv? Det er en veldig reell mulighet til å spille med en slik gamepad / joystick på en PC - en kompatibel datamaskin, ikke engang den kraftigste. De fleste spill og programmer vil ikke kunne skille enheten din fra en merkevare-joystick for noen få $100. (av en eller annen grunn regnes den som en gang en gadget på datamaskinen, den må definitivt koste fantastiske penger) Det mest trikset er at denne styrespaken kan brukes i alle spill, bare tilordne dem til knappene på styrespaken når du tildeler taster.

Generelt er GamePad en enhet som ligner veldig på en analog joystick. Forskjellen mellom en typisk joystick og en GamePad ligger i egenskapene til aksen. Joysticks har vanligvis to akser - X og Y. Den kontinuerlige bevegelsen av spaken langs disse aksene ved hjelp av to potensiometre konverteres til analoge elektriske signaler, som deretter konverteres til digitale signaler ved hjelp av ADC, på grunnlag av hvilke X-en og Y-variabler beregnes. GamePad har ikke-proporsjonale x- og y-verdier for ni posisjoner (inkludert midten), den er mye enklere i design og derfor mer pålitelig.

Designet er veldig enkelt. Bare dobbeltsjekk før du sjekker grensesnittet du har laget, sørg for at alle ledningene er riktig loddet og at ingen bare ledninger berører noe. Jeg anbefaler på det sterkeste å bruke et etui for disse grensesnittene for å redusere risikoen for kortslutninger.

La oss starte med en joystick for Dendy eller NES.

Hvis du har en gamepad, og den har knappene A, B, Turbo A, Turbo B, Select og Begin (de to siste er det kanskje ikke, jeg anbefaler på det sterkeste å ikke ta disse) og kommuniserer via 5 ledninger, så er det enten NES eller lignende NES og vil fungere hvis du gjør alt riktig.

Det er imidlertid på tide å komme i gang. Alt du trenger er en LPT-portkontakt (den er parallell, den er også fra en skriver), en loddebolt, 5 1N914 eller 1N4148 dioder, og faktisk selve joysticken. La oss komme i gang.

Her er selve joystick-kontakten (selv om den ser ut som COM)


Alt er loddet i henhold til skjemaet, hvis du vil koble til to joysticker, så er alle ledninger også loddet bortsett fra pinnene 8 og 7 på NES, de må loddes til pinnene 11 og 12 på LPT.


For å lodde ledningene i henhold til skjemaet, må du åpne kontakten, men jeg foreslår å gjøre alt mye enklere. Du kan bare lage en slags forlengelsesadapter.

I tillegg til LPT trenger vi også en COM-kontakt (han).

En annen veldig viktig detalj. Det er en markering på diodene, de skal loddes med en stripe opp. Bare lodd ledningene i henhold til diagrammet til LPT og det er det.


Det viser seg veldig mye.

Jeg vil fortelle deg hvordan du setter det opp på slutten av artikkelen.

For å få mest mulig ut av det, lastet jeg ned Dendy-emulatoren. Kort hva er en emulator.

Et slikt program som fullstendig emulerer noen spillkonsoll, spill for det lastes også ned separat, hvilket som helst spill kan lastes ned til Internett.

Her er Super Mario for deg.

Og her er den svarte kappen.

Bare en ekte spillgourmet vil sette pris på dette.

Og nå joysticken for Sony Playalert alert-infoion (PSX)


Det er også mulig å bruke joysticks med to mini-joysticks i bunnen, det kalles med seks akser. Du kan også koble til joysticks med tilbakemelding, altså de som vibrerer. Her er diagrammet.

Dioder er de samme som for Dendy. Styrespaker med seks akser og tilbakemelding krever 9 volt strøm. For enkle joysticker som min kan du ikke gjøre strøm. Men hvis du virkelig vil, så anbefaler jeg å kjøpe en kinesisk liten 9v strømforsyning for å koble til en stikkontakt, de koster ikke mer enn en dollar.

Jeg vil merke meg at diagrammet viser baksiden av PS-porten.

Bare kutt Sony-kontakten og lodd LPT-en.

For å koble til en andre joystick, må du lodde alle ledningene også, men pinne 9 fra PSX skal loddes til pinne 13 på LPT, og pinne 1 fra PSX til pinne 15 på LPT. Det er alt.

Nå spesifikt om oppsettsprosedyren, selv om saken her er enda enklere.

Først må du laste ned firewood DirectPad Pro ( hvor du kan laste ned, google, originalkildene eksisterer ikke lenger)

I panel Windows-kontroller velg spillenheter (joystick-ikon) og trykk på "Legg til"-knappen. I vinduet som vises, trykk igjen på "Legg til"-knappen, og deretter "Installer fra disk."

Finn deretter katalogen der du pakket ut driverarkivet og velg DirectPad Pro.Inf-linjen som vises. Deretter klikker du OK et par ganger og legger til DirectPad Pro Standard And Force FeedBack-enheten.

Du kan deretter velge DirectPad Pro Controller og DirectPad Pro Force FeedBack Controller fra listen over spillenheter. Vi velger riktig driver og kontrolleren vår vises i "Spillkontrollere"-vinduet.


Nå trykker vi på "Egenskaper"-knappen og vi kommer inn i driverkonfigurasjonsvinduet. Velg og velg joystick-ID (skrevet i midten øverst) og legg nummeret i listen, ved siden av Conroller Type (det kan ikke være 1 hvis du hadde andre joystick installert i systemet ditt tidligere).

Etter det velger du riktig adresse til LPT-porten din (du kan se i System: Enheter - COM- og LPT-porter, vanligvis 378).

Det er alt! Til slutt har du en DirectInput-kompatibel joystick, dvs. det vil være mulig å spille i alle Windows-spill som støtter styrespaken gjennom DirectX-drivere. Du trenger bare å velge DirectPad-kontrolleren i spillinnstillingene.

Følgende har blitt testet for ytelse: NFS Undergraund, Max Payne2, Worms 3D, GTA 3, GTA viseby osv. Kretsene er 100% brukbare. Nyt.

Jeg tror mange av dere husker de strålende tidene da vi kjempet i timevis i tanks, ninjaskilpadder, battletods og doubledragon og et par dusin andre superspill på Dandy. Det var en fantastisk tid! De fleste kampene var jævla vanskelige, men likevel, fiasko etter fiasko, gikk vi fortsatt til målet vårt og startet kampen på nytt for å fullføre den i dag.

Etter mye nostalgi bestemte jeg meg for at jeg virkelig vil spille Dendy og jeg vil spille på en bærbar PC, men ikke på et tastatur, men på en god gammel joystick.

Nedenfor vil jeg beskrive hvilke problemer jeg møtte og hvordan jeg løste dem.

La meg forklare litt hvorfor jeg ønsket å spille på denne måten. Jeg har fortsatt prefikset og det fungerer fint, men bare et par patroner gjenstår (resten ga jeg til vennene mine). Og å spille dandy-spill på tastaturet, vel, dette er liksom ikke is i det hele tatt.

Problemet oppsto med hvordan man kobler joysticken fra Dandy til en bærbar PC.

Etter litt googling skjønte jeg at dette i hovedsak løses ved å koble til via LPT-porten og bruke ferdige drivere, men jeg har en laptop og dette passer ikke meg. Så husket jeg at jeg har arduino brett Uno og jeg bestemte meg for at jeg ville gå min egen vei og bruke henne.

0. Joystick Pinout Definisjon

Det første problemet viste seg å være at joystick-kontaktene er interne, og alle pinout-beskrivelsene som ble funnet på Internett var for eksterne kontakter.

Jeg kunne ikke finne en spesifikasjon for min noname dandy, så jeg begynte å vurdere internavgift for å finne strøm og jord der, og forstå hvilken av de fem pinnene på styrespaken som kobles til dem. Jeg kom raskt over dette. Det viste seg at dette var to ekstreme kontakter.

Til Arduino koblet jeg alt direkte, strøm - 5V strøm, jord - jord, de tre andre pinnene koblet til digitale pinner 2, 3 og 4.

1. Beskrivelse av protokollen til styrespaken

Det viste seg å ikke være så lett å finne denne informasjonen. Bare noen få innlegg på et par fora. Personlig hjalp denne oppføringen meg: code.google.com/p/avrtoys/wiki/joystick , nemlig denne koden: avrtoys.googlecode.com/svn/trunk/joystick/main.c . Og her er en lenke til notatet nevnt i denne oppføringen i Radio-magasinet: ftp.radio.ru/pub/arhiv/1996/06-96/46-6-1996.gif . Fra alt dette konkluderte jeg med at du må sende et signal til Latch, og deretter sende et signal til Clock 8 ganger og hver gang lese verdien fra Data, som etter hver Clock vil inneholde informasjon om neste joystick-knapp.

2. Miljøoppsett

Hvis du allerede har alt satt opp eller du er fornøyd med Arduino IDE du kan gå til trinn 3.
Jeg vet ikke om deg, men personlig deprimerer den offisielle Arduino IDE meg veldig, så jeg skal kort fortelle deg hvordan du bruker favoritt-IDEen min.
Først av alt lastet jeg ned Arduino IDE-kildene og fant koden der som var ansvarlig for kompilering og opplasting av fastvaren. Etter å ha brukt litt tid, fremhevet jeg alle kommandoene som brukes der:
#!/bin/bash avr-gcc -c -g -Os -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000UL -I /usr/share/arduino/hardware/arduino/cores/ arduino -I /usr/share/arduino/hardware/arduino/varianter/standard $filnavn.cpp -o $filnavn.o avr-gcc -Os -Wl,--gc-seksjoner -mmcu=atmega328p -o $filnavn.elf $filnavn.o libArduino.a -lm avr-objcopy -O ihex -R .eeprom $filnavn.elf $filnavn.elf.hex avrdude -V -p m328p -b 115200 -c arduino -P /dev/ttyACM0 -U flash :w:$filnavn.elf.hex
I kommandoen ovenfor, når du lenker, brukes libArduino.a-biblioteket, det kan fås ved å kompilere alle *.c- og *.cpp-filer fra mappen med overskrifter og samle alle objektene i ett arkiv. Eller du kan bare kjøre Arduino IDE, kompilere et hvilket som helst prosjekt og kopiere filen /tmp/build*.tmp/core.a. Det vil være helt likeverdig.
Alle disse kommandoene er relevante for Arduino Uno, for andre arduinoer bør noen parametere endres.

Nå, ved å bruke disse kommandoene, kan du enkelt konfigurere IDE-en til automatisk å kompilere og laste ned fastvaren.

3. Skrive fastvarekoden

Her var det bare nødvendig å bestemme hvilke av de 2, 3 og 4 pinnene som er ansvarlige for Latch, Clock og Data. Jeg løste dette ved prøving og feiling. Vi antar at 4 er Data, og gjør Serial.println(digitalRead(4)) hvis det er noen reaksjon når du trykker på knappene, så er dette det. De resterende 2 kontaktene ble bestemt da fastvaren allerede var skrevet, hvis alt fungerer, så gjettet du det, nei - vi bytter plass.

Koden ble igjen skrevet basert på avrtoys.googlecode.com/svn/trunk/joystick/main.c :

Fastvarekode

#inkludere const int data = 2; const int latch = 3; const int klokke = 4; const int TICK = 2; void init_joystick(int data, int latch, int klokke) ( pinMode(data, INPUT); pinMode(klokke, OUTPUT); pinMode(latch, OUTPUT); digitalWrite(clock, HIGH); ) int get_keys_state_joystick(int data, int latch , int klokke) ( digitalWrite(latch, HIGH); delayMicroseconds(TICK); digitalWrite(latch, LOW); int keys_state = 0; for (int i = 0; i< 8; ++i) { delayMicroseconds(TICK); digitalWrite(clock, LOW); keys_state <<= 1; keys_state += digitalRead(data); delayMicroseconds(TICK); digitalWrite(clock, HIGH); } return keys_state; } void setup() { init_joystick(data, latch, clock); Serial.begin(57600); } void loop() { Serial.write(get_keys_state_joystick(data, latch, clock)); }


Som et resultat mottok jeg 1 byte som inneholder informasjon om alle de 8 knappene på styrespaken, om hver i den tilsvarende biten. Jeg fikk følgende ordning: A, B, Velg, Start, Opp, Ned, Venstre, Høyre. Etter denne byte sendes til datamaskinen, hvor den mottas og behandles av min "driver".
Det er lett å se at du enkelt kan koble til en andre joystick.

4. Skrive en "sjåfør"

Her var det nødvendig å godta nettopp denne byten fra Arduino og etterligne tastaturknappetrykk. Ja, ja, joystick-klikk vil bli behandlet som tastaturklikk, gode eller dårlige.
Jeg valgte Python som programmeringsspråk. Enkel og effektiv, jeg synes den var perfekt for oppgaven.

Det eneste problemet som oppsto her var sprett av joystick-kontaktene. Jeg løste det ved å introdusere et tidsintervall som oppstår etter at knappens tilstand endres, hvor tilstanden ikke endres. Det tok 0,05 s.

For å etterligne tastetrykk brukte jeg xte-verktøyet som følger med Xautomation. Det er veldig enkelt å bruke, her er et eksempel: xte "keydown Left" . Se man xte for mer informasjon.

For å gå ut av sjåføren brukte jeg tilstanden når hele krysset er trykket. Denne tilstanden tilsvarer tallet 0xf0.

Førerkode

#!/usr/bin/python importer seriell import os importtid def bool_to_updown(val): if val: return "up" else: return "down" exit_keys = 0xf0 delta_time = 0.05 keys = [["Right", False, 0.0 ], ["Left", False, 0.0], ["Down", False, 0.0], ["Up", False, 0.0], ["s", False, 0.0], # START ["a", False , 0.0], # SELECT ["x", False, 0.0], # B ["z", False, 0.0]] # A ser = serial.Serial("/dev/ttyACM0", 57600) keys_state = 0 mens keys_state != exit_keys: keys_state = ord(ser.read()) for i in range(8): hvis ikke bool(keys_state & (1)<< i)) != keys[i] and time.time() - keys[i] >delta_time: os.system("xte "key(0) (1)"".format(bool_to_updown(keys[i]), keys[i])) keys[i] = ikke keys[i] keys[i] = time.time() for i in range(8): os.system("xte "keyup (0)"".format(keys[i])) ser.close() print("Farvel!")

5. Hurra! La oss leke!

Alle! Det gjenstår bare å konfigurere dandy-emulatoren, jeg valgte FCEUX.
Spesifiser i innstillingene de nøklene som er spesifisert i driveren iiii husk barndommen!

Konklusjon

Faktisk er det andre, kanskje mer effektive måter å bruke Arduino på i denne situasjonen. Hvis du for eksempel har en Arduino Leonardo, kan du bruke Keyboard-objektet til å sende tastaturkommandoer direkte til datamaskinen. Det er også mulig, slik jeg forstår det, å reflash Arduino slik at den vises som en joystick/tastatur/mus og også sende kommandoer direkte. Her er en veiledning: http://mitchtech.net/arduino-usb-hid-keyboard/ . Men metoden min passer meg fullstendig og jeg er mer enn fornøyd med resultatet.

Liker det eller ikke, Arduino er en fantastisk plattform for slike eksperimenter.
Nå gjenstår det bare å samle alt dette i form av en egen enhet.

Og til slutt, videoen: