Arduino Lens Controller - Synkroniseret zoom / Fokus med Wii Classic Controller: 11 trin (med billeder)

Arduino Lens Controller - Synkroniseret zoom / Fokus med Wii Classic Controller: 11 trin (med billeder)

Indholdsfortegnelse:

Anonim

Min Lumix GH2 Micro Four Thirds-kamera optager ikke kun fantastiske HD-videoer, men med billige adaptere kan jeg bruge den med ældre manuelle linser, der er billige og ofte meget høje kvalitet. Jeg skyder en masse præstationsvideoer til min datters dansestudio, og jeg bruger en f3.5 Nikon 28-85mm zoomobjektiv, fordi den giver et godt zoomområde og en hurtig blænde for en zoomobjektiv. Problemet med denne opsætning er, at jeg skal zoome og fokusere linsen manuelt, og selvom jeg forsøger at minimere zoomning under optagelse, er der tidspunkter, hvor det er vigtigt at opretholde korrekt indramning og for at vise dansernes færdigheder. Jeg har formået at lære at zoome manuelt uden at indføre overdreven kamera jitter (normalt), men da jeg også fokuserer manuelt, er det lidt af en opgave at hurtigt og jævnt justere fokuset efter zoomning ind eller ud. For at overvinde denne mangel besluttede jeg at bygge en power zoom og fokus controller til mit kamera (som mange andre har gjort), med det kritiske mål at være i stand til automatisk at opretholde det rette fokus, når linsen glat zoomer ind og ud. Efter mange måneders prototyping ankom jeg en fantastisk løsning, der bruger en Arduino klon, der accepterer input fra en Wii Classic controller, og som bruger 2 hobby servoer til at flytte linsen.Den samlede pris for slutproduktet er mindre end $ 100.

Det design, som jeg til sidst har implementeret, har en række avancerede funktioner:

- 2 joysticks giver kontinuerlig variabel hastighed linse kontrol. Flytning af den rigtige pind frem og tilbage styrer synkroniseret zoom og fokus og flytter den venstre pind side til side kontroller fokuserer bare. Gennemførelsen af ​​hastighedsstyring hjælper også med at holde servostøjen nede til acceptable niveauer.

- Der er 6 programmerbare "goto" zoom / fokusindstillinger, der kan programmeres i fly fra Wii Classic, og det vil flytte zoom og fokusere til den ønskede position ved blot at trykke på en knap (venstre skulder for bredeste zoom, højre skulder for de fleste zoom og a, b, x og y for enhver zoom / fokus position).

- De maksimale linsebevægelsesindstillinger kan også programmeres i flyve for at sikre, at servoerne ikke forsøger at rotere ud over grænserne for linsens zoom- og fokuspositioner.

- D-pad giver enkeltgraders bevægelser af zoom (op og ned pad) og fokus (venstre og højre pude) for at foretage præcise justeringer for kritisk fokus / zoom.

Her er en demonstration af, hvordan det synkroniserede zoomfokus fungerer på min GH2 med en Nikon 28 - 85mm zoomobjektiv:

I dette instrukser dækker jeg det grundlæggende om, hvordan du opbygger din egen version af denne controller, herunder Arduino-koden og instruktioner til montering af servoer på en jernbanebaseret kamera rig. Jeg vil nævne, hvordan jeg byggede min rigg, men da jeg ikke er rigtig tilfreds med det, vil jeg ikke gå ind i detaljerede trin på det og overlade det til dig at finde ud af din egen løsning baseret på billederne på min rig og nogle noter om hvordan jeg lavede det.

Dette var mit første forsøg på at opbygge noget med Arduino, selvom jeg har haft nogle programmeringserfaringer, så det var ikke for svært for mig at lære det grundlæggende i Arduino-koden. Men hvis du vil tackle dette projekt, og du ikke allerede har fået kendskab til at oprette og programmere en Arduino, anbefaler jeg at du går igennem vejledningen på Arduino-webstedet, især dem til Servos.

forsyninger:

Trin 1: Kom godt i gang: Værktøjer og materialer

Du kan færdiggøre elektronikken til dette projekt med blot nogle wire strippere og et loddejern. Men for at gøre servo montering arme det hjælper med at få adgang til en bandsave og en boretryk (selvom forsigtigt arbejde med en hånd bor kan negere behovet for sidstnævnte). Jeg brugte også et bord til at skære arkplastik og en bordmonteret router med en 1/2 diameter kerneboksbit for at skære sporene i plastik for at matche skinnerne på mit hjemmebaserede kamerajernsystem.

