Innehållsförteckning:

Trådlös PC -joystick/hjulknappar: 4 steg (med bilder)
Trådlös PC -joystick/hjulknappar: 4 steg (med bilder)

Video: Trådlös PC -joystick/hjulknappar: 4 steg (med bilder)

Video: Trådlös PC -joystick/hjulknappar: 4 steg (med bilder)
Video: Universal Joystick Driver for Windows 7, 8, 10, and 11 (2024) | Best Joystick? : (Read Description) 2024, Juli
Anonim
Trådlös PC -joystick/hjulknappar
Trådlös PC -joystick/hjulknappar

Jag har byggt upp en ny racing sim under de senaste åren och bestämde mig för att gå med en DIY Direct Drive -ratt. Även om det här projektet ensamt kan vara flera instruktioner i sig, är det en instruktion om att göra alla knappar på hjulet trådlösa.

Varför?

  • DD -hjulet har obegränsade rotationer, så att ha ledningar till det skulle vara irriterande.
  • Ingen möjlighet att dra kablar via hjulaxeln som i kommersiella hjul
  • Jag ville enkelt kunna byta hjul med olika knappkonfigurationer
  • För jag kunde:)

För att nå målet med trådlösa knappar måste vi överväga:

  • Kraftleverans
  • Trådlös anslutning
  • Reaktionstid/fördröjning
  • Pålitlighet

Följande komponenter valdes för att matcha dessa kriterier: Tx - Arduino Nano med integrerad NRF24 -modul här eller använd en generisk Nano- eller Pro Mini + NRF24 -modulRx - Arduino Pro Micro / Leonardo / Beetle (Atmega32u4) + NRF24 -modul USB 'Battery Bank' - Any generisk enda 18650 batteribank ska fungera. Detta kommer att pågå i cirka 20 timmar! Du kanske vill kontrollera om den kan ladda och leverera ström samtidigt. Detta är praktiskt om det går platt och du vill ladda och använda samtidigt.

Dessutom behöver du knapparna och en strömbrytare som du väljer, lite anslutningstråd och eventuellt något värmekrymprör.

Detta kan också användas i en "knapplåda" istället för på ett hjul, men jag tänkte att det skulle vara mindre efterfrågan på det eftersom det inte är så mycket fördelar om det inte rör sig.

Verktyg som behövs:

Lödkolv och löd En varm limpistol är användbar för att även montera delarna. Arduino IDE installerad på din dator.

Steg 1: Sändarens ledningar

Sändarens ledningar
Sändarens ledningar
Sändarens ledningar
Sändarens ledningar
Sändarens ledningar
Sändarens ledningar

Börja med att montera så många omkopplare som du behöver på ditt hjul och överväga platsen för Arduino. Anslut alla ledningar till omkopplarna enligt diagrammet. Varje knapp kopplas med ena sidan till GND och den andra till den tillhörande arduino -stiftet. Koden tillåter 14 omkopplare/knappar som borde räcka för de flesta hjul.

Om du använder Nano med den inbäddade NRF -modulen behöver du uppenbarligen inte lägga till den tillhörande ledningen för det, bara koppla knapparna.

Knapparna är i denna ordning (1-14): RX, TX, D2, D3, D4, D5, D6, D7, A0, A1, A2, A3, A4, A5

Men varför bara 14 knappar? Anledningen till detta är att vi kan läsa en hel bank med nålar snabbt och att bara överföra 2 byte data inte tar lång tid - Så även om detta kan modifieras för att inkludera fler knappar (via en matris) och/ eller analoga ingångar, detta skulle sakta ner lite. Matrisavläsning och analog läsning/konvertering tar processortid. Jag behövde bara 12 knappar på mitt hjul så jag gick med det men skulle överväga att lägga till fler.

Power För kraften har du två val - Du kan antingen lämna batteribanken i takt och bara fästa den på ratten på något sätt. Detta ger dig den extra bonusen att kunna koppla bort strömmen från arduino, undvika att ha en inbyggd strömbrytare och några kablar.

Om du föredrar en mer anpassad lösning kan det vara nödvändigt att öppna batteribanken och återanvända internen i din anpassade konfiguration.

Jag hade inte rummet i mitt hjul för att lämna det i takt så det togs bort. Jag tog bort standard USB -kontakten från laddningskortet och lödde +5- och Gnd -kablarna från usb -portkuddarna till Arduino via en switch. Det är lite svårt att specificera detta på grund av de många tillgängliga alternativen …

Kretsen monterades sedan inuti hjulet och exponerade mikro -USB -laddningskontakten.

Laddningskortet kommer att ha en eller flera lysdioder för att visa laddningsstatusen - Det är praktiskt att synliggöra dessa på något sätt eller använda lite plast för att 'porta' dem till någonstans synlig så att du vet när den har laddats klart.

Vilket hjul är det? För dem som är intresserade är min hjuldesign från Amstudio - Några fantastiska DIY -racing sim -deldesigner är tillgängliga från dem till rimliga priser.

Steg 2: Mottagaren

Mottagaren
Mottagaren
Mottagaren
Mottagaren
Mottagaren
Mottagaren

Följ bara kopplingsschemat som bifogat. Om du inte använder en Leonardo behöver du en extern 3.3v regulator, till exempel AMS1117. Pro Micro -regulatorn kan inte ge tillräckligt med ström till NRF24 -modulen och skalbaggen har inte alls.

Jag har färgkodat anslutningarna till NRF -modulen samma för Pro Micro och skalbagge.

Arduino 'Beetle' som är ganska lätt att hitta på de vanliga platserna men än en gång kommer 3.3v regulator att behöva användas eftersom den inte har någon alls. Jag har testat detta och det fungerar också bra. Anslutningarna är desamma

Steg 3: Programmering av enheterna

Programmering av enheterna
Programmering av enheterna
Programmering av enheterna
Programmering av enheterna
Programmering av enheterna
Programmering av enheterna

Om du inte redan har Arduino IDE installerat, gå till https://www.arduino.cc och ladda ner den version som är lämplig för ditt operativsystem för det här exemplet Jag är på Windows.

När de väl är installerade behöver du två olika bibliotek -Det första är enkelt via Sketch -> Inkludera bibliotek -> Hantera bibliotek (eller CTRL+SKIFT+I)

NRFLite av Dave Parson (version 2.2.2 från publicering)

Den andra måste installeras manuellt från https://github.com/MHeironimus/ArduinoJoystickLibr..

Klicka på "Klona eller ladda ner" och sedan "Ladda ner ZIP och öppna den nedladdade filen. Du måste sedan klicka dig vidare till mapparna tills du ser en "Joystick" -mapp -Kopiera den till din Arduino Libraries -mapp (I Windows är detta vanligtvis under dokument -> Arduino -> bibliotek.

Starta om Arduino IDE

Om du använder Pro Micro för mottagaren måste du också lägga till det kortet i IDE. File -> Preferences -> Extra Boards Manager URL: er:

ange:

Gå sedan till Verktyg -> Boards Manager, sök i Sparkfun och installera 'Sparkfun AVR Boards'

Nu är vi redo! Låt oss börja med sändaren - Anslut den till din dator

Under Verktyg -> Board väljer du 'Arduino Nano' (eller vilken variant du bestämde dig för att använda). Verifiera också COM -porten under verktygsmenyn.

Öppna den bifogade filen Wireless_Wheel_Tx.

Det finns bara en rad som du kanske vill ändra i den här koden och det är:

int nrfChannel = 22;

Du har upp till 126 kanaler som du kan använda över 2,4 GHz -spektrumet. Det borde vara bra att lämna som det är men om du upptäcker att du har problem med tillförlitlighet, kanske du ändrar detta till ett annat nummer.

Klicka sedan på "ladda upp" -knappen och vänta tills den är klar.

Detsamma gäller Leonardo/Pro Micro/Beetle - Välj det bräda du vill ha - För Leonardo och Beetle, välj Arduino leonardo -kortet. För Pro Micro, välj det och välj också varianten/processorn Atmega32u4 (5v, 16Mhz), öppna filen Wireless_Wheel_Rx, ändra inställningen nrfChannel (om du ändrade den på Tx) och programmera bort.

När enheten startar om vid programmeringen bör din dator upptäcka en joystick -enhet. Om du också startar din sändare bör du kunna trycka på knapparna och få den att visas i enhetens status!

En cool tillfällig funktion är att du får en statuslampa på Leonardo och Pro Micro - USB TX -lampan tänds när den har anslutning till knapparna. Detta finns dock inte på skalbaggen.

UPPDATERAD 13/2/2021

Jag har lagt till 2 extra filer (Tx och Rx) till instruerbara här för en version med 4 analoga ingångar samt en 3X8 knappmatris. Mestadels otestad, kan ha försening. Försök och kommentera.

Steg 4: Förbättringar

Förbättringar
Förbättringar

Efter att ha använt den här lösningen ett tag hade jag för vana att lämna hjulet av misstag. För att motverka detta lade jag till en lysdiod på framsidan så att jag kunde se att hjulet var på. Detta är bara en enkel 3 mm ledkörning från 5v på arduino via ett motstånd. Toppen slipas ner för att sprida ljuset lite och förhindra bländning.

Jag köpte några batterinivåmätare från BG eller Ali men när de kom var de mycket större än vad jag förväntade mig, men det är något jag fortfarande vill lägga till. Det finns många alternativ för detta men eftersom batteriet håller så länge tenderar jag att bara ladda om efter några timmars användning.

Extra knappar/kodare/analoga ingångar Tänker fortfarande på den här. För mig är det inte så viktigt för racing jag gör men för saker som F1 är det förmodligen mer användbart. Jag kommer att överväga två versioner eller lägga till detta om det finns tillräckligt med efterfrågan men det kan påverka responstiden på knapparna.

Rekommenderad: