Quadrotor (23 / 24 étapes)

Etape 23 : Code

Notre code a été écrit sous une forme modifiée de C++ qui est décrite sur le site d’Arduino.

Notre code représente un système de contrôle appelé PID (proportionnel intégral dérivé). Actuellement, il emploie seulement utilisation des composantes proportionnelles et dérivés. Avec notre code actuel, le quadrotor se stabilise assez bien dans l’air, mais il est un peu instable pendant le décollage. Toutefois, cette instabilité peut être atténuée en enlevant rapidement.

Pour trouver les montants actuels de l’inclinaison sur l’axe X et Y de données d’accéléromètre et gyroscope, nous avons utilisé un algorithme qui aurait les données provenant des précédentes en moyenne et combinez-le avec données de gyroscope pour atteindre une mesure d’angle qui était assez résistante à une accélération linéaire.

Nous faisons seulement 2 Pulsin commandes par boucle (au lieu de 4) afin de réduire le temps de la boucle à moitié, ce qui rend le système de contrôle de quadrotor beaucoup plus réceptif.

position neutre accéléromètre/gyroscope
#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

Vitesse du moteur vars
vitesses int [4] ;

entrées de gyro - actuelles incliner vars
flotter pitch, roulis, lacet ;
int pitchzero, rollzero ;
entrées d’accéléromètre - actuelle accélération vars
flotteur xin, yin, zin ;

entrées humaines - contrôle d’informations vars
float pitchin, rollin, youness, zhuman ;

aléatoire autres vars
flotteur Xmoyen = 0, yaverage = 0 ;
int y = 0 ;
int bla ;

constantes de proportionnalité
flotteur p = 2,5 ; Constante de proportionnalité P
flotteur d = 0,5 ; Constante de proportionnalité D

void setup() {}
Zhuman = 0 ;
Rollin = 0 ;
Serial.Begin(9600) ;
pour (int x = 6; x < 10; x ++) {}
pinMode (x, sortie) ;
}

Envoyer la limite supérieure pour les entrées humaines sur les contrôleurs de vitesse du moteur
pour (int x = 6; x < 10; x ++) {}
pulsout(x,2000) ;
}
Delay(5000) ;

obtenir des zéros pour pitch et rouler entrées humaines
pour (int x = 0; x < 10; x ++) {}
y=y+analogRead(3) ;
}
pitchzero = y/10 ;
y = 0 ;
pour (int x = 0; x < 10; x ++) {}
y=y+analogRead(4) ;
}
rollzero = y/10 ;
}

void loop () {}
accéléromètre et gyroscope entrées varient de-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 ;

obtention des intrants humains par le biais de radio ici plage de -30 à 30 à l’exception de zhuman qui a une plage idéale de 1000-2000, seulement 2 impulsions par boucle
{if(blah==0)}
youness = 0,06 * (pulseIn(2,HIGH)-1500) (int signé) ;
Pitchin = 0,06 * (pulseIn(3,HIGH)-1500) (int signé) ;
bla = 1 ;
}
else {}
Zhuman =(signed int) pulseIn(4,HIGH) ;
Rollin = 0,06 * (pulseIn(5,HIGH)-1400) (int signé) ; 1400 au lieu de 1500 vise à remédier à la faible puissance moteur #4 en taillant il dans le code
bla = 0 ;
}

en moyenne, etc..
Xmoyen = SEN_CON * (Xmoyen + TIME_CON * hauteur) + (1 - SEN_CON) * xin ;
yaverage = SEN_CON * (yaverage + TIME_CON * rouleau) + (1 - SEN_CON) * yin ;

calculer les vitesses du moteur
if(Zhuman<1150) {}
pour (int x = 0; x < 4; x ++) {}
vitesses [x] = zhuman ;
}
}
else {}
Si {(zhuman > 1450)
Zhuman = 1450 ;
}
vitesses [0] = zhuman - p * (Xmoyen - pitchin) - p*(yawin) - d * pitch ;
vitesses [1] = zhuman - p * (pitchin - Xmoyen) - p*(yawin) + d * pitch ;
vitesses [2] = zhuman p * (yaverage - rollin) - + p*(yawin) - d * rouleau ;
vitesse [3] = zhuman - p * (rollin - yaverage) + p*(yawin) + d * rouleau ;
}
définir les limites supérieures et inférieures pour les vitesses du moteur (1000 ne = aucune vitesse, 1600 = limite supérieure de la vitesse, 2000 = vitesse maximale possible)
pour (int x = 0; x < 4; x ++) {}
limite de vitesse entre 1000 et 1600
Si (vitesses [x] < 1000) {}
vitesses [x] = 1000 ;
}
Si (vitesses [x] > 1600) {}
vitesses [x] = 1600 ;
}
}

pulsouts aux contrôleurs de vitesse du moteur
pour (int x = 0; x < 4; x ++) {}
pulsout(x+6,speeds[x]) ;
}
}
void pulsout (int pin, int durée) {}
digitalWrite (tige, haute) ;
delayMicroseconds(duration) ;
digitalWrite (broches, faible) ;
}

Articles Liés

Hélicoptère RC de Quadrotor

Hélicoptère RC de Quadrotor

