Table des matières:

Servocompas extrêmement basique et non calibré : 7 étapes
Servocompas extrêmement basique et non calibré : 7 étapes

Vidéo: Servocompas extrêmement basique et non calibré : 7 étapes

Vidéo: Servocompas extrêmement basique et non calibré : 7 étapes
Vidéo: Tuto : CONFIGURER BETAFLIGHT 4.3, 4.4, 4.5... de A à Z ! 2024, Novembre
Anonim
Servocompas extrêmement basique et non calibré
Servocompas extrêmement basique et non calibré

C'est juste une base instructable pour un projet sur lequel je travaille. Ce n'est pas calibré et c'est un prototype très basique fait pour la classe. Dans un instructable plus tard, je vais montrer comment le calibrer.

Je ne m'attendrais pas à beaucoup de grandeur de cela si j'étais vous, il s'agit plutôt de documenter le processus.

Fournitures

  • Micro servo (j'ai utilisé le micro servo HXT900 de Hobby King)
  • Arduino (j'ai utilisé Uno)
  • LSM303DLHC est le capteur
  • Câbles, soudure, etc.
  • Planche à pain

Étape 1: Assemblez le tout

Tout assembler
Tout assembler
Tout assembler
Tout assembler

Assurez-vous que vos en-têtes sont correctement soudés sur votre capteur et que vous avez vos fils et votre maquette.

Étape 2: Bibliothèques de codes

Bibliothèques de codes
Bibliothèques de codes
Bibliothèques de codes
Bibliothèques de codes

Vous voudrez vous assurer de les avoir téléchargés.

Les autres bibliothèques que vous utiliserez, wire.h et servo.h, devraient déjà être installées par défaut.

Étape 3: Coder

Ouvrez la bibliothèque de croquis 'Compass' à partir de ce que vous venez de télécharger. Pour utiliser le servo, vous voulez mettre le code servo dans ce code. Je l'ai combiné avec le code de Hanie Kiana d'ici. L'original est de Hanie Kiani, pas de moi. Ça devrait ressembler à ça.

#comprendre

#include #include #include #include Adafruit_LSM303DLH_Mag_Unified mag = Adafruit_LSM303DLH_Mag_Unified (12345); int servoPin = 3; Servo Servo1; void setup(void) { Serial.begin(9600); Fil.begin(); Servo1.attach(servoPin); Serial.println("Test du magnétomètre"); Serial.println(""); if (!mag.begin()) { Serial.println("Oups, aucun LSM303 détecté … Vérifiez votre câblage!"); tandis que (1); } } void loop(void) { /* Récupère un nouvel événement de capteur */ sensor_event_t event; mag.getEvent(&event); flottant Pi = 3,14159; // Calculer l'angle du vecteur y, x float cap = (atan2(event.magnetic.y, event.magnetic.x) * 180) / Pi; // Normaliser à 0-360 if (titre < 0) { titre = 360 + titre; } Serial.print("En-tête de boussole: "); Serial.println(titre); Servo1.write(180-tête); retard(10); }

Étape 4: Câblez-le ensemble

Câblez-le ensemble
Câblez-le ensemble

Vous voulez que la broche la plus à gauche - SCL - soit connectée à l'entrée de données A5

Celui à côté - SDA - connecté au port A4.

Le sol va au sol.

Le VIN va au port 5v.

Étape 5: ajouter un servo au câblage

Ajouter un servo au câblage
Ajouter un servo au câblage

La masse et la tension parlent d'elles-mêmes, mais vous voulez que la broche de données soit ~ 3.

Étape 6: Testez le code

Tester le code
Tester le code

Si vous déplacez le magnétomètre lentement, le servo devrait se déplacer avec lui. Ce n'est probablement pas précis, mais cela fonctionne au moins avec le code, donc la première partie est terminée. Ce n'est toujours pas calibré, mais ça marche.

Conseillé: