Еще одна попытка управления джойстиком, или USB -> PPM конвертор с преферансом и гейшами.
Софт тут:
Что надо для все этого:
- Arduino Mega ADK. 50$. Я сейчас жду такую, чтобы опробовать : dx.com/…/eduino-mega-adk-r3-module-blue-black-work…
или
- Arduino Mega 2560, на диалэестриме я покупал эту за 22$ dx.com/…/mega2560-atmega2560-microcontroller-devel…
и к ней за примерно столько-же USB Host Shield 2.0 Я в свое время брал у автора, так как на диалэкстриме не было версии 2.0, что важно. circuitsathome.com/…/usb-host-shield-2-0-for-ardui… Но сейчас полно клонов, причем у автора есть недостаток, с моей точки зрения, которой лишены клоны - колодки в авторской версии неправильные, плата может быть только последней в стеке, у меня из-за этого проблемы с xbee.
- Дисплей. Нужен любой Serial с поддержкой протокола Sparkfun, у меня был от Multwii за $10 - dx.com/…/arduino-mwc-multiwii-flight-control-board…
Далее - нужен софт от Ардуины. Тут все понятно - arduino.cc/en/Main/Software.
После чего надо добавить в папочку /libraries/ взятую отсюда github.com/felis/USB_Host_Shield_2.0 библиотеку.
Собственно все по компонентам. Теперь по софту. Для него необходима .Net Framework 4.0. Побаловаться можно и без плат, но тогда все вручную надо вводить и редима отладки не будет.
Сколько раз я на форуме прочитал “да ну эту мегу, вперед к 32 битным контроллерам”, настало время и мне такое сказать. Какие 50 баксов за мегу адк, кому оно надо. 12 долларов, TI Tiva с доставкой, 80 МГц, еще и РТОС ежели достанет самого с USB общаться. А еще и ST32F4 скоро приедет, тоже дешевле меги и куда веселей, хотя и не так весело как тива, где 2 USB разьема распаяно, для полного удобства.
А так - дорисовал общение с XBEE, поставил ретранслятор, летает … если б не небольшие приколы меги, а точнее того как мега работает с USB шилдом - было бы вообще прелесть. А так - переделаю за месяцок на нормальную плату.
А есть видео как это все работает?
А что именно на видео? Что я дергаю джойстик и у самолета элероны отконяются? или видео как с программой работать? Хотя - нету ни того ни другого. И если первое снять не проблема, то второе - тот еще гимор, я несколько раз пробовал - фигня выходит.
А что именно на видео? Что я дергаю джойстик и у самолета элероны отконяются? или видео как с программой работать? Хотя - нету ни того ни другого. И если первое снять не проблема, то второе - тот еще гимор, я несколько раз пробовал - фигня выходит.
Тогда с нетерпением ждём конечного результата для использования.
Добрался, наконец до компьютера. Итак, по порядку. Проект портирован на STM32F407 чип. Текущая версия работает и проверена на 407VG чипе, должна работать 100% на 407VE (подлые китайцы, заказал плату для проверок, по спецификации на VE чипе, прислали VG. И хрен что им возразить, VG то лучше! Разницы там только размер внутренней флешки - мегабайт VG против 512К VE, так что проблем не будет, но протестировать сам не могу). Жду через неделю еще и 407Z плату, больше для других целей (будет потом версия под этот чип с тач цветным экраном), но и текущую проверю тоже.
Я все свои платы заказывал у производителя - wvshare.com. Они в Израиль шлют только DHL за 30 баксов, зато делают это быстро, в другие страны есть и иные, более дешевые, варианты. Ну или эти-же платы можно найти и на ebay и на dx.com. Далее я укажу как мой сетап так и альтернативы, в принципе работать должно, и я частично проверял альтернативные варианты, но … ну сами понимаете.
По поводу функционала. Уже реализовано много разных блоков. Проблем реализовать любые другие - никаких. Надо только описание, как этот преобразователь работает, какая его логика и математика. Быстрое фурье преобразование плата скорее всего не вытянет, но даже его попробовать можно. А уж микшеры, преобразователи кнопок, экспоненты, многоточечные кривые, взаимо зависимые каналы и прочее, столь необходимое нам в нашем суровом хобби – без проблем. Функционал буду расширято по мере поступления заявок, как окончательно стабилизирую версию – выложу исходники в открытый репозитарий, пока есть закрытый проект на visualstudio.com, в принципе я могу добавить заинтересованных разработчиков, но это требует вложений, как минимум надо купить VisualGDB и иметь VS2012.
Текущая версия рабочая, как вернусь домой на следующей неделе - поеду с ней в поля, проверять удобство моих прошивок с моими самолетами. На коптер пока не решусь, но Скай и твинстар погоняю 100%. Столик только надо удобный придумать под джойстик.
Теперь хардварный сетап. Текущий мой рабочий вариант:
www.wvshare.com/product/Port407V.htm Основная плата. $29
www.wvshare.com/product/FM24CLXX-FRAM-Board.htm Внешная память, $5
www.wvshare.com/product/LCD1602-3.3V-yellow.htm Экран 2х строчный по 16 символов. $4
Пачка проводов, чтоб все это соединить, я сам нарезал из имевшейся у меня бобины, но
dx.com/…/30cm-breadboard-wires-for-electronic-diy-… что-то вроде найти не проблема. А можно и самому наобжимать.
Если в хозяйстве нет FTDI – тоже понадобится, вообще полезная штука. В принципе надо 3.3 вольтовый типа www.wvshare.com/…/PL2303-USB-UART-Board-mini.htm, но пойдет любой, даже 5 вольтовый.
Далее вариации.
Основную плату можно заменить на:
www.wvshare.com/product/Core407V.htm чуть дешевле плата, $24, но нет монтажных отверстий и пины торчат вниз, не так удобно.
Можно взять родной STMF4Discovery – в принципе я на этой плате разработку и веду, но опять же пины вниз, нету крепежных дырок, не удобно. Зато не надо FTDI. Хотя вру – для тестирования конфигурации – все равно надо.
Можно заменить FRAM на EEPROM – доллар экономии, но смысла я не вижу. Фрам совместима интерфейсно, но надежней, быстрее, больше циклов перезаписи … вобщем она почти убила еепром, зачем мучать трупик. Хотя у меня валялся чип еепрома, я его на макетку посадил, припаял разьемы – работает.
Отдельная песня – экран. Тот, что я поставил в список – он требует 10 (да-да десять) проводов к плате. Зато быстрый. Вот тут возможны вариации. У меня есть вариант рабочего сетапа с экраном на I2C, у меня вот такой - dx.com/…/funduino-iic-i2c-1602-lcd-adapter-board-w… за $8.60. Но с ним проблема у меня – не знаю почему, но работает с дискавери платой и упорно не работает с Port407. Буду разбираться, но кажется мне, что ему не хватает уровня логики, так как чип 5 вольтовый. Попробую конвертор логики. Есть еще вариант – отдельно купить www.wvshare.com/…/PCF8574-IO-Expansion-Board.htm вот такую фигню, но я опять-же пока не пробовал, ну или на ebay полно плат I2C/TWI interface module for 1602LCD.
Технически еще можно экран с UART интерфейсом, которые используются для Multwii в качестве бортового экранчика, у меня есть один, тоже работает.
Но общая рекомендация по экрану – или тот, что я дал параллельный с 10 проводами, или он-же но с I2C платой, неважно самосбор или готовый с ебай/дх. Вариант с платой от wvshare я пока не проверил, жду плату. Если что – отпишусь.
Ну и напоследок за софт. Теперь это будет только 1 программа и 1 готовая прошивка для платы. Технически софт для платы состоит из основной и дополнительной прошивки. Первая – готовая и стандартная для всех. Вторая – генериться программной и заливается по определенному адресу, пока руками, но будет автомат. То есть на данный момент программа генерит готовую “дополнительную” прошивку, но сама не прошивает, это я в ближайние недели добавлю. Линки на софт выложу в конце недели, как вернусь из командировки.
Где-то так.
Сергей, планируется ли производство готового устройства? Чтобы подключил (настроил через комп. параметры) и можно летать. думаю пользовалось бы спросом, так как законченных таких устройств на рынке нет.
скорее всего пользовалось спросом года 2-1,5 назад, теперь рынок завален ВАРИАНТАМИ подключения джоя.
Лично мое мнение :следующий уровень думаю будет (реализованный вариант управления Нунчаками )держа руки в карманах и тепле. Это уже Парень из Израиля реализовал, но не доработав пропал и не двигает свой проэкт. Считаю что джойстик доживает свое время.
маленькая платка акселерометров, ардуинка, кодер и вч модуль+батарейка. Все в нутри рукояти и пара кнопок на ней. Все 😃
Вариант забаненного тут Петра я пробовал, правда в своем исполнении - именно акселерометры, ардуина, и маломощный радиомодуль на xbee - далее ретранслятор с LRS. мне НЕ удобно, джойстик/штурвал - он повторяет реальное устройство управления самолетом. По хорошему еще и педали надо, для полноты картины. Т.е. крылом управлять 5 минут - удобно. Скайволкером 30 минут не фонтан, рука устает.
Заваленной рынок - ну прямые трансляторы каналов джоя в ппм я видел, со своими приколами. Варианта с математикой внутри, с настройами любых микшеров/кнопок и т.д. - нет. Мне надо для себя - 4 модели, из которых 1 коптер.
В скае - микшер элероны - РН с управляемым коэфициентов и 1 канал переключаемый кнопкой для смены режимов OSD, все триммера на кнопках, с запоминанием значений триммеров между выключением аппаратуры, управление камерой с хатки.
В твинстаре - отключаемый микс элеронов в РВ, несиметричный ход элеронов, 2 полетных режима ( нормальный и акро), сохраненяемые триммера.
Коптер - переключатель режимов кнопкой, кнопка для режима альтхолд, кнопка для управления ОСД.
Крыло - дельта с 2мя режимами расходов и кручением камеры хаткой.
Опционально - хэдтрекер с управлением центровкой кнопкой джойстика.
Скажите мне готовое решение, коим завален рынок, где я все это могу сделать. И еще и за $40. Я просто так взялся все это фигачить, от нечего делать.
Сергей, планируется ли производство готового устройства? Чтобы подключил (настроил через комп. параметры) и можно летать. думаю пользовалось бы спросом, так как законченных таких устройств на рынке нет.
тоже интересует данный вопрос?
Сергей, планируется ли производство готового устройства? Чтобы подключил (настроил через комп. параметры) и можно летать. думаю пользовалось бы спросом, так как законченных таких устройств на рынке нет.
С этим проблема по большому счету. Я не железячник - я программист. Спроектировать даже на готовых элементах (а там их, 3 чипа, питание, возможно развязка 5-3.3 вольта) я не умею. Т.е. могу попытаться на макетке собрать, но это не атмега с 16 ногами, это 100 ногий чип. Поэтому и даю решение на готовых платах. Если народ будет пользоваться - попробую кого-нибудь, или может кто сам соберет готовое под софт - я буду только за ( ну за скромный % за поддержку и развитие программной части), тем более что софт я открою.
На самом деле - выглядит страшно, но после сбоки коптеров - соединить проводочками 3 платы … тем более если экран I2C - ну правда … боле проблем это в коробку какую красиво запаковать.
самое легкое решение это просто тупо РУ плату вфигачить в джой!!! как я и зделал. И все ваши потребности реализовал.
Я тоже могу реализовать все мои потребности. С моим опытом программирования - без проблем. И если бы речь шла обо мне - я то проэкт был бы в 3 раза проще и тоже из серии - я взял плату, написал под нее код и У МЕНЯ работает. А сей проект для тех, у кого есть потребности, но нет умения писать код, используя мое решение ЛЮБОЙ умеющий подключить плату 3мя проводами и могущий запустить софт на компе может составить просто и без проблем создать и настроить свой умный конвертор. В этом и есть разница меж нашими проектами.
Ну и я не говорю про то, что я бы не стал ради РУ ломать совой TM Hotas Cougar, работающий на датчиках магнитного поля. А так - я ео могу и для самолета и для компа использовать.
конечно ваш прибамбас будет актуален среди тех кто хочет и поиграть в симулятор и полетать на том же джое.
Но!!! думаю что только изза штекера USB делать конвертор это както не инжинерно. Получается что мы рукой делаем движение, конвертируем его в код для USB,затем придумываем другой конвертор который трансформирует один код в другой,затем попадает в третий кодер который переводит в ппм сигнал и посылает его на растояние. Недай бог хоть один заглючит или даст ошибку. Думаю без задержки вы не обойдетесь, а если больше каналов то и логично считать что процессор нагружается больше и вероятность сбоя повышается.
Теперь самое интересное.
Если произойдет сбойпитания или конвертор перегреется, что тоже бывает, восстановится ли система процессов или она будет перезапускаться?
Поясню конкретнее : если нечаянно сбилось питание, то как ваш продукт поведет себя?
моментально включится и продолжит работу конвертирования ?
или же как и все процессоры будет загружаться сначало, а потом продолжит работу конвертирования? Тем более что все пульты управления при старте загружаются несколько секунд.
Не подумайте ничего плохово, просто я тоже интересуюсь и мне просто хочется подробней знать. Тем более думаю тут многие не специалисты как я интересуются, и всех интересует сохранность модели при запуске дорогостоящих аппаратов.
да, забыл спросить, а как вы собираетесь настраивать джойстики? их столько много разных, один на датчиках Холла, другой на резисторах в 5Ком, а другие в 5Ком. у одних середина не по середине(смещена)
я привел примеры а не придираюсь
С Уважением.
Присоединяюсь!
Очень интересно тут у Вас!
конечно ваш прибамбас будет актуален среди тех кто хочет и поиграть в симулятор и полетать на том же джое.
Или у кого есть нормальный, но уже не нужный джойстик. Вашим методом свой сайтек 45 я не обработаю - 23 кнопки, 3 хатки, 7 осей … А моему методу ВСЕ РАВНО сколько осей или кнопок у джойстика.
Но!!! думаю что только изза штекера USB делать конвертор это както не инжинерно. Получается что мы рукой делаем движение, конвертируем его в код для USB,затем придумываем другой конвертор который трансформирует один код в другой,затем попадает в третий кодер который переводит в ппм сигнал и посылает его на растояние. Недай бог хоть один заглючит или даст ошибку.
Как раз инженерно - собрать устройство, позволяющее работать по стандартному протоколу с любым входящим устройством данного класса. А делать кастом плату под каждый отдельный джойстик, еще и меняя в ём детали, протаскивая новые провода и/или пытаясь сделать реверс инжинириг внутрееного протокола джойстика - это не инженерный подход.
Рукой делаем движение … вы в курсе как работает USB устройство? Оно унутри себя определяет состояние и НЕМЕДЛЕЕНО отдает его по запросу хоста. Т.е. вопрос в частоте опроса хостом. Несоклько отличается от Вашей картины. И кодер ровно один - на вход USB HID Report, на выход PPM. Насчет заглючит или даст ошибку … ну еще метеорит может упасть - у любого устройства есть своя надежность, и метод исправления ситуации.
Думаю без задержки вы не обойдетесь, а если больше каналов то и логично считать что процессор нагружается больше и вероятность сбоя повышается.
Без задержки не обойдусь. 22.5мс PPM фрейма всегда со мной, никуда от них не деться, поэтому в теме у Байчи я спрашивал про цифровой вход LRS. Процессор нагружается - оба слова в данной фразе не верны. Это НЕ процессор. Это микроконтроллер. Разница огромна. И именно поэтому он НЕ нагружается. Микрокотроллер или успевает или нет.
Теперь самое интересное.
Если произойдет сбойпитания или конвертор перегреется, что тоже бывает, восстановится ли система процессов или она будет перезапускаться?
Поясню конкретнее : если нечаянно сбилось питание, то как ваш продукт поведет себя?
моментально включится и продолжит работу конвертирования ?
или же как и все процессоры будет загружаться сначало, а потом продолжит работу конвертирования? Тем более что все пульты управления при старте загружаются несколько секунд.
Еще раз - это контроллер, а не процессор. Он СРАЗУ после старта перезагрузки начинает исполнение кода. Но задержка, вы правы, будет - надо инициализировать USB. Примерно 0.2-0.5 секунды. Что касаемо надежности связки - она не ниже, чем связка пульт-LRS. На замену которой, собственно, и ориентирована.
Не подумайте ничего плохово, просто я тоже интересуюсь и мне просто хочется подробней знать. Тем более думаю тут многие не специалисты как я интересуются, и всех интересует сохранность модели при запуске дорогостоящих аппаратов.
Сохранность дорогостоящих аппаратов обеспечивается целым рядом мероприятий, и вылет наземного оборудования далеко не самая частая причина потери. К этой теме не относится вообще никак.
да, забыл спросить, а как вы собираетесь настраивать джойстики? их столько много разных, один на датчиках Холла, другой на резисторах в 5Ком, а другие в 5Ком. у одних середина не по середине(смещена)
я привел примеры а не придираюсьС Уважением.
Вот в том то и идея проекта - джойстик может быть ЛЮБОЙ. Вообще. В том то и красота проекта. Я скажу Вам по секрету - технологически возможно, и может быть через несколько месяцев я в себе найду на это силы, даже НЕСКОЛЬКО джойстиков подключить. И все это смиксовать. И возможно это как раз потому, что мне все равно что там у него внутри. Меня интересует СТАНДАТНЫЙ ответ на СТАНДАРТНЫЙ HID GetReport запрос, который в стандартном виде приносит мне состояние джойстика во всех подробностях. А так - и середину можно сместить, и крайние точки, и вообще все сделать.
Я летать собираюсь пока с тем-же Saitek FLY5, что и у Вас. Потом добавлю к нему Throttle Quadrant на тягу. А потом может и педали. А может перейду на Кугар или X52. И все это БУДЕТ работать. Я уже проверял. Еще пробовал Logitec Extreme 3D, TM Afterburner … хотя вот наткнулся по глупости на Saitek Aviator for Xbox - этот завести не смог. Там свой протокол, не HID, облом. Не могу найти в магазинах Aviator for PC - хотелось бы и на нем проверить.
сей проект для тех, у кого есть потребности, но нет умения писать код, используя мое решение ЛЮБОЙ умеющий подключить плату 3мя проводами и могущий запустить софт на компе может составить просто и без проблем создать и настроить свой умный конвертор
Super! Я один из тех кто с нетерпением ждет окончательного варианта как простым способом использовать джойстик для управления летательным аппаратом без радикального изменения конструкции пульта и, тем более, без програмирования, ну ноль я в этой области электроники. Вот подключить провода и запустить софт - это осилим. Так что ждем с нетерпением тем более что джойстиками уже запаслись. 😇
СТОП !!!
Вы описывали выше что ваш прибамбас будет "Миксовать, Настраивать,Регулировать и делать разные реверансы + ко всему конвертировать джойстик в ППМ сигнал ??!!
Поправьте меня если я ошибаюсь, но не Процессор ли отвечает за такие Навороты?
Да согласен что контроллер может моментально конвертировать, но у вас простой джой с любым мясом внутри который вы собираетесь научить каждый канал отвечать за свою работу причем не механически, а через посредников, и сложную систему миксов или тримов- это же процессор нужен, как настоящей аппаратуре.
Или вы просто конвертируете движение каждого канала джоя, а пульт РУ делает все остальное?
Евгений, у вас неверное представление о том что такое процессор и что такое микроконтроллер. Рекомендую вкратце ознакомиться с вопросом. После ознакомления у вас пропадет ваше непонимание. ru.wikipedia.org/wiki/Микроконтроллер
STM32 - микроконтроллер. Код исполняется сразу после включения питания. Но внутри исполняется КОД, обычный код, написанный на с++, скомпилированный почти обычным gcc, который умеет считать разного рода математику. Тоже самое и с ардуиной, и с pic32 и с продукцией TI и еще множеством разных производителей. И все что меня интересует - сумеет ли этот микроконтроллер обработать за нужное мне время нужное мне количество математики. С учетом того, что там еще надо обработать прерывания таймеров, периферии и много чего другого.
Спасибо. беру свои слова обратно
меня тоже давно беспокоил вопрос подключения джойстиков по ппм , у меня дурацкая идея использовать вместо чудо коробочки андройд смартфон/планшет , джойстики распознаются ондройдом любые или почти любые , ппм в разьем наушников без проблем выводится , есть готовые программы но вместо джойстика у них используется акселерометр смартфона и сенсор
для меня виднеются плюсы такой хурмы
- паять ничего не надо
- цена, на смартфон который справится с этой задачей примерно 60$ единственное требование к смартфону это наличие USB-OTG и разъема наушников
- настраивать хитрые микширования можно прямо на устройстве
минус пока один , такую прогу еще не написали (или я не нашел) , наверное придется самому с программированным под андройд разбираться(
искренне надеюсь что вы меня пошлете … в гугл маркет