Orodha ya maudhui:

Saa ya Ramani ya Underground ya London: Hatua 9 (na Picha)
Saa ya Ramani ya Underground ya London: Hatua 9 (na Picha)

Video: Saa ya Ramani ya Underground ya London: Hatua 9 (na Picha)

Video: Saa ya Ramani ya Underground ya London: Hatua 9 (na Picha)
Video: MAIDS WAINGIA BILA VIATU UKUMBINI !! NA WANAVYOJUA KURINGA SASA! |GadsonAndSalome |MCKATOKISHA 2024, Novemba
Anonim
Ramani ya London chini ya ardhi Saa
Ramani ya London chini ya ardhi Saa
Ramani ya London chini ya ardhi Saa
Ramani ya London chini ya ardhi Saa

Mnamo mwaka wa 2014, nyuma ya mafunzo katika kituo cha ushauri cha uchapishaji cha 3D huko London na jaribio la rangi ya lithophanes kwa kutumia mashine yao ya Stratasys, ninatengeneza mwenyewe nitaenda sasa, rangi ya 3D ya chapa za bomba ndani ya ofisi zao. Nilikuwa nimeamua kutengeneza kitu kutoka kwake. Miaka 2 fupi baadaye mnamo 2016 nilikuwa na printa yangu ya 3D, na nikaanza kuifanya iwe saa.

Kama mtoto mimi ingawa saa za dijiti za Tokyo Flash zilikuwa vitu vikubwa zaidi, na nikaamua kuwa hiyo itakuwa hatua ya msukumo kwa muundo huo.

Na sasa imekuwa tu mapumziko madogo ya miaka 4 mpaka nimepata kuzunguka kuiandika!

Wakati maagizo halisi yatakuwa ngumu kuiga, na kupunguzwa kwa gharama katika utengenezaji wa PCB ya hobbyist katika miaka michache iliyopita inaweza kufanya njia yangu halisi ya uwekaji wa LED kupitwa na wakati. Natumai maoni yaliyoshirikiwa yanaweza kusababisha wengine kutengeneza saa za kushangaza kutoka vitu nyembamba!

Hatua ya 1: Tabaka la mbele

Tabaka la mbele
Tabaka la mbele
Tabaka la mbele
Tabaka la mbele
Tabaka la mbele
Tabaka la mbele

Kama ilivyotajwa kwenye utangulizi, hii ilikuwa rangi ya 3D, ninaamini mashine ya Stratasys ambayo ilitumia kitanda cha unga na cartridge ya wino iliyobadilishwa kwa binder na rangi.

Faili imepotea kwa historia, lakini safu hii inaweza kuwa chochote, picha au rangi moja ya lithophane itafanya maajabu.

Sehemu hii ilitengenezwa kwa 3DS max mnamo 2014, lakini leo kuna zana za mkondoni za kugeuza picha kuwa SLT kulingana na mwangaza

Hatua ya 2: Kubuni Safu ya Mwongozo

Kubuni Safu ya Mwongozo
Kubuni Safu ya Mwongozo
Kubuni Safu ya Mwongozo
Kubuni Safu ya Mwongozo
Kubuni Safu ya Mwongozo
Kubuni Safu ya Mwongozo
Kubuni Safu ya Mwongozo
Kubuni Safu ya Mwongozo

Hapa ndipo tunapoamua ugumu wa mradi na njia ya kusoma wakati. Picha zinaonyesha maoni 2 ambayo nilikuwa nikicheza nayo.

Hizi zilifanywa kwa skanning katika muundo na kuchora mistari kote kwa wino.

Hii sio saa inayosomeka sana, lakini nilipendelea wazo la ujazo wa mistari kwa siku nzima ili iwe lengo la kubuni.

Kuhesabu kwa njia mbadala ni njia inayofaa ya kupunguza hesabu ya LED, na ingeboresha usomaji ikiwa ni jamu yako, lakini hiyo ilidhoofisha wazo langu la 'mistari ya kujaza', kwa hivyo haikuwa chaguo kwa mradi huu

Ni kawaida kwenye saa za Tokyo Flash ili kupunguza kuhesabu kwa LED lakini kuwa na sehemu moja kuhesabu kwa 3 au 5 na kisha ujazo mwingine kwa kila wakati sehemu hiyo inajaza, nilitumia mbinu hii kwa dakika, kuzipunguza kutoka 60 hadi 20 pamoja na 2. I hakuwa na wasiwasi sana juu ya usahihi huu kwa sekunde.

