Главная » Статьи » Проекты

Электронный компас на HMC5883L

 

 Продолжая играться с магнитометром HMC5883L собрал компас, хоть и электронный но зато со стрелкой:) Для вывода информации использован дисплей от Nokia 3310, над расчетом и отрисовкой картинки работает микроконтроллер ATMega16.

 

 

 

 Код работы с датчиком остался прежним, просто добавил поворот стрелки в зависимости от угла. Так как "кадры" хранятся в памяти микроконтроллера, пришлось ограничится 16-ю положениями стрелки при вращении вокруг своей оси, но в принципе этого достаточно. Схема соединения проста:
 

 
 Микроконтроллер тактируется от внутреннего RC генератора на частоте 8МГц
 
 Как отмечалось ранее, плата на которой запаян датчик HMC5883L имеет согласование уровней, ее можно запитывать от 5 вольт. Дисплей тоже выдерживает напряжение до 5 вольт, поэтому его, как и плату с датчиком, можно подключать к микроконтроллеру напрямую, не прибегая к дополнительным схемам согласования уровней.


 




Скачать материалы к проекту
 

UPD: как некоторые товарищи заметили, компас исправно работает только в строго горизонтальном положении. Тогда когда магнитное поле действует только на оси X и Y. В случае наклона датчика в работу включается проекция поля на ось Z и поэтому ее необходимо учитывать. Поизучав немного этот вопрос нашел решение в одном журнале, где предлагается дополнительно использовать акселерометр, для того чтобы знать в каком положении находится датчик и дальше путем тригонометрических расчетов вводится корректировка и находится азимут. СКАЧАТЬ

 

 

 

 

Категория: Проекты | Добавлено: 24.09.2013
Просмотров: 19417 | Комментарии: 12 | Рейтинг: 4.1/9
Всего комментариев: 12
12 GSV   (17.06.2015 13:10)
-asd81-
Программа в mega16 занимает 85%.В mega8 программа просто не влезет.

11 asd81   (16.06.2015 23:42)
здравствуйте. хотелось бы собрать компас на mega8, но в программировании я полный ноль. если есть такая возможность, сможет кто нибудь помочь за спасибо?)

10 promotor   (23.01.2015 18:58)
А в каких единицах датчик выдает значения X, Y, Z?

9 Scorpushka   (18.12.2013 09:25)
exersizze, вот моя распиновка дисплея. http://www.picshare.ru/view/3504742/ у тебя в проектах другой дисплей? например на выводе №3 у меня SCE у тебя SDIN

8 exersizze   (17.12.2013 19:47)
ты про Din = Portb.1 ? этот вывод при работе с дисплеем не нужен, поэтому этот кусок остался как рудимент с прошлых проектов.

7 exersizze   (30.11.2013 12:35)
Прошивка в архиве рабочая, фьюзы на 8МГц внутреннего  RC генератора. С питанием как обычно, VCC - плюс, GND - минус (просто Proteud не показывает эти ножки на микросхемах, так как и так ясно куда они подлкючаются)

6 Goodwin   (30.11.2013 10:03)
хочу повторить проект, подскажите не могли бы выложить скриншот фьюзов?
прошивка hex рабочая в материалах?
ни разу программированием не занимался, хочу попробовать.
Еще вопрос, на схеме к AVR только не подключено VCC и GND, покдлючить по даташиту?

5 exersizze   (07.10.2013 09:35)
Aleks8383 , датчик чувствителен к железу, начинает врать. А от отвертки с намагниченным концом вообще начинает сходить с ума. Поэтому думаю в металлическом корпусе от него будет пользы никакой.

4 Aleks8383   (07.10.2013 08:40)
exersizze, а как обстоит дело с наводками от посторонних предметов(металл,руки и тд и тп)??
Хотелось одну штуковину на основе этого модуля сделать, а устройство по идее должен на металлической основе стоять. Не будет таких же отклонения как и с обычным компасом когда его к металлу подносишь.

3 max   (25.09.2013 18:31)
Прикольно.

2 exersizze   (25.09.2013 18:06)
Угу, пересмотрел видео) действительно, надо было на стол чего нибудь цветастого кинуть чтобы заметно было что относительно чего крутится) 
top, оно конечно правильно что надо включать математику для поворота картинки, но примеров не встречал. Как вариант, можно воспользоваться трудами товарища Fortera и закинуть всю анимацию на хранение во внешнюю память
 http://avrproject.ru/publ....-1-0-97

1 top   (25.09.2013 16:49)
При просмотре видео создалось ощущение что вращается не макетка а камера)
Прожорливо столько картинок хранить, можно поколдовать с геометрической отрисовкой фигур на дисплее. Размер программы будет гораздо меньше)))

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






   EasyEDA:  бесплатный редактор схем

   ✓ Создание схем
   ✓ Возможность симуляции
   ✓ Быстрое создание печатных плат
   ✓ Интуитивно понятный интерфейс

   Нарисуй свою схему прямо сейчас!
   Изготовление печатных плат   https://jlcpcb.com/

авторизация
Логин:
Пароль:
Комментарии
Встраиваемый модуль радиоуправления на nRF24L01
21.10.2017 - exersizze:
Алгоритм включения прописан в подпрограмме Logic2, странно что у вас не включает...
Программатор USBASP
21.10.2017 - exersizze:
я свой первый usbasp программировал через LPT порт и программу Ponyprog, поэтому...
Программатор USBASP
20.10.2017 - mozga:
всем привет. вопрос:получается,сделанный(спаянный) программатор на atmega8 в это...
Встраиваемый модуль радиоуправления на nRF24L01
19.10.2017 - amg_84:
Подскажите, пожалуйста. Режим 2. Повторное нажатие любой клавиши пульта не приво...
Бесконтактный датчик температуры MLX90614
18.10.2017 - exersizze:
а с обратной стороны, подключение дисплея не видно.
Бесконтактный датчик температуры MLX90614
18.10.2017 - TSL:
Кинул фото на сюда http://s41.radikal.ru/i093/1710/0b/6064b20c764a.jpg
Пр...
Бесконтактный датчик температуры MLX90614
17.10.2017 - TSL:
Хорошо, завтра сфоткаю. Кину на хостинг или на тот-же сайт Паяльник.
Бесконтактный датчик температуры MLX90614
17.10.2017 - exersizze:
Вроде верно, я тоже использовал мегу в дип корпусе (а схема для tqfp, да)
...
Бесконтактный датчик температуры MLX90614
16.10.2017 - TSL:
exersizze спасибо что вы хоть отвечаете. Создал тему на Паяльнике, но пока там т...