โคมไฟนีโอบอร์ด - ไม่ต้องใช้ SD และพิมพ์ 3 มิติ: 3 ขั้นตอน (พร้อมรูปภาพ)
โคมไฟนีโอบอร์ด - ไม่ต้องใช้ SD และพิมพ์ 3 มิติ: 3 ขั้นตอน (พร้อมรูปภาพ)
Anonim
โคมไฟนีโอบอร์ด - ไม่ต้องใช้ SD และพิมพ์ 3 มิติ
โคมไฟนีโอบอร์ด - ไม่ต้องใช้ SD และพิมพ์ 3 มิติ

By dmtinkdevFollow เพิ่มเติมโดยผู้เขียน:

Minecraft Ore Lamp - ขนาดที่ปรับแต่งได้และความหนาแน่นของพิกเซล
Minecraft Ore Lamp - ขนาดที่ปรับแต่งได้และความหนาแน่นของพิกเซล
Minecraft Ore Lamp - ขนาดที่ปรับแต่งได้และความหนาแน่นของพิกเซล
Minecraft Ore Lamp - ขนาดที่ปรับแต่งได้และความหนาแน่นของพิกเซล

โครงการฟิวชั่น 360 »

หลังจากสร้างตะเกียง Minecraft ให้ลูก 7 ขวบของฉันแล้ว น้องชายของเขาต้องการอะไรที่คล้ายกัน เขาชอบ SuperMario มากกว่า Minecraft ดังนั้นไฟกลางคืนของเขาจะแสดงสไปรท์วิดีโอเกม

โปรเจ็กต์นี้อิงจากโปรเจ็กต์ The Neoboard แต่ชิ้นส่วนต่างๆ สามารถพิมพ์แบบ 3 มิติได้ และ Arduino ไม่จำเป็นต้องใช้การ์ด SD เพื่ออ่านภาพ (สามารถเก็บไว้ในหน่วยความจำแฟลชได้)

เสบียง

  • 1x บอร์ด Arduino (Uno หรือ Nano ใช้ได้)
  • 2x ฟิลาเมนต์ (สีดำสำหรับตัวเครื่องและโปร่งใสสำหรับดิฟฟิวเซอร์) แม้ว่าคุณจะต้องการสีที่ต่างออกไปสำหรับขาตั้งของคุณ คุณก็ยังต้องใช้ไส้หลอดสีดำสำหรับส่วนแยกไฟ LED ฉันเคยใช้ปลา
  • 1 ปุ่มกด
  • ตัวต้านทาน 300-500 โอห์ม 1 ตัว (สำหรับขาอินพุตข้อมูลของแถบ)
  • ตัวเก็บประจุ 1x 1000 µF (เพื่อป้องกันแถบจากการเปลี่ยนแปลงอย่างกะทันหัน)
  • 1 16x16 leds แผงเมทริกซ์
  • วัสดุโดยทั่วไปของผู้ผลิต (กาว, สายไฟดูปองท์, ขั้วต่อแบบบัดกรีในตัว, สกรู M4 ฯลฯ)

ขั้นตอนที่ 1: ดาวน์โหลดโค้ดและประมวลผลรูปภาพของคุณ

ดาวน์โหลดโค้ดและประมวลผลภาพของคุณ
ดาวน์โหลดโค้ดและประมวลผลภาพของคุณ
ดาวน์โหลดโค้ดและประมวลผลภาพของคุณ
ดาวน์โหลดโค้ดและประมวลผลภาพของคุณ
ดาวน์โหลดโค้ดและประมวลผลภาพของคุณ
ดาวน์โหลดโค้ดและประมวลผลภาพของคุณ
ดาวน์โหลดโค้ดและประมวลผลภาพของคุณ
ดาวน์โหลดโค้ดและประมวลผลภาพของคุณ

คุณสามารถรับรหัสจากที่เก็บ GitHub

มีโปรไฟล์ Platformio สำหรับบอร์ด Arduino Uno และ Nano อยู่แล้ว

ในการประมวลผลภาพ เราจะใช้การประมวลผล (ทั้ง GUI หรือ cli-tool จะทำงาน) รหัสการประมวลผลจะอ่านภาพขนาด 16x16 และแปลงสีพิกเซลทั้งหมดเป็นอาร์เรย์ uint8 โดยจัดเรียงว่าโดยทั่วไปแล้วเมทริกซ์นำจะเชื่อมต่ออย่างไร

ใน 99% ของกรณีในการประมวลผลภาพของคุณอย่างถูกต้อง คุณจะต้อง:

  1. เปลี่ยนค่าเป็นตัวแปร inputFilename และ outputFilename
  2. คัดลอกเนื้อหาของไฟล์ outputFilename แล้ววางลงใน /src/sprites.h

ภายในรหัส Arduino คุณจะต้องเปลี่ยนด้วย

  • ค่าสำหรับ LEDS_PIN, BUTTON_PIN และ TOTAL_SPRITES
  • บางทีประเภท led ในตัวสร้างแถบ… แต่ไม่ควรเป็นเรื่องธรรมดา
  • และ 'สวิตช์' ภายในฟังก์ชัน changeSprite() เพื่อแสดงภาพทั้งหมดของคุณ

ดังที่คุณเห็นในการประกาศอาร์เรย์ เราใช้คีย์เวิร์ด PROGMEM เพื่อจัดเก็บข้อมูลแบบแฟลชแทน SDRAM ด้วยวิธีนี้ เราไม่จำเป็นต้องใช้ SDCard เพื่อเก็บข้อมูลสีของรูปภาพ

ดังที่คุณเห็นในภาพด้านบน การจัดเก็บโค้ดและรูปภาพ SuperMario 10 รูป ต้องการเพียง 11kbytes เท่านั้น ดังนั้นจึงมีพื้นที่เหลือเฟือสำหรับรูปภาพเพิ่มเติม (และมากยิ่งขึ้นหากคุณใช้บอร์ด MEGA2650)

ขั้นตอนที่ 2: พิมพ์ชิ้นส่วนทั้งหมด

พิมพ์ชิ้นส่วนทั้งหมด
พิมพ์ชิ้นส่วนทั้งหมด
พิมพ์ชิ้นส่วนทั้งหมด
พิมพ์ชิ้นส่วนทั้งหมด
พิมพ์ชิ้นส่วนทั้งหมด
พิมพ์ชิ้นส่วนทั้งหมด
พิมพ์ชิ้นส่วนทั้งหมด
พิมพ์ชิ้นส่วนทั้งหมด

ฉันได้ออกแบบชิ้นส่วนโดยใช้ Fusion360 คุณสามารถดาวน์โหลดได้จาก:https://a360.co/2FUfcNQ

หรือถ้าคุณต้องการเฉพาะไฟล์ STL ก็มีอยู่ใน Thingiverse:

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

สำหรับตัวกระจายแสง เดิมทีฉันคิดว่าการใช้แผ่นเคลือบเรียบและรูปแบบเส้นโค้งของฮิลแบร์ตจะให้ผลลัพธ์ที่ดีที่สุด แต่ฉันได้ทดสอบการผสมผสานชั้นต่างๆ ความละเอียด แผ่นงาน และรูปแบบต่างๆ เข้าด้วยกัน และฉันได้ผลลัพธ์ที่ดีที่สุดโดยใช้ PLA แบบโปร่งใส ฟิลาเมนต์จาก BQ ด้วยการตั้งค่าเหล่านี้:

  • แผ่น: แผ่นเคลือบผง
  • ชั้น: 3
  • ความละเอียด: 0.2
  • รูปแบบ: เส้นตรง

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

ฉันใช้ตัวเลือก PrusaSlicer เพื่อเปลี่ยนสีด้วยตนเองระหว่างการพิมพ์เพื่อสลับไปมาระหว่างเส้นใยโปร่งใสและเส้นใยสีดำ ดังนั้นฉันจึงมีตัวกระจายแสงและตัวแยกไฟ LED ในส่วนหนึ่ง (ไม่จำเป็นต้องติดกาว)

ขั้นตอนที่ 3: เชื่อมต่อทุกอย่าง

เชื่อมต่อทุกอย่าง
เชื่อมต่อทุกอย่าง
เชื่อมต่อทุกอย่าง
เชื่อมต่อทุกอย่าง
เชื่อมต่อทุกอย่าง
เชื่อมต่อทุกอย่าง

การเชื่อมต่อทุกส่วนไม่สามารถทำได้ง่ายไปกว่านี้อีกแล้ว: จ่ายไฟให้กับบอร์ดและนำเมทริกซ์ด้วยสาย USB 5V และเชื่อมต่อปุ่มกดและอินพุตสตริปกับพอร์ตบอร์ดที่กำหนด

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

หากทำทุกอย่างถูกต้อง คุณจะเห็นนกเพนกวินมีความสุขในเมทริกซ์ของคุณ:)

วิธีตรวจสอบว่าทุกอย่างทำงานได้ดี:

  • รูปภาพควรมีพื้นหลังไล่ระดับสีน้ำเงิน
  • มุมมีลูกศรสีเขียว
  • ลูกศรมุมล่างซ้ายถูกขยายด้วยพิกเซลสีแดง 2 อัน