Her er en liste over de vigtigste forsyninger, du skal færdiggøre dette projekt, men vær så snill at gå igennem det hele, der er vejledende, før du køber noget, så du forstår hvad du skal købe for at passe til dine egne behov.

- Arduino eller Arduino klon (jeg brugte en Seeeduino fordi det var lidt billigere end Arduiino og giver samme funktionalitet).

- Wii Classic Controller. Jeg købte min fra eBay for omkring $ 10 afsendt.

- Wiichuck Adapter (et lille printkort, der plugger ind i din Wii Classic, så du ikke behøver at skære kablet). Jeg fik dette fra FunGizmos for $ 4:

- 2 standard hobby servos med nylon gear og kuglelejer. Nylongearene er roligere, og kuglelejerne giver bedre støtte til akslen, når du håndterer belastningen af ​​stivere zoomlinser. Jeg købte nogle overskydende servoer fra en lokal RC butik for $ 5 hver, men erstatter dem med 360 graders digitale servoer, der burde være endnu mere støjsvage og mere præcise, og de koster mig $ 20 hver fra eBay.

- 2 linsedrev til montering på linsens zoom og fokusringe. Jeg brugte de fleksible, som jeg fandt på eBay for $ 10 hver og lavede mine egne spacer ringe for at give bedre opløsning og lidt mere mekanisk fordel for servoerne. Du kan også bruge omkring dobbelt så meget og få linser med gearringe, der har indbyggede afstandsstykker, og disse er også tilgængelige på eBay. bare søg efter "objektiv gear følg fokus".

- 2 Kør gear til montering på servoerne for at køre linsen. Disse skal være 32p eller mod.8 gear pitch (som er standard pitch for linset gear). Jeg formede mine egne drivgear ved at montere nogle 4/4 RC-spidsgear til de originale servostyringsarm, men det krævede noget arbejde på en mini drejebænk, som ikke alle har. En bedre mulighed ville være at købe servomonterbare gear fra Servo City for blot et par dollars mere: http://www.servocity.com/html/32_pitch_hitec_servo_gears.html. Mens du bestiller dem, sparer du dig selv nogle problemer, så køber du også et par mandlige servo-ledninger, så det bliver lettere at forbinde din servo til din Arduino og at bytte servo, hvis behovet opstår.

- 1/2 tommer plademateriale eller 3/4 "tykt aluminium for at gøre servostyrene. Jeg brugte et gammelt plastskærebræt, men hvis du gør det, skal du sørge for at det er den hårdere ridgid slags (du burde ikke være i stand til at dent overfladen overhovedet med din miniature). Den blødere slags er UHMW og vil ikke maskine godt nok til dette formål.

- drejeknapper og tilhørende vognbolte til fastspænding af servomøtrikkerne på skinnerne.

Trin 2: Valg af gear og servoer til dine linser

Før du køber dine servoer eller gear, skal du forstå nogle ting om servo. Servos har et begrænset antal bevægelser (typisk 180), så hvis du vil kunne styre linsen i hele zoom- og fokusområdet, skal du lave en lille beregning baseret på linsens ringbevægelse og linsens diameter gear, som servoen vil køre. Jeg synes, det er bedst at bare gå igennem den proces, jeg gik igennem, så du kan følge den samme tilgang til dit eget systems behov.

Min linse fokus og zoom ringe bevæger sig omkring 90 grader fra ende til ende, og med afstandsstykker og linse gear er den samlede diameter af gearet, der drives af servo, 4,25 inches. Jeg brugte en omkredsberegner fra denne hjemmeside (http://math.about.com/library/blcirclecalculator.htm) for at få en omkreds på 13,35 inches. Da 90 grader er 1/4 af 360, kan jeg beregne, at min servo skal give ca. 3,4 tommer rejse (13,35 / 4). Jeg brugte standard 180 graders servoer, så jeg ved, at omkredsen af ​​min servo-drivgear måtte være mindst 6,8 tommer (180 grader er halvdelen af ​​360, så mine servoer vil kun kunne tilvejebringe bevægelse, der er halvdelen af ​​den samlede omkreds af servostyret gear). Ved hjælp af omkredsregnemaskinen igen ved jeg, at jeg har brug for gear, der er mindst 2,2 tommer diameter. Jeg endte faktisk med et lidt mindre objektivudstyr, fordi jeg ikke behøver hele spektret af fokusbevægelse, og jeg ønskede at have en lidt finere kontrol af fokus, da det er mere kritisk end zoom for mig. Dette er en anden overvejelse at huske på - jo tættere du er til 1: 1 mellem gear og linsedrev, jo mindre opløsning har du. For eksempel i min opsætning et 1 graders servosteg = 1/2 grader linse trin, men hvis min drev gear diameter var lig med linset gear linsen ville flytte 1 grad for hver servo grad. Du har også brug for mere servomoment for et 1: 1-drev: linseforhold, som du gør for et 1: 2-drev: linseforhold.

Du skal også vide, at der er en anden variabel, som du kan introducere - servo rotation. Min servokontrolkode er skrevet til standard servoer, der roterer 180 grader, men jeg har bestilt et par digitale servoer, der roterer 360 grader, og det gør det muligt for min controller at håndtere linser, der kræver mere rejse. Du kan få servoer, der roterer op til 3 omdrejninger, hvilket skal være nok til at håndtere de fleste linser, samtidig med at du holder lavt drev til linser gearforhold. Selvfølgelig skal du lave nogle mindre ændringer i koden for at håndtere det øgede gradområde, men det skal være ret ligetil. Hvis du vil have fuld tur eller multi-turn servos, søg efter "winch servo" på eBay.

Trin 3: Forbered din Arduino (eller Clone)

Når du har din Arduino (eller tilsvarende), din Wiichuck-stik, dine servoer og ledninger og din Wii Classic-controller, er du klar til at begynde at sætte tingene sammen og at indlæse koden på din Arduino. Her er omridset: Træk Wiichuck-stikket og servoledningerne, så du kan begynde at teste alt sammen (det trin kræver noget lodning). Når du har ting tilsluttet, skal du oprette Arduino IDE på din computer, tilslut din Arduino, og begynde at indlæse de biblioteker og eksempler, du har brug for. Så begynder sjovet.

Tilslutning af WiiChuck-adapteren:

Denne del er ret let, hvis du ikke gør, hvad jeg gjorde, og mister den lille 4-polet hoved, der følger med det. Du lader bare hovedet på plads, så sæt det i Arduino som vist på billedet på FunGizmos hjemmeside. For at forbinde din Classic-controller skal du blot sørge for, at indrykket på controllerkontakten passer op med "nc" på Wiichuck-adapteren.

Tilslutning af servoer:

Jeg købte oprindeligt et motorstyringskort, fordi jeg først forsøgte at bygge dette projekt med steppermotorer i stedet for servoer (fordi jeg troede de var roligere, hvilket viste sig at være ret forkert). Bestyrelsen har 2 hobby servo stik, så jeg behøvede ikke at gøre nogen lodning til at forbinde min servo. Men processen er at tilslutte dem ligefrem: Du forbinder bare strømkablerne fra begge servoer (sort er negativ, rød er positiv) til jord og VCC på dit bord. Du har flere steder, hvorfra du kan vælge. Tilslut derefter et af de signale (gule) ledninger fra en servo til pin 9 og den anden til pin 10. Disse er standard PWM-stifter, der leverer standardpulsbreddemodulationsudgange, der er nødvendige for at fortælle servo, hvor langt det skal dreje.

Når du er færdig med ledningerne, kan du forbinde alt sammen, forbinde din Arduino til din computer via USB-kablet og starte indlæsningskoden.

Trin 4: Program dit bord: Få biblioteker og min kode og start afspilning

Inden du læser koden, som jeg skrev til min linsecontroller, skal du få Arduino IDE'en til at blive oprettet på din computer og indlæse de biblioteker, du har brug for. Servo-kontrolbiblioteket er inkluderet i Arduino IDE, så du behøver ikke gøre noget for det. Men min kode bruger også et brugerbidrag Wii Classic Controller bibliotek, der er tilgængeligt på Arduino legepladsen.

Du kan følge trinene på siden for at føje dette til dit bibliotek eller bare downloade zip-filen, som jeg har vedhæftet, og pakke den ud i din Arduino-biblioteksmappe. Mine er i denne vej:

.. Documents Arduino Arduino-1.0 biblioteker

Jeg oprettede en mappe kaldet MiconoWiiClassic i mappen libararies, og gemte "WiiClassic.h" -filen i den mappe. Du kan bare pakke ud MiconoWiiClassic.zip filen, som jeg har medtaget her til din Arduino-1.9 libraries mappe.

OPDATERINGER:

1) Siden første bogføring af denne vejledende har jeg fundet ud af, hvordan man fordobler servos opløsning, hvilket gør dem glattere og mere præcise. Det gjorde jeg ved at tilpasse Servos biblioteket, der er installeret af Arduino. Du kan enten justere biblioteket selv, eller du kan downloade Servo.zip filen og hente Servo.cpp filen i din. Arduino arduino-1.0 libraries Servo-mappe og overskrive Servo.cpp-filen, der er der. Hvis du selv vil tilpasse filen, kan du bare åbne filen fra dit bibliotek i Notesblok og erstatte alle tilfælde af "180" med "360". Hvis du downloadede min skitse, før jeg lavede denne opdatering, skal du downloade FocusController_gp.zip og uddrage den i din skitsemappe. Det vil tilføje focus_zoom_controller_servo_final_2xresolution.ino til den pågældende mappe.

2) Når du har pakket ud de filer, skal du ændre en ting i filen WiiClassic.h for at gøre biblioteket til at virke som forventet med min kode. WiiClassic.h biblioteket indeholder en DEFINE_ON_HOLD-funktion, som skal være ukommenteret for at sikre, at Knappen presser rapporteres kun en gang. For at frigøre dette, skal du åbne.. arduino-1.0 libraries MiconoWiiClassic WiiClassic.h filen i Notesblok og ændre følgende linje:

// # definere REPORT_ON_HOLD

til

#define REPORT_ON_HOLD

Hvis du ikke gør dette, vil du bemærke, at D-pad-knappen presser bevæger servoerne, mens du holder knappen, mens den kun skal flytte servo et trin pr. Tryk. Denne fejl kan også forårsage mærkelig adfærd fra andre knapper.

3) Hvis du tilslutter WiiChuck-adapteren til Analog-stifter 2,3,4 og 5, skal du konfigurere 2 og 3 som jord og strøm ved at tilføje følgende til opsætningsafsnittet i din kode (takket være Phillip James for at fange denne ommision)

"pinMode (16, OUTPUT);" Sætter digital 16 pin (aka Analog 2) som jordnål

"digitalWrite (16, LOW);"

"pinMode (17, OUTPUT);" Sætter digital 17 pin (aka Analog 3) som + 5V pin

"digitalWrite (17, HIGH);"

Når du har biblioteket på plads, kan du også downloade min projektkode og pakke den ud til din vigtigste Arduino-mappe, og næste gang du starter Arduino IDE, vises mine projekter i din Sketchbook-mappe. Min Arduino-mappe er i min dokumentmappe, som denne:

.. Documents Arduino

Trin 5: Test ting ud: Wii Classic Controller

Når de elektroniske dele er tilsluttet og din kode er på plads, er det tid til at begynde at teste tingene ud og justere koden, hvis det er nødvendigt. Start med at læse WiiClassicTestValues ​​skitsen fra din Sketchbook (File> Sketchbook> WiiClassicTestValues). Før du lægger det på dit kort, skal du kompilere det for at sikre dig, at du har installeret biblioteket WiiClassic.h korrekt (du skal også kunne se det på din biblioteks liste (Sketch> Import Library). Hvis det kompileres korrekt, skal du indlæse det på dit bord.

Programmet output værdien af ​​hver af dine pinde på Wii Classic til Serial Monitor, så du skal åbne Serial Monitor (Værktøjer> Serial Monitor). Lad controlleren køre med stavene i ro for at se, hvad værdierne er i midterpositionerne, og skub så begge staver helt fremad i nogle sekunder, så hele vejen ned, så hele vejen tilbage, så hele vejen ret. Når du har gjort det, kan du slå Autoscrolling ud i monitorvinduet og kopiere resultaterne til Notesblok og gemme filen for yderligere gennemgang. Du er nu klar til at sikre, at controllerkoden er kalibreret til din Wii Classic Controller.

Trin 6: Indlæs Lens Controller Code og Juster til din Wii Controller

Nu kan du indlæse controllerkoden og sikre, at de forventede regulatorværdier matcher din Wii Classic Controller. Start med at indlæse min controller sketch fra File> Sketchbook> focus_zoom_controller_final.

Når den er indlæst, skal du rulle til linie 101 i koden for at se indstillingerne for styrestangsværdierne, som vist nedenfor:

// den rigtige stav har 1/2 opløsningen til venstre - disse værdier kan variere fra en

// controller til en anden, så du skal køre et testprogram for at skelne værdierne af

// hver stokposition

int yCenterRight = 15;

int yMinRight = 2;

int yMaxRight = 28;

int xCenterRight = 15;

int xMinRight = 3;

int xMaxRight = 28;

int centerOffsetRight = 3;

int endOffsetRight = 0;

int yCenterLeft = 32;

int yMinLeft = 6;

int yMaxLeft = 55;

int xCenterLeft = 31;

int xMinLeft = 6;

int xMaxLeft = 55;

int centerOffsetLeft = 6;

int endOffsetLeft = 0;

Tjek disse værdier mod udlæsningen fra din controller og ændre eventuelle værdier efter behov. Sørg for at gemme dine ændringer.

Trin 7:

Det er på tide at teste koden med dine servoer. I min kode har jeg Zoom servoen fastgjort til pin 9 af Arduino og Focus servoen fastgjort til pin 10. Du kan nemt ændre det i koden ved at ændre tallene her:

void setup () {

Serial.begin (9600); // oprette seriel bibliotek ved 9600 bps

// Vedhæft servo og sæt dem til startpositioner for at montere servoerne på linsen

zoomServo.attach (9);

focusServo.attach (10);

Når det er gjort, og dine servoer er tilsluttet, skal du sætte dit bord i USB-porten på din computer og downloade koden til dit kort. Når det er færdigt at downloade og starte, vil Zoom servo bevæge sig til 180 grader, og Focus servoen flytter til 0. Du kan nu begynde at spille med stifterne og knapperne for at se, hvad der sker, og kan forsøge at programmere de forskellige servostillinger og fokus forhold. Nogle af knapperne har standardværdier, men du kan programmere en hvilken som helst knap ved at trykke på HOME, så vil knappen og programmet huske indstillingen, indtil kortet er nulstillet eller slukket.

Når du er tilfreds med, at controlleren fungerer korrekt for at flytte servoerne, kan du tage fat på kameraet og objektivet og vurdere, om servostyringen for stangbevægelserne er korrekt. Skubning af den rigtige pind fremad skal dreje servo i den rigtige retning for at zoome linsen, og trække den tilbage skal gøre det modsatte. Samtidig skal det bevæge fokuset i den retning, der er nødvendigt for at holde kameraet i fokus, når zoomen flyttes. Jeg har min opsætning, så når jeg zoomer ind (skub den højre pind fremad), skal jeg flytte fokuspinden til højre for at rette fokuset, og når jeg zoomer ud (træk den rigtige tilbage), skal jeg Flyt fokuspinden til venstre for at rette fokuset. Dette syntes som det mest intuitive arrangement.

Ved at indstille servos ved siden af ​​dit kamera og objektiv på den måde, du planlægger at montere dem på kamerariggen, kan du se, om de bevæger sig i den rigtige retning, hvorledes linsen bevæger sig. Hvis de ikke gør det, er der instruktioner i koden om, hvordan man ændrer retningen af ​​servobevægelsen i forhold til hver pindbevægelse. Jeg har fremtidige planer om at hakke Servo-biblioteket for at gøre det nemmere, men det er ikke lige så nemt som at skifte en switch, men det er heller ikke alt for kompliceret.

Trin 8: Sæt det sammen for en rigtig test

Her er hvor det virkelig bliver sjovt. Når du er tilfreds med at du har servoerne i den rigtige retning for dit kamera, er der virkelig ingen grund til ikke at montere alt og se, hvordan det fungerer med dit kamera og objektiv. Du kan skabe kabinetter og tilføre kontakter, strømforsyninger og smukke lys, når alting virker til din tilfredshed, men der er virkelig ingen mening i det, før du kan se, om dit setup kan køre din linse, som du vil. Jeg gjorde dette med flere iterationer af mit projekt, herunder en stepper-baseret version, der var en komplet katastrofe og fik mig til at skifte kursus og skifte til servos. Ideen er at fejle hurtigt, før du har begået for meget arbejde på et endeligt produkt, der stadig skal tilpasses.

Start med at montere servodrevene og linserne. Dette er helt ret ligetil, men hvis du opdager at dit linsegear glider overhovedet (som mit gjorde), kan det være med til at vide, at du kan øge grebet om noget med gummiunderlaget, der let skrælles af bagsiden af ​​en billig, tynd mousepad. De samme ting kan også bruges til at døde støj fra servoerne. På samme måde kan det også være med til at reducere servostøjen ved at tilføje noget plastikfedt til servo gearkassen.Jeg brugte fiskespolefedt, der er udpeget som plastik sikkert, og det roede virkelig min zoom servo.

Hvis du ikke har et jernbanesystem, skal du mode en ved enten at følge hvad jeg gjorde (jeg lader billedet lede dig) eller finde et endnu bedre design på nettet. Min rig blev samlet hurtigt til test, og jeg planlægger at erstatte det brostensbelagte-sammen design med noget mere attraktivt, stift og let at justere. Mine skinner er 1/2 diameter carbon ski poler, jeg snagged fra Goodwill til $ 4 (Goode mærke er ikke koniske, så de fungerede godt for dette). Skinneholderen er lavet af et 1/2 "tykt hårdt plastskærebræt, som jeg såede i en 2-1 / 2 inch bred ved 6" lang stribe. For at skabe skinnehullerne ruter jeg to 1/4 "dyb med 1/2" diameter riller med en kerneboks bit monteret i et router bord og styret af et lille hegn. Jeg ønsker nu, at jeg havde gjort hele denne ting bredere, men jeg ville holde den smal, så jeg kunne stadig komme til min batteridør uden at afmontere kameraet fra skinnerne. Jeg skar så stykket i 2 langs, monteret en spacer blok af baltisk birk krydsfiner i den ene ende med nogle træskruer, og så boret et par 1,4 "huller i det for at fastgøre det til kameraet og Manfrotto quick release plade.

Når du har en jernbane rig, kan du mode nogle servo montering blokke for at passe dine skinner. Jeg lavede også min fra noget hårdt plast skærebrætskrot, som jeg kørte på min routerbord. Jeg skruede den ene ende sammen med nogle små gipsskruer og borede en 1,4 "hel på den anden side af skinnehullet for at holde en kuglebolt. En lille knap tillader mig at stramme møbelblokken for en smuk pasform på skinnerne. Når jeg var sikker på, at alt passer OK, borede jeg små pilothuller, så de passer til servomonteringsskruerne, der fulgte med min servo, og fastgør servoerne på plads. Bemærk at med dette arrangement er servoen kun fastgjort ved forkanten, så pas på hvor du udøver tryk, når du monterer servo og blokmontering på skinnerne.

Trin 9: Giv det et testkørsel

Med kameraet på plads (og monteret på et robust stativ) og servoerne monteret på skinnerne, er det tid til at koble alt sammen til en prøvekørsel. Maskinen må ikke tændes med gearene. I stedet skal du først svinge dem væk fra objektivet, så servoerne kan rotere uden at flytte linsen. Du kan derefter tænde din bord. Hvis du ikke gør dette, kan du opleve, at din servo forsøger at dreje objektivet ud over sine grænser, og det er ikke godt.

Program din controller til din linse (disse instruktioner findes også i Arduino-koden)

Når dit bord starter op og servoerne er stoppet med at bevæge sig, skal du flytte linsen zoomringen til den maksimale indstilling, der svarer til servostilling. Når min controller starter, flytter min zoom servo til den bredeste zoom position, så det er her jeg flytter linsen, inden jeg går i gang med zoom servo. Efter at jeg har flyttet linsen, svinger jeg servoen på plads, så drivgearet går bare ind i linsedrevet (hvis der lægges for meget pres på linsen, kan du få det til at holde fast, og du får ikke så glat bevægelse). Jeg programmerer så dette som den bredeste zoomindstilling ved at trykke på "Home" og derefter "Left Shoulder" på Wii Classic Controller. Jeg bruger derefter den rigtige pind til at zoome ind, indtil kameraet rammer sin zoomgrænse, og brug puden til at tage en grad eller to tilbage. Jeg programmerer så denne maksimale zoomposition ved at trykke på "Home" og derefter "Right Shoulder" for at programmere zoomens maksimale zoomindstilling.

Jeg gentager en lignende procedure for fokus servo, men programmer de rigtige mest og venstre mest fokuserede servo indstillinger ved hjælp af "Højre Z" og "Venstre Z" knapper.

Når disse grænser er indstillet, er det tid til at tænde kameraet, vælge et emne og indstille fokuset for de bredeste og nærmeste zoomindstillinger. Det er ligegyldigt hvor du starter, men jeg går normalt max zoom (tryk bare på højre skulderknapp for automatisk at gå der). Jeg bruger derefter venstre pind og venstre højre D-Pad for at få fokuset, og tryk derefter på "Home" og "+" for at indstille fokus for Max Zoom. Dernæst zoom din lins hele vejen ud til den bredeste zoom og igen, brug venstre pind og D-Pad til at ringe ind i focuen på dit emne. Når det er godt, tryk på "Hjem" og "-" for at indstille fokuset i Minzo-zoom (bredeste zoom). Hver gang du programmerer enten knappene "-" eller "+", beregner koden det korrekte forhold for at flytte fokuset, mens du zoomer for at holde motivet i fokus, mens du zoomer. Du kan til enhver tid justere fokuset ved at bruge venstre pind eller D-Pad, og indtil du programmerer "+" eller "-" -tasten igen, bevæger fokuset altid synkronisering med zoombevægelsen, når du bruger den rigtige Hold dig til at zoome linsen. Det er her den magiske af min "kontraption" (som min kone kalder det) er.

Du kan også programmere knapperne 4 (x, y, a, b) med dedikerede zoom- / fokuspositioner. Bare flyt zoom og fokus til den ønskede position, tryk derefter på "Home", og derefter den ene af knapperne for at programmere den for den position. Hvis du kun bevæger fokus-servo, mens du programmerer hver af disse knapper, kan du gøre din controller til at fungere som et følgfokus med 4 forudindstillede fokuspositioner, som ikke flytter zoomlinsen overhovedet.

Her er en video, der demonstrerer denne proces med controlleren monteret på mit GH2 kamera:

Trin 10: Pak det op

Når du er færdig med at spille og teak og tilfredsstille, at din egen version af min controller vil fungere for dig, er det tid til at gøre det hele permanent, smukt og nemt at montere og afmontere. Jeg lader dig regne ud den del ud på egen hånd (men forhåbentlig deler du dine resultater med mig). Jeg har en række tweaks at gøre på min controller, inden jeg afslutter det, så jeg troede, jeg ville dele mine planer her for at få dig til at tænke på samme linjer.

Kabinet og Bedre Servo Mounts

Jeg har bare ikke foudn det rigtige kabinet endnu, så jeg vil byde på sugestions her. Jeg vil nok købe en mindre Arduino som en mini, så jeg kan holde tingene små, og det vil åbne mine muligheder. Jeg vil også rippace plast servo mounts med maskinbearbejdet aluminium mounts nu, hvor jeg ved, hvor godt denne ting virker. Jeg skal også opgradere servos selv.

Strømforsyning

Lige nu kører min controller fra USB-strøm ved at tilslutte min USB-kabel til en iPod-oplader. Men jeg har et ekstra eksternt 9 volt dvd-batteri, der kan oplades, mens det leverer strøm til af controlleren, og jeg kan godt lide ideen om at have batteri kun mulighed, så når jeg har fundet et passende kabinet, jeg skal tilslutte den rigtige stik til de eksterne stifter på mit bord.

LED indikatorer

Det Det ville være dejligt (og meget nemt at tilføje en indikator for "programtilstand", så jeg har nogle LED'er, der vil belyse, når controlleren er i Program eller Kør-tilstand.

Nem Servo Omvendt

Som jeg tidligere har sagt, er det lidt kedeligt at ændre servoens retning i forhold til stangbevægelserne, så jeg har begyndt at arbejde på at hackere Arduino servobiblioteket for at acceptere et servo retningsflag.

Hukommelse til objektivindstillinger

Det ville også være rart at ikke omprogrammere linsebegrænsningsindstillingerne hver gang kontrollen stammer fra, så jeg planlægger at tilføje SD-kortbaseret lagring til hver linseindstilling.

Trin 11: Feedback og opfølgning

Et andet medlem. Steve Dray, har gjort et godt stykke arbejde med at bygge et par af hans egne versioner af denne rig, og har generøst delt sine ledningsdiagrammer og billeder. Jeg håber det inspirerer og hjælper andre med at forsøge at bygge dette projekt, især da jeg har haft begrænset tid til at besvare spørgsmål. Steve havde nogle problemer, som han diagnosticerede som en dårlig strømforsyning, så han byggede sin egen regulerede forsyning og inkluderede også skematisk for det. Jeg har formået at komme forbi med min lille cube ipod oplader.

Tak Steve!