Мазмұны:

Minidot 2 - Holoclock: 6 қадам
Minidot 2 - Holoclock: 6 қадам

Бейне: Minidot 2 - Holoclock: 6 қадам

Бейне: Minidot 2 - Holoclock: 6 қадам
Бейне: Видео-обзор коллиматорных прицелов Delta Optical MiniDot HD 24 и HD 26 2024, Шілде
Anonim
Minidot 2 - Holoclock
Minidot 2 - Holoclock
Minidot 2 - Holoclock
Minidot 2 - Holoclock

Мүмкін, holoclock шамалы дәл емес…. Бұл алдыңғы жағындағы голографиялық дисперсиялық пленканы қолданып, сәл тереңдік береді. Негізінде бұл нұсқаулық менің бұрынғы Minidot -тың жаңартуы: https://www.instructables.com/id /EEGLXQCSKIEP2876EE/және мына жерде орналасқан менің Microdot-тің көптеген кодтары мен схемаларын қайта қолдану: https://www.instructables.com/id/EWM2OIT78OERWHR38Z/EagleCAD файлдары мен Sourceboost коды бекітілген ZIP файлдарына қосылады. Алдыңғы Minidot өте күрделі болды, Microdot -тен мен тек 32.768 кристалын қолдана отырып, PIC -де RTC жасауды үйрендім және арнайы RTC чипін қолданудың қажеті жоқ. Мен сонымен қатар алдыңғы Minidot дисплейінің чиптерінен арылғым келді. Енді тек қуат реттегіш микросхемасы мен PIC16F88 бар … тек екі чип. Жаңартудың басқа себептері-менің ажыратылған тақтаның арқасында менің Minidot біршама сенімсіз болып қалды, мен нүктелік өрнектер арасында жұмсақ өшуді қаладым. түнде дисплейді күңгірттендіретін сыртқы жарық сенсоры. Басқа Minidot жарықтығы тұрақты болды және бөлмені түнде жарықтандырды. Құрылғы EagleCad бағдарламалық жасақтамасы мен Sourceboost компиляторының көмегімен жасалған. Бұл жобаны бастау үшін сізге электроника мен PIC контроллерін бағдарламалау бойынша біраз тәжірибе қажет болады. Назар аударыңыз, бұл электроникада да, PIC бағдарламалауда да нұсқаулық емес, сондықтан Miniclock дизайнына қатысты сұрақтарды қойыңыз. EagleCad немесе PIC бағдарламалауды пайдалану бойынша кеңес алу үшін жоғарыдағы нұсқауларды немесе осы сайттағы басқа да көптеген нұсқауларды қараңыз. Міне, бұл ….. Minidot 2, Holoclock …… немесе Minidot The Next Generation ………….

1 -қадам: Цикл

Цикл
Цикл
Цикл
Цикл
Цикл
Цикл

Бұл схема Microdot үшін өте қарапайым. Назар аударыңыз, charlieplex массиві іс жүзінде бірдей … тек бірнеше түйреуіштер ғана жылжытылды.

PIC жылдамдығын жоғарылату үшін Microdot схемасына 20 МГц кристалы қосылды, бұл массивті жылдам сканерлеуге және күңгірттеу алгоритмін енгізуге мүмкіндік береді. Күңгірттеу алгоритмі көлденең үлгіні жоғалту және қоршаған жарық функциясын іске қосу үшін өте маңызды болды. Бұл Microdot -пен мүмкін болмас еді, себебі сағат жылдамдығы баяу болғандықтан, кейбір сканерлеу циклдарын күңгірттеуге жұмсау қажет болды. Күңгірттеу функциясының сипаттамасы үшін келесі бөлімді қараңыз. Тағы бір айта кететін жайт, MCP1252 зарядты сорғы реттегішін қолдана отырып, 5В, менің сүйікті чипім. Егер сіз тізбекті өзгерткен болсаңыз, сіз қарапайым ескі 7805 -ті қолдана аласыз …… Менде бірнеше ыңғайлы фишкалар бар. Мен қазір қосқыштарды алдыңғы жағына жылжыттым, уақытты қалпына келтіру үшін электр қуатын өшіргеннен кейін сағаттың артқы жағындағы уақытты үнемдеймін, енді бәрі тек бір ПХД … кабельдік ақаулар жоқ. Сондай -ақ, LDR -нің енгізілуі назар аудартады. Бұл кернеу бөлгіште қолданылады, ол PIC -тің A/D түйреуіші арқылы сезіледі. PIC қоршаған жарық деңгейі төмен екенін сезгенде (яғни түнгі уақытта) күңгірттеу алгоритмі шарлиплексті массивті жарық деңгейі жоғары болғаннан гөрі көп цикл үшін күңгірт етеді. Мен Eaglecad кітапханасынан LDR символын таба алмадым, сондықтан мен тек LED белгісін қолдандым ….. бұл LDR деп алдауға болмайды. Төменде ПХД нақты суретін қараңыз. Шарлиплекс массивінде көп түсті жарықдиодты қолданғанда ескеретін бір жайт. Светодиодтардың тура кернеуінің бірдей немесе аз екеніне көз жеткізу керек. Олай болмаған жағдайда, ағынсыз ток жолдары пайда болуы мүмкін және бірнеше жарық диодтары жанады. Осылайша, бұл конфигурация үшін 5 мм немесе одан жоғары қуатты жарықдиодты пайдалану жұмыс істемейді, өйткені әдетте жасыл/көк жарық диодтары мен қызыл/сары жарық диодтарының арасында айтарлықтай айырмашылық бар. Бұл жағдайда мен 1206 SMD светодиодтарын және жоғары тиімді жасыл/көк жарықдиодты қолдандым. Алдыңғы кернеулер мұнда мәселе емес еді. Егер сіз charlieplex массивінде жасыл/көк және қызыл/сары жоғары жарықдиодты қоспаны қолданғыңыз келсе, әр түрлі түстерді екі charliplex массивіне бөліп алуыңыз қажет. Шарлеплекстеудің көптеген түсіндірмелері бар, оларды Google арқылы тексеруге болады …….. Мен мұнда егжей -тегжейлі айтпаймын. Мен сізге зерттеу жүргізуді тапсырамын. (Үлкенірек нұсқаны көру үшін төмендегі суреттің бұрышындағы кішкентай 'i' белгішесін басыңыз)

2 -қадам: Күңгірттеу алгоритмі - импульстің ені бойынша модуляция

Күңгірттеу алгоритмі - импульстің ені бойынша Charliplexed модуляциясы
Күңгірттеу алгоритмі - импульстің ені бойынша Charliplexed модуляциясы

Бұрын айтылғандай, мен бір нүктеден екіншісіне емес, әр түрлі нүкте үлгілерінің біртіндеп өшуін қалаймын. Ортада жаңа Minidot сағаты, оң жақта ескі Minidot орналасқан. Жаңасының қаншалықты әдемі екеніне назар аударыңыз. (Фондағы басқа дисплейлер - бұл менің Minicray суперкомпьютерлік күйінің дисплейі және менің затқа қарсы магниттік қамау өрісінде Minicray -ге қуат беретін Nebulon бөлшегім. Мұнда қараңыз: https://www.youtube.com/watch? V = bRupDulR4ME демонстрация үшін Егер сіз кодты іздесеңіз, display.c файлын ашыңыз. Кез келген нақты массивті жарықтандыру үшін трис/порт мәндерін салыстыруға арналған төрт массив және LEDs.eg кез келген нақты үлгісі үшін қандай жарық диодты жарықтандыру керек екенін анықтау үшін екі массив (Microdot кодынан артық) бар екенін ескеріңіз.

// LED1 LED2 LED3… белгісіз таңба LEDS_PORTA [31] = {0x10, 0x00, 0x00,… unsigned char LEDS_TRISA [31] = {0xef, 0xff, 0xff,… unsigned char LEDS_PORTB [31] = {0x00, 0x02, 0x04, … Белгісіз char LEDS_TRISB [31] = {0xfd, 0xf9, 0xf9,… unsigned char nLedsA [30]; unsigned char nLedsB [30];Мысалы, LED1 жарықтандыру үшін TRISA: B = 0xef: 0xfd TRIS регистрлерін және PORT регистрлерін PORTA: B = 0x10: 0x00 және т.б. орнату қажет. Егер сіз трис мәндерін екілік түрде жазсаңыз, сіз кез келген уақытта тек екі шығыс қосылғанын байқайсыз. Қалғандары үш күйге орнатылған (демек TRIS тізілімі). Бұл charlieplexing үшін маңызды. Сондай -ақ, сіз бір шығыс әрқашан логикалық '1', ал екіншісі әрқашан логикалық '0' болып табылатынын ескересіз … оның бағыты осы екі шығыс сызығының арасындағы жарық диодты қосады. Порттағы/тристегі соңғы мән массивтер - бұл мүлдем жарық диодты қоспайтын нөлдік мән. Микродотта update_display функциясы басқа жарық диодты жарықтандыру керек пе екенін білу үшін басқа массив (nLeds ) арқылы үздіксіз айналады. Егер солай болса, онда тиісті трис/порт мәндері орнатылып, жарық диоды белгілі бір уақыт бойы жанады. Әйтпесе, нөлдік мән PICs TRIS/PORT регистрлеріне жіберілді және біраз уақыт бойы ешқандай жарық диоды жарықтандырылмады. Жеткілікті жылдамдықта бұл үлгі берді. Бағдарламаның қалған бөлігі мезгіл -мезгіл RTC мәндерін оқиды және сол массивте жақсы кездейсоқ үлгіні құрады … және дисплей өзгерді, күңгірттеу функциясын жасау үшін, бұл 30 жарықдиодты жарықтандырылғаннан кейін (немесе емес), егер дисплей күңгірттенетін болса, нөлдік мәндерді жіберуге қосымша кезеңдер жұмсалады ….. толық жарықтылық үшін ешқандай қосымша кезеңдер жұмсалмайды. Егер жарық диодты жарық диодтарының бос кезеңдері көп болса, қайталанған кезде дисплей күңгірт болады. Іс жүзінде бұл импульсті еннің модульдеуінің мультиплексті ….. немесе аппараттық құрал charlieplex құрылымында конфигурацияланғандықтан, содан кейін charlieplexed impuls width модуляциясы. Төмендегі екінші диаграмма бұл үшін негізгі орнатуды көрсетеді. Мен мұны сканерлеу жақтауы деп атаймын. Жарық диодты өту үшін кадрға алғашқы 30 период қолданылады ….. және қосымша кезеңдердің ауыспалы саны дисплейдің күңгірт болатынын анықтайды. Бұл цикл қайталанады. Нөлдік кезеңдердің көп болуы жарық диодты бір кадрға қосылу уақытының аз болуын білдіреді (себебі периодтар саны өсті). Тік ось кернеу деңгейін білдірмейді. Светодиодқа түсетін түйреуіштердің нақты күйі оның charlieplex массивіндегі орналасуына байланысты өзгереді …. диаграммада ол жай ғана қосылады немесе өшіріледі, бұл сонымен қатар жақтаудың жалпы ұзындығын ұлғайтты, осылайша жаңартуды азайтады. мөлшерлеме. Жарықдиодты шамдар күңгірттенген сайын, олар басқаша айтқанда жыпылықтай бастайды. Сондықтан бұл әдіс белгілі бір дәрежеде пайдалы. Сағат үшін бұл OK. Функция PIC -дегі кондиционерді оқитын және бұл жарықтық деңгейін орнататын үзік -үзік деп аталады. Егер сіз кодты оқысаңыз, ол LDR -ге жақын орналасқан жарықдиодты шамның қосылып тұрғанын тексереді, егер ол орнатылмаған болса, бұл үлгі өзгерген кезде дисплейдің күтпеген жерден жарқырауын тоқтатады.

3 -қадам: Күңгірттеу алгоритмі - кросс -эффект және қос буферлеу

Күңгірттеу алгоритмі - көлденең түсу әсері және қос буферлеу
Күңгірттеу алгоритмі - көлденең түсу әсері және қос буферлеу

Бір үлгі мен екіншісінің ауысуы бұрын бірден болды. Бұл сағаттар үшін мен бір өрнектің біртіндеп төмендеуін, ал келесі үлгінің біртіндеп ұлғаюын көрсеткім келді.

Маған көлденең түсу үшін жеке жарық диодты жарықтылықтың бөлек деңгейінде басқару қажет болмады. Бірінші өрнек бір жарықтықта, екіншісі төмен жарықтықта қажет болды. Содан кейін мен қысқа уақыт ішінде біріншісінің жарықтығын аздап төмендетіп, екіншісін ұлғайтар едім. Содан кейін сағат келесі үлгіні көрсетуді күтеді және басқа ауысу болады. Сондықтан маған екі үлгіні сақтау керек болды. Қазіргі уақытта көрсетіліп жатқан және көрсетілетін екінші үлгі. Бұл nLedsA және nLedsB массивтерінде. (бұл жағдайда порттарға қатысы жоқ екенін ескеріңіз). Бұл қос буфер. Update_display () функциясы сегіз кадрды айналдыру үшін өзгертілді және алдымен бір массивтен, содан кейін екіншісінен кадрлардың санын көрсетеді. Сегіз цикл ішінде әр буферге бөлінген кадрлар санын өзгерту әр өрнектің қаншалықты жарқын болатынын анықтады. Буферлер арасында велосипедпен жүруді аяқтағаннан кейін біз «дисплей» мен «келесі дисплей» буферлерін ауыстырдық, сондықтан үлгіні құру функциясы тек «келесі дисплей» буферіне жазылады. Төмендегі диаграмма мұны үмітпен көрсетеді. Сіз ауысуға 64 сканерлеу кадрларын қажет ететінін көруіңіз керек. Суретте кішкене кірістіру алдыңғы беттің сканерлеу кадрының диаграммасын шебер түрде кішірейтіп көрсетеді. Қайта жаңартылған тариф туралы сөз. Мұның бәрін өте тез жасау керек. Бізде екі қосымша есептеу деңгейі бар: біреуі дисплейдің күңгірттенуі үшін, екіншісі екі буфер арасында ауысуға жұмсалған сегіз кадрлық цикл үшін. Осылайша, бұл код жинақта жазылуы керек еді, бірақ «С» әрпінде жеткілікті жақсы.

4 -қадам: Құрылыс - ПХД

Құрылыс - ПХД
Құрылыс - ПХД
Құрылыс - ПХД
Құрылыс - ПХД

Бұл өте қарапайым. Жоғарыда SMD компоненттері бар екі жақты ПХД. Кешіріңіз, егер сіз шұңқырлы адам болсаңыз, бірақ SMD жобаларын жасау оңайырақ. Оңай болу үшін сізде тұрақты қолыңыз, температураны бақылайтын дәнекерлеу станциясы және жарық пен үлкейткіштің көп болуы керек.

ПХД құрылысында назар аударатын жалғыз нәрсе - ПИК -ті программалауға арналған коннекторды қосу. Бұл PIC ICSP түйреуіштеріне қосылады және сізге ICSP бағдарламашысы қажет. Мен тағы да қоқыс жәшігіне қосқышты қолдандым. Егер сіз қаласаңыз, сымдарды жастықшаларға дәнекерлеуге болады. Сонымен қатар, егер сізде тек розеткасы бар бағдарламашы болса, сіз оны розеткаға қосатын тақырып жасай аласыз, содан кейін оны ICSP жастықшаларына дәнекерлей аласыз. Егер сіз мұны жасасаңыз, онда Rx -ты ажыратыңыз және нөлдік ом сілтемелері болып табылатын Ry -ді қосыңыз (мен дәнекерлеу қондырғысын қолданамын). Бұл схеманың қалған бөлігін PIC -тен ажыратады, сондықтан ол бағдарламалауға кедергі келтірмейді. Розеткалы бағдарламашы ICSP түйреуіштерін ICSP бағдарламашысы сияқты пайдаланады, мұнда ешқандай сиқыр жоқ. Егер сіз қате RTC іске қосылмай тұрып кодты кешіктіруді ұмытып қалсаңыз, мұны істеуіңіз керек. 16F88 үшін ICSP бағдарламалау түйреуіштері РТЖ үшін қолданылатын 32.768 кГц кристалл үшін қажет түйреуіштермен бірдей …… егер T1 сыртқы осцилляторы (яғни РТЖ) ICSP жұмысын бастамай тұрып жұмыс істесе, онда бағдарламалау сәтсіз болады.. Әдетте, егер MCLR түйреуішінде қалпына келтіру бар болса және кідіріс болса, онда ICSP деректерін осы түйреуіштерге жіберуге болады және бағдарламалау дұрыс басталуы мүмкін. Дегенмен, PIC -ке қуат бөлу арқылы ICSP бағдарламашысы (немесе тақырыпшасы бар розеткалы бағдарламашы) құрылғының қуатын басқарып, бағдарламаны мәжбүрлей алады. Тағы бір айта кететін жайт, ПХД -дегі кристалды тақталар бастапқыда SMD кристалдарына арналған. Мен кейбіреулердің жеткізілуін күте алмадым, сондықтан 32.768 кГц сағаттық кристалл жоғарыда көрсетілгендей дәнекерленген, ал 20 МГц кристалл жастықшаларға бірнеше тесік бұрғылау арқылы бекітілген, төменгі жағынан кристалды кіргізіп, жоғарғы Сіз түйреуіштерді PIC16F88 оң жағында көре аласыз.

5 -қадам: Голографиялық фильм және тұрғын үй

Голографиялық фильм және тұрғын үй
Голографиялық фильм және тұрғын үй
Голографиялық фильм және тұрғын үй
Голографиялық фильм және тұрғын үй
Голографиялық фильм және тұрғын үй
Голографиялық фильм және тұрғын үй

Соңғы құрылыс - бұл ПХД корпусына салу және оны бағдарламалағаннан кейін оны ыстық желіммен жабыстыру. Үш саңылау микроскоптарға алдыңғы жағынан кіруге мүмкіндік береді.

Бұл сағаттың маңызды бөлігі - голографиялық диффузорлық пленканы қолдану. Бұл мен жатқызған арнайы фильм, ол құрылғыға жақсы тереңдік береді. Сіз қарапайым калькуляторды (ПХД -ны алдыңғы жаққа қарай жылжытатын едім) немесе флуоресцентті жарық шамдарында қолданылатын кез келген басқа диффузорды пайдалана аласыз. Тәжірибе жасау керек, жалғыз нәрсе - жарықдиодты шамдардың санын ажыратуға мүмкіндік беру, әйтпесе нүктелерді санау қиын болады. Мен физикалық оптика корпорациясының (www.poc.com) голографиялық дисперсиялық материалын 30 градустық дөңгелек дисперсиямен қолдандым, суперкомпьютердің күйін нұсқаулықта басқа жерде көрсетілген, 15х60 градус эллиптикалық дисперсиясы бар пленка. Сіз жұмбақ көрініс алу үшін күндізгі уақытта жылтыр ішті жасыру үшін қараңғы таспаны қолдана аласыз. Сіз тіпті дисплейді ашық қалдырып, адамдарға ішкі жақтарын мен сияқты көре аласыз. Тұғыр екі алюминий 'L' штангасы болды, оның иілуіне мүмкіндік беру үшін түбінде аздап кесілген. Назар аударыңыз, бұл суреттерде қосымша жарықтандыру қосылды, осылайша сіз дисплей қақпақтарын көре аласыз. Қонақ бөлменің қалыпты жарықтандырылуында жарық диодтары күндізгі жарықта да көбірек көрінеді.

6 -қадам: Бағдарламалық қамтамасыз ету және пайдаланушы интерфейсі

Құрылғының жұмысы өте қарапайым, арнайы үлгі режимдері немесе жарқыраған заттар жоқ. Жалғыз нәрсе - уақытты көрсету.

Уақытты орнату үшін алдымен SW1 түймесін басыңыз. Құрылғы барлық светодиодтарды бірнеше рет жыпылықтайды, содан кейін SW3 жарық диодтарының 10 сағаттар тобы артады, ал таңдалған SW2 тобы келесі светодиодтар тобына ауысады, әр уақытта топтағы барлық жарық диодтары қысқа уақыт жыпылықтайды. Код Sourceboost 'C' компиляторының 6.70 нұсқасы үшін жазылған. RTC коды t1rtc.c/h файлдарында және PIC T1 таймерінде үзу функциясы бар. T1 таймері әр 1 секунд сайын үзілуге орнатылады. Әр секунд сайын уақыттың айнымалысы ұлғаяды. Сонымен қатар, таймер таймері уақытпен бірге әр секунд сайын есептеледі. Бұл дисплейді қашан ауыстыру керектігін анықтау үшін қолданылады. Үзіліс функциясы дисплейді жаңарту үшін T0 таймерінің үзілуін қолданады, дисплейдегі функцияны шақырады. C. Display.h/display.c файлдарында дисплейді жаңарту және уақытты көрсету функциялары бар. уақытты орнату және қосқыштарды оқу функциялары holoclock.c/h файлдары - негізгі ілмектер мен инициализация.

Ұсынылған: