สารบัญ:
- ขั้นตอนที่ 1: Front Layer
- ขั้นตอนที่ 2: การออกแบบ Guide Layer
- ขั้นตอนที่ 3: สร้าง Guide Layer
- ขั้นตอนที่ 4: การเดินสายไฟ LED
- ขั้นตอนที่ 5: การออกแบบอุปกรณ์อิเล็กทรอนิกส์
- ขั้นตอนที่ 6: การเดินสายไฟอุปกรณ์อิเล็กทรอนิกส์
- ขั้นตอนที่ 7: การเขียนโปรแกรม
- ขั้นตอนที่ 8: ที่อยู่อาศัย
- ขั้นตอนที่ 9: ปิดข้อสังเกต
วีดีโอ: นาฬิกาแผนที่ใต้ดินในลอนดอน: 9 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
ในปี 2014 หลังจากการฝึกงานที่บริษัทที่ปรึกษาด้านการพิมพ์ 3 มิติในลอนดอน และการทดลองกับหินลิโธเฟนสีโดยใช้เครื่อง Stratasys ของพวกเขา ฉันออกแบบของขวัญที่กำลังจะไปอยู่ของฉันเอง ซึ่งเป็นการพิมพ์ 3 มิติสีของสายยางในพื้นที่สำนักงานของพวกเขา ฉันตั้งใจที่จะทำอะไรบางอย่างจากมัน 2 ปีต่อมาในปี 2016 สั้น ๆ ฉันมีเครื่องพิมพ์ 3 มิติของตัวเองและพร้อมที่จะทำเป็นนาฬิกา
ตอนเด็กๆ ฉันคิดว่านาฬิกาดิจิตอล Tokyo Flash เป็นสิ่งที่ยิ่งใหญ่ที่สุดตลอดกาล และคิดว่านั่นจะเป็นแรงบันดาลใจในการออกแบบ
และตอนนี้ก็เป็นแค่ช่วงพักเล็ก ๆ น้อย ๆ 4 ปีจนกระทั่งฉันได้เขียนมันขึ้นมา!
ในขณะที่คำแนะนำที่แน่นอนจะทำซ้ำได้ยาก และการลดต้นทุนในการผลิต PCB สำหรับงานอดิเรกในช่วงสองสามปีที่ผ่านมาอาจทำให้วิธีการที่แน่นอนของฉันสำหรับการจัดวาง LED ล้าสมัย ฉันหวังว่าความคิดที่แบ่งปันกันอาจทำให้คนอื่น ๆ ทำนาฬิกาแปลก ๆ จากวัตถุบาง ๆ ได้!
ขั้นตอนที่ 1: Front Layer
ตามที่กล่าวไว้ในบทนำ นี่คือการพิมพ์ 3 มิติแบบสี ฉันเชื่อว่าเครื่อง Stratasys ซึ่งใช้แป้งฝุ่นและตลับหมึกดัดแปลงสำหรับสารยึดเกาะและเม็ดสี
ไฟล์นี้สูญหายไปจากประวัติศาสตร์ แต่เลเยอร์นี้อาจเป็นอะไรก็ได้ รูปภาพหรือหินลิโธเฟนสีเดียวก็ใช้งานได้อย่างอัศจรรย์
ส่วนนี้สร้างขึ้นใน 3DS max ในปี 2014 แต่วันนี้มีเครื่องมือออนไลน์ในการเปลี่ยนรูปภาพเป็น SLT ตามความสว่าง
ขั้นตอนที่ 2: การออกแบบ Guide Layer
นี่คือที่ที่เราตัดสินใจความซับซ้อนของโครงการและวิธีการอ่านเวลา รูปภาพแสดง 2 แนวคิดที่ฉันกำลังเล่นอยู่
สิ่งเหล่านี้สร้างขึ้นโดยการสแกนในการออกแบบและวาดเส้นข้ามใน Inkscape
นาฬิกาเรือนนี้ไม่ใช่นาฬิกาที่อ่านง่าย แต่ฉันชอบความคิดที่จะเติมเส้นตลอดทั้งวันเพื่อให้กลายเป็นเป้าหมายของการออกแบบ
การนับเลขฐานสองเป็นวิธีที่ใช้ได้ในการลดจำนวน LED และมันจะปรับปรุงความสามารถในการอ่านหากไบนารีเป็นแยมของคุณ แต่นั่นทำลายแนวคิด 'การเติมบรรทัด' ของฉัน ดังนั้นจึงไม่ใช่ตัวเลือกสำหรับโครงการนี้
เป็นเรื่องปกติในนาฬิกา Tokyo Flash ที่จะลดจำนวน LED ให้เหลือน้อยที่สุด แต่มีส่วนหนึ่งที่นับใน 3 หรือ 5 แล้วเติมอีกส่วนสำหรับแต่ละส่วนที่เติม ฉันใช้เทคนิคนี้สำหรับนาทีเพื่อลดพวกเขาจาก 60 เป็น 20 บวก 2 ฉัน ไม่ได้กังวลเกี่ยวกับความแม่นยำในวินาทีนี้
ขั้นตอนที่ 3: สร้าง Guide Layer
เลเยอร์ไกด์นี้สำหรับ LED มีวัตถุประสงค์ 2 ประการ คือ ยึด LED ไว้กับที่ และป้องกันการรั่วไหลระหว่างกัน
มันถูกวาดเป็นเลเยอร์บน Inkscape โดยตรงที่ด้านบนของการสแกนที่ฉันใช้สำหรับเลย์เอาต์การออกแบบ เพิ่มความหนา 1 มม. ในเครื่องปั่นก่อนส่งไปยังเครื่องพิมพ์ของฉัน
นี่เป็นหนึ่งในงานพิมพ์ที่ยากที่สุดที่ฉันต้องทำบน Makibox A6 ที่ขาดแคลนของฉัน ส่วนนี้พิมพ์ด้วย abs ดังนั้นจึงใช้สารละลายอะซิโตนจำนวนหนึ่งตันเพื่อยึดติดกับแท่นสร้างโดยมีการบิดเบี้ยวน้อยที่สุด โชคดีที่ไม่มีส่วนนี้ในผลิตภัณฑ์ขั้นสุดท้าย
ภาพสุดท้ายแสดงให้เห็นว่ามันถือโคมไฟเพื่อตรวจสอบระยะห่าง
เมื่อเข้าใจถึงปัญหาแล้ว แสงที่กระจายไปตามเส้นอาจเหมาะกับภาพจริงมากกว่า อ่านไม่ยาก ซึ่งทำได้โดยการเพิ่มมุมที่ตัวนำด้านสั้นของแต่ละแสง
ขั้นตอนที่ 4: การเดินสายไฟ LED
ภาพแรกแสดงภาพพิมพ์ทดสอบที่ฉันทำเพื่อตรวจสอบขนาดรู ฉันเล็งให้ LED พอดีกับลูกไม้พอดีโดยใช้แรงเพียงเล็กน้อย จากนั้นจึงวางรูปร่างที่ถูกต้องด้วยมือเมื่อวางเลเยอร์ไกด์
เนื่องจากเครื่องพิมพ์ 3D ของฉันมีความทนทานต่ำ บางตัวจึงหลวมและต้องใช้ superglue เพียงเล็กน้อยเพื่อให้อยู่กับที่ในขณะที่บางตัวแน่นเกินไป แต่ได้รับการส่งเสริมให้เข้าที่โดยการกด LED ลงบน LED ขณะบัดกรี ซึ่งจริงๆ แล้วเหมาะสมกว่า รูขนาดที่ถูกต้องซึ่งมีผู้เช่าที่จะดึงออกมาเมื่อต่อสายเข้า
เพื่อลดจำนวนสายไฟ LED ถูกบัดกรีในเมทริกซ์ขนาด 7 คูณ 8 ซึ่งหมายความว่าไฟ LED ทั้ง 55 ดวงสามารถควบคุมได้เพียง 13 พินเท่านั้น ฉันมีแผนที่ที่วาดด้วยมือของการเชื่อมต่อเหล่านี้ซึ่งสูญหายไปอย่างน่าเสียดาย
ใช้ลวดเคลือบเพื่อให้สามารถเปิดส่วนต่างๆ ได้โดยการให้ความร้อนกับส่วนเหล็กและกระป๋องก่อนที่จะทำการเชื่อมต่อ
กระบวนการนี้ใช้เวลานานมาก ฉันขอแนะนำเป็นอย่างยิ่งให้ออกแบบ PCB
ขั้นตอนที่ 5: การออกแบบอุปกรณ์อิเล็กทรอนิกส์
แผนเริ่มต้นของฉันคือการใช้ไมโครคอนโทรลเลอร์ Arduino กับ RTC แต่เลือกใช้ ESP8266 บนบอร์ด Node MCU D1 เนื่องจากอนุญาตให้ใช้การปรับเวลาตามฤดูกาลโดยอัตโนมัติและมีศักยภาพในการควบคุม WIFI
เพื่อลดจำนวนพินให้มากขึ้น ฉันมี LED จำนวนที่สมบูรณ์แบบที่สามารถใช้ MAX7219 ได้ (ซึ่งสามารถรองรับไฟ LED ได้มากถึง 64 ดวง)
โดยทั่วไปแล้ว IC นี้ใช้เพื่อขับเคลื่อนจอแสดงผล LED 7 Segment แต่มีกรณีการใช้งานที่คล้ายคลึงกันมากกับเหมือง โดยให้แสง LED จำนวนหนึ่งโดยพลการโดยมีการกะพริบน้อยที่สุด และยังมีความสว่างที่ควบคุมได้
ฉันตัดสินใจใช้โปรโตบอร์ดในการเดินสาย แต่อินทรีมีประโยชน์ในการจัดวางชิ้นส่วนและทำความเข้าใจการเดินสาย
ฉันได้แนบไฟล์บอร์ดมาด้วย แต่นี่เป็นครั้งแรกที่ฉันใช้ eagle (และเป็นเวอร์ชันที่ล้าสมัยไปแล้วด้วย) ดังนั้นจึงใช้สำหรับอ้างอิงเท่านั้น
ขั้นตอนที่ 6: การเดินสายไฟอุปกรณ์อิเล็กทรอนิกส์
นี่เป็นขั้นตอนง่ายๆ ที่เกิดขึ้นซ้ำๆ ตามแผนผังของ Eagle โดยใช้ส่วนหัวสำหรับ ESP และเมทริกซ์ LED ช่วยในการประกอบอย่างมหาศาล
พิน 1 บนส่วนหัว LED ของขั้วบวกและแคโทดถูกทำเครื่องหมายด้วยมีดสีเงิน พวกเขาสามารถแยกความแตกต่างระหว่าง 7 กับอีก 8 อันได้
ขั้นตอนที่ 7: การเขียนโปรแกรม
เนื่องจากการแสดงผลของเราไม่ใช่เมทริกซ์แบบดั้งเดิม ฉันจึงต้องหาวิธีในการแสดงภาพว่าบิตใดที่จะเปิดซึ่งส่งไปยัง MAX IC ใน HEX โชคดีที่ฉันรู้ดีพอที่จะประสบปัญหา และสร้าง 'ตัวช่วยสร้าง Hex' เพื่อแนะนำฉันถึงรูปแบบที่ฉันต้องการแสดง ช่องกาเครื่องหมายวางด้วยมือทั้งหมด
สิ่งนี้มาพร้อมกับการประเมินค่าใหม่ที่สามารถรวมเลขฐานสิบหกสำหรับชั่วโมง นาที และวินาทีของฉันโดยใช้ค่าบิต OR เพื่อสร้างคำสั่งฐานสิบหกสุดท้ายเพื่อส่งไปยัง max7219 รวมถึงอนิเมชั่นเล็กน้อยที่ฉันเพิ่มลงในวินาที เพื่อให้แน่ใจว่าบอร์ด ไม่ได้ถูกแช่แข็ง
ดังนั้นเกือบจะถึงจุดสิ้นสุด และเวลาสำหรับการตัดสินใจอีกครั้งซึ่งยังไม่แก่เกินไป
รหัสสำหรับ ESP อยู่ใน LUA วันนี้ฉันขอแนะนำให้ใช้ Arduino IDE สำหรับเอกสารที่ดีกว่าและไลบรารีแพ็คเกจที่มีประสิทธิภาพ ในขณะที่ชุมชน ESP ยังคงเติบโตและฉันเลือก LUA เป็นภาษาสำหรับโครงการนี้
ฉันตัดสินใจอย่างน่าสงสัยในการ ping เซิร์ฟเวอร์ Google เพื่ออ่านเวลาเป็นประจำ สิ่งนี้ต้องใช้ RTC เพื่อลดการล่องลอย ใช้งานได้ แต่คุณควรใช้ API ตามเวลาจริงจะดีกว่า
halfSec = 0 ชั่วโมง=0 นาที=0 วินาที=0
ความเข้มต่ำ = 0
ความเข้มสูง = 9
SSID ท้องถิ่น = "Wifi"
SSID_PASSWORD ท้องถิ่น ="รหัสผ่าน"
เวลาทำงาน () - เชื่อมต่ออินเทอร์เน็ตเพื่อรับเวลาและวันที่ปัจจุบัน
ถ้า wifi.sta.getip() แล้ว local conn=net.createConnection(net. TCP, 0) conn:connect(80, "google.com")
conn:on("การเชื่อมต่อ", function(conn, payload) conn:send("HEAD / HTTP/1.1\r\n".. "Host: time.is\r\n".. "Accept: */*\r\n".. " User-Agent: Mozilla/4.0 (เข้ากันได้; esp8266 Lua;)".. "\r\n\r\n") สิ้นสุด)
conn:on("รับ", function(conn, payload) --print(payload) conn:close() local p=string.find(payload, "GMT") -- ค้นหาสตริงเวลาและวันที่ในเพย์โหลดจากอินเทอร์เน็ต เปลี่ยนเป็นเขตเวลาถ้า p~ =ไม่มี จากนั้น -- แยกตัวเลขที่สัมพันธ์กับชั่วโมง นาที วินาที วัน เดือน ชั่วโมง=tonumber(string.sub(payload, p-9, p-8)) minutes=tonumber(string.sub(payload, p- 6, p-5)) วินาที = tonumber (string.sub (payload, p-3, p-2)) addHour () --hard coded BST (เวลาฤดูร้อนของอังกฤษ) การพิมพ์ประหยัดเวลากลางวัน (ชั่วโมง นาที วินาที) halfSec = (second%6)*2 --print(halfSec) else print("web update failed!") end end --function) --end of on "receive" event handler
conn:on("ขาดการเชื่อมต่อ", ฟังก์ชั่น (conn, payload) conn=nil payload=nil end) สิ้นสุดการพิมพ์ ("ยังไม่มี wifi") สิ้นสุด
ฟังก์ชัน borTable(a, b, …) --bitwise OR ตารางเข้าด้วยกัน
ถ้า arg[1] แล้ว b = borTable(b, unpack(arg)) end local z = {} for i, v in ipairs(a) do table.insert(z, bit.bor(v, b)) end return z end
ฟังก์ชั่น bxorTable(a, b, …) --bitwise OR ตารางเข้าด้วยกัน
ถ้า arg[1] แล้ว b = bxorTable(b, unpack(arg)) end local z = {} for i, v in ipairs(a) do table.insert(z, bit.bxor(v, b)) end return z end
ฟังก์ชัน addSecond()
วินาที=วินาที+1 ถ้าวินาที>=60 จากนั้นวินาที=0 นาที=นาที+1 ถ้านาที>=60 แล้วนาที=0 addHour() สิ้นสุด สิ้นสุด
ฟังก์ชัน addHour()
hour=hour+1 if hour>=24 then hour=0 end if hour == 2 or hour == 16 then max7219.setIntensity(lowIntensity) end if hour == 8 or hour == 18 then max7219.setIntensity(highIntensity) การอัปเดตฟังก์ชันสิ้นสุด end () local secGap = 6 local minGap = 3 horGap ในพื้นที่ = 1 วินาทีในเครื่อง = { 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, 0x03}, { 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x01, 0x03}, { 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03}, { 0x00, 0x01, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03 }, { 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, 0x02, 0x00, 0x02, 0x00}, { 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, { 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x10}, { 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x12, 0x10}, { 0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x12, 0x10}, { 0x02, 0x02, 0x02, 0x02, 0x12, 0x10, 0x12, 0x10 } { 0x02, 0x02, 0x02, 0x12, 0x12, 0x10, 0x12, 0x10}, { 0x02, 0x02, 0x12, 0x12, 0x12, 0x10, 0x12, 0x10}, { 0x02, 0x12, 0x12, 0x12, 0x12, 0x10, 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} }; ชั่วโมงท้องถิ่น = { 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, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, { 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, { 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, { 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08}, { 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x08}, { 0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C } { 0x04, 0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x08}, { 0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x04, 0x0C, 0x0C, 0, 0x0C, 0x0C, 0,, 0x0C, 0x08}, { 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, { 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08, 0x0, 0x0C, 0x0C, 0x0C, 0x0C, 0x48}, { 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x0, 0C, 0x0C, 0x0C, 0x0C, 0x4C 0,48 0C}4, 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 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, { 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48} }; --พิมพ์(ชั่วโมง นาที วินาที)
--ตารางเริ่มต้นที่ 0 ดังนั้นที่ 1 ในขณะที่วินาที[0] = ไม่มี)
max7219.write({animate(borTable(sec[1+(second/secGap)], min[1+(minute/minGap)], ฮอ[1+(ชั่วโมง/horGap)]))})
สิ้นสุด --function
wifi.setmode (wifi. STATION)
wifi.sta.config(SSID, SSID_PASSWORD) wifi.sta.autoconnect(1)
--กำหนดค่าmax7219
max7219 = ต้องการ ("max7219") max7219.setup ({numberOfModules = 1, slaveSelectPin = 8, ความเข้ม = ความเข้มสูง })
--โปรแกรมหลัก
checkOnline = tmr.create()
tmr.alarm(0, 180000, 1 ครั้ง)
tmr.alarm(1, 1000, 1, เพิ่มวินาที)
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, 0x00} }; halfSec=halfSec+1 ถ้า halfSec >=12 แล้ว halfSec = 0 end --print(halfSec) return bxorTable(frames[halfSec+1], still) end
ขั้นตอนที่ 8: ที่อยู่อาศัย
ตอนนี้เป็นเวลาของคุณที่จะแสดงฝีมืออันน่าทึ่งของคุณและจัดโครงการ
หรือไม่ก็หยิบห่ออเมซอนออกจากการรีไซเคิลแล้วสร้างที่พักชั่วคราวที่ยังคงใช้งานอยู่ในปัจจุบัน
ประโยชน์ของการใช้วิธีนี้คือแต่ละชั้นของโปรเจ็กต์เกือบจะเข้ากันกับความหนาของกระดาษแข็ง จึงสามารถวางแซนวิชซ้อนกันและพันเทปเข้าด้วยกันได้ รุ่นพรีเมี่ยมที่คล้ายกันสามารถใช้อะคริลิก
ขั้นตอนที่ 9: ปิดข้อสังเกต
ขอบคุณสำหรับการอ่าน อย่างที่หลายๆ คนทราบดีว่าการบันทึกโครงการอาจเป็นเรื่องยากพอๆ กับการสร้าง มีเศษของวิดีโอที่คุยกับฉันซึ่งในที่สุดอาจเห็นแสงของวัน
ในช่วงหลายปีระหว่างการทำโปรเจ็กต์นี้และเขียนขึ้น ฉันคาดว่าจะเห็นตัวอย่างเพิ่มเติมของจอแสดงผล LED ที่กำหนดเองโดยใช้การพิมพ์ 3 มิติ แต่การลดแถบ RGB ได้ทำให้ไม่จำเป็นต้องมีทางเลือกอื่นเป็นส่วนใหญ่
ฉันหวังว่าข้อมูลนี้จะให้ข้อมูลและโปรดถามคำถามในขณะที่ฉันจะพยายามให้รายละเอียดเพิ่มเติมเกี่ยวกับส่วนที่ไม่พึงพอใจอย่างเต็มที่
ไชโย
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)
Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-