Лампа настроения: продолжение

лампа настроения avr attiny13

Спустя почти два года после публикации первого варианта лампы настроения было собрано несколько экземпляров, сделаны выводы и произведены некоторые улучшения.

После обкатки на разных устройствах прошивка была обновлена:

  • Изменен алгоритм генерации цветов - теперь цвета более насыщенные
  • Исправлена проблема с резким переключением между цветами. Баг связан с тем, что раньше значение следующего цвета вычислялось непосредственно в процедуре прерывания и эта операция занимала слишком много времени. Теперь вычисление вынесено в главный цикл
  • Добавлена возможность использовать свой генератор псевдо-случайных чисел вместо stdlib-овского. Этим можно немного уменьшить размер прошивки в ущерб качеству случайности генеримых цветов (что, вообщем-то, не особо сказывается на работе лампы).
  • Прошивка теперь компилируется под AVR Studio 6

При повторении лампы было неоднократно замечено, что результат сильно зависит от качества применяемого блока питания. И при использовании дешевых китайских зарядных устройств, выдающих нестабилизированное напряжение, можно получить неприятные мерцания и резкие переключения цветов. Кстати, это касается не только данного устройства - дешевые ЗУ не особо стабилизируют выходное напряжение и не подавляют импульсные помехи на выходе. Как следствие, при их использовании без дополнительного стабилизатора следует быть готовым к разного рода загадочным сюрпризам. Для предотвращения которых в схему лучше добавить свой стабилизатор.

Для уменьшения размеров устройства был использован круглый радиатор из алюминия толщиной 5мм и разведена круглая печатная плата. Плата крепится к радиатору, мощные токоограничивающие резисторы размещены на ее обратной стороне.

Внешний вид круглой лампы настроения Внешний вид круглой лампы настроения

Радиолюбитель Толстенко Сергей (sseett@mail.ru) любезно предоставил описание сконструированных им ламп.

В одной из ламп в качестве светорассеивателя была использована серебристая толстая пленка от экрана ЖК телевизора, что дало отличный результат.

Конструкция первой лампы настроения Внешний вид первой лампы настроения Внешний вид лампы настроения

В качестве основы второй конструкции взята лампа, купленная в Таиланде. Ранее внутри стояла маленькая лампочка накаливания. Вместо мощного светодиода использована светодиодная лента, намонанная на картонную трубку, сделанную из шпильки от пищевой фольги.

Конструкция второй лампы настроения Конструкция второй лампы настроения Конструкция второй лампы настроения Конструкция второй лампы настроения

Плата разведена в Дип Трейсе и изготовлена методом ЛУТ с прокаткой ламинатором. В схему добавлен стабилизатор 78L05, транзисторы n-p-n, что были под рукой.

Печтаная плата лампы настроения - 3D модель Печтаная плата лампы настроения

Вот так лампа выглядит в работе:

Работа лампы настроения Работа лампы настроения Работа лампы настроения

Разводку печатной платы в формате Dip Trace можно скачать по ссылке ниже. Также в архив включены рисунки для ЛУТ (в масштабе 400%, 300 dpi нормально + зеркально). Два отверстия на большой стороне платы желательно соединить перемычкой.

Исходники доступны на гитхабе: github.com/trol73/avr-moodlamp-tiny13

Файлы:

DownloadОбновлённая скомпилированная прошивка
DownloadСхема и печтаная плата (круглая, Eagle)
DownloadПлата в DipTrace + рисунки для ЛУТа
Рейтинг: 
0
Голосов еще нет

Комментарии

Озвучьте пожалуйста значение фьюзов для данного проекта. Спасибо.

Фьюзы те же, что приведены в первой статье:

avrdude -c usbasp -pt13 -u -Ulfuse:w:0x7A:m -Uhfuse:w:0xFF:m -Uflash:w:moodlamp.hex:a

Хорошая вещь! Спасибо!

Извините, можно замечание сделать? Можно скорость смены цвета сделать чуть медленнее? 

Насколько медленнее сделать скорость?

Раза в полтора

К сожалению, мне нечем скомпилировать сейчас прошивку. Нужна Atmel Studio 5, т.к. только она генерировала код, который вмещался в tiny13.

Чтобы увеличить время в полтора раза надо изменить две строки в конце файла MoodLamp.c

rndTime = random() % 50;

rndTime += 30;// time to change color, sec/10

на что-то вроде

rndTime = random() % 75;

rndTime += 45;// time to change color, sec/10

 

1

2

3

4

5

6

Вот примерно что у меня вышло. Плафон из страусиного яйца, основание из корпуса датчика пожарной сигнализации, начинку выдрал и по размерам платы сделал другую для лампы и вставил в держатель что там был.

https://www.youtube.com/watch?v=totp_TMopkU

Здравствуйте. Я свои пару копеек воткну? :)

В студии 6.2 собирается большой кекс.  В релиз - 110% (1126 байт), в дебаге 134.2% (1374 байта). Это при использовании не стдлибовского генератора. С ним ещё больше.

Прошлую (из первой мудлампы) прошивку упихул-таки в тиньку, там тоже было много.

Имею два таких вопроса:

1. Не пробовали частоту ШИМа поднять? мерцание на малой яркости очень заметное. (К слову вот: http://habrahabr.ru/post/248393/ )

2. Могу ли я попросить сделать из второй прошивки простую вариацию "все на нуле-растет красный-растут синий с зеленым-гаснут синий с зеленым-гаснет красный". Перелив цветов на второй прошивке мне понравился больше чем на первой. И в идеале с пропуском фиолетового, но это уже просто прихоть :)

На счет частоты ШИМа уже, честно говоря, не помню, но должен был выжать по максимуму.

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

Для компиляции, если не ошибаюсь, нужна 5я студия (у меня ее уже нет). Во второй прошивке перелив покрасивше из-за того, что там были исправлены пара явных багов, которые почему-то совсем не проявлялись у меня в первом девайсе.