Stap 2: Monteren van Webcam, sluit de Arduino en het uploaden van de schets
Hierna sloeg webcam ik de naar de top van de tilt servo's montagebeugel. In mijn geval, ik had gewoon te verwijderen (schroef) de universele gehechtheid baseren vanaf de onderkant van de webcam en schroef het apparaat in een van de gaten in de bevestigingsbeugel. Afhankelijk van uw webcam, moet u wellicht moet worden gekoppeld via enig ander middel (u kunt altijd gebruiken plakband als al het andere faalt!).
Om te stabiliseren van de gehele vergadering, ik leg deze in de plastic mini vice en het vice op een plat oppervlak (dat wil zeggen de bovenkant van mijn bureau) monteren. Nogmaals, afhankelijk van uw onderdelen, moet u wellicht andere eisen. Zolang de webcam kunt pannen en kantelen zonder omvallen dat is alles dat telt.
Hiervandaan draad ik de servo's tot en met de Arduino zoals in de foto's en het circuit diagram (gemaakt met behulp van Fritzing). De tilt servo is aangesloten op de analoge pin 0, terwijl de pan servo is aangesloten op de analoge pin 5. De Arduino is aangesloten op de host-computer met behulp van de USB-kabel en aangedreven met behulp van de externe voeding via de ingebouwde vat jack adapter.
Tot slot, om te controleren de servo's, ik uploaden van de volgende schets van de Arduino microcontroller met behulp van de ontwikkelomgeving:
#include < Servo.h >
Servo pan, tilt;
VOID Setup {}
pan.attach (A5);
Tilt.attach (A0);
Serial.begin (9600); De seriële poort openen.
}
void loop {}
Als (Serial.available()) {}
byte b = Serial.read();
Kaart hoog 4 bits voor inkomende byte om te pannen van de rotatie in graden.
pan.write (kaart (b >> 4, 0, 0, 15 en 180));
vertraging (15);
Kaart lage 4 bits voor inkomende byte te kantelen van de rotatie in graden.
Tilt.write (kaart (b & 0x0F, 0, 0, 15 en 180));
vertraging (15);
}
}
De schets is erg basic. De seriële poort geopend en gelezen bytes één tegelijk. Elke byte wordt uitgegaan van een pan bevatten en kantelen van de rotatie paar; de 4 hoge bits zijn de pan rotatie (0 tot en met 15 inclusief) en de 4 lage bits zijn de tilt rotatie (0 tot en met 15 inclusief). Dit geeft 16 verschillende niveaus (dat wil zeggen 24) om uit te kiezen met betrekking tot elke dimensie van de beweging en maakt het gemakkelijk om het coderen van de webcam positie met behulp van hexadecimale tekenparen. Elke servo heeft een bereik van 0 tot 180 graden. Dus, bijvoorbeeld, een paar hexadecimaal teken van 7A betekent 7/15 x 180 (84 graden) op de as van de pan en de 10/15 x 180 (120 graden) op de as tilt. Een paar hexadecimaal teken 00 codeert een 0 graden rotatie op beide pan en tilt assen, terwijl FF codeert een volledige 180 graden rotatie op zowel pan en tilt assen. De toewijzing voor elk teken wordt hieronder weergegeven:
0 : 0 graden
1 : 12 graden
2 : 24 graden
3 : 36 graden
4 : 48 graden
5 : 60 graden
6 : 72 graden
7 : 84 graden
8 : 96 graden
9 : 108 graden
A : 120 graden
B : 132 graden
C : 144 graden
D : 156 graden
E : 168 graden
F : 180 graden
Als ik fijnkorrelige controle van de servo's beweging nodig, kon ik coderen van de pan en tilt rotaties als afzonderlijke bytes. In dit geval met behulp van één byte alleen is echter een efficiënte methode voor het coderen van het systeem van de coördineren voor het beheersen van de twee servo's en voldoende beweging bereik voorziet in een eenvoudige webcam.