http://poradumo.pp.ua

Online Журнал-Світ порад.
Головна сторінка
» » Сувенір з кристала, вирощеного в домашніх умовах

Сувенір з кристала, вирощеного в домашніх умовах

Сувенір з кристала, вирощеного в домашніх умовах


У процесі обмірковування я прийшов до такого девайсу: вирощений кристал сульфату міді повинен бути поміщений в прозорий скляний циліндр разом з світлодіод для підсвічування і невеликий електронною схемою, яка управляє світлодіодом. Кристал повинен поволі розгорятися, коли його візьме в руку людей, світити, поки знаходиться в руці, і через деякий час після того, як його випустять з рук гаснути. Таким чином, на виході отримаємо красивий і оригінальний сувенір, який можна подарувати коханій, друзям, або залишити собі на пам'ять.

В результаті реалізації вийшло наступне:



На відео показаний сам кристал, зібраний девайс, і девайс з вже підключеним харчуванням і прошитим кодом. На жаль, моя камера не змогла впоратися з яскраво-синім світінням, в житті він виглядає набагато більш красиво.

Тепер я постараюся коротко викласти процес створення такого пристрою.

Крок 1: вирощуємо кристал

Зі шкільного курсу фізики ми пам'ятаємо, що вирощувати кристали солей з водних розчинів неважко. Для цього досить виготовити насичений розчин обраної солі (в даному випадку - мідного купоросу), внести в нього кришталик-затравку і почекати кілька днів. Зрозуміло, відразу виникають два питання: де взяти мідний купорос і де взяти кристал-затравку. Мідний купорос можна придбати в будь-якому магазині для садівників. Якщо не помиляюся, його використовують ні то як засіб від шкідників, ні то як засіб від хвороб рослини. Коштує він близько 30 гривень за 500 гр. баночку. Також, можна придбати його безпосередньо у постачальника хімічних реактивів, в процесі гугления я натрапив на хім. склад Москві, де продають купорос за ціною близько 120 рублів за кілограм.
Де б ви його не купили, в результаті у вас виявиться пакетик з блакитним порошком.

Сувенір з кристала, вирощеного в домашніх умовах


500 грам для нашої мети буде більш ніж достатньо.

Наступне, про що нам необхідно подбати про кристалі-затравки. Це невеликий кристалик, на якому буде осідати сульфат міді з розчину, який в наслідок зросте до досить значних розмірів (до речі, якщо є бажання, можна виростити кристал набагато більшого розміру, ніж той, що продемонстрував я, процес не буде відрізнятися, потрібно буде просто почекати довше). Затравку ми отримаємо з насиченого розчину купоросу.
На допомогу знову приходить вікіпедія з графіком розчинності купоросу залежно від температури:

Сувенір з кристала, вирощеного в домашніх умовах


Як ми бачимо, з ростом температури розчинність істотно збільшується, тому візьмемо склянку-півтори води, виллємо в каструлю і поставимо на вогонь. Зовсім не обов'язково доводити воду до кипіння, нам вистачить і 70-80 градусів. Коли вода виявиться досить нагрітої, почнемо сипати в неї купорос, постійно помішуючи. Необхідно продовжувати додавати сульфат міді в воду до тих пір, поки він не перестане розчинятися в ній. Після цього перельем теплий розчин у будь-яку підходящу посуд, я для цього користувався досить широкими пластиковими упаковками від сиру «віола»

Сувенір з кристала, вирощеного в домашніх умовах


Тепер нам залишається тільки чекати. Тому центрів кристалізації, крім стінок, ні, процес може затягнутися. В результаті охолодження і випаровування розчину на стінках посудини почнуть осаживаться невеликі кристали мідного купоросу.
Наше завдання на даний момент - відібрати найбільш красивий кристал достатнього розміру, щоб його можна було обв'язати ниткою. Вид кристала - справа смаку, але я обличчясто віддаю перевагу невеликі друзи монокристаллам і великим неохайним скупчень. У процесі росту друза з 4-5 монокристалів, на мою думку, стає куди більш гарною, нежли один великий монокристал або незрозумілий «їжачок» з десятка, тому я перевіряв ємність кожні 1-2 години в пошуках найбільш підходящих кандидатів.

Отже, після 4-5 годин у нас з'явився невеликий кристал-затравка. Його потрібно акуратно обв'язати ниткою (не намотуйте на нього кокон, достатньо однієї петлі, інакше нитки будуть перешкоджати росту кристала). Другий кінець нитки намотуємо на олівець і відходимо на кухню, готувати насичений розчин другий раз. На цей раз нам треба приготувати його досить, щоб залити у відповідну банку, в якій наш кристал-затравка зможе висіти, не торкаючись стінок і дна навіть після 4х днів зростання. В іншому технологія та ж - підігріваємо воду і насипаємо в неї купорос до тих пір, поки він не перестане розчинятися. Далі трохи охолоджуємо розчин і виливаємо у підготовлену банку (яку бажано перед цим теж злегка прогріти теплою водою, щоб не допустити швидкої кристалізації розчину на стінках) і опускаємо в неї затравку, кладучи олівець поперек горла банки і стежачи за тим, щоб кристал не торкався стінок та дна. Банку ставимо в який-небудь не дуже тепле і не дуже холодне місце, наприклад, на полицю, і перший крок практично закінчено!

Нам залишається тільки почекати кілька днів, поки кристал не зросте до потрібних нам розмірів. Виймати надовго кристал з розчину не рекомендується, але дістати і перевірити, як йде процес зростання цілком можна. Також не завадить очищати нитку від осідають на неї дрібних кристалів, щоб вони не зіпсували форму затравки.

Необхідно враховувати одну річ: водні кристали нестабільні і схильні до вивітрювання - з них випаровується вода, в результаті чого красивий кристал поступово покривається білим нальотом і в результаті розсипається порошком. Щоб зберегти кристал як можна довше, можна прийняти наступні заходи:

1) Покрити кристал лаком. Це не панацея, але все ж продовжить життя кристала на кілька місяців.
2) Зберігати кристал в герметичній тарі. Теж не врятує, але в поєднанні з першим способом дасть кристалу з рік життя, а то й більше.
3) найкращий спосіб - залити кристал прозорою органічної рідиною, наприклад, яким-небудь прозорим маслом. У такій посудині кристал буде зберігатися дуже довго.

Крок 2: створюємо конструкцію

Довга і марудна частина закінчилася, тепер все піде швидше. Після того як я отримав свій кристал, я задався питанням «де ж взяти відповідний скляний циліндр, в який кристал можна укласти?» Відповідь знайшлася у магазині «все для дому», у вигляді відмінною циліндричної чарки для горілки вартістю в 20 рублів за штуку.

Сувенір з кристала, вирощеного в домашніх умовах


Вона привернула мене з двох причин: по-перше, вона була без візерунків, гравіювань і правильної форми - рівна скляний циліндр. По-друге, вона була досить товстостінної, що добре позначається на міцності конструкції.

Підсумкова конструкція, до якої ми повинні прийти зображена нижче.

Сувенір з кристала, вирощеного в домашніх умовах


В принципі, якщо ви виростили кристал розміром з кулак, або вам просто не подобається такі стопки, можна вибрати будь-яку відповідну прозору тару. Головне, щоб була можливість її у наслідок герметизувати, щоб запобігти вивітрювання кристала.
Тепер наше завдання знайти порожню усередині пластикову вставку, на яку можна помістити кристал, а всередині неї - схему управління з батарейкою. Я зупинився на пластиковій коробочці з-під каніфолі, яка ідеально входила в чарку.
У центрі неї робимо дірку під світлодіод (детальніше на виборі світлодіода я зупинюся в частині, присвяченій електроніці), вставляємо його туди і заклеюємо зсередини термоклейвий пістолет. На цей же клей садимо кристал зовні пластикової підставки, прямо над світлодіодом.
Упевнившись, що все саме так, як потрібно, переходимо до фінальної стадії цього кроку - змащуємо зовнішню поверхню підставки герметиком відповідного кольору (я вибрав чорну підставку, відповідно і чорний герметик) і вставляємо її всередину чарки. Після того як герметик застигне у вас вийде повністю герметична чарка з кристалом всередині, який можна підсвітити, подавши живлення на висновки світлодіода.
Я нічим не заливав кристал, зупинившись на варіанті з лаком і герметичним посудину, але якщо ви дуже сильно хочете бути впевнені, що кристал буде зберігається століттями, то можна залити його яким-небудь прозорим органічним складом(маслом, припустимо). Правда це зажадає від вас грамотної герметизації, щоб девайс не раптом почав протікати.

Переходимо до найцікавішого кроці - розробці електроніки.

Крок 3: розробляємо електроніку

Після виконання описаних вище кроків у нас повинна була вийти заготівля, до якої, в принципі, можна додати батарейку і вимикач, і отримати готовий виріб. Але такий сувенір не буде нічим виділятися серед купи різних «светяшек», які продаються за 20 грн відро. Наша мета на цьому кроці розробити електричну схему пристрою, що по-перше влізе в нашу підставку, по-друге не буде споживати багато струму в режимі простою (можна, звичайно, вивести назовні вимикач, але по мені так це сильно псує враження), і по-третє забезпечить те, до чого ми і намагалися з самого початку: плавне зростання світіння кристала, коли його беруть в руку, і згасання після того як його поставлять на місце.
По суті перед нами стоять два завдання:
1) Визначити дотик до девайсу людини
2) Управляти яскравістю світлодіода.

Відмінним варіантом вирішення першої задачі є реалізація ємнісного сенсора. Незважаючи на гучну назву, вона досить проста і вимагає, по суті, тільки самого сенсора (у вигляді простого шматочки фольги, дроту, або майданчика на друкованій платі), 1-2 пінів мікроконтролера і резистора з опором від мегаома і вище.

Звернемося до теорії. Припустимо, у нас є послідовне з'єднання резистора і конденсатора, описане в статті вікіпедії «RC-ланцюг»

Сувенір з кристала, вирощеного в домашніх умовах


Припустимо, що спочатку Vin = 0 і конденсатор розряджений. Vc, таким чином, також дорівнює нулю. При додатку напруги Vin, не рівного нулю, напруга на конденсаторі зростає за наступним законом:

Сувенір з кристала, вирощеного в домашніх умовах


Де T=RC.
Припустимо тепер, що замість конденсатора у нас є звичайна металева пластинка, або смужка фольги. Згідно законам фізики, вона також володіє деякою, нехай і дуже малою ємністю, порядку одиниць пікофарад. Неважко підрахувати, що час, за який така платівка зарядиться, при резисторі в 1 МОМ становить 10^6*10^(-12) = 10^(-6) c. Дуже маленька величина, однак, для мікроконтролера, що працює на частоті 10 МГц, встигнуть пройти цілих 10 тактів.
Тепер уявімо, що платівки торкнувся людей. Його ємність на два порядки вище ємності пластинки і становить близько 100-200 пікофарад. Отже, час, за який платівка зарядиться, суттєво зросте.

Нижче представлена модель сенсора в системі Proteus.
Конденсатор C1 виступає у якості власної ємності нашої сенсорної пластинки, С2 разом з вимикачем SW1 - ємність що торкається людини.

Сувенір з кристала, вирощеного в домашніх умовах


Як ми бачимо, схема гранично проста і використовує тільки два піна мікроконтролера. Більш того, при необхідності, можна побудувати сенсор на одному піне, поперемінно переводячи його з виходу на вхід, але в даному випадку я вирішив не економити ноги мікросхеми.

Алгоритм опитування сенсора також дуже простий і випливає і сказаного вище:

1) PB.4 ми встановлюємо на вихід, і подаємо туди 0. Це розрядить сенсор.
2) PB.3 встановлюємо на вхід, відключивши підтяжку (це важливо! Підтяжка до харчування буде постійно тримати сенсор зарядженим, а нам це не потрібно).
3) Налаштовуємо таймер мікроконтролера на потрібну нам частоту. Частота вибирається за наступним критерієм: вона повинна бути достатньо великою, щоб захопити час заряду і розрізнити «порожній» сенсор від активного, але в той же час, досить маленькою, щоб при активному сенсорі не сталося переповнення таймера. Так як в нашому пристрої мікроконтролер буде працювати від вбудованого тактового генератора для економії місця, його максимальна частота дорівнює 9.6 МГц, що цілком відповідає цьому критерію. Тому таймер будемо запускати без переддільника, на частоті мікроконтролера.
4) Включаємо таймер
5) Виводимо в PB.4 логічну одиницю, тим самим запускаючи процес зарядки ємностей
6) Перевіряємо значення на PB.3 до тих пір, поки там не з'явиться лог. 1.
7) Зупиняємо таймер.
8) Виводимо в PB.4 лог. 0 для розрядки сенсора.

Отримане значення таймера і є число, по якому ми будемо визначати, порожній сенсор чи ні. Але порівнювати його безпосередньо з приблизним значенням неправильно. Це зробить схему дуже залежною від оточуючих умов. Для правильної роботи сенсора необхідно при запуску виконати калібрування, тобто виконати описаний алгоритм, і записати отримане значення таймера у внутрішню змінну, SensorLow, визнавши його значенням, відповідному неактивного сенсору.
В процесі опитування сенсора ж, потрібно буде виконати всі описані кроки, і отримане значення порівнювати, скажімо, з SensorLow+N, де N - поріг чутливості нашого сенсора.

Що стосується регулювання яскравості світлодіода - це легко досягається за допомогою ШІМ (широтно-імпульсної модуляції), при якій замість постійного рівня напруги на навантаження подаються прямокутні імпульси з регульованою шпаруватістю. В результаті середнє значення напруги дорівнює значенню логічного рівня, помноженій на значення шпаруватості. Ця техніка широко відома, тому я не буду зупинятися на детальному її описі.

Кілька слів про вибір світлодіода і джерела живлення.
Від елементу живлення нам потрібно довгий термін служби «на полиці» (при низькому споживанні), напруга живлення 3-5 вольта, для живлення контролера і світлодіода і порівняно великий струм при повністю запаленому світлодіоді - 10-15 мА.
Для цих цілей ідеально підходить літієва батарейка CR2450 що видає напругу 3.0 вольта, що володіє ємністю приблизно в 610 маг, здатна віддати великі (до 30 мА) струми і зберігатися до 10 років.
Вартість такої батареї становить близько 100 грн.

Сувенір з кристала, вирощеного в домашніх умовах


Світлодіод я вибрав синій, під колір кристала, з розміром лінзи 5 мм, але все у ваших руках, можна експериментувати з різними квітами і відтінками. Головна умова для світлодіода - напруги батареї повинно бути достатньо для його відкриття.
Падіння напруги на моєму синьому світлодіоді становить близько 2.7 вольта, що означає, що при «просіла» батарейки всього на 0.3 вольта діод вже не загориться. Існують світлодіоди з ще більшим падінням напруги, для таких обрана літієва батарейка вже не підійде.
Однак, немає лиха без добра - високе падіння напруги на моєму світлодіоді зробило можливим його підключення без додаткового резистора. У підсумку повна електрична схема виглядає так:

Сувенір з кристала, вирощеного в домашніх умовах


Гранично просто - маленький 8-піновий мікроконтролер ATTiny13 один мегаомний резистор, один світлодіод і смужка фольги в якості сенсора, яку я наклеїв на зовнішній борт пластикової підставки і з'єднав зі схемою тонким дротиком. Піни живлення і землі контролера на схемі не вказані.
Ми майже у мети, залишилося написати прошивку, чому присвячений наступний крок (в наступній статті).

Крок 4: розробляємо прошивку


Прошивка для пристрою цілком тривіальна, але варто звернути увагу на наступні моменти:
1) У даного мікроконтролера всього один 8-бітний таймер, так що доведеться використовувати його одночасно і для ШИМа і для опитування сенсора, перемикаючись туди-назад.
2) Щоб знизити енергоспоживання, було б непогано використовувати пристрій в сон, коли до нього ніхто не торкається.

Ось з другим пунктом виникла деяка заминка. Можливо я зараз скажу вже відому вам річ, але цілком може бути що це вбереже вас від довгих пошуків глюка в прошивці. Після перекладу мікроконтролера в режим зниженого енергоспоживання Power Down його може розбудити тільки зовнішнє переривання (якого у нас в схемі нізвідки взятися) або сторожовий таймер.
Але справа в тому, що сторожовий таймер може працювати в двох режимах: перезавантаження по переповнення і переривання по переповненню (так, ще є третій режим, комбінація двох попередніх). І, як виявилося, в режимі перезавантаження по переповнюванню він не виводить контролер із сплячого режиму, принаймні у мене схема навідріз відмовилася працювати. Тому ми будемо користуватися саме режимом переривання по переповненню.

І ще одна примітка: якщо будете збирати такий девайс і тестувати «навісу» запам'ятайте наступне:
сенсор покаже набагато більшу ємність, якщо ви при тестуванні другою рукою торкаєтеся, припустимо, мінуса батарейки. Я з цим наштрикнувся, так як при тестуванні притискав дроти до батарейці руками, тому виставив занадто великий поріг.

Загальний підхід до реалізації такої: пристрій може знаходиться в одному з шести станів:
1) Діод не горить, чекаємо відповіді від сенсора. У цьому стані ми періодично перевіряємо сенсор, після чого засипаємо приблизно на секунду, що забезпечить низька енергоспоживання
2) Після першого відгуку від сенсора вже не засинаємо, чекаємо приблизно 300 мс, щоб переконатися, що це не перешкода, і перевіряємо сенсор. Якщо сенсор не активний, то повертаємося у стан 1. Інакше переходимо до стану 3.
3) Перемикаємо таймер в режим ШИМа і повільно підвищуємо шпаруватість, після чого світимося поки не пройде 4 секунди і переходимо в стан 4
4) Перемикаємо таймер з ШИМа в сенсорний режим, перевіряємо сенсор, щоб визначити, коли девайс поставлять на місце, коли сенсор стає неактивний, переходимо до стану 5
5) Чекаємо ще секунд 15 перевіряємо сенсор. Якщо активний, то повертаємося до стану 4. Інакше переходимо до стану 6.
6) Поволі гаснем, при цьому, періодично перемикаючи таймер з режиму ШІМ в режим сенсора і перевіряючи його активність. Якщо сенсор знову став активний, то переходимо до стану 3 знову починаючи розпалюватися. Інакше, коли шпаруватість дійшла до 0 знову переходимо в режим 1.

Нижче я викладу код з коментарями. Тому з кодом довелося поквапитися, щоб встигнути до нового року, там цілком можуть бути абсолютно неоптимальні моменти, прошу за них особливо не штовхати)
Тим не менш, це повністю робочий і налагоджений код. Займає приблизно 70-80 відсотків флеш-пам'яті тіньки.

*****************************************************************************************************

#define F_CPU 9600000UL
#include
#include
#include
#include
#include

//Стану девайса
enum DEV_MODE{M_WAITING_SENSOR, //Чекаємо відгуку від сенсора і спимо
M_SENSOR_RECHECK, //Після першого відгуку перевіряємо
M_GLOW, //Разгораемся
M_GLOW_AND_CHECK, //Світимо і перевіряємо сенсор
M_GLOW_AND_RECKECK, //Перевіряємо, якщо відпустили
M_FADE}; //Гаснем


unsigned char SensorHi=0; //Змінна, яка буде зберігати значення для активного сенсора
unsigned short Delay=0; //Внутрішня змінна для організації довгих затримок
unsigned short PWM=0; //Шпаруватість ШИМа
unsigned char Mode=0; //Режим роботи

void SetTimer(char Mod) //Функція для швидкої переініціалізації таймера з режиму сенсора на ШІМ
{
if(Mod) //1 перевірка сенсора
{
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
}
else //0 ШІМ
{
TCCR0A=0x83;
TCCR0B=0x00;
TCNT0=0x00;
}
}

void Recalibrate() //Калібрування сенсора
{
cli(); //На всякий випадок відключаємо интеррапти, мало що)
SetTimer(1);
DDRB&= 0b11110111;
PORTB|=0b00010000;
TCCR0B=0x01;
while(!(PINB&0b00001000));
TCCR0B=0x00;
DDRB|= 0b00001000;
PORTB&= 0b11101111;
SensorHi=TCNT0+3; //При такій частоті +3 виявилося цілком достатньо, навіть злегка багато
sei(); //Включаємо интеррапти назад
}

unsigned char CheckSensor()
{
cli();
SetTimer(1);
DDRB&= 0b11110111;
PORTB|=0b00010000;
TCCR0B=0x01;
while(!(PINB&0b00001000));
TCCR0B=0x00;
DDRB|= 0b00001000;
PORTB&= 0b11101111;
unsigned char Time=TCNT0;
sei();
if(Time>SensorHi)
return 0xFF;
return 0x00;
}

