"007 micro" регистратор данных

 
1 2 3 4 5 6
RU termostat #06.03.2004 16:14
+
-
edit
 

termostat

аксакал

"007 micro" регистратор данных

"Жить стало лучше, жить стало веселей…" - сказал классик. От себя добавлю - у людей появилась потребность в регистрации данных полета запускаемых ими ракет.

Здесь, в этом топике, должен зародится и выйти в свет нехитрый прибор: DataLogger - сказали бы наши заокеанские друзья, Logger machine воскликнут наиболее продвинутые из них! И те и другие кинутся в Google искать легких путей - готовых решений.

Но мы не такие, нам надо все сделать самим, во всем разобраться, добраться до сути так сказать, до соли, копнуть поглубже, туда где собака порылась.

В общем, из названия понятно, будем делать устройство измеряющее и запоминающее и по просьбе выдающее то, что нарегистрировало.

"007" - включено в название, потому как прибор ДОЛЖЕН выжить, а "micro" связано не с размерами устройства, а с его простотой и не богатой функциональностью.

Концепцию устройства предложил Serge77. приведу ее в своем изложении.

Устройство имеет два режима работы, определяемые положением переключателя перед включением питания.


\\\\\\\\\\\\\\\\\\\\\

1-й режим - Регистрация данных.

Включаем питание "007 micro" - он определяет, что переключатель в положение "Запись". Начинает дико! мигать светодиодом в течении 10 секунд (может и пишать?), чтоб дать вам возможность отключить питание если вы включили режим записи по ошибке.

Если вы не одумались и питание не отключено, то прибор проводит с заданной периодичностью измерение параметров с датчиков ускорения (ADXL150 - Analog.com) и давления - (MPX4100 или MPX4115 - Motorola) выдает данные на COM-порт и сохраняет в кольцевом "бесконечном" буфере.

После обнаружения "007 micro" ускорения превышающего пороговое значение, сохранение данных происходит в "нормальном" режиме до заполнения памяти. При этом естественно данные ранее содержавшиеся в памяти будут затерты новыми.

Если память заполнена, а питание не прервано то устройство периодически (противно так!) пищит (в действительности просто открывает транзисторный ключ), чтоб поскорей его нашли и фазу вырубили.


\\\\\\\\\\\\\\\\\\\\

2-й режим - воспроизведение данных.

Если после включения питания "007 micro" определит, что переключатель в положении "Воспроизв", то не будет ни мигать ни пищать, а просто подождет 2 секунды и начнет отправлять все данные из пмяти в COM-порт. Когда последний байт данных будет передан, "007 micro" будет неторопливо мигать светодиодом до отключения питания.

Вот и все.

\\\\\\\\\\\\\\\\\\\\


Дополнительно, можно запрограммировать управление системой спасения, например по показаниям датчика давления.

Со временем прояснится схема устройства и плата для монтажа. Надеюсь и результаты испытаний появятся.

Ближайшее мероприятие - он-лайн тренинг по написанию программы для "007 micro" (МК AVR at90s8535) - предварительная информция в топике "Курс: программирование МК AVR" со стр. 14 а подробнее смотрите в топике тренинга: "Пишем прогу для МК AVR в он-лайн".

Конкретные замечания и дополнения, а так же советы приветствуются!
+
-
edit
 

Serge77

модератор

Прикинул, какую точность в определении высоты нам даст 10-разрядный АЦП, встроенный в at90s8535.
Датчик MPX4100 измеряет давление от почти нуля до 105 кПа, АЦП в идеальном случае выдаст результат с разницей между соседними точками в 1/1024 от всего диапазона, т.е. около 0.1 кПа. Высота из давления воздуха вычисляется так:

H = - 7990,7 * LN( P / 101,304 )

где Р - это давление в кПа.
Н - высота в м.
Формула взята здесь:


Получается, что разница в 0.1 кПа у поверхности земли соответствует разнице в высоте в 7.8 м. На высоте 1 км разница между точками будет 8.8 м, 2 км - 10 м, 3 км - 11.4 м, 4 км - 12.9 м, 5 км - 14.6 м, 10 км - 27.3 м.

Весьма неплохо получается, прибор должен чувствовать разницу в 3 этажа при поездке на лифте.

Для уменьшения шума нужно записывать в память не одно измерение, а сумму 10 или больше последовательных измерений. Поскольку результат от АЦП содержит всего 10 бит, то можно накопить до 64 измерений, не вылезая из двух байтов. Вычислять среднее сразу в МК не нужно, чтобы не работать с дробными числами.
RU termostat #07.03.2004 05:04
+
-
edit
 

termostat

аксакал

Получается, что разница в 0.1 кПа у поверхности земли соответствует разнице в высоте в 7.8 м. На высоте 10 км - 27.3 м.
 


Да не плохо. Можно лучше сделать, а надо ли?

Для уменьшения шума нужно записывать в память не одно измерение ... можно накопить до 64 измерений, не вылезая из двух байтов.
 


Очень верно подмечено. Хорошая идея.

5555555555

Кстати как я укзал в курсе, кроме ДШ нужно еще ознакомится с Апликейшн Ноутами на компонент.

Для датчиков давления это будут Мотороловские AN1100 AN1307 AN1326 "AN1326 Цифровой барометр" и AN1646

для ADXL150 на Analog.com - AN374 -377 -379 -396


Вобщем питание 5 вольт будет на МК, на AREF и на Датчике давления. И делитель на 3-х резисторах с выходом 4 и 2 вольта например - это эталоны для АЦП. Все напряжения относительные к счастью и MPX имеет выход зависящий от напр. питания.

В этом случае точность поменьше будет но мы гарантировано не превзайдем напряж. с кодом 1023.

Завтра помотрю что с ADXL150.

Кстати! пора заказывать сэмплы. У меня есть уже.

5555555

О програме я совсем не думаю - хочу по чесному начать думать о ней 10 марта на тренинге.

А остальным советую продумать, желательно письменно.
RU termostat #07.03.2004 05:09
+
-
edit
 
+
-
edit
 

Serge77

модератор

termostat, 07.03.2004 04:04:34 :
Получается, что разница в 0.1 кПа у поверхности земли соответствует разнице в высоте в 7.8 м. На высоте 10 км - 27.3 м.
 


Да не плохо. Можно лучше сделать, а надо ли?
 


Лучше не нужно. Только наверно получится хуже, чем 7-10 м. Если погрешность ±2 LSB, то погрешность будет метров 50. Тоже нормально, но на лифте уже прибор не проверишь. Посмотрим, когда будет железо.
RU termostat #08.03.2004 04:40
+
-
edit
 

termostat

аксакал

Я распечатал ДШ на ADXL150. почитал... Очень интересная схемка - рис. 15

Я то размышлял добавить в устройство ADXL202 для малых ускорений. А можно по схеме сделать например выход ± 5 Ж и один вход АЦП подключить к 10 для оцифровки в диапазоне ±50 Ж и другой вход АЦП к Vout для более точного отсчета малых ускорений.

Можно и проще - использовть ADXL150 в режиме ±25 (помоему достаточно?) и просто на выходе усилитель опциональный добавить на ОУ.

Но главное Хорошо что выход тоже пропорционален питанию. И калибровка нуля не важна, так как у нас "нулевая линия" будет на записи.

55555555555

На 4 странице толкование терминов:

Nonlinearity: The maximum deviation of the ADXL150/
ADXL250 output voltage from a best fit straight line fitted to a
plot of acceleration vs. output voltage

т.е. применительно к моей попытке герметрически показать парметр нелинейность АЦП - это и есть полоска шириной в оин код или 1/1024 для нелинейности в ± 0.5 LSB



+
-
edit
 

timochka

опытный

>1-й режим - Регистрация данных.
>После обнаружения "007 micro" ускорения превышающего пороговое значение, сохранение данных происходит в "нормальном" режиме до заполнения памяти. При этом естественно данные ранее содержавшиеся в памяти будут затерты новыми.

>\\\\\\\\\\\\\\\\\\\\
>2-й режим - воспроизведение данных.
>Если после включения питания "007 micro" определит, что переключатель в положении "Воспроизв", то не будет ни мигать ни пищать, а просто подождет 2 секунды и начнет отправлять все данные из пмяти в COM-порт. Когда последний байт данных будет передан, "007 micro" будет неторопливо мигать светодиодом до отключения питания.

Мое предложение - запись и сброс данных на КОМ-порт начинать после нажатия кнопки "старт". При старте можно будет акселерометры не ставить - если нету их, а соорудить размыкаемый контакт. При сбросе данных эту линию можно будет завести на контакт DTR. При работе в режиме стенда просто жать кнопку. В общем более универсальное решение, ИМХО.
 
