Самодельный передатчик (часть 2)
Пожалуйста!
Здравствуйте!
Подскажите, пожалуйста, кто может: я запутался в программе кодера. Появилось желание ( необходимость ) сделать субтриммеры и ЕРА для каждой моды ( пилотаж, нормал и посадка ) свои. И у меня появилась куча ошибок.
Сделал перенос из одной структуры в другую :
// MODE
typedef struct {
CONTR_A1 contr_ab[3]; // Основные аналоговые каналы без газа
CONTR_A2 contr_tr; // Газ
CONTR_A3 contr_ap; // Доп. аналоговый
CONTR_D contr_d[3]; // Дискретные каналы
CONTR_V contr_v[2]; // Виртуальные каналы
signed char mixer[MAX_CHANS][MAX_CONTRS];
signed char trimmers[4];
signed char subtrimmer[7]; // проба
signed char epa[2]; // проба
}DEF_MODE;
// Channels
typedef struct {
// signed char subtrimmer; // проба
// signed char epa[2]; // проба
signed char reverse;
}CHANNEL;
и стал исправлять
v=channel->subtrimmer; v*=10;
на
v=channel->cur_model.modes[cur_mode_ind].subtrimmer; v*=10;
и др.
и тут полезли ошибки.
Помогите пожалуйста, если можете.
( поподробнее, пожалуйста!!! )
Денис
Здравствуйте, очень заинтересовала данная тема, есть передатчик 4 канала на 2,4Ггц и приемник 6 канальный, катастрофически не хватает канала одного. Хочу попробовать спаять данный девайс. Паять, травить, прошивать умею, перечитал тему, но так и не понял одной вещи, как с новым кодером приемник будет привязываться к данной аппаратуре. Сейчас что бы сделать привязку приемника к передатчику нужно на передатчике нажать утопленную кнопочку, включить питание и на приемнике перемычку поставить, что то в таком духе.
Извините может быть за глупый вопрос, но очень надо.
как с новым кодером приемник будет привязываться к данной аппаратуре.
Ничего в плане бинда не поменяется - как было, так и останется. И все же попрошу озвучить модель аппы, потому что кое-где встречается использование специфического PCM, и данный кодер в том виде, что представлен здесь может не помочь.
Вам биндить ничего и не нужно, у вас уже всё забинденно, т.к. биндятся только ВЧ блок и приёмник, а вы будете менять кодер, он к биндинью никакого отношения не имеет.
Да, и передатчик какой?
Ясно. На вашем месте я бы начал с проверки и нахождения ППМ, который поступает на ВЧ модуль. Для этого можно применить как осциллограф так и линейный вход компьютера с соответствующим софтом. Как только справитесь - дальше проще.
Там у вас сбоку должен быть разъем типа джек для симулятора, начните поиски оттуда
2ALL
Уважаемые, хочу представить вашему вниманию прошивку с памятью на 40 моделей (лично меня уже достала перестройка своих моделек или запоминание на какой полетной моде у меня какая моделька - не хватает мне 7 штук).
Поэтому решил немного скрестить проделанную Алексеем Гореликовым работу по портированию “Самодельного передатчика” на Turnigy опять с “Самодельным передатчиком”. Выражаю Алексею огромную благодарность за помощь!
Короче, вот такие изменения.
Аппаратные:
Используется I2C EEPROM типа 24C512 (можно и другие - 24C256 и т.д.)
Подключение EEPROM: “Адреса” и “земля” - на земле. SDA - на бит 6 порта С, SCL - на 7 бит того же порта. Эти ноги свободны и не используются. Подпаиваться конечно неудобно, но было бы желание. С SDA и SCL по килоомному резюку на +5, нога R/W - в воздухе, ну и последняя нога - +5вольт.
Можно прилепить на другие ноги меги - в исходниках место указано (файл coder.c). Интересно попробовать аппаратный TWI, может скорость работы EEPROM увеличится.
Программно - функциональные:
- Прошивка под аппы ГГц диапазона, поэтому никаких антенн и настройки частоты нет
- Добавлен пункт меню Options->Alarms->Throttle, где можно отключить предупреждение о том что газ не в минимуме при включении
- Добавлен пункт меню Options->Servotest, в котором можно включить режим тестирования серв, подключенных к приемнику. По всем каналам (кроме третьего) канальный импульс циклически меняется от максимума до минимума. (Еще раз спасибо Алексею Гореликову). При включении этого режима есть индикация главном экране вместо таймера модели.
- Триммеры автоматически не сохраняются! Если нужно сохранить триммеры, то заходим в меню Model и выходим из него, кодер попросит сохраниться, выбираем Save. Делать это лучше с моделью на земле. Так сделано потому что время записи во внешнюю ЕЕПРОМ довольно большое, и чтоб не было перебоев с управлением моделью во время сохранения.
- Не пойму что там с CRC. Алексей говорил, что вроде бы не проверяется. По коду - кажется есть проверка. Провел несколько дней в попытках понять как оно… Понял, что CRC желательно считать и хранить отдельно для каждой модели, ибо если это делать для все памяти - можно уснуть при расчетах.
Может гуру программирования подтянутся (по п.5), кому интересно, потому что я по-натуре совсем не программист, тем более, на С.
На сей момент кодер работает отлично - нареканий нет.
К этой аппаратуре я спаял ЮСБ переходник и в Фениксе тренируюсь, разъем 3,5мм общий и выход ППМ, и как раз он со стороны ВЧ блока, так что куда подавать я найду куда и осциллографом проверю уровень сигнала , а потом отрезать кусок платы с ВЧ блоком или есть другие варианты.
Все правильно, только отрезать ВЧ желательно после проверки. Можно для начала дорожку перерезать, и подсунуть туда ППМ от другого кодера (этого который в этой теме обсуждается или от простейшего) Если сервы на приемнике будут слушаться команд, то все ОК, и можно ВЧ отрезать и кнопку бинда не забыть. Думаю, может еще приемников докупите 😃 - биндить придется. Все же не исключен вариант, что в пульте по ВЧ передается CPM. Тест, описанный выше, позволит это выяснить.
Все правильно, только отрезать ВЧ желательно после проверки. Можно для начала дорожку перерезать, и подсунуть туда ППМ от другого кодера (этого который в этой теме обсуждается или от простейшего) Если сервы на приемнике будут слушаться команд, то все ОК, и можно ВЧ отрезать и кнопку бинда не забыть. Думаю, может еще приемников докупите 😃 - биндить придется. Все же не исключен вариант, что в пульте по ВЧ передается CPM. Тест, описанный выше, позволит это выяснить.
Спасибо
2 СашаЖ если уж расковыряли то не моглибы посмотреть на каких детальках собран ВЧ блок?
Интересно попробовать аппаратный TWI, может скорость работы EEPROM увеличится.
Увеличится. Весьма приятно использовать в связке с большими дисплеями, типа Тик-а, они тоже на и2с. Кстати, по желанию можно и и2с аксели повесить и рулить моделью наклоном передатчика относительно горизонта. %) Но это лирика.
Еще существенно увеличить скорость можно перейдя в страничный режим работы е епромом. Я кажется в свое время где-то накосячил, работало шустро и хорошо, но местами данные портились, причину я тогда не нашел.
В версии, которую я тебе отправлял - црц не проверялся. Финальные версии я похоронил на рабочем ноуте со сменой работы. 😦
У одного из бета-тестеров (Catsw) был факт сбоя с крашем, вызванный кучей нелепых случайностей: Длинные провода шины И2с, 1вт-ный радиомодуль на 2,4 и принебрежение инструкцией, в которой написано, что анетну на модуль привинчивать нельзя, что надо через кабелек ее подсоединять и ставить подальше от “Дна” аппаратуры. Тут как говорится - на бога надейся… Короче, дописывай проверку црц, хуже не будет. Считаться то она считается, надо чтоб сравнивалась.
2 СашаЖ если уж расковыряли то не моглибы посмотреть на каких детальках собран ВЧ блок?
Посмотрю и сфотографирую, чуток по позже.
и2с аксели повесить и рулить моделью наклоном передатчика относительно горизонта
У меня была мысль - на трёх ADXL345 сделать бесконтакный датчик положения стиков аппаратуры. Типа, 2 акселя на стиках, а один, образцовый, на самой аппе. И рассчитывать положение на основании проекций ускорения свободного падения. В плюсах - простота реализации, отсутствие механических частей. Но есть серьёзные минусы, в первую очередь - на полное отклонение стика будет всего где-то 50 отсчётов. Ну и перекалибровывать аксели тоже надо каждый раз.
- Не пойму что там с CRC.
Дело в том, что когда вы считаете CRC, нужно чтобы было с чем сравнить. Т.е. сравнивать нужно с тем что в памяти, а в памяти у нас не все, а только часть. Получается, что если есть сбойная ячейка, то при записи модели сбойная ячейка не запишется, а при проверке у нас все читается с еепрома и итоговая сумма будет с учетом того, что сбойная ячейка прочиталась не так, как мы ее записывали, но мы этого не узнаем. Поэтому логичнее считать CRC для каждой модели отдельно и при записи сначала считать CRC по модели в RAM а потом все записывать в еепром, тогда если что-то неправильно запишется, то CRC не совпадет.
Посоветуйте дисплей какой поставить, чтобы шлейф готовый был, третий телефон разломал 3310, подпаял шлейф а он молчит.
Вот такой Nokia 5110
Вот такой Nokia 5110
Спасибо, а прошивку под его нужно или она от 3310 подойдет.
Обещанные фото внутренностейВЧ блок собран на АЕмеге48 и СС2500 кодер HT4BR47.
Вроде ничего сложного, ППМ вроде понятно питание также , уровень ППМ похоже 5вольт.
Может кто поделиться прошивкой под индикатор Нокиа 5110 заранее благодарен. Gurrr@ukr.net
Посоветуйте дисплей какой поставить
Tic или еще тут аналогичный предлогали. Телефонные всеж мелковаты малек.
Посоветуйте дисплей какой поставить, чтобы шлейф готовый был, третий телефон разломал 3310, подпаял шлейф а он молчит.
RDX0154 -можно купить и в Киеве,и в др. маг.