สวัสดีตอนนี้ฉันต้องการแบ่งปันคำแนะนำในการสร้างนาฬิกาโดยใช้ Attiny 85 ด้วยหน้าจอ Oled คุณสมบัติของนาฬิกาของฉันไม่ได้ จำกัด อยู่ที่นาฬิกาของฉัน สามารถใช้เป็นเดสก์ท็อปและคุณยังสามารถบีบอัดเซ็นเซอร์อุณหภูมิแบบดิจิตอลได้อีกด้วย
สำหรับการทำ ทำที่บ้าน เราจะต้อง:
- สายสังเคราะห์ (สีใด ๆ )
- Velcro สำหรับเสื้อผ้า
- Digispark Attiny85
- จอแสดงผล Oled ที่มีความละเอียด 128x64, I2C
- ds18b20 - เซ็นเซอร์อุณหภูมิดิจิตอล (อุปกรณ์เสริม)
- ตัวต้านทาน 4.7 Kom 0.25 W
- Arduino บอร์ดเฟิร์มแวร์ Digispark Attiny85 (โปรแกรมเมอร์ ISP)
- แผ่นพลาสติกบาง
- สายไฟสี
- ขั้วต่อ“ ตัวเมีย” Dupont 2.54 มม
- กระดุม 2 ชิ้น
- แผงวงจรขนาดเล็กหรือแผงวงจรขนาดเล็ก
- หัวแร้งบัดกรีขัดสน
- ด้ายเข็มกรรไกร
- มีดเสมียน
- ปืนกาวร้อน
- กาวร้อน
- เทปสองด้าน
ขั้นตอนที่ 1 การเตรียมสายพาน
คุณสามารถซื้อสายรัดได้ที่ร้านเย็บปัก เลือกสายกว้าง 25 มม. สีใดก็ได้ เราต้องการแถบยาวประมาณ 50 ซม. พับสายของเราครึ่งหนึ่งแล้วเย็บตามขอบ จากนั้นตรงกลางของสายรัดเราทำช่อง แต่เฉพาะในส่วนใดส่วนหนึ่ง ซิวเวลโครจากปลายสาย
ใส่ด้ายด้วยเข็มไปทางด้านข้างและนำหัวแร้ง
ขั้นตอนที่ 2 เตรียมบอร์ดและจอแสดงผล OLED
“ สมอง” ของนาฬิกาของเราจะเป็นตัวควบคุม Digispark Attiny85 พวกเขามีอยู่ในหลายรุ่น คุณควรซื้อบอร์ดที่มีขั้วต่อ Micro USB บอร์ดเวอร์ชั่นอื่นจะไม่เหมาะกับกระเป๋าใส่นาฬิกา
หากคุณซื้อกระดานที่มีรายชื่อบัดกรีคุณควรยกเลิกการปลดล็อคบอร์ดก่อน จากนั้นเราใช้สายของสีที่แตกต่างกันเราต้องการ 9 สีที่แตกต่างกัน ตัดสายไฟแต่ละเส้นออกประมาณ 15 ซม. ตัดออกแล้วบัดกรีที่ Attiny85 ทันทีที่คุณควรจะเขียนลงไปว่าสายใดที่บัดกรีด้วยพินเพื่อไม่ให้สับสนในภายหลัง
ในกรณีของฉันสายตามสีมีลักษณะดังนี้:
PB0 MOSI - สีเหลือง
PB1 MISO - สีน้ำเงิน
PB2 CSK - น้ำเงิน
PB3 - สีม่วง
PB4 - สีขาว
PB5 NRES - สีเทา
GND - ดำ
+5 - สีแดง
Vin - ส้ม
สีของสายไฟอาจแตกต่างกันไปสิ่งสำคัญคือการเขียนลงไป
มาต่อกันที่หน้าจอกันเถอะ เราจะใช้หน้าจอ oled ความละเอียดหน้าจอ 128x64 ใช้งานได้บนบัส I2C ลดราคามีหน้าจอสีที่แตกต่างกัน: สีขาว, สีฟ้า, สีฟ้าและสีเหลือง ระวังตัวด้วย! คำว่า "สองสี" ในคำอธิบายและชื่อของหน้าจอนี้ระบุว่ามีแถบสีแตกต่างจากสีหลักที่ด้านบนของหน้าจอไม่ใช่ความสามารถในการแสดงสองสีด้วยหน้าจอนี้! หน้าจอทั้งหมดของประเภทนี้แสดงเพียงสีเดียวหรือที่ด้านบนของแถบสีเดียวที่ด้านล่างของอีกหน้าจอหนึ่ง ฉันชอบหน้าจอสีน้ำเงินโดยมีแถบสีเหลืองอยู่ด้านบน สีไม่ได้มีบทบาทพิเศษให้เลือกอันที่คุณชอบ เช่นเดียวกับ Attiny85 หากคุณซื้อหน้าจอที่มีรายชื่อบัดกรีคุณควรยกเลิกการปลดล็อคก่อน
ที่ด้านหลังของหน้าจอคุณควรบัดกรีสายไฟเล็ก ๆ มันจะดีกว่าที่จะใช้สายไฟที่มีสีเดียวกันเช่นเดียวกับ Attiny85 เพื่อไม่ให้สับสนในภายหลัง ในกรณีของฉันฉันประสานสายสีเหลืองไปยัง SDA ของหน้าจอไปยัง SCL - สีน้ำเงิน, GND - ดำ, VCC - แดง
บนเทปกาวสองหน้าเราแนบ Attiny85 กับด้านหลังของหน้าจอ Oled Attiny85 ไม่ควรเกินกว่าหน้าจอ Oled
เราประสาน Attiny85 และ Oled เข้าด้วยกัน
PB0 MOSI Attiny85 - Yellow - SDA Oled
PB2 CSK Attiny85 - Blue - SCL Oled
Attiny GND85 - Black - GND Oled
+5 Attiny85 - สีแดง - VCC Oled
เรารวบรวมสายทั้งหมดในหนึ่งแถวเพื่อให้เราได้วนซ้ำ เราม้วนมันด้วยเทปไฟฟ้าในหลาย ๆ ที่เพื่อไม่ให้มันแตกสลาย
ไปที่พลังของนาฬิกาของเรา ในการทำเช่นนี้ให้ใช้แบตเตอรี่ลิเธียมขนาดเล็ก บัดกรีสายไฟให้มัน
หากไม่มีแบตเตอรี่สามารถใช้แบตเตอรี่ประเภท A27 หรือ A23 ได้
เราเก็บสะสมหรือแบตเตอรี่ไว้ในมุมที่ไกลที่สุดของกระเป๋าที่เกิดจากสายรัดพับครึ่ง หากใช้แบตเตอรี่ให้เตรียมช่องเสียบไว้เพื่อเปลี่ยน
ในรูที่ทำขึ้นตรงกลางของสายเราติดสายของเราจากสายไฟ
และเรายืดมันไว้ที่ปลายสายเพื่อให้มันยื่นออกมาและนาฬิกาอยู่เหนือช่องเสียบเพื่อให้ช่องปิดปิดเป็นเวลาหลายชั่วโมง
เราตัดส่วนเกินออกและจีบสายไฟทั้งหมดของตัวเชื่อมต่อ“ ดูปองต์” แม่ดูปองต์ 2.54 มม. เราใส่มันลงในกล่องพลาสติกและห่อด้วยเทปไฟฟ้าเพื่อให้เราได้รับตัวเชื่อมต่อที่เรียบร้อยพร้อมด้วยลีดเดอร์ Attiny85 ทั้งหมด ที่นี่มีค่าการเขียนหรือการร่างที่ดียิ่งขึ้นรายชื่อทั้งหมดของตัวเชื่อมต่อที่เกิดขึ้น Attiny GND, GND Oled และการลบของแบตเตอรี่สามารถเชื่อมต่อได้ทันทีและ crimped เป็นหนึ่งในการติดต่อ สำหรับการกรอกข้อมูลเพิ่มเติมในแบบร่างและการเชื่อมต่อส่วนเสริมจะสะดวกที่สุดในการจัดเรียงผู้ติดต่อดังนี้:
PB0 | PB1 | PB2 | PB5 | +5 ATTINY | GND ATTINY
PB3 | PB4 | VCC OLED | GND OLED | Vin ATTINY | + BAT
ตอนนี้ได้เวลาย้ายไปยังตัวถัง
ขั้นตอนที่ 3 ทำกรณี
สำหรับร่างกายคุณจะต้องใช้พลาสติกบาง ๆ สามารถหาซื้อได้ในร้านค้าออนไลน์ หรือคุณสามารถซื้อโฟลเดอร์ที่มีฝาพลาสติกหนา ๆ ในร้านเครื่องเขียนและทำเคสออกมาจากปก บนพลาสติกเราทำเครื่องหมายกวาดของนาฬิกา เส้นทึบเป็นเส้นตัด, เส้นประ - โค้ง
ใช้มีดเสมียนตัดหน้าต่างตรงกลางออกอย่างระมัดระวัง เราโค้งงอเส้นประทั้งหมด มันควรจะเป็นแบบนี้:
และอีกด้าน:
เราใส่ช่องบนหน้าจอโค้งงอและใช้กาวร้อนละลายประกอบร่างกายของเรา นอกจากนี้ยังเป็นมูลค่าการติดกาวกรณีที่สายรัดภายในโดยเฉพาะอย่างยิ่งเพื่อให้กาวไม่ออกไป
ขั้นตอนที่ 4 การเตรียมสภาพแวดล้อมการเขียนโปรแกรม
เพื่อทำงานกับเฟิร์มแวร์ (หรือร่าง) เราจะใช้ Arduino IDE ดาวน์โหลดไฟล์เก็บถาวรหรือตัวติดตั้งจากเว็บไซต์ทางการ Arduino IDE.
นอกจากนี้เราต้องเพิ่มการสนับสนุน Attiny ให้กับ Arduino IDE ในการดำเนินการนี้ให้เรียกใช้ Arduino IDE จากนั้นคลิกที่ไฟล์ - การตั้งค่า - ในฟิลด์ "บอร์ดผู้จัดการเพิ่มเติม URL" ใส่ลิงค์:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
คลิกตกลง (คุณสามารถป้อนลิงค์ต่าง ๆ โดยคั่นด้วยเครื่องหมายจุลภาคในฟิลด์นี้) จากนั้นไปที่เครื่องมือ - บอร์ด - บอร์ดผู้จัดการในฟิลด์ตัวกรองป้อน Attiny และเลือก "attiny by David A. Mellis" คลิกติดตั้งและรอให้การดาวน์โหลดเสร็จสิ้น
คุณจะต้องมีไลบรารีเพื่อทำงานกับหน้าจอ Oled มีจำนวนมากฉันชอบมันและฉันแนะนำให้ใช้ TinyOzOLED สะดวกและที่สำคัญที่สุดคือพอดีในหน่วยความจำ:
ในอนาคตคุณสามารถขยายการทำงานของนาฬิกาได้โดยเพิ่มเซ็นเซอร์อุณหภูมิ เพิ่มห้องสมุดสำหรับเซ็นเซอร์นี้ทันที ห้องสมุด OneWire
ติดตั้งไลบรารีเหล่านี้ ในการทำเช่นนี้คุณสามารถโดยตรงในสภาพแวดล้อมการเขียนโปรแกรม Arduino IDE โดยไม่ต้องเปิดไฟล์เก็บถาวรที่ดาวน์โหลดไว้ให้เลือกเมนู Sketch - Connect Library ที่ด้านบนสุดของรายการดรอปดาวน์เลือกรายการ "เพิ่ม. ห้องสมุดซิป" ในกล่องโต้ตอบที่ปรากฏขึ้นให้เลือกไลบรารีที่คุณต้องการเพิ่มในกรณีนี้มีสองไฟล์ที่ดาวน์โหลด ตอนนี้เปิดเมนู Sketch - Connect Library อีกครั้ง ที่ด้านล่างสุดของรายการแบบหล่นลงคุณควรเห็นไลบรารี่ใหม่ จากนี้ไปไลบรารีสามารถใช้ในโปรแกรม หลังจากทั้งหมดนี้เริ่มต้น Arduino IDE นอกจากนี้คุณยังสามารถคลายซิปไปที่โฟลเดอร์“ libraries” ที่อยู่ในโฟลเดอร์ที่ติดตั้ง Arduino IDE
ขั้นตอนที่ 5 การเตรียมโปรแกรมเมอร์
Digispark Attiny85 สามารถตั้งโปรแกรมผ่านขั้วต่อ micro USB บนบอร์ดโดยใช้ Arduino IDE อย่างไรก็ตามคุณต้องเสียสละหน่วยความจำแฟลชขนาด 8 KB สำหรับบูตโหลดเซอร์ 2 KBร่างนาฬิกาไม่เหมาะกับ bootloader ดังนั้นคุณต้องใช้โปรแกรมเมอร์ ISP จึงทำการลบ bootloader หากคุณไม่มีโปรแกรมเมอร์ ISP อยู่ในมือ (เช่นของฉัน) คุณสามารถใช้บอร์ด Arduino แทน ฉันจะใช้ Arduino Uno แต่คุณสามารถใช้กระดานอื่นได้ ดังนั้นเราจึงเชื่อมต่อ Arduino Uno กับคอมพิวเตอร์ เปิด Arduino IDE เปิดไฟล์ - ตัวอย่าง - Arduino ISP เลือกในเมนูเครื่องมือ - บอร์ด - Arduino Uno เราเลือกพอร์ตที่เชื่อมต่อกับ Arduino และคลิกดาวน์โหลด ร่างเริ่มต้นด้วยคำแนะนำวิธีการเชื่อมต่อ Arduino กับคอนโทรลเลอร์ที่ตั้งโปรแกรมได้
// 10: รีเซ็ตทาส
// 11: MOSI
// 12: MISO
// 13: SCK
รูปแบบการเชื่อมต่อกับ Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
ขั้นตอนที่ 6 เตรียมลวดสำหรับการโหลดภาพร่าง
มีหลายตัวเลือกสำหรับร่างและเพียงเพื่อความสะดวกในการดาวน์โหลดเราจะผลิตสายเชื่อมต่อ Arduino Uno (เป็นโปรแกรมเมอร์ ISP) และนาฬิกาของเรา ที่นี่ฉันขอแนะนำให้ใช้สายสีที่ตรงกับสีที่เราได้ใช้ไปแล้ว ในอีกด้านหนึ่งควรมีบล็อก:
PB0 สีเหลือง | PB1 สีน้ำเงิน PB2 สีน้ำเงิน PB5 สีเทา +5 แดง | GND Black
บล็อกนี้เชื่อมต่อกับนาฬิกาที่ด้านบนของบล็อกนาฬิกา
ในทางตรงกันข้ามมีสองแผ่นสำหรับเชื่อมต่อกับ Arduino Uno:
พิน 10 สีเทา Pin 11 Yellow | Pin 12 Blue | พิน 13 บลู
+5 แดง | GND Black
ควรมีลักษณะดังนี้:
ขั้นตอนที่ 7 เฟิร์มแวร์
ดังนั้นฉันจึงเขียนตัวเลือกภาพร่างสำหรับนาฬิกาของเรา ฉันจะเขียนทีหลังว่าอะไรคือความแตกต่าง ในการเติมร่างให้เรียกใช้ Arduino IDE เลือกเมนูเครื่องมือตั้งค่าพารามิเตอร์ต่อไปนี้:
บอร์ด - Attiny 25/45/85
หน่วยประมวลผล - Attiny 85
นาฬิกา - ภายใน 16
เลือกพอร์ตอนุกรมที่ ISP โปรแกรมเมอร์หรือ Arduino เชื่อมต่อเป็นโปรแกรมเมอร์ นอกจากนี้ในเมนูเครื่องมือ - โปรแกรมเมอร์เลือก "Arduino as ISP" ตอนนี้เลือก Sketch - ดาวน์โหลดผ่านโปรแกรมเมอร์ มันยังคงรอการดาวน์โหลดให้เสร็จสมบูรณ์
ขั้นตอนที่ 8 ภาพร่าง
ตัวเลือกแรกคือนาฬิกาที่มีวันที่ ในการตั้งเวลาคุณจะต้องเชื่อมต่อปุ่มต่างๆดังนี้:
ในการปักหมุด PB1, PB3, PB4
ตัวเลือกที่สองเป็นเพียงนาฬิกา ในการตั้งเวลาคุณต้องใช้ USB-TTL
และตัวเลือกที่สามนาฬิกาตั้งโต๊ะพร้อมวันที่และเทอร์โมมิเตอร์
ขั้นตอนที่ 9 เปิดตัว
ในการเริ่มนาฬิกาหากคุณใช้แบตเตอรี่ลิเธียมคุณจะต้องติดตั้งจัมเปอร์ในบล็อกระหว่างหน้าสัมผัส BAT, +5 และ VCC คุณสามารถใช้ลวดเส้นเล็ก ๆ หากคุณมีแบตเตอรี่คุณจะต้องมีจัมเปอร์สองอันใส่แรกระหว่าง BAT และ Vin, วินาที - + 5 และ VCC