Самодельный передатчик (часть 1)
я тоже включал без ручек и долго думал почему не работает, потом собрал всё в кучу, почему-то всё заработало…
Может быть и в правду нужно всё в кучу собрать. Хотя врят ли. У тебя просто совпадение. Экран должен сразу показывать, и без ручек. У меня без ручек он показывал.
Информация к размышлению:
уже думал над этим
Lcdhype виснет сразу после запуска. Попробовал запустить старую версию, которая когда-то давно у меня запускалась, тоже виснет. Теперь занимаюсь поиском причины зависания Lcdhype.
я припаялся к “желтым” контактам и намальна работает,
Я когда-то работал в сервисе, когда в москву завезли партию 7210 с “желтыми” дисплеями, а наш сервис осуществлял гарантийный ремонт для Связного, в течении 3 месяцев только и делал, что менял дисплеи на “чисто-стеклянные”. Покупали и “желтые” для всех ч\б нокий, но недолго, т.к. обычно в течении месяца телефон с таким дисплеем возвращался на гарантийку.
Если ты припаялся и у тебя работает - тебе повезло, но это скорее всего исключение… Единственный вариант “починки” “желтого” дисплея - проковырять дырочку скальпелем в контакте и капнуть туда контактолла, но тоже не на долго…
П.С. могу насыпать полсотни дисплеев от 7210, с желтыми контактами, если еще не выкинул… Только дохлые все!
даже не знаю. пока работает, а припаивался сплавом Розе. может потому и повезло…
Всем, кто отвечал, огромное спасибо. Нашел пьезу с генератором, подключил - пищит. Экранчик взял с контактами, которые не надо прижимать - работает. Теперь очередь ручек и кнопок.
в процессе эксплуатации появился вопрос. в субботу на полетах и раньше наблюдается интересная ситуёвина: при расположении антенны горизонтально(передатчик подвешен на ремне), пропадает изображение на дисплее, наклон больше-меньше изображение появляется, перебоев в сигнале приемником не замечено. Дома в любом положении - нормальное изображение. что бы это могло быть? надавливания, встряхивания и др. манипуляции(стекло протирал, по корпусу постучал, закурил) на контакт не влияют.
Вобщем дело сдвинулось с мертвой точки. Взялся изготовить плату по ЛУТ технологии - впервые в жизни. В попытках автотратсировки(использовал DipTrace) стало понятно - придется разводить ручками. В попытках все развести на одном слое схема была сильно упрощена - осталось четыре свободных входа для кнопок/переключателей. Но я не вижу в этом никакой проблемы, т.к. под переделку будет использоватся простейший передатчик с аналоговыми триммерами и миниумом переключателей. Вобщем для “пробы пера” достаточно.
Когда развёл, понял, что для того что бы прямо на разъеме соединить эту плату с индикатором, нужно её развернуть дорожками внутрь. А паять разъемы со стороны дорожек занятие не из приятных… Но подумав решил, что просто соединю индикатор и плату 40-ка жильным IDE шлейфом.
Технологию ЛУТ брал с внизу этой страницы. Правда вместо сахара собрал такой “станок”:
Перевелось почти все, правда мелкие огрехи все-таки были. Подправил маркером, травил в нагретом хлорном железе. Результат получился такой:
И на просвет:
Вобщем впечатлений масса, удовольствия от работы - тоже.
Завтра на работе буду мыть, лудить, сверлить и запаяю детальки которые найду.
За одно формируется мнение о том, какой должна быть вторая версия моего кодера. Думаю использовать отдельную платку с микроконтроллером как “видеоадаптер” и возложить все функции обработки графики на него. Из плюсов - можно соединить два контроллера малым количеством проводов с помощью SPI/TWI/UART, тем самым упростив разводку основной платы и высвободив кучу контактов.
Доброе время суток !
Тут поднимался вопрос о 2.4 но затих.
Есть предложение попробовать оживить вариант - буду краток
- Собирается на сс2511 - есть радио есть проц есть юсб (для конфирурации приёмника передатчика) тоесть в пульте и в приёмнике будет нужна только ОДНА микросхема - которую хватит на все вышеописанные в форуме задачи (она помощней аврки в несколько раз).
- На приёмнике собрать на плате с кристалом и управление бесколлекторным двигателем (ресурсы приёмо передатчика позволяют)
кратко плюсы - как говорил есть АППАРАтный Юсб через который будут настраиваться пульт (номер канала, ID, кривые, калибровать управление) и приёмник (канал ID регулятор бесколекторного двигателя)
- Возможность передовать телеметрию (напр акк, обороты двигателя , потр ток, температура - есть встроенный датчик)
- Настройки и наладки никакие для приёмника не нужны
Минусы - расстоние. по даташиту на дипольную антену
Gain in XY plane 5.6 dB
Gain in XZ plane 7.4 dB
Gain in YZ plane 6.5 dB
LOS Range 300 m
Antenna size 46 x 9 mm
это на скорости обменов 250 килобит
я расчитываю применять передатчик для паркфлаеров не более посему затенение ему сильно не грозит и расстояние достаточное 😃
Ещё один из минусов это - программатор не собрать на коленках - либо купить либо (что будет сделанно в любом случае)
будет писаться в программе бутлоадер с возможносью обновления прошивки через USB.
вот фото крестала (тут просто передатчик - но колличество обвязки приб такое и будет при использовании этой антены)
тема где выложил ещё фото кита
rcopen.com/forum/f8/topic85267/100
Это пока всё что в голову пришло !!!
Пишите вопросы отвечу с удовольствием!!!
Собираю кодер, Пределываю пульт от sporthobby, необходимо перевернуть изображение к верх ногами,
помогите, на форуме был подобный опыт, прошивка последняя Coder v2.
Обязуюсь показать результат
Собираю кодер, Пределываю пульт от sporthobby, необходимо перевернуть изображение к верх ногами,
помогите, на форуме был подобный опыт, прошивка последняя Coder v2.
Обязуюсь показать результат
номер поста не помню, но я предлагал изменения в файл проекта, переворачивал изображение. пару страниц назад, по-моему
файле “graph_new.lib”
void lcd_pixel (unsigned char x,unsigned char y,unsigned char color) //
{ unsigned char i,j;
//добавить вот эти две строки
x=95-x;
y=63-y;
//
i=y/8;
j=y%8;
if (color) buff[i][x]=buff[i][x] | (1<<(j));
else buff[i][x]=buff[i][x] & (~(1<<(j)));
}
перекомпилить и всё
неумею Я компелить, поэтому и прошу… помню был пост на эту тему. поищу
Я извеняюсь, наверное я не в тему, не знаю куда задать этот ворос…
Вобщем - возможноли заставить серву Hitec HS-325HB работать через COM порт ПК ?
посмотрел посты, прошивки перевернутой ненашел, помогите перекомпелить, переделывать def ненадо, делаю плату Focusa, только перевернуть 😇
перекомпилить не вопрос, тут же многое зависит от раскладки кнопок, тумблеров. Вы заметили, что часто народ говорит о редактировании def-файла? вот сейчас попробую, но какая у меня версия кодера?.. скомпилировал, сравните схему, версий уже много, немало и финальных)))
Схема Coderv_2, раскладка по схеме, тока перевернуть
самый последний какой у себя нашел
пасиб, проверю
Я извеняюсь, наверное я не в тему, не знаю куда задать этот ворос…
Вобщем - возможноли заставить серву Hitec HS-325HB работать через COM порт ПК ?
Я думаю не в тему. В этой ветке обсуждают совсем другое. Этот вопрос нужно задавать, непосредственнов разделе форума - Программы, Схемы. Может кто что посоветует…
Я извеняюсь, наверное я не в тему, не знаю куда задать этот ворос…
Вобщем - возможноли заставить серву Hitec HS-325HB работать через COM порт ПК ?
Через COM не знаю, а через LPT точно можно. Любую серву. Но питание нужно отдельно, порт не потянет.
Продолжим…
Начнем с того, что никто не сказал мне про мою “подтяжку земли”, что транзистор в таком случае не будет работать в режиме ключа. А получится эмиттерный повторитель. Разница в том, что в последнем случае на эмиттере будет напряжение базы, за вычетом где-то 0,6 вольта. То есть выход на передатчик в моей схеме получился где-то 4 вольта. Но если на входе передатчика будет стоять транзистор в режиме ключа, то ему и 1-го должно хватить…
Далее. Зачем я опубликовал свою схему? Просто так что ли? Конечно нет! Хотелось бы услышать по ней замечания… Но их я так и не дождался. Спаял, запустил. Смотрю выход PPM сигнала(С осциллографом была проблема: вместо 5-ти вольт показывал 4. Потом покрутил “Корр. Усил.” вроде встало на место):
Замечательно! И выход транзистора:
Как вам? А я чуть не *****! Хорошо додумался отпаять конденсатор на 0,1 который зачем-то бездумно и неправильно скопировал с переделываемой схемы. Все стало на свои места…
По схемотехнике далее. Моя схема с пищалкой работает! Могу генерировать любые частоты! Пищалку взял из компьютера в корпусе InWin. Как раз пьезо, с разъемом и даже с резистором внутри.
Минусы по сравнению с внутреннегенераторными пищалками:
- могут быть только на на определённых ногах(выходах таймеров)
- занимают таймер(минус пока условный - они и так свободны)
- может усложнится схема(на целый один резистор 😃)
Плюсы по сравнению с внутреннегенераторными пищалками:- могут генерировать разные частоты(можно играть мелодии)
На мой взгляд последний плюс перевешивает все минусы.
Код при этом не сильно усложняется и выглядит так:
[codebox]/*******************************************************************************
* Sound.c
*
* Радиоуправление: Работа со звуком
*
* Copyright © 2008 Nick Shl
* All rights reserved.
*
*
* Изменения:
*
* May 07, 2008 Nick_Shl Первоначальная версия
*
*/// ***************************************************************************
- могут генерировать разные частоты(можно играть мелодии)
//******************************************************************************
//*** Системные инклюды ****************************************************
//******************************************************************************
#incl*ude <mega128.h>
#incl*ude <delay.h>
//******************************************************************************
//*** Пользовательские инклюды *********************************************
//******************************************************************************
#incl*ude “Def.c”
//******************************************************************************
//*** Включение Buzzer’а с частотой Freq ***********************************
//******************************************************************************
void Tone(unsigned int Freq)
{
// Таймер запускается с параметрами:
// Clock source: System Clock
// Mode: CTC top = OCR2
// OC2 output: Toggle on compare match
// И с разными делителями для разных частот, потому как:
// при делителе 64 невозможно получить частоту ниже ~750Гц
// при делителе 256 на частотах > ~1500Гц высока погрешность генерации
// Деление на 4 аргументов для того, что бы AVR_Clock_Freq/x не превысило word
// Деление на два в конце, потому как нужен полупериод
if(Freq > 1000)
{
// Вычисление значения для таймера
OCR2 = (((AVR_Clock_Freq/64) >> 2) / (Freq >> 2)) >> 1;
// Запуск таймера(Clock divisor: 64):
TCCR2 = 0b00011011;
}
else if(Freq)
{
// Вычисление значения для таймера
OCR2 = (((AVR_Clock_Freq/256) >> 2) / (Freq >> 2)) >> 1;
// Запуск таймера(Clock divisor: 256):
TCCR2 = 0b00011100;
}
else
{
// Останов таймера
TCCR2 = 0b00000000;
// Снятие напряжения с пищалки, т.к. по останову таймера оно может быть любым
PORTB.7 = 0;
}
}
//******************************************************************************
//*** Включение Buzzer’а на Del милисекунд, с частотой Freq ****************
//******************************************************************************
void Beep(unsigned int Freq, unsigned int Del, unsigned char PauseAfterPlay)
{
Tone(Freq);
delay_ms(Del); // Пауза
Tone(0);
// Если установлен флаг - делаем паузу по длительности как и звук
if(PauseAfterPlay) delay_ms(Del);
}
[/codebox]В будующем выключение надо навесить на основной таймер(как это сделано в демо версии 3-его кодера), возможно даже стоит добавить возможность играть мелодии, передавая указатель на массив с частотами и длительностями.
Теперь чуток поругаю focus’а. Код второго кодера просто режет глаза. Там не просто плохое форматирование - оно отсутствует как класс. Многие вещи стоило задавать дефайнами. Например частоту кварца. Формирование длительностей импульсов размазано по всему коду math.c.
Теперь и про третюю версию скажу, и некоторые мысли на будующее. Использование структур при хранении моделей - очень правильный шаг. Но надо было пойти дальше и сделать память “динамической”. Иметь массив указателей на структуры, а первым полем - её тип. Тогда размер у структур может быть плавающим и зависящем от количества каналов используемых в модели и количества пилотаных режимов.
А вот использование чисел с плавающей точкой считаю абсолютно не оправданным! Контроллер то 8-ми битный! Загружать его вычислениями с плавающей точкой - точно перебор. Если хочется повысить точность, нужно было использовать числа с фиксированной точкой. Напимер возьмем int - 2 байта и long - 4. Как раз int помещается в два средних байта long’а. Тоесть младший байт long’а - “после точки”.
Преобразуем так: long = (long)int << 8;
Вычисляем все в таких числах.
Затем преобразуем обратно: int = (int)(long >> 8);
И точность и скорость.