Hatua ya 3: Kujenga Tabaka la Mwongozo

Kujenga Tabaka la Mwongozo
Kujenga Tabaka la Mwongozo
Kujenga Tabaka la Mwongozo
Kujenga Tabaka la Mwongozo
Kujenga Tabaka la Mwongozo
Kujenga Tabaka la Mwongozo

Safu hii ya mwongozo wa LED ina malengo mawili, inashikilia taa za LED mahali pake, na inazuia kumwagika kati yao

Ilichorwa kama safu kwenye Inkscape moja kwa moja juu ya skanning ambayo nilikuwa nikitumia muundo wa muundo. Unene wa 1mm uliongezwa kwenye blender kabla ya kutuma kwa printa yangu.

Hii ilikuwa moja wapo ya chapa ngumu sana ambayo ninapaswa kufanya kwenye Makibox A6 yangu ndogo, sehemu hiyo ilichapishwa kwa abs hivyo toni ya tope la asetoni ilitumika kuiweka kwenye jukwaa la ujenzi na kukunja kidogo. Kwa bahati nzuri sehemu hii haionekani kwenye bidhaa ya mwisho

Picha ya mwisho inaonyesha imeshikwa kwenye taa ili kuangalia nafasi.

Kwa kuona nyuma, kumwagika kati ya taa kando ya laini kunaweza kuwa bora kwa vielelezo, sio ngumu kusoma, hii inaweza kupatikana kwa kuongeza kiboreshaji kwa mwongozo kwenye pande fupi za kila nuru

Hatua ya 4: Wiring LEDs

Wiring LEDs
Wiring LEDs
Wiring LEDs
Wiring LEDs
Wiring LEDs
Wiring LEDs

Picha ya ngumi inaonyesha uchapishaji wa mtihani nilioufanya kwa kuangalia ukubwa wa shimo, nilikuwa nikilenga kwa LED kutoshea vizuri kwenye lace na nguvu kidogo, sura sahihi kisha ikawekwa kwa mkono wakati wa kuweka safu ya mwongozo.

Kwa sababu ya uvumilivu mdogo wa printa yangu ya 3D, zingine zililegea na zinahitaji dab ya superglue kukaa mahali wakati zingine zilikuwa ngumu sana, lakini zilitiwa moyo kwa kushinikiza kwenye LED wakati wa kuuza, hii kweli ilikuwa inafaa zaidi kuliko holed ya ukubwa sahihi, ambayo ilikuwa na upangaji wa kujiondoa mara moja kwa waya.

Ili kupunguza hesabu ya waya, LED zilikuwa zimeuzwa kwa tumbo la 7 kwa 8, ikimaanisha kuwa LED zote 55 zinaweza kudhibitiwa na pini 13 tu, nilikuwa na ramani iliyochorwa mkono ya kila moja ya unganisho haya ambayo kwa bahati mbaya yamepotea.

Waya wa enamel ilitumika ili sehemu ziweze kufunuliwa mahali kwa kupokanzwa sehemu na chuma na kubandika kabla ya kuunganisha.

Utaratibu huu ulikuwa mwingi sana, ningependekeza sana kubuni PCB

Hatua ya 5: Kubuni Elektroniki

Kubuni Elektroniki
Kubuni Elektroniki
Kubuni Elektroniki
Kubuni Elektroniki
Kubuni Elektroniki
Kubuni Elektroniki
Kubuni Elektroniki
Kubuni Elektroniki

Mpango wangu wa awali ilikuwa kutumia microcontroller ya Arduino na RTC, lakini nikachagua ESP8266 kwenye bodi ya Node MCU D1 kwani iliruhusu akiba ya mchana moja kwa moja na uwezo wa kudhibiti WIFI.

Ili kupunguza hesabu ya pini zaidi, nilikuwa na idadi kamili ya LED kuweza kutumia MAX7219 (ambayo inaweza kushughulikia hadi LED za 64).

IC hii hutumiwa kwa kawaida kuendesha maonyesho ya Sehemu 7 za LED, lakini ilikuwa na kesi inayofanana sana ya kutumia yangu, ikiwasha idadi ya LED isiyo na mwangaza mdogo, hata ina mwangaza unaoweza kudhibitiwa.

Niliamua kutumia protoboard kwa wiring, lakini tai ilisaidia kuweka sehemu na kuelewa wiring

Nimeambatanisha faili zangu za bodi, lakini hii ilikuwa mara yangu ya kwanza kutumia tai (na toleo lililopitwa na wakati sasa) kwa hivyo zinarejelewa tu

Hatua ya 6: Wiring umeme

Wiring umeme
Wiring umeme
Wiring umeme
Wiring umeme
Wiring umeme
Wiring umeme
Wiring umeme
Wiring umeme

Hii ilikuwa hatua rahisi ya kurudia, kufuatia mpango wa Tai, kwa kutumia vichwa vya habari kwa ESP na tumbo la LED lilisaidia sana katika kusanyiko.

Bandika 1 kwenye vichwa vya LED vya Anode & Cathode viliwekwa alama na mkali wa fedha, zinaweza kutofautishwa kati ya 7 na nyingine 8.

Hatua ya 7: Programu

Kupanga programu
Kupanga programu

Kwa kuwa onyesho letu sio tumbo la jadi, ilibidi nitafute njia ya kutafakari ni vitufe vipi vya kuwasha ambavyo vilituma kwa MAX IC katika HEX. Kwa bahati nzuri najua bora zaidi ya kupata shida na nikamfanya 'Hex mchawi' aniongoze ingawa muundo niliotaka kuonyeshwa, visanduku vya kuangalia vilivyowekwa kwa mkono vyote.

Hii ilikuja na tathmini kwamba hex ya saa yangu, dakika na sekunde inaweza kuunganishwa kwa kutumia kidogo au A kutoa amri ya mwisho ya hex kutuma kwa max7219, pamoja na uhuishaji kidogo niliyoongeza kwa sekunde ili niweze kuhakikisha bodi hawakuwa; t waliohifadhiwa.

Kwa hivyo, karibu mwisho. na wakati wa uamuzi mwingine ambao haujazeeka vizuri.

Nambari ya ESP iko katika LUA, Leo ningependekeza kutumia IDE ya arduino kwa nyaraka bora na maktaba thabiti ya kifurushi, wakati jamii ya ESP ilikuwa bado ikikomaa na nilichagua LUA kama lugha ya mradi huu.

Nilifanya uamuzi wa kutiliwa shaka kupigia seva za google mara kwa mara kusoma wakati. Hii ilizunguka ikihitaji RTC kupunguza uporaji, hii inafanya kazi, lakini wewe; d kuwa bora kutumia API ya wakati wa kweli.

nusuSec = saa 0 = dakika 0 = sekunde 0 = 0

Kiwango cha chini = 0

Kiwango cha juu = 9

SSID ya ndani = "Wifi"

SSID_PASSWORD ya ndani = "Nenosiri"

wakati wa kazi () - unganisha kwenye mtandao kupata wakati na tarehe ya sasa

