Quadrotor (23 / 24 steg)

Steg 23: kod

Vår kod skrevs i en modifierad form av C++ som beskrivs på Arduino webbplats.

Vår kod representerar ett feedbacksystem kallas PID (proportionell integrerad derivat). Det sysselsätter för närvarande, endast användning av proportionell och derivat. Med vår nuvarande kod, quadrotor själv stabiliserar ganska bra i luften, men är lite instabil på starten. Denna instabilitet kan dock mildras genom att ta bort snabbt.

För att hitta de aktuella belopp av tilt på X- och Y-axeln från accelerometer och gyro data, använde vi en algoritm som skulle medeltal tidigare accelerometer data och kombinera den med gyro data att nå en vinkel mätning som var ganska motståndskraftig till linjär acceleration.

Vi bara göra 2 Pulsin kommandon per slinga (istället för 4) för att minska tid som loop i hälften, vilket gör systemet för kontroll av quadrotor mycket mer lyhörd.

neutral accelerometer/gyro positioner
#define X_ZERO 332
#define Y_ZERO 324
#define Z_ZERO 396
#define PITCH_ZERO 249
#define ROLL_ZERO 249
#define YAW_ZERO 248

#define GYRO_CON 1,47
#define ACCEL_CON 0,93

#define TIME_CON 0,02
#define SEN_CON 0,95

varvtal vars
int hastigheter [4].

gyro ingångar - nuvarande luta vars
flyta pitch, rulla, yaw;
int pitchzero, rollzero;
Accelerometer ingångar - nuvarande acceleration vars
float xin, yin, zin;

mänskliga ingångar - kontroll information vars
flyta pitchin rollin, yawin, zhuman;

slumpmässiga andra vars
flyta xaverage = 0, yaverage = 0;
int y = 0;
int bla;

proportionalitet konstanter
flyta p = 2.5. P proportionalitet konstant
flyta d = 0,5; D proportionalitet konstant

void setup() {
zhuman = 0;
Rollin = 0;
Serial.BEGIN(9600);
för (int x = 6; x < 10; x ++) {
pinMode (x, produktionen);
}

Skicka övre gräns för människans ingångar till de motoriska Hastighetsregulatorer
för (int x = 6; x < 10; x ++) {
pulsout(x,2000);
}
Delay(5000);

få nollor för pitch och rulla mänskliga ingångar
för (int x = 0; x < 10; x ++) {
y=y+analogRead(3);
}
pitchzero = y/10;
y = 0;
för (int x = 0; x < 10; x ++) {
y=y+analogRead(4);
}
rollzero = y/10;
}

Ogiltig loop () {
accelerometer och gyro ingångar varierade-232-232?
Xin = (analogRead (0)-X_ZERO) * ACCEL_CON;
Yin = (analogRead (1)-Y_ZERO) * ACCEL_CON;
Zin = (analogRead (2)-Z_ZERO) * ACCEL_CON;
pitch=(pitchzero-analogRead(3)) * GYRO_CON;
roll=(rollzero-analogRead(4)) * GYRO_CON;
Yaw = (analogRead (5)-YAW_ZERO) * GYRO_CON;

får mänskliga ingångar via radio här utbud av -30 till 30 utom zhuman som har ett perfekt urval av 1000-2000, endast 2 pulser per slinga
IF(blah==0) {
yawin = 0,06 * ((signerad int) pulseIn(2,HIGH)-1500);
Pitchin = 0,06 * ((signerad int) pulseIn(3,HIGH)-1500);
bla = 1;
}
annat {
zhuman =(signed int) pulseIn(4,HIGH);
Rollin = 0,06 * ((signerad int) pulseIn(5,HIGH)-1400); 1400 i stället för 1500 är att korrigera för underpowered motorn #4 genom att finjustera det i kod
bla = 0;
}

genomsnitt, etc.
xaverage = SEN_CON * (xaverage + TIME_CON * pitch) + (1 - SEN_CON) * xin;
yaverage = SEN_CON * (yaverage + TIME_CON * rulla) + (1 - SEN_CON) * yin;

beräkna den motoriska hastigheten
IF(zhuman<1150) {
för (int x = 0; x < 4; x ++) {
hastigheter [x] = zhuman;
}
}
annat {
om (zhuman > 1450) {
zhuman = 1450;
}
hastigheter [0] = zhuman - Persson (xaverage - pitchin) - p*(yawin) - d * Beck;
hastigheter [1] = zhuman - Persson (pitchin - xaverage) - p*(yawin) + d * Beck;
hastigheter [2] = zhuman - p * (yaverage - rollin) + p*(yawin) - d * rulla;
hastigheter [3] = zhuman - Persson (rollin - yaverage) + p*(yawin) + d * rulla;
}
ställa in övre och nedre gränserna för motor hastigheter (1000 = ingen hastighet, 1600 = övre hastighetsgräns, 2000 = högsta möjliga hastighet)
för (int x = 0; x < 4; x ++) {
hastighetsgränsen mellan 1000 och 1600
om (hastigheter [x] < 1000) {
hastigheter [x] = 1000;
}
om (hastigheter [x] > 1600) {
hastigheter [x] = 1600;
}
}

pulsouts till motor Hastighetsregulatorer
för (int x = 0; x < 4; x ++) {
pulsout(x+6,Speeds[x]);
}
}
void pulsout (int pin, int längd) {
digitalWrite (pin, hög);
delayMicroseconds(duration);
digitalWrite (pin, låg);
}

Se Steg
Relaterade Ämnen

En Wide Body Quadrotor - mönster och idéer för att bygga din egen.

Multirotors--hur coola de är!En quadrotor är en typ av multirotor flygplan. Dessa flygplan är enklare än någonsin att bygga. Du kan börja med denna maskin och öka dess kapacitet (och komplicerade) som du lära dig mer. Din erfarenhet, kunskap och resp...

PCB Quadrotor (borstlösa)

Quadrotors är den nya Segways: en fascinerande, något magiskt, själv stabiliserande plattform som varje tech person vill ha. Du kan inte rida en quadrotor (Tja, kanske du kan), men de flyger, och du kan bygga en själv från grunden!Jag hjälpte med en...

Quadcop Green / svart sköld---QUADROTOR

http://arduinoquadrotor.blogspot.in/Denna Quadcop grön sköld kan du enkelt ansluta din Sparkfun 6DOF (som inkluderar de trogna ITG3200 gyro och ADXL345 accel) till en Pro Mini Arduino att skapa en 6 grad av frihet tröghetsbaserad måttenhet (IMU). Den...

Quadrotor belysning kit.

Bara två veckor sedan jag plockade upp en ny RC leksak, Blade mQX quadchopper, och pojke är jag imponerad! Det har inte varit en dag sedan att jag inte har flugit det och fått bra känsla av prestation från att lära sig ett nytt flyg trick eller förbä...

RC Quadrotor helikopter

detta projekt är en RC quadrotor helikopter (quadrocopter, quadcopter, quadricopter, etc). Det är en RC helikopter som använder 4 rotorer.Titta på den i 720pDu behöver några förutsättning färdigheter:Hur du använder Arduino, nog att komma igångLödnin...

Ännu ett billigt Quadrotor - inskickad av BayLab för Instructables Sponsring programmet

som i princip alla dessa dagar, jag ville bygga en quadrotor. Här är hur jag byggde min för ganska billigt.Steg 1: Mekanisk konstruktion jag byggde min quadrotor med en vän. Jag använde några tunna aluminium vinkelparentes från Home Depot som struts....

Bygga Quadcopters, drönare och Uav: s-en förklaring och lätt bygga av en grundläggande Quad.

Så du är intresserad av Quadcopters, Quadrotors, UAV, drönare och vad de kallar dem.Men vilka är de består av, och varför? Kan jag bygga en eller är de för mer avancerade elektroniska typ individer.Väl aldrig rädsla. Jag presentera en grundläggande ö...

Chibikart: Snabb-prototyper en subminiatyr elektriska Go-Kart använder Digital fabrikation och Hobby komponenter

Chibikart! är en mycket liten ändå kraftfull och lättmanövrerad 2WD elektriska go-kart som du kan bygga med off-the-shelf industri och hobby komponenter och digitalt fabricerade ram delar. Med moderna litiumjonbatterier och borstlösa permanentmagnet...

Nya och förbättrade borstlös Electric Scooter Power System Guide

2008, jag satt ihop en guide på Instructables om uppgradering av kraftsystemet av dina små personliga elektriska fordon. Det var en primer på grunderna i en elbil kraftsystem och erbjuds resurser och tips för kompakt elektrisk skoter konvertering. Fr...

250 klass FPV Drone Under $350

Så du vill bygga en första person vy quad copter men vet inte var du ska börja? Tja eftersom du klickade på detta instructable jag sitta tillbaka få en penna och papper ut för anteckningar och få redo att lära dig. Detta kommer att bli en lång instru...

Lägga till Video Anlagen till din Quad-Rotor gratis

För några veckor sedan köpte jag långt väntade SK450 Turnigy Quad Rotor drivs av Multistar. Det var en solid köp och quad levde upp till mina förväntningar mestadels. Även om jag slutade spendera nästan $300 på det och mer på rekvisita jag bröt och K...

Bygga en HK X650F quadcopter för GoPro stil video och foto

Detta är mitt första försök till en instructable, så vänligen vara förlåtande. Också är engelska inte mitt modersmål, så jag ska försöka hålla det så enkelt som möjligt. Om du hittar några fel eller felaktig information, kommentera gärna, jag ska för...

För mycket QuadCopter & kontrolleras av Microduino-Joypad

Syfte: att kontroll quadcopter via Microduino Joypad.Svårighetsgrad: HighTime tidskrävande: sex timmarMaker: Microduino Studio-PKJQuadcopter, även kallad en quadrotor helikopter, liknar en helikopter, som kan flyga eller skjutas upp i luften. Som en...

ENKEL QUADCOPTER (HUBSAN X4)

I detta Instructable kommer jag låta dig veta den grundläggande byggstenen i en Quadcopter och hur man gör det på ett mycket enkelt sätt. Det enda du behöver är lite skicklighet på hσrd och några grundläggande verktyg. Jag tror att det kommer att ge...

Intro till GPS med Microcontrollers

När faller av strikt militära operationer, GPS har blivit en regelbunden del av modern livsstil och på relativt kort tid! Vem skulle inte vilja veta när och var de är någonstans på planeten? Det är en science fiction-dröm i verkligheten, en nu så väv...

Arduino Minecraft gränssnitt

Detta kom till mig många år sedan när jag hade först började spela det mycket populära spelet Minecraft. När jag spelar Minecraft jag får mer i har den tekniska sidan av byggnaden, miniräknare och uträkningen alltid varit mer lockande för mig. Dock h...

Vector 1-X prototyp UAV

detta är Vector 1 autonoma quadrotor UAV; Kontrolleras genom tröghetsbaserad flyg stabilisering och en Arduino ombord över ett mobilnätverk.Versioner:Vector 1-X: "Weaponised" idrottsliga en grundläggande inställning, 540TVL kamera, Arduino, GU34...

Vad är quad copter en lite om att göra en

Vad är en Quad copter?en obemannad helikopter med fyra rotorer. helt enkeltMultikoptrar är aerodynamiskt instabila och kräver absolut en färddator (aka flyg controller) för stabil flygning. Som ett resultat, de är "Fly by Wire" system och om dat...

Robust Quadcopter bygga

detta är min första instructables att jag beslöt att bokföra. Jag var besatt av dessa fantastiska flygande maskiner för ett bra tag tills jag slutade komma över några fantastiska instruktioner guider på YouTube som fick mig att inse bygga en Quad var...