Страница 1 из 2

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

Добавлено: Пн июн 06, 2011 06:25:33
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

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

Добавлено: Пн июн 06, 2011 07:04:34
Слесарь
То есть, этот датчик может мне помочь в строительных работах? В роле уровня, для определения горизонта и углов?

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

Добавлено: Пн июн 06, 2011 07:16:00
Layer
если доработать программу, дописать калибровку, то может помочь.
ну а вообще, поскольку датчик акселерометра, можно найти еще кучу применений:)
принцип работы конкретного датчика описан на сайте в статье чуть подробнее..

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

Добавлено: Ср июн 08, 2011 01:09:16
Repair_dn
А можно выводить данные на графический дисплей, пример авиагоризонт? Очень надо!

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

Добавлено: Ср июн 08, 2011 05:38:22
Layer
Repair_dn писал(а):А можно выводить данные на графический дисплей, пример авиагоризонт? Очень надо!
вы подразумеваете отдельно крен и тангаж?
можно, только надо по-другому пересчитывать.
видел, кто-то реализовывал, на этом же датчике (видео):
http://www.youtube.com/watch?feature=pl ... rSF38eIZvQ

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

Добавлено: Ср июн 08, 2011 09:26:20
Repair_dn
Вот это очень интересно, на сколько сложно так сделать?
p.s. с программированием у меня сложно

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

Добавлено: Ср июн 08, 2011 10:08:56
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;
}

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

Добавлено: Чт июн 09, 2011 14:13:07
GRAF
Repair_dn писал(а):А можно выводить данные на графический дисплей, пример авиагоризонт? Очень надо!
Для ЛА такой датчик не пойдет. С помощью него можно измерять углы только при действии ускорения свободного падения. Как только появятся ускорения, связанные с движением ЛА, показания прибора станут неверными.

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

Добавлено: Чт июн 09, 2011 15:42:29
Repair_dn
Можете помочь с таким устройством, я летаю на планере и авиагоризонт давно умер купить новый это от 500$, таких денег у клуба нет, а без него в облака нельзя

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

Добавлено: Чт июн 09, 2011 17:40:14
GRAF
Нужен гироскоп. Например LYPR540AH, измеряет угловую скорость и выдает аналоговый сигнал. Чувствительность 0.8 мВ на градус в секунду (не усиленный).

Чтобы определить угол поворота, нужно оцифровать выход одной из осей, разделить его на значение чувствительности гироскопа. Таким образом, получим угловую скорость. Если умножить эту угловую скорость на вермя, получим угол поворота ЛА.

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

Добавлено: Пт июн 10, 2011 00:05:47
БАТАРЕЙКУС
так чтоже лутше гироскоп или акселерометр.

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

Добавлено: Пт июн 10, 2011 04:14:07
Layer
БАТАРЕЙКУС писал(а):так чтоже лутше гироскоп или акселерометр.
как GRAF верно заметил, при ускорении у акселерометра показания станут неверными:)
так что гироскоп.

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

Добавлено: Пт июн 10, 2011 06:38:22
Meteor
БАТАРЕЙКУС писал(а):так чтоже лутше гироскоп или акселерометр.
В одной из статей Хоневелла описывалась инерциальная система на гироскопе и 3-х осевом акселерометре.
Если есть интерес пишите - вычером выложу

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

Добавлено: Пт июн 10, 2011 09:18:25
Repair_dn
Есть интерес и очень серьезный

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

Добавлено: Пт июн 10, 2011 10:33:49
GRAF
Meteor писал(а):В одной из статей Хоневелла описывалась инерциальная система на гироскопе и 3-х осевом акселерометре.
Это бесплатформенная инерциальная навигационная система. С помощью неё ведется счисление пути. Система достаточно сложная в части программирования.

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

Добавлено: Пт июн 10, 2011 18:53:02
Meteor
Выкладываю, как писал ранее

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

Добавлено: Пт июн 10, 2011 20:00:54
Repair_dn
Спасибо на пару ночей инфы хватит, с английским у меня туго но осилю

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

Добавлено: Вт июн 28, 2011 22:55:40
Entuziast
вопрос к знатокам акселей.
если я правильно понимаю то на выходах акселя напряжения пропорциональны ускорениям по осям. когда -то давно учили нас что ускорение есть
вторая производная перемещения по времени. значит ли это что дважды проитегрировав выходные напряжения можно узнать путь пройденный объектом?

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

Добавлено: Ср июн 29, 2011 23:53:20
GRAF
Entuziast писал(а):значит ли это что дважды проитегрировав выходные напряжения можно узнать путь пройденный объектом?
Так и делают в системах счисления пути.

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

Добавлено: Ср июн 29, 2011 23:59:01
Meteor
Есть один подводный камень - при малых величинах ускорения, получается большая набегающая ошибка пути.