Sommario:

Bussola servo estremamente semplice e non calibrata: 7 passaggi
Bussola servo estremamente semplice e non calibrata: 7 passaggi

Video: Bussola servo estremamente semplice e non calibrata: 7 passaggi

Video: Bussola servo estremamente semplice e non calibrata: 7 passaggi
Video: Come ricalibrare la posizione del GPS su Google Maps (Waze e non solo) 2024, Luglio
Anonim
Bussola servo estremamente semplice e non calibrata
Bussola servo estremamente semplice e non calibrata

Questo è solo un istruibile di base per un progetto su cui sto lavorando. Questo non è calibrato ed è un prototipo molto semplice fatto per la classe. In un successivo tutorial, mostrerò come calibrarlo.

Non mi aspetterei molta grandezza da questo se fossi in te, è più documentare il processo.

Forniture

  • Micro servo (ho usato il Micro Servo HXT900 di Hobby King)
  • Arduino (ho usato Uno)
  • LSM303DLHC è il sensore
  • Cavi, saldature, ecc
  • tagliere

Passaggio 1: assemblare tutto

Assemblare tutto
Assemblare tutto
Assemblare tutto
Assemblare tutto

Assicurati che le tue intestazioni siano saldate correttamente sul sensore e di avere i fili e la breadboard.

Passaggio 2: librerie di codici

Librerie di codici
Librerie di codici
Librerie di codici
Librerie di codici

Dovrai assicurarti di averli scaricati.

Le altre librerie che utilizzerai, wire.he servo.h, dovrebbero essere già installate per impostazione predefinita.

Passaggio 3: codice

Apri la libreria di schizzi "Compass" da ciò che hai appena scaricato. Per utilizzare il servo, devi inserire il codice del servo in questo codice. L'ho combinato con il codice di Hanie Kiana da qui. L'originale è di Hanie Kiani, non io. Dovrebbe sembrare come questo.

#includere

#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); Wire.begin(); Servo1.attach(servoPin); Serial.println("Test magnetometro"); Serial.println(""); if (!mag.begin()) { Serial.println("Ooops, nessun LSM303 rilevato… Controlla il cablaggio!"); mentre (1); } } void loop(void) { /* Ottieni un nuovo evento del sensore */ sensor_event_t event; mag.getEvent(&event); galleggiante Pi = 3,14159; // Calcola l'angolo del vettore y, x intestazione float = (atan2(event.magnetic.y, event.magnetic.x) * 180) / Pi; // Normalizza a 0-360 if (intestazione < 0) { intestazione = 360 + intestazione; } Serial.print("Intestazione bussola: "); Serial.println(intestazione); Servo1.write(180-intestazione); ritardo(10); }

Passaggio 4: collegalo insieme

Collegalo insieme
Collegalo insieme

Vuoi che il pin più a sinistra, SCL, sia collegato all'ingresso dati A5

Quello accanto, SDA, collegato alla porta A4.

La terra va a terra.

VIN va alla porta 5v.

Passaggio 5: aggiungere il servo al cablaggio

Aggiungi servo al cablaggio
Aggiungi servo al cablaggio

La terra e la tensione parlano da sole, ma vuoi che il pin dati sia ~3.

Passaggio 6: testare il codice

Prova il codice
Prova il codice

Se muovi lentamente il magnetometro, il servo dovrebbe muoversi con esso. Probabilmente non è molto accurato, ma almeno funziona con il codice, quindi la prima parte è completa. Non è ancora calibrato, ma funziona.

Consigliato: