Table des matières:

Interfaçage du capteur gyroscope à 3 axes BMG160 avec particule : 5 étapes
Interfaçage du capteur gyroscope à 3 axes BMG160 avec particule : 5 étapes

Vidéo: Interfaçage du capteur gyroscope à 3 axes BMG160 avec particule : 5 étapes

Vidéo: Interfaçage du capteur gyroscope à 3 axes BMG160 avec particule : 5 étapes
Vidéo: Учебное пособие по трехосному гироскопическому датчику Arduino Nano BMG160 2024, Novembre
Anonim
Image
Image

Dans le monde d'aujourd'hui, plus de la moitié des jeunes et des enfants sont friands de jeux et tous ceux qui en sont friands, fascinés par les aspects techniques du jeu, connaissent l'importance de la détection de mouvement dans ce domaine. Nous avons également été émerveillés par la même chose et juste pour l'amener sur les planches, nous avons pensé à travailler sur un capteur gyroscope qui peut mesurer le taux angulaire de n'importe quel objet. Ainsi, le capteur que nous avons utilisé pour faire face à la tâche est le BMG160. Le BMG160 est un capteur gyroscope numérique triaxial 16 bits qui peut mesurer la vitesse angulaire dans trois dimensions de pièce perpendiculaires.

Dans ce tutoriel, nous allons démontrer le fonctionnement du BMG160 avec Particle Photon.

Le matériel dont vous aurez besoin à cette fin est le suivant:

1. BMG160

2. Photon particulaire

3. Câble I2C

4. Bouclier I2C pour les photons de particules

Étape 1: Présentation du BMG160:

De quoi as-tu besoin..!!
De quoi as-tu besoin..!!

Tout d'abord, nous aimerions vous familiariser avec les fonctionnalités de base du module capteur qu'est le BMG160 et le protocole de communication sur lequel il fonctionne.

Le BMG160 est essentiellement un capteur gyroscope numérique triaxial 16 bits qui peut mesurer les taux angulaires. Il est capable de calculer des taux angulaires dans trois dimensions de pièce perpendiculaires, les axes x, y et z, et de fournir les signaux de sortie correspondants. Il peut communiquer avec la carte raspberry pi en utilisant le protocole de communication I2C. Ce module particulier est conçu pour répondre aux exigences des applications grand public ainsi qu'à des fins industrielles.

Le protocole de communication sur lequel fonctionne le capteur est I2C. I2C signifie le circuit inter-intégré. Il s'agit d'un protocole de communication dans lequel la communication s'effectue via des lignes SDA (données série) et SCL (horloge série). Il permet de connecter plusieurs appareils en même temps. C'est l'un des protocoles de communication les plus simples et les plus efficaces.

Étape 2: Ce dont vous avez besoin..

De quoi as-tu besoin..!!
De quoi as-tu besoin..!!
De quoi as-tu besoin..!!
De quoi as-tu besoin..!!
De quoi as-tu besoin..!!
De quoi as-tu besoin..!!

Les matériaux dont nous avons besoin pour atteindre notre objectif comprennent les composants matériels suivants:

1. BMG160

2. Photon de particule

3. Câble I2C

4. Bouclier I2C pour photon de particules

Étape 3: connexion matérielle:

Raccordement matériel
Raccordement matériel
Raccordement matériel
Raccordement matériel

La section de raccordement matériel explique essentiellement les connexions de câblage requises entre le capteur et la particule. Assurer des connexions correctes est la nécessité de base tout en travaillant sur n'importe quel système pour la sortie souhaitée. Ainsi, les connexions requises sont les suivantes:

Le BMG160 fonctionnera sur I2C. Voici l'exemple de schéma de câblage, montrant comment câbler chaque interface du capteur.

Prête à l'emploi, la carte est configurée pour une interface I2C, en tant que telle, nous vous recommandons d'utiliser cette connexion si vous êtes par ailleurs agnostique.

Tout ce dont vous avez besoin, c'est de quatre fils ! Seules quatre connexions sont nécessaires pour les broches Vcc, Gnd, SCL et SDA et celles-ci sont connectées à l'aide d'un câble I2C.

Ces connexions sont illustrées dans les images ci-dessus.

Étape 4: Code de particule de mesure de gyroscope à 3 axes:

Code de particule de mesure de gyroscope à 3 axes
Code de particule de mesure de gyroscope à 3 axes
Code de particule de mesure de gyroscope à 3 axes
Code de particule de mesure de gyroscope à 3 axes

Commençons maintenant par le code des particules.

Lors de l'utilisation du module de capteur avec l'arduino, nous incluons les bibliothèques application.h et spark_wiring_i2c.h. Les bibliothèques "application.h" et spark_wiring_i2c.h contiennent les fonctions qui facilitent la communication i2c entre le capteur et la particule.

Le code de particule complet est donné ci-dessous pour la commodité de l'utilisateur:

#comprendre

#comprendre

// L'adresse I2C du BMG160 est 0x68 (104)

#define Adr 0x68

entier xGyro = 0, yGyro = 0, zGyro = 0;

void setup()

{

// Définir la variable

Particule.variable("i2cdevice", "BMG160");

Particule.variable("xGyro", xGyro);

Particule.variable("yGyro", yGyro);

Particule.variable("zGyro", zGyro);

// Initialiser la communication I2C en tant que MASTER

Fil.begin();

// Initialiser la communication série

Serial.begin(9600);

// Démarrer la transmission I2C

Wire.beginTransmission(Adr);

// Sélection du registre de plage

Wire.write(0x0F);

// Configurer la pleine échelle 2000 dps

Wire.write(0x80);

// Arrêter la transmission I2C

Wire.endTransmission();

// Démarrer la transmission I2C

Wire.beginTransmission(Adr);

// Sélectionnez le registre de bande passante

Wire.write(0x10);

// Définir la bande passante = 200 Hz

Wire.write(0x04);

// Arrêter la transmission I2C

Wire.endTransmission();

retard (300);

}

boucle vide()

{

données int non signées[6];

// Démarrer la transmission I2C

Wire.beginTransmission(Adr);

// Sélection du registre de données

Wire.write(0x02);

// Arrêter la transmission I2C

Wire.endTransmission();

// Demande 6 octets de données

Wire.requestFrom(Adr, 6);

// Lecture de 6 octets de données

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb

if(Fil.disponible() == 6)

{

data[0] = Wire.read();

données[1] = Wire.read();

data[2] = Wire.read();

data[3] = Wire.read();

données[4] = Wire.read();

données[5] = Wire.read();

}

retard (300);

// Convertir les données

xGyro = ((données[1] * 256) + données[0]);

si (xGyro > 32767)

{

xGyro -= 65536;

}

yGyro = ((données[3] * 256) + données[2]);

si (yGyro > 32767)

{

yGyro -= 65536;

}

zGyro = ((données[5] * 256) + données[4]);

si (zGyro > 32767)

{

zGyro -= 65536;

}

// Sortie des données vers le tableau de bord

Particle.publish("Axe X de rotation:", String(xGyro));

Particle.publish("Axe Y de rotation:", String(yGyro));

Particle.publish("Axe Z de rotation:", String(zGyro));

retard(1000);

}

Étape 5: Candidatures:

Applications
Applications

BMG160 a un nombre varié d'applications dans des appareils tels que les téléphones portables, les dispositifs d'interface homme-machine. Ce module de capteur a été conçu pour répondre aux exigences des applications grand public telles que la stabilisation d'image (DSC et appareil photo-téléphone), les jeux et les dispositifs de pointage. Il est également utilisé dans les systèmes qui nécessitent une reconnaissance des gestes et les systèmes utilisés dans la navigation intérieure.

Conseillé: