Satura rādītājs:

Londonas pazemes karšu pulkstenis: 9 soļi (ar attēliem)
Londonas pazemes karšu pulkstenis: 9 soļi (ar attēliem)

Video: Londonas pazemes karšu pulkstenis: 9 soļi (ar attēliem)

Video: Londonas pazemes karšu pulkstenis: 9 soļi (ar attēliem)
Video: Burvīgs Pamestais 17. gadsimta pilis Francijā (Pilnībā savlaicīgi iesaldēts 26 gadus) 2024, Novembris
Anonim
Londonas pazemes karšu pulkstenis
Londonas pazemes karšu pulkstenis
Londonas pazemes karšu pulkstenis
Londonas pazemes karšu pulkstenis

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

Priekšējais slānis
Priekšējais slānis
Priekšējais slānis
Priekšējais slānis
Priekšējais slānis
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

Vadošā slāņa projektēšana
Vadošā slāņa projektēšana
Vadošā slāņa projektēšana
Vadošā slāņa projektēšana
Vadošā slāņa projektēšana
Vadošā slāņa projektēšana
Vadošā slāņa projektēšana
Vadošā 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

Vadošā slāņa veidošana
Vadošā slāņa veidošana
Vadošā slāņa veidošana
Vadošā slāņa veidošana
Vadošā slāņa veidošana
Vadošā 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

Gaismas diodes vadi
Gaismas diodes vadi
Gaismas diodes vadi
Gaismas diodes vadi
Gaismas diodes vadi
Gaismas diodes vadi

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

Elektronikas projektēšana
Elektronikas projektēšana
Elektronikas projektēšana
Elektronikas projektēšana
Elektronikas projektēšana
Elektronikas projektēšana
Elektronikas projektēšana
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

Elektronikas vadi
Elektronikas vadi
Elektronikas vadi
Elektronikas vadi
Elektronikas vadi
Elektronikas vadi
Elektronikas vadi
Elektronikas vadi

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

Programmēšana
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

Mājoklis
Mājoklis
Mājoklis
Mājoklis
Mājoklis
Mājoklis

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: