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

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-ой перезаливки прошивки.
Спс всем за подсказки.

Enigm

У меня вопрос ?
Почему в описании тахометра написанно что на лампу он должен выдовать 100герц, а не показания в 3000rpm ?
А то неудобно, сразу и не поймеш что должен индикатор показать, я было подумал что у меня тахометр врет ))))
Да и в PDF описания кодера, ошибка с подключением R5 осталась.

Tigra74
Enigm:

Я вот решил тахометр прикрутить и попал на проблему.
Почему то он мне на лампу выдает 3000 rpm.
Да и в PDF инструкции ошибка с подключением R5 осталась.
Поставил все рекомндованные конденцаторы не помогло.
Так же поднес к экрану кинескопного телека показало ровно половину 1500rpm что и ожидалось.
Значит он считает правильно, вот только почему то с умножением на 30.
В чем может быть проблема ?

Ответ тоже интересен-только не понял текст-когда писал сообщение предъидущее изменилось