HddClock: часы-будильник из жесткого диска
Написал microsin   
16.04.2009

Принцип, который положен в основу работы HDDclock, довольно простой. На месте блинов прикручена платка, на которой стоит столбик из светодиодов.

HddClockIMG_0224.JPG HddClockIMG_0252.JPG HddClockIMG_0254.JPG
HddClockIMG_0255.JPG HddClockIMG_0256.JPG HddClockIMG_0666.JPG

Светодиодики выбраны бескорпусные (для уменьшения массы вращающейся платки - чем меньше масса, тем легче сбалансировать плату и меньше вибрация), голубого цвета (из-за того, что голубые светодиоды самые яркие). Платка быстро вращается, и при вспыхивании светодиодов в нужный момент возникает изображение цифр. Всего в столбце 8 светодиодов, но нижний восьмой используется редко (для отрисовки курсора в меню настройки часов). Матрица отображения цифр взята 5x7 точек (применен готовый знакогенератор от компьютера "Радио 86РК"). Кроме цифр, можно также легко выводить любые буквы.

Светодиодами управляет микроконтроллер AT89C2051, который тоже смонтирован на этой вращающейся платке (весь монтаж на круглой плате ротора сделан тонким эмалированым проводом - опять-таки с целью уменьшения массы ротора). Питание вся схема получает через вращающийся трансформатор, изготовленный из двух ферритовых чашек - одна чашка закреплена неподвижно, другая крутится вместе с платкой, и они находятся друг от друга на расстоянии около 0.5 мм. Благодаря этому через высокочастотное магнитное поле передается энергия, питающая платку ротора (микроконтроллер и светодиоды). Такая система передачи энергии не имеет трущихся частей, поэтому долговечна и не создает лишнего шума в работе. Эти часы у меня непрерывно работают с начала 2005 года. Ни разу не ломались, за исключением тех случаев, что я спросонья пальцами попадал во вращающийся ротор (когда выключал будильник часов). Было больно!.. =)

В неподвижной чашке размещена первичная обмотка, питаемая напряжением частотой порядка 30 кГц, в чашке, связанной с платкой, находится вторичная обмотка, к ней подключен простейший выпрямитель и далее от него питается схема вращающейся платки. Все вышеописанное представляет из себя просто блок индикации. Кроме этого, еще есть схема, которая отсчитывает время и управляет фазами шагового двигателя. Эта схема тоже работает под управлением микроконтроллера - AT89C52. Данные от блока часов до блока индикации передаются через оптопару со скоростью 57600 бит/сек (используется последовательный порт, встроенный в оба микроконтроллера). Софт, зашитый в основной блок, довольно продвинутый - можно устанавливать время, есть будильник, и даже есть возможность коррекции скорости хода часов.

HddClock_apmlif_rotate_sensor.JPG

Одна из последних доработок - сделал усилитель фотодатчика вращения ротора. Этот датчик нужен только для того, чтобы определить - вращается ротор, или нет. Например, если Вы нечаянно ротор остановили, то по отсутствию импульсов на выходе датчика микроконтроллер это увидит, и раскрутит ротор заново (процедура старта нужна для плавного разгона ротора).

HddClockTransf01IMG_7086.JPG HddClockTransf02IMG_7088.JPG

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

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

HddClockIMG_0536-ann.JPG HddClockIMG_0540-ann.JPG HddClockIMG_0542-ann.JPG

1. Выпрямитель с фильтром для питания блока вращающегося столбца. Состоит из двух диодов, дросселя и конденсатора на 0.1 мкф. На вход выпрямителя подается напряжение с 2-секционной обмотки нижней чашки вращающегося трансформатора (эта чашка вращается вместе с платкой).
2. Два винта, с помощью которых крепится нижняя чашка вращающегося трансформатора к плате ротора. Нижняя чашка приклеена эпоксидкой к куску текстолита, который и крепится винтами. С помощью винтов можно не только подстроить положение чашки точно в центре, но и немного подстроить высоту (отрегулировать зазор вращающегося трансформатора).
3. Грузики, с помощью которых производилась грубая балансировка ротора.
4. Микроконтроллер, который мигает светодиодами. Программа в нем совсем тупая - как только через фотодатчик на асинхронный порт приходит байт - он сразу же выдается на линейку светодиодов, и мы видим один из столбцов матрицы. Ротор повернулся на долю градуса - тут же приходит новый байт, и мы видим следующий столбец матрицы. Так происходит развертка изображения. Все - больше микроконтроллер AT89C2051 ничем не заморачивается (зато ой-е как напрягается AT89C52 - этот микроконтроллер виден на другой картинке). Светодиоды расположены на противоположной стороне диска, и подключены к микроконтроллеру тонким эмалированным проводом (весь монтаж сделан таким проводом - для уменьшения веса). Рядом с AT89C2051 виден кварц 11.059 МГц. Раньше его поверхность была чистой и блестящей, но с годами удары пылинок сделали на его поверхности микрократеры, и от блеска не осталось и следа. По витой паре из провода МГТФ приходит сигнал с фотодатчика.
5. Балка из алюминия, на которой висит верхняя, неподвижная чашка вращающегося трансформатора (она приклеена к балке эпоксидкой). В центре чашки видны два вывода светодиода (на них надет фторопластовый кембрик), торчащие из дырки. Этот светодиод передает код управления включением/выключением светодиодов (подключен к выходу асинхронного порта AT89C52 синим и белым проводом, идущим сверху по балке). Балка жестко закреплена на стойке туго затянутым винтом.
6. Энкодер, совмещенный с кнопкой (на вал можно нажимать вдоль оси) и два светодиода. С помошью энкодера можно менять направление плавного перемещения цифр, устанавливать время часов, устанавливать время будильника, корректировать скорость хода часов (благодаря этой функции часы идут очень точно, их никогда не нужно подводить), программировать сигнал будильника, выключать сигнал будильника. Короче - с помощью энкодера происходит управление часами. Светодиоды подключены, но пока не используются.
7. Реле будильника. Его можно запрограммировать на секундный импульс, а можно - на постоянное включение. Можно совсем не использовать.
8. Микросхема TL494, на которой собран генератор напряжения питания блока вращающегося столбца (частота порядка 30..50 кГц). Мне эта микросхема очень нравится, и я пихаю её куда ни попадя. Микросхема управляет мостом из полевых транзисторов (см. далее).
9. Мост из 4-х полевых транзисторов (мосты и полевые транзисторы я тоже люблю). На выход моста подключена первичная обмотка вращающегося трансформатора (эта обмотка расположена в неподвижной верхней чашке, которая висит на балке 5).
10. Планка, на которую выведены переключающие контакты реле будильника. Хотите - включайте лампу, хотите - музыкальный центр.
11. Еще одна микросхема TL494. Она стабилизирует (ограничивает) ток, которым питаются обмотки фаз двигателя. Благодаря этой микросхеме отсутствует опасность выхода из строя полевых транзисторов, коммутирующих фазы, исключается перегрев обмоток двигателя, а также можно подавать для питания нестабилизированное напряжение 12 вольт (блок питания может состоять только из трансформатора, диодного моста и конденсатора. Должен обеспечиваться ток под нагрузкой около 2 ампер). Большой зеленый резистор 0.22 ом сверху - датчик тока.
12. Накопительный дроссель, мощный диод Шоттки и мощный ключ - составные части стабилизатора тока фаз обмоток двигателя.
13. Аналоговый стабилизатор напряжения +5 вольт LM7805 (аналог КРЕН5В) для питания всей цифровой части схемы. Питается от внешнего нестабилизированного напряжения +12 вольт (слева к часам подходят от блока питания два провода - желтый + и черный -).
14. Линейка из 6 полевых транзисторов - работают в ключевом режиме как трехфазный мост и питают фазы мотора.
15. Через этот коннектор подключен передающий светодиод (передает код для зажигания светодиодов во вращающемся столбце, светодиод находится в центральной дырке вращающегося трансформатора). Подстроечный резистор регулирует в небольших пределах ток через этот светодиод.
16. Сердце всей системы - управляющий микроконтроллер AT89C52. Делает все - крутит мотор (формируя фазы), опрашивает энкодер с кнопкой, формирует интерфейс пользователя, обрабатывет будильник, опрашивает чип часов, анализирует датчик вращения ротора. Снизу рядом с микроконтроллером видна кнопка сброса (не помню, когда последний раз ею пользовался) и кварц на 11.059 МГц.
17. Противная пищалка будильника ("пи-пи-пи-пи..."), которая не дает мне спать по утрам.
18. Усилитель датчика вращения ротора.
19. Чип часов и энергонезависимой (с помощью батарейки) памяти DS1302 фирмы Dallas Semiconductor. Батарейка вставлена в самодельный держатель из проволоки (справа от чипа). В энергонезависимой памяти хранятся настройки часов - время будильника и коэффициент коррекции ухода часов. Благодаря батарейке вся эта инфа не теряется при выключении питания, а также продолжается отсчет времени. Маленький часовой кварц на 32768 Гц висит под платой (на фото он не виден).
20. На заднем плане виден столбец из 8 светодиодов. Его конструкцию подробнее можно рассмотреть, если скачать архив с фотографиями (ссылка дана ниже).
21. Под блином платы ротора на блестящую алюминиевую цилиндрическую поверхность держателя блинов нанесена черная метка (на фото часы перевернуты, поэтому на этом фото метка "над"), которая нужна для работы датчика вращения ротора. Когда метка проходит рядом с оптопарой (работающей на отражение), то поток света на фотодиоде уменьшается, и на микроконтроллер приходит сигнализирующий имульс. Сигнал с фотодатчика усиливается операционным усилителем 18 (микросхема УД1208).

[Исходники, схемы проекта HddClock]

1. Исходник и прошивка для схемы блока вращающегося столбца - http://microsin.ru/Download.cnt/HddClock/Rotor02.rar
2. Исходник и прошивка для схемы основного блока - http://microsin.ru/Download.cnt/HddClock/StepMoto10.rar
3. Сканы принципиальных схем - http://microsin.ru/Download.cnt/HddClock/sch.RAR
4. Фотографии внешнего вида часов - HddClock-photos.rar.
5. Видео, снятое мыльницей Canon PowerShot A520. К сожалению, мыльница не дает сделать видео длиннее 30 секунд, и мои режиссерские способности не позволили показать, как работает все меню (коррекция хода часов, как часы запускаются, как работает будильник и т. д.). Качество тоже не ахти (в реале часы выглядят намного лучше) - слишком маленькая частота кадров. На видео видно мерцание цифр, которого на самом деле нет - моргание получается из-за стробоскопического эффекта (разница между частотой вращения ротора и частотой кадров снятого видео). Звук на видео тоже плохого качества - он не такой, как на самом деле. Светодиоды теперь красные, поменял после ремонта - неудачно попытался выключить будильник и попал пальцами в ротор.

[Ссылки]

1. RGB-propeller-clock.mp4 - красивые часы, которые формируют цветную картинку в плоскости вращения ротора. Сделаны из вентилятора от компьютера.
2. Простейший моддинг вентилятора для компьютера - добавление светодиодов на лопасти.
3. "Propeller Clock" Mechanically Scanned LED Clock. Сделано на PIC16C84.
4. Еще одна конструкция на PIC16C84 - PIC clock.
5. Dreamoc 3D display system. Тут уже совсем другой прицип - голография.
6. Strobeshnik - A Digital HDD Clock. Часы из жесткого диска на другом принципе - в пластинах вырезаны цифры.
7. Arduino управляет формированием монохромной картинки линейкой из 72 светодиодов.
8. Световое табло с круговой механической разверткой.
9. BLDC-регулятор трехфазного авиамодельного мотора, работающий по принципу отслеживания противо-ЭДС (собран на ATmega48/88/168).
10. Сборник сервис-мануалов и даташитов по жестким дискам.
11. PROPELLER CLOCK VER5 - видео.
12. Spinning RGB LED Ball II - видео.

Последнее обновление ( 31.10.2010 )