Светодиодный Волчок со Спецэффектами

Запустите волчок, что бы появился
запрограммированный текст



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

Перевод статьи ‘LED Top with Special Effects’, Michael Bragard опубликованной в выпуске 12/2008 журнала Elector.
Автор статьи Майкл Брагард (Германия).


Вы все еще помните свои уроки физики в средней школе? Некоторые учащиеся относились к ним несерьезно, в то время как другие (которые предположительно включают в себя многих наших читателей), вероятно, вспомнят следующую ситуацию: свободно висящая петля из проволоки подвешена в магнитном поле подковообразного магнита. Учитель короткое время пропускает постоянный ток через эту петлю, и она отклоняется к одной из сторон, а затем назад, как будто подталкиваемый невидимой рукой. Затем учитель говорит вам, что принцип работы электродвигателя основан на этом явлении.

После того, как вы более или менее поняли этот замечательный факт, следующий физический эксперимент вам приносит еще один сюрприз: учитель говорит, что этот эффект также работает и в обратном направлении. На этот раз он, как и раньше, подключает к петле из проволоки, но вместо источника тока, чувствительный электромеханический вольтметр и затем начинает перемещать петлю в магнитном поле, то назад, то вперед. Каждое движение петли вызывает отклонение стрелки вольтметра. Он заканчивает этот урок словами: «Это принцип работы электрического генератора».

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

Описанная здесь конструкция имеет небольшую катушку, которая расположена в магнитном поле Земли вместо поля подковообразного магнита. Точнее сказать: когда волчок вращается, катушка вращается в горизонтальной составляющей магнитного поля Земли. Если скорость вращения постоянна, напряжение, индуцированное в катушке, является синусоидальным — другими словами, катушка действует как электрический генератор. Конечно, магнитное поле Земли очень слабое; используемый здесь горизонтальный компонент имеет индукцию менее 20 мкТл в Центральной Европе. Сгенерированное напряжение пропорционально площади сечения сердечника катушки и количеству витков. Есть верхние пределы для обеих этих величин, так как катушка должна помещаться на волчке, который будет возможно вращать вручную. Чтобы не мотать катушку самостоятельно, здесь мы попробуем использовать покупной дроссель. Естественно, что амплитуда напряжения также пропорциональна скорости вращения и, следовательно, навыкам пользователя. Напряжение на катушке, необходимое для такого использования, составляет порядка 50 мкВ.

Теория
Движущиеся светодиоды, управляемые быстро меняющимися сигналами, стали относительно популярными в последние годы. Журнал также опубликовал статьи, в которых описываются конструкции устройств на вращающихся светодиодах, которые могут отображать виртуальный текст или рисунок в пространстве [1]. Они работают по тому же принципу, что и мониторы с растровой разверткой. Светодиоды движутся по поверхности так же, как электронный луч перемещается по фосфоресцирующему экрану ЭЛТ. Обе системы обязаны своей работой, инертности зрительного восприятия человека. Отображение отдельных элементов изображения и их постоянное быстрое повторение создают иллюзию последовательного, стабильного изображения.

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

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

Для синхронизации, необходимо распознать когда плата завершила полный поворот (один оборот волчка). Это важно, если целью является отображение неподвижного изображения. Часто в подобных конструкциях с неподвижной частью, ИК или датчик Холла используется для генерации одного импульса за один оборот. Это решение дает высокую точность и легко реализуемо, но генерирование импульса синхронизации гораздо сложнее в устройстве, которое не имеет неподвижной внешней точки отсчета. Здесь также можно использовать сложные датчики ускорения или датчики угловой скорости. Как упоминалось ранее, датчик, используемый в этой конструкции, представляет собой небольшой, простой дроссель в локальном однородном магнитном поле. Например, этим магнитным поле может быть магнитное поле Земли.

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

Схема
Рис. 1 Схема светодиодного волчка по существу состоит из микроконтроллера Atmel ATmega8 связанного с ОУ, который формирует сигнал синхронизации.

Рис. 1
Схема светодиодного волчка по существу состоит из микроконтроллера Atmel ATmega8 связанного с ОУ, который формирует сигнал синхронизации.


Принципиальная схема светодиодного волчка (Рис. 1) по существу состоит из микроконтроллера Atmel ATmega8 связанного с аналоговой частью, которая формирует сигнал синхронизации. Микроконтроллер (IC2) управляет двумя светодиодными полосами, каждый из которых имеет восемь светодиодов SMD. Токи светодиодов ограничены сборками резисторов. Остальная часть цифровой схемы соответствует обычной минимальной конфигурации микроконтроллера Atmel AVR с цепью сброса при включении питания (R8/C8) и разъемом ISP (K3), который может использоваться для загрузки кода в микроконтроллер. Конденсатор C1 предназначен для подавления ВЧ-помех от аналоговой части.

Источник питания схемы сделан очень просто. Два элемента CR2032, подключенные последовательно, обеспечивают номинальное напряжение 6В. Цепь R10 и D17 (5,1В стабилитрон) ограничивает его значением, которое может использовать микроконтроллер. Емкости батареи используется довольно хорошо, так как схема будет продолжать работать до тех пор, пока микроконтроллер не остановится при напряжении около 3В. Напряжение питания буферизируется параллельным соединением конденсаторов C9 и C10, которые обеспечивают емкость около 100 мкФ. Емкость разделена между двумя конденсаторами для поддержания сбалансированного распределения веса на вращающейся печатной плате.

Рис. 2  Для ясности аналоговая часть схемы показана здесь отдельно, разделенная на пять функциональных частей (от А до Е). Сигналы, показанные на рис. с 3 по 5, измерены в контрольных точках, отмеченных на этой диаграмме (TP1 - TP6).

Рис. 2
Для ясности аналоговая часть схемы показана здесь отдельно, разделенная на пять функциональных частей (от А до Е). Сигналы, показанные на рис. с 3 по 5, измерены в контрольных точках, отмеченных на этой диаграмме (TP1 — TP6).


Для ясности аналоговая часть схемы показана отдельно на Рис. 2, разделенная на пять функциональных частей (от A до E). Часть A соединяет левый вывод индуктивности L1 (в точке TP1) с постоянным напряжением 7,5 мВ через R3 и буферный конденсатор C3. Это напряжение создается делителем напряжения с соответствующим развязывающим конденсатором. Часть B имеет другой развязывающий конденсатор и индуктивный датчик L1, в котором индуцируется напряжение. При подобных характеристиках катушки, вращающейся в магнитном поле Земли, генерируется индуцированное синусоидальное напряжение с амплитудой около 50 мкВ. Наведенное, переменное напряжение 50 мкВ присутствует в точке TP2, оно наложено на постоянное напряжение 7,5 мВ (см. Рис. 3). Дроссель L2 не подключен к цепи; он присутствует на плате только для балансировки.

Рис. 3 Напряжение сигнала, индуцированное в катушке индуктивности L1 с помощью магнитного поля Земли, составляет всего лишь около 50 мкВ.

Рис. 3
Напряжение сигнала, индуцированное в катушке индуктивности L1 с помощью магнитного поля Земли, составляет всего лишь около 50 мкВ.


Третья часть (C) аналоговой схемы содержит операционный усилитель IC1a, который образует с R4 и R5 неинвертирующий усилитель с коэффициентом усиления напряжения 200. Получим синусоидальное напряжение с амплитудой 10 мВ на операционном усилителе (LM358 вывод 1 или в точке TP3), наложенное на напряжение постоянного тока 1,5 В (Рис. 4). Это напряжение формирует входной сигнал части D схемы, состоящей из двух пассивных фильтров нижних частот (R6/C5 и R7/C4). В дополнение к ослаблению ВЧ-помех, которое неизбежно присутствует при использовании волчка вблизи источника электромагнитных помех, таких как ПК, различные постоянные времени этих фильтров (C4 намного больше C5) создают смещение фазы между сигналами на выходах фильтров точки TP4 и TP5. Это можно увидеть графически на Рис. 5.

Рис. 4 Сигнал после усиления с помощью ОУ IC1a.

Рис. 4
Сигнал после усиления с помощью ОУ IC1a.


Рис. 5. Компаратор IC1b формирует импульсы из сдвинутых по фазе выходных сигналов RC-цепей. Импульсный сигнал приводит в действие вход прерывания микроконтроллера.

Рис. 5
Компаратор IC1b формирует импульсы из сдвинутых по фазе выходных сигналов RC-цепей. Импульсный сигнал приводит в действие вход прерывания микроконтроллера.


Эти два синусоидальных сигнала подаются на входы IC1b (выводы 5 и 6) часть E. Данный ОУ не имеет никакой обратной связи, так что он работает в качестве компаратора с его полным коэффициентом усиления разомкнутого контура и сравнивает два фазо-смещенных синусоидальных сигнала на свои входах (сигналы имеют почти одинаковую амплитуду). Сравнение приводит к тому, что выход ОУ должен быть в высоком состоянии, когда напряжение на неинвертирующем входе ОУ (TP5) выше, чем напряжение на инвертирующем входе (TP4). Это происходит за половину периода синусоиды и, следовательно, за половину оборота волчка. Выход этого операционного усилителя подключен непосредственно к входу внешнего прерывания ATmega8 (IC2), где каждый восходящий фронт указывает на начало нового оборота.

Сборка
Монтаж компонентов на круглой печатной плате (Рис. 6 и Рис. 7) очень прост, если вы используете комплект деталей, доступный в магазине Elektor. Это объясняется тем, что все компоненты SMD предварительно установлены, поэтому вам нужно, только припаять выводные компоненты к плате. Вы можете отрегулировать баланс веса компонентов на плате, слегка наклоняя элементы с выводами, добиваясь наименьшего количество биений, при вращении волчка.

Рис. 6 Круглая печатная плата для волчка доступна с предварительно установленными SMD компонентами.

Рис. 6
Круглая печатная плата для волчка доступна с предварительно установленными SMD компонентами.


Рис. 7 Вид на плату вращающегося волчка. В схеме используется только одна из двух катушек индуктивности. Вторая - только для баланса массы.

Рис. 7
Вид на плату вращающегося волчка. В схеме используется только одна из двух катушек индуктивности. Вторая — только для баланса массы.


Если вы хотите собрать свою собственную плату с нуля, обратите особое внимание на полярность светодиодов SMD. Внимательно изучите даташит и при необходимости проверьте светодиоды 9В батареей с последовательно включенным резистором на 1 кОм. Конечно, правильная полярность важна для всех компонентов, которые её имеют.

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

Список компонентов

Резисторы
Все SMD 0805, 1 %, если не указано иное
R1, R6, R7 = 100кОм
R2 = 150Ом
R3, R9 = 47кОм
R4 = 4,7кОм
R5 = 1МОм
R8 = 10кОм
R10 = 22кОм
R11, R12 = 330Ом 9-выводная однолинейная сборка резисторов

Конденсаторы
C1, C5, C7 = 100нФ (SMD 0805)
C2, C9, C10 = 47мкФ 16В (SMD электролитический)
C3 = 680нФ (SMD 0805)
C4 = 2,2мкФ 16В (SMD 0805)
C6 = 10нФ (SMD 0805)
C8 = 47пФ (SMD 0805, NP0)

Индуктивности
L1, L2 = 150мГн фиксированная индуктивность, минимальная добротность = 50, RM5 (12x16 mm), например Fastron 11P-154J-50 (Reichelt.de # L-11P 150M)

Полупроводники
D1-D8 = LED, красный, 628nm, SMD 1206 с линзами, например Kingbright KPTD-3216SURC (Reichelt.de # 1206K RT)
D9-D16 = LED, желтый, 588 nm, SMD 1206 с линзами, например Kingbright KPTD-3216SYC (Reichelt.de # 1206K GE)
D17 = стабилитрон 5.1В, 1.3Вт (BZV85-C5V1)
IC1 = LM358 (SMD SO8)
IC2 = ATmega8-16AU (Atmel), SMD TQFP-32

Разное
S1 = DIP переключатель двойной (MULTICOMP MCDS02, DIL04)
K1, K2 = CR2032 SMD держатель батареи (Renata SMTU-2032-1-LF, SMTU-2032-1, Reichelt.de # KZH 20PCB-1)
K3 = 6-контактный разъем DIL, шаг 2.54мм (Tyco-AMP # 1241050-3 AMP)
Полиамидный винт, M6x20 с гайкой и 2-мя шайбами
BAT1, BAT2 = литиевые батарейки типа CR2032
Комплект деталей вкл. плату с установленными SMD компонентами, Elektor SHOP # 071120-71


Программный код
Программный код для волчка был написан в среде AVR Studio [2], которая доступна на сайте Atmel для бесплатной загрузки через Интернет. Код C был скомпилирован с использованием кросс-компилятора GCC. Код можно загрузить в ATmega8 через разъем ISP на печатной плате. Работа кода осуществляется на основе прерываний. После инициализации и формирования матрицы изображения, основная процедура постоянно проверяет, удовлетворяется ли условие выполнения. Оно удовлетворяется, если продолжительность одного оборота находится в пределах диапазона, который может быть настроен с помощью констант. Ниже кратко описан основной алгоритм обнаружения полного оборота. Он также показан в листинге и содержит три обработчика прерываний, которые обслуживают: одно внешнее прерывание и два прерывания от таймеров. Остальная часть программы должна быть понятной из комментариев.

Подпрограмма обработчика аппаратного прерывания активируется, когда передний фронт импульса обнаруживается на выводе INT0. После запуска этого прерывания процедура ISR (INT0_vect) сначала проверяет, является ли время последнего оборота правдоподобным. Начало нового оборота будем считать правдоподобным только в том случае, если длительность предыдущего оборота составляет не менее 80% от времени текущего оборота. Затем точное время для отображения нового столбца определяется по Таймеру1, который работает на частоте 1 МГц.

Листинг
Основной алгоритм для обнаружения вращения светодиодного волчка

// если пришел нарастающий фронт импульса от датчика
ISR(INT0_vect)
{
    current_round_time = current_round_time_count;

    // подсчет продолжительность последнего
    // оборота в миллисекундах

    // начало нового оборота реалистично? 
    // (80% времени предыдущего оборота)
    if (current_column > (COLUMN_NUMBER*8)/10)
    {

	// здесь: вычисляем время для синхронизации столбцов, 
        // Timer1 работает с частотой 1 МГц
	timer1_startvalue = 1000/COLUMN_NUMBER*current_round_time;
	current_column = 0;

	// увеличить счетчик оборотов
	number_of_turns++;
    }

    // очищаем счетчик текущего времени (время в мс) 
    // между двумя нарастающими фронтами
    current_round_time_count = 0;
}


// функция подсчитывает время между двумя
// нарастающими фронтами на INT0
ISR(TIMER0_OVF_vect)
{
    // эта процедура должна вызываться каждую миллисекунду
    TCNT0 = 255 - 125;

    // увеличение счетчика длительности оборота (без переполнения)
    if (current_round_time_count < 255)
        current_round_time_count++;
    else
        current_round_time_count = 255;
}


// перебираем  столбцы на поле отображения
ISR(TIMER1_OVF_vect)
{
    // время вызова основано на фактической скорости
    TCNT1H = 255 - (timer1_startvalue >> 8);

    TCNT1L = 255 - (timer1_startvalue & 255);

    // следующий столбец, 
    // или если пропустили условие синхронизации,
    // то новый старт: с контролем по времени
    if(current_column < COLUMN_NUMBER)
        current_column++;
    else
        current_column--;
}


Это время должно постоянно корректироваться, потому, что волчок вращается все медленнее и медленнее во время работы программы, поэтому столбцы должны отображаться более длительное время на каждом новом обороте. Переменная current_column (текущий столбец) устанавливается в ноль, что приводит к тому, что изображение будет демонстрироваться сначала с первого столбца матрицы изображения. Переменная current_round_time_ count (счетчик длительности текущего оборота) используется Таймер0 для подсчета времени между двумя нарастающими фронтами импульсов с целью проверки достоверности, и также изначально сбрасывается в ноль. Процедура прерывания таймера ISR (Timer0_OVF_vect) вызывается каждую миллисекунду для контроля времени и увеличивает (но, не допуская переполнения) счетчик длительности текущего оборота (current_round_time_ count).

Таймер1 и его процедура ISR (Timer1_OVR_vect) используются для перехода к следующему столбцу в матрице дисплея. Этот таймер сначала обновляется временем до следующего вызова (что означает расстояние между двумя столбцами), регулируя его в соответствии с текущей скоростью вращения волчка, определенной для последнего оборота. Если импульс синхронизации отсутствует, что означает, что внешнее прерывание не произошло в приблизительно ожидаемое время, тогда может быть начат новый оборот вращения под чисто временным управлением. Однако практические эксперименты показали, что это необязательно, поэтому все это делается лишь для предотвращения переполнения переменной current_column (текущий столбец).

Полный исходный код, доступен на странице проекта для этой статьи здесь для бесплатной загрузки. После загрузки исходного кода вы можете легко изменить отображаемый текст, который содержится в строке заголовка. После этого скомпилируйте весь исходный код с помощью широко распространенного компилятора GCC и загрузите его в контроллер через порт ISP. Оставьте фьюзы в ATmega8, установленными заводскими значениями по умолчанию (1 МГц внутреннее тактирование). Микроконтроллер из комплекта деталей, доступных в магазине Elektor, предварительно запрограммирован, поэтому волчок готов к использованию сразу после сборки и отобразит демонстрационный текст. Тем не менее, вы можете заменить программный код в любое время вновь скомпилированным кодом, содержащим ваш собственный текст.

Применения
Разумеется, вы можете выбрать текст, который будет отображаться волчком, это может быть, что угодно, от «Hello World» до названия компании, или возможно короткий слоган. «С Днем Рождения» плюс имя получателя, волчок станет идеальным персональным подарком на день рождения. Вы также можете распространить эту идею на предрождественский сезон.

Программируя дополнительный таймер в коде ATmega, вы можете реализовать своего рода миниатюрный праздничный календарь. Например, волчок может отображать красивую фразу или главное слово для небольшого сюрприза в каждый день праздников. Также была разработана версия программного обеспечения со счетчиком оборотов, чтобы заставить волчок генерировать «живое» отображение количества совершенных оборотов. Затем вы можете организовать конкурс, чтобы узнать, кто лучше всех запускает волчок (такой конкурс был организован в прямом эфире на шоу Elektronika в Мюнхене в ноябре прошлого года). Во время публикации этой статьи несколько волчков с этим программным обеспечением будут использованы на стенде Elektor на выставке электроники в Мюнхене, где они станут основой для спортивных конкурсов. Разумеется, его можно раскрутить до нескольких сотен оборотов, а ежедневный чемпион среди лучших «крутильщиков» получит приз — конечно, это будет светодиодный волчок!

Сохранение результатов во внутренней EEPROM является еще одной возможной доработкой. В дополнение к числу оборотов, также можно было бы отображать угловую скорость или другие производные величины. Другой эффект, который иллюстрирует основной принцип схемы, может быть, реализован путем отображения букв «З Ю В С» с соответствующим промежутками между каждой парой букв.

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

Вывод
Когда Майкл Фарадей исследовал основные принципы индукции в 1831 году, он по-видимому и не предполагал, что в один прекрасный день они будут применены в нашем светодиодном волчке. Ваш учитель физики средней школы, вероятно так же, ничего такого не подозревал. Волчок был разработан для практической работы студентов в Институте силовой электроники и электроприборов RWTH (Рейнско-Вестфальского технического университета) в городе Ахен, Германия [3], с целью предложить студентам первого семестра, схему, которую даже новичок в электронике смог бы собрать сам и понял её работу. Кроме того, схема должна была быть пригодна для того, что бы забрать ее домой, после сборки, и использовать там без сложного оборудования (источника питания, паяльника или ПК) для наблюдения за функционированием, что бы каждый смог с ней хорошенько разобраться. Если, кроме того, теоретические знания (в том числе принцип индукции, неинвертирующие операционные усилители и программирование на С) можно вложить в карманный проект, опыт прошлых семестров показывает то, что это часто возбуждает энтузиазм и еще больше пробуждает интерес к обучению.

Ссылки и другие источники
[1] «Вращающийся Текстовый Дисплей со Светодиодами и AVR Micro», Штеффен Зорге, Elektor Январь 2007.
[2] AVR Studio: www.atmel.com/avrstudio
[3] ISEA: www.isea.rwth-aachen.de/en
  • +3
  • 01 сентября 2017, 12:18
  • Aneg

Комментарии (2)

RSS свернуть / развернуть
Осталось чуток адаптировать этот проект, чтобы сделать вот такое ))
0
на велосипедах на обоих колёсах видел…
из полезных побочных эффектов — в темноте привлекает внимание к движущемуся по тротуару велохрусту
ru.aliexpress.com/item/32-LED-Colorful-Rainbow-Bicycle-Bike-Wheel-Spoke-Light-Double-Sided-Tire-Lamp-new-hot/32499713106.html
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.