Перейти к содержимому
Форумы SkyCentre Прыжки с парашютом
Валера К

Программируем высотомер на основе TI eZ430 Chronos

Recommended Posts

ну... если борьба за ресурсы, то да.

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

не знаю, но после кучи тестов, точность ГПС не уступает барометрическим датчикам,

я конечно не говорю о сантиметрах, но разница в несколько метров, это не разница

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

эээ... у меня сильно расходилось. Но антенна была скорее изотропным излучателем (так надо было), нежели антенна смотрящая в небо. И это, скорее всего, причина. При этом разница, особенно на низких высотах была десятки метров. Усреднение не помогало, скорее всего, из-за, опять-таки, отражений от земли.

Однако, эталоном высоты был воздушный шарик на веревке...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для тех, кто использует CCS (а по моему это самая дружелюбная к пользователю софтина из всех возможных) выкладываю свои исходники на текущий момент.

Основано на стандартной прошивке версии 1.6

Коменты и кидание гнилыми помидорами приветствуется.

Во время отладки за основу брался высотомер самолета, выставленный в 0 перед взлетом.

Чендж-лог и вишлист:

to do:

сделать округление показаний в зависимости от высоты

сделать возможность включать подсветку постоянно (для night jump)

продумать переключение датчика в быстрый режим (8Hz) для фрифола

Changelog:

переписан код определения высоты и внесения поправки (код стал компактным, но более ресурсоемким)

отключено сглаживание давления (Filter_off по умолчанию)

включена метрическая система по умолчанию

увеличен таймаут высотомера до 8 часов

добавлена функция гашения нижней строки экрана (возможность вывода только высоты на экран)

добавлен алгоритм автоматического выставления нуля

определена константа максимального уровня земли (по умолчанию 100м, при взлете выше этой высоты поправок не вносим)

при плавном изменении давления выводим символ R

обнуление высотомера по длительному нажатию *

при отображении высоты 0 убрал стрелку вверх

Версия 0.01_prebeta

Архивчик сделан в 7Zip, но расширение поменяно на zip, т.к. 7z не дают загружать.

Для тех, кто не умеет компилировать исходники, в архиве есть скомпилированная прошивка на 915 мегагерц версию. Заливайте на свой страх и риск.

valera_ez4300_ver_0.01_prebeta.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
кидание гнилыми помидорами приветствуется.

Не в этой теме. :)

Это быстро лечится ответом: "Можешь лучше - сделай". Трындеть - не мешки ворочать. (с) Николай

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Коллеги! Со звуком-пищиком кто-нибудь будет разбираться? Вроде ж собирались. Можно тоже разбить по высотам. Жаль я не умею программировать, с удовольствием присоединился бы к работе.

Вобщем, да и будильник нормальный сделать надо, а показания датчика ускорения, думаю нахрен никому не нужны. Понимаю, что еще есть над чем думать, но может, если раздельно один проэкт долбить, то разные люди могут разные функции модернизировать. Не? Давайте придем к какому-то общему решению набора функций часов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Коллеги! Со звуком-пищиком кто-нибудь будет разбираться? Вроде ж собирались. Можно тоже разбить по высотам. Жаль я не умею программировать, с удовольствием присоединился бы к работе.

Вобщем, да и будильник нормальный сделать надо, а показания датчика ускорения, думаю нахрен никому не нужны. Понимаю, что еще есть над чем думать, но может, если раздельно один проэкт долбить, то разные люди могут разные функции модернизировать. Не? Давайте придем к какому-то общему решению набора функций часов.

Пересобрал версию 1,3,21. Заработал звук.

В старом посте прикрепил 3 сборки:

1. без округления, с фильтрами

2. с округлением, с фильтрами

3. без округления, без фильтров

Начал потихоньку делать Вики для проекта, так что велкам.

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

Лично я пищалку по высотам в ближайшем времени писать не планирую, поскольку мне не надо, да и пока не особо много кто собрался припаивать к часам нормальную пьезу. Хотя, наверно реализовать это реально.

Поделиться сообщением


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

Я собираюсь писать пищалку. Но на работе сейчас некогда, а дома меня от компьютера тошнит. Шас вот окончательно межсезонье начнётся...

Пока спаял корпус, чтобы не кромсать часики и было куда засунуть нормальный пьезик. Чешу репу, как бы сделать кнопки понадежней. Или может вообще от них отказаться и программировать дивайс по радоканалу и таким же образом снимать логи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а на датчике ускорений строить пространственную кривую передвижений прибора :)

кстати, не шутка. На подводных лодках, в частности, используется такая система...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
кстати, не шутка. На подводных лодках, в частности, используется такая система...
Там используются инерциальные системы на основе гироскопов (отслеживают положение осей в пространстве, а не ускорения)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати да, можно еще использовать данные с датчика ускорения для более точного определения отделения и раскрытия :) Актуально наверное для тех, кто собирается пищалку делать.

Почему-то у меня после долгой неактивности датчик не всегда актуальные данные выдает несмотря на

while ((PS_INT_IN & PS_INT_PIN) == 0) do_altitude_measurement(FILTER_OFF);

Если перед этим вставить задержку, то вроде нормально.

Еще хочется все логгер прикрутить, да все лень как-то :))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Кстати да, можно еще использовать данные с датчика ускорения для более точного определения отделения и раскрытия :) Актуально наверное для тех, кто собирается пищалку делать.

Почему-то у меня после долгой неактивности датчик не всегда актуальные данные выдает несмотря на

while ((PS_INT_IN & PS_INT_PIN) == 0) do_altitude_measurement(FILTER_OFF);

Если перед этим вставить задержку, то вроде нормально.

Еще хочется все логгер прикрутить, да все лень как-то :))

А как это проявляется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот эта функция (запускается при активации высотника) первый раз выдает некорректное значение и уровень земли неправильно выставляется. После 2-го измерения все налаживается.

void start_altitude_measurement(void)
{
    // Show warning if pressure sensor was not initialised properly
    if (!ps_ok)
    {
        display_chars(LCD_SEG_L1_2_0, (u8 *) "ERR", SEG_ON);
        return;
    }

    // Start altitude measurement if timeout has elapsed
    if (sAlt.timeout == 0)
    {
        display_chars(LCD_SEG_L1_3_0, (u8 *) "----", SEG_ON);
        // Enable DRDY IRQ on rising edge
        PS_INT_IFG &= ~PS_INT_PIN;
        PS_INT_IE |= PS_INT_PIN;

        // Start pressure sensor
        ps_start();

        // Set timeout counter only if sensor status was OK
        sAlt.timeout = ALTITUDE_MEASUREMENT_TIMEOUT;

        // Get updated altitude
        while ((PS_INT_IN & PS_INT_PIN) == 0) {
          
          do_altitude_measurement(FILTER_OFF);
           };

        // make zero level
        sAlt.altitude_offset = - conv_pa_to_meter(sAlt.pressure);
        sAlt.altitude = conv_pa_to_meter(sAlt.pressure) + sAlt.altitude_offset;

    }
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Igor

Принял, спасибо за совет. Это оригинальный код, я его не трогал в этом месте :)

По вышеописанной проблеме - решил ее кардинально. Датчик давления теперь инициализирую полностью не при загрузке часов, а при старте высотомера. Так оно надежнее намного, а по времени занимает всего порядка 0.3 секунды.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Igor, некоторые языки/среды "=" и вообще числа в условиях сами отлавливают/не пускают. а если нет, то да, приходится вот так вот это решать. пропустить реально легко.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Igor, ну я не только про С, а вообще. Ну а даже если С, то ведь есть такая штука как ворнинги :) они никак стандартом не запрещены ;)

з.ы. в С вообще можно вместо a[5] писать 5[a] ... в общем явно при придумывании была сублимация каких-то извращенных желаний ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Там используются инерциальные системы на основе гироскопов (отслеживают положение осей в пространстве, а не ускорения)

гироскоп позволяет определить изменение пространсвенного положения относительно осей вращения... а вот, например, погружение-всплытие и дрейф и ход - не позволяет. Насколько я знаю - там именно измеряется ускорение...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уже второй раз перед скайдайвом часы вырубаются нафиг. Экран гаснет и работает только кнопка подсветки.

Помогает только вынимание батарейки (что без разбора сделать нельзя).

Предполагаемые причины:

1) Сдавливание корпуса и возможные глюки из-за этого.

2) Статика - шмотки трутся по экрану, вызывая зависание.

3) Глючный экземпляр...

Странно, но при просто ношении такого не было ни разу. Кто-нить еще гонял часы в скайдайве активно?

Поделиться сообщением


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Пересобрал версию 1,3,21. Заработал звук.

В старом посте прикрепил 3 сборки:

2. с округлением, с фильтрами

Прикрутил прошивку номер 2, все отлично залилось по беспроводу и работает как описано. Вчера потестил в скайдайве параллельно с Визо - довольно приличные отклонения в значениях, возрастающие по мере набора высоты (часы показывают больше). Начинаясь с нескольких метров, к километру разница составляет порядка 40м, к четырем - более 400м.

Кто-нить еще гонял часы в скайдайве активно?

Я только пару раз с ними прыгнул, описанных глюков не встречал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Прикрутил прошивку номер 2, все отлично залилось по беспроводу и работает как описано. Вчера потестил в скайдайве параллельно с Визо - довольно приличные отклонения в значениях, возрастающие по мере набора высоты (часы показывают больше). Начинаясь с нескольких метров, к километру разница составляет порядка 40м, к четырем - более 400м.
Спасибо за отзыв. Будем пилить дальше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2) Статика - шмотки трутся по экрану, вызывая зависание.

а как там со статикой всего ЛА от трения об воздух? не может повлиять?

Знаю, как в очень северных условиях домики шипеть от ветра начинают - мороз, воздух сухой, статика накапливается и неприятно так шипит... электроника дохла на ура (в том конкретном случае - электронные ключи, трансивер и частотомер)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мистика какая-то. Всю неделю часы носил на руке, ок. Приезджаю на дз, переодеваюсь - часы висят. И так 3 раза подряд (3 прыжковых дня).

Попробую, закажу еще один экземпляр.

а как там со статикой всего ЛА от трения об воздух

Я даже до ЛА в них не могу дойти. Приезжаю на ДЗ, переодеваюсь, смотрю на часы - мертвые.

PS: Может наша Пущинская радио обсерватория че-нить излучает, или находящийся недалеко загоризонтальный радар :)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Мистика какая-то. Всю неделю часы носил на руке, ок. Приезджаю на дз, переодеваюсь - часы висят. И так 3 раза подряд (3 прыжковых дня).

Попробую, закажу еще один экземпляр.

Я даже до ЛА в них не могу дойти. Приезжаю на ДЗ, переодеваюсь, смотрю на часы - мертвые.

PS: Может наша Пущинская радио обсерватория че-нить излучает, или находящийся недалеко загоризонтальный радар :)))

Часы кагбе намекают, что для скайдайва надо использовать скайдайверские приборы ;)

Поделиться сообщением


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...