Activity

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

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

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

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

во многих моментах - думаю помогу вам… основное что вы должны там увидеть - как генерируется 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 на один из тумблеров) и можно идти испытывать.

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

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

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

тем более, каналы все-равно нужно пересчитывать - 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мс - работает.

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

управление моделью с помощью Wii Nunchuk

ничего не понимаю…

собрал Fusebit Doctor на меге8, скормил ему 168ю.

после нескольких прогонов вижу зеленый светодиод и отличный лог.

HVPP MODE

Init programming… DONE
Read signature… 1E 94 06
Searching chip… Atmega168
Chip erase… DISALLOWED
Read fusebits… L:62 H😁F E:F9
Should be… L:62 H😁F E:F9
Lockbits… DISABLED (FF)
Rewriting 62DFF9… DONE
Verifying… L:62 H😁F E:F9 - OK!

пытаюсь прочитать ее ISP-программатором - не видит в упор.

управление моделью с помощью Wii Nunchuk

rcopen.com/forum/f4/topic197442/24 - с новым пультом разобрался.

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

или ждать новые меги (уже больше 20 дней прошло, пора бы)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

С такой апой встречались? www.leadershobby.com/product.asp?ID=9394001220327 за 25 ДОЛ. ? Пишут что 4 модели в память можна забить?

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

управление моделью с помощью Wii Nunchuk
v61:

а пульт такой есть у меня, там на радиомодуль чистый PPM идет, и на тренерском разъеме он есть

это PPM ВЫХОД, а нужен вход.
rcopen.com/forum/f4/topic197442

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

захотелось добавить к своему HK-T6A несколько вещей:

  1. настраиваемые кривые\экспоненты на 1 и 2 каналах.

  2. возможность подмешать в отправляемые данные свои (т.е. к примеру заменить 1,2,3 канал на свои, а остальные оставить как есть) - нужно для подключения Wii Nunchuk - rcopen.com/forum/f8/topic194699
    причем желательно без лишних преобразований из- и в- PPM

----------------

вот схема пульта - www.hobbyking.com/…/467342471X156030X32.gif

  • оторвать PPM от ноги P2.0 кодера,
  • поставить дополнительно атмегу,
  • завести TX кодера на ее RX и принимать данные с кодера в цифре,
  • пересчитывать оси как нужно (кривые, нестандартные миксы и т.п.),
  • формировать PPM атмегой,
  • подавать этот PPM на пин 1 тренерского разъема.

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

если я правильно понимаю - модификация пульта сведется к разрыву дорожки P2.0, а доп. модуль можно просто подключать к тренерскому разъему (благо там есть +5в).

или даже лучше - закоротить R36, а в разрыв P2.0 поставить такой-же 1k2 резистор.

тогда при неподключенном доп.модуле PPM с кодера будет проходить на ВЧ (с немного большим напряжением, из-за изменения делителя) и пульт будет работать обычным образом.

а при подключенном - PPM атмеги будет пересиливать PPM кодера (ток через резистор - 4ма, а атмега48 может выдать на pin source/sink токи больше 10ма) и модель будет управляться с атмеги

правильно ли я всё понимаю и ничего не упустил?

Вертикальные кили - обязательно ли их ставить?

получил сегодня вот такой самолет - www.hobbyking.com/hobbyking/…/uh_viewItem.asp?idPr…

обязательно ли клеить на него вертикальные кили?
как он будет летать без них?

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

управление моделью с помощью Wii Nunchuk
PigTail:

Чой то мне вспоминается, что встречалось в сети о косячности i2c у 8 меги в принципе, но подробностей не помню. Есть 168 и 168V в DIP, если надо для эксперементов, кидайте в личку адрес вышлю

уже едет посылка с мегами328 и wii motion+ - до ее прихода особых экспериментов не предвидится.

так только, настройки подкрутить - но это и на 48й прекрасно делается.

управление моделью с помощью Wii Nunchuk
cvy7:

так все вроде нормально, i2c у m8, m48, m88 не отличается, если не считать реальных адресов и векторов, правда тактовая частота задана в 2 раза больше чем 100 кгц, но это не должно сказаться, активности совсем нет (осциллографом)?

откуда “в 2 раза больше”?
в коде - 100кГц

если это про блок в twimaster.c

#ifndef F_CPU
#define F_CPU 4000000UL
#endif

/* I2C clock in Hz */
#define SCL_CLOCK  100000L

то F_CPU уже задана в Makefile и переопределяться не будет.

к тому-же, нунчак штатно использует FAST I2C (400кГц) и на частоту ему как-то так.
специально сейчас проверил на 48й меге - и на 400кГц работает нормально, и на 100кГц, и на 1кГц (данные приходят меееедленно).

нет осцилографа, чтобы посмотреть активность.

похоже, это просто глюк моей меги8. не единственный, кстати - у нее еще и на UART иногда мусор сыпется. просто так, сам по себе.
поскольку она у меня единственная - проверить больше не на чем.

управление моделью с помощью Wii Nunchuk

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

вот тестовая сборка для atmega8 - частота 8МГц, скорость UART - 38400, PPM выводится на PD7 + на UART выводятся данные по каналам.

если у кого есть желание - можете проверить.

SCL и SDA подтянуты 1.8кОм резисторам к 1 в самом нунчаке.

штатное питание нунчака - 3.3в.
от 5в он работает, но как это со временем скажется на его микросхемах - вопрос открытый. видел на форумах комментарии типа “уже давно так пользую, ничего не сгорело и не собирается”.

wj_m8_test.zip

управление моделью с помощью Wii Nunchuk

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

полетал минут 5 на школьном дворе

телефон, которым снималось - как всегда “на высоте”. на этот раз он даже повис в процессе съемки, так что у видео съехала скорость 😃

управление моделью с помощью Wii Nunchuk

таки попробовал вживую.

пока для проверки - тупо обмотал макетку несколькими слоями плени с пузырьками и накрыл 2мя пенопластовыми поддонами.

результат пока не радует 😦

  1. экспоненты слишком большие для этого самолетика. на перемещения возле центрального положения самолет не реагирует вообще никак (хотя рули шевелятся). на крайние положения - слишком резко.

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

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

еще выяснилось, что на московке-2 негде полетать - пришлось идти вдалека 😦

v61:

а сильно сложно поправить код под 8-ю мегу?
(их есть немного, а за 48-й ехать специально надо…😉)

по идее - не очень сложно.
но у меня с первого раза не получилось (тоже есть мега8 и первая мысль была переделать под нее) - не заработал i2c. непонятно почему.

попробую потом… тем более в 48й тесно - флэш занят на 97%

управление моделью с помощью Wii Nunchuk

добавил экспоненты ( rconline.ru/modules/smartsection/item.php?itemid=6… )

доделал режим, когда по умолчанию пропускается PPM сигнал с пульта (подаваемый на PB0), а при нажатии на кнопку C нунчака - передается сигнал от него.

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

wj15.zip

управление моделью с помощью Wii Nunchuk

непонятно как, но я таки умудрился спалить свою единственную мегу168. 😃😦

где в Омске можно купить замену - непонятно. в ДАНе нету.

пришлось извращаться с тем что есть.

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

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

Сообщение от Sodefi
на видео случаем не икар?

на видео Firebird Phantom
своеобразный самолетик.

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

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

wj.zip

управление моделью с помощью Wii Nunchuk
v61:

Конечно интересно!
Кстати, у нунчака есть провод “det”? (они есть 2-х вариантов)…

“det” - это что?

www.hardwarebook.info/Wiimote_Expansion_Port

если 3й пин - то да, есть.
он соединен с плюсом питания на платке нунчака, а не внутри разъема.

управление моделью с помощью Wii Nunchuk

таки работает.

качество видео, конечно, отвратное, но ничего лучше телефоном снять не получается.

чуть позже выложу исходники прошивки, если кому интересно.

скорее всего на днях испытаю в полете, если ветра не будет.

управление моделью с помощью Wii Nunchuk
msv:

