Идея проекта
Вдохновением для этого проекта послужила статья в Википедии о сульфате меди (медном купоросе), где я увидел фотографию кристалла, выращенного в домашних условиях. Это натолкнуло меня на мысль создать не просто кристалл, а целый интерактивный арт-объект.
Концепция заключается в следующем: выращенный кристалл сульфата меди помещается в прозрачный стеклянный цилиндр, внутри которого также располагается светодиод для подсветки и компактная электронная схема. Устройство должно реагировать на прикосновение: когда его берут в руки, кристалл начинает плавно разгораться, сохраняет свечение, пока его держат, и так же плавно гаснет через некоторое время после того, как его отпустят. В итоге получается красивый и технологичный сувенир, который можно подарить близким или оставить как памятный предмет интерьера.
Результат работы вы можете увидеть на видео. К сожалению, камера не смогла идеально передать ярко-синее свечение, которое вживую выглядит гораздо эффектнее.
Далее я подробно, шаг за шагом, расскажу о процессе создания этого устройства.
Шаг 1: Выращиваем кристалл
Из школьного курса химии многие помнят, что выращивание кристаллов из солей — процесс не слишком сложный. Для этого нужен насыщенный раствор соли (в нашем случае — медного купороса) и небольшой кристаллик-«затравка», на котором и будет происходить рост. Остается только подождать несколько дней.
Первым делом нужно раздобыть медный купорос. Его можно купить в садоводческом магазине (он используется как фунгицид или средство от вредителей) примерно за 100 рублей за 500 грамм. Есть и более выгодный вариант — поискать поставщиков химических реактивов, где цена может быть около 120 рублей за килограмм. В итоге у вас окажется пакет с голубым порошком.

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

Как видно из графика, с ростом температуры растворимость резко увеличивается. Поэтому наливаем в кастрюлю полтора-два стакана воды, нагреваем до 70–80 °C (кипятить не обязательно) и начинаем постепенно добавлять купорос, постоянно помешивая. Сыпем порошок до тех пор, пока он не перестанет растворяться. Затем переливаем еще теплый раствор в подходящую широкую емкость (я использовал пластиковую упаковку от сыра).

Теперь нужно запастись терпением. По мере остывания и испарения раствора на стенках сосуда начнут образовываться мелкие кристаллы. Наша задача — выбрать самый симпатичный и достаточно крупный, чтобы его можно было обвязать ниткой. Лично я предпочитаю небольшие сростки кристаллов (друзы) одиночным монокристаллам или бесформенным скоплениям. Друза из 4–5 кристаллов в процессе роста выглядит очень красиво. Я проверял емкость каждые пару часов, чтобы найти лучшие экземпляры.
Через 4–5 часов у нас уже есть небольшая затравка. Её нужно аккуратно обвязать ниткой (не делайте тугой кокон, достаточно одной петли, иначе нить будет мешать росту). Второй конец нитки привязываем к карандашу и готовим насыщенный раствор во второй раз. Теперь его нужно больше, чтобы залить в высокую банку, где кристалл-затравка сможет висеть, не касаясь стенок и дна даже после нескольких дней роста. Технология та же: нагреваем воду, растворяем купорос до предела, немного остужаем раствор и переливаем в прогретую банку (чтобы избежать резкой кристаллизации на стенках). Опускаем в раствор затравку, кладем карандаш на горлышко. Банку ставим в место со стабильной температурой (не слишком теплое и не холодное), и первый этап практически завершен!
Остается ждать несколько дней, пока кристалл не достигнет желаемого размера. Надолго вынимать его из раствора не стоит, но для проверки роста это делать можно. Также полезно периодически очищать нитку от мелких наросших кристалликов, чтобы они не портили форму основной затравки.
Важный момент: кристаллы медного купороса, выращенные из водного раствора, нестабильны. Со временем из них испаряется вода, они покрываются белым налетом и могут рассыпаться. Чтобы продлить жизнь сувениру, можно:
1) Покрыть кристалл лаком. Это не панацея, но добавит несколько месяцев.
2) Хранить в герметичной таре. В сочетании с лаком может сохранить кристалл на год и более.
3) Самый эффективный способ — залить кристалл прозрачным маслом или другой органической жидкостью в герметичном сосуде. В такой среде он сохранится очень долго.
Шаг 2: Создаем корпус
Самый долгий этап позади, дальше — быстрее. После того как кристалл готов, встал вопрос: где взять подходящий стеклянный цилиндр? Ответ нашелся в магазине «всё для дома» — это была обычная цилиндрическая стопка для водки за 20 рублей.

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

Если ваш кристалл очень крупный или стопка не нравится, можно взять любую другую прозрачную герметичную емкость.
Теперь нужна полая пластиковая подставка, на которую будет посажен кристалл, а внутри которой разместится электронная схема с батарейкой. Я использовал коробочку из-под канифоли, которая идеально входила в стопку. В центре подставки проделываем отверстие под светодиод (о выборе светодиода — в следующем разделе), вставляем его и фиксируем изнутри термоклеем. На этот же клей снаружи сажаем кристалл прямо над светодиодом.
После примерки переходим к герметизации: смазываем внешнюю сторону подставки герметиком подходящего цвета (у меня черная подставка и черный герметик) и вставляем её в стопку. После застывания получаем герметичный сосуд с кристаллом внутри, который можно подсветить, подав питание на светодиод.
Я не стал заливать кристалл дополнительно, ограничившись лаком и герметичным корпусом. Но если хотите максимальной сохранности на века, можно залить его прозрачным маслом, тщательно герметизировав стыки.
Шаг 3: Разрабатываем электронику
На этом этапе наша заготовка могла бы превратиться в простой светильник с батарейкой и выключателем. Но такой сувенир ничем не выделялся бы среди дешевых безделушек. Наша цель — создать устройство, которое: 1) поместится в подставку, 2) будет экономично в режиме ожидания, 3) реализует задуманную интерактивность: плавное свечение при прикосновении и затухание после.
Фактически, нужно решить две задачи:
1) Определять прикосновение человека к девайсу.
2) Плавно управлять яркостью светодиода.
Для первой задачи отлично подходит емкостный сенсор. Несмотря на сложное название, реализация проста: нужен сам сенсор (кусочек фольги, проволока или медная площадка на плате), 1–2 вывода микроконтроллера и резистор номиналом от 1 МОм.
Если кратко: металлическая пластинка обладает небольшой собственной емкостью. Когда к ней подключается резистор и подается напряжение, она заряжается за определенное время. Если к пластинке прикоснуться, её эффективная емкость значительно увеличивается (за счет емкости тела человека), и время заряда возрастает. Микроконтроллер, измеряя это время, может определить факт прикосновения.


Ниже — модель сенсора в Proteus. Конденсатор C1 имитирует емкость сенсорной пластинки, а C2 вместе с переключателем SW1 — емкость прикоснувшегося человека.

Схема использует два вывода микроконтроллера. Алгоритм опроса:
1. На одном выводе устанавливаем логический 0, чтобы разрядить сенсор.
2. Другой вывод переводим в режим входа без подтяжки.
3. Запускаем таймер.
4. На первом выводе устанавливаем логическую 1, начиная зарядку.
5. Ждем, пока на втором выводе не появится логическая 1.
6. Останавливаем таймер и снова разряжаем сенсор.
Полученное значение таймера — это мера емкости. Но сравнивать его с фиксированным числом нельзя — на результат влияют внешние условия. Поэтому при запуске устройства проводится калибровка: измеряется время заряда «пустого» сенсора и записывается как базовое. В дальнейшем, если измеренное время превышает это базовое значение на заданный порог, считается, что сенсор активирован.
Управление яркостью светодиода легко реализуется с помощью ШИМ (широтно-импульсной модуляции). Изменяя скважность импульсов, мы регулируем среднюю мощность, подаваемую на светодиод, и, соответственно, его яркость.
Несколько слов о выборе компонентов:
Источник питания: нужна батарейка с долгим сроком хранения, напряжением 3–5 В и способностью отдавать ток 10–15 мА. Идеально подходит литиевая батарейка CR2450 (3 В, ~610 мА·ч, срок хранения до 10 лет). Стоит около 100 рублей.
Светодиод: я выбрал синий, в тон кристаллу, размером 5 мм. Важно, чтобы падение напряжения на светодиоде было меньше напряжения батарейки. У моего диода оно около 2.7 В, что позволило обойтись без токоограничивающего резистора.

Итоговая электрическая схема предельно проста: 8-пиновый микроконтроллер ATTiny13, резистор 1 МОм, светодиод и сенсор из полоски фольги, наклеенной на бортик подставки.

Шаг 4: Разрабатываем прошивку
Логика работы прошивки тривиальна, но есть нюансы:
1. У ATTiny13 всего один 8-битный таймер, поэтому его придется переключать между режимом ШИМ и режимом измерения времени для опроса сенсора.
2. Для экономии энергии устройство должно уходить в сон, когда им не пользуются.
Со сном возникла тонкость: чтобы вывести микроконтроллер из режима Power Down, нужно использовать прерывание от сторожевого таймера (Watchdog Timer) в режиме генерации прерывания, а не сброса.
Важное замечание для отладки: при тестировании «на столе», если вы второй рукой касаетесь, например, минуса батарейки, измеряемая емкость сенсора будет значительно выше. Я сначала не учел этого и выставил слишком высокий порог срабатывания.
Общая логика работы конечного автомата включает шесть состояний:
1. Ожидание: Диод не горит, периодически проверяем сенсор и уходим в сон для экономии энергии.
2. Повторная проверка: После первого сигнала от сенсора ждем ~300 мс и проверяем снова, чтобы отсеять случайные помехи. Если сигнал подтвердился, переходим к разгоранию.
3. Разгорание: Плавно увеличиваем яркость светодиода с помощью ШИМ.
4. Свечение и проверка: Держим максимальную яркость и постоянно опрашиваем сенсор, чтобы определить, когда девайс отпустили.
5. Пауза перед затуханием: После того как сенсор стал неактивен, ждем еще ~15 секунд (чтобы не гаснуть сразу), и снова проверяем. Если прикосновение возобновилось, возвращаемся к свечению.
6. Затухание: Плавно уменьшаем яркость до нуля. В процессе периодически проверяем сенсор — если снова коснулись, начинаем разгораться заново.
Исходный код прошивки с комментариями занимает около 70–80% памяти ATTiny13. Он полностью рабочий и отлаженный, хотя в спешке мог содержать неоптимальные решения.
Код прошивки (опущен для краткости, но в оригинальной статье приведен полностью).
Сборка и итоги
Финальный этап — монтаж. Нужно запрограммировать микроконтроллер, припаять SMD-резистор, подпаять светодиод и сенсор, подключить батарейку и аккуратно собрать корпус.
В моей конструкции подставка разделена на два отсека. В верхнем расположена плата с микроконтроллером, от которой идут провода питания и к сенсору. Сверху установлена пружинка (контакт на минус батарейки) и изогнутая пластинка (контакт на плюс). Когда крышка закрывается, контакты замыкаются на батарейке, и схема включается. После включения есть 4 секунды до калибровки сенсора — в это время нельзя касаться девайса, иначе калибровка пройдет некорректно.
По замерам, схема потребляет около 0.02 мА в режиме сна и примерно 12 мА при полной яркости. Даже с учетом погрешности измерений, энергии батарейки CR2450 должно хватить на несколько месяцев постоянной работы или на полгода-год в режиме ожидания с редким использованием, что является отличным результатом.
Этот проект открывает пространство для творчества. Можно экспериментировать с размерами, выращивать кристаллы из других солей (например, хромокалиевых квасцов для фиолетового цвета) и подбирать светодиоды разных оттенков. Всё в ваших руках!