На главную страницу

x737 EFIS и MCP


СОДЕРЖАНИЕ

ВВЕДЕНИЕ
1. ПРОГРАММА ДЛЯ АРДУИНО
2. КОНФИГУРАЦИОННЫЙ ФАЙЛ

ВВЕДЕНИЕ

Во время работы над MCP Arduino MCP для X-Plane на базе Arduino Mega2560
подразумевался MCP боинга 757/767, но EFIS был сделан более похожим на EFIS 737. Но, в том-то и дело, что похожим. В этом устройстве (в реале) запредельная концентрация органов управления, расположенных на одной оси и реализация в стиле "конструкция выходного дня" весьма проблематична.
Как выглядит полноценный продукт с сайта www.virtualavionics.com.br, посмотреть можно здесь здесь.

Видно, что в реализации на рис.1 не хватает четырёх органов управления, это:
1) переключатель источника принятия решения MINS RADIO/BARO;
2) переключатель единиц давления BARO IN/HPA;
3) кнопка CTR;
4) кнопка TFC.
Подразумевается, что кнопки RST и STD реализуются на кнопочных частях соответствующих энкодеров.

Рис.1

Компромиссное решение, без добавления новых органов управления и шифтов, было следующее:

Таблица 1

Физический орган управленияФункция при обычном нажатииФункция при удержании
дольше 1.5 секунды
Кнопка RST на оси энкодера MINSПереключение RADIO/BARO RST
Кнопка STD на оси энкодера BAROПереключение IN/HPA STD
Кнопка FPVCTR FPV
Кнопка MTRSTFC MTRS

Физические кнопки при таком применении должны срабатывать на отпускание при обычном нажатии и по таймауту удержания в нажатом состоянии. При этом должны генерироваться разные коды событий. Если не знать, что срабатывание этих четырёх кнопок происходит при отпускании, это может остаться незамеченным в большинстве случаев. Зато у каждой теперь появилась дополнительная функция.

1. ПРОГРАММА ДЛЯ АРДУИНО

Экспериментальная прошивка для x737 на базе arduino_mcp-0.5.3.

Дополнения к базовой прошивке:
1. При каждом переключении SW1 (BANK LIMIT) по часовой стрелке, дополнительно вырабатывается событие 240, а против часовой стрелки - событие 241.
2. Кнопка RST на оси энкодера задания высоты принятия решения при коротоком нажатии вырабатывает событие 63, а при длительном удержании - событие 191.
3. Кнопка STD на оси энкодера задания давления при коротком нажатии вырабатывает событие 62, а при длительном удержании - событие 190.
4. Кнопка FPV при коротком нажатии вырабатывает событие 64, а при длительном удержании - событие 190.
5. Кнопка MTRS при коротком нажатии вырабатывает событие 61, а при длительном удержании - событие 189.

2. КОНФИГУРАЦИОННЫЙ ФАЙЛ

Конфигурационный файл в папку x737 для для плагина xfcmcp.xpl.

Особые моменты в файле конфигурации

##############################
#    B A N K   A N G L E     # 
##############################
# начало вращения по часовой стрелке
[Key0241]
mode: dataref
dataref: x737/systems/MCP/BANK_updn
type: float
1: 1

# останов вращения
[Key0241]
mode: dataref
dataref: x737/systems/MCP/BANK_updn
type: float
1: 0

#начало вращения против часовой стрелки
[Key0240]
mode: dataref
dataref: x737/systems/MCP/BANK_updn
type: float
1: -1

# останов вращения
[Key0240]
mode: dataref
dataref: x737/systems/MCP/BANK_updn
type: float
1: 0

Согласно описанию датарефа x737/systems/MCP/BANK_updn для начала вращения нужно подать 1(CW) или -1 (CCW), а для того, чтобы обозначить завершение операции, нужно в каждом случае подать 0.
Чтобы задать последовательность операций на один код органа управления, нужно последовательно создать секции с одинаковым именем в порядке выполнения операций.

Остальные настройки, связанные с изменением свойств кнопок RST, STD, FPV, MTRS

#####################
#  EFIS MTR BUTTON  # 
#####################
[Key0189]
mode: dataref
dataref: x737/cockpit/EFISCTRL_0/MTR_button
type: float 
1: 1.0


# после первой операции кнопка вдавлена, вернём её на место
[Key0189]
mode: dataref
dataref: x737/cockpit/EFISCTRL_0/MTR_button
type: float 
1: 0.0

#####################
#  EFIS TFC BUTTON  # 
#####################
[Key0061]
mode: dataref
dataref: x737/cockpit/EFISCTRL_0/TFC_button
type: float 
1: 1.0

# после первой операции кнопка вдавлена, вернём её на место
[Key0061]
mode: dataref
dataref: x737/cockpit/EFISCTRL_0/TFC_button
type: float 
1: 0.0



#######################
#  EFIS CTR BUTTON   # 
#######################
[Key0064]
mode: dataref
dataref: x737/cockpit/EFISCTRL_0/CTR_button
type: float 
1: 1.0

# после первой операции кнопка вдавлена, вернём её на место
[Key0064]
mode: dataref
dataref: x737/cockpit/EFISCTRL_0/CTR_button
type: float 
1: 0.0


#######################
#  EFIS FPV BUTTON   # 
#######################
[Key0192]
mode: dataref
dataref: x737/cockpit/EFISCTRL_0/FPV_button
type: float 
1: 1.0

# после первой операции кнопка вдавлена, вернём её на место
[Key0192]
mode: dataref
dataref: x737/cockpit/EFISCTRL_0/FPV_button
type: float 
1: 0.0



#######################
#  EFIS BAROPRESS     # 
#######################
[Key0062]
mode: loop
dataref: x737/cockpit/EFISCTRL_0/BAROPRESS_unit
type: float 
min: 0
max: 1
increment: 1

#######################
#  BAROPRESS STD      # 
#######################
[Key0190]
mode: dataref
dataref: x737/cockpit/EFISCTRL_0/STD_button
type: float 
1: 1

# после первой операции кнопка вдавлена, вернём её на место
[Key0190]
mode: dataref
dataref: x737/cockpit/EFISCTRL_0/STD_button
type: float 
1: 0


#######################
#      DH RST         # 
#######################
[Key0191]
mode: dataref
dataref: x737/cockpit/EFISCTRL_0/RST_button
type: float 
1: 1

# после первой операции кнопка вдавлена, вернём её на место
[Key0191]
mode: dataref
dataref: x737/cockpit/EFISCTRL_0/RST_button
type: float 
1: 0


#######################
#     DH SOURCE       # 
#######################
[Key0063]
mode: loop
dataref: x737/cockpit/EFISCTRL_0/DH_source
type: float 
min: 0
max: 1
increment: 1





На главную страницу