Пролог
Решил я подарить своему другу сисадмину на день рождения часы из жёсткого диска, о которых прочитал на хабре. Попытки создать нормальное, надёжное устройство не к чему не привели. Как я понял, у всех одна и та же проблема с балансировкой вращающегося механизма. Я решил уничтожить эту проблему на корню.
Под катом несколько фоток и видео созданного девайса плюс описание работы. Если тема будет интересна — обязательно напишу о разработке и покажу исходники, когда их причешу.
Сначала я пытался повторить знаменитые хабра часы на жёстком диске, но в результате понял, что долговечное из той затеи не получится из-за невозможности идеальной балансировки. Я решил создать свой девайс.
Купил несколько жёстких дисков разных производителей, лишний раз убедился, что все накопители внутри абсолютно одинаковые, кроме Hitachi, и выбрал наиболее понравившийся внутренний дизайн жёсткого. Это оказался жёсткий диск Maxtor.
На разработку платы ушло 2 дня. После чего заказал плату на «Резоните». К моему удивлению оказалось, что они отказались делать срочный заказ с чёрной маской, пришлось подождать 2 недели. После чего я увидел свои ошибки и операцию пришлось повторить, но время уже поджимало и я нашёл другую фирму, которая согласилась выполнить мой заказ за 3 дня. К приятному удивлению маска оказалась более матовой и менее поддержанной заляпыванию, что в будущем стало огромным плюсом относительно первого устройства с глянцевой маской.
Собрал всё необходимое. Небольшие баги всё равно остались. К моему разочарованию, геркон пришлось установить радиально к плате из-за двойных срабатываний. Из-за небольшой экономии, делая основную плату односторонней, я не предусмотрел неудобное крепление отсека для маленькой батарейки. Но не ошибается только тот, кто ничего не делает.
Боковая плата состоит из двух сдвиговых регистров 74HC595 и 16 светодиодов с сопротивлениями. Я посчитал это золотой серединой. Не очень квадратный шрифт и не очень замороченная сборка.
На основной плате разместил простенький PIC16F1823, часы реального времени DS1307Z и всю остальную россыпь, транзистор и кнопку для поднятия будущего интерфейса настройки.
Программу написал в MPLAB. Там никаких подводных камней не встретилось. Прерыванием по таймеру считал период оборота, затем делил и в maine задувал в регистры по SPI. Как только частота снижалась, контроллер засыпал и снимал питание с DS1307 и регистров. И так до следующих импульсов с геркона.
Интерфейс поднял на одной кнопке — долгое зажимание «mode», быстрое «set».
Результатом трудов оказалась хорошая технологичность девайса и надёжность кирпича.
Друг оказался в полном восторге от подарка и целый час залипал, крутя их.
Автор: sacred_89