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

roman_fpv
kukabarra:

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

Интересно!
Тоже с удовольствием попробовал бы 😇

kukabarra

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

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

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

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

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

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

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

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

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

wj.zip

kukabarra

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

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

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

wj15.zip

v61
kukabarra:

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

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

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

kukabarra

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

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

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

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

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

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

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

v61:

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

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

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

kukabarra

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

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

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

v61

неплохо…
ждем прошивку под 8-ю мегу 😉

kukabarra

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

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

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

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

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

wj_m8_test.zip

cvy7

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

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

PigTail

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

kukabarra
PigTail:

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

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

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

v61

Если не секрет, откуда посылка с 328-ми?

12 days later
kukabarra
v61:

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

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

kukabarra

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

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

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

kukabarra

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

собрал 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-программатором - не видит в упор.