Hélicoptère RC de Quadrotor (19 / 37 étapes)

Étape 14 : Arduino démo : lecture de capteur

Cette étape contient une esquisse de l’Arduino qui aura les lectures des deux capteurs (BMA180 accéléromètre et gyroscope ITG-3200).

Ces deux capteurs sont connectés à votre microcontrôleur à l’aide d’un bus I2C. Ce type de bus est conçu pour permettre plusieurs périphériques de communiquer ensemble à l’aide de seulement deux fils.

J’ai également joint les ondes d’analyseur logique des signaux I2C bus. (capture d’écran et de logique Saleae 1.1.8 fichier de session)

Pour plus d’informations :

Le logiciel de contrôleur de vol s’initialisera l’accéléromètre en réinitialisant première il, puis mise en place d’un filtre passe-bas de 10 Hz et en définissant la lecture vont à +/-2 g. lire sa fiche technique et voir mon code de démonstration pour plus de détails sur la façon de le faire. Il y a autres fonctionnalités telles que des interruptions, cliquez sur détection, etc., que nous n’utilisons pas.

Le logiciel de contrôleur de vol va initialiser le capteur gyroscopique en premier resetting, puis configurer son filtre passe-bas de 10 Hz et de dire à utiliser son propre oscillateur interne. Lire sa fiche et voir mon code de démonstration pour plus de détails sur la façon de le faire. Ce capteur permet d’utiliser un oscillateur externe et a également des sorties de digital de la température, mais nous n’utilisons pas ces fonctionnalités.

Voici le code :

#include < Wire.h >

void setup()
{
Serial.Begin(115200) ;
Wire.Begin() ;

Serial.println ("Demo a commencé, l’initialisation des capteurs") ;

AccelerometerInit() ;
GyroInit() ;

Serial.println ("capteurs ont été initialisés") ;
}

Sub AccelerometerInit()
{
Wire.beginTransmission(0x40) ; adresse de l’accéléromètre
réinitialiser l’accéléromètre
Wire.Send(0x10) ;
Wire.Send(0xB6) ;
Wire.endTransmission() ;
Delay(10) ;

Wire.beginTransmission(0x40) ; adresse de l’accéléromètre
filtre passe-bas, paramètres de plage
Wire.Send(0x0D) ;
Wire.Send(0x10) ;
Wire.endTransmission() ;

Wire.beginTransmission(0x40) ; adresse de l’accéléromètre
Wire.Send(0x20) ; lire ici
Wire.endTransmission() ;
Wire.requestFrom(0x40, 1) ;
données d’octets = Wire.receive() ;
Wire.beginTransmission(0x40) ; adresse de l’accéléromètre
Wire.Send(0x20) ;
Wire.Send (données & 0x0F) ; filtre passe-bas à 10 Hz
Wire.endTransmission() ;

Wire.beginTransmission(0x40) ; adresse de l’accéléromètre
Wire.Send(0x35) ; lire ici
Wire.endTransmission() ;
Wire.requestFrom(0x40, 1) ;
données = Wire.receive() ;
Wire.beginTransmission(0x40) ; adresse de l’accéléromètre
Wire.Send(0x35) ;
Wire.Send ((data & 0xF1) | 0 x 04) ; fourchette de +/-2g
Wire.endTransmission() ;
}

Sub AccelerometerRead()
{
Wire.beginTransmission(0x40) ; adresse de l’accéléromètre
Wire.Send(0x02) ; jeu de lu pointeur vers les données
Wire.endTransmission() ;
Wire.requestFrom(0x40, 6) ;

lire dans les données de 3 axes, chacun d'entre eux est de 16 bits
imprimer les données à la borne
Serial.Print (« accéléromètre: X = ") ;
court de données = Wire.receive() ;
données += Wire.receive() << 8 ;
Serial.Print(Data) ;
Serial.Print (", Y =") ;
données = Wire.receive() ;
données += Wire.receive() << 8 ;
Serial.Print(Data) ;
Serial.Print («, Z = ") ;
données = Wire.receive() ;
données += Wire.receive() << 8 ;
Serial.Print(Data) ;
Serial.println() ;
}

Sub GyroInit()
{
Wire.beginTransmission(0x69) ; adresse du gyroscope
réinitialiser le gyroscope
Wire.Send(0x3E) ;
Wire.Send(0x80) ;
Wire.endTransmission() ;

Wire.beginTransmission(0x69) ; adresse du gyroscope
filtre passe-bas 10 Hz
Wire.Send(0x16) ;
Wire.Send(0x1d) ;
Wire.endTransmission() ;

Wire.beginTransmission(0x69) ; adresse du gyroscope
utiliser l’oscillateur interne
Wire.Send(0x3E) ;
Wire.Send(0x01) ;
Wire.endTransmission() ;
}

Sub GyroRead()
{
Wire.beginTransmission(0x69) ; adresse du gyroscope
Wire.Send(0x1d) ; jeu de lu pointeur
Wire.endTransmission() ;

Wire.requestFrom(0x69, 6) ;

lu dans les 3 axes de données, 16 bits chacun, imprimer à la borne
court de données = Wire.receive() << 8 ;
données += Wire.receive() ;
Serial.Print (« Gyro: X = ") ;
Serial.Print(Data) ;
Serial.Print (", Y =") ;
données = Wire.receive() << 8 ;
données += Wire.receive() ;
Serial.Print(Data) ;
Serial.Print («, Z = ") ;
données = Wire.receive() << 8 ;
données += Wire.receive() ;
Serial.Print(Data) ;
Serial.println() ;
}

void loop()
{
AccelerometerRead() ;
GyroRead() ;

Delay(500) ; ralentir la sortie
}

Articles Liés

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
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
Arduino contrôlée hélicoptère

Arduino contrôlée hélicoptère

Cette instructable a été créée dans l'accomplissement de l'exigence de projet de la Makecourse à l'Université de Floride du Sud (www.makecourse.com). L'objectif de ce cours était pour nous enseigner la créativité, l'ingéniosité et l'application prati
Monture de caméra en hélicoptère

Monture de caméra en hélicoptère

Dans ce instructable je vais vous montrer comment faire monter pour une caméra aérienne ou de la vidéo tournée par une caméra. Ceci est conçu pour le point et les caméras filmer, donc vous devrez peut-être modifier pour GoProsÉtape 1: Étape 1: vous r
Ajouter Radio à un hélicoptère IR de Syma S107 (ou tout autre dispositif de IR)

Ajouter Radio à un hélicoptère IR de Syma S107 (ou tout autre dispositif de IR)

hélicoptères télécommandés et autres jouets ont devenu incroyablement avancées pour un prix très bas, il s'agit partiellement grâce au marché énorme appareil mobile, ce qui a poussé la technologie dans des batteries de petits élevés de l'énergie avan
Modification Knex hélicoptère avec la Jeep de l’armée

Modification Knex hélicoptère avec la Jeep de l’armée

j'ai commencé avec l'hélicoptère Chinook d'un livre d'instruction knex puis modifié pour ressembler à un vrai Chinnook. J'ai ajouté : une rampe, réservoirs, moteurs de fausses à l'extérieur, mitrailleuses et une gatling cannon. J'ai aussi enlevé le m
Orbite de Puzzlebox : En utilisant un Arduino pour contrôler un hélicoptère infrarouge

Orbite de Puzzlebox : En utilisant un Arduino pour contrôler un hélicoptère infrarouge

dans ce Instructable nous vous expliquerons comment les signaux infrarouges sont utilisés par une télécommande pour contrôler un jouet ou un périphérique, puis montrer comment un circuit simple peut être ajouté à un Arduino pour faire fonctionner l'a
Comment faire voler un hélicoptère Quad

Comment faire voler un hélicoptère Quad

avez-vous besoin d'un nouveau passe-temps ?  Vous voulez voler ?  Il y a plusieurs instructions sur la façon de faire un quadruple-copter, mais qu'en est-il si vous voulez piloter aussi bien ?  Je vais vous montrer toutes les nécessités pour pouvoir
Bell Jetranger échelle corps pour Silverlit PicooZ Micro-RC-hélicoptère

Bell Jetranger échelle corps pour Silverlit PicooZ Micro-RC-hélicoptère

convertir votre recherche arborer PicooZ en une échelle Bell 206 Jetranger ou presque n'importe quel autres hélicoptères monorotors.Je me suis acheté un heli 3 canaux alors que celui-ci était prêt à expérimenter. Si vous souhaitez créer une coque uni
Hélicoptère de modélisation 3d et impression

Hélicoptère de modélisation 3d et impression

Hélicoptères ont toujours été un intérêt de la mine. J'ai regardé autour sur l'internet pour des modèles 3d à imprimer, et en raison du manque de contenu, j'ai décidé que je ferais un modèle moi-même. J'ai décidé d'utiliser tinkercad comme le logicie
Attaque d’hélicoptère Kite - Rooivalk

Attaque d’hélicoptère Kite - Rooivalk

j'ai décidé de faire un autre autogire/cerf-volant instructable mais mieux que mes précédents. Celui-ci prend plus de temps pour faire que mes autres gyroscopes mais vaut bien le temps supplémentaire et il semble beaucoup mieux aussi.Je vis en Afriqu
Télécommande 2 canaux sans IC [bon pour hélicoptères!]

Télécommande 2 canaux sans IC [bon pour hélicoptères!]

Ce Instructable vous montrera comment faire une commande à distance 2 canaux que vous pouvez utiliser pour vos hélicoptères de télécommande !Pour une télécommande de multi canal, vous pouvez utiliser un CD4017 dans l'émetteur et les circuits du récep
Un hélicoptère RC pas cher

Un hélicoptère RC pas cher

vol RC hélicoptère est vraiment très exaltant. Leur polyvalence donne un pilote RC un accès complet à l'espace tridimensionnel de telle manière qu'aucune autre machine ne peut ! J'ai joué hélicoptère RC depuis plus d'un an mais encore trouver que je