สารบัญ:

เพลงธีม PUBG + แอนิเมชั่นด้วย Arduino!: 13 ขั้นตอน (พร้อมรูปภาพ)
เพลงธีม PUBG + แอนิเมชั่นด้วย Arduino!: 13 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เพลงธีม PUBG + แอนิเมชั่นด้วย Arduino!: 13 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เพลงธีม PUBG + แอนิเมชั่นด้วย Arduino!: 13 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: อะไรเอ่ย #สิว #สิวอุดตัน #สิวอักเสบ #สิวเห่อ #รอยสิว #รักษาสิว #เล็บเท้า #satisfying 2024, พฤศจิกายน
Anonim
Image
Image
รวบทุกส่วน.
รวบทุกส่วน.

สวัสดีและยินดีต้อนรับสู่ความสนุกที่สอนได้! ฉันหวังว่าทุกท่านคงสบายดีและมีสุขภาพแข็งแรง โปรเจ็กต์เล็กๆ แต่น่าทึ่งนี้เกี่ยวกับการเล่นเพลงธีม PUBG และแม้แต่การสร้างแอนิเมชั่นเกมโดยใช้ Arduino

ส่วนประกอบที่ใช้นั้นหาได้ง่ายมากและประกอบบนเขียงหั่นขนมได้ง่ายมาก ฉันจะแบ่งปันกระบวนการสร้างและเขียนโค้ดทั้งหมดในคำแนะนำนี้ อยู่ต่อจนจบ!

ฉันขอแนะนำอย่างยิ่งให้คุณดูวิดีโอเพื่อรับแนวคิดของโครงการ:) หากคุณชอบโปรดกดไลค์และแชร์วิดีโอ พิจารณาสมัครรับข้อมูลจากช่องของฉันหากคุณสนุกกับงานสร้างของฉัน ขอบคุณ!

ดังนั้นโดยไม่ชักช้าเรามาเริ่มกันเลย!

ขั้นตอนที่ 1: รวบรวมชิ้นส่วนทั้งหมด.

รวบทุกส่วน.
รวบทุกส่วน.

โครงสร้างส่วนใหญ่ประกอบด้วย Arduino Nano ซึ่งเป็นแกนหลักสำหรับโครงการนี้ คุณสามารถใช้ Arduino รุ่นอื่นๆ ได้ เช่น Arduino Uno, Arduino Pro Mini, Arduino Mega เป็นต้น เพื่อแสดงภาพเคลื่อนไหวและรูปภาพ ฉันตัดสินใจใช้จอแสดงผล OLED ขนาด 0.96 นิ้ว ที่มีความละเอียด 128 x 64 พิกเซล จอแสดงผลนี้สามารถเชื่อมต่อกับ Arduino กับโปรโตคอล I2C ที่ต้องการเพียงสองสายสำหรับข้อมูลและนาฬิกา ซึ่งจะช่วยลดจำนวนการเชื่อมต่อและทำให้โปรเจ็กต์มีขนาดกะทัดรัดมากขึ้น สำหรับการเล่นเมโลดี้ของธีม PUBG ฉันใช้ออด 5V ซึ่งฉันเชื่อมต่อพินบวกกับพินดิจิทัล 6 ของ Arduino และกราวด์ไปที่กราวด์ของ Arduino

นี่คือรายการชิ้นส่วนที่จำเป็นสำหรับโครงการ:

  1. Arduino Nano (หรือบอร์ด Arduino อื่น ๆ ที่คุณเลือก)
  2. โมดูลแสดงผล OLED ขนาด 0.96 นิ้ว
  3. ออด 5V
  4. สายจัมเปอร์
  5. เขียงหั่นขนม
  6. สายการเขียนโปรแกรม Arduino

ขั้นตอนที่ 2: การเชื่อมต่อจอแสดงผล OLED

การเชื่อมต่อจอแสดงผล OLED
การเชื่อมต่อจอแสดงผล OLED
การเชื่อมต่อจอแสดงผล OLED
การเชื่อมต่อจอแสดงผล OLED
การเชื่อมต่อจอแสดงผล OLED
การเชื่อมต่อจอแสดงผล OLED

