Самодельный передатчик (часть 2)

dollop

Вот прицепил к кодеру дисплей RDX0154GC о котором речь шла пару странц назад (не знаю, чем там дело закончилось у моего соотечественника). Эти дисплеи пришли на смену TIC154. Во всяком случае у нас тиков не найти уже, а RDX0154GC обещают поставлять в неограниченых количествах (при цене $5,3 за штуку) занимается ими офф. дистрибьютер компании Microchip.
Кроме этого, заполнил (на 90%) свою страничку с описанием переделки корпуса аппы HK7X под кодер с дисплеем TIC154. Так как дисплеи очень похожи, думаю, что пусть они живут на одной странице (да и в аппу я не встраивал RDX0154GC - просто посмотрел, что отлично работает).
Но есть к Дмитрию EagleB3 вопрос. Не могу подвинуть на один пиксель влево ползунок настройки доп. проп. канала при калибровке. Все остальное меню, благодаря Дмитрию завязанное на переменных, перевелось на дисплей 65х132 без проблем. Спасибо!

Tigra74

Я где-то “перемудрил” со схемой подключения RDX0154GC-или дисплей мне попался бракованный
Как будет выложена схема с RDX0154GC-,проверю свой дисплей
Сравню со своей схемой-и будет понятна причина(хотя вывод один-не получилось у меня)

EagleB3
dollop:

Не могу подвинуть на один пиксель влево ползунок настройки доп. проп. канала при калибровке. Все остальное, завязанное на переменных, перевелось на дисплей 65х132 без проблем

Вот проблема как раз в этом, в автоматическом пересчете. У меня все идеально легло в 11 “цуней”+1столбец, т.е. (4+1+4+1+1)=11*12+1.
Этот “+1” возникает из-за того, рисование начинается не с первого столбца, а с нулевого, и рисунок реально занимает 1+132=133 столбца. В расчете нулевого стобца нет, а линия в нем - есть.
Упустил я этот “+1” из автоматического расчета… 😊

Можно просто посчитать (если заниматься подгонкой - лучше в Excel. Я, когда макетировал экран, вообще создал чертеж в Solid Works… 😒) координаты X в этих макросах (ненужные строки удаляю, результат дописываю справа):

//Графический экран калибровки
//Расчет предварительных параметров ("автоматизация")
#define TW WidthS/11            //Горизонтальный цунь дисплея =12
#define LeftPole 0                  //Отступ слева
#define AdjAreaW TW*4          //Ширина рамки =48
#define AdjBarW TW              //Ширина бара =12
#define IntAdjArea TW           //Интервал между рамками =12
#define IntAdjBar TW            //Интервал между правой рамкой и баром =12
//Расчет основных параметров по предварительным
#define X1A1 LeftPole           //Левый край левой рамки =0
#define X2A1 X1A1+AdjAreaW      //Правый край левой рамки = 48
#define X1A2 X2A1+IntAdjArea    //Левый край правой рамки =60
#define X2A2 X1A2+AdjAreaW      //Правый край правой рамки =108
#define X1B X2A2+IntAdjBar      //Левый край бара =120
#define X2B X1B+AdjBarW         //Правый край бара =132

Вот тут как раз и видно, что я рисую от LeftPole до X2B включительно (в столбцах 0…132, всего 133 столбца).
А тебе доступны только 0…131 (всего 132 столбца)

Если оставить “Цунь” целочисленным и сделать = 11, то впустую пропадут 11 столбцов, что обидно.
Сделать “цунь” с дробной частью? Ничего хорошего, скорее всего, не получится. Но можно попробовать…

Самое простое - поиграть параметром AdjBarW , который сейчас равен 1 “цуню”, примерно так:
#define AdjBarW TW-1 //Ширина бара
На сколько я понимаю, правая граница после этого должна появиться. Если нет - вычти 2, 3 - ну вылезет она в конце-концов, некуда ей деваться…

Дальше - варианты (сплошная эстетика):
Либо оставь AdjBarW как есть и вычти по единице из интервалов между рамками - справа появится один пустой столбец.
Либо вычти по единице из интервалов между рамками и из ширины бара, а LeftPole сделай 1 вместо 0 - у тебя появится по одному пустому столбцу слева и справа, интервалы между квадратами будут равны ширине бара, но станут они чуть-чуть уже.

Но калибровка - это, насколько я помню, единственный экран, который я считал чисто от левого края вправо. Все прочие делались симметричными, и либо считались"от левой влево, от правой - вправо", либо целочисленным делением определялась середина и от нее раскладывалось поровну влево и вправо. Там быть проблем не должно.

olegtur77

Красотища! Стаю в очередь на новый индикатор…уж очень он мне понравился. А пока еще попался в руки трупик турниги9…будет чем заняться.

Tigra74
olegtur77:

Красотища! Стаю в очередь на новый индикатор…уж очень он мне понравился. А пока еще попался в руки трупик турниги9…будет чем заняться.

Ну в Украине проблем купить нов индикатор нет-нашёл за 3 дня
Срочно всё бросаю и делаю этот вариант кодера

dollop
EagleB3:

Самое простое - поиграть параметром AdjBarW , который сейчас равен 1 “цуню”, примерно так:
#define AdjBarW TW-1 //Ширина бара

Дмитрий, спасибище!
Все в порядке после

#define AdjBarW TW-1
Tigra74

Как будет выложена схема с RDX0154GC, проверю свой дисплей

Геннадий, там подключение по даташиту полностью. Кстати, дисплей толерантен к 5В, то есть я запитывал его от 5В и I2C тоже у меня пятивольтовая (по прайсам кое-где дисплей RDX0154GC указывается как 3,3-5В - поэтому я такой смелый 😃) Страницу обновил. На всякий случай схему даю сюда

Tigra74

Ну теперь осталось после ночной с работы домой добраться и доделать по этой схеме и прошивке
Кстати,когда брал радиодетали -взял
Фототранзистор L-53P3BT d=5мм e-voron.dp.ua/catalog/003446
Светодиод 3мм FYL-3014 UBC Синий e-voron.dp.ua/catalog/013649
Для замены в паре потенциометров на стиках
Первый вариант -сектор между светодиодом и фототранзистором-был попробован,но не подошёл из-за неточности
Второй вариант-поворот поляризатора(фрагмент с экрана тетриса)-результаты положительные-и буду лепить в новом кодере всё вместе

Tigra74

Выложу черновик печатной платы под RDX0154GC -точное соответствие на чертеже выводов дисплея,контур дисплея и выводов подсветки-по размеру с большой точностью-проверено,добавка остальных элементов -дело 5 минут
Щас “дочерчиваю”
-под вариант с разъёмами шагом 2 мм -
Также предложение разработчикам-добавить на сайт даташиты на RDX0154GC и др соответственно

Aleksey_Gorelikov

Никто из спектрума ДХ-5 не собирается “спектр ДХ-12Ё” делать? Скрещивал в выходные рояль про со спектрумовским 12-канальным модулем, за одно срисовал протокол… Все просто!
000001 10:21:03.203 00 00 83 E5 3B E5 1B E5 43 E5 4B E5 *5B EF* FF FF …ѓе;е.еCеKе[пяя - тут менялся 12 канал.
000002 10:21:03.218 00 00 0B E5 2B E5 13 E5 23 E5 33 E5 53 E5 FF FF …е+е.е#е3еSеяя
12 канал выделил звездочками. 😃 Расписываете побитно, первые 5 бит - адрес, вторые 11 бит - значение канала. В нулевом канале - 5ый бит в единичке - означает первый пакет.
Первый байт в посылке - управление модулем ДХ5, там как и в 7-канальном 10битном спектрумовском протоколе надо ставить нужное значение функции и мощности.

В зависимости от того, какой приемник биндится - модуль менял протокол с 7каналов10бит на 12 каналов 11бит. В варианте с модулем от ДХ5 придется в меню “тип модуляции” делать выбираемым. Покрайней мере 6-канальные приемники с 12 канальным сигналом - с ума сходят.

Enigm

У меня вопрос.
Под энкодер с кнопкой (от магнитоллы) чтоб бы, крутилка эмулировала перемещение верх-вниз, короткое нажате в право, нажатие с небольшой задержкой в лево, сложно изменить прошивку ?
А то я на PIC12F675 сделал эмулятор, но хотелось бы , без лишних заморочек.

Enigm

Вобщем вдруг кому приодится.
Озаботился я кнопками для переделки второго пульта, и что нить более менее меня устраивающие не нашлось, то что устраивало (от панельки автомагнитоллы) были уже установленны в первый пульт. rcopen.com/forum/f8/topic207267/1532
И тут с той же панелки в глаза бросился энкодер с кнопкой, вот и решил его пристроить, а так как кнопка одна, то решил на нее повесить двойную функцию, в предыдущем посте ее логика описанна.
Так как в Си я полный ноль, да и не дается он мне почему-то ( не идет и все тут), понял что с исходниками мне делать нечего, а поиск по теме на счет энкодера, нужного мне варианта не нашлось, решил прикрутить к энеодеру PIC ( пишу в Flowcode, а там для простых задач можно и без Си обойтись)
Вот что получилось, проверенно и работает.
Схема

Так как не хватило одного вывода контроллера и брать другой контроллер не хотелось, пришлось управление (вправо- влево) делать на одном выходе, поэтому R5-R4 должны быть как в схеме , что бы не было ложных срабатываний.
Понимаю что все вышенаписанное это извращение(хотя и работает), поэтому буду благодарен если кто это все сможет прописать в прошивку кодера, для прямого подключения энкодера с кнопкой к кодеру.
А так подключил пошарился по меню, и что могу сказать, навигация очень даже удобная, кроме изменения больших велечин, но для них есть дополнительный пропорциональный канал.
Ниже цепляю прошивку

1.rar

Tigra74

Сделал по схеме и прошивке с RDX0154 Константина Сафронова
Всё работает-спасибо
И Печатка под RDX0154 с подсветкой

Tigra74

Подскажите,что нужно сделать,чтобы перевернуть изображение экрана RDX-
пробовал менять значения здесь-
for (y=0; y<=str_row; y++){
for (x=0; x<str_col; x++) buff[y][x]=0;
и здесь
for (i=0; i<str_row; i++){
for (j=0; j<str_col; j++)
Экран не изменился-или у меня CodeAvr на русском с глюками-

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

dollop

Закоментируйте или удалите строку в инициализации дисплея (файл LCD_3320.c), которая отвечает за зеркальное отражение экрана по горизонтали и вертикали


 i2c_write(0b11000110);

Если что - вот хекс и сам LCD_3320.c

Coder.zipLCD_3320.zip

Dmitry123

Всем привет!
Имеется приемник от валкеры rx-602.
Есть в Нерезиновске специалисты, которые могут подружить его со стандартным PPM-ом (как рассказано в посте #1822) за вознаграждение?

MaxGoblin

Столкнулся с такой вот неожиданностью.
При включении кодера отображается экран калибровки стиков. Далее после того как определены границы их перемещения(вместе с доп. каналом) переходит в меню установки темперетуры и все стопорится на надписи “Down throttle” и ни на какие манипуляции со стиками и кнопками не реагирует.
Такое происходит на прошивках как 1.9.1 так и на 1.9 от msv

Uпит=5.01в
Aref=4.85в

Напр на стиках
Umin=0.34в
Umax=4.51в

Кто сталкивался с данной заморочкой?

Tigra74

Уменьшить Umin=0.34в попробуйте,почти до 0.Хотя бы канале газа,если он правильно подключен

EagleB3
MaxGoblin:

“Down throttle”

Стик газа отклонен от нуля (кажется, на 10% или более - точно не помню).
Прижмите посильнее стик вниз,
или не слишком усердствуйте с нажимом его вниз при калибровке.

Если квалификация позволяет, посмотрите соответствующий кусок (файл Coder.c, функция void VerReady(void) ) из моих исходников. Там в этом экране выдается не только фраза “Down throttle”, но текущее положение стика в процентах. Изменение кода элементарное:

            LCD_wrsf("Down throttle!", 1);
            sprintf(buff, "Throttle %i%%", v11);
            LCD_setxy(LeftTabX,Throttle_percent_Y);
            LCD_wrs(buff, 1);

Только не забудьте где-то задать координаты вывода LeftTabX и Throttle_percent_Y

MaxGoblin

Уменшил напряжение до 0.12в, (Umax на переменнике стало 3.82в),та же ситуация.
Потом вовсе снял его со стика и покрутил до крайних положений сто ось стопорится упором внутри переменника. Без изменений.

Попробую промыть плату повторно и под мелкоскопом просмотреть дорожни на предмет КЗ.

Програмированием пока не владею к сожалению.

EagleB3

Еще раз: “Down throttle” выдается, если стик газа находится не в минимальном значении, определенном для газа при калибровке.

Просто не задавливайте стик газа в самый низ при калибровке. Нежно коснитесь стиком нижнего пластика рамки - и все.
А при входе, увидев фразу “Down throttle” - прижмите его вниз посильнее.

Если не поможет - скорее всего потенциометр газа дурит.

MaxGoblin

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