สารบัญ:

นามบัตร/เกมคอนโซล: ATtiny85 และหน้าจอ OLED: 5 ขั้นตอน (พร้อมรูปภาพ)
นามบัตร/เกมคอนโซล: ATtiny85 และหน้าจอ OLED: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: นามบัตร/เกมคอนโซล: ATtiny85 และหน้าจอ OLED: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: นามบัตร/เกมคอนโซล: ATtiny85 และหน้าจอ OLED: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Gamify Your PCB Business Card 2024, กรกฎาคม
Anonim
Image
Image
ความกล้า
ความกล้า

สวัสดีทุกคน

วันนี้ผมจะแสดงให้คุณเห็นว่าคุณสามารถสร้างนามบัตร/เกมคอนโซล/อะไรก็ตามที่คุณสามารถจินตนาการได้ว่ามีจอแสดงผล OLED แบบเรืองแสง I2C และไมโครโปรเซสเซอร์ ATtiny85 ในคำแนะนำนี้ ฉันจะบอกคุณว่า PCB ที่ฉันออกแบบใช้งานได้จริงอย่างไร คุณสามารถสร้างมันขึ้นมาได้อย่างไร และคุณสามารถทำอะไรกับฟังก์ชันนี้ได้บ้าง หากคุณมีหน้าจอ I2C ที่เชื่อมต่อกับ ATtiny85 แล้ว Instructable นี้ยังคงมีประโยชน์หากคุณกำลังพยายามให้รูปภาพแสดงหรือต้องการสร้างเมนู เกม และอื่นๆ

คุณอาจสงสัยว่าสิ่งนี้คืออะไร เป็นเพียงแผงวงจรพิมพ์ธรรมดาที่มีแบตเตอรี่ หน้าจอ ปุ่ม สวิตช์เปิด/ปิด และหน่วยประมวลผล คิดว่าเป็นเกมบอยตัวเล็ก ๆ ที่คุณสามารถตั้งโปรแกรมให้ทำสิ่งต่าง ๆ ได้อย่างง่ายดาย ต่อไปข้างหน้า!

ขั้นตอนที่ 1: ความกล้า

ความกล้า
ความกล้า
ความกล้า
ความกล้า

หากคุณยังไม่ได้ทำ เราขอแนะนำให้คุณสร้างบัญชีบน circuits.io สิ่งนี้จะช่วยให้คุณปรับแต่งการออกแบบของฉันให้เหมาะกับความต้องการของคุณ

ในขั้นตอนนี้ ฉันจะอธิบายวิธีที่คุณสามารถรับมือกับแผงวงจรพิมพ์ (PCB) เหล่านี้ได้ ฉันสร้าง PCB ของฉันใน circuits.io ซึ่งเป็นเครื่องมือออนไลน์ที่ยอดเยี่ยมที่คุณสามารถใช้สร้างแผนผังวงจรและ PCB คุณสามารถดูการออกแบบได้ที่นี่:

สนใจรับ PCB สามารถสั่งซื้อได้มากเท่าที่ต้องการจาก OSH Park โดยใช้ลิงค์นี้:

กว่าจะได้บอร์ดต้องใช้เวลา (1-3 สัปดาห์) แต่เชื่อเถอะ มันคุ้มค่า! คุณจะต้องใช้ส่วนต่างๆ ต่อไปนี้เพื่อสร้างการ์ดอเนกประสงค์ของคุณเอง:

  • ATtiny85 ในแพ็คเกจ SOIC-8 นี่คือสมองของโครงการของเราที่ควบคุมทุกอย่าง
  • หน้าจอ OLED I2C 128x64 พิกเซล:
  • ตัวต้านทาน 22k โอห์ม 2 ตัว เหล่านี้เป็นตัวต้านทานแบบดึงขึ้นสำหรับปุ่มต่างๆ
  • ตัวยึด CR2032 แบบยึดพื้นผิว:
  • CR2032 แบตเตอรี่เซลล์แบบเหรียญ แบตเตอรี่ขนาดเล็กนี้สามารถจ่ายไฟให้กับวงจรได้เป็นระยะเวลาหนึ่ง
  • สวิตช์เลื่อนแบบ 3 ขา นี่คือสวิตช์ไฟ!
  • หัวหญิง. คุณสามารถใช้สิ่งเหล่านี้เพื่อตั้งโปรแกรม ATtiny85 ขณะที่อยู่ในวงจร!
  • ปุ่ม 6 มม.:
  • แผงวงจรพิมพ์ (คุณสามารถสั่งซื้อได้โดยใช้ลิงค์ด้านบน

เครื่องมือ:

  • หัวแร้ง (มีปลายแหลม)
  • ประสาน
  • ปัตตาเลี่ยนตะกั่ว

สำหรับการเขียนโปรแกรม ATtiny85:

  • 6 สายจัมเปอร์ชายกับชาย
  • ตัวเก็บประจุขนาดเล็ก 10 ไมโครฟารัด
  • Arduino Uno หรือไมโครคอนโทรลเลอร์ที่ใช้ ATmega อื่น ๆ

ขั้นตอนที่ 2: การประกอบ PCB

การประกอบ PCB
การประกอบ PCB
การประกอบ PCB
การประกอบ PCB

นี้เป็นเรื่องง่ายสวยจริงๆ สิ่งที่คุณต้องทำคือประสานส่วนประกอบทั้งหมดเข้าที่ตามที่ระบุไว้บนกระดาน หน้าจอ OLED บางรุ่นมีหลายขนาด ดังนั้นหากหน้าจอของคุณใหญ่เกินไปสำหรับบอร์ด คุณสามารถแขวนไว้ด้านบนเหมือนในภาพด้านบน แล้วงอส่วนหัวอีกด้านแล้วประสานเข้ากับรูที่ พวกเขาควรจะไป ดูภาพที่สองหากคุณสับสน

เคล็ดลับที่เป็นประโยชน์บางประการ:

  • จุดเล็ก ๆ บน ATtiny จะต้องถูกจัดวางให้อยู่ใกล้กับสวิตช์สไลด์ มิฉะนั้น คุณจะมีพินในลำดับที่ไม่ถูกต้อง
  • การวางแนวของที่วางแบตเตอรี่มีความสำคัญ ส่วนปลายของตัวยึดที่มีการสลักเครื่องหมายบวกจะต้องอยู่ที่แผ่นรองด้านล่าง (ชี้ไปที่ตัวต้านทาน)
  • การวางแนวของสวิตช์ ปุ่ม ส่วนหัว และตัวต้านทานไม่สำคัญ

หากคุณมีคำถามใด ๆ โปรดส่งอีเมลถึงฉันที่ info[at]coniferapps.com

ขั้นตอนที่ 3: ถึงเวลาเริ่มเขียนโปรแกรมแล้ว

ฉันได้คำสั่งผสม ATtiny/หน้าจอของฉันโดยใช้คำสั่งต่อไปนี้: https://www.instructables.com/id/ATTiny85-connects-to-I2C-OLED-display-Great-Things/ อันที่จริง ฉันยังใช้ห้องสมุดที่ AndyB2 ดัดแปลงเป็นภาพสเก็ตช์ของฉันเอง

วิธีที่เราจะเขียนโปรแกรม ATtiny คือผ่าน Arduino Uno คำแนะนำต่อไปนี้แสดงวิธีการทำสิ่งนี้: https://www.instructables.com/id/Program-an-ATtiny-with-Arduino/ หากคุณยังไม่ได้สังเกต หมุดที่จำเป็นทั้งหมดจะแยกส่วนที่เป็นประโยชน์บน PCB พร้อมหมายเลขพินที่ด้านหลัง

หากคุณต้องการเริ่มต้นด้วยตัวอย่างพื้นฐาน ให้อัปโหลดภาพร่างที่ลิงก์ด้านบนไปยังการ์ดของคุณ ตรวจสอบให้แน่ใจว่าได้เลื่อนสวิตช์เปิดปิดไปทางขวาก่อนดำเนินการ คุณไม่ต้องการให้แบตเตอรี่และ Uno จ่ายแรงดันไฟฟ้าพร้อมกัน! ในโฟลเดอร์นั้นมีไฟล์จำนวนมาก ฉันจะพูดถึงเรื่องนี้ให้มากขึ้นในขั้นตอนต่อไป แต่ไฟล์ส่วนหัวส่วนใหญ่ในนั้นมีการแทนค่าเลขฐานสิบหกของภาพบิตแมปโมโนโครม ไฟล์.bmp เป็นภาพเหล่านี้ที่ผมเพิ่งพูดถึงไป อย่างที่คุณเห็น มันเป็นภาพขาวดำและมีขนาด 128x64 พิกเซลพอดี สิ่งเหล่านี้ไม่ได้อัปโหลดไปยังไมโครคอนโทรลเลอร์ แต่ฉันคิดว่าฉันจะรวมไว้เพื่อใช้อ้างอิง

ขั้นตอนที่ 4: เกี่ยวกับตัวโปรแกรมเอง

ภาพสเก็ตช์ที่ฉันให้คุณอัปโหลดในขั้นตอนที่แล้วคือตัวอย่างพื้นฐานเกี่ยวกับวิธีใช้งานเมนู เมื่อคุณคลิกปุ่มซ้ายและขวาแต่ละปุ่ม ระบบจะสลับตัวนับในโปรแกรม จากนั้นจะมีการเรียกฟังก์ชันที่มี ATtiny ตรวจสอบสถานะของตัวนับนี้ และตามหมายเลขของตัวนับ ATtiny จะวาดภาพของตัวเลือกเมนูที่เลือกอยู่บนหน้าจอ แต่ละเซลล์เมนูที่เลือกต่างกันจะเป็นภาพของตัวเอง หากกดปุ่มด้านบน ATtiny จะตรวจสอบสถานะของตัวนับอีกครั้งเพื่อกำหนดหน้าจอรายละเอียดที่จะแสดง ในขณะที่หน้าจอรายละเอียดเหล่านี้กำลังแสดงอยู่ ATtiny จะทำการตรวจสอบอย่างต่อเนื่องเพื่อดูว่ามีการกดปุ่มใดๆ หรือไม่ เมื่อตรวจพบการกดปุ่ม ฟังก์ชันที่ดึงเมนูจะถูกเรียกอีกครั้ง และสถานะปัจจุบันของเมนูจะถูกวาดบนหน้าจอ นำเรากลับสู่เมนู ฟังดูค่อนข้างน่ากลัวหากคุณเพิ่งเริ่มเขียนโปรแกรม แต่ฉันสัญญาว่าเมื่อคุณดูโค้ดแล้ว มันจะสมเหตุสมผลกว่า

หน้าจอรายละเอียดแต่ละหน้าจอก็เป็นภาพของตัวเองเช่นกัน

หากคุณไม่สังเกต ตัวเลือกเซอร์ไพรส์จะไม่ช่วยอะไร เราจะไปที่นี้ในขั้นตอนต่อไป:)

