Предлагаю в данной ветке выкладывать практическую информацию по подключению приборов к авиа симулятору. Различные схемные решения и наработки в данном направлении. 😉
Начнем с самой первой железки, которую удалось подключить к симулятору. Это был пульт управления от радиостанции Баклан.
Attached thumbnail(s)
ra3dcs
14.07.2009 в 06:51
И поскольку частоты в наших пультах набираются двоичным кодом по 11-12 разрядам с помощью Андрея (Zigzag) и под его чутким руководством удалось создать вот такую плату сопряжения с компьютером через LPT порт.
Attached thumbnail(s)
ra3dcs
14.07.2009 в 06:51
Следующий прибор который удалось достать был указатель оборотов вспомогательной силовой установки.
Attached image(s)
ra3dcs
14.07.2009 в 06:51
Другой вид.
Attached image(s)
BM_
14.07.2009 в 06:51
..хых ну раз пошла такая пьянка! 😉 то вот с чего мы начинали….. это ТЛК Л-410 УВПЭ программу писал Юра Трунов Airman
Attached image(s)
BM_
14.07.2009 в 06:51
Переделка УГР-4к
Attached thumbnail(s)
BM_
14.07.2009 в 06:51
….
Attached image(s)
BM_
14.07.2009 в 06:51
…
Attached thumbnail(s)
BM_
14.07.2009 в 06:51
Система посадки СП-50 LUN
Attached thumbnail(s)
BM_
14.07.2009 в 06:51
Указатель СП-50МРП
Attached thumbnail(s)
BM_
14.07.2009 в 06:51
Сигнальные табло и лампы
Attached thumbnail(s)
BM_
14.07.2009 в 06:51
Схема УС-600
Attached image(s)
BM_
14.07.2009 в 06:51
Блок схема
Attached thumbnail(s)
BM_
14.07.2009 в 06:51
Подключение модулей «Master Kit» к РС
Attached thumbnail(s)
ra3dcs
14.07.2009 в 06:51
И написать программу на Дельфи для стыковки с симулятором.
Самый большой недостаток данного метода в том, что это не работает под XP. Но это самое первое, что заработало у меня с симулятором.
Продолжение следует.
😛
Ezdok
14.07.2009 в 06:51
Еех.. жаль у меня нет этой радиостанции. Адаптировал бы к FSBUS с помощью 1 го контроллера , и все работало бы под XP без LPT порта..
ra3dcs
14.07.2009 в 06:51
Ezdok (20.12.2005 18:14) написал:
Еех.. жаль у меня нет этой радиостанции. Адаптировал бы к FSBUS с помощью 1 го контроллера , и все работало бы под XP без LPT порта..
Мы с Вами обсуждали этот вопрос. И выяснилось, что через FSBUS нельзя управлять полностью переменными сима, ввод данных происходит по инкременту или по декременту… 😮
ra3dcs
14.07.2009 в 06:51
Из него безжалостно была удалена вся механика и датчики режимов. Оставлен только корпус, шкала и стрелка. Что из него получилось, выложу чуть позже.
Shadow Builder
25.08.2009 в 21:54
Народ! Надо что то думать и делать с ПСС…
У меня если ПСС не запущен, ЛокОн дает ~30fps. Просто запускаю ПСС, в ЛокОне fps падает до 1-4
Все я спать….
САБ
27.08.2009 в 19:49
Приветствую всех. Смотрю на ваши мучения. Есть несколько конструктивных, надеюсь, замечаний:
1)вы используете не те шаговики. Существуют специальные шаговики для привода стрелок приборов. Например вот: Sonceboz Switec Достоинства этих двигателей: а) В них встроен редуктор, поэтому шаг не 1.8 градуса, а 0.3 градуса. б) Они достаточно маломощны, поэтому их реально запитать прямо от ножек микроконтроллера. в) Они предназначены для впайки в печатную плату. Круглую (или достаточно многоугольную, да хоть и квадратную) плату достаточно просто закрепить в корпусе прибора. г) вытекает из б и в — контроллер можно разместить на той же плате. В результате получаем прибор с выводами питания и интерфейса на штатном разъеме. Замечание от коллеги, который их применял в автомобильных панелях:
Нам предлагали дешёвые китайские двигатели. С трудом отбились. Очень шумные и сбиваются.
Также он пишет, что для хорошего восприятия нужно примерно 900 шагов на 105 градусов, т.е даже использование режима полушага смотрится плохо. Надо использовать микрошаг. Коллега реализовывал управление на ATmega8. Он крутил всю приборную панель, 6 индикаторов, одним контроллером. Как он ухитрялся это делать на 20 доступных ножках — его тайна, да нам это и не нужно. При стоимости микроконтроллера меньше доллара вполне оправдано использовать один микроконтроллер на один индикатор.
2) Я не знаю, как у вас передается сигнал на прибор, но если от одной посылки стрелка должна сдвинуться более, чем на ~5 шагов, то для имитации реального прибора стрелка должна двигаться по закону стоп — постепенное ускорение — движение с постоянной скоростью — постепенное замедление — стоп. 3) Если стрелка прибора должна делать полный оборот, то на нулевое положение ставится оптодатчик. При включении питания контроллер вращает стрелку до срабатывания датчика, далее осчитывает позицию от этого положения. Если стрелка не делает оборот, то в крайнем положении делается упор и при включении питания контроллер вращает стрелку в сторону упора на количество шагов, чуть большее количества шагов на оборот. После этого он может быть уверен, что стрелка находится на упоре. Для шагового двигателя кратковременная работа «в упор» безвредна. Если кто-то еще помнит матричные принтеры, то они при включении именно так выставляли головку в начало строки. 4) Современные контроллеры имеют возможность самопрограммирования. Поэтому первое, что я делаю во всех своих конструкциях — пишу загрузчик, позволяющий заливать новую прошивку в контроллер по доступному в системе интерфейсу, без программатора. Команда обновления прошивки предусмотрена у меня во всех протоколах обмена. 5) Имеет смысл использовать в качестве физического уровня интерфейса не RS485, а CAN — он допускает коллизии на шине и имеет механизм для их корректной обработки. Поэтому не нужно делать систему с опросом от мастера — если прибору (кнопке, потенциометру) есть, что сказать — он может это сделать не дожидаясь запроса. И время шины не тратится впустую на опрос устройств, которым «сказать» в данный момент нечего. Драйвера CAN по цене сопоставимы с драйверами RS-485. К тому же 485 был разработан для передачи данных на большие расстояния, а CAN — для автомобильного применения, т.е. небольшие расстояния, но в условиях сильных помех. 6) 36в 400Гц можно получить из постоянного 28в при помощи микроконтроллера и трехфазного моста на полевых транзисторах. Это гораздо тише, экономичнее и надежнее, чем двигатель-генераторные преобразователи. 7) Согласно ТО на ИТЭ-1, ИТЭ-2, амплитуда напряжения на его обмотках должна быть 10-12.5в. Такой сигнал можно получить аналогично п.6 из +9в. Собственно это и будет первая задача, которой я займусь на след. неделе после отпуска. Результаты будут обнародованы здесь.
Надеюсь, эта информация будет полезна. Скоро я к вам присоединюсь.
САБ
27.08.2009 в 20:57
Константин , а у тебя какой программатор используется ? Если самодельный — помоги , пожалуйста с созданием аналогичной конструкции .
Я не Константин, но имею большой опыт в использоовании программаторов. Лошадь (понипрог) — сразу в сад. Форумы разработчиков встраиваемых систем в период расцвета Понипрога ломились от вопросов «зашил АВРку поней и она больше не отзывается» — это из-за неоднозначного соответствия галочек в лошади и состояния фуза «запрограммирован». Для прошивки AVR самый лучший программатор — AVReal. Поддерживает кучу разных адаптеров на LPT, в том числе и «5 проводков». «5 проводков» использовать только в крайнем случае — можно легко спалить LPT-порт. Но самый лучший на сегодняшний день адаптер — через USB на основе FT2232. Хорош тем, что на современных ноутах LPT — редкость, а всякие переходники USB-LPT не поддерживают режим «шевеления ногами». Кроме того, скорость прошивки через USB примерно в пять раз выше, чем через LPT. Еще одно преимущество AVReal — он работает только с командной строки. То есть вы один раз пишете .bat-файл со всеми необходимыми ключами, состоянием fuses и потом пользуетесь им одним нажатием. Отсутствует необходимость каждый раз расставлять галочки фузов, лазить по менюшкам «загрузить файл», «программировать», «сравнить» и т.д. Нет возможности случайно поставить не ту галочку в оболочке и перевести контроллер в непрограммируемое состояние (фузы RSTDSBL, CKSEL в режиме внешнего генератора). Начиная новый проект копируете .bat из старого, подправляете имя прошивки, значение фузов(если надо) и все. Отсылая прошивку прикладываете к ней .bat файл и не нужно отсылать картинку с расстановкой галочек в оболочке — у получателя не возникает никаких дополнительных вопросов по настройке фузов из-за отсутсвия этой самой оболочки. AVReal используется большинством специалистов-разработчиков на пост-советском пространстве в том числе и на производстве. Это не реклама — вы можете получить подтверждение всему вышесказанному на любом русскоязычном форуме embedded-разработчиков.
Если нужны консультации по AVReal — помогу. Знаком с автором AVReal.
САБ
27.08.2009 в 21:20
Отвечаю на довольно старое сообщение, ибо это может быть для кого-то актуально.
От сюда надо плясать и снимать осциллограмы. Причем снимать двух лучевым. так как работаем со сдвигами фаз которые однолучевым не особо просматриваються.
Проблема решается очень просто: выход одного из сигналов подключаем ко входу внешней синхронизации осциллографа. Осциллограф переводим в режим внешней синхронизации. Сигнальный вход осциллографа подключаем к этому же сигналу. Ручкой «уровень» и «стаб.» блока развертки добиваемся остановки картинки. Теперь можно смотреть остальные сигналы — развертка привязана к опорному сигналу.
Только очень уж чистый сигнал на экране осциллографа , как в учебнике , прям :-)))
Входные цепи осциллографа являются фильтром НЧ. Частота ШИМа находится где-то близко к краю полосы пропускания, поэтому она частично подавляется.
САБ
27.08.2009 в 21:43
Просто когда данные с компьютера не поступают , то в посылки идут те значения , которые осталиь в ОЗУ БТД .
Это не совсем удачное решение. Таким образом вы ограничиваете количество передаваемых данных размером доступного ОЗУ контроллера, то есть система расширяема до какого-то весьма небольшого (учитывая размер ОЗУ меги-48) предела. У вас же есть возможность организовать двунаправленный обмен — так сделайте отсылку с подтверждением. Заодно сможете вырабатывать в симулятор сигнал «отказ системы» при отказе какой-либо интерфейсной платы. И еще — 9-битовые посылки — наверное самое неудачное решение в вашем протоколе. Без них можно было бы сделать переходник USB-485 (RS232-RS485) и реализовать функциональность вашего мастера писишной программой. Но писишный COM (да и микросхемы переходников) умеет только передавать 9-битные посылки, и то из-за угла, имитируя девятый бит битом четности (а значит необходимо отключать FIFO), а вот принимать 9 бит — не умеет, даже с большими хитростями.
Предлагаю вам совместно подумать над изменением протокола. Готов поделиться своими наработками по загрузчику (обновление прошивки через 485, он у меня заточен под мегу8 и выше, у которых есть специально выделенная область и вторая область векторов), и межплатному протоколу, который я использую в своих системах (нижние уровни позаимствованы у IrDA). Вы уже много мег-48 закупили?
САБ
27.08.2009 в 22:06
Потому , что из сима данные выдаются линейно : увеличилась на 1 Vy — увеличилось на 1 число , которое приходит в ПСС . Из ПСС увеличенное н 1 значение выдается на вариометр . А у него шкала — НЕЛИНЕЙНАЯ . То есть для диапазона 150 .. 200 м/с увеличение параметра на 1 будет соответствовать перемещению стрелки на 10 м/с , а для диапазона 1.. 10 м/с это же увеличение на 1 даст перемещение стрелки на 0.2 м/с .
Снова встряну. А почему эту коррекцию не заложить в модуль управления прибором? Он же раз и навсегда подключается к вариометру, вот пусть он и думает, как ему перевести реальную высоту в правильное положение стрелки. Как следствие — каждый конкретный модуль один раз калибруется под конкретный прибор и его не надо перекалибровывать под каждый симулятор. А задача ПСС или программы-сервера — перевести морковки симулятора в реальную высоту в метрах для отсылки, что является однозначным преобразованием и не требует никаких калибровок.
Attached thumbnail(s)
Attached thumbnail(s)
Attached image(s)
Attached image(s)
Attached image(s)
Attached thumbnail(s)
Attached image(s)
Attached thumbnail(s)
Attached thumbnail(s)
Attached thumbnail(s)
Attached thumbnail(s)
Attached image(s)
Attached thumbnail(s)
Attached thumbnail(s)
Attached File(s)
Baklan.TXT (4.05K)
Number of downloads: 82
Продолжение следует.
😛
Ezdok (20.12.2005 18:14) написал:
Мы с Вами обсуждали этот вопрос. И выяснилось, что через FSBUS нельзя управлять полностью переменными сима, ввод данных происходит по инкременту или по декременту… 😮
У меня если ПСС не запущен, ЛокОн дает ~30fps. Просто запускаю ПСС, в ЛокОне fps падает до 1-4
Все я спать….
Смотрю на ваши мучения.
Есть несколько конструктивных, надеюсь, замечаний:
1)вы используете не те шаговики. Существуют специальные шаговики для привода стрелок приборов. Например вот:
Sonceboz
Switec
Достоинства этих двигателей:
а) В них встроен редуктор, поэтому шаг не 1.8 градуса, а 0.3 градуса.
б) Они достаточно маломощны, поэтому их реально запитать прямо от ножек микроконтроллера.
в) Они предназначены для впайки в печатную плату. Круглую (или достаточно многоугольную, да хоть и квадратную) плату достаточно просто закрепить в корпусе прибора.
г) вытекает из б и в — контроллер можно разместить на той же плате. В результате получаем прибор с выводами питания и интерфейса на штатном разъеме.
Замечание от коллеги, который их применял в автомобильных панелях:
Также он пишет, что для хорошего восприятия нужно примерно 900 шагов на 105 градусов, т.е даже использование режима полушага смотрится плохо. Надо использовать микрошаг.
Коллега реализовывал управление на ATmega8. Он крутил всю приборную панель, 6 индикаторов, одним контроллером. Как он ухитрялся это делать на 20 доступных ножках — его тайна, да нам это и не нужно. При стоимости микроконтроллера меньше доллара вполне оправдано использовать один микроконтроллер на один индикатор.
2) Я не знаю, как у вас передается сигнал на прибор, но если от одной посылки стрелка должна сдвинуться более, чем на ~5 шагов, то для имитации реального прибора стрелка должна двигаться по закону стоп — постепенное ускорение — движение с постоянной скоростью — постепенное замедление — стоп.
3) Если стрелка прибора должна делать полный оборот, то на нулевое положение ставится оптодатчик. При включении питания контроллер вращает стрелку до срабатывания датчика, далее осчитывает позицию от этого положения. Если стрелка не делает оборот, то в крайнем положении делается упор и при включении питания контроллер вращает стрелку в сторону упора на количество шагов, чуть большее количества шагов на оборот. После этого он может быть уверен, что стрелка находится на упоре. Для шагового двигателя кратковременная работа «в упор» безвредна. Если кто-то еще помнит матричные принтеры, то они при включении именно так выставляли головку в начало строки.
4) Современные контроллеры имеют возможность самопрограммирования. Поэтому первое, что я делаю во всех своих конструкциях — пишу загрузчик, позволяющий заливать новую прошивку в контроллер по доступному в системе интерфейсу, без программатора. Команда обновления прошивки предусмотрена у меня во всех протоколах обмена.
5) Имеет смысл использовать в качестве физического уровня интерфейса не RS485, а CAN — он допускает коллизии на шине и имеет механизм для их корректной обработки. Поэтому не нужно делать систему с опросом от мастера — если прибору (кнопке, потенциометру) есть, что сказать — он может это сделать не дожидаясь запроса. И время шины не тратится впустую на опрос устройств, которым «сказать» в данный момент нечего. Драйвера CAN по цене сопоставимы с драйверами RS-485. К тому же 485 был разработан для передачи данных на большие расстояния, а CAN — для автомобильного применения, т.е. небольшие расстояния, но в условиях сильных помех.
6) 36в 400Гц можно получить из постоянного 28в при помощи микроконтроллера и трехфазного моста на полевых транзисторах. Это гораздо тише, экономичнее и надежнее, чем двигатель-генераторные преобразователи.
7) Согласно ТО на ИТЭ-1, ИТЭ-2, амплитуда напряжения на его обмотках должна быть 10-12.5в. Такой сигнал можно получить аналогично п.6 из +9в. Собственно это и будет первая задача, которой я займусь на след. неделе после отпуска. Результаты будут обнародованы здесь.
Надеюсь, эта информация будет полезна. Скоро я к вам присоединюсь.
Я не Константин, но имею большой опыт в использоовании программаторов. Лошадь (понипрог) — сразу в сад. Форумы разработчиков встраиваемых систем в период расцвета Понипрога ломились от вопросов «зашил АВРку поней и она больше не отзывается» — это из-за неоднозначного соответствия галочек в лошади и состояния фуза «запрограммирован». Для прошивки AVR самый лучший программатор — AVReal. Поддерживает кучу разных адаптеров на LPT, в том числе и «5 проводков». «5 проводков» использовать только в крайнем случае — можно легко спалить LPT-порт. Но самый лучший на сегодняшний день адаптер — через USB на основе FT2232. Хорош тем, что на современных ноутах LPT — редкость, а всякие переходники USB-LPT не поддерживают режим «шевеления ногами». Кроме того, скорость прошивки через USB примерно в пять раз выше, чем через LPT. Еще одно преимущество AVReal — он работает только с командной строки. То есть вы один раз пишете .bat-файл со всеми необходимыми ключами, состоянием fuses и потом пользуетесь им одним нажатием. Отсутствует необходимость каждый раз расставлять галочки фузов, лазить по менюшкам «загрузить файл», «программировать», «сравнить» и т.д. Нет возможности случайно поставить не ту галочку в оболочке и перевести контроллер в непрограммируемое состояние (фузы RSTDSBL, CKSEL в режиме внешнего генератора). Начиная новый проект копируете .bat из старого, подправляете имя прошивки, значение фузов(если надо) и все. Отсылая прошивку прикладываете к ней .bat файл и не нужно отсылать картинку с расстановкой галочек в оболочке — у получателя не возникает никаких дополнительных вопросов по настройке фузов из-за отсутсвия этой самой оболочки. AVReal используется большинством специалистов-разработчиков на пост-советском пространстве в том числе и на производстве.
Это не реклама — вы можете получить подтверждение всему вышесказанному на любом русскоязычном форуме embedded-разработчиков.
Если нужны консультации по AVReal — помогу. Знаком с автором AVReal.
Проблема решается очень просто: выход одного из сигналов подключаем ко входу внешней синхронизации осциллографа. Осциллограф переводим в режим внешней синхронизации. Сигнальный вход осциллографа подключаем к этому же сигналу. Ручкой «уровень» и «стаб.» блока развертки добиваемся остановки картинки. Теперь можно смотреть остальные сигналы — развертка привязана к опорному сигналу.
Входные цепи осциллографа являются фильтром НЧ. Частота ШИМа находится где-то близко к краю полосы пропускания, поэтому она частично подавляется.
Это не совсем удачное решение. Таким образом вы ограничиваете количество передаваемых данных размером доступного ОЗУ контроллера, то есть система расширяема до какого-то весьма небольшого (учитывая размер ОЗУ меги-48) предела. У вас же есть возможность организовать двунаправленный обмен — так сделайте отсылку с подтверждением. Заодно сможете вырабатывать в симулятор сигнал «отказ системы» при отказе какой-либо интерфейсной платы.
И еще — 9-битовые посылки — наверное самое неудачное решение в вашем протоколе. Без них можно было бы сделать переходник USB-485 (RS232-RS485) и реализовать функциональность вашего мастера писишной программой. Но писишный COM (да и микросхемы переходников) умеет только передавать 9-битные посылки, и то из-за угла, имитируя девятый бит битом четности (а значит необходимо отключать FIFO), а вот принимать 9 бит — не умеет, даже с большими хитростями.
Предлагаю вам совместно подумать над изменением протокола. Готов поделиться своими наработками по загрузчику (обновление прошивки через 485, он у меня заточен под мегу8 и выше, у которых есть специально выделенная область и вторая область векторов), и межплатному протоколу, который я использую в своих системах (нижние уровни позаимствованы у IrDA). Вы уже много мег-48 закупили?
Снова встряну. А почему эту коррекцию не заложить в модуль управления прибором? Он же раз и навсегда подключается к вариометру, вот пусть он и думает, как ему перевести реальную высоту в правильное положение стрелки. Как следствие — каждый конкретный модуль один раз калибруется под конкретный прибор и его не надо перекалибровывать под каждый симулятор. А задача ПСС или программы-сервера — перевести морковки симулятора в реальную высоту в метрах для отсылки, что является однозначным преобразованием и не требует никаких калибровок.