Цифровой инклинометр (на датчике акселерометра MMA7260Q)

Обсуждаем цифровые устройства...
Ответить
Родился
Аватара пользователя
Сообщения: 5
Зарегистрирован: Пн июн 06, 2011 06:06:31
Откуда: Екатеринбург

Сообщение Layer »

собрал небольшой девайс, возможно устройство окажется кому-то полезным:)

Инклинометр - устройство, предназначенное для измерения угла наклона различных объектов, относительно гравитационного поля Земли.
Изображение

Основные компоненты:
Микроконтроллер - Atmega32
Аналогов-цифровой преобразователь - AD7799
Источник опорного напряжение - ADR423
Источник питания - L78M05
Дисплей - WH1602P
Датчик акселерометра - MMA7260Q
***

Размер QFN корпуса MMA7260Q очень маленький, но при определенной сноровке датчик можно без проблем припаять и обычным паяльником. Напряжение питания составляет 3.3 Вольта, для питания MMA7260Q был использован источник опорного напряжения ADR423. Так же напряжение с него подается на АЦП на 9-й пин REFIN(+).

MMA7260Q обладает возможность выбора чувствительности (1.5g/2g/4g/6g). В данном проекте ножки выбора чувствительности посажены на землю, что задает чувствительность 800 mV/g.

С аналоговых выходов датчика MMA7260Q сигнал поступает на трех-канальный сигма-дельта АЦП AD7799. Для микроконтроллера Atmega32 написан драйвер для работы с AD7799. МК последовательно считывает значения для трёх осей и переводит значения в градусы. Вывод на индикацию осуществляется через драйвер для работы с дисплеем WH1602P. Прошивку можно скачать в конце статьи.
http://soft-ee.com/wp-content/uploads/2 ... cheme2.jpg

Изображение
Рис. 1
На плате выведены два разъема ISP и JTAG. Джампер и кнопка могут быть использованы при калибровке датчика.

После травления:
Изображение
Рис. 2

После пайки:
Изображение
Рис. 3

Изображение
Рис. 4
Результат:

На этапе работы с АЦП определенные тонкости с его непосредственной настройкой, который при рестарте выставляет по умолчанию большой коэффициент усиления. При его конфигурировании следует выставлять коэффициент x1.

На данный момент устройство измеряет углы в точности до десятых, от -90 до +90 градусов:
Прошивку, исходный код и более подробное теоретические описание можете найти в конце статьи
http://soft-ee.com/?p=137
http://soft-ee.com электроника, программирование как хобби и работа.
Реклама
Друг Кота
Сообщения: 4928
Зарегистрирован: Ср июл 14, 2010 18:27:52

Сообщение Слесарь »

То есть, этот датчик может мне помочь в строительных работах? В роле уровня, для определения горизонта и углов?
Реклама
Родился
Аватара пользователя
Сообщения: 5
Зарегистрирован: Пн июн 06, 2011 06:06:31
Откуда: Екатеринбург

Сообщение Layer »

если доработать программу, дописать калибровку, то может помочь.
ну а вообще, поскольку датчик акселерометра, можно найти еще кучу применений:)
принцип работы конкретного датчика описан на сайте в статье чуть подробнее..
http://soft-ee.com электроника, программирование как хобби и работа.
Родился
Сообщения: 9
Зарегистрирован: Ср апр 07, 2010 14:16:22

Сообщение Repair_dn »

А можно выводить данные на графический дисплей, пример авиагоризонт? Очень надо!
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Аватара пользователя
Сообщения: 5
Зарегистрирован: Пн июн 06, 2011 06:06:31
Откуда: Екатеринбург

Сообщение Layer »

Repair_dn писал(а):А можно выводить данные на графический дисплей, пример авиагоризонт? Очень надо!
вы подразумеваете отдельно крен и тангаж?
можно, только надо по-другому пересчитывать.
видел, кто-то реализовывал, на этом же датчике (видео):
http://www.youtube.com/watch?feature=pl ... rSF38eIZvQ
http://soft-ee.com электроника, программирование как хобби и работа.
Реклама
Родился
Сообщения: 9
Зарегистрирован: Ср апр 07, 2010 14:16:22

Сообщение Repair_dn »

Вот это очень интересно, на сколько сложно так сделать?
p.s. с программированием у меня сложно
Реклама
Родился
Аватара пользователя
Сообщения: 5
Зарегистрирован: Пн июн 06, 2011 06:06:31
Откуда: Екатеринбург

Сообщение Layer »

Repair_dn писал(а):Вот это очень интересно, на сколько сложно так сделать?
p.s. с программированием у меня сложно
сделать это не сложно:)
угол крена можно рассчитать так: arctg(y/z)
тангажа: arctg(x/z).

В модуле math.h есть функция
double atan2(double x,double z), она возвращает arctg(x/z), который лежит в пределах от -пи до +пи.
перевод из радиан в градусы в программе уже есть..
в целом расчет для вашей задачи будет таким:
крен выходит = atan2(y,z)*180/M_PI,
тангаж = atan2(x,z)*180/M_PI

просто эти выражения вставить вместо тех где в исходниках расчитывается угол наклона..
у меня в исходниках это функция:

Код: Выделить всё

double AxelData::AngleOfTilt(double mV){
	double angle = (asin( (mV - AXEL_VOFFSET) / AXEL_SENSITIVITY)) * (HALF_CIRCLE/PI);
	return angle;
}
http://soft-ee.com электроника, программирование как хобби и работа.
Мудрый кот
Аватара пользователя
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Сообщение GRAF »

Repair_dn писал(а):А можно выводить данные на графический дисплей, пример авиагоризонт? Очень надо!
Для ЛА такой датчик не пойдет. С помощью него можно измерять углы только при действии ускорения свободного падения. Как только появятся ускорения, связанные с движением ЛА, показания прибора станут неверными.
Родился
Сообщения: 9
Зарегистрирован: Ср апр 07, 2010 14:16:22

Сообщение Repair_dn »

Можете помочь с таким устройством, я летаю на планере и авиагоризонт давно умер купить новый это от 500$, таких денег у клуба нет, а без него в облака нельзя
Мудрый кот
Аватара пользователя
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Сообщение GRAF »

Нужен гироскоп. Например LYPR540AH, измеряет угловую скорость и выдает аналоговый сигнал. Чувствительность 0.8 мВ на градус в секунду (не усиленный).

Чтобы определить угол поворота, нужно оцифровать выход одной из осей, разделить его на значение чувствительности гироскопа. Таким образом, получим угловую скорость. Если умножить эту угловую скорость на вермя, получим угол поворота ЛА.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 347
Зарегистрирован: Сб фев 07, 2009 19:21:25

Сообщение БАТАРЕЙКУС »

так чтоже лутше гироскоп или акселерометр.
Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.
Родился
Аватара пользователя
Сообщения: 5
Зарегистрирован: Пн июн 06, 2011 06:06:31
Откуда: Екатеринбург

Сообщение Layer »

БАТАРЕЙКУС писал(а):так чтоже лутше гироскоп или акселерометр.
как GRAF верно заметил, при ускорении у акселерометра показания станут неверными:)
так что гироскоп.
http://soft-ee.com электроника, программирование как хобби и работа.
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

БАТАРЕЙКУС писал(а):так чтоже лутше гироскоп или акселерометр.
В одной из статей Хоневелла описывалась инерциальная система на гироскопе и 3-х осевом акселерометре.
Если есть интерес пишите - вычером выложу
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Родился
Сообщения: 9
Зарегистрирован: Ср апр 07, 2010 14:16:22

Сообщение Repair_dn »

Есть интерес и очень серьезный
Мудрый кот
Аватара пользователя
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Сообщение GRAF »

Meteor писал(а):В одной из статей Хоневелла описывалась инерциальная система на гироскопе и 3-х осевом акселерометре.
Это бесплатформенная инерциальная навигационная система. С помощью неё ведется счисление пути. Система достаточно сложная в части программирования.
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Выкладываю, как писал ранее
Вложения
lowcost.pdf
(85.9 КБ) 654 скачивания
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Родился
Сообщения: 9
Зарегистрирован: Ср апр 07, 2010 14:16:22

Сообщение Repair_dn »

Спасибо на пару ночей инфы хватит, с английским у меня туго но осилю
Родился
Сообщения: 4
Зарегистрирован: Вт июн 28, 2011 22:33:33

Сообщение Entuziast »

вопрос к знатокам акселей.
если я правильно понимаю то на выходах акселя напряжения пропорциональны ускорениям по осям. когда -то давно учили нас что ускорение есть
вторая производная перемещения по времени. значит ли это что дважды проитегрировав выходные напряжения можно узнать путь пройденный объектом?
Мудрый кот
Аватара пользователя
Сообщения: 1867
Зарегистрирован: Ср янв 23, 2008 22:11:54
Откуда: Калининград

Сообщение GRAF »

Entuziast писал(а):значит ли это что дважды проитегрировав выходные напряжения можно узнать путь пройденный объектом?
Так и делают в системах счисления пути.
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Есть один подводный камень - при малых величинах ускорения, получается большая набегающая ошибка пути.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Контактная информация:
Ответить

Вернуться в «Цифровая техника»