ขั้นตอนที่ 5: ปรับแต่งการสร้างสรรค์ของคุณ

เมื่อคุณได้เห็นสิ่งที่ฉันทำไปแล้ว ก็ถึงเวลาที่คุณจะปรับแต่งการ์ดด้วยข้อมูลของคุณเอง ไลบรารี่ที่ฉันรวมไว้มีฟังก์ชันในการวาดข้อความบนหน้าจอ แต่ฉันขอแนะนำอย่างยิ่งให้คุณใช้โซลูชันที่ใช้รูปภาพเป็นหลัก เนื่องจากมีแนวโน้มว่าจะดูดีขึ้นมาก เดิมทีฉันกำลังจะเพิ่มรูปถ่ายในส่วนของโปรแกรมของคำสั่งนี้ แต่ก็นานพอที่จะรับประกันว่าสามารถสั่งได้ คุณสามารถดูได้ที่นี่:

ตอนนี้คุณรู้วิธีเพิ่มรูปภาพแล้ว มีหลายสิ่งที่คุณสามารถทำการ์ดได้ คุณสามารถใช้เมนูของฉันและหน้าจอช่วยเหลือ และเพียงแค่เพิ่มข้อมูลติดต่อของคุณเอง คุณสามารถสร้างเกมเล็ก ๆ สำหรับตัวเลือก "เซอร์ไพรส์" ได้ มันค่อนข้างง่ายที่จะย้ายสไปรท์ขนาด 10x10 ตัวเล็ก ๆ รอบหน้าจอโดยใช้ปุ่มต่างๆ และตรวจสอบว่ามันชนกับสไปรต์ตัวอื่นหรือไม่ คุณสามารถสร้างโคลนนกเครื่องปัดโดยใช้แนวคิดเดียวกันนี้ได้! หากคุณทำอะไรโปรดโพสต์รูปถ่าย / วิดีโอ / ไฟล์ของมันในความคิดเห็น!

อีกหนึ่งจุดเล็ก ๆ ที่ฉันลืมพูดถึง เท่าที่เก็บข้อมูล ATtiny85 ไม่มีอะไรมาก สำหรับโปรแกรมประมาณ 8kb ภาพร่างปัจจุบันของฉันที่มี 5 ภาพและไลบรารีแสดงผล OLED มีพื้นที่ประมาณ 7 ใน 8kb เหล่านั้น เกมใด ๆ ที่คุณสร้างจะต้องพอดีกับระยะขอบที่ค่อนข้างเล็กนี้ ดังนั้นมันจะเป็นความท้าทายที่สนุก:)

ขอขอบคุณที่ฟังฉันพูดเรื่อยเปื่อย และหากคุณมีคำถามใดๆ โปรดส่งอีเมลหาฉันที่ info[at]coniferapps.com (แทนที่ [at] ด้วย @) โปรดลงคะแนนให้ฉันในการแข่งขัน Autodesk Circuits! หวังว่าคุณจะมีนามบัตร/เกมเป็นของตัวเองเร็วๆ นี้!

แนะนำ: