Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Это просто базовое руководство для проекта, над которым я работаю. Это некалиброванный и очень простой прототип, созданный для класса. В более поздних инструкциях я покажу, как его откалибровать.
На вашем месте я бы не ожидал от этого большого величия, это скорее документирование процесса.
Запасы
- Микро сервопривод (я использовал Микро сервопривод HXT900 от Hobby King)
- Arduino (я использовал Uno)
- LSM303DLHC - датчик
- Кабели, припой и т. Д.
- Макетная плата
Шаг 1. Соберите все
Убедитесь, что ваши разъемы правильно припаяны к сенсору, и что у вас есть провода и макетная плата.
Шаг 2. Библиотеки кода
Убедитесь, что вы их загрузили.
Другие библиотеки, которые вы будете использовать, wire.h и servo.h, должны быть уже установлены по умолчанию.
Шаг 3: Код
Откройте библиотеку эскизов «Компас» из того, что вы только что скачали. Чтобы использовать сервопривод, вы хотите поместить в этот код сервокод. Я объединил его с кодом Хани Кианы отсюда. Оригинал написан Хани Киани, а не мной. Должно получиться вот так.
#включают
#include #include #include #include Adafruit_LSM303DLH_Mag_Unified mag = Adafruit_LSM303DLH_Mag_Unified (12345); int servoPin = 3; Серво Серво1; установка void (void) {Serial.begin (9600); Wire.begin (); Servo1.attach (servoPin); Serial.println («Тест магнитометра»); Serial.println (""); if (! mag.begin ()) {Serial.println («Ой, LSM303 не обнаружен… Проверьте проводку!»); в то время как (1); }} void loop (void) {/ * Получить новое событие датчика * / sensor_event_t event; mag.getEvent (& событие); поплавок Pi = 3,14159; // Вычислить угол вектора y, x float heading = (atan2 (event.mintage.y, event.mintage.x) * 180) / Pi; // Нормализуем до 0–360 if (заголовок <0) {заголовок = 360 + заголовок; } Serial.print ("Заголовок компаса:"); Serial.println (заголовок); Servo1.write (180-заголовок); задержка (10); }
Шаг 4: соедините все вместе
Вы хотите, чтобы крайний левый контакт SCL был подключен к входу данных A5.
Тот, что рядом - SDA - подключен к порту A4.
Земля переходит в Землю.
VIN идет на порт 5v.
Шаг 5: Добавьте сервопривод к проводке
Земля и напряжение говорят сами за себя, но вы хотите, чтобы вывод данных был ~ 3.
Шаг 6. Проверьте код
Если вы перемещаете магнитометр медленно, сервопривод должен двигаться вместе с ним. Вероятно, он не отличается точностью, но, по крайней мере, работает с кодом, поэтому первая часть завершена. Он еще не откалиброван, но работает.