สารบัญ:

01//atch: 12 ขั้นตอน
01//atch: 12 ขั้นตอน

วีดีโอ: 01//atch: 12 ขั้นตอน

วีดีโอ: 01//atch: 12 ขั้นตอน
วีดีโอ: วิธีจำ 12 Tenses จำแบบนี้ ไม่มีลืม!! (เข้าใจง่าย ไม่ต้องท่อง) 2024, พฤศจิกายน
Anonim
01/\/atch
01/\/atch
01/\/atch
01/\/atch
01/\/atch
01/\/atch

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
การเลือก LED
การเลือก LED
การเลือก 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
PCB
PCB
PCB
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 มีพื้นที่เพิ่มขึ้นมากมาย มีการวางแผนมาตรวัดความเร็ว/มาตรวัดระยะทาง สามารถเพิ่มเกมได้

แนะนำ: