CDU на Rasperry PI — «Железные» кокпиты

Родилась идея собрать CDU на raspbery PI
 

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

 

Есть у меня Raspberry Pi B неплохой девайс но валяется без дела, я на нем экспериментировал с принтсервером для своего проекта, но не суть.

У него есть очень хорошие штуки начиная от GPIO и заканчивая HDMI выходом, вполне себе полноценный компьютер.

по сути что нам нужно для изготовления CDU:

1. плата клавиатуры сомдельная матричная с 72 кнопками и четырьмя светодиодами, причем без особых режимов типа капслока и т.д. — цена неизвестна зависит от компонентов и кто будет ее проектировать и печатать
2. дисплей 5 дюймов 800х600 (для распбери пи есть два варианта подключения дисплея через DCI или через HDMI) DCI дисплеев для разбере на китайском рынке не нашел, или можно взять расдолбаный планшет и выкавырять оттуда матрицу (У меня таких три штуки дома валяется), но нужен контроллер LCD универсальный, а это лишний хлам в блоке CDU по этому я остановился на универсальном варианте с маленькой платой переходником, чена от 2000-3000, есть даже тачскрин, но он без надобности, только если для настройки. 

Типа такого но это не самый дешевый вариант:

http://ru.aliexpress…fn QtsM&af=d99:

3. Сам Raspberry Pi B я покупал за 2700 на борту 2 USB Ethernet и прочие способы коммуникации, которыми можно воспользоваться для подключения к симу.

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

 

4. Корпус, вернее фронтальная панель, режется на лазере из молочного акрила цена вопроса в принципе не дороже рублей 700

 

Итоговая себестоимость CDU по моим расчетам должна составить максимум 7 тыс. руб., что согласитесь уже не 500 баксов за коробку с двумя соплями ;) И еще одно преимущество это всего одна сопля в виде витой пары или вообще работа по WiFi донглу без проводов

Ну и остаются кнопочки, над этим вопросом я пока не рассуждал.

Сейчас основной вопрос у меня состоит в следующем, как разработать собственную печатную плату и на каком контроллере ее сделать, при том чтобы не занимать порт USB а сделать через GPIO плюсом к клаве должны быть еще светодиоды ошибки и мессадж

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

Сообщение отредактировано artdevision: 21 January 2016 — 13:41


Ответов: 31

Идея хорошая, и сделать то в принципе можно. Но на мой взгляд в этом деле самый интересный момент — это ПО и то через какие грабли, костыли и  интерфесы это все будет работать :)

Корпус+кнопки, с окраской и гравировкой, выходит в 3.000р. 

У меня есть модель в кривых для корела, если надо.

Идея хорошая, и сделать то в принципе можно. Но на мой взгляд в этом деле самый интересный момент — это ПО и то через какие грабли, костыли и  интерфесы это все будет работать :)

Почему на граблях? Удаленный рабочий стол, все для убунты есть freedrp и rdesktop в зависимости от винды к какой подключиться надо, FPS там большой не требуется, а дальше может че и допилю тот же XHSI, но это уже долгая история.
И выводи там че хочешь, хоть окошко просима, хоть магенту. причем в отдельной пользовательской сессии и не зависимо что на машине сейчас работает, хотя конечно ньюансы могут быть именно с этим )
Можно там даже иксы настроить так чтобы сразу запускался нужный софт при инициализации оконной среды.
Как вариант еще есть разные эмуляторы чтобы виндовые приложения запускать, ну тут же модуль CDU просима.

Сообщение отредактировано artdevision: 21 January 2016 — 19:32

Почему на граблях? Удаленный рабочий стол, все для убунты есть freedrp и rdesktop в зависимости от винды к какой подключиться надо, FPS там большой не требуется, а дальше может че и допилю тот же XHSI, но это уже долгая история

 

Так проблема не в экране то. А вот как вы будете в симулятор передавать нажатие кнопки «А» допустим? Или любой другой?

Сообщение отредактировано Maxxe: 21 January 2016 — 19:29

Так проблема не в экране то. А вот как вы будете в симулятор передавать нажатие кнопки «А» допустим? Или любой другой?

Ну насколько я знаю тотже просим к примеру, насколько я его успел изучить, что-то вроде клиент-сервера. Основной модуль сервер, а все остальные модули в нем реализованы как клиенты и настраиваются может я чет плохо понял? В режиме доступа к рабочему столу кнопка «А» будет нажиматься как бы на машине на которой сим. Там вопрос в терминальной сессии будет работать под другим пользователем клиент-сервер просима тогоже или нет, но это чисто эксперементально можно установить, буду пробовать. Но поидее должен, локалхост он и в африке локалхост

Сообщение отредактировано artdevision: 21 January 2016 — 19:50

Так проблема не в экране то. А вот как вы будете в симулятор передавать нажатие кнопки «А» допустим? Или любой другой?

Как я понимаю кнопка «А» будет передаваться не в симулятор, а в просим посредством эмуляции клавиатуры, о чем автор и написал выше. :) Просим это позволяет. Плата клавиатуры будет зацеплена на тот же разпбери на котором будет предустановлен ProsimCDU. А для настроек типа адрес сервера Prosim, будет использоваться также предустановленная программа доступа к рабочему столу.

Как я понимаю кнопка «А» будет передаваться не в симулятор, а в просим посредством эмуляции клавиатуры, о чем автор и написал выше. :) Просим это позволяет. Плата клавиатуры будет зацеплена на тот же разпбери на котором будет предустановлен ProsimCDU. А для настроек типа адрес сервера Prosim, будет использоваться также предустановленная программа доступа к рабочему столу.

Да примерно такая схема, верно. Буду эксперементировать там подберу уже оптимальный вариант. Только сам просим можно и на рабочей машине настраивать даже не обязательно доступ к нему иметь. Удаленный рабочей стол нужен в случае если эмулятор не поднимет ProsimCDU

Сообщение отредактировано artdevision: 21 January 2016 — 20:03

Ну мы об этом вчера выпивали по скайпу :)  :cheer1:

Ну мы об этом вчера выпивали по скайпу :)  :cheer1:

Ага. Завтра поэксперементирую если че получится выложу скрины )

Ага, ну хорошо тогда. Просто изначально ничего о ПроСим написано не было. Откуда я знаю, может надо CDU под x737 для X-plane-а :) . Тогда все, вопрос снимается

на тот же разпбери на котором будет предустановлен ProsimCDU.

Просим умеет работать на чём-то, отличном от ПЦ?

ПЦ? не понял расшифровку этой аббревиатуры 

ПЦ? не понял расшифровку этой аббревиатуры

ПиСи, в смысле. Малина же на дугой аппаратной основе. Хотя емнип один из интерфейсов ProsimCDU позволяет сравнительно легко приделать к нему «малинового» клиента

ПиСи, в смысле. Малина же на дугой аппаратной основе. Хотя емнип один из интерфейсов ProsimCDU позволяет сравнительно легко приделать к нему «малинового» клиента

Не о веб интерфейсе ли речь? )

Аппаратная основа да ARM, поштудировал насчет wine к примру запускаться должен с костылями.
клиенты для удаленного рабочего стола (на машину на которой будет стоять сим, просим и винда) вообще без проблем запускаться должны, хотя с сборку под ARM всетаки делать придется. rdesktop (клиент под линуксов для подключения к виндовому рабочему столу) сам из дистрибутива встал, без танцев с бубном, но подключится к рабочему столу пока не получилось ибо стоит винда 7 home у которой напрочь отрезана функция подключения к удаленному рабочему столу, как эту беду вылечить пока не нагуглил
 

 

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

Причем независимо от того что сейчас на экране того самого компьютера происходит, терминал работает под отдельной сессией, параллельно 

 

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

8hI6B.jpg

Сообщение отредактировано artdevision: 21 January 2016 — 21:20

ПиСи, в смысле. Малина же на дугой аппаратной основе. Хотя емнип один из интерфейсов ProsimCDU позволяет сравнительно легко приделать к нему «малинового» клиента

Ну так распбери работает на линуксе, и Вы сами мне говорили, заставили работать ПроСим на линуксе. :) Я думаю, что ТС сможет, а может и Вы поделитесь прослоечкой)) 

Корпус+кнопки, с окраской и гравировкой, выходит в 3.000р. 

У меня есть модель в кривых для корела, если надо.

Буду благодарен если на мыло отправите )

В скайп лучше)

Не о веб интерфейсе ли речь? )

Нет, о generic TCP. Там что-то xml-образное бродит, годное к разбору и отображению
 

Аппаратная основа да ARM, поштудировал насчет wine к примру запускаться должен с костылями.

Для попытки запуска модулей ProSim требуется моно, как минимум. Это если они не нейтив бинари(вроде, не были)

Ну так распбери работает на линуксе, и Вы сами мне говорили, заставили работать ПроСим на линуксе. :)

С линуксовым X-Plane’ом. Сам ПроСим — нет. Теоретически, можно бы было попробовать вразумить, но, по-любому, это до очередного апдейта.

Сообщение отредактировано Ghost-V: 21 January 2016 — 23:07

Нет, о generic TCP. Там что-то xml-образное бродит, годное к разбору и отображению
 

 

XML образное это очень даже годно,Я кстати и веб интерфейс посмотрел, там тоже XML образное что-то ходит AJAX-ом и параметры гетом передаются тоже в полне годное для того чтобы приложуху несложную запилить

Сообщение отредактировано artdevision: 22 January 2016 — 07:42

XML образное это очень даже годно,Я кстати и веб интерфейс посмотрел, там тоже XML образное что-то ходит AJAX-ом и параметры гетом передаются тоже в полне годное для того чтобы приложуху несложную запилить

Generic кмк проще будет, хотя без xml-парсера тоже не обойтись. Просто два потока: туда символы-кнопки по мере надобности, оттуда — CDATA при изменениях на экране, и еще пара сообщений для включения транспорантов. Два спящих обработчика на ивентах

Ну вот запустил через удаленный рабочий стол, винду пришлось маленько модифицировать, кому интересно как убрать ограничение на доступ к удаленному рабочему столу в винде 7+ могу описать 
на RPi установлен клиент rdesktop для подключения к винде в терминальном режиме. 

 

В принципе можно таким образом всю приборку организовать, минус в том что по факту все это вертется будет на одной машине, плюс однако в том, что к этой самой машине не надо подключать кучу мониторов и ставить матерую видеокарту

Сообщение отредактировано artdevision: 23 January 2016 — 17:02

Кстати хороший способ быстро организовать CDU Это использовать планшет, под андроида в маркете есть клиент RDP от мелкомягкого, точно таким-же образом запускаешь клиента, подключаешься к компу и выводишь CDU на весь экран. все бюджетный вариант готов, причем оригинальный а не кривые поделки из маркета

Собрал таким образом целый почти кокпит :D

 

При подключении 2-х клиентов ноутбук конечно стал тормозить, но он итак не сильно шустрый, хоть и с «игровой» условно видюхой.
Но схема вполне рабочая, причем можно даже телефоны подключать на всякие гоаджи типа положения закрылков

Сейчас пошел дальше устанавливаю Wine (Эмулятор для виндовых программ) Не думаю, что в CDU просима используются какие-то экзотические библиотеки Win32 API которых нет в wine, так, что если удастся его установить, думаю заработает. Нагуглил что с версии 1.5.4 wine работает под ARM. Таким образом исполнять программу будет уже сам RPi не загружая систему с симом

Сообщение отредактировано artdevision: 23 January 2016 — 21:32

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

Если есть мысли как в обратную сторону ему параметры пулять буду рад если кто подскажет.

 

 

b1a971325b4a4d513f1b37ec7a473786.png

Думается мне надо будет ковырять в сторону SOIC сервера

Сообщение отредактировано artdevision: 25 January 2016 — 16:38

Если есть мысли как в обратную сторону ему параметры пулять буду рад если кто подскажет.

Писать в тот же сокет. Можно для пущей уверенности приконнектится телнетом

Писать в тот же сокет. Можно для пущей уверенности приконнектится телнетом

Пробовал, глухо никакой реакции, не то что входные параметры не задокументированы, но и формат данных который отдает, хотя там все предельно просто

Сообщение отредактировано artdevision: 26 January 2016 — 08:35

Пробовал, глухо никакой реакции, не то что входные параметры не задокументированы, но и формат данных который отдает, хотя там все предельно просто

Всё просто как табуретка. Про «оттуда» писать не буду, и так очевидно, а про «туда» коротенько будет так.

<посылка>::=[символ|команда]<CR>
<символ>::=[A-Z|0-9|. /-]
<команда>::=[LSKL[1-6]|LSKR[1-6]|DEL|CLEAR|INIT_REF|RTE|CLB|CRZ|DES|MENU|LEGS|DEP_ARR|HOLD|PROG|EXEC|N1|FIX|PREV|NEXT]

В строке посылки <CR> — это просто возврат каретки(на всякий случай ;)). Всё проверяется через telnet. Символы и команды можно набирать и в нижнем регистре.

Сообщение отредактировано Ghost-V: 27 January 2016 — 00:50

Да действительно просто, ну щас накидаю программку, спасибо =)

Небольшой ап, порезали мне акрил, чертежи с опенкокпитс брал немного доработал.
Цена вопроса — 1600 рублей, но в стоимость входит материал изготовителя, так, что бюджет в 700 рублей на этот этап у меня превышен более чем в два раза) Но изначальна я хотел купить лист акрила. Но плюс тоже в этом есть прозрачную часть я порезал из 5-мм оргстекла, а белую из 3мм. получилась более аккуратная панелька. по идее всеравно все под краску, но вырезанные клавиши я тоже оставил, думаю, что гравировку на них делать не буду, а просто напечатаю на пленке лазерным принтером и наклею и подкрашу. Преближенность к реальному внешнему виду CDU тут все равно весьма условная

NOeOVo1-vCA.jpg

AbN5TxgZMQ0.jpg

Сообщение отредактировано artdevision: 05 February 2016 — 22:05

Снова небольшой прогресс, запилил программку, пока без интерфейса, работает на малине, общается с CDU про сима по TCP, данные парсятся, ну и зажигаются ЛЕДы индикаторов. Доволен как слон, раньше не доводилось всякие лампочки программно зажигать, оказалось очень просто)

Ну вот видио как работает, качество не оч снимал на телефон

 

Работает по вафле,
за исходник взял XHSI она с открытым кодом, очень хорошо структурированный код, разобрался быстро достаточно 

Вот ссылочка на проект http://xhsi.sourceforge.net/
Для работы с GPIO использовал либу для JAVA pi4j
http://pi4j.com/