จำเป็นต้องมีการเชื่อมต่อทั้งหมด 4 รายการเพื่อให้จอแสดงผล OLED เชื่อมต่อจาก Arduino:

Vcc 5V ของ Arduino

Gnd Gnd ของ Arduino

SDA A4 ของ Arduino

SCK A5 ของ Arduino

พิน A4 และ A5 ของ Arduino รองรับอินพุตแบบอะนาล็อกได้หลากหลายรวมถึงพินสำหรับการสื่อสาร I2C ที่นี่เราใช้พินสำหรับโปรโตคอล I2C เพื่อเชื่อมต่อกับโมดูลการแสดงผล

ลิงค์ไปยังห้องสมุด Adafruit ที่ใช้ในโครงการนี้:

ขั้นตอนที่ 3: เชื่อมต่อ Buzzer

การเชื่อมต่อ Buzzer
การเชื่อมต่อ Buzzer
การเชื่อมต่อ Buzzer
การเชื่อมต่อ Buzzer

ออด 5V มีขั้วจ่ายบวกและลบ

พินบวก D6 ของ Arduino (พินดิจิตอล 6) (คุณสามารถใช้พินดิจิทัลของ Arduino ได้)

พินลบ Gnd ของ Arduino

เรากำลังจะสร้างโทนเสียงที่ต้องการบนพินดิจิตอล D6 ซึ่งเสียงกริ่งจะเล่นเพลง

ขั้นตอนที่ 4: การเชื่อมต่อฮาร์ดแวร์ทั้งหมดเสร็จสมบูรณ์.

การเชื่อมต่อฮาร์ดแวร์ทั้งหมดเสร็จสมบูรณ์.
การเชื่อมต่อฮาร์ดแวร์ทั้งหมดเสร็จสมบูรณ์.
การเชื่อมต่อฮาร์ดแวร์ทั้งหมดเสร็จสมบูรณ์.
การเชื่อมต่อฮาร์ดแวร์ทั้งหมดเสร็จสมบูรณ์.

การเชื่อมต่อที่จำเป็นทั้งหมดของจอแสดงผล OLED และเสียงเตือนเสร็จสมบูรณ์ ทีนี้มาทำความเข้าใจด้านการเขียนโปรแกรมของโครงการกันก่อน..

ขั้นตอนที่ 5: รวมไลบรารีและการเริ่มต้นโปรโตคอลการแสดงผล

รวมถึงไลบรารีและการเริ่มต้นโปรโตคอลการแสดงผล
รวมถึงไลบรารีและการเริ่มต้นโปรโตคอลการแสดงผล

โปรแกรมทั้งหมดถูกแบ่งออกเป็น 3 องค์ประกอบ:

  1. โปรแกรมหลักประกอบด้วยการเริ่มต้นและลำดับของการแสดงภาพและทำนอง
  2. ไฟล์ "pitches.h" ประกอบด้วยรายการโน้ตดนตรีและความถี่ที่เกี่ยวข้อง
  3. ไฟล์ "pictures.h" ประกอบด้วยบิตแมปของภาพที่จะแสดง

ขั้นตอนการแปลงภาพเป็นอาร์เรย์บิตแมปสำหรับจอแสดงผล OLED จะกล่าวถึงในขั้นตอนต่อไป

ฉันจะแนบรหัสทั้งหมดพร้อมกับคำแนะนำนี้เพื่อให้คุณใช้:)

ขั้นตอนที่ 6: ทำนองเพลงเมโลดี้.

ทำนองเพลงเมโลดี้.
ทำนองเพลงเมโลดี้.
ทำนองเพลงเมโลดี้.
ทำนองเพลงเมโลดี้.

ฉันค้นหาโน้ตพื้นฐานบนอินเทอร์เน็ตที่ประกอบด้วยเพลงธีม PUBG แล้วเพิ่มลงในอาร์เรย์เมโลดี้

ด้วยการใช้เวลามากในการเล่นและเล่นซ้ำลำดับเมโลดี้ ฉันจึงสร้างอาร์เรย์ระยะเวลาที่เกี่ยวข้องกับระยะเวลาที่แต่ละโน้ตต้องเล่น การรวมกันของเมโลดี้อาร์เรย์และอาร์เรย์ระยะเวลาประกอบด้วยข้อมูลที่สมบูรณ์ในการเล่นเพลง

ขั้นตอนที่ 7: เล่นเพลงระหว่างการเริ่มต้น.

เปิดเพลงตอนสตาร์ท.
เปิดเพลงตอนสตาร์ท.

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

ขั้นตอนที่ 8: แปลงรูปภาพเป็นบิตแมป.

การแปลงรูปภาพเป็นบิตแมป.
การแปลงรูปภาพเป็นบิตแมป.

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

ลิงค์สำหรับสมัครออนไลน์นี้คือ

ขอบคุณผู้สร้างที่น่าทึ่งของแอปพลิเคชันนี้ มันทำให้งานของฉันง่ายขึ้นมาก

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

ขั้นตอนที่ 9: การปรับความละเอียดตามจอแสดงผลของคุณ

การปรับความละเอียดตามการแสดงผลของคุณ
การปรับความละเอียดตามการแสดงผลของคุณ

ในขั้นตอนต่อไป เราต้องปรับขนาดภาพตามความละเอียดของการแสดงผล สำหรับจอแสดงผล OLED ของเรา กว้าง 28 พิกเซล และสูง 64 พิกเซล ซึ่งผมได้ปรับตามภาพแล้ว ปรับเกณฑ์ความสว่างเพื่อให้แน่ใจว่าภาพมีความชัดเจนมาก (นี่คือข้อดีของการใช้ภาพที่มีสีทึบ ยิ่งมีการไล่ระดับสีมากขึ้น คุณภาพของภาพในการแสดงภาพขาวดำจะลดลงตามเกณฑ์ความสว่าง).

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

ขั้นตอนที่ 10: การสร้าง Bitmap Array.

กำลังสร้าง Bitmap Array.
กำลังสร้าง Bitmap Array.

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

ที่นั่น! คุณได้แปลงรูปภาพของคุณเป็นอาร์เรย์บิตแมปที่ต้องการเรียบร้อยแล้ว ฉันได้ทำตามขั้นตอนนี้ทั้งหมด 7 ภาพและบันทึกไว้

ขั้นตอนที่ 11: การแสดงรูปภาพตามลำดับ

การแสดงภาพเป็นลำดับ
การแสดงภาพเป็นลำดับ
การแสดงภาพเป็นลำดับ
การแสดงภาพเป็นลำดับ
การแสดงภาพเป็นลำดับ
การแสดงภาพเป็นลำดับ

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

ข้อมูลโค้ดอธิบายวิธีการเรียกใช้ฟังก์ชันโดยอิงตามฟังก์ชัน millis()

อาร์เรย์บิตแมปทั้งหมดของรูปภาพถูกเก็บไว้ในไฟล์ "pictures.h"

ขั้นตอนที่ 12: รหัสทั้งหมด:

ฉันกำลังแบ่งปันรหัสทั้งหมดให้คุณทุกคนได้ลองเล่นและทดลองด้วย!

เมื่อทุกอย่างดูดีแล้วก็ถึงเวลาอัปโหลดไปยังบอร์ด:)

ขั้นตอนที่ 13: ผลลัพธ์:

ผลลัพธ์
ผลลัพธ์
ผลลัพธ์
ผลลัพธ์
ผลลัพธ์
ผลลัพธ์
ผลลัพธ์
ผลลัพธ์

อย่างที่คุณเห็นภาพนั้นยอดเยี่ยมมาก! และทำนองก็เช่นกัน! ฉันหวังว่าคุณจะได้ดูวิดีโอที่มีการสาธิตทั้งหมด

ฉันหวังว่า PUBG เวอร์ชัน Arduino นี้เป็นโครงการที่น่าตื่นเต้นสำหรับเกมและผู้ที่ชื่นชอบอุปกรณ์อิเล็กทรอนิกส์

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

จนกว่าจะถึงครั้งต่อไป.

แนะนำ: