Шлем оптимуса натолкнул на мысли...
Товарищ попросил помочь перенести динамическую подсветку с оптимуса на прикормочный катер (ну любит он рыбачить ночью и, чтоб можно было регулировать освещение дистанционно, было придумано такое решение) но меня озарила не менее интересная идея )))
Товарищ попросил помочь перенести динамическую подсветку с оптимуса на прикормочный катер (ну любит он рыбачить ночью и, чтоб можно было регулировать освещение дистанционно, было придумано такое решение) но меня озарила не менее интересная идея )))
Итак, поехали:
Немного теории. Управление нашей подсветкой будем осуществлять от любого из каналов приемника, можно через Y-кабель, можно смикшировать с каналом газа, можно просто на отдельный какнал, тут кому что нравится/необходимо. Каким именно образом формируются управляющие импульсы можно подробно почитать здесь. Зажигать светодиоды мы будем используя ШИМ.
Что нам потребуется: руки, паяльник, микроконтроллер ATMega8 (просто была под рукой), кусочек (18х36) двухстороннего текстолита, 12-ть smd резисторов, пара конденсаторов, спаренные штырьковые разъемы, собственно сами светодиоды ну и программатор (я использую USBASP).
Реализация: Прошивка написана на MikroC, плата разведена в DipTrace. По этой причине, я скомпилировал исходники и выгнал плату в pdf. Исходников два, первый (led_6x6.c) на порту С - динамическое управление светодиодами, на порту B - дискретное управление. второй (led_12x0.c) - оба порта управляются динамически. Соответственно две скомпилированные прошивки (flash_6x6.hex) (flash_12x0.hex). Ну и сама плата в формате pdf (PCB.pdf), она уже отзеркалена, просто распечатываем как есть и переводим с помощью ЛУТ на текстолит.
В самих исходниках я постарался максимально закомментировать все выполнямые действия. Как это работает: На внешнем прерывании INT0 висит сигнал от приемника, когда приходит передний фронт управляющего импульса, включается таймер и считает тики до окончания управляющего импульса. По завершению счета, мы получаем значение длительности этого импульса, он меняется от 1мс до 2мс, что соответствует минимальному и максимальному положению стика газа на пульте. Второй таймер тикает постоянно, и считает от 0 до 255 (это наш диапазон изменения яркости свечения светодиодов), при прохождении счетчика таймера через 0, на порт со светодиодами подается высокий уровень, при достижении значения таймера соответствующего значению длительности входа, порт отключается до следующего перехода через ноль, т.е. получаем классический программный ШИМ, который и позволит нам зажигать светодиоды с различной яркостью. В прошивке "6x6" реализовано дополнение - на порту B светодиоды загораются при положении стика газа больше среднего т.е. при длительности управляющего импульса больше 1.5мс, а при меньшем значении - отключаются.
Для того чтобы залить прошивку на плате предусмотрены площадки для припаивания проводков программатора.
Площадки RESET, SCK, MISO, MOSI - это для программатора, к ним припаиваем проводки, шьем прошивку и отпаиваем проводки. Площадка GND и аналогичная под C1 - это переходные отверстия на противоположную сторону, там фольгу не вытравливаем, там у нас земля. правая площадка под C1 - это питание. Сверху платы выведен порт C, снизу порт B, конденсаторы С1 и С2 любые (у меня С1 - 0.1мкФ, С2 - 22мкФ танталовый электролит). Контакты signal, +5v, GND (слева) - сюда подключается выход из приемника (как обычная серва). Резисторы надо подбирать под ваши светодиоды, чтобы добиться минимального потребления тока при максимальном свечении, ну обычно номинал этих резисторов от 300Ом до 1кОм, у меня отлично все получилось при номинале 510Ом. Питается вся схема от управляющего сигнала приемника, т.е. отдельное питание не надо, только смотрите, чтоб оно не превышало 5.5вольт, чтоб не спалить контроллер. Контроллер тактируется внутренним резонатором на 8МГц.
Как все это выглядит в собранном виде:
С припаянными проводами программатора:
Вид снизу:
с программатором:
устройство, готовое к эксплуатации:
На последнем фото показано, как подключаются светодиоды, т.е. плюс на сторону с дорожками, минус - на сторону с фольгой.
вот скрин как установить фьюзы:
Для чего две разные версии прошивок: ну например, ставим все светодиоды по окружности выходного канала сопла, шасть из них будут плавно загораться при увеличении газа до половины, после зажгутся остальные шесть (визуально как будто включился форсаж). Можно поставить по три динамических и три дискретных на каждое сопло. Можно поставить все светодиоды как динамические, по шесть на каждое сопло. Т.е. вариантов несколько, каждый выбирает по вкусу свой.
Ну и на закуску, видео работы полученного девайса:
Для данного примера использовано всего два светодиода на динамическом канале.
Будут вопросы - задавайте.
летом катер выходит в плавание, весной, надеюсь, полетит истребитель из видео.
Вес собранной платы без внешних светодиодов - 6гр.
Немного теории. Управление нашей подсветкой будем осуществлять от любого из каналов приемника, можно через Y-кабель, можно смикшировать с каналом газа, можно просто на отдельный какнал, тут кому что нравится/необходимо. Каким именно образом формируются управляющие импульсы можно подробно почитать здесь. Зажигать светодиоды мы будем используя ШИМ.
Что нам потребуется: руки, паяльник, микроконтроллер ATMega8 (просто была под рукой), кусочек (18х36) двухстороннего текстолита, 12-ть smd резисторов, пара конденсаторов, спаренные штырьковые разъемы, собственно сами светодиоды ну и программатор (я использую USBASP).
Реализация: Прошивка написана на MikroC, плата разведена в DipTrace. По этой причине, я скомпилировал исходники и выгнал плату в pdf. Исходников два, первый (led_6x6.c) на порту С - динамическое управление светодиодами, на порту B - дискретное управление. второй (led_12x0.c) - оба порта управляются динамически. Соответственно две скомпилированные прошивки (flash_6x6.hex) (flash_12x0.hex). Ну и сама плата в формате pdf (PCB.pdf), она уже отзеркалена, просто распечатываем как есть и переводим с помощью ЛУТ на текстолит.
В самих исходниках я постарался максимально закомментировать все выполнямые действия. Как это работает: На внешнем прерывании INT0 висит сигнал от приемника, когда приходит передний фронт управляющего импульса, включается таймер и считает тики до окончания управляющего импульса. По завершению счета, мы получаем значение длительности этого импульса, он меняется от 1мс до 2мс, что соответствует минимальному и максимальному положению стика газа на пульте. Второй таймер тикает постоянно, и считает от 0 до 255 (это наш диапазон изменения яркости свечения светодиодов), при прохождении счетчика таймера через 0, на порт со светодиодами подается высокий уровень, при достижении значения таймера соответствующего значению длительности входа, порт отключается до следующего перехода через ноль, т.е. получаем классический программный ШИМ, который и позволит нам зажигать светодиоды с различной яркостью. В прошивке "6x6" реализовано дополнение - на порту B светодиоды загораются при положении стика газа больше среднего т.е. при длительности управляющего импульса больше 1.5мс, а при меньшем значении - отключаются.
Для того чтобы залить прошивку на плате предусмотрены площадки для припаивания проводков программатора.
Площадки RESET, SCK, MISO, MOSI - это для программатора, к ним припаиваем проводки, шьем прошивку и отпаиваем проводки. Площадка GND и аналогичная под C1 - это переходные отверстия на противоположную сторону, там фольгу не вытравливаем, там у нас земля. правая площадка под C1 - это питание. Сверху платы выведен порт C, снизу порт B, конденсаторы С1 и С2 любые (у меня С1 - 0.1мкФ, С2 - 22мкФ танталовый электролит). Контакты signal, +5v, GND (слева) - сюда подключается выход из приемника (как обычная серва). Резисторы надо подбирать под ваши светодиоды, чтобы добиться минимального потребления тока при максимальном свечении, ну обычно номинал этих резисторов от 300Ом до 1кОм, у меня отлично все получилось при номинале 510Ом. Питается вся схема от управляющего сигнала приемника, т.е. отдельное питание не надо, только смотрите, чтоб оно не превышало 5.5вольт, чтоб не спалить контроллер. Контроллер тактируется внутренним резонатором на 8МГц.
Как все это выглядит в собранном виде:
С припаянными проводами программатора:
Вид снизу:
с программатором:
устройство, готовое к эксплуатации:
На последнем фото показано, как подключаются светодиоды, т.е. плюс на сторону с дорожками, минус - на сторону с фольгой.
вот скрин как установить фьюзы:
Для чего две разные версии прошивок: ну например, ставим все светодиоды по окружности выходного канала сопла, шасть из них будут плавно загораться при увеличении газа до половины, после зажгутся остальные шесть (визуально как будто включился форсаж). Можно поставить по три динамических и три дискретных на каждое сопло. Можно поставить все светодиоды как динамические, по шесть на каждое сопло. Т.е. вариантов несколько, каждый выбирает по вкусу свой.
Ну и на закуску, видео работы полученного девайса:
Для данного примера использовано всего два светодиода на динамическом канале.
Будут вопросы - задавайте.
летом катер выходит в плавание, весной, надеюсь, полетит истребитель из видео.
Вес собранной платы без внешних светодиодов - 6гр.
Спасибо.
"проще подключить диоды прямо к регулятору" - попробуйте, вы не получите тот результат как здесь. Сигнал от приемника выходит примерно такой:
для минимума - 1мс импульс, потом около 20мс нет импульса
для максимума - 2мс импульс, потом около 19мс нет импульса
т.е. при таком "шиме" сигнала больше нет, чем есть и его изменения (по отношению ко всей длительности) ничтожны.
Я не совсем понял, как это - "фары автомобиля параллельно двигателю"? кто вам такое посоветовал?
А про фары - никто не советовал. Просто на игрушке надо было сделать при переднем ходе фары горят, при заднем - задние фонари. Но главное другое, что на фары подавался тот же шим что и на двигатель. Так вот при минимальном газе, когда машинка еще и не ехала, а пищала на месте, светодиоды фар уже во всю светились. Во.
НО!
...начав читать статью, не дочитал даже до середины, ибо понял:
1. Возня с микросхемами - это для меня абсолютно новое и кажется чрезмерно сложным.
2. Надо ВНИКАТЬ, и понимая во что вникаю, пытаться всё осмыслить,
3. Бежать в магазин за маломощным или импульсным радиопаяльником с тонким "жалом" и прочей необходимой мелочью.
Сразу в голове нарисовалась мысль - "да ну .......". Нет времени и желания глубоко вникать в радиоэлектроннику, хотя несомненно интересно.
Сложно всё это для непосвященных, типа меня. А таких тут множество, как мне кажется.
Хотелось бы увидеть что нибудь аналогичное, но гораздо более простое. Конечно есть более простой вариант - купить готовое, но к сожалению у нас в стране продажная наценка не имеет чувства меры.
Буду признателен, если выложите что то аналогичное для "чайников" в радиоэлектроннике.
2. Вникать не обязательно, все что выложено - рабочий вариант, если вам необходимо внести изменения, вам необходима иная логика работы устройства - тогда придется править прошивку, но это проще чем перепаять половину аналоговой схемы. Если что будет непонятно - посмотрим вместе.
3. Зачем вам "особый" паяльник, я все это паял обычным паяльником на 60 Вт. никаких особых приблуд не применял.
К сожалению (для Вас) и к счастью (для меня) я давно отошел от аналоговых реализаций подобных вещей, куда проще взять один контроллер, немного рассыпухи, и нарисовать алгоритм кодом. При этом, все изменения логики производятся правкой кода, а не железа. До знакомства с контроллерами, у меня тоже было подобное отношение ко всему непонятному, потом прошло и я этому очень рад.
Попробуйте, если что не будет получаться - постараюсь вам помочь.
А по поводу -
1. В чем сложность возни с микросхемами? или Вас смущают smd-элементы как таковые?
- может не сложность, а страх перед чем то непонятным)), к примеру Ваш диалог с коллегой, ниже :
Дмитрий Киселёв, Ярославль, 8 января 2015 года в 11:470
Юрий, вы приводите пример фьюзов для PonyProg. А разве USBASP с ней работает7
Юрий Белоусов, Таганрог, 8 января 2015 года в 14:460
Нет, с понипрог асп не работает, асп работает с дудкой, это скрин c сайта http://fusecalc.mirmk.net/, просто так нагляднее.
Дмитрий Киселёв, Ярославль, 8 января 2015 года в 15:310
Ясно. А я уж грешным делом подумал, что у вас Понька какая волшебная))))
Для меня, как непосвященного данный диалог показался весьма странным)) То что я смог осмыслить что АСП - это для меня ДВС, и с какой дудкой он может работать непонятно. Ну это так, в качестве юмора.))
Вспомнил давний диалог с женой, когда я резал детали для модели.
Подходит, спрашивает - "Как интересно, чего делаешь?"
Отвечаю - "режу шпангоуты и нервюры, а это стрингеры"
Ушла задумчивая на кухню печь блины.
AVRDUDE (она же дудка) - программа для заливки прошивки
USBASP (он же асп) - сам программатор (железо) для заливки прошивки
Фьюзы (fuses) - дословно "перемычка", специальные регистры контроллера, через которые задаются настройки работы самого контроллера.
ушел курить ))
Все это легко гуглится и за пару вечеров вы так же сможете кидаться "умными" словами. Удачи. Кто ищет,тот обязательно находит.