Переключатель режимов по схеме Алексея Козина для Turnigy 9x


В статье будет рассказано об удобном переключателе полетных режимов для контроллера APM, разработанным Алексеем Козиным. Основой переключателя является микроконтроллер ATmega328, входящий в Arduino Pro Mini.

Алексей Козин предложил отличный вариант (ссылки на дневник и сайт) переключателя полетных режимов APM для аппаратуры радиоуправления. Подойдет, наверно, практически ко всем аппаратурам, имеющим хотя бы один аналоговый регулятор (переменный резистор) — «крутилку». Предполагается его замена на изготавливаемый переключатель. О плюсах переключателя по сравнению с другими способами организации переключения режимов  и настройке описано в дневнике. На аппаратуре надо заранее настроить «крутилку» на выход канала 5. Этот канал с аппаратуры подключить на 5й входной канал APM и проверить работу. Лучше будет установить прошивку er9x (источник на прошивку можно найти в статье «Настройка переключателя режимов на прошивке er9x для Turnigy 9x»).

Схема переключателя в первом исполнении (на момент разработки у APM было 5 режимов):

Схема переключателя на 5 режимов

Схема переключателя на 5 режимов

Исходный код переключателя (5 режимов)

Добавление 6й кнопки (6 режимов):

Схема переключателя режимов

Схема переключателя режимов

Исходный код переключателя (6 режимов)

Актуальная прошивка позволяет удобно подстраивать уровни каждого из каналов.

Возможности:

  • при замыкании пина D9 на GND после инициализации контролера происходит регулировка уровня выбранного канала в меньшую сторону, уменьшение индицируется миганием светодиода если светодиод перестал мигать — достигнуто максимальное или минимальное значение
  • при замыкании пина D8 на GND после инициализации контролера происходит регулировка уровня выбранного канала в большую сторону, уменьшение индицируется миганием светодиода если светодиод перестал мигать — достигнуто максимальное или минимальное значение
  • при замыкании пина D9 на GND в момент включения питания происходит сброс параметров на те что указаны в прошивке по умолчанию
  • На вывод D7 можно подключить пьезо — пищалку, при этом переключение каналов подтверждается писком. (Индуктивные пищалки следует зашунтировать защитным диодом параллельно пищалке, анодом на GND)

Это расширение возможностей позволит избежать трудоемкой процедуры калибровки аппаратуры и прошивки.

После изготовления платы с кнопками и загрузки прошивки в Arduino приступаем к сборке. Спаиваем все согласно схеме. Далее разбираем аппаратуру и снимаем понравившуюся/ненужную «крутилку». Мультиметром ищем провода земли и питания +5В. Третий провод — «сигнальный». Подпаиваем собранный переключатель к этим трем проводам. Далее монтируем переключатель на аппаратуре удобным для вас способом и собираем аппаратуру (до сборки можно предварительно включить и проверить работу). Проверяем работу переключателя и показания в Mission Planner.

Более подробную информацию можно найти в дневнике или сайте Алексея Козина (см. ссылки выше) и сказать ему «Спасибо»!

Update 04.06.2014: Имеется аналогичный девайс, сделанный за бугром.

Update 10.08.2014: Видеоматериал от Юлиана.

Юлиан доработал свою аппаратуру платой, сделанной Александром Мининым по схеме Алексея Козина (в видео оговорка). Смотрим процесс подключения на видео!

Update 10.04.2015: Заметка от пилота Dimon по поводу уровней сигнала.

Развернуть

Для аппаратуры Turnigy 9xr необходимо применять Arduino на 3.3В (либо колхозить из Arduino на 5В) с уровнем сигнала 3.3В, т.к. на аппаратуре на резистор поступает 3.3 вместо 5В. Хоть и 16МГц от 3.3В не документируется, но работает нормально. Проверено.

Update 06.04.2016: Модифицированная версия прошивки для переключателя на 3 режима от пользователя Kalerva

Трехкнопочный переключатель режимов (делался под naza m lite v1 прошитый во второй).

