Talaan ng mga Nilalaman:
- Hakbang 1: Front Layer
- Hakbang 2: Pagdidisenyo ng Patnubay sa Patnubay
- Hakbang 3: Pagbuo ng Patnubay sa Patnubay
- Hakbang 4: Mga kable ng LED
- Hakbang 5: Pagdidisenyo ng Elektronika
- Hakbang 6: Pag-kable ng Elektronika
- Hakbang 7: Programming
- Hakbang 8: Ang Pabahay
- Hakbang 9: Mga Pangwakas na Pangwakas
Video: London Underground Map Clock: 9 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Noong 2014, sa likuran ng internship sa isang 3D na pagkonsulta sa pag-print sa London at isang eksperimento sa mga lithophanes na kulay gamit ang kanilang Stratasys machine, dinisenyo ko ang aking sariling paglayo na kasalukuyan, isang kulay na 3D na naka-print na mga linya ng tubo na lokal sa kanilang mga tanggapan. Determinado akong gumawa ng isang bagay mula rito. Isang maikling 2 taon na ang lumipas sa 2016 nagkaroon ako ng aking sariling 3D printer, at itinakdang gumana na ginagawa itong isang orasan.
Bilang isang bata kahit na ang digital na mga relo ng Tokyo Flash ay ang pinakadakilang bagay na kailanman, at naipakita na ang magiging inspirasyon para sa disenyo.
At ngayon ito ay isang menor de edad na 4 na pahinga lamang hanggang sa maikot ko ang pagsulat nito!
Habang ang eksaktong mga tagubilin ay magiging mahirap na kopyahin, at ang pagbawas ng gastos sa paggawa ng libangan ng PCB sa nakaraang ilang taon ay maaaring gawin ang aking eksaktong pamamaraan para sa LED na pagkakalagay. Inaasahan kong ang mga ibinahaging ideya ay maaaring humantong sa iba na gumawa ng mga kakaibang orasan mula sa manipis na mga bagay!
Hakbang 1: Front Layer
Tulad ng nabanggit sa intro, ito ay isang kulay na 3D print, naniniwala ako na isang Stratasys machine na gumamit ng isang bed bed at isang binagong ink cartridge para sa binder at pigment.
Ang file ay nawala sa kasaysayan, ngunit ang layer na ito ay maaaring maging anupaman, isang larawan o isang solong kulay na lithophane na gagana ang mga kababalaghan.
Ang bahaging ito ay ginawa sa 3DS max noong 2014, ngunit ngayon mayroong mga online na tool upang gawing isang SLT batay sa ningning ang isang imahe
Hakbang 2: Pagdidisenyo ng Patnubay sa Patnubay
Dito namin napagpasyahan ang pagiging kumplikado ng proyekto at ang pamamaraan para sa pagbabasa ng oras. Ipinapakita ng mga imahe ang 2 ideya na pinaglaruan ko.
Ginawa ito sa pamamagitan ng pag-scan sa disenyo at pagguhit ng mga linya sa ito sa inkscape.
Hindi ito masyadong nababasa ng orasan, ngunit ginusto ko ang ideya ng mga linya na pinupuno sa buong araw upang ito ang maging layunin ng disenyo.
Ang pagbibilang ng binary ay isang mabubuhay na pamamaraan para sa pagbawas ng bilang ng LED, at mapapabuti nito ang kakayahang mabasa kung binary ang iyong jam, ngunit pinahina ang aking ideya ng 'pagpuno ng mga linya', kaya hindi isang pagpipilian para sa proyektong ito
Karaniwan sa Tokyo Flash Watches na i-minimize ang bilang ng LED ngunit ang pagkakaroon ng isang seksyon na pagbibilang sa 3 o 5's at pagkatapos ay isa pang pagpuno para sa bawat oras na punan ang seksyon na iyon, ginamit ko ang diskarteng ito sa loob ng ilang minuto, upang mabawasan ang mga ito mula 60 hanggang 20 plus 2. I ay hindi masyadong nag-aalala tungkol sa katumpakan na ito para sa segundo.
Hakbang 3: Pagbuo ng Patnubay sa Patnubay
Ang layer ng gabay na ito para sa LED ay may 2 mga layunin, hinahawakan nito ang mga LED, at pinipigilan nito ang pag-agos sa pagitan nila
Ito ay iginuhit bilang isang layer sa Inkscape nang direkta sa tuktok ng pag-scan na ginagamit ko para sa layout ng disenyo. Ang kapal ng 1mm ay idinagdag sa blender bago ipadala sa aking printer.
Ito ay isa sa pinakamahirap na mga kopya na dapat kong gawin sa aking maliit na Makibox A6, ang bahagi ay naka-print sa abs kaya isang toneladang slurry ng acetone ang ginamit upang mapanatili itong nakakabit sa build platform na may kaunting warping. Sa kasamaang palad ang bahaging ito ay hindi nakikita sa pangwakas na produkto
Ipinapakita ng huling imahe na gaganapin ito sa isang lampara upang suriin kung ang spacing.
Sa pag-iisip, ang pagbagsak sa pagitan ng mga ilaw kasama ang isang linya ay maaaring talagang mas gusto para sa mga visual, hindi mahirap basahin, maaaring makamit ito sa pamamagitan ng pagdaragdag ng isang chamfer sa gabay sa mga maiikling gilid ng bawat ilaw
Hakbang 4: Mga kable ng LED
Ipinapakita ng imahe ng kamao ang test print na ginawa ko para suriin ang sukat ng butas, hangarin ko na ang LED ay magkasya nang maayos sa puntas na may kaunting puwersa, ang tamang hugis ay inilagay sa pamamagitan ng kamay kapag inilalagay ang patnubay ng patnubay.
Dahil sa mababang pagpapaubaya ng aking 3D printer, ang ilan ay maluwag at kinakailangan ng isang dab ng superglue upang manatili sa lugar habang ang iba ay masyadong masikip, ngunit hinihikayat sa lugar sa pamamagitan ng pagpindot sa LED habang hinihinang, ito ay talagang mas mahusay kaysa sa ang tamang sukat na holed, na mayroong isang upa upang mabunot kapag na-wire na.
Upang mabawasan ang bilang ng kawad ang mga LED ay na-solder sa isang matrix na 7 ng 8, nangangahulugang lahat ng 55 LEDs ay maaaring kontrolin ng 13 pin lamang, mayroon akong isang iginuhit na mapa ng bawat isa sa mga koneksyon na ito na sa kasamaang palad ay nawala.
Ginamit ang enamel wire kaya't ang mga seksyon ay maaaring mailantad sa lugar sa pamamagitan ng pag-init ng isang seksyon na may bakal at tinning bago gawin ang koneksyon.
Napakatagal ng prosesong ito, lubos kong inirerekumenda ang pagdidisenyo ng isang PCB
Hakbang 5: Pagdidisenyo ng Elektronika
Ang aking paunang plano ay gumamit ng isang Arduino microcontroller na may RTC, ngunit nagpasyang sumali sa isang ESP8266 sa Node MCU D1 board dahil pinapayagan para sa awtomatikong pagtipid ng daylight at ang potensyal para sa kontrol sa WIFI.
Upang mabawasan pa ang bilang ng pin, nagkaroon ako ng perpektong bilang ng mga LED upang magamit ang isang MAX7219 (na maaaring hawakan hanggang sa 64 LEDs).
Ang IC na ito ay karaniwang ginagamit upang himukin ang mga pagpapakita ng LED 7 Segment, ngunit mayroon itong katulad na kaso ng paggamit sa minahan, pag-iilaw ng isang di-makatwirang bilang ng mga LED na may kaunting pagkutitap, mayroon pa itong kinokontrol na ningning.
Nagpasya akong gumamit ng protoboard para sa mga kable, ngunit ang agila ay kapaki-pakinabang para sa pagkakalagay ng bahagi at pag-unawa sa mga kable
Inilakip ko ang aking mga file ng board, ngunit ito ang aking unang pagkakataon sa paggamit ng agila (at isang wala nang napapanahong bersyon sa ngayon) kaya para lamang sila sa sanggunian
Hakbang 6: Pag-kable ng Elektronika
Ito ay isang paulit-ulit na simpleng hakbang, pagsunod sa eskematiko ng Eagle, na gumagamit ng mga header para sa ESP at ang LED matrix ay lubos na nakatulong sa pagpupulong.
Ang pin 1 sa mga header ng Anode & Cathode LED ay minarkahan ng isang silver sharpie, maaari silang makilala sa pagitan ng 7 sa iba pang 8.
Hakbang 7: Programming
Tulad ng aming pagpapakita ay hindi isang tradisyonal na matrix, kinailangan kong makahanap ng isang pamamaraan para sa paglalagay ng isip kung aling mga piraso ang i-on kung saan ipinadala nito sa MAX IC sa HEX. Sa kabutihang palad alam ko ang sapat na excel lamang upang makakuha ng problema at gumawa ng isang 'Hex wizard' upang gabayan ako kahit na ang pattern na nais kong ipakita, ang kamay ay naglagay ng mga kahon ng tsek ng lahat.
Ito ay dumating sa muling pagsusuri na ang hex para sa aking oras, minuto at segundo ay maaaring pagsamahin gamit ang isang bitwise O upang makagawa ng pangwakas na utos na hex upang ipadala sa max7219, kasama ang isang maliit na animation na idinagdag ko sa mga segundo upang matiyak kong ang board ay hindi; hindi nagyelo.
Kaya, halos sa isang dulo. at oras para sa isa pang desisyon na hindi masyadong nag-iipon.
Ang code para sa ESP ay nasa LUA, Ngayon ay inirerekumenda ko ang paggamit ng arduino IDE para sa mas mahusay na dokumentasyon at matatag na package library, sa oras na ang komunidad ng ESP ay huminahon pa at pinili ko ang LUA bilang wika para sa proyektong ito.
Nagawa ko ang kaduda-dudang desisyon na regular na i-ping ang mga server ng google upang basahin ang oras. Napunta ito sa paligid ng nangangailangan ng isang RTC upang i-minimize ang drift, gumagana ito, ngunit ikaw ay mas mahusay na gumamit ng isang tunay na time API.
halfSec = 0hour = 0 minuto = 0 segundo = 0
mababangIntensity = 0
mataas na Intensity = 9
lokal na SSID = "Wifi"
local SSID_PASSWORD = "Password"
oras ng pag-andar () - kumonekta sa internet upang makuha ang kasalukuyang oras at petsa
kung wifi.sta.getip () pagkatapos ay local conn = net.createConnection (net. TCP, 0) conn: ikonekta (80, "google.com")
conn: sa ("koneksyon", function (conn, payload) conn: send ("HEAD / HTTP / 1.1 / r / n".. "Host: time.is / r / n".. "Tanggapin: * / * / r / n".. " User-Agent: Mozilla / 4.0 (katugma; esp8266 Lua;) ".." / r / n / r / n ") pagtatapos)
conn: sa ("makatanggap", function (conn, payload) --print (payload) conn: close () local p = string.find (payload, "GMT") - hanapin ang time at date string sa payload mula sa internet, baguhin para sa timezone kung p ~ = nil pagkatapos - kunin ang mga numero na tumutukoy sa oras, minuto, segundo, araw, buwan oras = tonumber (string.sub (payload, p-9, p-8)) minuto = tonumber (string.sub (payload, p- 6, p-5)) segundo = tonumber (string.sub (payload, p-3, p-2)) addHour () --hard coded BST (British summer time) daylight save print (oras, minuto, segundo) halfSec = (pangalawang% 6) * 2 --print (halfSec) iba pa ang naka-print ("Nabigo ang pag-update sa web!") pagtatapos ng end --function) - katapusan ng sa "makatanggap" handler ng kaganapan
conn: sa ("pagdiskonekta", pagpapaandar (conn, payload) conn = nil payload = nil end) pagtatapos ng pag-print ("wala pang wifi") pagtatapos
pag-andar borTable (a, b,…) --sa kanan OR talahanayan na magkasama
kung arg [1] pagkatapos ay b = borTable (b, i-unpack (arg)) tapusin ang lokal na z = {} para sa i, v sa ipairs (a) gawin table.insert (z, bit.bor (v, b )) end return z pagtatapos
pagpapaandar bxorTable (a, b, …) --sa kaliwa O magkasamang talahanayan
kung ang arg [1] pagkatapos ay b = bxorTable (b, i-unpack (arg)) tapusin ang lokal na z = {} para sa i, v sa ipairs (a) gawin table.insert (z, bit.bxor (v, b )) end return z pagtatapos
pagpapaandar addSecond ()
segundo = segundo + 1 kung segundo> = 60 pagkatapos pangalawa = 0 minuto = minuto + 1 kung minuto> = 60 pagkatapos minuto = 0 addHour () end end end
pagpapaandar addHour ()
oras = oras + 1 kung oras> = 24 pagkatapos oras = 0 pagtatapos kung oras == 2 o oras == 16 pagkatapos max7219.setIntensity (lowIntensity) magtatapos kung oras == 8 o oras == 18 pagkatapos max7219.setIntensity (highIntensity) end end function function () 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, 0x03}, {0x00, 0x00, 0x0, }xx3,, 0x00, 0x00, 0x02, 0x01, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x03}, {0x, 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, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0, 0x01, 0x01, 0x01, 0x0 }, {0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03}}; lokal na 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}, {0x00, 0x0, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x 0, 0x0, 0x02, 0x02, 0x02, 0x02, 0x00, 0x12, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x12, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x12, 0x12, 0x 0, 0x12, 0x12, 0x12, 0x12, 0x12, 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}}; lokal na 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}, {0x00, 0x, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x 04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x08}, {0x04, 0x04, 0x04, 0x0, 0x0, 0x0, 0x0 }, {0x04, 0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x0x, 0x0x, 0x0x, 0x04, 0x0x, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x08}, {0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08, 00, 0x0C, 0x0C, 0x0C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x4, 0x4, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}}; --print (oras, minuto, segundo)
- nagsisimula ang talahanayan sa 0, kaya't sa 1 bilang kasalukuyang sec [0] = nil)
max7219.write ({animate (borTable (sec [1+ (segundo / secGap)], min [1+ (minuto / minGap)], hor [1+ (hour / horGap)]))})
pagtatapos --function
wifi.setmode (wifi. STATION)
wifi.sta.config (SSID, SSID_PASSWORD) wifi.sta.autoconnect (1)
- configure ang max7219
max7219 = nangangailangan ("max7219") max7219.setup ({numberOfModules = 1, slaveSelectPin = 8, intensity = highIntensity})
- Pangunahing Program
checkOnline = tmr.create ()
tmr.alarm (0, 180000, 1, oras)
tmr.alarm (1, 1000, 1, addSecond)
tmr.alarm (2, 500, 1, update)
gumana buhayin (pa rin)
mga lokal na frame = {{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 kung halfSec> = 12 pagkatapos halfSec = 0 end --print (halfSec) bumalik bxorTable (mga frame [halfSec + 1], pa rin) natapos
Hakbang 8: Ang Pabahay
Ngayon na ang iyong oras upang ipakita ang iyong kamangha-manghang pagka-arte at ilagay ang proyekto.
Alinman o kumuha ng isang amazon package mula sa pag-recycle at gumawa ng isang pansamantalang pabahay na ginagamit pa rin hanggang ngayon.
Ang pakinabang ng paggamit ng diskarte na ito ay ang bawat layer ng proyekto na halos perpektong na tumutugma sa kapal ng karton, kaya ang isang sandwich ay maaaring isinalansan at naidikit. Ang isang katulad na premium na bersyon ay maaaring gumamit ng acrylic
Hakbang 9: Mga Pangwakas na Pangwakas
Maraming salamat sa pagbabasa, Tulad ng marami sa inyong alam ang pagdodokumento ng isang proyekto ay maaaring maging mahirap tulad ng paggawa nito. may mga scrap ng video na nakikipag-usap sa akin na sa kalaunan ay makikita ang ilaw ng araw.
Sa mga taon sa pagitan ng paggawa ng proyektong ito at pagsulat nito inaasahan kong makakita ng mas maraming mga halimbawa ng di-makatwirang LED display gamit ang 3D na pag-print, ngunit ang pagbawas sa mga piraso ng RGB ay halos tinanggal ang pangangailangan para sa isang kahalili.
Inaasahan kong naging kaalaman ito, at mangyaring magtanong ng mga katanungan habang susubukan kong magbigay ng mas maraming detalye sa mga seksyon na hindi ganap na nasiyahan.
Cheers
Inirerekumendang:
Memory Puzzle Clock Clock: 3 Hakbang (na may Mga Larawan)
Memory Puzzle Alarm Clock: Ito ay isang Alarm Puzzle Clock na nangangahulugang mayroong isang maliit na laro ng memorya na kailangan mong malutas upang ihinto ang pag-ring ng alarma! Bilang isang buod, ang orasan na ito ay para sa kung sino ang nakakainis sa umaga. Mayroon itong 3 LEDs na kapag pinindot mo ang alinman sa mga pindutan, ang alarma ay magiging
Retire Clock / Count Up / Dn Clock: 4 Hakbang (na may Mga Larawan)
Retire Clock / Count Up / Dn Clock: Mayroon akong ilan sa mga 8x8 LED dot-matrix na ito na nagpapakita sa drawer at iniisip kung ano ang gagawin sa kanila. May inspirasyon ng iba pang mga itinuturo, nakuha ko ang ideya na bumuo ng isang count down / up na display upang mabilang sa isang hinaharap na petsa / oras at kung ang target na oras p
Pag-hack ng isang London Underground Jubilee Line Door Button: 12 Hakbang (na may Mga Larawan)
Pag-hack ng isang London Underground Jubilee Line Door Button: Ang London Transport Museum shop ay nagbebenta ng mga na-decommission na pindutan ng pinto mula sa Jubilee Line (parehong magagamit ang kaliwa at kanan). Kung iniisip mong isakatuparan ang isang proyekto na nangangailangan ng isang pindutan at isang ilaw na tagapagpahiwatig ng ilang uri, ikaw ay '
Paano Mag-disassemble ng isang Computer Na May Madaling Hakbang at Mga Larawan: 13 Hakbang (na may Mga Larawan)
Paano Mag-disassemble ng isang Computer Na May Madaling Mga Hakbang at Larawan: Ito ay isang tagubilin tungkol sa kung paano i-disassemble ang isang PC. Karamihan sa mga pangunahing sangkap ay modular at madaling matanggal. Gayunpaman mahalaga na maging maayos ka tungkol dito. Makakatulong ito upang maiwasan ka sa pagkawala ng mga bahagi, at sa paggawa din ng muling pagsasama
Bumuo ng isang Tunay na Bell-striking Clock para sa Iyong PC at isang Fire Extinguisher-Striking Clock .: 3 Mga Hakbang (na may Mga Larawan)
Bumuo ng isang Real Bell-striking Clock para sa Iyong PC at isang Fire Extinguisher-Striking Clock .: Isang tanso na kampanilya, isang maliit na relay ng maraming mga bagay at isang tunay na kampana ay maaaring hampasin ang oras sa iyong desktop. Kahit na ang proyektong ito ay tumatakbo sa Windows at Mac Ang OS X din, nag-idecide ako upang mai-install ang Ubuntu Linux sa isang PC na nakita ko sa basurahan at ginagawa iyon: Hindi ko kailanman