Теми от: Декември '16
Nixie clock
Ако следите моя блог, сигурно сте забелязали, че обичам да пиша за разни електронни джаджи, с прогреса от чертожната дъска до физическата им реализация. Това е поредната история, в която този път разглеждаме реален продукт на пазара, а този пост е behind-the-scenes от създаването му до ден днешен. Ами - да се потопим!
Идеята
Всичко тръгна от една тема във форумите на HardwareBG. Още преди това бях голям фен на никси лампите:
Тези индикатори са се произвеждали в огромни количества през 60те и 70те години на миналия век, но LED-овете са ги направили анахронизъм малко по-късно. В тази статия ще разберете отчасти защо.
Решен да си направя собствен Nixie часовник намерих съмишленици, отидох до NN electronics и си накупих 4 лампи Mullard ZM1080.
Първи тестове
На пръв поглед никси лампата е една стъклена ампула, в която има десетина голи проводника и видът на светеща такава е нещо средно между лампа с нажежаема жичка и неонов надпис. Българското им название - газоразрядни индикатори - подсказва същността им: ампулата е с изтеглен въздух и има остатъчно налягане на неон (и други помощни газове), но напрежението между полюсите е твърде ниско за луминесцентно излъчване и се получава газов (тлеещ) разряд, който обхваща непосредствената околност на полюса с отрицателен потенциал[1] (в случая са 10 полюса: оголени проводници, оформени като цифрички). Макар и да прилича на нажежаема жичка, това е само измамно - газоразрядните индикатори не греят изобщо.
Освен катодите, в ампулата има само един анод (положително заредена решетка, която трябва да се държи под високо напрежение от 160-180 волта над потенциала на катодите). За да покажете конкретна цифра на никси лампата е достатъчно да свържете генератор на високо напрежение към анода и някой от катодите към земя. Ако сте нацелили правилното напрежение - получавате светеща цифра:
На практика се налага токът през лампата да се ограничи, иначе тя може да изгори. С тази цел са поставени 10К резисторите, които ще видите в схемите по-долу. Ако съберете 6 лампи на едно място и ги разделите по двойки, можете да си направите цифров часовник с газоразрядни индикатори.
Необходимостта от високо напрежение е досадно[2], но преодолимо препятствие. След като намерих в интернет схема за високоволтово захранване с 555, MOSFET и индуктор, се заех да мисля как да се направи мултиплексирането на схемата.
Мултиплексиране
Какво значи мултиплексиране? (про-тата можете да пропуснете следващите обяснения)
Ако два компютъра трябва да си комуникират и поради някаква причина могат да използват само светлинна сигнализация, то няма проблем - единият ще има светоизлъчвател, напр. LED, а другият - светодетектор, напр. фотодиод. И с подходящ сериен интерфейс / мигане с LED-а, всичко заспива. Но ако компютър трябва да си говори с човек... неее, един LED далеч няма да ви е достатъчен. Налагат се десетки или стотици светещи елементи, в най-различни форми и подредби... вие самите най-вероятно четете този текст от такава подредба с поне половин милион пиксела.
А когато компютърен процесор трябва да командва комплекс светлинни елементи, неизбежно голямата им бройка се превръща в проблем. Да илюстрираме с 6 никси лампи:
Тук имаме микроконтролер, който разполага с 60 контролируеми "заземителни" пинове (open drain изходи). Така може да светнем произволна цифра на произволна лампа.
Малкият проблем е, че трябва да ползваме микроконтролер с поне 60 крака, и да имаме 60 писти, което ще е криво за опроводяване. По-лошото е, че такъв микроконтролер няма - повечето ползват нисковолтови полупроводникови процеси и рядко могат да издържат на напрежения над 20V, а често дори 5.5V е проблем. А нас ни трябва с 160V... Ако вържете нормален микроконтролер тук, той просто ще изпуши моментално.
Ето защо се налага да използваме високоволтови транзистори (например BS108), командвани от TTL изходи на микроконтролера:
Още тук виждате колко "космата" става схемата: броят писти нарасна трикратно и само транзисторите биха изисквали 180 спойки. С микроконтролера и лампите ще са над 300 спойки. Запояването на такава платка би било безобразно досадна и пипкава работа.
Следва да забележим, че схемата ни дава и страхотна свобода какво да светнем, като повечето избори биха били глупави. Например, бихме могли да светнем едновременно катоди "2" и "6" в една и съща лампа, което ще изглежда просто... странно. За всяка лампа следва да можем да покажем някоя от цифрите 0-9 или нищо. 11те опции могат да се кодират в 4 бита, а декодирането да се прави чрез специализирана интегрална схема, например 74141:
74141 е една наистина възхитително полезна за целите схема[3]: 4те входа (маркирани с A, B, C и D) приемат двоично число от 0 до 15. Всеки от 10те (Q0-Q9) изхода е реализиран вътре в кристала чрез високоволтов транзистор с отворен колектор. Ако изберете число 0..9 (например подадете 5V на вход C и 0V на A, B и D), дешифраторът ще види числото "4" и ще свърже Q4 със земя. Числата 10-15 се дешифрират като празни - лампата не свети.
С използване на 6 броя 74141 (или съветските им аналози К155ИД1) броят спойки намаля на 198 общо. Контролерът вече изисква само 24 I/O пина и нещата изглеждат доста по-добре. Все още не сме мултиплексирали нищо, обаче.
Нека разделим лампите в две групи по 3: четни и нечетни. Ще сложим контролиращ елемент на анодите, който да командва коя група е активна:
Ако ключът S1 допусне високото напрежение само на нечетната група, то ние имаме пълен контрол над всяка от лампите 1, 3 и 5: дешифраторите ще командват катодите на лампи 1+2, 3+4 и 5+6 респективно, но четните няма да светят, тъй като нямат напрежение на анодите. Ако искаме да покажем "18:33:40" на дисплея, ще подадем 1, 3 и 4 на дешифраторите и реално потребителят ще вижда "1_:3_:4_".
След което превключваме ключа S1 към четната група и едновременно подаваме на дешифраторите респективно 8, 3 и 0: на дисплея ще се вижда "_8:_3:_0":
Както виждате, ако сменяме между двете показания достатъчно бързо, човек не да забелязва трептенето и ще му се струва, че вижда "18:33:40", но с двойно по-ниска яркост.
Всъщност, можем да стигнем и по-далеч от мултиплексиране на две групи. 6 се дели и на 3:
А можем да направим и пълно мултиплексиране:
Какви са недостатъците на мултиплексирането на повече групи? Първият е, че яркостта намалява: при пълно мултиплексиране тя е едва 1/6 от номиналната. Разбира се, можем да компенсираме с повишаване на напрежението към лампите, но това ги поставя в по-натоварен режим[4].
Вторият недостатък е, че опростявайки командването "долу" (при катодите), сложността се качва "горе" (при анодите). Ключът S1 изисква транзистори (няма удобна интегрална схема като 74141 за тази цел), по два транзистора за група и в даден момент каквото спестим отдолу, се качва отгоре. Вижте следната сравнителна таблица:
Опциите 2x3 и 3x2 изглеждаха като оптимални, така че сковах бърз прототип, за да проверя колко % duty cycle изглежда прилично като яркост в нормални условия ако захранваме лампите със 160 волта. Ето как изглеждаше:
И така, в крайна сметка предпочетох 2х3 схемата: 50% максимална яркост и общо три дешифратора.
Развой
С това бях готов за прехвърлянето на високоволтовата схема и командващата логика на печатна платка[5][6].
Това беше първата ревизия (v1.00):
Понеже исках платките да са компактни, използвах стария подход от battery level meter-а да строя двуетажна сглобка. Долу е високоволтовата схема, микроконтролерът, бутоните и часовникарският чип. Горе са лампите, дешифраторите и превключвателят на четни/нечетни лампи (S1).
Тук се сблъсках и с първия проблем при намирането на лампи: имах само 4 бр. За часовник трябват 6, но тук се намеси Private от форумите на HardwareBG , който за късмет имаше точно същия тип и на практика ми подари 2 бройки, за да се завърши комплектът:
Познайте чии лампи са на Private :)
Насетне v1.00 беше изоставена, тъй като определено не бях предвидил достатъчно място за отстояние между двойките лампи. Отделно си накупих и от тези руснаци:
Проблемът тук беше, че при тях изводите на лампата са отдолу, а трябва да се гледат "отгоре". Т.е. при тях трябваше платката, на която са запоени, да стои изправена вертикално нагоре. Решението беше да се изведат на малки слоткетни платки, по този начин:
В основната платка има дупки, както за ZM1080, така и за 12-пинов конектор към слоткетите:
Я да видим върви ли:
Тук възникваше въпросът по какъв начин да се направят разделителните точки между цифрите. Макар и да съществуват специални лампи конкретно с тази цел, успях да си намеря едни подходящи ампули - МТХ-90. Те въобще не са правени с цел илюминация (полупроводников елемент са), но светеха по същия начин и бяха подходящия размер, така че ги нагодих:
През това време платките минаха през 2 ревизии: в 1.01 поправих масата бъгове, неправилни размери на компоненти, грешни пинаути и др., а в 1.02 уголемих платките до показания размер и добавих възможността за двата вида лампи на горната платка. Във версия 1.03 вече бяха само козметични поправки.
Фърмуер
През това време по долната платка също кипеше работа:
- Направих часовникарската функция чрез DS1307 (на базата на опита ми с DS1302). Подобно на случая със зеленчуковото светило, целта беше да не се занимавам с пазене на време и обработката му в процесора - исках външен чип да го прави и ако изгасне токът, времето да продължава да се отчита от него. Този път аварийното захранване на часовникарския чип беше с литиева батерийка:
- Сложих три бутона, с които часовникът да може да бъде настройван и да му се сменят режимите на показанията на дисплея:
- Исках, подобно на китайските домашни часовници, моят да може да мери температура и влажност. Температурата е лесна, можех да използвам термистор, кодът го имах готов. Обаче влажност... там се оказа трудна работата. След доста ровене попаднах на евтините китайски DHT-22, които на хартия изглеждаха ОК:
- Добавих различни идеи, повишаващи дълговечността на лампите. Една от тях е функцията "скрийнсейвър". Дисплеят следва да работи само в случаите, когато ви трябва да го погледнете, затова часовникът се самоизгася след 10 минути работа. За събуждането му можете просто да плеснете с ръце, като за целта монтирах един звуков датчик[7][8]:
Първи прототипи
И така функционалността на часовника беше готова.
Сега следваше да го обезопася. Макар и двете платки да си седяха културно една върху друга, постановката е крехка и дава достъп до множество оголени проводници под високо напрежение, което не трябва да е така. Вместо да търся подходяща кутийка и после да се чудя как да я дупча, изолирането стана с подходящо нарязани плексигласи:
В началото мислех крепежите между 4те повърхности да са метални дистанционери, като горепоказните. Проблемът е, че лъскавото метално покритие не се вписваше в цветовата схема на останалия часовник, затова пробвах да оксидирам с киселина, за да почернеят. Обаче полученият ефект (показан горе) не беше особено добър, тъй като си беше автентично ръждясване и не докарваше плътно черно:
Втората идея беше да прекарам една шпилка от горе до долу и да ползвам втулки върху нея за отстоянията. Тук пък трябваха твърде специфични по дължини втулки и единственият вносител, който разполагаше с необходимите размери, имаше само бели:
Това вършеше работа, но все пак ми се искаше да са черни и прибегнах до ebay. Там можете да си купите 5 метра черна найлонова тръбичка с точно подходящия диаметър. След това тръбичката се нарязва до необходимите размери и втулките са готови. Но така фабрикуваните втулки имат един издайнически елемент - с надписи са и не са съвсем прави. И докато надписът пада лесно със спирт, то закривяването няма махане, колкото и да се старае човек. Опитайте се да го откриете тук:
Рязането на шпилките и втулките беше един досаден и изморителен процес:
След като бях направил по един часовник с двата вида лампи и изглеждаше да работи добре, беше време да го обърна до комплект за запояване, понеже подозирах, че би имало интерес.
Серийно производство
За целта първо следваше да събера по-сериозни количества лампи и дешифратори, понеже вече не се произвеждат и се намират трудно (NOS - new old stock). Отделно цените им варират много. С комбинация от търсене по форуми, оферти в онлайн магазини, преслушване на обявите в български и руски сайтове, и подобни, по някое време бях събрал 100-на лампи в най-различни видове и състояние:
Намирането на дешифратори беше дори по-трудно, за щастие намерих един пловдивчанин, който продава такива в големи количества и неговите са първа употреба:
Понеже и лампите, и дешифраторите не си знаят годините, следваше да измисля удобен начин да ги тествам. За лампите използвах високоволтовата схема от първите тестове, с нагодени ограничаващи резистори, един кабел с алигаторна щипка (към анода) и една мултицетна пробка (към катодите). Така лесно се "просвирва" лампата дали работи.
За дешифраторите създадох следното нещенце:
Съвсем проста схемичка, която се захранва през бутона, и бързо преслушва дали всички изходи на дешифратора работят.
Статистически повечето закупени NOS компоненти си работеха. Повредените лампи обикновено не работеха изцяло, не съм срещал частично дефектни. При дешифраторите е обратното, обикновено на проблемните им беше изгорял само един изход, останалите работеха. Но в резултат пак бяха за кофата.
Голямото количество елементи от всякакъв произход ме накара да ги подредя и именувам в класьори:
Следващата стъпка бяха опаковките. Комплектът за запояване не отнема много място и след кратко ровене из вехториите вкъщи намерих една подходяща по размер кутия от видеокарта:
Снех размерите ѝ, след това отидох при един производител на кашони и опаковки, където потърсихме щанца за кутии с подобни размери. По принцип могат да ви изработят кутии с произволни размери, но първоначалната цена при такава специална поръчка е доста солена и затова просто ползвах щанцата на техен клиент, комуто са трябвали картонени кутии с доста близки до видеокартата размери. Картонът се реже там и ви го връчват вид на един топ листи (примерно 50-100 броя):
които после трябва да си сгънете сами, за да образувате кутийки. Ето как изглежда една такава кутийка със съдържанието ѝ:
Опаковането на елементите не беше особено трудно, предвид че само лампите са чупливи, съответно само те искат индивидуална грижа с картон или аерофолио. За резисторчета, транзисторчета и подобни вършат работа и обикновени zip-lock пликчета[9]. Последното беше да измисля как да разполагам интегралните схеми и цоклите. По принцип доставените от магазина, ако не са в тръба, ги слагат на нещо като твърд дунапрен или стиропор. Оказа се, че в Динакорд продават подобен относително твърд дунапрен (със съвсем друга цел - там е за звукоизолация), който е евтин и го продават на квадратен метър. После с макетното ножче се реже до необходимите размери.
Впоследствие се научих да "редя тетриса" все по-добре и да прахосвам все по-малки количества от въпросния дунапрен:
И така произведох първата голяма партида:
Ето как изглеждаха надписите:
С натрупването на много бройки човек започва да забравя коя каква е и къде е отишла. С тази цел, пък и за да може да се следят и другите продукти, разработих вътрешнофирмено софтуерче за проследяване на отделните бройки, което да може да генерира PDF-и с баркодове и приемо-предавателни протоколи:
Разбира се, какво е един комплект за запояване без подробна и добре илюстрирана документация? След дълго писане и много корекции от страна на Алекс, указанията бяха готови.
Следващата стъпка беше да се направи уебсайт и промо-материали за обявяването на продукта. Досега не се бях занимавал с продуктова фотография, но сглобих един лайтбокс от подръчни материали и вече разполагах с прекрасен бял фон:
Съществен елемент тук е осветлението. Лампите са със студено бяла светлина - 6500К. По принцип цялото ми осветление вкъщи е с топъл спектър, 2700К, обаче като вкарате корекцията на бялото при осветление 2700К, цветът на светещите цифри става неприятно лилав и студен.
След което се загледах в разни шукарийки как да използвам така направените висококачествени снимки за full-screen презентация на продукта (не ще и дума, външният вид е водещ тук). Чрез supersized сглобих една минимална страничка в този стил, която да демонстрира продукта.
Опирахме вече до дистрибуция и продажби. Тук се включиха моите познати от Роботев, с които уговорихме цени и условия, занесох им една партида и те вкараха продукта в каталога си. И оставаше само да чакаме първите продажби.
За подпомагане на продажбите направих две неща - първото беше да изхарча кредита си за Google AdWords, който ми бяха подарили преди 6 години.
Макар да е тривиално да се направи Google ads кампания, уцелването на правилната аудитория е предизвикателство. Ако keyword-ите са строго специфичните (nixie clock, газоразрядни индикатори, никси часовник), посетителите на ден са много малко. Google ми предлагаше да добавя keyword-а "часовник", сам по себе си. Послушах ги, но се оказа лошо предложение - така пък обирах от огромния трафик от хора, които търсеха ръчен часовник. А като предлагаш никси часовник на онзи, който е отворил да търси за Rolex-и и Fossil-и... те просто няма да цъкат. Импресиите се качиха много, но click-through rate-ът падна значително. Накрая зарязах кампанията, беше ясно, че не помага.
Другото нещо, което помогна доста, беше да подарим един сглобен часовник на Роботев. Помните ли онези ZM1080 лампи от първия прототип? Е, отидоха тук:
Сглобени комплекти
Макар и болшинството ни клиенти предпочитаха да си запояват часовниците сами, както се оказа, имаше интерес и към директно сглобени часовници. За тях отидох пак до фирмата с опаковките за да си подбера подходящ размер кутийки:
Белият цвят на кутиите даваше възможност надписите да са малко по-джиджани:
За поддръжка на продукта (по предложение на Роботев) сложих форум. Освен това продължавах да експериментирам с нови елементи и идеи. Ето един часовник, сглобен специално за кръглата годишнина на приятел, като тук за разделителни точки използвам ИНС-1 индикатори:
А ето един, на който тествах алтернативна цветова гама:
Изводи
Какво научих:
- Supply chains! Независимо, че продуктът не е сложен, до постигането на готовата кутийка са необходими продукти и материали от 14 различни доставчика, ако не броим New Old Stock нещата. С тях бройката става средно 17 за комплект, като лампи, дешифратори и прочее сме набавяли от 27 различни места. Ако утре се запали и изгори складът, ще трябва да ходя до, или обадя на, поне 17 различни фирми/човека, докато произведа дори един нов комплект. Това, разбира се, е само първото ниво. Кой знае Комет колко доставчика имат - обзалагам се, че всеки от 4те типа транзистора в комплекта е правен от различен производител. Това за един нищо и никакъв часовник. Не ми се мисли как изглежда supply chain-ът на един авто-производител...;
- Остави инструкции за идиотите, особено ако идиотът може да си ти :)! Благодарих на себе си поне 10 пъти, задето в самото начало написах Nixie Clock Packer's Guide, който да описва постъпково процеса на асемблиране на един комплект за запояване. Това е една стена от детайли, която има свойството да се записва винаги във volatile частта на мозъка :);
- Опростявания на производството. В даден момент ми писна да режа втулки и промених размерите на часовника и разстоянието между платките, само и само да мога да използвам стандартни такива. Има и други подобни промени - във v1.03 имаше в комплекта 4 резистора 10K, ⅛W и 6 броя ¼W. Защо... и аз не знам. Такива бяха инженерните им изисквания. Във v1.04 всички са ¼W;
- Дуракоустойчивостта се оказва полезна в най-неочаквани ситуации... На мнение съм, че всеки уред, захранван от DC букса, трябва да има някакъв вид защита срещу обратен поляритет. В никси часовника това беше сериен шотки диод. Тъпо и просто, но върши работа.
Бях сглобил един часовник, който да е част от украсата на офиса. Един ден ми се обажда колегата - "фирменият часовник не работи - свети, ама не отчита време и бълнува случайни работи". Много учуден седнах да проверя, като за всеки случай пуснах часовника в лабораторното[10] захранване, но часовникът работеше. Какво се оказа - колегата включил уреда към 9V променливотоково захранване. Съответно благодарение на филтриращия кондензатор и диода, се получило нещо като груб токоизправител, но видно недостатъчен за стабилна работа...; - Цената! Като човек с инженерно мислене, винаги съм се дразнил на продукти, в които прозират китайчести решения от вида "ще направим продукта една идея по-смотан, но ще спестим ХХ цента от себестойността". Вижте предния ми пост за combo audio порта за пример.
За съжаление грубата реалност е, че цената оказва огромно въздействие върху поведението на потребителите. Зная, защото експериментирахме с различни отстъпки в цената и ефектите бяха абсолютно моментални. Както и фактът, че вероятно доста хора биха искали да купуват направо сглобени часовници (вижте следващата точка), но купуват комплектите за сглобяване, понеже са по-евтини! - Много малко хора ги вълнува DIY :(! Основната идея на предлагането на комплекта като такъв за сглобяване беше всеки да вложи своята креативност и да направи своя вариант уникален. Доколкото разбирам, повечето хора не са правили нищо подобно и следват дословно инструкциите. Получихме само този вариант:
- Дяволът е в детайлите. Поговорката е много вярна, а да изпипаш внимателно всички детайли е трудно, тъй като се досещаш само за ограничено подмножество от тях. В 9 от 10 случая хората няма да купят даден продукт, защото не им харесва конкретен детайл (това важи по принцип за всичко по света). В останалите 1/10 от случаите ще кажат и какъв е проблемът. А детайлът беше... забелязвате ли розовите изолаторни пръстенчета, между които са нанизани отделните цифрички на ИН-12 лампите? Е, оказва се, че имало варианти, в които изолацията е бяла. Клиентът беше получил комплект с микс от двата вида и не беше доволен от това. Иначе лампите са идентични, но... ето един детайл, който на мен никога, ама никога нямаше да ми направи впечатление. Клиентите са много важно нещо :).
За в бъдеще остава:
- Да намеря начин за износ и извън България, тъй като тук пазарът е малък, а продуктът е зверски специфичен. Между другото, ако някой желае да се занимава с продажби на комплектите по ebay - да ми пише :);
- Да добавя PIR сензор, за да може събуждането от скрийнсейвъра да става и при движение, не само при шум;
- Да прехвърля кода върху AVR, понеже се оказва, че това е платформата за хоби програмиране и повече хора имат познания (и програматори) за целта;
- Да добавя опция за автоматично сверяване на часа през GPS;
- и още много други...
Като всяко друго нещо, и този проект може винаги да му се направи или добави по още нещо. Но този пост вече стана километричен, така че спирам до тук, а на читателите, стигнали до края - поздравления :) И хиляди благодарности на всички хора (няма да изброявам, списъкът е страшно дълъг, те знаят кои са), които помогнаха тази моя мечта да стане реалност!
Публикувано в категория Hardware -- 11 Dec 2016, 06:43, 3 коментара -- View in English