Gyro Camera voor motorfiets (2 / 4 stap)

Stap 2: programmeren


Na hebben volledig gemonteerd, het is nu tijd voor het uploaden van het programma naar de Arduino.

Dit circuit is alleen om station servo in as-X alleen. Gegevens uit as Y en Z zijn echter nog steeds vereist voor de respectieve gyroscoop en de Accelerometer. Ik heb geprobeerd te combineren door Kalman Filter berekening te verminderen 'ruis'-uitgang van de gyroscoop + versnellingsmeter zodat servo beweging glad is en geen ongewenste beweging toe te passen.

CODE:

/*
GYRO CAMERA - saft7.com

Auto-herverdeling Camera Video demonstreert met behulp van Gyro & versnellingsmeter met Arduino

Het circuit:
Servo gecontroleerd door Arduino, met Gyro en versnellingsmeter als verwijzing verkeer.

Gemaakt van 12 maart 2013
door Firmansyah Saftari
www.saft7.com

Deze code en het volledige artikel kunnen worden gevonden op:

http://www.saft7.com/

Programming Language: C++

*/

#include < Servo.h >
Servo xservo;

#include < Wire.h >
#include "Kalman.h"
Kalman kalmanX;
Kalman kalmanY;

uint8_t IMUAddress = 0x68; MPU6050 adres

/ * IMU gegevens * /
int16_t accX;
int16_t accY;
int16_t accZ;
int16_t tempRaw;
int16_t gyroX;
int16_t gyroY;
int16_t gyroZ;

int moveX;
int mapX;
int correctionX;

dubbele accXangle;
dubbele accYangle;
dubbele gyroXangle = 9;
dubbele gyroYangle = 180;
dubbele compAngleX = 90;
dubbele compAngleY = 90;
dubbele kalAngleX;
dubbele kalAngleY;
uint32_t timer;

---VOID SETUP START---/
VOID Setup {}
Serial.begin(115200);
xservo.attach(10);


Wire.begin();
i2cWrite(0x6B,0x00);           Slaapstand uitschakelen
if(i2cRead(0x75,1) [0]! = 0x68) {/ / lezen "WHO_AM_I" register
Serial.Print (F ("MPU-6050 met adres 0 x"));
Serial.Print(IMUAddress,hex);
Serial.println (F ('is niet verbonden"));
while(1);
}
kalmanX.setAngle(90);  Set beginhoek
kalmanY.setAngle(90);
timer = micros();
}

---VOID SETUP EINDE---/

---VOID LOOP START---/
void loop {}
/ * Alle waarden bijwerken * /
uint8_t * gegevens = i2cRead(0x3B,14);
accX = ((gegevens [0] << 8) | data[1]);
accY = ((gegevens [2] << 8) | data[3]);
accZ = ((gegevens [4] << 8) | data[5]);
tempRaw = ((gegevens [6] << 8) | data[7]);
gyroX = ((gegevens [8] << 8) | data[9]);
gyroY = ((gegevens [10] << 8) | data[11]);
gyroZ = ((gegevens [12] << 8) | data[13]);

/ * Het berekenen van de angls op basis van de verschillende sensoren en algoritme * /

accYangle = (atan2(accX,accZ) + PI) * RAD_TO_DEG;
accXangle = (atan2(accY,accZ) + PI) * RAD_TO_DEG;
dubbele gyroXrate = (dubbele) gyroX/131.0;
dubbele gyroYrate =-((dubbele) gyroY/131.0);
gyroXangle += gyroXrate*((double)(micros()-timer)/1000000); Gyro hoek zonder een filter te berekenen

gyroXangle += kalmanX.getRate()*((double)(micros()-timer)/1000000); Gyro hoek met behulp van de onbevooroordeelde tarief berekenen
compAngleX = (0.93*(compAngleX+(gyroXrate*(double)(micros()-timer)/1000000)))+(0.07*accXangle); Bereken de hoek met behulp van een gratis filter

kalAngleX = kalmanX.getAngle (accXangle, gyroXrate, (double)(micros()-timer)/1000000); Bereken de hoek met een Kalman-filter
timer = micros();
mapX = kaart (kalAngleX, 0, 0, 200 179);     beperking van de servo mechanische berekenen


// /////////////////////////////

correctionX = 27;     DEZE WAARDE VOOR SERVO CORRECTIE HOEK BEWERKEN

// ////////////////////////////

moveX = 270 - (kalAngleX) + correctionX;

---VERZENDEN SERIËLE AFDRUKKEN START---/

Serial.Print ("saft7.com X-Pos:");
Serial.Print(moveX); Serial.Print("\t");
Serial.Print("\n");

---VERZENDEN SERIËLE PRINT EINDE---/

---VERZENDEN SERVO START---/

xservo.write(moveX);   Signaal afgeven aan de servo
delay(15);     vertragen zodat servo's te verplaatsen (ms)

---VERZENDEN SERVO EINDE---/

delay(1); De versnellingsmeter van bedraagt maximale monsters 1kHz
}
// ---------------------- VOID LOOP END -------------- /

--FUNCTIES START--
VOID i2cWrite (uint8_t registerAddress, uint8_t gegevens) {}
Wire.beginTransmission(IMUAddress);
Wire.write(registerAddress);
Wire.write(Data);
Wire.endTransmission();                       Stuur stop
}

uint8_t * i2cRead (uint8_t registerAddress, uint8_t nbytes) {}
uint8_t gegevens [nbytes];
Wire.beginTransmission(IMUAddress);
Wire.write(registerAddress);
Wire.endTransmission(false); De bus niet vrijgeven
Wire.requestFrom (IMUAddress, nbytes);   Stuur een herhaalde start en laat u vervolgens de bus na lezing
voor (uint8_t ik = 0; ik < nbytes; i ++)
gegevens [i] = Wire.read();
retourneren van gegevens;
}
--FUNCTIES EINDE--

GYROCAM DOOR SAFT7.COM / /

EINDE

Gerelateerde Artikelen

Maak Basic infrarode thermische Imaging Camera voor goedkoop! Elke Camera zetten in infrarode thermische Camera

Maak Basic infrarode thermische Imaging Camera voor goedkoop! Elke Camera zetten in infrarode thermische Camera

hoe om te zetten elke Camera in infrarode thermische Camera zeer goedkoop maar nuttig Hack. Elke Sensor van de Camera heeft de mogelijkheid om Zie infrarood d.w.z. thermische deel van het licht, maar de infrarood blokkeren Filter binnen Digitale Came
Maak een weergave-zicht van de Camera voor vogel fotografie

Maak een weergave-zicht van de Camera voor vogel fotografie

Wat is een weergave-gezicht en waarom zou u een voor uw camera willen?Ik bedacht de term "weergave-sight", dus geen wonder dat je nog nooit gehoord van een. Het is dat puntige ding bovenop mijn camera in de foto. Ik heb het omdat de camera ik on
Hacken van de Walgreens Forever camera voor in de buurt van gratis film

Hacken van de Walgreens Forever camera voor in de buurt van gratis film

de Walgreens forever camera is een wegwerp camera die u opnieuw wilt over en weer gebruiken.  Na het uitputten van de film die ze in de camera opnemen, je de camera terug en krijgt de film verwerkt.  Zij laden kostenloos een nieuw filmrolletje in de
Hacking A sleutelhanger Digitale Camera voor Arduino Control

Hacking A sleutelhanger Digitale Camera voor Arduino Control

fotografie opties voor de Arduino zijn weinigen en ver tussen. Webcams zijn niet praktisch voor toepassingen zoals kite fotografie of openbare fotografie, tenzij u het gevoel dat het kopen van een 200 voet USB-kabel. En de huidige technieken voor zel
DIY Super Macro Camera voor gratis

DIY Super Macro Camera voor gratis

Maak uw cameratelefoon in een super macro-camera voor een habbekrats! Super makkelijk te maken met basishulpmiddelen en dingen rond het huis.De telefoon gebruikt is Samsung Galaxy S2Dingen die je zal nodig:Een goed vergrootglas,2 schroeven en een vee
DIY Dash Camera voor onder $20

DIY Dash Camera voor onder $20

In dit instructable ik zal u tonen hoe om te zetten van een oude video staat smartphone en enkele willekeurige, gemakkelijk verworven odds en eindigt in een hoogwaardige, multifunctionele dash gemonteerde auto video recorder of Dash Cam. Dit is een g
DIY stereoscopische Camera voor Oculus Rift VR

DIY stereoscopische Camera voor Oculus Rift VR

Door Alexander Jaspers, strateeg bij Metalworks door MaxusDe volgende documentatie contouren een poging tot het creëren van een stereoscopische camera voor Oculus Rift doel van dit project is het creëren van een rudimentaire view-through voor Oculus.
ScopeMonkey - zet een iPhone in een Camera voor microscopen, telescopen, verrekijkers, enz

ScopeMonkey - zet een iPhone in een Camera voor microscopen, telescopen, verrekijkers, enz

ik gemaakt en maak deze in Atlanta, GA, Verenigde Staten.Scopemonkey verandert een iPhone 4 en 4s in een Camera voor microscopen, telescopen, verrekijkers en andere optische apparaten die een oculair hebben.Je kunt nemen van hoge resolutie foto's en
Hoe maak je een DIY $5 camera mount voor motorfiets Stuur

Hoe maak je een DIY $5 camera mount voor motorfiets Stuur

instructievideo over hoe een goedkope $5 do-it-yourself motorfiets stuurhouder voor video's en camera's te monteren. Stap voor stap montage-instructies in de video. Delen en hulpprogramma's die hieronder vermeld.Extra: platte kop schroevendraaier, bo
Goedkoop (lelijk?) Camera mount voor motorfiets

Goedkoop (lelijk?) Camera mount voor motorfiets

Na het proberen van een stuurhouder clip-on camera, ik zag het potentieel, maar was niet tevreden met de camera schudden "juddery" video.-besloten mij nood sommige demping - keek wat lag rond, en kwam met dit. Het werkt op een Suzuki GN250 en ka
DIY helm Cam voor goedkope

DIY helm Cam voor goedkope

eerst af, dit kan worden gevonden: http://iamkraze.com/helmet-cam-diyDus sinds ik een fiets wilde heb ik al een fan van 13mordeths video's op youtube. Hij eigenlijk vlogs tijdens het rijden op zijn motorfiets van om het even wat als eenvoudig als de
Hacken van de omx bestanden van OMAX Intelli-CAM™ voor de Waterjet OMAX

Hacken van de omx bestanden van OMAX Intelli-CAM™ voor de Waterjet OMAX

Dit is een zeer technisch instructable richt op diegenen die niet krijgen wat ze willen van OMAX Intelli-CAM™, de meegeleverde CAM software voor OMAX waterjets met A-jets (5-as heads). Gelukkig is Intelli-CAM™ alleen nodig bij het doen van 5-as bezui
Timer voor motorfiets/autolader batterij trickle

Timer voor motorfiets/autolader batterij trickle

Als u een auto of motorfiets tijdens de winter opslaat zorgt deze timer ervoor dat de accu opgeladen blijft. Het maakt gebruik van een ATtiny85 de lader inschakelen voor een half uur elke drie dagen. De Attiny85 is geprogrammeerd met behulp van de Ar
Camera voor time lapse beelden gemakkelijk gemaakt.

Camera voor time lapse beelden gemakkelijk gemaakt.

ik was een van de andere Instructables over het maken van time lapse films controleren. Hij vrij goed gedekt met het deel van de film. Hij vertelde over de gratis software dat u downloaden kan om de films maken. Ik zei tegen mezelf, ik denk dat ik za