ikiwa wifi.sta.getip () basi mitaa conn = net.createConnection (net.

conn: on ("unganisho", kazi (conn, payload) conn: send ("HEAD / HTTP / 1.1 / r / n".. "Host: time.is / r / n".. "Kubali: * / * / r / n".. " Wakala wa Mtumiaji: Mozilla / 4.0 (sambamba; esp8266 Lua;) ".." / r / n / r / n ") mwisho)

conn: on ("pokea", kazi (conn, payload) --print (payload) conn: close () local p = string.find (payload, "GMT") - pata muda na tarehe ya kamba katika malipo kutoka kwa mtandao, badilisha eneo la saa ikiwa p ~ = nil basi - nambari za dondoo zinazohusika kwa saa, dakika, pili, siku, saa ya mwezi = toni (kamba.sub (malipo ya malipo, p-9, p-8)) dakika = toni (kamba.sub (malipo, p- 6, p-5)) ya pili = toni (kamba.sub (malipo, p-3, p-2)) ongezaHour () - BST iliyowekwa kificho (wakati wa majira ya joto wa Briteni) taa za mchana zinahifadhi chapisho (saa, dakika, pili) nusuSec = (pili% 6) * 2 -print (halfSec) chapa nyingine ("sasisho la wavuti limeshindwa!") mwisho mwisho - utendaji) - mwisho wa "pokea" mshughulikiaji wa hafla

conn: on ("kukatwa", kazi (conn, payload) conn = nil payload = nil mwisho) mwisho wa kuchapisha ("hakuna wifi bado") mwisho

kazi borTable (a, b,…) - sanjari AU meza pamoja

ikiwa arg [1] basi b = borTable (b, unpack (arg)) maliza mitaa z = {} kwa i, v katika ipairs (a) fanya meza.insert (z, bit.bor (v, b )) mwisho kurudi z mwisho

kazi bxorTable (a, b,…) - sivyo au meza pamoja

ikiwa arg [1] basi b = bxorTable (b, unpack (arg)) maliza mitaa z = {} kwa i, v katika ipairs (a) fanya meza. ingiza (z, bit.bxor (v, b )) mwisho kurudi z mwisho

kazi addSecond ()

pili = pili + 1 ikiwa ya pili> = 60 kisha pili = dakika 0 = dakika + 1 ikiwa dakika> = 60 kisha dakika = 0 ongezaHora () mwisho mwisho

kazi nyongeza ()

saa = saa + 1 ikiwa saa> = 24 basi saa = 0 mwisho ikiwa saa == 2 au saa == 16 kisha max7219.setIntensity (lowIntensity) mwisho ikiwa saa == 8 au saa == 18 kisha max7219.setIntensity (highIntensity) sasisho la mwisho wa kazi () secGap = 6 minGap = 3 horGap ya ndani = 1 sec 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, 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, 0x01, 0x01, 0, 0, 0 }, {0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03}}; dakika ndogo = {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, 0, 0, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x 0, 0, 0, 0, 0, 0, 0, 0x02, 0x02, 0x02, 0x02, 0x00, 0x12, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x12, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x02 }, {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 ya ndani = {{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}, {0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x0, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x08}, {0x04, 0x04, 0x0, 0x0, 0, 0 }, {0x04, 0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x0, 0x0, 0x0, 0, 0, 0x0C, 0x08}, {0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08, 0x0, 0, 0,, 0x0C, 0x0C, 0x0C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x4, 0x4, 0x4, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x4C, 0x4C, 0x4C 0x4 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}}; -print (saa, dakika, pili)

- meza huanza saa 0, kwa hivyo saa 1 kama sekunde ya sasa [0] = nil)

max7219. andika ({animate (borTable (sec [1+ (sekunde / secGap)], dakika [1+ (dakika / dakikaGap)], hor [1+ (saa / horGap)]))}})

mwisho - utendaji

wifi.setmode (wifi. STATION)

wifi.sta.config (SSID, SSID_PASSWORD) wifi.sta.autoconnect (1)

- sanidi max7219

max7219 = zinahitaji ("max7219") max7219.setup ({numberOfModules = 1, slaveSelectPin = 8, intens = highIntensity})

- Mpango Mkuu

kuangaliaOnline = tmr.create ()

tmr.alarm (0, 180000, 1, wakati)

tmr. simu (1, 1000, 1, ongezaSecond)

tmr.alarm (2, 500, 1, sasisha)

kazi hai (bado)

fremu za mitaa = {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}, {000, 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 ikiwa halfSec> = 12 kisha halfSec = 0 end --print (halfSec) kurudi bxorTable (fremu [halfSec + 1], bado) mwisho

Hatua ya 8: Nyumba

Nyumba
Nyumba
Nyumba
Nyumba
Nyumba
Nyumba

Sasa ni wakati wako kuonyesha ufundi wako mzuri na uweke mradi huo.

Ama hiyo au chukua kifurushi cha amazon kutoka kwa kuchakata na ufanye nyumba ya muda ambayo inatumika leo.

Faida ya kutumia njia hii ilikuwa kwamba kila safu ya mradi karibu ililingana kabisa na unene wa kadibodi, kwa hivyo sandwich inaweza kubanwa na kuunganishwa pamoja. Toleo sawa la malipo linaweza kutumia akriliki

Hatua ya 9: Maneno ya Kufunga

Asante kwa kusoma, Kama wengi wenu mnajua kuandikia mradi inaweza kuwa ngumu kama kuufanya. kuna mabaki ya video na mimi nikizungumza ambayo mwishowe inaweza kuona mwangaza wa siku.

Katika miaka kati ya kutengeneza mradi huu na kuiandika nilitarajia kuona mifano zaidi ya maonyesho ya LED holela kwa kutumia uchapishaji wa 3D, lakini kupunguzwa kwa vipande vya RGB kumeondoa hitaji la njia mbadala.

Natumahi hii imekuwa ya kuelimisha, na tafadhali uliza maswali kwani nitajaribu kutoa maelezo zaidi juu ya sehemu ambazo hazitoshelezi kabisa.

Shangwe

Ilipendekeza: