Styra en kamera med en Arduino och RS232 sköld (5 / 6 steg)

Steg 5: programmering



Många kameror som drivs av RS232 signalering användning hexadecimala kommandon. Dessa kommandon skickas till kameran som en serie av hex byten. En ögonblicksbild av den handbok som listar några av kommandona som visas ovan.

En hex bytematris skapas för varje kommando som du vill använda. När kommandot är det viktigt att matcha baudhastighet för enheten och skicka varje byte i matrisen sekventiellt. Från manuellt ses det att överföringshastigheten är 9600 bps så det är vad var anges i koden. Det är också viktigt att specificera vilka portar du vill använda för TX och RX. Detta görs när du ställer in en SoftwareSerial.

Detta exempelkod nedan har kameran växlar mellan 2 fördefinierade positioner var femte sekund.

Seriell kommunikation
Den 29 oktober, 2015
Syfte: Styra kameraposition med RS232 kommunikation genom en DB9-kontakten
med en bifogad RS232 sköld.
Status: arbetar
#include < SoftwareSerial.h >
Använd inte 0 och 1 om du vill kunna ladda upp koden medan sköld är kopplad till Arduino
SoftwareSerial mySerial (2, 3); 2 är TX, 3 är RX
Kamera-kommandon
Standardmeddelandet 8 x 01 04 3F 02 0p FF där x är kamera nummer och p är förinställda numret
byte preset1 [7] = {0x81, 0x01, 0x04, 0x3F, 0x02, 0x01, 0xFF}; Förval i kameran 1
byte preset2 [7] = {0x81, 0x01, 0x04, 0x3F, 0x02, 0x02, 0xFF}; Förval i kameran 2
byte address_command [4] = {0x88, 0x30, 0x01, 0xFF}; Ställer in kameran adress (behövs för kedjekoppling)
byte if_clear [5] = {0x88, 0x01, 0x00, 0x01, 0xFF}; Kontrollerar om kommunikationslinje är klar
int fördröjningstid = 500. Tiden mellan kommandon
void setup()
{
Serial.BEGIN(9600); Seriell kommunikation med dator för felsökning
mySerial.begin(9600); Seriell kommunikation med kameran

Skicka adressen kommando
för (int jag = 0; jag < 4; i ++)
{
mySerial.write(address_command[i]);
Serial.println ("adress Byte skickas");
}
Delay(delayTime); dröjsmål att ge kameran tid för nästa kommando
Skicka IF_clear kommando
för (int jag = 0; jag < 5; i ++)
{
mySerial.write(if_clear[i]);
Serial.println ("om tydliga Byte skickats");
}
}
void loop()
{
för (int jag = 0; jag < (sizeof(preset1)); i ++) / / sizeof returnerar antalet byte, inte tal om int, float eller långa
{
mySerial.write(preset1[i]); sänder varje byte sekventiellt
Serial.println ("kameran placerar 1 Byte skickas");
}

Delay(5000); Väntar på 5 sekunder
för (int jag = 0; jag < (sizeof(preset2)); i ++) / / sizeof returnerar antalet byte, inte tal om int, float eller långa
{
mySerial.write(preset2[i]); sänder varje byte sekventiellt
Serial.println ("Set kameran placerar 2 Byte skickas");
}

Delay(5000);
}

Andra exempelkoden kan du styra riktningen där kameran panorerar genom att skicka kommandon via terminal-fönstret på din dator.

Seriell kommunikation
30 oktober 2015
Syfte: Styra kameraposition med hjälp av tangentbordet ingångar
Status: arbetar
#include < SoftwareSerial.h >
Använd inte 0 och 1 om du vill kunna ladda upp koden medan sköld är kopplad till Arduino
SoftwareSerial mySerial (2, 3); 2 är TX, 3 är RX
Kamera-kommandon
Standardmeddelandet 8 x 01 04 3F 02 0p FF där x är kamera nummer och p är förinställda numret
byte preset1 [7] = {0x81, 0x01, 0x04, 0x3F, 0x02, 0x01, 0xFF}; Förval i kameran 1
byte preset2 [7] = {0x81, 0x01, 0x04, 0x3F, 0x02, 0x02, 0xFF}; Förval i kameran 2
Kamerakontroller
byte panLeft [9] = {0x81, 0x01, 0x06, 0x01, 0x09, 0x09, 0x01, 0x03, 0xFF}; Panorera kameran kvar
byte panRight [9] = {0x81, 0x01, 0x06, 0x01, 0x09, 0x09, 0x02, 0x03, 0xFF}; Panorera kameran rätt
byte panUp [9] = {0x81, 0x01, 0x06, 0x01, 0x09, 0x09, 0x03, 0x01, 0xFF}; Panorera kameran upp
byte panDown [9] = {0x81, 0x01, 0x06, 0x01, 0x09, 0x09, 0x03, 0x02, 0xFF}; Kamera Pan ner
byte panStop [9] = {0x81, 0x01, 0x06, 0x01, 0x09, 0x09, 0x03, 0x03, 0xFF}; Kamera Pan ner
byte address_command [4] = {0x88, 0x30, 0x01, 0xFF}; Ställer in kameran adress (behövs för kedjekoppling)
byte if_clear [5] = {0x88, 0x01, 0x00, 0x01, 0xFF}; Kontrollerar om kommunikationslinje är klar
int fördröjningstid = 500. Tiden mellan kommandon
void setup()
{
Serial.BEGIN(9600); Seriell kommunikation med dator för felsökning
mySerial.begin(9600); Seriell kommunikation med kameran
Skicka adressen kommando
för (int jag = 0; jag < 4; i ++)
{
mySerial.write(address_command[i]);
}
Delay(delayTime); dröjsmål att ge kameran tid för nästa kommando
Skicka IF_clear kommando
för (int jag = 0; jag < 5; i ++)
{
mySerial.write(if_clear[i]);
}
Serial.Print in ("Skriv kommandon");
}
void loop()
{
Kontroller för seriell in från terminal
om (Serial.available() > 0)
{
char inChar = Serial.read(); Läs inkommande seriella data:

om (inChar == '1') / / kamera Preset 1
{
för (int jag = 0; jag < (sizeof(preset1)); i ++)
{
mySerial.write(preset1[i]); sänder varje byte sekventiellt
}
}
annars om (inChar == "2") / / kamera Preset 1
{
för (int jag = 0; jag < (sizeof(preset2)); i ++)
{
mySerial.write(preset2[i]);
}
}
annars om (inChar == "w") / / panorera kameran upp
{
för (int jag = 0; jag < (sizeof(panUp)); i ++)
{
mySerial.write(panUp[i]);
}
}
annars om (inChar == "a") / / Pan kamera vänster
{
för (int jag = 0; jag < (sizeof(panLeft)); i ++)
{
mySerial.write(panLeft[i]);
}
}
annars om (inChar == 's ") / / panorera kameran ner
{
för (int jag = 0; jag < (sizeof(panDown)); i ++)
{
mySerial.write(panDown[i]);
}
}
annars om (inChar == hade ") / / panorera kameran rätt
{
för (int jag = 0; jag < (sizeof(panRight)); i ++)
{
mySerial.write(panRight[i]);
}
}
annars om (inChar == "q") / / stoppa kameran Pan
{
för (int jag = 0; jag < (sizeof(panStop)); i ++)
{
mySerial.write(panStop[i]);
}
}

}
}

Se Steg
Relaterade Ämnen

Styra två lysdioder med en Arduino och bitVoicer

Så vad jag vill göra här är att göra flera saker med två lysdioder med taligenkänningJag använder bitvoicer kan du få det härSteg 1: Del förteckningSå jag gör detta med som lite delar som jag kan, är här listan:Grön LEDRöd LEDSkärbräda1k ResistorStar...

Styra EL Wire med en Arduino

i detta instructable jag visar dig hur man styr EL Wire med en Arduino.Vad du behöver:EL Wire och Inverter - jag rekommenderar http://ez-el.com/ez-el-wire/10ft-ez-el-wire-3v-inverter-kit/Arduino eller valfri micro controller som kan styra ett reläSPD...

Använda Arduino och RS232 sköld att gränssnittet integrerad UHF RFID reader LSID-0702

Lång rad UHF RFID-läsare (1-6 M) (ISO18000-6 C EPC G2) integrerarläsaren med antennen. När första driv på, buzz läsaren kommer en gång för att indikera att det börjar att arbeta. När det finns taggen närmar sig läsaren, kommer det buzz för att indike...

Hur man styr Servo motorer med en Arduino

Detta miniatyr projekt kommer att visa dig hur man styr en servomotor med en Arduino, men först måste du veta vad en servomotor faktiskt är!Servomotorer är speciella typer av motorer som inte snurra runt i en cirkel, men flytta till en viss plats och...

Hemgjord kamera med CCTV webbkamera och gammal kamera

Hemgjord kamera med CCTV webbkamera och gammal kamera mycket billigt och lättSteg 1: DIY elektronisk LCD-sökare DIY elektronisk LCD-sökare ta från gamla kamera (med färg LCD-sökaren) vara nogaSteg 2: Gör batteri för kamera Göra kraft för kamera med 3...

Kontrollera en RC servomotor med en Arduino och två momentan växlar

namnet säger allt. Kontrollera en RC bil servomotor med en Arduino och några motstånd, hoppare ledningar och två taktil switchar. Jag gjorde detta den andra dagen jag fick min Arduino, så jag är ganska stolt över mig själv.Steg 1: Reservdelslista Oke...

Styra lysrör med en laserpekare och en Arduino

några medlemmar av Alpha en Labs Hackerspace inte gillar den skarpt ljus ges ut av fluorescerande fixturer. De ville ha ett sätt att kunna enkelt kontrollera de individuella fixturer, kanske med en laserpekare?Jag fick rätt på den. Jag grävde ut en h...

Styra en motor med en tablett och en Arduino Uno

Kontrollera dina uppfinningar med Android tabletter! Denna ska tutorial går igenom en demo för att få en Android tablett att skicka seriella kommandon till en Arduino ombord och har styrelsen vända en motor på och av.Steg 1: Saker du behöverAndroid (...

Enkla timelapse kamera med Raspberry Pi och en kaffe tin

Whi ssh pi t utveckla BerryCam jag trodde det skulle vara ganska coolt att skapa en timelapse kamera som kunde stå ute under en tid, att fånga en sekvens av bilder som kan vara senare gått samman till ett videoklipp. Från början tankar vände sig till...

RC wifi bil Robot kamera använder Arduino och openWRT

En wifi bil baserad på Arduinogenom att stämma openWRTMål: DIY en trådlös bil baserad på Arduino. Genom att kontrollera bilen, vi kan se andra saker på fjärrplatsen, eller kan övervaka säkerheten.Effekt av bild:Princip:l borsta openWRT in trådlös rou...

D.D.Tap - interaktiva spel plattform med bearbetning, Arduino och Twitter

D.D.Tap är ett spel som kan spelas med hjälp av sensorer kopplade till Arduino och gränssnitt till spelet producerade med bearbetning. Det är en enkel dance dance revolution som spel som ackumuleras punkt när spelaren aktiverar sensorerna eller tryck...

Göra en bärbara streckkodsläsare med en arduino och en cuecat

runt om vänden av århundradet, det var ett företag vars affärsmodell ingår ger bort gratis streckkodsläsare som emulerar tangentbord. En relativt enkel mod till dessa cuecat skannrar bort krypteringen och gjorde dem lämpliga för skanning av streckkod...

Hur du styr din TV med en Arduino!

So. Detta Instructable visar dig hur man styr allt kontrollerbar av IR eller infrarött ljus.Detta inkluderar kameror, TV, DVD-spelare, videobandspelare, du fattar poängen.Jag kommer att visa dig hur man tar emot koderna och sedan hur man överföra dem...

Med en matrisskrivare LED med en Arduino och SKIFT registrera

The Siemens DLO7135 Dot matrix LED är en fantastisk optoelektronik. Det har faktureras som en 5 x 7 matrisskrivare Intelligent Display (r) med minne/dekoder/Driver. Tillsammans med detta minne, den har en 96-teckens ASCII-display set med övre och små...

Hur man styr en elektromagnet med en Arduino

elektromagneter är roliga att leka med, men att göra något mer än att bara plocka upp Gem, behöver du bättre kontroll. Detta är en enkel handledning om hur du använder en med Arduino, men byggnaden av detta (och med hjälp av några fler magneter), kan...

Motion Tracker med PIRs, Arduino och en Servo

detta är min motion tracking huvudet med fyra PIRs (passiva infraröda sensorer), en Arduino Uno styrelse och en servo.Det är ett enkelt sätt att ge intryck av att huvudet (birdy) faktiskt följer rörelsen.Det är mycket lätt att bygga men lite tidskräv...

Bygga en 120 film Visa kamera med rörelser och fokus ratten.

Att göra en kamera med en fokusering glas och full rörelser har några utmaningar men om du vet vad du ska leta efter och vilka delar måste vara den mest exakta kan du göra en fullt fungerande 120 kamera från grunden. Fina med 120 rullfilm är att det...

Väderstation med SAMIIO, Arduino och Raspberry Pi

Den här artikeln visas hur du använder SAMISKA med enkla, off-the-shelf sensorer och hårdvara. Specifikt, blir vi insamling klimatdata från en billig temperaturgivare och vidarebefordra dessa data till molnet via SAMI APIs. Därifrån kan vi analysera...

Hur man mäter temperaturen mycket noggrant med en Arduino och en TSYS01 temperatur Sensor styrelse.

Medan de studerar på universitetet var vi ifrågasätts som en del av en kurs arbete på att designa en låda med mycket exakt temperaturkontroll. Om projektet lyckas, skulle flera boxar byggas och används i ett forskningsprojekt som studerar effekten av...