RU termostat #09.03.2004 09:44
+
-
edit
 

termostat

аксакал

timochka, 08.03.2004 15:32:11 :
При старте можно будет акселерометры не ставить - если нету их, а соорудить размыкаемый контакт.
 


Алгоритм это предусматривает: при замыкании G-свича на вход АЦП (предназначеный для отсутствующего акселерометра) поступит 5 вольт - 007 "поймет" что ускорение выше порогового для старта и все будет идти по плану.

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

Переключатель "запись - воспроизведение" в моем представлении, это "джампер" одеваемый на два штырька для "записи". Я думаю это гарантия от случайного включения в полете и т.п.

Изначально концепция прибора подразумевает, что можно паять внешние компоненты по желанию, на программу МК это не влияет, память не дорогая и будет с запасом, так что запоминаться будет максимум информации, а при анализе будет учитываться та которая нужна.
RU termostat #10.03.2004 02:27
+
-
edit
 

termostat

аксакал

По поводу серий АЦП на каждый отсчет я нашел АпликНоут у Тексас Инстраментс - прикрепил таблицу что это дает.

в этом документе (Oversampling Techniques using the
TMS320C24x Family spra461.pdf) ниже есть таблица с результатами метода наложения на измеряемый сигнал треугольного напряжения - это похоже на то что у нас за время пачки измерений происходит некоторое изменение величины реального давления.
+
-
edit
 

Serge77

модератор

termostat, 10.03.2004 01:27:17 :
По поводу серий АЦП на каждый отсчет я нашел АпликНоут у Тексас Инстраментс - прикрепил таблицу что это дает.
 


Получается, что 8-разрядный АЦП можно превратить в 10-разрядный, а 10 - в 12-разрядный. Неплохо!
RU [timochka] #11.03.2004 08:50
+
-
edit
 
>>При старте можно будет акселерометры не ставить - если нету их, а соорудить размыкаемый контакт.
>Я думаю замыкающий G-свич надежней так как в нормально разомкнутых контактах нет "шебуршения" от разных вибраций, и главное: все микро-кнопочки которые я видел на замыкание работают.

Все-таки нормально замкнутый. При старте размыкается. Контакт замкнутый в полете под действием перегрузки может глючить. Я думаю просто коротить контакт проволочкой перед стартом - при сходе ракеты с направляющей проволочка обрывается.

>Переключатель "запись - воспроизведение" в моем представлении, это "джампер" одеваемый на два штырька для "записи". Я думаю это гарантия от случайного включения в полете и т.п.

Я имел в виду что желающие смогут прикрутить програмное управление началом сброса данных. Программа на РС просто выставит сигнал на служебные линии КОМ порта.

 
RU termostat #11.03.2004 09:46
+
-
edit
 

termostat

аксакал

Все-таки нормально замкнутый. При старте размыкается. Контакт замкнутый в полете под действием перегрузки может глючить.
 


Да нехай хлючит, МК его не опрашивает больше.


Я думаю просто коротить контакт проволочкой

Есть вывод МК, 5 вольт и 0. Значит можно прицепить к нему любой переключатель, или проволоку.
 





желающие смогут прикрутить програмное управление началом сброса данных. Программа на РС просто выставит сигнал на служебные линии КОМ порта.
 


Мы ж простоты жаждем. Если терминал ПК готов к приему данных - включаем питание 007 он просыпется и передает данные памяти оп 1 линии.




RU termostat #11.03.2004 12:03
+
-
edit
 
RU termostat #11.03.2004 12:06
+
-
edit
 
+
-
edit
 

Serge77

модератор

termostat, 11.03.2004 11:03:38 :
Вот заготовка программы и как она писалась
 


Есть одна неточность:

по всей программе, где есть функция save_data(), у неё неправильный комментарий: "сохранить в кольцевой буфер".

Ты выложи текст программы в тему урока, в полном виде. Это будет результат первого занятия.
RU termostat #11.03.2004 13:00
+
-
edit
 
RU termostat #17.03.2004 14:26
+
-
edit
 

termostat

аксакал

Предвариельная схема 007.

Предполагаю МК разместить с одной стороны платы а большинство копонентов с другой.


Микросхему rs232 я размещу в шнуре к КОМ порту, так как такой шнур полезен для всяких других штучек на МК, а связь с ПК нужна только на земле.

(85 kb)
Прикреплённые файлы:
 
+
-
edit
 

Serge77

модератор

termostat, 17.03.2004 13:26:32 :
Микросхему rs232 я размещу в шнуре к КОМ порту, так как такой шнур полезен для всяких других штучек на МК, а связь с ПК нужна только на земле.
 


А что это за микросхема? Разве для связи по СОМ порту недостаточно самого МК?
+
-
edit
 

Serge77

модератор

А усилитель на акселерометр не нужен?
RU termostat #17.03.2004 15:21
+
-
edit
 

termostat

аксакал

Serge77, 17.03.2004 14:38:24 :
А усилитель на акселерометр не нужен?
 


Этож "МИКРО". я делаю вариант с усилителем на аксел. и давление и с транзисторными ключами. т.е. плата будет под все. А на схеме минимум необходимый показан.

нашел прекрасные ключи IRF7822 30 вольт 18 ампер в корпусе SO8 по 0.7 бакса.
RU termostat #17.03.2004 15:23
+
-
edit
 

termostat

аксакал

Serge77, 17.03.2004 14:35:52 :
Разве для связи по СОМ порту недостаточно самого МК?
 


Ты забыл какая дискуси была на эту тему?

нужен драйвер MAX232 или аналоги, стоит он 1.3 бакса.
RU Андрей Суворов #17.03.2004 16:41
+
-
edit
 

Андрей Суворов

координатор

Макс 232 - хорошая микросхема, но 4 электролита - это перебор. Настоящему индейцу завсегда везде ништяк. Очень хорошо работает преобразователь на оптронах АОТ128 с питанием непосредственно от DTR-а и TxD. Через диоды, естественно.

Можно взять и другие транзисторные оптроны.

А в другую сторону - от PC к uC - простой однотранзисторный инвертор. Итого - одна микросхема, два диода, четыре резистора и один транзистор. Против одной микросхемы и четырех-пяти конденсаторов. Сложно сказать, что лучше.

А, вот, если и в другую сторону поставить АОТ128 (схема почти не меняется, только номинал одного резистора) получаем бесплатную гальваническую развязку!
 
RU termostat #17.03.2004 16:44
+
-
edit
 

termostat

аксакал

Андрей Суворов, 17.03.2004 16:41:54 :
Макс 232 - хорошая микросхема, но 4 электролита - это перебор. Настоящему индейцу завсегда везде ништяк. Очень хорошо работает преобразователь на оптронах АОТ128 с питанием непосредственно от DTR-а и TxD. Через диоды, естественно.

Можно взять и другие транзисторные оптроны.

А в другую сторону - от PC к uC - простой однотранзисторный инвертор. Итого - одна микросхема, два диода, четыре резистора и один транзистор. Против одной микросхемы и четырех-пяти конденсаторов. Сложно сказать, что лучше.

А, вот, если и в другую сторону поставить АОТ128 (схема почти не меняется, только номинал одного резистора) получаем бесплатную гальваническую развязку!
 


зачем 4 электролита, по ДШ достаточно по 1 мкф а они в корпусе 0805 доступны.


а от Самсунга в 01005 - только не припаять такие :-(((
+
-
edit
 

Serge77

модератор

termostat, 17.03.2004 14:21:31 :
Этож "МИКРО". я делаю вариант с усилителем на аксел. и давление и с транзисторными ключами. т.е. плата будет под все. А на схеме минимум необходимый показан.
 


Т.е. на Микро ты предлагаешь усилитель не ставить? По-моему это уж слишком большое и неоправданное обрезание. Имея на плате хотя бы один датчик за $20, нет смысла экономить ещё $1-2 за операционник.
RU termostat #18.03.2004 09:58
+
-
edit
 

termostat

аксакал

Ну тыж вроде сам говорил "давай по-проще".

Я ж изначально предложил поставить "нормальный" внешний АЦП 16 бит 3 канала AD7706. И усилители не понядобятся в нем есть с цифровой установкой усиления. Можно менять КУ для каждого преобразования. Еще в нем и фильтр цифровой имеется. Корпус SOIC16 маленький.

Деталей меньше получится чем с ОУ.

Я бесплатный заказал и получил, но он и так продается везде. Стоит 7 баксов. Ко мне уж почтальон DHL как к родному еженедельно ходит.
1 2 3 4 5 6

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru