Satura rādītājs:
- 1. darbība: priekšējais slānis
- 2. darbība: virzošā slāņa projektēšana
- 3. darbība: virzošā slāņa veidošana
- 4. solis: LED vadu savienošana
- 5. solis: Elektronikas projektēšana
- 6. solis: Elektronikas vadu savienošana
- 7. solis: programmēšana
- 8. solis: korpuss
- 9. darbība. Noslēguma piezīmes
Video: Londonas pazemes karšu pulkstenis: 9 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
2014. gadā, pēc prakses Londonas 3D drukāšanas konsultācijās un eksperimenta ar krāsu litofāniem, izmantojot viņu Stratasys mašīnu, es izstrādāju savu dāvināšanas dāvanu - krāsu 3D izdruku no cauruļu līnijām, kas atrodas viņu birojos. Es biju apņēmies no tā kaut ko izveidot. Neilgi, divus gadus vēlāk, 2016. gadā, man bija savs 3D printeris, un es sāku strādāt, padarot to par pulksteni.
Būdams bērns, es, kaut arī Tokijas zibspuldzes digitālie pulksteņi bija visu laiku lielākās lietas, un tas bija dizaina iedvesmas punkts.
Un tagad ir pagājis neliels 4 gadu pārtraukums, līdz esmu to pierakstījis!
Lai gan precīzus norādījumus būs grūti atkārtot, un izmaksu samazinājums PCB ražošanas amatieriem pēdējos pāris gados var padarīt manu precīzo metodi LED izvietošanai novecojušu. Es ceru, ka dalītās idejas var novest pie tā, ka citi no plāniem priekšmetiem gatavo dīvainus pulksteņus!
1. darbība: priekšējais slānis
Kā minēts ievadā, šī bija krāsu 3D druka, es uzskatu, ka Stratasys mašīna, kas izmantoja pulvera gultu un modificētu tintes kasetni saistvielai un pigmentam.
Fails tiek zaudēts vēsturei, taču šis slānis varētu būt jebkas, fotoattēls vai vienkrāsains litofāns radītu brīnumus.
Šī daļa tika izveidota 3DS max 2014. gadā, taču šodien ir pieejami tiešsaistes rīki, lai attēlu padarītu par SLT, pamatojoties uz spilgtumu
2. darbība: virzošā slāņa projektēšana
Šeit mēs izlemjam projekta sarežģītību un laika nolasīšanas metodi. Attēli parāda 2 idejas, ar kurām es spēlēju.
Tie tika veikti, skenējot dizainu un zīmējot līnijas pāri inkcape.
Šis nav ļoti lasāms pulkstenis, bet es dodu priekšroku idejai par līniju aizpildīšanu visu dienu, lai tas kļūtu par dizaina mērķi.
Binārā skaitīšana ir dzīvotspējīga metode, lai samazinātu LED skaitu, un tā uzlabotu lasāmību, ja binārais ir jūsu ievārījums, bet tas grauj manu “aizpildīšanas līniju” ideju, tāpēc šī projekta izvēle nebija iespējama
Tokijas zibspuldžu pulksteņos ir ierasts samazināt LED skaitu, bet, ja viena sadaļa tiek skaitīta 3 vai 5, un pēc tam tiek aizpildīts cits pildījums katru reizi, kad sadaļa tiek aizpildīta, es izmantoju šo tehniku minūtēm, lai tās samazinātu no 60 līdz 20 plus 2. I sekundes nebija tik ļoti noraizējies par precizitāti.
3. darbība: virzošā slāņa veidošana
Šim gaismas diožu virzošajam slānim ir divi mērķi, tas tur gaismas diodes vietā un novērš noplūdi starp tām
Tas tika uzzīmēts kā slānis Inkscape tieši virs skenēšanas, ko es izmantoju dizaina izkārtojumam. Pirms nosūtīšanas uz printeri blenderī tika pievienots 1 mm biezums.
Šī bija viena no grūtākajām izdrukām, kas man jāizdara uz mana niecīgā Makibox A6. Daļa tika iespiesta abs, tāpēc tika izmantota tonna acetona vircas, lai tā būtu piestiprināta pie celtniecības platformas ar minimālu deformāciju. Par laimi šī daļa nav redzama galaproduktā
Pēdējais attēls parāda, ka tas tika turēts pie lampas, lai pārbaudītu atstarpes.
Vēlāk raugoties, vizuālajiem materiāliem faktiski būtu vēlama noplūde starp gaismām pa līniju, to nav grūtāk nolasīt, to varētu panākt, pievienojot vadotni katras gaismas īsās malās
4. solis: LED vadu savienošana
Pirmajā attēlā ir redzama testa izdruka, lai pārbaudītu caurumu izmērus, es tiecos uz to, lai gaismas diodes cieši pieguļ mežģīnēm ar nelielu spēku, un tad, izliekot vadošo slāni, ar rokām tika ievietota pareizā forma.
Sakarā ar mana 3D printera zemo pielaidi, daži bija vaļīgi, un, lai tie paliktu vietā, bija nepieciešama superlīme, bet citi bija pārāk cieši, bet tie tika iedrošināti vietā, lodēšanas laikā nospiežot LED, tas faktiski bija labāks nekā pareizā izmēra caurums, kuram pēc īssavienojuma bija jāizņem īres tiesības.
Lai samazinātu vadu skaitu, gaismas diodes tika pielodētas matricā no 7 līdz 8, kas nozīmē, ka visas 55 gaismas diodes varēja kontrolēt tikai ar 13 tapām, man bija ar roku zīmēta katra savienojuma karte, kas diemžēl ir zaudēta.
Tika izmantota emaljas stieple, lai pirms savienojuma izveidošanas sekcijas varētu tikt atklātas, sildot daļu ar gludekli un alvas.
Šis process bija ļoti laikietilpīgs, es ļoti ieteiktu izveidot PCB
5. solis: Elektronikas projektēšana
Mans sākotnējais plāns bija izmantot Arduino mikrokontrolleru ar RTC, bet izvēlējos ESP8266 uz Node MCU D1 plates, jo tas ļāva automātiski ietaupīt vasaras laiku un kontrolēt WIFI.
Lai vēl vairāk samazinātu tapu skaitu, man bija ideāls LED skaits, lai varētu izmantot MAX7219 (kas spēj apstrādāt līdz 64 gaismas diodēm).
Šo IC parasti izmanto, lai vadītu LED segmentu displejus, taču tam bija ļoti līdzīgs izmantošanas gadījums kā manējam, apgaismojot patvaļīgu skaitu gaismas diodes ar minimālu mirgošanu, tam pat ir kontrolējams spilgtums.
Es nolēmu elektroinstalācijai izmantot protoboard, bet ērglis bija noderīgs detaļu izvietošanai un elektroinstalācijas izpratnei
Esmu pievienojis tāfeles failus, taču šī bija mana pirmā reize, kad izmantoju ērgli (un līdz šim novecojušu versiju), tāpēc tie ir tikai atsaucei
6. solis: Elektronikas vadu savienošana
Tas bija atkārtots vienkāršs solis, ievērojot Eagle shēmu, izmantojot galvenes ESP un LED matricai, kas ļoti palīdzēja montāžā.
Anode & Cathode LED galvenes 1. tapa bija atzīmēta ar sudraba asumu, tos varēja atšķirt, tāpat kā 7, pārējos 8.
7. solis: programmēšana
Tā kā mūsu displejs nav tradicionāla matrica, man bija jāatrod metode, kā vizualizēt, kurus bitus ieslēgt un kurus tā nosūtīja uz MAX IC HEX. Par laimi, es zinu tikai tik daudz Excel, lai iekļūtu nepatikšanās, un izveidoju “Hex vedni”, kas mani vadītu, lai gan modelis, kuru es gribēju parādīt, ar roku novietoja visas izvēles rūtiņas.
Līdz ar to tika pārvērtēts, ka manu stundu, minūti un sekundes heksadecimālo skaitli var apvienot, izmantojot bitu vai VAI, lai izveidotu pēdējo heksadecimālo komandu, ko nosūtīt uz max7219, ieskaitot nelielu animāciju, ko pievienoju sekundēm, lai es varētu pārliecināties, ka tāfele nebija sasalis;
Tātad, gandrīz beigās. un laiks citam lēmumam, kas nav pārāk labi novecojis.
ESP kods ir LUA. Šodien es ieteiktu izmantot arduino IDE, lai tā būtu labāka dokumentācija un stabila pakotņu bibliotēka, tajā laikā, kad ESP kopiena vēl bija nobriedusi, un es izvēlējos LUA kā šī projekta valodu.
Es pieņēmu apšaubāmu lēmumu regulāri pingēt Google serverus, lai nolasītu laiku. Tas radīja vajadzību pēc RTC, lai samazinātu novirzi, tas darbojas, taču jums labāk būtu izmantot reālā laika API.
halfSec = 0stunda = 0 minūte = 0 sekunde = 0
zema intensitāte = 0
augsta intensitāte = 9
local SSID = "Wifi"
local SSID_PASSWORD = "Parole"
funkcija laiks () -izveidojiet savienojumu ar internetu, lai iegūtu pašreizējo laiku un datumu
ja wifi.sta.getip (), tad vietējais conn = net.createConnection (net. TCP, 0) conn: connect (80, "google.com")
conn: on ("savienojums", function (conn, payload) conn: send ("HEAD/HTTP/1.1 / r / n".. "Host: time.is / r / n".. "Pieņemt: */ *\ r / n".. " Lietotāja aģents: Mozilla/4.0 (saderīgs; esp8266 Lua;) ".." / r / n / r / n ") beigas)
conn: on ("saņemt", funkcija (conn, payload) --print (payload) conn: close () local p = string.find (payload, "GMT") -atrodiet laika un datuma virkni lietderīgajā kravā no interneta, mainiet laika joslu, ja p ~ = nulle pēc tam-izvilkiet skaitļus, kas atbilst stundai, minūtei, sekundei, dienai, mēnesim stundai = tonumber (string.sub (lietderīgā slodze, p-9, p-8)) minute = tonumber (string.sub (payload, p- 6, p-5)) otrais = tonumber (string.sub (lietderīgā slodze, p-3, p-2)) addHour ()-grūti kodēts BST (Lielbritānijas vasaras laiks) dienasgaismas taupīšanas laiks (stunda, minūte, otrā) puse = (otrais%6)*2 -izdrukāt (halfSec) cits izdrukāt ("tīmekļa atjaunināšana neizdevās!") beigas -funkcija) -notikuma apstrādes "saņemšanas" beigas
conn: on ("atvienošana", funkcija (savienojums, lietderīgā slodze)
funkcija borTable (a, b,…) -pa daļām VAI tabulas kopā
ja arg [1], tad = b) beigas atgriezties z beigas
funkcija bxorTable (a, b,…) -pa daļām VAI tabulas kopā
ja arg [1], tad = b) beigas atgriezties z beigas
funkcija addSecond ()
otrais = otrais+1, ja otrais> = 60, tad otrais = 0 minūte = minūte+1, ja minūte> = 60, tad minūte = 0 addHour () beigas beigas
funkcija addHour ()
stunda = stunda+1, ja stunda> = 24, tad stunda = 0 beigas, ja stunda == 2 vai stunda == 16, tad max7219.setIntensity (lowIntensity) beidzas, ja stunda == 8 vai stunda == 18, tad max7219.setIntensity (highIntensity) beigu beigu funkcijas atjauninājums () 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, 0x003, 0x00, 0x00, 0x02, 0x01, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x03},, 0x00, 0x00, 0x01, 0x01, 0x03, 0x01, 0x03}, {0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03}, {0x00, 0x01, 0x01, 0x01, 0x01, 0x03, 0x01 }, {0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03}}; vietējā min = {{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}, {0x00x02, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x12, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x12, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x102 }, {0x02, 0x02, 0x02, 0x12, 0x12, 0x10, 0x12, 0x10}, {0x02, 0x02, 0x12, 0x12, 0x12, 0x10, 0x12, 0x10}, {0x02, 0x12, 0x12, 0x12, 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}}; vietējais 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, 0x00}, {0x04, 0x004, 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, 0x04, 0x04, 0x04, 0x08}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x08}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x04 }, {0x04, 0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x0x, 0x04, 0x0C, 0x08}, {0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08 0x, 0x0C, 0x0C, 0x0C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48C, 0x0} 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}}; -izdruka (stunda, minūte, sekunde)
-tabula sākas ar 0, tātad pie 1 kā pašlaik [0] = nulle)
max7219.write ({animate (borTable (sec [1+ (second/secGap))], min [1+ (minute/minGap)], hor [1+ (hour/horGap)]))})
beigas -funkcija
wifi.setmode (wifi. STATION)
wifi.sta.config (SSID, SSID_PASSWORD) wifi.sta.autoconnect (1)
-konfigurējiet max7219
max7219 = pieprasīt ("max7219") max7219.setup ({numberOfModules = 1, slaveSelectPin = 8, intensitāte = highIntensity})
-galvenā programma
checkOnline = tmr.create ()
tmr.alarm (0, 180000, 1, laiks)
tmr.alarm (1, 1000, 1, addSecond)
tmr.alarm (2, 500, 1, atjauninājums)
funkcija animēt (nekustīgi)
vietējie kadri = {{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, 0x00}}; halfSec = halfSec+1, ja halfSec> = 12, tad halfSec = 0 beigas -nospiedums (halfSec) atgriežas bxorTable (kadri [halfSec+1], joprojām) beigas
8. solis: korpuss
Tagad ir pienācis laiks parādīt savu neticamo meistarību un īstenot projektu.
Vai nu to, vai izvelciet Amazones iepakojumu no pārstrādes un izveidojiet pagaidu mājokli, kas joprojām tiek izmantots šodien.
Šīs pieejas izmantošanas priekšrocība bija tāda, ka katrs projekta slānis gandrīz pilnībā atbilda kartona biezumam, tāpēc sviestmaizi varēja sakraut un salīmēt kopā. Līdzīgā premium versijā varētu izmantot akrilu
9. darbība. Noslēguma piezīmes
Paldies, ka lasījāt, jo daudzi no jums zina, ka projekta dokumentēšana var būt tikpat sarežģīta kā tā izveide. ar mani runājot ir video fragmenti, kas galu galā var ieraudzīt dienasgaismu.
Gados starp šī projekta izveidi un tā uzrakstīšanu es gaidīju, ka redzēšu vairāk patvaļīgu LED displeju piemēru, izmantojot 3D drukāšanu, taču RGB joslu samazināšana galvenokārt ir novērsusi nepieciešamību pēc alternatīvas.
Es ceru, ka tas ir bijis informatīvs, un, lūdzu, uzdodiet jautājumus, jo es centīšos sniegt sīkāku informāciju par sadaļām, kuras pilnībā neapmierina.
Priekā
Ieteicams:
Pensijas pulkstenis / skaitīšana uz augšu / Dn pulkstenis: 4 soļi (ar attēliem)
Retirement Clock / Count Up / Dn Clock: man bija daži no šiem 8x8 LED punktmatricas displejiem atvilktnē un domāju, ko ar tiem iesākt. Iedvesmojoties no citiem norādījumiem, man radās ideja izveidot atpakaļskaitīšanas/atpakaļskaitīšanas displeju, lai skaitītu atpakaļ līdz nākamajam datumam/laikam un, ja mērķa laiks ir
Datorurķēšana uz Londonas metro jubilejas līnijas durvīm: 12 soļi (ar attēliem)
Datorurķēšana uz Londonas metro jubilejas līnijas durvju pogu: Londonas Transporta muzeja veikalā tiek pārdotas Jubilejas līnijas novecojušās durvju pogas (pieejamas gan kreisās, gan labās puses). Ja jūs domājat īstenot projektu, kuram nepieciešama poga un kāda indikatora gaisma, jūs būtu “
Karšu skeneris tirdzniecības karšu mašīnai: 13 soļi (ar attēliem)
Tirdzniecības karšu automāta karšu skeneris: Tirdzniecības karšu automāta karšu skeneris Izmaiņu žurnālu var atrast pēdējā solī. Priekšvēsture Kartes padeves ievadā es paskaidroju sava projekta galveno motivāciju. Bet īsi sakot, mēs ar saviem bērniem esam uzkrājuši lielu daudzumu tirdzniecības karšu
Karšu padevējs tirdzniecības karšu mašīnai: 10 soļi (ar attēliem)
Kartes padevējs tirdzniecības karšu mašīnai: karšu padevējs tirdzniecības karšu mašīnai Fons Kad es biju jauns, es savācu tonnas tirdzniecības karšu, bet dažus gadus aizraušanās ar vākšanu ir samazinājusies. Pa to laiku man ir bērni, un viņi arī lēnām, bet noteikti sāk iegūt
Tirdzniecības karšu automāta karšu šķirotājs (atjauninājums 2019-01-10): 12 soļi (ar attēliem)
Tirdzniecības karšu automāta karšu kārtotājs (atjauninājums 2019-01-10): Tirdzniecības karšu automāta karšu kārtotājs Izmaiņu žurnālu var atrast pēdējā solī. Priekšvēsture Es jau paskaidroju sava projekta motivāciju rakstā Karšu padevējs. Bet īsi sakot, mēs ar saviem bērniem esam uzkrājuši lielu daudzumu tirdzniecības karšu