Т.к. в naza всего пять режимов полетов, два из которых промежуточный failsafe. А режим manual аналог режима камикадзе.
Было решено собрать переключатель всего лишь трех полетных режимов  (GPS, Attitude и FS).
a10 — PWM
d7 — buzzerr
d8* — tune up * — зажатая при включении сбросит настройки свитчера
d9 — tune down
a0 — led1
a1 — led2
a2 — led3

Схема переключателя на 3 режима

Схема переключателя на 3 режима

Исходный код переключателя (3 режима)

Если вы нашли ошибку на странице, то нажмите Shift + Enter или нажмите здесь, чтобы уведомить нас.

 
 

Комментариев: 57 - Переключатель режимов по схеме Алексея Козина для Turnigy 9x

  1. Андрей:

    Эта схема же не только для 9x подходит 🙂 Алексей ее вообще для HK-T6A делал

    Thumb up 0 Thumb down 0

    • Не сомневаюсь!
      Андрей, видать в этот раз вы не очень внимательно читали этот момент: «Подойдет наверно практически ко всем аппаратурам, имеющим хотя бы один аналоговый регулятор (переменный резистор) — «крутилку».» 🙂

      Thumb up 0 Thumb down 0

  2. Сергей:

    Отличное дело делаете, парни! Мегауважуха вам!
    Номиналы резюков и кондеров не увидел только.

    Thumb up 0 Thumb down 0

  3. Matvey:

    Обалденно! сделано 🙂

    Thumb up 0 Thumb down 0

  4. Митя:

    Тоже заказал у Александра Минина переключатель, он сейчас присылает с доп. комплектацией:
    — две наклейки на корпус уже с высечкой под надписи
    — сами наклейки с надписями режимов
    — пластиковые упоры и панельку подсветки (ту что Юлиан вырезал со старого экрана Нокии)

    Thumb up 0 Thumb down 0

  5. Сергей:

    Приветствую!
    Можно ли проверить работоспособность схемы не подключая к аппе? Собрал шестикнопочную схему. Судя по переключению СИДов робит, но не хочу рисковать.

    Thumb up 0 Thumb down 0

    • По светодиодам смотреть не совсем правильно. Они показывают, что программа работает. А вот что на выходе ШИМ — это надо смотреть. Вариантов не много: смотреть осциллографом, либо подключить в канал APM и смотреть значение импульса канала в MP.
      Рисковать там особо нечем. Главное в разных положениях посмотрите мультиметром, чтобы не было превышения напряжения 5В, чего и не должно быть.

      Thumb up 0 Thumb down 0

      • Сергей:

        Я к сожалению далек от электроники такого уровня, но в проге «Блинк» и производных от нее яркость светодиода регулится как раз за счет ШИМа. Мож имеет смысл попробовать или там другой алгоритм модуляции?

        Thumb up 0 Thumb down 0

  6. Сергей:

    Подключил, работает, но только в первой половине диапазона. Т.е. первая кнопка 990, шестая 1470. Аппа 9XR, прошивка стоковая. Пробую настроить аппу, но т.к. я ее только недавно получил особыми познаниями не обладаю. Если подскажете куда копать, буду весьма признателен.

    забыл добавить: при нажатой шестой кнопке после фильтра, на выходе 4.2 В

    откалибровал стики, крутилки и переключатель на аппе, все встало на свои места.

    Thumb up 0 Thumb down 0

  7. Дмитрий:

    Добрый день посмотрел видео очень понравилось.
    Можно получить ссылку Александра Минина, чтобы связаться и приобрести эту плату для установки в аппу.

    Thumb up 0 Thumb down 0

    • Добрый день. У меня есть только ссылки на сайт Алексея (в начале статьи). Разработчик он. А Александр видимо повторил его идею. А как связаться с Александром, наверно знает Юлиан, но мы с ним давно не связывались.

      Thumb up 0 Thumb down 0

  8. Сергей (macrokernel):

    Похоже, что китайцы изобрели что-то подобное: http://www.goodluckbuy.com/apm-flight-controller-flight-mode-switcher-selector-board-v2.html Цена очень приятная, но форм-фактор другой. Интересно, оно подключается так же вместо потенциометра?

    Thumb up 0 Thumb down 0

    • Подключается так же. Процессор STM, прошивки… Не понятно зачем. То, что готовое устройство — это хорошо. А если надо дешевле, то собирать переключатель Алексея.

      Thumb up 0 Thumb down 0

      • Сергей (macrokernel):

        Я, например, сам не соберу, проще купить. Только не понятно, как его встраивать в аппаратуру, к нему бы корпус.

        Thumb up 0 Thumb down 0

        • В магазинах моего региона я нашел подходящий корпус. На фото в других статьях есть аппаратура с установленным переключателем. Корпус имеет размеры около 70х50, либо пробовал запихнуть самоделку на ардуине еще в 50х30. Если не перепаивать кнопки на этой плате, то можно использовать толкатели. Так же продаются в магазинах радиодеталей.

          Thumb up 0 Thumb down 0

      • Сергей (macrokernel):

        Вот тут http://www.rcgroups.com/forums/showthread.php?t=1820773&page=1339 ребята обсуждают эту штуковину.

        Thumb up 0 Thumb down 0

    • Сергей (macrokernel):

      Нашел описание сего китайского чуда. Смотреть через гугл транслейт: http://item.taobao.com/item.htm?spm=a230r.1.14.1.v5osMv&id=39039177598 Там есть и точные размеры, и видео с демонстрацией работы, и описание настройки.

      Видео: http://v.youku.com/v_show/id_XNzEzMTM2MzQ4.html
      Программы для настройки: http://pan.baidu.com/s/1o6nzsh0

      Thumb up 0 Thumb down 0

  9. Артём:

    Жаль в программировании пока не силён, а то было бы неплохо прикрутить к этому устройству ардуиновский OLED дисплейчик и выводить на него названия режимов. У кого-нибудь есть идеи на этот счёт?

    Thumb up 0 Thumb down 0

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

      Thumb up 0 Thumb down 0

      • Артём:

        Т.е. получается в моём Таранисе это уже где то есть в недрах настроек и можно как то выводить названия режимов на штатный дисплей?

        Thumb up 0 Thumb down 0

        • Про таранис ничего не подскажу. А на турнигу возможна доработка. Данные берутся с Mavlink телеметрии.

          Thumb up 0 Thumb down 0

  10. Arkady:

    Учтите, что этим переключаетелем невозможно пользоваться вслепую, т.е в ФТП очках! Думаю проще все таки настроить тумблеры!

    Thumb up 0 Thumb down 0

    • А часто приходится пользоваться всеми режимами в FPV? Обычно это стаб/альтхолд, лоитер и ртл.
      Меня устраивает моя конструкция.

      Thumb up 0 Thumb down 0

  11. Vladimir:

    А можно ли использовать стандартную плату Arduino Nano, типа вот такого:
    http://arduino55.ru/arduino/nano_atmega328_usb.html

    Thumb up 0 Thumb down 0

    • Да запросто! Я использовал Pro mini. Разница только в наличии FTDI.

      Thumb up 0 Thumb down 0

      • Vladimir:

        Был бы признателен за инструкцию и скорректированную схему, как подключить всё на Pro Mini, она у нас тоже продается и даже чуть дешевле nano.

        Thumb up 0 Thumb down 0

        • А в чем затруднения? Берете вторую схему, подставляете номиналы компонентов из первой схемы. Собираете. Заливаете через FTDI прошивку и наслаждаетесь.

          Thumb up 0 Thumb down 0

  12. Dimon:

    Код из 6 (канального) надо поправить. Обьясню почему — по умолчанию взяты данные режимов из 5 канального и в результате получаем

    EEPROM.write(14, 0); — Минимальное значение 988
    EEPROM.write(15, 84); — 1320
    EEPROM.write(16, 127); — 1495
    EEPROM.write(17, 160); — 1629
    EEPROM.write(18, 190); — 1751
    EEPROM.write(19, 255); — максимальное значение 2010

    у меня получилось так да и у всех примерно так-же.

    теперь смотрим режимы в MP
    1 0 -1230
    2 1231 — 1360
    3 1361 — 1490
    4 1491 — 1620
    5 1621 — 1749
    6 1750 +
    И получаем что последних 2 режима попадают на одну и туже позицию в МР так как 6 режим начинается 1750 + .
    и нет попадания в 3 режим
    Да и 5 режим на грани что тоже не очень хорошо.
    Можно конечно подрегулировать кнопками, но я например не собирался их делать — но пришлось

    Я с Arduino имею дело в первые поэтому не знаю как вычитать данные с памяти и посмотреть как они расположились. Если кто подскажет как это сделать, то выложу более правильные данные для прошивки.
    Ну или ждать пока руки дойдут чтоб с этим разобраться.

    Thumb up 0 Thumb down 0

    • Dimon:

      А вот и нашел ответ в другом месте 🙂

      EEPROM.write(14, 0);
      EEPROM.write(15, 51);
      EEPROM.write(16, 102);
      EEPROM.write(17, 153);
      EEPROM.write(18, 204);
      EEPROM.write(19, 255);

      Может просто поправите код в основном сообщении.

      Thumb up 0 Thumb down 0

      • Dimon, спасибо за замечания! Добавлю ваш комментарий в статью, что на это необходимо обратить внимание. А вот править код или нет — пусть пользователи сами решают. Этот код взят из дневника Алексея и я учел все, что предлагали в комментариях. С этим кодом у меня получилось, что значения попали примерно в середину диапазонов режимов. Если не ошибаюсь, то как раз выходные резисторы и конденсаторы за это отвечают.

        Thumb up 0 Thumb down 0

        • Dimon:

          Еще тогда добавляйте след информацию информацию:
          Для владельцев turnigy 9xr pro в этих аппах идет не 5в на переменные резисторы а 3.3в. Я использовал обычную китайскую pro mini на 5в. она с успехом завелась и работает, но не факт, что другие будут работать. Просто прежде чем делать надо проверить заведется ли ваша Arduino на 3.3 вольта. Или брать те которые сходу на 3.3в.

          Thumb up 0 Thumb down 0

  13. стас:

    Извините за вопрос не в тему, хотел написать и показать фото про то как я установил переключатель шести полетных режимов от Александра Минина, очень нужная вещь а Как фото выложить? Не пойму, установил его на радиолинк ат9

    Thumb up 0 Thumb down 0

    • Станислав, пришлите на почту фото и описание, как делали. Добавлю в статью для наглядности. Так будет полезней, чем в комментариях. А в комментариях изображения можно вставлять HTML тегами с других ресурсов, например с хостингов картинок.

      Thumb up 0 Thumb down 0

  14. Артём_vrn:

    Всем привет! После продолжительных исследований программирования наконец-то готов и мой вариант переключателя. Программа написана на баскоме, т.е. с нуля. В устройстве используется графический дисплей OLED 128*64.
    Немного внутренностей:
    http://s020.radikal.ru/i720/1603/2f/ca219015cd61.jpg
    http://s013.radikal.ru/i324/1603/17/aca75101e9fa.jpg
    http://s020.radikal.ru/i713/1603/dd/f4b135cd19cd.jpg
    http://s017.radikal.ru/i440/1603/c5/7be771f0dfd0.jpg
    Отверстие в корпусе пульта и панелька из оргстекла делались на самопальном чпу-станке.
    http://www.youtube.com/watch?v=NDB7Al5Z3i0
    А тут как это работает:
    http://www.youtube.com/watch?v=1XTRASQYw40
    Менюшку с выбором типа летательного аппарата сделал просто так, может пригодится, когда начну осваивать самолёты и полётные режимы будут другими. Пока у меня только коптер, поэтому после выбора того или другого программа попадает в коптерный список режимов. Это опционально и всегда можно удалить.
    Также есть вариант программы под символьный дисплей 16*2, но встроенного решения с ним уж точно не получится))

    Thumb up 0 Thumb down 0

    • Артем, спасибо за информацию. Можете создать тему на форуме и поделиться схемой и прошивкой. Может кому пригодится.

      Thumb up 0 Thumb down 0

      • Артём_vrn:

        Хорошо, постараюсь привести всё в порядок и зарегиться на форуме.

        Thumb up 0 Thumb down 0

  15. Kalerva:

    А можно-ли как-нибудь сделать переключатель с четыремя кнопками (only)?

    Thumb up 0 Thumb down 0

    • Артём_vrn:

      Можно (of course) 🙂

      Thumb up 0 Thumb down 0

      • Kalerva:

        Не подскажете как?
        Просто не цеплять две кнопки и все?

        Thumb up 0 Thumb down 0

        • Артём_vrn:

          Можете пойти и по такому пути, просто не цеплять 2 кнопки. А можете и перечертить печатную плату, чтоб всё было в соответствии с вашими требованиями.

          Thumb up 0 Thumb down 0

          • Kalerva:

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

            Thumb up 0 Thumb down 0

            • Артём_vrn:

              В шапке указан сайт А. Козина, где доступны чертежи печатной платы на 6 кнопок, если же будете использовать Ардуино Нано, там ещё проще — просто навешиваете нужное кол-во кнопок, прошиваете и пользуетесь.

              Thumb up 0 Thumb down 0

  16. Kalerva:

    Вот такой скетч. Дубль 3.

    /*
    ***********************************************************************************************
    ***************************** Created by Aleksey Kozin ****************************************
    ***********************************************************************************************
    ********************************** mod by Kalerva *********************************************
    ***********************************************************************************************
    ********************************** flymodeswitcher v.3********************************************
    ***********************************************************************************************
    s1 — s3 & LEDS connected to analog pins 0-2
    its numbers from 14 to 16
    */
    #include
    #define AnalogOut 10 // PWM out
    #define SoundOut 7 //d7 speaker out
    int SelBtn = 14; // default
    //int BtnLevels[20];

    void setup()
    {
    Serial.begin(9600);
    pinMode(8, INPUT); //tune up button
    pinMode(9, INPUT); //tune down button
    digitalWrite(8,HIGH);
    digitalWrite(9,HIGH);
    if (EEPROM.read(1)!=124 || digitalRead(9) == LOW ) // if pin 9 short to 0 start reset defaults
    reset_eeprom();
    //force pwm
    TCCR1B = 0x01;
    delay(100);
    pinMode(SelBtn, OUTPUT);
    digitalWrite(SelBtn,0);
    analogWrite (AnalogOut, BtnLevel(SelBtn));
    tone(SoundOut, 4000, 150);
    delay (200);
    tone(SoundOut, 1000, 400);
    }
    void loop()
    {
    ScanBtns();
    TuneLevel();
    delay(10);
    }
    void ScanBtns()
    {
    for (int i=14; i <= 16; i++)
    ScanBtn(i);
    }
    void ScanBtn(int ScanPin)
    {
    if (SelBtn != ScanPin)
    {
    pinMode(ScanPin, INPUT);
    if (digitalRead(ScanPin)==0)
    {
    SelBtn = ScanPin;
    unsetOther(ScanPin);
    tone(SoundOut, 5500, 150);
    while (digitalRead(ScanPin)==0); // hold scaning until relise button
    pinMode(ScanPin, OUTPUT);
    digitalWrite(ScanPin,LOW);
    }
    }
    }
    void unsetOther(int excludePin)
    {
    for (int i=14; i 1 && newlevel < 254 )
    digitalWrite(SelBtn,HIGH);
    delay(200);
    digitalWrite(SelBtn,LOW);
    }

    Thumb up 0 Thumb down 0

  17. Илья:

    Подскажите пожалуйста как подключить переключатель режимов полёта на аппаратуру fs-6i. На крутилке 3,22 в. Вроде пробовал подключить как тут написано, через крутилку, но при подключении аппаратура тухнет, а при отключении переключателя аппаратура включается. Переключатель покупал на сайте микрохобби.

    Thumb up 0 Thumb down 0

    • Переключатель расчитан на 5В питания. От 3.3В может не запуститься микроконтроллер, но если запустится, то работать должно. Но если аппаратура отключается, то может происходит перегрузка по питанию? Быть такого не должно, т.к. МК потребляет мало (до 40мА) + светодиод пусть 30мА.

      Thumb up 0 Thumb down 0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *