MultiWii
Простите за глупый вопрос, но если мультивии не летает по точкам от GPS зачем он нужен вам в данный момент? Для логирования?
Мне по точкам не нуна, мне нужно фиксировать аппарат на определенной высоте и определенной координате и снимать панорамы, сносит аппарат на ветру, как не крути. Врятли полет по точкам будет в ближайщем времени на Multiwii. Такой же модуль получил Алексинпарис и компания (80 человек), так что код скоро будет, я даже не сомневаюсь. Сам я ничего не смогу с ним сделать, логгирование мне не зачем, ОСД есть.
а программу какую на комп поставить?
SirfDEMO … на мой взгляд одна из лутьших по работе с ГПС на базе чипа Sirf.
Мне по точкам не нуна, мне нужно фиксировать аппарат на определенной высоте и определенной координате и снимать панорамы, сносит аппарат на ветру, как не крути. Врятли полет по точкам будет в ближайщем времени на Multiwii. Такой же модуль получил Алексинпарис и компания (80 человек), так что код скоро будет, я даже не сомневаюсь. Сам я ничего не смогу с ним сделать, логгирование мне не зачем, ОСД есть.
так для ваших условиях магнетометер + барометер + уже имеющийся осд и гпс будет самая лутщая комбинация…зачем второй?
А можно чуть поразвернутее ну для недалеких:) Чего куда переделывать и как это работает! Буду ооочень признателен!
у меня контролер еще на стадии подключения wmp и nunchuk. как только подключю к нему аппу, займусь выводом данных … но iPhone изпользуется лишь для просмотра, вместо дисплея… а програмировать все ровно надо буде стиками.
кстати… кто не сумел подключить синии нунчяк на ADXL335 через I2C, вчера я его подключил как аналоговый… работает вроде.
Фото испытательного стенда.
Повторюсь:
LCD Serial для MultiWii от Kayle (источник), на Atmega8 и HD44780 совместимом LCD дисплее.
Проверено, работает.
В архиве схема, печатная плата в LAY формате, скомпилированные прошивки и коммент.
Исходники смотрите в источнике у автора.
P.S.: Не могу что-то зарегистрироваться на том форуме, отпишитесь кто может в теме с благодарностью 😃
При регистрации указывайте пароль длиннее 6 символов и обязательно состоящий из букв, цифр и символов, желательно с первой попытки, иначе если пишет что пароль не соответствует требованиям лучше все сбросить и пройти регистрацию заново. У меня все получилось.
kite, спасибо, всё дело в символах, всё прошло. А я и буквами плясал и цыфирями, и в бубен бил, и друга в Москве напряг…
так для ваших условиях магнетометер + барометер + уже имеющийся осд и гпс будет самая лутщая комбинация…зачем второй?
я этот в начале годща заказал, когда и мыслей о ОСД не было, вот только пришел. Спасибо американцу, что вообще выслал и то Норберту, а НОрберт нам…
кому интересно тут MultiWii Interconnect Board
Нунчак на акселе mma7660, при неподвижном коптере шумит ROLL и PITCH (цифры бегают в GUI от -10 до 10),
поправил как killmouse
accADC[ROLL] = ( ((rawADC_WMP[3]<<2) + ((rawADC_WMP[5]>>4)&0x2))/7 ); accADC[PITCH] = - ( ((rawADC_WMP[2]<<2) + ((rawADC_WMP[5]>>3)&0x2))/7 ); accADC[YAW] = - ( (((rawADC_WMP[4]&0xFE)<<2) + ((rawADC_WMP[5]>>5)&0x6))/7 );
помогло, шуметь аксель перестал, но вылезла другая проблема, такой эффект видел когда неправильно ориентирован чак, отклоняешь коптер например влево - в GUI c права как и положено на против надписи ROLL тоже отклонение влево - затем медленный возврат обратно в горизонт, хотя коптер так и стоит с наклоном в лево. Sergey Serov - у Вас такое наблюдается и как с этим бороться?
Нет, когда я пробовал делить всё отрабатывало нормально.
Про медленный возврат здесь вроде писали, что перевернуть вверх ногами надо аксель, если я не путаю 😃
Деление несколько грубая форма корректировки, это первое, что в голову пришло на тот момент, делитель надо подбирать индивидуально.
Наконец, дошли руки до LLC. Сегодня получил свой заказ PCA9306DCTR. Припаял микросхему по центру маленькой платки. Схема заработала, время цикла упало до 3100, было 3200-3600. Наверное, иногда шел мусор по шине. Теперь можно подключать все 3.3В датчики без опасений.
ROLL тоже отклонение влево - затем медленный возврат обратно в горизонт
У вас выборосы ROLL совпадают по направлению для Гиры и Акселя - оба броска вверх или оба вниз? Если вразнобой, то нужно поменять знак: accADC[ROLL] = - +
Для всех осей проверить. если мнемограмма коптера начнет наклоняться в противоположную сторону - менять знаки у гиры И акселя по этой оси.
Сегодня получил свой заказ PCA9306DCTR. Припаял микросхему по центру маленькой платки.
а чем паяли в итоге? помню были сомнения 😃
кстать к чипу только доп. элементы (радиодетали) нужны?
Нет, когда я пробовал делить всё отрабатывало нормально. Про медленный возврат здесь вроде писали, что перевернуть вверх ногами надо аксель, если я не путаю
Да нет, переворачивать не надо, достаточно убрать делители в прошивке ( /7 ) на аксели по всем осям и в GUI все нормально, хотя именно так у меня и было на другом квадрике при перевернутом вверх ногами акселе.
У вас выборосы ROLL совпадают по направлению для Гиры и Акселя - оба броска вверх или оба вниз?
Нет , только на акселе , причем не только ролл но и немного питч, явно шумит аксель.
Наконец, дошли руки до LLC. Сегодня получил свой заказ PCA9306DCTR. Припаял микросхему по центру маленькой платки. Схема заработала, время цикла упало до 3100, было 3200-3600. Наверное, иногда шел мусор по шине. Теперь можно подключать все 3.3В датчики без опасений.
Борис, можно поподробнее, где заказать, схему платки, я как то пропустил это творение 😃 Эта штука я так понимаю намного лучше спакфановкой поделки?
чем паяли
Паял обычным паяльником с жалом “аля микроволна” - бором сделал углубление для отбора припоя. Главное, побольше спиртокарифоли, а перед пайкой резинкой почистить контакты. После пайки промыл спиртом и залил цапон-лаком для прочности.
К чипу нужны только подтяжки с двух сторон шин и подтяжка 200кОм на пин Enable. Резисторы хотел SMD, но односторонный гетинакс не позволил. Поэтому взял обычные и напаял на макетку поближе к пинам.
pca9306.pdf - правильный даташит для PCA 9306 DCT R. (1 pin = GND). В даташите NXP есть только “DC” маркировка, и у нее пин1 = питание.
DUAL BIDIRECTIONAL I2C BUS VOLTAGE-LEVEL TRANSLATOR - готовый двунаправленный конвертер уровней с размерами 3*3мм. Лучше любых транзисторов и делителей. 5В <—> 3.3В
намного лучше спакфановкой поделки
Да, намного лучше - наиболее правильное решение.
Платку рисовал в Sprint layout 5. Проще не бывает. Делал ЛУТом на глянцевой бумаге. На удивление, все получилось сразу. Думаю, кто будет делать подобное - пусть сразу нарисуют дорожки под резисторы (я их паял отдельно от платы). Я немного позже перерисую и перетравлю новый вариант.
Микросхема у нас стоит 33р - с наценкой.
Платку рисовал в Sprint layout 5. Проще не бывает. Делал ЛУТом на глянцевой бумаге. На удивление, все получилось сразу. Думаю, кто будет делать подобное - пусть сразу нарисуют дорожки под резисторы (я их паял отдельно от платы). Я немного позже перерисую и перетравлю новый вариант.
Борис, если не жалко, выложи потом платку для общественности. И фотку уже готовой платки крупным планом. p.s. Из даташита экономисту тож не хрена не понятно, как через этот LLC подключать 3.3V сенсоры 😃
платку для общественности
лак еще не схватился.
narod.ru/disk/10299871001/pca9306.rar.html плата для Sprint layout 5.
Сергей, в даташите на 1й странице:
V REF1 - это низковольтная часть, сюда подаем 3.3В
SCL 1, SDA 1 - это низковольная шина, куда цепляем наши датчики.
GND - земля.
----------
V REF 2 - это высоковольтная часть, сюда подаем 5В
SCL 2, SDA 2 - это высоковольная шина, куда цепляем Ардуино, которое работает с 5В.
EN - включение чипа.
---------------
На EN, SCL 2, SDA 2, SCL 1, SDA 1 - нужны подтягивающие резисторы.
Схема есть на странице 7 (там там мастер низкольтный, а датчики -высоковольтные). Rpu - это подтяжки. Важно, что низковольтная часть должна быть на “1”, высоковольтная - на “2”.
На EN через 200кОм подаем +3.3В
На SCL 2 и SDA 2 через 3.3кОм резисторы подаем +5в.
У меня на датчиках уже стоят подтягивающие резисторы, в сумме по 2кОм на каждую шину. Поэтому подтяжки на SCL 1 и SDA 1 отдельно паять не нужно.
ура, я всетаки разбил хлипкую раму с HK (6 хороших падений было)
до этого еще в луже-снегу искупал =)
- wmp продолжает отваливатся через раз
Проколхозил польского квадрика,всё ,кроме резинок и купола ,взято из запасный частей.Думаю многим будет интересно.😃
Процентов 70,вибрации гасится.
Резинки с креплением внизу не соприкосаются,просто так фото вышло.
У купола появилась двойная задача,в полёте защищать электронику от ветра,влаги,и ударов.А на земле как пиалка для чая.
По дороге собрал экранчик 16х2,правда вместо некоторых цыфр пишет кирильские буквы.😁
кому интересно тут MultiWii Interconnect Board
Расположение платы ITG-3200 под софт 1.6. В 1.7 Алекс поменял оси (скорее всего под WMP на itg3205 c прямым подключением).
Так что придется править, как и владельцам FreeIMU.
accADC[ROLL] = ( ((rawADC_WMP[3]<<2) + ((rawADC_WMP[5]>>4)&0x2))/7 );
accADC[PITCH] = - ( ((rawADC_WMP[2]<<2) + ((rawADC_WMP[5]>>3)&0x2))/7 );
accADC[YAW] = - ( (((rawADC_WMP[4]&0xFE)<<2) + ((rawADC_WMP[5]>>5)&0x6))/7 );
Парни, как можно по другому загрубить чуйку акселя, этот способ работает но плывут аксели как будто плата стоит вверх ногами.
загрубить чуйку акселя
Суммировать n последних значения акселя и делить сумму на n.
(acc+10) + (acc-6) / 2 = (acc+2) - шум станет меньше, если его значения распределены по обе стороны относительно “acc”.
Плывут- в смысле, дрейф в одну сторону? Положил датчик на стол, а значение растет и растет по модулю?
будто плата стоит вверх ногами
может, так и есть? В перевернутом варианте еще хуже?
Суммировать n последних значения акселя и делить сумму на n. (acc+10) + (acc-6) / 2 = (acc+2) - шум станет меньше, если его значения распределены по обе стороны относительно “acc”.
Если не сложно можно пример на куске кода из 1.7
Плывут- в смысле, дрейф в одну сторону? Положил датчик на стол, а значение растет и растет по модулю?
Нет, если не трогать датчик все ровно, если отклонить датчик на бок на 45градусов GUI повторяет отклонение но потом плавно возвращается обратно в горизонт , при этом датчик физически остается наклоненным в бок на 45градусов.
может, так и есть? В перевернутом варианте еще хуже?
Описанный мной выше глюк возникает после изменения кода добавлением делителя /7
accADC[ROLL] = ( ((rawADC_WMP[3]<<2) + ((rawADC_WMP[5]>>4)&0x2))/7 );
accADC[PITCH] = - ( ((rawADC_WMP[2]<<2) + ((rawADC_WMP[5]>>3)&0x2))/7 );
accADC[YAW] = - ( (((rawADC_WMP[4]&0xFE)<<2) + ((rawADC_WMP[5]>>5)&0x6))/7 );
Если убрать этот делитель и оставить оригинальный код в GUI аксель точно повторяет движения датчика и не плывет.
Загрубить чуйку акселя нужно потому что когда датчик находится в покое шумит ROLL и PITCH (цифры бегают в GUI от -10 до 10)