Период PPM вообще-то 20мс… Хотя обычно это не критично…
Может приемник хочет инверсный PPM? Или категорически ждет в PPM определенное кол-во каналов…

кроме PPM-выхода у меня есть еще и простейший PPM-вход, (который выдает интервалы импульсов и пауз, без обработки) - им и смотрел.

нет, PPM там не инверсный. с каналами - делал точно такие-же каналы, как выдает пульт.

и с ТОЧНО таким-же периодом.
там когда нажимаешь на правый стик, пульт переключается на 15мс период (светодиод на пульте начинает мигать), а самолетик реагирует на канал элеронов отклонением не одной (как в 25мс режиме), а обоих половинок V-хвоста.

PPM-USB-кабель на эти переключения не реагирует никак.

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

если самолетик будет на него реагировать - значит что-то не то с моим PPM, если нет - значит с электронной частью (что гораздо хуже, т.к. с электроникой у меня не очень).

anonymice:

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

с самим нунчаком всё понятно. непоняты особенности приемника данного конкретного самолетика.

управление моделью с помощью Wii Nunchuk

таки сделал 3х-канальный PPM выход - roll + pitch + Y стика.
выставил отображение как на пульте самолетика.

через PPM-USB-кабель - работает.
через smart propo plus - работает. “градусник” каналы видит.

а вот сам самолетик мой сигнал принимать отказывается.

на sound-card oscilloscope они совпадают (настоящего осцилографа нету 😦 ). интервалы между посылками замерены с пульта и выдерживаются до сотых долей мс.

0 - 0.3мс
1 - 0.7-1.7мс (1.2мс середина) - первый канал
0 - 0.3мс
1 - 0.7-1.7мс (1.2мс середина) - второй канал
0 - 0.3мс
1 - 0.7-1.7мс (1.2мс середина) - третий канал
0 - 0.3мс
1 - остальное время до 25мс (или до 15мс, если “анти-крэш” выключен с пульта).

напряжение у меня на схеме - 3.4в, на пульте контроллер запитан от 3в стабилизатора.

в чем может быть трабл?

управление моделью с помощью Wii Nunchuk

подробнее - ну например
frank.circleofcurrent.com/…/nunchuk_joystick.htm - подробное описание как подключить wii nunchuk в качестве usb-джойстика к компу + прошивка для 168й меги в исходниках. правда только оси, без рассчетов roll/pitch. есть ссылки на описание протокола.

ну или здесь - www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=124888903… - описание подключения и работы с nunchuk и motion+ (много не нужного в данном случае, но и нужного хватает) для arduino (который по сути - та-же мега168/328 с минимальной обвязкой).

гуглом без проблем находится вся нужная информация - ее навалом.

пока читаю положение по i2c, обсчитываю roll/pitch и скидываю на ком-порт в текстовом виде.

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

мой макет пока выглядит вот так:

когда доведу до ума софтовую часть - придумаю что-нить с платкой. или просто обмотаю пленкой и в карман 😆

управление моделью с помощью Wii Nunchuk

попробовал подключить wii remote + nunchuk через ppjoy и погонять на симуляторе (RealFlight G4.5) - понравилось.

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

самолетик - для начала Firebird Phantom 37МГц. новичковый, и запчасти на него есть (второй такой-же со сгоревшей платой приемника-всё-в-одном).

со снятием сигнала с передатчика - понятно. от микросхемы к ВЧ идет единственная дорожка, по которой идет PPM. подал его на китайский PPM-USB-провод - все 3 канала видятся и работают.

с формированием и подачей своего PPM на ВЧ часть - пока не понятно. не пробовал еще.

правильно ли я понимаю, что достаточно перерезать дорожку от микросхемы к ВЧ и подать туда свой PPM ?

с подключением нунчака к ATMEG’е по i2c, снятием данных и рассчетом roll/pitch по акселерометру - понятно и работает.

какие еще проблемы могут возникнуть?

кстати, сейчас жду посылку с новым самолетиком и вот этим пультом HK-T6A. как там с входом PPM или другим тренерским ВХОДОМ ?
не хотелось бы лезть с паяльником в новый пульт.