ce projet est un hélicoptère RC quadrotor (quadrocopter, quadcopter, quadricopter, etc.). C'est un hélicoptère RC qui utilise 4 hérissons.Regarder en 720pVous avez besoin de quelques Prérequis :Comment utiliser Arduino, assez pour commencerLe brasage
PCB Quadrotor (Brushless)

PCB Quadrotor (Brushless)

Quadrotors sont le nouveau Segway : une plate-forme envoûtante, un peu magique, stabilisateur automatique que chaque personne tech veut avoir. Vous ne pouvez pas monter un quadrotor (Eh bien, peut-être que vous pouvez), mais ils ne volent pas, et vou
Quadcop Green / Black Shield---QUADROTOR

Quadcop Green / Black Shield---QUADROTOR

http://arduinoquadrotor.blogspot.in/Cette Quadcop Green Shield vous permet de connecter facilement votre 6DDL Sparkfun (y compris le fidèle ITG3200 gyro et ADXL345 accel) à un Arduino Pro Mini pour créer une certaine unité de mesure inertielle de la
Un gros-porteur Quadrotor - conceptions et idées pour construire votre propre.

Un gros-porteur Quadrotor - conceptions et idées pour construire votre propre.

Multirotors--ils sont cool!Un quadrotor est un type d'aéronef multirotor. Ces avions sont plus faciles que jamais à construire. Vous pouvez commencer avec cette machine et augmenter ses capacités (et la complexité) comme vous en apprendre davantage.
Quadrotor kit d’éclairage.

Quadrotor kit d’éclairage.

Il y a tout juste deux semaines, j'ai ramassé un nouveau jouet RC, la lame mQX quadchopper, et mon garçon je suis impressionné ! Il n'a pas été un jour depuis que je n'ai pas volé il et gagné grand sentiment d'accomplissement d'apprendre un nouveau t
Un autre bon marché Quadrotor - présenté par BayLab pour le programme de commandites de Instructables

Un autre bon marché Quadrotor - présenté par BayLab pour le programme de commandites de Instructables

comme fondamentalement tous ces jours-ci, je voulais construire un quadrotor. Voici comment j'ai construit mine pour assez bon marché.Étape 1: Conception mécanique j'ai construit mon quadrotor avec un ami. J'ai utilisé quelques équerre aluminium minc
SIMPLE QUADCOPTER (HUBSAN X4)

SIMPLE QUADCOPTER (HUBSAN X4)

Dans ce Instructable je vous ferai savoir la composante fondamentale d'une Quadcopter et comment le faire d'une manière très simple. La seule chose dont vous avez besoin est certaine habileté à souder et quelques outils de base. Je pense qu'il va don
Intro aux GPS avec des microcontrôleurs

Intro aux GPS avec des microcontrôleurs

Une fois que la compétence des opérations strictement militaires, GPS est devenu une partie intégrante de la vie moderne et en relativement peu de temps ! Qui ne voudrait pas envie de savoir quand et où ils sont n'importe où sur la planète ? C'est un
Chibikart : Prototypage rapide un Subminiature électrique Go-Kart à l’aide de Fabrication numérique et composants Hobby

Chibikart : Prototypage rapide un Subminiature électrique Go-Kart à l’aide de Fabrication numérique et composants Hobby

Chibikart! est un kart électrique 2WD très petit mais puissant et maniable que vous pouvez générer à l'aide de standard industriel et de composants de passe-temps et de pièces de châssis mécanosoudé numériquement. À l'aide de batteries ion-lithium mo
Le nouveau et amélioré Brushless Electric Scooter Power System Guide

Le nouveau et amélioré Brushless Electric Scooter Power System Guide

en 2008, j'ai mis en place un guide sur Instructables de moderniser le système d'alimentation de votre petit véhicule électrique personnel. C'était une introduction sur les bases d'un système de puissance du véhicule électrique et offre des ressource
Robuste construction Quadcopter

Robuste construction Quadcopter

il s'agit de mon premier instructables que j'ai décidé de le publier. J'étais obsédé par ces étonnantes machines volantes pendant un certain temps jusqu'à ce que j'ai fini par venir à travers certains fantastique How-to guides sur YouTube qui m'a fai
L’accumulation QuadCopter & contrôlée par Joypad-Microduino

L’accumulation QuadCopter & contrôlée par Joypad-Microduino

But : pour le contrôle quadcopter via Microduino Joypad.Difficulté : HighTime-consommation: 6 heuresCréateur : Microduino Studio-PKJQuadcopter, également appelé un hélicoptère quadrotor, ressemble à un hélicoptère qui peut voler ou être suspendu dans
250cc FPV Drone moins 350 $

250cc FPV Drone moins 350 $

Si vous voulez construire une première personne vue quad copter mais ne sais pas par où commencer ? Eh bien, puisque vous avez cliqué sur cette instructable je dirais get back sit un crayon et du papier sortir pour notes et préparez-vous à apprendre.
Construire un quadcopter HK X650F pour GoPro style vidéo et la photographie

Construire un quadcopter HK X650F pour GoPro style vidéo et la photographie

Ceci est ma première tentative un instructable, donc veuillez pardonner. En outre, l'anglais n'est pas ma langue maternelle, donc je vais essayer de le garder aussi simple que possible. Si vous trouvez des erreurs ou des informations incorrectes, veu