ISR(SIG_WATCHDOG_TIMEOUT) //Порожній обробник переривання сторожового таймера
{
__asm__ __volatile__("nop"); //Потрібен просто щоб розбудити систему
}

int main()
{
ACSR = 0b1000000; //Налаштування режиму енергозбереження
DDRB = 0b00011001;
SetTimer(1); //Переключили таймер в режим перевірки сенсора
Mode= M_WAITING_SENSOR;
sei();
PORTB=0b00000001; //Запалюємо діод і чекаємо 4 секунди
for(char i=0;i0x0010)
{
if(!CheckSensor())
{
Mode= M_WAITING_SENSOR;
Delay=0x0000;
}
else
{

Delay=0x0000;
Mode= M_GLOW;
SetTimer(0);
PWM=0x00;
OCR0A=PWM;
TCCR0B|=0x01;
}
}
break;

case M_GLOW:
Delay++;
if((PWM0x0200) //Повністю розгорілися
{
SetTimer(1);
PORTB =0b00000001; //Замість ШИМа безпосередньо подаємо лог. 1
Mode= M_GLOW_AND_CKECK;
Delay=0x0000;
}
break;

case M_GLOW_AND_CKECK:
if(!CheckSensor())
{
Mode=M_GLOW_AND_RECKECK;
PWM=0xFF;
}
break;

case M_GLOW_AND_RECKECK:
Delay++;
if(Delay>0x0500) //Довга пауза, щоб не згаснути відразу ж як відпустять
{//а посвітити ще 20 секунд
if(CheckSensor())
{
Mode= M_GLOW_AND_CKECK;
Delay=0x0000;
}
else
{

Delay=0x0000;
Mode=M_FADE;
PWM=0xFF;
OCR0A=PWM;
SetTimer(0);
TCCR0B=0x01;
}
}
break;

case M_FADE:
Delay++;
if(Delay%5==0) //Раз на п'ять Delay перевіряємо сенсор
{
TCCR0B=0x00;
PORTB = 0b00000000;
if(CheckSensor())
{
Mode=0x02; //Якщо що - починаємо знову розпалюватися
Delay=0x0000;
}
SetTimer(0);
TCCR0B=0x01;
}
if((PWM>0)&&(Delay%2==0)) //Повільно гаснем
PWM--;
if(Delay>0x0200) //Зовсім згасли
{
SetTimer(1);
PORTB=0b00000000;
Mode= M_WAITING_SENSOR;
Delay=0x0000;
}
break;
}
OCR0A=PWM;
_delay_ms(20);
}


}


*****************************************************************************************************

Висновок


Ось, власне і все - далі справа техніки: зашити прошивку SMD ATTiny13 припаяти SMD ж резистор до двох її пинам (можливо, у вас в підставці вистачить місця для не-SMD компонентів, але у мене місце було критично), відвівши від нього провід в якості сенсора до фольгированному бортику підставки, підпаяти висновки світлодіода до мікроконтролера і загального проводу, плюс від батарейки приєднати до живлення мікроконтролера, а мінус до загального проводу і закрити підставку кришечкою.

У своєму девайсі я розділив підставку на дві частини, у верхній розташував схему, від якої вивів дроти живлення і сенсора, заклеїв її пластиковою перегородкою. На неї поставив широку пружинку під мінус батарейки і вигнуту пластинку зверху під плюс. Таким чином, після того як підставка закривається кришечкою, пластини виявляються притиснуті до батарейці, і схема включається, даючи мені 4 секунди на те, щоб прибрати руки до калібрування. Якщо цього не зробити, девайс вважатиме що у неактивного сенсора ємність дорівнює ємності активного, і запалити його не перекалибровав буде неможливо.

Судячи по моїм вимірам, схема споживає 002 мА у режимі простою і близько 12 мА при повній яскравості діода. Навіть якщо мультиметр показав неточний результат і помилився на порядок, енергії батареї повинно вистачити приблизно на півроку простою, що є цілком непоганим результатом.

При належному старанні можна виготовити аналогічний девайс будь-якого розміру, так і в якості солі можна взяти речовина іншого кольору і виростити червоний або жовтий кристал. Все в ваших руках)

Джерело: habrahabr.ru
of your page -->

Популярні поради

загрузка...