Tabla de contenido:

Brújula servo extremadamente básica sin calibrar: 7 pasos
Brújula servo extremadamente básica sin calibrar: 7 pasos

Video: Brújula servo extremadamente básica sin calibrar: 7 pasos

Video: Brújula servo extremadamente básica sin calibrar: 7 pasos
Video: Servomotor con Arduino y Calibración de Posición Cero Grados. 285 2024, Mes de julio
Anonim
Brújula servo extremadamente básica sin calibrar
Brújula servo extremadamente básica sin calibrar

Este es solo un instructivo básico para un proyecto en el que estoy trabajando. Este no está calibrado y es un prototipo muy básico hecho para la clase. En un instructable posterior, mostraré cómo calibrarlo.

No esperaría mucha grandeza de esto si fuera usted, es más documentar el proceso.

Suministros

  • Micro servo (utilicé el micro servo HXT900 de Hobby King)
  • Arduino (usé Uno)
  • LSM303DLHC es el sensor
  • Cables, soldaduras, etc.
  • Tablero de circuitos

Paso 1: ensambla todo

Ensamblar todo
Ensamblar todo
Ensamblar todo
Ensamblar todo

Asegúrese de que sus encabezados estén soldados correctamente a su sensor y que tenga sus cables y placa de pruebas.

Paso 2: Bibliotecas de código

Bibliotecas de código
Bibliotecas de código
Bibliotecas de código
Bibliotecas de código

Querrá asegurarse de haberlos descargado.

Las otras bibliotecas que utilizará, wire.hy servo.h, ya deberían estar instaladas de forma predeterminada.

Paso 3: Código

Abra la biblioteca de bocetos 'Compass' de lo que acaba de descargar. Para usar el servo, debe poner el código del servo en este código. Lo combiné con el código de Hanie Kiana de aquí. El original es de Hanie Kiani, no yo. Debe tener un aspecto como este.

#incluir

#include #include #include #include Adafruit_LSM303DLH_Mag_Unified mag = Adafruit_LSM303DLH_Mag_Unified (12345); int servoPin = 3; Servo Servo1; configuración vacía (void) {Serial.begin (9600); Wire.begin (); Servo1.attach (servoPin); Serial.println ("Prueba del magnetómetro"); Serial.println (""); if (! mag.begin ()) {Serial.println ("Ooops, no se detectó LSM303 … ¡Revise su cableado!"); mientras (1); }} bucle vacío (void) {/ * Obtiene un nuevo evento de sensor * / sensor_event_t evento; mag.getEvent (& evento); flotador Pi = 3,14159; // Calcula el ángulo del vector y, x flotador rumbo = (atan2 (event.magnetic.y, event.magnetic.x) * 180) / Pi; // Normalizar a 0-360 si (encabezado <0) {encabezado = 360 + encabezado; } Serial.print ("Compass Heading:"); Serial.println (título); Servo1.write (encabezado 180); retraso (10); }

Paso 4: Conéctelo

Conectarlo
Conectarlo

Quiere que el pin más a la izquierda, SCL, esté conectado a la entrada de datos A5

El que está al lado, SDA, está conectado al puerto A4.

Ground va a Ground.

VIN va al puerto de 5v.

Paso 5: agregue el servo al cableado

Agregar servo al cableado
Agregar servo al cableado

La tierra y el voltaje hablan por sí mismos, pero desea que el pin de datos sea ~ 3.

Paso 6: prueba el código

Prueba el código
Prueba el código

Si mueve el magnetómetro lentamente, el servo debería moverse con él. Es probable que no varíe con precisión, pero al menos funciona con el código, por lo que la primera parte está completa. Todavía no está calibrado, pero funciona.

Recomendado: