USB Wiichuck mus med en Arduino Leonardo (2 / 3 steg)

Steg 2: programvara

Efter att ha fått min skinande nya Leonardo, började jag undersöka hur jag skulle få det alla arbetar. Eftersom Wiichuck använder 5 V power och kommunicerar via I2C, ledningarna var relativt enkel. Jag kopplade bara upp 5 V, GND, SDA och SCL raderna till motsvarande portar på Leonardo och jag var redo att gå.

Programmet var lite svårare. Det tog mig ganska lång tid och en hel del experimenterande att hitta kod som skulle fungera för vad jag behövde. Som jag nämnde tidigare, både Nunchuck funktionsbiblioteket (som jag har tagit i detta instructable) och den ursprungliga källkoden (som jag inte verkar få ladda upp korrekt, så jag ska bara kopiera och klistra in nedan) var skriven av andra och sedan för mina syften.

I huvudsak vad koden gör är använda Nunchuck biblioteket för att hämta data från den "Chuck varje 10 ms. att ha satt en rad för musen för att flytta koden använder detta intervall för att avgöra vila tröskeln till joystick. Efter huvudloop läser C och Z knappar och utgångar dem som vänster och rätt musen knappar, koden då går på att läsa x- och y-axeln. Efter att subtrahera värdet center position från den mottagna behandlingen, är det resulterande absoluta värdet jämfört med variabeln tröskel. Om värdet är mindre än tröskelvärdet för rörelse, flytta avståndet är satt till 0, annars flytta avståndet Läs avståndet. Om antingen x eller y avståndet är inte 0, musen flyttas motsvarande avstånd.

Det bör noteras att hela denna process fungerar lika bra med accelerometern. Istället för att använda funktionerna nunchuck_joyx och y, kan man lämpligen använda nunchuck_accelx och y. Jag skulle inte rekommendera det, emellertid. Resultaten vid försök att använda musen kan vara... squirrely.

Wiichuck mus
Brian Krukoski
April 2012
rött-+ 5, vit-gnd, grön-sda, yllw-clck

#include < Wire.h >
#include "nunchuck_funcs.h"
int loop_cnt = 0;

parametrar för att läsa joysticken:
int utbud = 40; utgående sortiment av X eller Y rörelse
int tröskel = utbud/10; vilande tröskel
int center = range/2; vilande position värde

booleska mouseIsActive = false; även att styra musen
int lastSwitchState = låg; tidigare switch tillstånd

void setup() {
initilization för Wiichuck
nunchuck_init();
ta kontroll över musen:
Mouse.BEGIN();
Serial.BEGIN(9600);
}

void loop() {
om (loop_cnt > 10) {/ / varje 10 uppdateringsförsök få nya data
loop_cnt = 0;
nunchuck_get_data();

höger och vänster klicka kontroll
int leftState = nunchuck_cbutton();
om (leftState) Mouse.press(MOUSE_LEFT); annat Mouse.release(MOUSE_LEFT);
int rightState = nunchuck_zbutton();
om (rightState) Mouse.press(MOUSE_RIGHT); annat Mouse.release(MOUSE_RIGHT);

Läs x-axeln
int xReading = nunchuck_joyx(); samtal på nunchuck_funcs bibliotek för x-axeln behandlingen
xReading = karta (xReading, 38, 232, 0, intervall); 38 och 232 godtyckligt bestämmas genom experiment, kartor till 0 och förinställda utbud
int xDistance = xReading - center;
om (abs(xDistance) < tröskel) //if absolutvärdet för xDistance är mindre än fördefinierade tröskel...
{
xDistance = 0;
}

Läs y-axeln
int yReading = nunchuck_joyy(); samtal på nunchuck_funcs bibliotek för y-axeln läsning
yReading = karta (yReading, 38, 232, 0, intervall); 38 och 232 godtyckligt bestämmas genom experiment, kartor till 0 och förinställda utbud
int yDistance = yReading - center;
om (abs(yDistance) < tröskel) //if absolutvärdet för yDistance är mindre än fördefinierade tröskel...
{
yDistance = 0;
}

flytta musen om avläsningarna var högre än 0
om ((xDistance! = 0) || (yDistance! = 0)) {
Mouse.Move (xDistance, -yDistance, 0); -yDistance garanterar inverterad stil joystick
}
}
nunchuck_print_data(); skriver ut nunchuck data till seriell monitor för felsökning
loop_cnt ++;
Delay(1);

}

Se Steg
Relaterade Ämnen

Förvandla en N64 styrenhet till en USB-spelkontroll med en Arduino Leonardo

Det enklaste sättet att förvandla en N64 styrenhet till en USB-spelkontroll är att köpa en N64 Controller Adapter för runt £15. Det kan emellertid också göras om du har en Arduino Leonardo eller någon annan Arduino ombord med inbyggd USB-kommunikatio...

Hur man gör en Gameboy / Game Controller med en Arduino Leonardo

Hej alla i denna Instuctables kommer vi att se hur en Gameboy Arduino Leonardo.I själva verket är det egentligen inte en Gameboy men en förtäckt joystick.Steg 1: Första: hårdvaraVi behöver:-Arduino Leonardo Arduino IDE +-8 tryckknapp-8 motstånd-Kabla...

USB NES controller med en arduino!

UPPDATERING 22-12-2014Instructables användare mattpbooth har uppdaterat koden och är värd det på github:https://github.com/mattpbooth/ArduinoNESController...Tack Matt!UPPDATERING 2011-03-12Ersatte en println med tryck (derp).UPPDATERING 2011-01-12Omg...

USB-Wii Gamepad med Arduino Leonardo

Förra helgen jag provat den nya RetroPie på min härliga nya Raspberry Pi 3, men bara spelenheten jag har är oldie Wii Classic Controller; så hur kan jag konvertera den till en vanlig USB-spelenhet?Efter lite forskning fick jag reda det är ganska lätt...

Lägga till USB-spelenhet till Arduino Leonardo/Micro

VIKTIGT: Denna artikel är för Arduino IDE version 1.6.5 (eller nedanför). Lägga till en USB-spelenhet till en Arduino Leonardo eller Micro använder Arduino IDE version 1.6.6 (eller ovan) se följande Instructable: Arduino Leonardo Micro som Game Contr...

Använder Arduino Leonardo som mus och tangentbord, kontroll av bluetooth.

En awsome funktion i Arduino Leonardo, som gör det särskilda styrelsemöte, är att det kan fungera som mus och tangentbord på datorn. Detta kan vara nyttigt till controll datorn av olika sätt, till exempel styrspak och här BLUETOOTH!saker som används...

Arduino leonardo USB-ratt

jag hade en gammal USB-ratt liggandes som dog hade jag en freetronics leostick liggandes så jag gjorde detta.jag uppdaterade bootloader till officiella leonardo en.Steg 1: bootloader modsuppdaterat bootloader till officiella leonardo en.för ratten be...

DIY Android Bluetooth PC gamepad med arduino leonardo

Handledning och test video:Länk till App Inventor och Arduino filen i youtube video beskrivning.Steg 1: Lista över ledningar och spela -Arduino Leonardo (leonardo styrelsen har tangentbord och mus tävlan. Jag använder pro micro)-Bluetooth-modul (Im a...

Styra en SaikoLED myki (eller Arduino Leonardo) med en enkel knapp låda--med ICSP-huvudet

Välkommen! Idag ska vi förklara hur man bygger en styrenhet med 3 knappar som ansluter direkt till en Arduino Leonardo-kompatibla ombord--i detta fall myki ljus från SaikoLED. Mer information om Leonardo finns här och i detta Instructable.Du behöver...

Mus med USB-port (valfri intern enhet)

detta projekt för mig är mer användbar än det först verkar, jag använder denna mus all tiden och alla var det ganska krångliga att göra det var mödan värt.Nu varför skulle jag vilja en mus med en USB port hängande ut på sidan? Den främsta anledningen...

Behandlingen digitalt skjutmått med en Arduino / USB

hur man använder en Arduino att läsa signalen från en uppsättning Digitala skjutmått och skicka behandlingen via USB.Varför?Detta kan vara användbart för exakt position avkänning i hem gjorde / hackade datorstödd tillverkning system. Lägger till USB-...

Arduino Leonardo Micro som Game Controller/Joystick

VIKTIGT: Denna artikel är för Arduino IDE version 1.6.6 (eller ovan). Lägga till en USB-spelenhet till en Arduino Leonardo eller Micro använder Arduino IDE version 1.6.5 (eller under) se följande Instructable: lägga till USB-spelenhet till Arduino Le...

Steg för steg Guide till Arduino Leonardo

The Arduino team nu skeppning deras senaste skapelse - Leonardo. Det är första Arduino att använda Atmel's ATmegaXU4 serie chip med bygget-i USB. Denna förändring är stora och har stora fördelar. Utöver den inbyggda USB erbjuds mer digitala och analo...

ARD-e: roboten med en Arduino som en hjärna

hur man skapar en öppen källkod Arduino kontrollerade robot för under $100.Förhoppningsvis efter att ha läst detta instructable du kommer att kunna ta det första steget in i robotteknik. ARD-e kostar ca $90 till 130 USD beroende på hur mycket extra e...

Arduino Leonardo som ISP

Leonardo var min första Arduino, jag köpte den eftersom det är native USB-funktioner. Efter att ha experimenterat med Arduino, bestämde jag mig att migrera från min Arduino Leonardo till en fristående Atmega328p eller, för mindre projekt, till en mik...

Twitter övervakning leksak byggt med LEGO & Arduino

Detta är en animerad LEGO leksak som övervakar twitter och firar varje gång det söker en ny förekomst av hashtag #BLOCKSHELL av klingande en klocka, blinkar en ljus och skicka en liten minfigure aktivist dude upp en arktisk oljerigg överbyggnad.(Mini...

Arduino Leonardo frågesport Summer

Så varför skulle du bygga en Buzzerquiz?Exakt! Att ha kul och spela med vänner!I mitt fall var det för en födelsedagsfest. Gästerna skulle gissa filmen och serien titlar baserat på temat sång.Min Summer Setup kommer att ha följande funktioner:Den för...

Arduino Leonardo/Micro(ATMega32u4) som Gamepad/Game Controller

Chip ATMega32u4 vad används i Arduino Leonardo, Micro eller Pro Micro har möjlighet att använda anpassade USB HID deskriptorer. Tack denna förmåga kan vi göra våra Arduino som generiska Gamepad!Detta bibliotek innehåller en allt för "simulera" e...

Lägga till knappar i din X52-Pro Joystick med en Arduino mikro

Jag har en Saitek X52-Pro HOTAS setup som jag använder för Elite: farligt. Det är en fantastisk joystick men det kan göra med bara några fler knappar. Med en Arduino Micro kan du utöka detta (eller någon annan) joystick för alla spel som kommer att s...