Arduino lins Controller - synkroniseras Zoom/fokus med Wii Classic Controller (4 / 11 steg)
Steg 4: Programmera din styrelse: få bibliotek och min kod och börja spela
Innan du läser in den kod som jag skrev för min lins controller, måste du få Arduino IDE uppsättningen på datorn och ladda bibliotek som du behöver. Servo kontroll biblioteket ingår i Arduino IDE, så du inte behöver göra någonting för det. Dock använder min kod också en användare bidragit Wii Classic Controller som är tillgänglig på Arduino playground. http://Arduino.cc/Playground/main/WiiClassicController10Du kan följa instruktionerna på sidan för att lägga till detta till ditt bibliotek eller bara ladda ner zip-filen som jag har bifogat och packa upp den till mappen Arduino bibliotek. Min är i denna väg:
.. \Documents\Arduino\arduino-1.0\libraries\
Jag skapade en mapp som heter MiconoWiiClassic i mappen \libararies och sparade filen "WiiClassic.h" i den mappen. Du kan bara packa upp filen MiconoWiiClassic.zip som jag har tagit med här att din Arduino-1.9\libraries mappen.
UPPDATERINGAR:
1) sedan första utstationering detta Instructable, har jag räknat ut hur man dubbla upplösningen av servon, vilket gör dem mjukare och mer exakt. Jag gjorde detta genom tweaking servon biblioteket som installeras av Arduino. Du kan antingen justera biblioteket själv, eller du kan hämta den Servo.zip filen och extrahera filen Servo.cpp till din... \Arduino\arduino-1.0\libraries\Servo mapp och skriva över filen Servo.cpp som finns där. Om du vill justera filen själv, kan du bara öppna filen från ditt bibliotek i anteckningar och ersätta alla förekomster av "180" med "360". Om du hämtat min skiss innan jag gjorde uppdateringen, bör du ladda ner FocusController_gp.zip och extrahera den till din skiss mapp. Det kommer att lägga till focus_zoom_controller_servo_final_2xresolution.ino till mappen.
2) när du packa upp filerna måste du ändra en sak i filen WiiClassic.h för att göra biblioteket fungerar som förväntat med min kod. WiiClassic.h biblioteket innehåller en DEFINE_ON_HOLD funktion som måste vara okommenterade för att säkerställa att knapptryckningar rapporteras en gång. Om du vill ta bort detta, måste du öppna den... \arduino-1.0\libraries\MiconoWiiClassic\WiiClassic.h fil i anteckningar och ändra följande rad:
#define REPORT_ON_HOLD
till
#define REPORT_ON_HOLD
Om du inte gör detta, kommer du att märka att knapptryckningar D-pad kommer att hålla sig i rörelse servon som du håller ner knappen, medan det ska bara flytta den servo ett steget per press. Detta fel kan också orsaka konstigt beteende från andra knapptryckningar.
3) om du plugga WiiChuck adaptern till analoga stift 2,3,4 och 5, måste du konfigurera 2 och 3 som mark och makt, genom att lägga till följande i avsnittet installation i din kod (tack till Phillip James för att fånga denna ommision)
"pinMode (16, OUTPUT);" Anger digital 16 pin (aka Analog 2) som marken pin
"digitalWrite (16, låg)."
"pinMode (17, OUTPUT);" Apparater digitala 17 pin (aka Analog 3) som + 5V stift
"digitalWrite (17, hög);"
När du har biblioteket på plats, du kan också hämta min projektkod och packa upp den till huvudmappen för Arduino, och nästa gång du startar Arduino IDE, mina projekt visas i mappen Sketchbook. Min Arduino och finns i mappen Mina dokument, såhär:
.. \Documents\Arduino\