HobbyKing HK-T6A - небольшая доработка

kukabarra
Aleksey_Gorelikov:

Яндекс и гугл - не китайские поисковые системы 😃 Даташит на главной странице сайта производителя. Прямая ссылка на него www.stcmcu.com/datasheet/stc/…/STC12C5410AD.pdf Программить на С (кейли-С). Програ программатора - там же. Программировать - через разъем. (даж через родной шнурок от аппы!). Залить новую прогу - можно. Слить с аппы - походу нельзя. (ну или я не разобрался).

кхм… у этого чипа аппаратный uart-бутлоадер чтоли?

да и без бэкапа оригинальной прошивки прошивки как-то не хочется с ним связываться.

когда закончу с катапультой под SKYFUN, займусь пультом. скорее всего навешаю атмегу и пропущу данные через нее, как и собирался.

Aleksey_Gorelikov

А смысл? Может лучше нормальный кодер? 😉 Схема то одинаковая, а полезностей - больше.

ВитГо

согласен с Алексеем… тем более что мега требует минимум обвязки…
схема может быть и выглядит внушительно… но если посмотреть что уже есть в аппе - то все вопросы должны отпасть

вот например схема

у меня есть прошивка… там вообще все очень просто… меню можно переписать (намудрил там малек Женя)… и по функциям аппа будет не хуже хоббикинга в части самолетного функционала…

вот прошивка TX.rar.html

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

kukabarra
Aleksey_Gorelikov:

А смысл? Может лучше нормальный кодер? 😉 Схема то одинаковая, а полезностей - больше.

нормальнй кодер - это полностью новая плата в пульте?
нет уж, ленивый я для таких вещей 😃

распаять одну микросхемку, пару резисторов и 4 провода на макетной платке - и проще, и легче. примерно с тем-же результатом. там требуется только читать 18байт из uart (заголовок, 6 каналов и контрольная сумма), пересчитывать их как надо и формировать PPM.

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

приемник (и самолет) под этот пульт у меня только один, так что переключение между моделями, настройки прямо на пульте, индикация и т.п. красивости пока не нужны. нужны только экспоненты и нунчак.

а дальше видно будет. если понадобится что-то большее - куплю 9канальную turingy.

ВитГо

Александр, глянь схему что я привел выше…

там как раз и будет микруха (atmega16) пара кондеров и кварц (для генерации) - это вам все равно делать…

все остальное - есть в аппе… аа ! экран от нокии3310… - если гнаться за дешевизной - то народ где то за 100 рублей покупает… я просто зашел в первый попавшийся ларек ремонта сотовых (в Чебоксарах, не в Москве) и мне его предложили купить за 300 рублей - на поток дорого, а для себя - да и бог с ними с 300 рублями - зато будет индикация режимов…

ВЧ часть остается стандартная - так что и приемник и передатчик используется этой аппы…

Aleksey_Gorelikov

А я бы посоветовал всеже сразу кодер на 128 меге. Тем более что плата уже разведена добрыми людьми. Да и вроде как добрые люди собирались скидываться и на производсве заказывать. А сложность - действительно что вашей балалайки, что этого кодера - одинаковая. 1 микросхема, кварц и провода. 😃

ВитГо

Алексей, просто 128 мегу распаять без платы проблематично 😦 это уже действительно нужно садиться и делать плату (я так и не сделал… не дается мне ЛУТ… да и нет у меня ничего для этого…

А на 16ой меге (а если хочется больше памяти можно и 32ую применить - по ногам то они помоему совпадают) - с шагом выводов в 2,5 мм - можно хоть по ножкам припаять 😃

жаль что Женя не пошел в этом направлении… насколько я помню у него просто других мег под рукой не оказалось…

Aleksey_Gorelikov
ВитГо:

А на 16ой меге (а если хочется больше памяти можно и 32ую применить - по ногам то они помоему совпадают)

Даю намек. Сейчас в продаже есть Atmega1284Р. Да, ног у нее не много (как и у 16), за-то 128-я… Ну а с ногами что-нить придумать можно. Можно триммеры-кнопки в “матрицу” собрать. Одна нога - одна кнопка - слишком жирно на самом деле. Дисплей, опять таки, если SPI или I2c - мало ног требует. Ну а переползти с одной меги на другую - делать нечего.

жаль что Женя не пошел в этом направлении… насколько я помню у него просто других мег под рукой не оказалось…

Да, все, что он смог купить в тот момент - 16 мегу… А 128 я ему подарил (в конвертике послал) с условием, что проект останется открытым.😁

ВитГо

по ногам помоему не будет больших проблем… в стандарте на хоббикинге не так много выключателей…

эхх… жаль озаботился я прошивкой турниги - можно было бы для хоббикинга написать небольшую прошивочку на 32ой меге…

Amicusis
ВитГо:

эхх… жаль озаботился я прошивкой турниги - можно было бы для хоббикинга написать небольшую прошивочку на 32ой меге…

А что мешаеТ? Отдохнуть и писать.Родина не забудет!

ВитГо

я для Турниги\Юрки\ФлайСкай сейчас прошивку пишу…
на две сразу - не смогу писать…

Aleksey_Gorelikov
Amicusis:

Родина не забудет!

А смысл? Есть проект фокуса\мсв. Есть кем-то разработанные платы под этот корпус. Есть готовая и весьма функциональная прошивка. Смысл делать тоже самое? Повторяйте уже готовое. Кусок текстолита и лазерный принтер сейчас не проблема найти. Функционала MSV 99% пользователей достаточно.

ВитГо

недостаток все таки сложность и цена…

p.s. может на самом деле сесть да сделать кодер “проще некуда” для хоббикинга ?
в принципе схема уже есть (См. выше) осталась прошивка - ту же фокусовскую можно подправить чтобы микшеры были назначаемые…
памяти хватит на 6 моделей (вряд ли больше)

чтобы без всяких плат и компонентов которые сложно достать…

кстати а на плате хоббикинга какой кварц стоит ? (чтобы его использовать)

kukabarra

дошли у меня руки до пульта…

в общем не стал я особо мудрить - просто отпаял провод PPM-выхода с платы и подпаял его на PPM-вход ВЧ-модуля.

в результате - если в разъем ничего не подключено - всё работает как работало.

если подключена макетка с нунчаком ( rcopen.com/forum/f8/topic194699 ) - его PPM-выход (лапка меги48 через 100ом резистор) перетягивает PPM-выход контроллера пульта.
единственное, что не стоит забывать - PPM-вход ВЧ-модуля - 3.3в

получилось прикольно - правый элевон управляется стиком (на старом самолете это газ), левый - наклоном нунчака вперед-назад (на старом самолете V-tail микс зашит в приемнике), а мотор - не управляется никак (ESC хочет, чтобы при включении питания 3й канал был близко к нулю).

теперь осталось допилить прошивку, чтобы контроллер читал данные с RX и делал нужные миксы\кривые.

в мегу48 это вместе с нунчаком это точно не влезет, придется ждать меги328. или делать миксы\кривые в отдельной прошивке и потом объединять.

Korish
kukabarra:

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

Заказал эту аппу www.leadershobby.com/product.asp?ID=9394001220327 . Ша в дороге. Радует то, что продается вместе с шнуром. На Хобби Кинг все отдельно, а значит дороже. Проверю информацию на предмет памяти на 4 модели да качество стиков.

ВитГо

особенно интересно про 4 модели…

kukabarra:

дошли у меня руки до пульта…

в общем не стал я особо мудрить - просто отпаял провод PPM-выхода с платы и подпаял его на PPM-вход ВЧ-модуля.

в результате - если в разъем ничего не подключено - всё работает как работало.

если подключена макетка с нунчаком ( rcopen.com/forum/f8/topic194699 ) - его PPM-выход (лапка меги48 через 100ом резистор) перетягивает PPM-выход контроллера пульта.
единственное, что не стоит забывать - PPM-вход ВЧ-модуля - 3.3в

получилось прикольно - правый элевон управляется стиком (на старом самолете это газ), левый - наклоном нунчака вперед-назад (на старом самолете V-tail микс зашит в приемнике), а мотор - не управляется никак (ESC хочет, чтобы при включении питания 3й канал был близко к нулю).

А какие проблемы в приемнике воткнуть так сервы как нужно для нунчака ?

kukabarra
ВитГо:

А какие проблемы в приемнике воткнуть так сервы как нужно для нунчака ?

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

тем более, каналы все-равно нужно пересчитывать - v-tail микс сейчас в передатчике, и для нунчака его тоже нужно делать.

кстати, выяснилась несколько непредвиденных моментов при подаче Rx->PPM.

  1. стики постоянно дрожат. даже в нейтральных положениях. (это прекрасно видно в t6config). колебания - 2-3 единицы (там 10 бит - от -512 до +512).

контроллер ВЧ (или приемник, или сервы) это дрожание гасит. дрожание 5-6 единиц - уже отрабатывается сервами.

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

  1. непонятно почему, но иногда дергается один из элевонов. то-ли ВЧ-модуль все-таки реагирует на PPM сигнал от встроенного кодера, то-ли еще что. искать надо.

  2. встроенные механические триммеры + “внешние” экспоненты = лажа 😦

если я правильно понимаю - триммеры должны накладываться после экспонент, но перед v-tail миксом.

как сделать это со встроенными механическими - даже не представляю. не трогать их вообще и тримировать крутилками (вывести их на отдельные каналы и миксовать как нужно доп. контроллером)?

  1. ВЧ-контроллеру не важно кол-во каналов в PPM-посылках и длинна пауз между ними.

3, 4, 6 - работает. 15мс посылка, 20мс, 25мс - работает.

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

ВитГо
  1. дрожание стиков скорее всего проблема либо питания (если от БП используете) либо контроллера аппы…
    на сколько я помню в моей аппе дрожание было только при питании от БП… при питании от аккумуляторов этой проблемы небыло…

2,3,4 - так и приходят к написанию собственной прошивки 😃

кстати по поводу количества каналов и паузам - в принципе логика не завязана на какую то определенную длительность…
я как то тестировал хоббикинговский приемник - у меня он нормально обрабатывал длительности каналов от 735 до 2240 мкс (не помню сколько точно)
соответственно паузу определяют обычно как канал с длителностью более 2500-3000 мкс… поэтому возможен такой разброс в посылаемых пакетах…
опять таки в определенных режимах - например все каналы в максимуме - нужно проверять стабильность приема…

Александр, все таки предлагаю вам хотя бы одним глазом взглянуть на исходники прошивки Фокуса для первого кодера…
во многих моментах - думаю помогу вам… основное что вы должны там увидеть - как генерируется PPM и как получаются значения аналоговых каналов…
после этого написание собственной прошивки не сложнее того что вы сейчас пытаетесь сделать 😃

меню там можно переписать (чтобы было проще и понятнее)
поверьте это не так сложно как кажется на первый взгляд…

kukabarra
ВитГо:

Александр, все таки предлагаю вам хотя бы одним глазом взглянуть на исходники прошивки Фокуса для первого кодера…

во многих моментах - думаю помогу вам… основное что вы должны там увидеть - как генерируется PPM и как получаются значения аналоговых каналов…
после этого написание собственной прошивки не сложнее того что вы сейчас пытаетесь сделать 😃

меню там можно переписать (чтобы было проще и понятнее)
поверьте это не так сложно как кажется на первый взгляд…

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

а доп. мегу, 12мгц кварц, несколько конденсаторов и резисторов преспокойно можно распаять и на макетке.
и засунуть в маленькую коробочку с торчащим наружу разъемом s-video 😃
или в большую коробочку с s-video шнуром 😉

именно “прошивку Фокуса для первого кодера” не видел, а в MSV 1.9.1 - посмотрел.

там PPM делается через 16-битный таймер в FAST-PWM режиме, OCR1A - единожды устанавливается в размер импульса и больше не трогается (импульс постоянной длительности), а значение канала заносится в ICR1 при каждом срабатывании прерывания.

у меня - через CTC-режим, и импульс, и пауза устанавливаются (поочередно) при каждом срабатывании прерывания.

по идее - правильнее через FAST-PWM, однако и CTC достаточно надежен - чтобы его сбить - нужно провести в другом обаботчике прерываний более 300мкс, что на частоте 12МГц есть очень много тактов - ни одно из моих прерываний так долго не задерживается. да и переписать мое на FAST-PWM - дело 15 минут.

аналоговые каналы - это в смысле АЦП или в смысле обсчет тримов, границ, кривых, миксов и иже с ними?

с первым связываться не хочу, а со вторым - все и так понятно.

кстати, сейчас все уже работает - и v-tail миксы для нунчака, и его экспоненты (они и были, 3х-точечные) и переключение пульт\нунчак с кнопки нунчака (тоже было) и смешивание каналов пульт\нунчак, и тримирование нунчака крутилками пульта.

на всё это используется ~60% флэш-памяти в меге168.
причем с тредами (protothreads), кучей дебаг-принтов и без оптимизации кода.

т.е. места под эксперименты более чем достаточно.

осталось победить дрожание серв (скорее всего придется расстаться с идеей о перетягивании сигналов и поставить переключение внешний\внутренний PPM на один из тумблеров) и можно идти испытывать.

ВитГо

MSV 1.9. - уже достаточно навернутая…
первая очень простая и наглядная…

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

kukabarra
ВитГо:

MSV 1.9. - уже достаточно навернутая…
первая очень простая и наглядная…

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

во вложении схема и прошивка.

работают 3 канала (стик вверх - газ, повороты нунчака - v-tail, экспоненты на повороты включены).
нунчак включается по нажатию C на нем. остальное время - передаются стики, один-в-один без миксов.

дописать недостающие каналы - 5 минут дел.

в конструкции нет ничего сложного - в передатчике провод PPM идущий на разъем отпаивается от платы кодера и припаивается к плате ВЧ, рядом с проводом PPM идущим от кодера на ВЧ.

светодиод не убирать. он нужен для просадки напряжения до 3.3в - 3.6в (т.к. и нунчак и ВЧ-модуль хотят 3.3в). ток там порядка 9ма - сгореть не должен. заодно и индикация 😆

по уму вместо него нужно поставить регулятор на 3.3в, но у меня его нету.

прием данных от передатчика идет на 115200. отправка отладочных сообщений на комп - тоже.

если все собрано и подключено правильно - в терминале должно появиться примерно такое

m168 rx + nunchuk = ppm
nunchuk thread start
rx thread start
nunchuk init ok
rx thread - syncing

если дальше nunchuk thread start не идет - значит нунчак подключен неправильно (или неподключен вообще).

кстати, после того, как переписал генерацию PPM под fast-pwm mode 14 - дрожание серв ОЧЕНЬ существенно уменьшилось. видимо что-то было накосячено в старой реализации. или таки действительно не успевал.

hk_t6a_nunchuk_serial.zip