Мазмұны:
- 1 -қадам: алдыңғы қабат
- 2 -қадам: бағыттаушы қабатты жобалау
- 3 -қадам: бағыттаушы қабатын құру
- 4 -қадам: жарықдиодты сымдарды қосу
- 5 -қадам: электрониканы жобалау
- 6 -қадам: Электрониканы қосу
- 7 -қадам: бағдарламалау
- 8 -қадам: тұрғын үй
- 9 -қадам: Қорытынды ескертулер
Бейне: Лондонның жер асты картасының сағаты: 9 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
2014 жылы Лондонда 3D басып шығару бойынша кеңес беруде тәжірибеден өтіп, Stratasys машинасын пайдаланып түрлі түсті литофандармен жұмыс жасап, мен өзімнің сыйлығымды безендірдім, олардың кеңселерінде құбырлы желілердің 3D -түсті басып шығарылуы. Мен одан бірдеңе жасауға бел будым. Арада 2 жыл өткен соң 2016 жылы менде 3D принтер болды, мен оны сағатқа айналдырдым.
Бала кезімде мен Tokyo Flash сандық сағаттары бұрын -соңды болмаған ең керемет нәрсе болды және бұл дизайн үшін шабыт болар еді.
Енді мен оны жазуға дейін 4 жылға ғана аз ғана уақыт болды!
Нақты нұсқауларды қайталау қиынға соғады, ал соңғы екі жылда әуесқой ПХД өндірісіндегі шығындардың төмендеуі светодиодты орналастырудың нақты әдісін ескіруі мүмкін. Мен бөліскен идеялар басқаларға жіңішке заттардан таңғажайып сағаттар жасауға әкелуі мүмкін деп үміттенемін!
1 -қадам: алдыңғы қабат
Кіріспеде айтылғандай, бұл түсті 3D басып шығару, менің ойымша, Stratasys машинасы ұнтақ төсек мен байланыстырғыш пен пигментке арналған өзгертілген сия картриджін қолданды.
Файл тарихта жоғалады, бірақ бұл қабат кез келген нәрсе болуы мүмкін, фотосурет немесе бір түсті литофан керемет жұмыс жасайды.
Бұл бөлік 3DS max 2014 жылы жасалған, бірақ бүгінде суретті жарықтыққа негізделген SLT -ге айналдыратын онлайн құралдар бар.
2 -қадам: бағыттаушы қабатты жобалау
Бұл жерде біз жобаның күрделілігін және уақытты оқу әдісін шешеміз. Суреттер мен ойнаған 2 идеяны көрсетеді.
Олар конструкцияда сканерлеу және оның бойында сызықтар сызу арқылы жасалды.
Бұл өте оқылатын сағат емес, бірақ мен күндізгі жолдарды толтыру идеясын таңдадым, осылайша дизайн мақсаты болды.
Екілік санау - жарықдиодты санауды қысқартудың тиімді әдісі, және егер ол екілік сіздің кептеліс болса, оқылуды жақсартады, бірақ бұл менің «толтыру сызықтары» туралы ойымды бұзды, сондықтан бұл жобаның нұсқасы болмады.
Токио флэш сағаттарында светодиоды санауды азайту кең таралған, бірақ бір секция 3 немесе 5 секундта есептеледі, содан кейін әр бөлік толтырылған сайын мен басқа техниканы толтырамын, мен бұл техниканы оларды минутына 60 -тан 20 плюс 2 -ге дейін азайту үшін қолдандым. дәлдікке соншалықты алаңдамады.
3 -қадам: бағыттаушы қабатын құру
Жарықдиодты жарықтандырғыштардың бұл бағыттаушы қабатының екі мақсаты бар, ол жарық диодты орнында ұстайды және олардың арасында төгілудің алдын алады
Ол Inkscape -тің қабаты ретінде мен дизайнды орналастыру үшін қолданған сканерлеудің жоғарғы жағында салынған. Принтерге жібермес бұрын блендерде қалыңдығы 1 мм қосылды.
Бұл менің аз ғана Makibox A6 -да жасауым керек ең қиын басылымдардың бірі болды, оның бөлігі абсцесс түрінде басылды, сондықтан оны платформаға минималды қисаусыз бекіту үшін бір тонна ацетон ерітіндісі қолданылды. Бақытымызға орай, бұл өнім соңғы өнімде көрінбейді
Соңғы суретте оның аралықты тексеру үшін шамға дейін ұстап тұрғаны көрсетілген.
Қарап отырсақ, сызық бойымен шамдар арасында төгілу визуалды түрде жақсы болуы мүмкін, оны оқу қиын емес, бұған әр жарықтың қысқа жақтарындағы бағыттағышқа бұрышты қосу арқылы қол жеткізуге болады.
4 -қадам: жарықдиодты сымдарды қосу
Алғашқы суретте тесіктердің мөлшерін тексеру үшін мен жасаған сынақ баспа бейнеленген, мен жарық диодты кішкене күшпен шілтерге тығыз бекітуді мақсат еттім, содан кейін бағыттаушы қабатты төсеу кезінде дұрыс пішінді қолмен орналастырды.
Менің 3D принтерімнің төзімділігі төмен болғандықтан, кейбіреулері бос қалыпта қалды, ал басқалары тым тығыз, бірақ дәнекерлеу кезінде светодиодты басу арқылы оны орнына қоюға шақырды, бұл шынымен қарағанда жақсы сәйкес келеді. дұрыс өлшемді шұңқыр, оны жалғағаннан кейін жалға алуға болады.
Сымның санын азайту үшін светодиодтар 7 -ден 8 -ге дейінгі матрицада дәнекерленген, яғни барлық 55 жарық диодты 13 түйреуішпен басқаруға болады, менде бұл байланыстардың әрқайсысының қолмен салынған картасы болды, ол өкінішке орай жоғалып кетті.
Эмальды сым пайдаланылды, осылайша бөлікті үтіктеу арқылы қыздыру және қосылу алдында қалайы қалау арқылы тесіктерді ашуға болады.
Бұл процесс өте көп уақытты қажет етті, мен ПХД құрастыруды ұсынамын
5 -қадам: электрониканы жобалау
Менің бастапқы жоспарым RTC бар Arduino микроконтроллерін қолдану болды, бірақ ESP8266 түйін MCU D1 тақтасында таңдалды, себебі ол автоматты түрде күндізгі уақытты үнемдеуге және WIFI -ді басқаруға мүмкіндік береді.
Түйреуіш санын одан әрі азайту үшін менде MAX7219 (64 жарықдиодты қабылдай алатын) қолдануға болатын жарықдиодтардың тамаша саны болды.
Бұл IC әдетте LED 7 Segment дисплейлерін басқару үшін қолданылады, бірақ ол минималды жыпылықтайтын жарықдиодтардың ерікті санын жарықтандыратын, менікіне ұқсас ұқсас жағдайға ие болды, тіпті басқарылатын жарықтығы бар.
Мен сымдар үшін протободы қолдануды шештім, бірақ бүркіт сымдарды орналастыруға және түсінуге көмектесті
Мен тақтадағы файлдарды тіркедім, бірақ мен бүркітті бірінші рет қолдандым (және ескірген нұсқасы), сондықтан олар тек анықтама үшін
6 -қадам: Электрониканы қосу
Бұл қайталанатын қарапайым қадам болды, Eagle схемасына сәйкес, ESP үшін тақырыптарды қолдану және жарықдиодты матрица құрастыруда үлкен көмектесті.
Анод пен катодты жарықдиодты жарықдиодты колонкалардың 1 -ші нүктесі күміс үшкірмен белгіленген, оларды 7 -ден 8 -ге дейін ажыратуға болады.
7 -қадам: бағдарламалау
Біздің дисплей дәстүрлі матрица болмағандықтан, мен оны HEX -те MAX IC -ге жіберетін биттерді қосу үшін визуализация әдісін табуым керек болды. Бақытымызға орай, мен қиындыққа тап болу үшін тек қана excel білемін және мен қалаған үлгіні қолмен орналастырылған құсбелгілерді көрсетуге көмектесетін «он алтылық шеберін» жасадым.
Бұл менің сағатқа, минутқа және секундқа арналған он алтылық нүктені НЕМЕСЕ пайдаланып max7219 -ға жіберу үшін соңғы он алтылық пәрменді шығару үшін біріктірілуі мүмкін болатын қайта бағалаумен келді, мен секундқа қосқан кішкене анимацияны қоса, тақтаға көз жеткізе алдым. қатпаған;
Сонымен, аяқталуға жақын. және тым ескірген басқа шешімнің уақыты.
ESP коды LUA -да, бүгін мен arduino IDE -ді қолдануды ұсынамын, себебі бұл жақсы құжаттама мен сенімді пакеттер кітапханасы, ESP қауымдастығы әлі жетілмеген кезде мен LUA -ны осы жобаның тілі ретінде таңдадым.
Мен уақытты оқу үшін Google серверлерін үнемі жіберуге күмәнді шешім қабылдадым. Бұл дрейфті азайту үшін RTC қажет болды, бұл жұмыс істейді, бірақ сізге нақты уақыт API -ін қолданған дұрыс.
halfSec = 0hour = 0 минут = 0 секунд = 0
төмен тығыздық = 0
жоғары тығыздық = 9
жергілікті SSID = «Wifi»
жергілікті SSID_PASSWORD = «Құпия сөз»
time time () -ағымдағы уақыт пен күнді алу үшін интернетке қосылыңыз
егер wifi.sta.getip () болса, онда жергілікті conn = net.createConnection (net. TCP, 0) conn: connect (80, «google.com»)
қосылу: қосулы («байланыс», функция (қосылу, жүктеме) conn: send («HEAD/HTTP/1.1 / r / n».. «Host: time.is / r / n».. «Қабылдау: */ *\ r / n».. « Пайдаланушы-агент: Mozilla/4.0 (үйлесімді; esp8266 Lua;) «..» / r / n / r / n «) соңы)
қосылу: қосулы («алу», функция (қосылу, жүктеме) -баспа (пайдалы жүктеме) conn: жабу () жергілікті p = string.find (пайдалы жүктеме, «GMT») -интернеттен пайдалы жүктемедегі уақыт пен күн жолын табыңыз, егер p ~ болса, уақыт белдеуін өзгертіңіз. = нөлге дейін-сағатқа, минутқа, секундқа, тәулікке, айға сәйкес келетін сандарды шығарыңыз = тонна (string.sub (жүктеме, p-9, p-8)) минут = тонна (string.sub (пайдалы жүктеме, p- 6, p-5)) секунд = тонна = (екінші%6)*2 -баспа (halfSec) басқа басып шығару («веб -жаңарту сәтсіз аяқталды!») соңы аяқталды -функция) -«қабылдау» оқиға өңдегішінің соңы
қосылу: қосулы («ажырату», функция (қосылу, жүктеме) conn = нөлдік жүктеме = нөлдік аяқталу) соңы басып шығару («әлі Wi -Fi жоқ») соңы
borTable (a, b,…) функциясы -бірге немесе кестелер бірге
егер arg [1] болса, b = borTable (b, орау (arg)) end local z = {} i, v үшін ipairs (a) do table.insert (z, bit.bor (v, b )) соңы қайтарым z соңы
bxorTable (a, b,…) функциясы -кестелердің қатарынан НЕМЕСЕ
егер arg [1] болса, b = bxorTable (b, орау (arg)) i, v үшін ip, (a) do table.insert (z, bit.bxor (v, b ) үшін жергілікті z = {} соңы) соңы қайтарым z соңы
addSecond () функциясы
секунд = секунд+1 болса секунд> = 60 онда секунд = 0 минут = минут+1 егер минут> = 60 болса, минут = 0 addHour () аяқталу соңы
addHour () функциясы
сағат = сағат+1 болса сағат> = 24 содан кейін сағат = 0 аяқталса, егер сағат == 2 немесе сағат == 16 болса, онда max7219.setIntensity (lowIntensity) сағат == 8 немесе сағат == 18 болса, онда max7219.setIntensity (highIntensity) end end function update () local secGap = 6 local minGap = 3 local horGap = 1 local sec = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x03, 0x01, 0x03}, {0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03}, 0x00, 0x01, 0x0x, 0x01, 0x01, 0x01 }, {0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03}}; жергілікті мин = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00}, {0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x00, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x12, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x12, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x12, 0x12 }, {0x02, 0x02, 0x02, 0x12, 0x12, 0x10, 0x12, 0x10}, {0x02, 0x02, 0x12, 0x12, 0x12, 0x10, 0x12, 0x10}, {0x02, 0x12, 0x12, 0x12, 0x12, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x12, 0x12, 0x10, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x12, 0x12, 0x30, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x12, 0x32, 0x30, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x32, 0x32, 0x30, 0x12, 0x10}, {0x12, 0x12, 0x32, 0x32, 0x32, 0x30, 0x12, 0x10}, {0x12, 0x32, 0x32, 0x32, 0x32, 0x30, 0x12, 0x10}, {0x32, 0x32, 0x32, 0x32, 0x32, 0x30, 0x12, 0x10}}; жергілікті hor = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x00}, {0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x004, 0 000, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x08}, {0x04, 0x04, 0x04, 0x04, 0x04 }, {0x04, 0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x04, 0x0C, 0x08}, {0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08},, 0x0C, 0x0C, 0x0C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C0 0x4C, 0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x4C, 0x4C, 0x4x, 0x4C, 0x4C 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}}; -басып шығару (сағат, минут, секунд)
-кесте 0-ден басталады, сондықтан қазіргі уақытта сек [0] = нөлге тең)
max7219. жазу ({анимациялық (borTable (сек [1+ (секунд/секГап)], мин [1+ (минут/минГап)], hor [1+ (сағат/горГап)]))})
соңы -функция
wifi.setmode (wifi. STATION)
wifi.sta.config (SSID, SSID_PASSWORD) wifi.sta.autoconnect (1)
-max7219 конфигурациялаңыз
max7219 = талап («max7219») max7219. орнату ({numberOfModules = 1, slaveSelectPin = 8, қарқындылығы = жоғары тығыздығы})
--Негізгі бағдарлама
checkOnline = tmr.create ()
tmr.alarm (0, 180000, 1, уақыт)
tmr.alarm (1, 1000, 1, addSecond)
tmr.alarm (2, 500, 1, жаңарту)
жандандыру функциясы (әлі де)
жергілікті кадрлар = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; halfSec = halfSec+1, егер halfSec> = 12 болса, halfSec = 0 end --print (halfSec) bxorTable қайтарады (кадрлар [halfSec+1], әлі де)
8 -қадам: тұрғын үй
Сіздің керемет шеберлігіңізді көрсетіп, жобаны орналастыратын кез келді.
Не болмаса, немесе амазонк пакетін қайта өңдеуден алып, бүгінгі күнге дейін қолданылып жүрген уақытша тұрғын үй жасаңыз.
Бұл әдісті қолданудың артықшылығы - жобаның әр қабаты картонның қалыңдығына сәйкес келеді, сондықтан сэндвичті жинап, скотчпен жабыстыруға болады. Премиум нұсқасы акрилді қолдануы мүмкін
9 -қадам: Қорытынды ескертулер
Оқығаныңыз үшін рахмет, көпшілігіңіз білетіндей, жобаны құжаттау оны жасау сияқты қиын болуы мүмкін. Менімен сөйлескен бейне үзінділері бар, олар ақыр соңында күндіз көре алады.
Осы жобаны жасау мен оны жазу арасындағы жылдар ішінде мен 3D басып шығаруды қолдана отырып, ерікті жарықдиодты дисплейлердің мысалдарын көремін деп күттім, бірақ RGB жолақтарының азаюы баламаға деген қажеттілікті жойды.
Бұл ақпараттық болды деп үміттенемін және сұрақтар қойыңыз, себебі мен толық қанағаттандырмайтын бөлімдер туралы толығырақ айтуға тырысамын.
Алақай
Ұсынылған:
Smart Buoy [GPS, радио (NRF24) және SD картасының модулі]: 5 қадам (суреттермен)
Smart Buoy [GPS, Radio (NRF24) және SD-карта модулі): Бұл Smart Buoy сериясы теңізде дайын өнімдерді қолдана отырып, теңіз туралы маңызды өлшемдерді қабылдай алатын ғылыми қалқаны жасауға біздің талпынысымызды көрсетеді. Бұл төртеудің екеуі - бұл жаңартылған екеніне көз жеткізіңіз, егер сізге жылдамдық қажет болса
Жер сағаты: 9 қадам (суреттермен)
Жер сағаты: Жер сағаты - бұл мен күннің әсерінен жер бетінің нақты уақытта бейнеленуі үшін жасаған жоба! ≫ > Жаңа нұсқа (3D басып шығарылған) < <
Raspberry PI ұшу -қону жолағының алдын ала ескертуі, ұшу картасының деректерін қолданады: 14 қадам (суреттермен)
Ұшу -қону жолағының жарығы туралы мәліметтерді қолдана отырып таңқурай PI туралы ертерек ескерту: Бұл лампа бірнеше себептерге байланысты пайда болды, себебі мен үнемі ұшатын ұшақтарға қызығамын, ал жазда демалыс күндері айналасында өте қызықты ұшақтар болады. Сіз оларды тек естігенде ғана естисіз
Төмен ресурстар параметрлері үшін жер асты суларының деңгейін өлшеуге арналған зонд: 4 қадам (суреттермен)
Төмен ресурстар параметрлері үшін жер асты суларының деңгейін өлшеу зондтары: Кіріспе Біз Оксфамнан Ауғанстандағы мектеп оқушылары жақын жердегі ұңғымалардағы жер асты суларының деңгейін бақылаудың қарапайым әдісін жасауды сұрадық. Бұл бетті доктор Амир Хайдари дари тіліне аударған және аударма келесідей болуы мүмкін
BTS - 28 команда (R2 -DTimbs) Су асты/Су асты қайығы: 17 қадам
BTS - 28 тобы (R2 -DTimbs) Суға бататын/Су асты: жергілікті жабдықтар дүкенінен табуға болатын материалдардан су асты құрылысына арналған оқулық. Ақырғы су асты қондырғысы алға, артқа, бұрылуға, жоғары жылжуға және жылжуға мүмкіндік алады. су бойымен төмен