สารบัญ:
- ขั้นตอนที่ 1: แสดง
- ขั้นตอนที่ 2: การเลือก LED
- ขั้นตอนที่ 3: ส่วนต่อประสาน/ปุ่ม
- ขั้นตอนที่ 4: การรักษาเวลา
- ขั้นตอนที่ 5: เครื่องวัดแรงดันไฟฟ้า
- ขั้นตอนที่ 6: ส่วนหัวของการเขียนโปรแกรม/การเชื่อมต่อภายนอก
- ขั้นตอนที่ 7: เฟิร์มแวร์
- ขั้นตอนที่ 8: ระบบเมนูเลื่อน
- ขั้นตอนที่ 9: แผนงานเฟิร์มแวร์
- ขั้นตอนที่ 10: PCB
- ขั้นตอนที่ 11: การใส่นาฬิกา
- ขั้นตอนที่ 12: การปรับปรุงเพิ่มเติม
วีดีโอ: 01//atch: 12 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:08
01/\/atch เพราะ… "ในโลกนี้มีคน 10 ประเภท คนที่อ่านเลขฐานสองและคนที่อ่านไม่เป็น" - แท็กไลน์ slashdot 01/\/atch เป็นนาฬิกาข้อมือแบบไบนารีที่มี จอแสดงผล LED คุณสมบัติเพิ่มเติมสามารถเข้าถึงได้ผ่านระบบเมนูแบบเลื่อนบนเมทริกซ์ LED 3x4 คุณสมบัติปัจจุบัน ได้แก่ เครื่องวัดแรงดันไฟฟ้า ตัวนับไบนารี โหมดคลับ และการแสดงเวลา นาฬิกาสามารถตั้งโปรแกรมได้อย่างเต็มที่ การอัพเกรดเฟิร์มแวร์ในอนาคตจะรวมถึง: นาฬิกาจับเวลา/ตัวจับเวลา, นาฬิกาปลุก, มาตรวัดความเร็วจักรยาน/มาตรระยะทาง, การบันทึกข้อมูล และเมนูการกำหนดค่าขั้นสูง ดูการใช้งานจริง: https://www.youtube.com/embed/l_tApl3JmmMA ไฟล์โครงการทั้งหมด ในไฟล์.zip ในหน้านี้ แผนผังและ PCB ในรูปแบบ Cadsoft Eagle เฟิร์มแวร์ใน mikroBasic ข้อความของคำแนะนำนี้รวมอยู่ในไฟล์.odt (OO.org/open text) และ.pdf ภาพพิมพ์ PCB ชั้นบนสุด (มิเรอร์) รวมอยู่ในไฟล์. PDF ที่พร้อมสำหรับการถ่ายโอนผงหมึกหรือกระบวนการถ่ายภาพ มันถูกคัดลอกหลายครั้งบนแผ่นงานเดียวเพราะฉันต้องเพิ่มแผ่นใสเป็นสองเท่า 01/\/atch ได้รับแรงบันดาลใจจาก Mini Dotclock และการสนทนาที่ตามมาในพื้นที่แสดงความคิดเห็น:https://www.instructables.com /ex/i/47F2F12223BA1029BC6B001143E7E506นี่ก็เป็นอีกครึ่งก้าวสู่นาฬิกา nixie แบบยึดพื้นผิวที่ฉันกำลังทำอยู่ โปรเจ็กต์ 01/\/atch เป็นการแนะนำส่วนประกอบ Surface Mount และตรรกะการรักษาเวลา โดยไม่ต้องเพิ่มความซับซ้อนของแหล่งจ่ายไฟหลอด nixie (https://www.instructables.com/ex/i/2C2A7DA625911029BC6B001143E7E506/?ALLSTEPS) googling เล็กน้อยเปิดนาฬิกาไบนารีนี้ที่ thinkgeek: https://www.thinkgeek.com/gadgets/watches/6a17/The 01/ \/atch ขึ้นอยู่กับ PIC16F913/6 เดิมที PIC นี้ได้รับเลือกเนื่องจากมีไดรเวอร์ LCD ของฮาร์ดแวร์ ฉันคิดว่าฉันสามารถเปลี่ยนไดรเวอร์ LCD เป็นมัลติเพล็กเซอร์ LED ที่มีทรานซิสเตอร์สองสามตัวได้ สิ่งนี้กลับกลายเป็นว่าไม่เป็นเช่นนั้น มันยังคงเป็นตัวเลือกที่ดีเพราะมีพื้นที่ในการเขียนโปรแกรมมากมายและมีพิน I/O ที่จำกัดน้อยมาก F913 ราคาประมาณ $2.00 ที่ Mouser. PIC16F913 รายละเอียด:https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en020199PIC16F916 รายละเอียด (เหมือนกับ 913 โดยมีพื้นที่โปรแกรมมากกว่า):https://www. microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en020201PIC16F913/6 เอกสารข้อมูล (รูปแบบ PDF):https://ww1.microchip.com/downloads/en/DeviceDoc/41250E.pdfภาพ 3 มิติที่ใช้ในคำแนะนำนี้ถูกสร้างขึ้น จากไฟล์ Eagle Board ที่มี Eagle3D และ POV ray:https://www.matwei.de/doku.php?id=th:eagle3d:eagle3d
ขั้นตอนที่ 1: แสดง
จอแสดงผลไบนารีทำจาก LED 12 ดวงในเมทริกซ์ 3x4 แต่ละคอลัมน์ของไฟ LED สี่ดวงแสดงถึง 'แทะ' สี่บิตหรือครึ่งไบต์ แต่ละคอลัมน์สามารถแสดง 0-15 ในรูปแบบไบนารี (1+2+4+8=15) เวลาจะแสดงเป็นสามแถวเป็นชั่วโมง/สิบนาที/นาที นี่ไม่ใช่เลขฐานสองจริง แต่เป็นชุดย่อยแบบง่ายที่ทำให้นาฬิกาอ่านง่ายขึ้น ตัวอย่างเช่น นาฬิกา thinkgeek ใช้ไบนารี 'จริง' เพื่อแสดงนาทีที่มีทั้งไบต์ ไม่ว่าฉันจะชอบอะไร geek ที่แท้จริงจะแสดงเวลาโดยใช้ยุค Unix ในรูปแบบไบนารี! (https://en.wikipedia.org/wiki/Unix_timestamp)มัลติเพล็กซ์ LED ตรงไปตรงมา แถว (4) เชื่อมต่อกับพินของ PIC ผ่านตัวต้านทานจำกัดกระแส ใช้ตัวต้านทานจำกัดกระแสเพียงตัวเดียวสำหรับแต่ละแถว เนื่องจากมีไฟ LED เพียงหนึ่งตัวต่อแถวเท่านั้นที่จะติด ไฟ LED ทำงานที่ 20ma โดยใช้ตัวต้านทาน 56 โอห์ม (56ohm @ 3 โวลต์ = 20ma) ไฟ LED อาจทำงานสูงขึ้นเนื่องจากเป็นแบบมัลติเพล็กซ์ แผ่นข้อมูลแสดงรายการบางอย่างประมาณ 40ma ฉันพบว่ามันสว่างเกินไปที่ 20ma-multiplexed เท่านั้นคอลัมน์ (3) เชื่อมต่อกับกราวด์ด้วยทรานซิสเตอร์ NPN ทรานซิสเตอร์ถูกสลับโดยพิน PIC ผ่านตัวต้านทาน 1Kohm มัลติเพล็กซ์ทำงานโดยการต่อสายดินของคอลัมน์ LED ผ่านทรานซิสเตอร์ในขณะที่ให้แสงแถว LED ที่ถูกต้องสำหรับคอลัมน์นั้น สิ่งนี้ถูกทำซ้ำสำหรับแต่ละคอลัมน์ในช่วงเวลาสั้น ๆ ทำให้เมทริกซ์ดูเหมือนจะสว่างขึ้นอย่างต่อเนื่อง PIC Timer0 เป็นไดรฟ์มัลติเพล็กซ์ นับถึง 256 จากนั้นจะเปลี่ยนค่าแถวและคอลัมน์ที่ต่อลงดิน ทรานซิสเตอร์:ทรานซิสเตอร์ NPN, NPN/ 32V/ 100mA, (Mouser #512-BCW60D $0.05)
ขั้นตอนที่ 2: การเลือก LED
บนนาฬิกาเรือนนี้ ไฟ LED สีเหลืองและสีแดงขนาด '1206' ถูกใช้กับตัวต้านทานจำกัดกระแส 56 โอห์ม เลือกสีถูกๆ. ไฟ LED สีแดง สีเหลือง และสีส้มมีค่าประมาณ 10 เซ็นต์ต่ออัน ในขณะที่ไฟ LED สีน้ำเงินอยู่ที่ 40 เซ็นต์ขึ้นไป นอกจากนี้ LED blue นั้นไม่เท่ห์ในตอนนี้ ใครพบสีม่วงแจ้งได้นะคะ
รูปแสดงไฟ LED 5 แบบที่ฉันออดิชั่น หมายเลขชิ้นส่วนของ Mouser # ผู้ผลิตสี ต้นทุน 859-LTST-C171KRKT Lite-On SMT LED สีแดง, ใส $0.130 859-LTST-C171KSKT Lite-On SMT LED สีเหลือง, ใส $0.130 859-LTST-C150KFKT Lite-On SMT LED สีส้ม, ใส $0.130 638- 121SURCS530A28 Everlight LED SMD Red Water Clear $0.110 638-1121UYCS530A28 Everlight LED SMD Yellow Water Clear $0.110 Everlight สีแดงและสีเหลืองถูกนำมาใช้กับนาฬิกาต้นแบบ ฉันชอบ Lite-On สีแดงและสีส้มมากกว่า พวกมันจะถูกใช้ในนาฬิกาเรือนต่อไปที่ฉันทำ
ขั้นตอนที่ 3: ส่วนต่อประสาน/ปุ่ม
นาฬิกา geeky ต้องการอินเทอร์เฟซที่เกินบรรยาย เซ็นเซอร์สัมผัสแบบ Capacitive เป็นที่นิยมในขณะนี้ แต่ต้องการส่วนประกอบเพิ่มเติมค่อนข้างน้อย แต่ฉันใช้เซ็นเซอร์สัมผัสที่ใช้ทรานซิสเตอร์ดาร์ลิงตันที่มีส่วนหัวของหมุดเป็นจุดติดต่อแทน มีอะไรที่เกินบรรยายกว่าส่วนหัวของหมุด? ไม่มีอะไร ฉันเห็นแนวคิดนี้ครั้งแรกที่นี่: (https://www.kpsec.freeuk.com/trancirc.htm):"คู่ดาร์ลิงตันมีความอ่อนไหวเพียงพอที่จะตอบสนองต่อกระแสน้ำขนาดเล็กที่ผ่านผิวหนังของคุณและสามารถนำมาใช้เพื่อ ทำสวิตช์สัมผัสตามที่แสดงในแผนภาพสำหรับวงจรนี้ซึ่งเพิ่งเปิดไฟ LED ทรานซิสเตอร์สองตัวสามารถเป็นทรานซิสเตอร์พลังงานต่ำที่ใช้งานทั่วไปได้ ตัวต้านทาน 100kohm ปกป้องทรานซิสเตอร์หากหน้าสัมผัสถูกเชื่อมโยงกับชิ้นส่วนของลวด "A เพิ่มทรานซิสเตอร์ PNP ลงในการออกแบบที่เรียบง่ายนี้ (แทนที่ LED ในแผนภาพ) เพื่อให้สามารถให้เอาต์พุตสูง/ต่ำแก่ PIC มีการเพิ่มตัวต้านทานแบบดึงลงระหว่างพิน PIC และกราวด์เพื่อช่วยป้องกันการกดปุ่มผิดพลาด สวิตช์นี้เป็นสถานะโซลิดสเตต กันน้ำ และใช้พลังงานต่ำ - พร้อมเพิ่มความน่าสนใจของส่วนหัวของพิน สวิตช์จะยกเลิกการตีกลับโดยใช้ Timer2 บน PIC เมื่อกดสวิตช์ Timer2 (ตัวจับเวลา 8 บิต) จะเริ่มทำงานด้วยพรีสเกลเลอร์ 16 ตัวและตัวนับหลังสเกล 16 ตัว บน Timer2 ขัดจังหวะ PIC จะตรวจสอบเพื่อดูว่ายังกดปุ่มอยู่หรือไม่ หลังจากการอินเตอร์รัปต์สองครั้งติดต่อกันโดยไม่ได้กดปุ่มใดๆ ตัวจับเวลาจะหยุดลง และปุ่มต่างๆ จะได้รับการกำหนดค่าสำหรับการป้อนข้อมูลเพิ่มเติม สวิตช์ด้านบนเชื่อมต่อกับพินอินเทอร์รัปต์ PIC อินพุตบนพินนี้สามารถนำ PIC ออกจากโหมดสลีปได้ วิธีนี้ช่วยให้เราใช้เทคนิคการจัดการพลังงานที่เรียบร้อย: PIC อยู่ในโหมดพลังงานต่ำเมื่อไม่ได้ใช้งานจอแสดงผล อินพุตบนปุ่มจะปลุก PIC และกลับมาทำงานต่อ ทรานซิสเตอร์:Darlington Transistor, SOT-23, (Mouser #512-MMBT6427, $0.07) ทรานซิสเตอร์ PNP, SOT-23, (Mouser #512-BCW89, $0.06)
ขั้นตอนที่ 4: การรักษาเวลา
หมายเหตุแอปของ Microchip 582 อธิบายหลักการพื้นฐานเบื้องหลังนาฬิกาที่ใช้ PIC ที่ใช้พลังงานต่ำ (https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011057) นาฬิกานั้นเรียบง่ายและสวยงาม คริสตัลนาฬิกาขนาด 32.768kHz เชื่อมต่อกับหมุดออสซิลเลเตอร์ timer1 ของ PIC Timer1 นั้นยอดเยี่ยมสำหรับสิ่งนี้เพราะสามารถเพิ่มได้แม้ในขณะที่ PIC อยู่ในโหมดสลีป Timer1 ถูกตั้งค่าให้นับเป็น 65536 (2 วินาทีที่ 32.768kHz) และปลุก PIC จากโหมดสลีปด้วยการขัดจังหวะ เมื่อ PIC ตื่น เวลาจะเพิ่มขึ้นสองวินาที PIC ทำงานและใช้พลังงานเพียงช่วงเวลาสั้นๆ ทุกๆ สองสามวินาที ฉันใช้นาฬิกาคริสตัลควอตซ์ราคาถูกจาก Citizen ฉันว่าชื่อพลเมืองอาจทำให้นาฬิกาของฉันถูกต้องตามกฎหมาย CFS206 (12.5pf) มีความแม่นยำประมาณ +/- 1.7 นาทีต่อปี (20ppm) ตัวเก็บประจุ 33pF สองตัวทำให้วงจรคริสตัลภายนอกสมบูรณ์ 33pF อาจจะมากไปหน่อย แต่มีจำหน่ายในท้องถิ่นในราคาที่สมเหตุสมผล คริสตัลที่ดีกว่าสามารถนำมาใช้เพื่อเวลาที่แม่นยำยิ่งขึ้นได้ คริสตัล: Citizen KHz Range Crystals, 32.768 KHZ 12.5pF, (เมาส์ #695-CFS206-327KFB, $0.30) ตัวเก็บประจุ: 2x33pF, 1206 SMD
ขั้นตอนที่ 5: เครื่องวัดแรงดันไฟฟ้า
ราวกับว่าเราไม่ได้จมลงไปในส่วนลึกของ geekerie ด้วยนาฬิกาไบนารี เราตบการอ้างอิงแรงดันไฟฟ้าและพินอินพุตเพื่อสร้างมิเตอร์วัดแรงดันไฟฟ้า การอ้างอิงแรงดันไฟฟ้าคือ Microchip MCP1525 นี่คือการอ้างอิง 2.5 โวลต์ที่มีช่วงการทำงาน 2.7 ถึง 10+ โวลต์ ในนาฬิกาในภาพ ใช้แพ็คเกจ TO-92 แม้ว่านาฬิกาในอนาคตจะใช้รุ่น Surface Mount (SOT-23) ข้อมูลอ้างอิงขับเคลื่อนโดยพิน PIC เพื่อให้สามารถปิดเพื่อประหยัดพลังงาน ณ จุดนี้ เราสามารถวัดได้ถึง 2.5 โวลต์โดยใช้ตัวแปลงอนาล็อกดิจิตอลของ PIC เราใช้ขั้นตอนต่อไปและเพิ่มตัวแบ่งแรงดันตัวต้านทานเข้ากับอินพุตมัลติมิเตอร์ การใช้ตัวต้านทานสองตัว (100K/10K) เราแบ่งแรงดันไฟฟ้าขาเข้าด้วย 11 โดยให้ช่วงอินพุตใหม่ประมาณ 30 โวลต์ นี่เป็นจุดดีที่ครอบคลุมแรงดันไฟฟ้าต่ำทั้งหมดที่เราน่าจะพบ (แบตเตอรี่ 1.2/1.5 โวลต์ เซลล์แบบเหรียญ 3 โวลต์ ลอจิก 5 โวลต์ แบตเตอรี่ 9 โวลต์ และรางจ่ายไฟ 12 โวลต์) ตัวต้านทาน 22Kohm สามารถใช้แทนตัวต้านทาน 10K ได้ โดยให้ช่วงที่เล็กกว่า แต่มีความละเอียดสูงกว่า สเปรดชีตที่มาพร้อมกับคำแนะนำนี้สามารถช่วยคุณเลือกค่าตัวต้านทานได้ หัววัดกราวด์และการวัดเชื่อมต่อกับส่วนหัวการเขียนโปรแกรมที่ด้านหลังของนาฬิกา รายละเอียด MCP1525:https://www.microchip.com/stellent/idcplgidcplg?IdcService=SS_GET_PAGE&nodeId= 1335&dDocName=en019700
ขั้นตอนที่ 6: ส่วนหัวของการเขียนโปรแกรม/การเชื่อมต่อภายนอก
นาฬิกาเป็นแบบ 'ตั้งโปรแกรมได้' ส่วนหัว ICSP ถูกนำออกมาทางด้านหลังเพื่อให้สามารถติดตั้งเฟิร์มแวร์ใหม่ได้ ส่วนหัวเป็นแถวของซ็อกเก็ตพินตัวเมียแบบเตี้ยที่ฉันพบที่ร้านขายอุปกรณ์อิเล็กทรอนิกส์ในพื้นที่ของฉัน สามารถทำได้เช่นเดียวกันโดยการตัดซ็อกเก็ต DIP ที่มีคุณภาพครึ่งทางยาว ฉันเชื่อมต่อปลั๊ก ICSP ของฉันกับ "ตัวเปลี่ยนเพศ" ของส่วนหัวพิน - เสียบส่วนหัวของหมุดลงในซ็อกเก็ต จากนั้นเชื่อมต่อปลั๊ก ICSP กับส่วนหัวของพิน คุณจะต้องใช้โปรแกรมเมอร์ ICSP เพื่อใส่ซอฟต์แวร์ใหม่ในนาฬิกา โปรแกรมเมอร์ JDM2 ICSP แบบง่ายจะรวมอยู่ในไฟล์ Cadsoft Eagle
เมื่อไม่ได้ใช้สำหรับการเขียนโปรแกรม ส่วนหัว ICSP สามารถใช้สำหรับการรวบรวมข้อมูล การบันทึกเหตุการณ์ ฯลฯ พิน ICSP ทั้งหมดพร้อมใช้งานดังที่ระบุไว้ในตารางด้านล่าง พินมิเตอร์วัดแรงดันไฟฟ้า (พิน 1/6) ค่อนข้างเฉพาะสำหรับการใช้งานนั้นเนื่องจากตัวแบ่งแรงดันไฟฟ้า มัลติมิเตอร์ - ADC, I/O พร้อมตัวแบ่งตัวต้านทาน (PIN2, PORTA0/AN0) MCLR - พินอินพุตเท่านั้น Schmitt ทริกเกอร์อินพุตสำหรับสัญญาณรบกวน (PIN1, RE3) Vcc - +3 โวลต์ Vss - ข้อมูลพินกราวด์ - อินพุต/เอาต์พุตพร้อมอินเตอร์รัปต์เมื่อเปลี่ยน, ตัวเลือก pull-up อ่อน (PIN27, RB6) นาฬิกา - I/O พร้อมอินเตอร์รัปต์เมื่อเปลี่ยน, ตัวเลือกอ่อนดึงขึ้น (PIN28, RB7)
ขั้นตอนที่ 7: เฟิร์มแวร์
เฟิร์มแวร์เขียนโดยใช้เวอร์ชันฟรีแวร์ mikroBasic เฟิร์มแวร์ปัจจุบันคือ v0.1 เฟิร์มแวร์ในอนาคตอาจจะเขียนด้วย C ตัวเลือกการกำหนดค่าถูกตั้งค่าไว้ในเฟิร์มแวร์ ควรเป็นดังนี้:MCLR - DISABLEDBODEN/BOREN - DISABLEDWDT - DISABLEDOscillator -Internal Osc, NO clock-out ฉันไม่สามารถตั้งโปรแกรม 16F913 ด้วยซอฟต์แวร์การเขียนโปรแกรม PIC ที่ฉันโปรดปราน (WinPIC800) แต่ WinPIC ของ DL4YHS ทำงานได้ดี (https://www.qsl.net/dl4yhf/winpicpr.html).v0.1Configuration/Menu System - ตัวเลือกเมนูจะเลื่อนไปตามจอแสดงผลและเลือก/ขั้นสูงโดยใช้ปุ่มป้อนข้อมูลสองปุ่ม เวลา - แสดงเวลาเป็นเลขฐานสอง (ค่าเริ่มต้นเมื่อกดปุ่ม) คลิก - ตัวนับ บางครั้งฉันก็พบว่าตัวเองกำลังนับ การนับจำนวนนก การนับจำนวนนก อะไรก็ตาม 01/\/atch ย่อยเป็นตัวนับไบนารี โหมดคลับ - มูลค่าที่แท้จริงของนาฬิกาใดๆ จะถูกกำหนดโดยโหมด 'คลับ' 01/\/atch ใช้ตัวสร้างตัวเลขสุ่มเพื่อแฟลชรูปแบบบนจอแสดงผล LED นอกจากนี้ยังสามารถรวมแฟรกเมนต์คำโดยใช้ไลบรารีฟอนต์เมทริกซ์ภายใน (มีอีกมากที่จะตามมา) สามารถปรับความเร็วได้ด้วยปุ่ม 1 ชุดอัพเกรดไม้กอล์ฟขั้นสูงสุดจะมีเซ็นเซอร์อุณหภูมิที่ควบคุมอัตราการเปลี่ยนรูปแบบ เมื่อผู้สวมใส่ร้อนขึ้น ลวดลายก็จะเปลี่ยนไปเร็วขึ้น โวลต์ - เครื่องวัดแรงดันไฟฟ้า ปัจจุบันแสดงการอ่าน ADC แบบดิบใน 10 บิต จะได้รับการอัปเกรดเป็นค่าโวลต์จริงใน v0.2. Set - ตั้งเวลาออก - ออกจากเมนู ให้ PIC อยู่ในโหมดสลีป
ขั้นตอนที่ 8: ระบบเมนูเลื่อน
Scrolling Menu System ฟังก์ชั่นเข้าถึงได้ผ่านระบบเมนูเลื่อน รายการเมนูถูกโหลดเป็นบิตแมปในอาร์เรย์และเลื่อน "ขึ้น" อย่างต่อเนื่อง การเลื่อนขึ้นอยู่กับไดรเวอร์ mux ของ Timer0 หลายตัว เมนูเลื่อน "หมดเวลา" โดยใช้ตัวจับเวลาหลายตัว 1 (ตัวนับวินาที) หลังจากผ่านไปประมาณ 10 วินาทีตัวเลือกเมนู (การใช้นาฬิกา) (สิ่งนี้ใช้กับเฟิร์มแวร์เวอร์ชัน 0.1) เมื่อใส่แบตเตอรี่ใหม่ในนาฬิกาจะแสดง 'SET ' ตัวเลือกเมนูโดยค่าเริ่มต้น แตะปุ่ม 2 เพื่อเข้าสู่โหมดตั้งค่า เวลาปัจจุบันจะปรากฏขึ้น (12:11) ใช้ปุ่ม 1 เพื่อเพิ่มชั่วโมง แตะปุ่ม 2 เพื่อเลื่อนไปยังหน่วยเวลาถัดไป (ชั่วโมง 10 นาที นาที) แตะปุ่ม 2 หลังจากตั้งค่านาทีเพื่อประหยัดเวลาและกลับไปที่เมนูเลื่อนเพื่อประหยัดพลังงาน จอภาพและ PIC มักจะปิด แตะปุ่ม 1 เพื่อปลุก PIC และแสดงเวลาปัจจุบันเป็นเวลา 10 วินาที แตะปุ่ม 2 ขณะแสดงเวลาเพื่อเข้าถึงระบบเมนูเลื่อน คุณสมบัตินาฬิกาสามารถเข้าถึงได้ผ่านเมนูเลื่อน แตะปุ่ม 1 เพื่อเลื่อนไปยังรายการเมนูถัดไป แตะปุ่ม 2 เพื่อเลือกรายการเมนู ดูการทำงานจริง: https://www.youtube.com/embed/l_tApl3JmmMปุ่มฟังก์ชันสำหรับแต่ละตัวเลือกเมนูจะแสดงอยู่ในตาราง ด้านล่าง. B1 และ B2 เป็นตัวย่อของปุ่ม 1 และปุ่ม 2
ขั้นตอนที่ 9: แผนงานเฟิร์มแวร์
v0.2
การยืนยัน/กล่องโต้ตอบการออก ตั้งค่า - ขยายตัวเลือกการตั้งค่าเพื่อรวม: ระยะเวลาตรง/หมดเวลาเมนู (และโหมดเปิดตลอดเวลา) ความสว่าง (รอบการทำงาน) ความเร็วเลื่อน Menu Font Upgrade -'E' และ 'B' ดูแย่มาก ใช้ 'e', 'b' ย้ายไปที่ออสซิลเลเตอร์ 1Mhz หรือ 32.768khz (4MHz ใน v0.1) v0.3 นาฬิกาจับเวลา (เพิ่มเวลาไปข้างหน้า) -เริ่มนับวินาที จากนั้นเพิ่มทีละนาทีและชั่วโมงหลังจากขีดจำกัดการแสดงผล 15:59 น. ตัวจับเวลา/นาฬิกาปลุก (การย้อนเวลาถอยหลัง) -ตัวจับเวลาแบบลดค่าที่เพิ่มขึ้น ไฟ LED ทั้งหมดจะกะพริบเมื่อตัวจับเวลาถึง 0 EEPROM (ค่าการบันทึกในหน่วยความจำแฟลช) - บันทึกแรงดันไฟฟ้า นับ ตัวเลือก เวลานาฬิกาจับเวลา ฯลฯ เพื่อแฟลชหน่วยความจำ EEPROM - บันทึกจำนวนวันทำงานตั้งแต่เปลี่ยนแบตเตอรี่ นอกจากนี้:จำนวนชั่วโมงที่มีการแสดงผลบน v0.4 คุณลักษณะฮาร์ดแวร์ภายนอก (โดยใช้ส่วนหัวของ ICSP): การบันทึกเหตุการณ์บนอินเตอร์รัปต์ เครื่องวัดระยะทางจักรยาน/มาตรวัดความเร็ว. จอแสดงผลหน่วยที่ปรับได้ (ไบนารีหรือทศนิยมแบบอักษร)
ขั้นตอนที่ 10: PCB
PCB และวงจรอยู่ในรูปแบบอินทรี ฉันยังรวมห้องสมุดจำนวนหนึ่งที่ฉันใช้ทำบอร์ดที่อาจจำเป็นด้วย
PCB ได้รับการออกแบบด้วยส่วนประกอบยึดพื้นผิวเป็นส่วนใหญ่ กระดานทำด้วยแผ่นใสอิงค์เจ็ทบนกระดานบวกภาพถ่าย นี่เป็นบอร์ดยึดพื้นผิวตัวแรกของฉัน (ทั้งการกัดและการประกอบ) ฉันทำบอร์ดด้านเดียวและใช้สายจัมเปอร์สำหรับการติดตามชั้นล่าง บอร์ดถูกสร้างขึ้นโดยคำนึงถึงการผลิตโดย Olimex ดังนั้นจึงใช้ไฟล์ตรวจสอบกฎ 10 มิลเมื่อออกแบบบอร์ด ไม่มีอะไรเล็กมาก แต่มันท้าทายอย่างแน่นอน ทุกอย่างถูกบัดกรีด้วยมือโดยใช้เหล็ก 10 ยูโร แท่งไม้ และแสงไฟสว่างจ้า ไม่จำเป็นต้องใช้แว่นขยาย คริสตัลถูกทิ้งไว้เป็นส่วนประกอบยึดพื้นผิว กระป๋องโลหะมีองค์ประกอบที่ดูโดดเด่น และสามารถระบุตัวตนได้มากกว่ากล่องดำแบบติดตั้งบนพื้นผิว ต้นแบบในภาพยังใช้การอ้างอิงแรงดันไฟฟ้า TO-92 - PCB สุดท้ายระบุว่าเป็นรุ่น SOT-23 ที่ฉันยังไม่มี (ยัง) อยู่ในมือเมื่อฉันสร้างบอร์ด วงจรและ PCB อยู่ในไฟล์เก็บถาวรของโครงการ (รูปแบบ Cadsoft Eagle - รุ่นฟรีแวร์ www.cadsoft.de) ตำแหน่งส่วนประกอบสามารถดูได้ในไฟล์ PCB ฉันยังสร้าง PDF โดยที่เลเยอร์บนสุดถูกมิเรอร์และคัดลอกหลายครั้ง สิ่งนี้ควรพร้อมสำหรับการถ่ายโอนผงหมึกหรือกระบวนการถ่ายภาพ รายการชิ้นส่วน (รูทะลุ) 32.768kHz นาฬิกา Crystal (กระป๋องโลหะ 0206) ส่วนหัวของพิน -x4 ส่วนหัวของการเขียนโปรแกรม - 6 พิน รายการชิ้นส่วน (ตัวยึดบนพื้นผิว) SO-300 PIC16F1206 ตัวเก็บประจุ 0.1uF 1206 ตัวเก็บประจุ 33pf - x2 1206 LED (สีเหลือง สีแดง สีส้ม ฯลฯ) -x12 1206 ตัวต้านทาน - 4x56 โอห์ม 1206 ตัวต้านทาน - 3x1Kohm 1206 ตัวต้านทาน - 3x10Kohm 1206 ตัวต้านทาน - 3x100Kohm SOT-23 ทรานซิสเตอร์ NPN (100ma หรือมากกว่า) SOT-23 ทรานซิสเตอร์ PNP (วัตถุประสงค์ทั่วไป) SOT-23 NPN ทรานซิสเตอร์ดาร์ลิงตัน (วัตถุประสงค์ทั่วไป), hfe of ~ 10000) SOT-23 MCP1525 แรงดันอ้างอิง (2.5 โวลต์) แบตเตอรี่ CR2032 3v ลิเธียม
ขั้นตอนที่ 11: การใส่นาฬิกา
การใส่นาฬิกาเพื่อให้นาฬิกาเหมาะกับการใช้งานในชีวิตประจำวันจึงจำเป็นต้องมีตัวเรือน ฉันไปที่ AFF Materials (https://www.aff-materials.com/) เพื่อซื้อโพลีเอสเตอร์เรซิน ผู้ชายที่ดีคนหนึ่งแนะนำให้ฉันใช้อีพ็อกซี่ใสแทน เขากล่าวว่าโพลีเอสเตอร์เรซินหดตัวประมาณ 5% ซึ่งอาจทำให้จุดเชื่อมต่อบน PCB แตกหักได้ อีพ็อกซี่ใสหดตัวเพียง 2% เขายังแนะนำด้วยว่าก๊าซจากโพลีเอสเตอร์อาจสร้างความเสียหายให้กับส่วนประกอบในขณะที่มันบ่ม ผมไม่เคยทำงานกับอีพ็อกซี่ใสมาก่อน ผมจึงทำการทดสอบการหล่อ ฉันเริ่มต้นด้วยการหล่อตัวอย่างบางส่วนในถาดน้ำแข็ง น้ำมันเมล็ดทานตะวัน น้ำมันหล่อลื่นซิลิโคน และน้ำมันหล่อลื่นจักรยานซิลิโคน ตัวอย่างหนึ่งทำโดยไม่มีสารปลดปล่อย สารหล่อลื่นซิลิโคนติดลูกปัดที่ด้านล่างของแม่พิมพ์และมีรอยบุบซ้ายบนอีพ็อกซี่ ตัวควบคุมดูดไปที่ด้านล่างของแม่พิมพ์ น้ำมันทำงานได้ดี แต่ทิ้งคราบไว้เล็กน้อยในอีพ็อกซี่ ต่อไป ฉันต้องรู้วิธีการหล่อแบบหลายชั้นด้วยวัสดุนี้ โพลีเอสเตอร์เรซินมักจะถูกเทลงในชั้น ชั้นแรกได้รับอนุญาตให้ตั้ง (ประมาณ 15 นาที) เป็นเจล วางวัตถุบนชั้นแรกและชั้นที่สองของเรซินสดเทลงด้านบน เวลาทำงานของอีพ็อกซี่ของฉันคือประมาณ 60 นาที ฉันเทชั้นแรกแล้วตรวจสอบหลังจาก 30 นาที - ยังนิ่มอยู่ หลังจากผ่านไปประมาณ 1 ชั่วโมง 15 นาที ชั้นแรกแข็งตัวพอที่จะวางวัตถุไว้บนชั้นนั้นได้ สำหรับการทดสอบนี้ ฉันวางแผ่นทดสอบ LED ที่เห็นในขั้นตอนที่ 2 คว่ำหน้าลงบนชั้นแรก และเคลือบด้วยชั้นอีพ็อกซี่ใหม่ วิธีนี้ใช้ได้ผลดี ไฟ LED ไม่หลุดออกจากบอร์ด ฉันสรุปไว้ที่นี่ว่าไม่มีแม่พิมพ์ที่เหมาะสม พื้นผิวที่ชัดเจนที่สุดที่ฉันทำได้คือส่วนต่อประสานอากาศ/อีพ็อกซี่ 'ยอด' ของการแคสติ้งมีส่วนสำคัญ miscus ถูกจำกัดอยู่ที่ขอบของตัวเครื่อง และถอดออกได้อย่างง่ายดายด้วยเครื่องเจียร สำหรับการทดสอบจริงครั้งแรก ฉันต้องการแม่พิมพ์พลาสติกรูปสี่เหลี่ยมผืนผ้า ตัวเลือกที่ดีที่สุดที่ฉันพบคือภาชนะ 'smeer kaas' มันไม่สมบูรณ์แบบ ฉันจึงทำให้มันเล็กลงด้วยโฟมคอร์ที่พันด้วยเทปสองสามชั้น นี่ไม่ใช่แม่พิมพ์ที่เป็นตัวเอก แต่การเลือกด้านบนเป็นพื้นผิวการแสดงผลทำให้ฉันมีเวลาเหลือเฟือ แม่พิมพ์เช็ดด้วยน้ำมันบนกระดาษเช็ดมือเบาๆ ฉันทิ้งขั้นตอนการเทแบบหลายชั้นจากด้านบน ฉันบัดกรีตะกั่วจากที่ใส่แบตเตอรี่เซลล์แบบเหรียญไปยัง PCB ที่ยึดเซลล์ถูกติดกาวร้อน (ตกลง ติดกาว) ที่ด้านล่างของ PCB ที่ใส่แบตเตอรี่เต็มไปด้วย stickie-tack และส่วนหัวของการเขียนโปรแกรมได้รับการปกป้องด้วย stickie tack ที่มากขึ้น (ดินน้ำมันก็ใช้งานได้ดีเช่นกัน) จากนั้นวางหงายขึ้นในแม่พิมพ์หมุดยึดที่ป้องกันแบตเตอรี่และส่วนหัวถูกกดลงที่ด้านล่างของแม่พิมพ์อย่างแน่นหนา โดยยึดนาฬิกาให้เข้าที่ เทอีพ็อกซี่ใสลงในแม่พิมพ์จนปิดนาฬิกา ส่วนหัวของหมุดยังค่อนข้างยาว แต่สามารถตัดได้หลังจากที่อีพ็อกซี่แห้ง นาฬิกาจะปล่อยออกจากแม่พิมพ์หลังจากผ่านไปประมาณ 36 ชั่วโมง ผงสำหรับอุดรูป้องกันถูกถอดออกด้วยไขควง ขอบเรียบด้วยดอกสว่านแบบกด นาฬิกาถูกหล่อขึ้นเล็กน้อยเพื่อสวมใส่เป็นนาฬิกาข้อมือ ฉันอาจลองตัดมันลงถ้าฉันหาเครื่องเลื่อยสายพานได้ ช่วงนี้จะเป็นนาฬิกาพก เทปทับโฟมให้พื้นผิวที่เย็นและพื้นผิวที่ใสเป็นพิเศษ คราวหน้าฉันจะลองทำแม่พิมพ์ทั้งหมดโดยใช้วัสดุนี้ บางอย่างที่มากกว่านี้ในละแวกใกล้เคียงของขนาดนาฬิกาข้อมือ
ขั้นตอนที่ 12: การปรับปรุงเพิ่มเติม
นอกจากการอัปเดตซอฟต์แวร์ที่ระบุไว้ในแผนงานแล้ว ยังมีส่วนที่ต้องปรับปรุงอีกหลายส่วน
ฮาร์ดแวร์ เมทริกซ์ขนาด 4x5 ของไฟ LED 0805 จะใช้พื้นที่เดียวกันกับอาร์เรย์ 1206 ที่มีอยู่ ฉันซื้อไฟ LED รุ่น 0805 มาหลายประเภทเพื่อลองใช้ในการออกแบบในอนาคต สามารถเพิ่มเซ็นเซอร์อุณหภูมิที่กล่าวถึงก่อนหน้านี้เพื่อสร้างแพ็คเกจอัปเกรด 'โหมดคลับ' ขั้นสูงได้ PCB ได้รับการออกแบบสำหรับการผลิตโดย Olimex เป็นบอร์ดสองด้าน (~ $ 33) พวกเขาทำงานโดยตรงจากไฟล์ Eagle และจัดทำแผง (สร้างกระดานขนาดเล็กหลายแผ่นจากกระดานขนาดใหญ่เพียงแผ่นเดียว) ฟรี ฉันไม่ได้ทำสิ่งนี้ แต่ฉันจะซื้อถ้ามีคนอื่นทำ ซอฟต์แวร์ PIC มีพื้นที่เพิ่มขึ้นมากมาย มีการวางแผนมาตรวัดความเร็ว/มาตรวัดระยะทาง สามารถเพิ่มเกมได้
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง