สารบัญ:

Sonic Bow Tie โดย David Boldevin Engen: 4 ขั้นตอน (พร้อมรูปภาพ)
Sonic Bow Tie โดย David Boldevin Engen: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Sonic Bow Tie โดย David Boldevin Engen: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Sonic Bow Tie โดย David Boldevin Engen: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Sonic Bow Tie 2024, พฤศจิกายน
Anonim
Image
Image

หูกระต่ายขนาดกะทัดรัด สามารถแสดงเสียงรอบข้างอย่างต่อเนื่องในความถี่ที่แตกต่างกันสี่ความถี่บนอาร์เรย์ LED 4x5 ที่มีกระจกเงาสองชุด

บทแนะนำนี้จะอธิบายวิธีการทำหูกระต่ายที่จะทำให้คุณโดดเด่นในทุกกลุ่ม

สิ่งที่คุณต้องการสำหรับโครงการนี้:

1 Arduino Pro Micro หรือ Arduino ขนาดใกล้เคียงกันที่ทำงานที่ 16MHz

ไฟ LED 3 มม. 40 ดวง

1 ปุ่มง่าย ๆ

1 อิเล็กเตรตไมโครโฟน

1 แบตเตอรี่ลิเธียมไอออนแบบรีชาร์จ 3.7V 800mAh 25C 1 เซลล์

ตัวต้านทาน 10 100Ω

ตัวต้านทาน 1 10kΩ

ตัวต้านทาน 1 220Ω

การเข้าถึงเครื่อง PCB (แผงวงจรพิมพ์)

เนคไทแบบมีตะขอ/แบบหนีบแบบปรับได้ราคาถูก หรือแค่แบบคล้องคอแบบปรับได้/แบบหนีบก็ได้

ขั้นตอนที่ 1: พิมพ์ PCB

พิมพ์ PCB
พิมพ์ PCB

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

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

ขั้นตอนที่ 2: บัดกรีมันทั้งหมดเข้าด้วยกัน

บัดกรีมันทั้งหมดเข้าด้วยกัน
บัดกรีมันทั้งหมดเข้าด้วยกัน

เมื่อทำการบัดกรีไฟบน PCB สิ่งสำคัญคือต้องประสานด้านบวกของ LED เข้ากับสี่เหลี่ยมและด้านลบกับวงกลมอย่างสม่ำเสมอ การทำตรงกันข้ามจะทำให้ที่อยู่ในรหัสเปิดไฟผิดดวง และความไม่สม่ำเสมอจะทำให้ไฟหลายดวงเปิดขึ้นด้วยสิ่งเร้าเดียวกัน

จากนั้นประสานตัวต้านทาน 10 100Ω ที่ด้านหน้าของหูกระต่าย

จากนั้นเชื่อมต่อชิ้นส่วนอื่นๆ ตามที่แสดงในแผนภาพวงจร สามารถบัดกรีแบตเตอรี่โดยตรงกับ Arduino เนื่องจากจะชาร์จใหม่เมื่อเชื่อมต่อ Arduino ผ่าน USB ก่อนติดกาวทุกชิ้นที่ด้านหลังของ PCB คุณควรทดสอบข้อผิดพลาดในอาร์เรย์

ขั้นตอนที่ 3: การอัปโหลดโค้ดและการดีบัก

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

หากไม่เป็นเช่นนั้น ให้ใช้ฟังก์ชัน Blink(LED) ซึ่งรับอินพุตเป็นตัวเลข 1-20 สำหรับไฟแต่ละดวงในลูป while(mode=0) ในลูปว่างขณะแสดงความคิดเห็นส่วนที่เหลือในขณะที่ ห่วง

วงเป็นโมฆะ () {

ในขณะที่ (โหมด == 0) {

กะพริบตา(1); //ทดสอบทีละดวงเพื่อดูว่าไฟทำงานอย่างที่ควรจะเป็นหรือไม่

//กะพริบ (2); //ขั้นตอนต่อไปไปจนถึง 20

/* if (digitalRead (ปุ่ม) == 0) {

โหมด = 1;

ปิด();

เปิด (1);

ล่าช้า(200);

หยุดพัก;

}

ปิด(); */ // ส่วนนี้มีการแสดงความคิดเห็นขณะทำการดีบั๊ก

}

…..

การดีบัก:

หากคุณมีไฟที่ต่างกันในแต่ละด้าน แสดงว่ามีบางอย่างผิดปกติกับการบัดกรี และคุณควรปลดไฟที่ได้รับผลกระทบออกและทำขั้นตอนที่ 2 อีกครั้ง

หากปิดไฟคู่ 2 ดวง อาจมีจุดแวะหายไป

หากไฟสองดวงติดสว่างพร้อมกันเสมอและให้แสงสว่างน้อยกว่าดวงอื่น แสดงว่ามีการบัดกรีในทางที่ผิด

หากไฟแต่ละดวงเปิดทีละดวง แต่อย่าทำตามรูปแบบที่อธิบายไว้ในคำแนะนำที่ด้านบนของโค้ด แสดงว่าคุณทำขั้นตอนที่ 2 ผิดพลาด

ปัญหาอื่นๆ อาจเกิดขึ้นจากการเชื่อมต่อที่ไม่ดีหรือการลัดวงจรบน PCB

คำเตือน: ส่วนนี้เป็นเทคนิคมากและไม่จำเป็นสำหรับการทำหูกระต่าย

ฉันได้เขียนโค้ดการวิเคราะห์สเปกตรัมโดยเฉพาะสำหรับ Arduino ที่มีความถี่สัญญาณนาฬิกา 16MHz ดังนั้นฉันจึงไม่มั่นใจว่าจะทำงานได้ดีกับระบบอื่น ๆ หรือไม่ มันอาจทำให้วงดนตรีทั้งหมดมีปฏิกิริยาแตกต่างกันมาก แต่อาจไม่เปลี่ยนแปลงมากนัก

ทำงานโดยใช้ตัวอย่าง 60 ตัวอย่างในเวลาประมาณ 6, 7ms ซึ่งเป็นความถี่สุ่มตัวอย่างประมาณ 8, 9kHz จากนั้นวิเคราะห์ด้วย 4 วิธีที่แตกต่างกันโดยให้ 4 ความถี่ที่แตกต่างกัน

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

สูตรทางคณิตศาสตร์คร่าวๆ สำหรับการวิเคราะห์:

Σ(sq(x[2n-1]-x[2n]))

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

ระบบถัดไปทำเช่นเดียวกัน แต่แทนที่จะเพิ่ม 2 ตัวอย่างในคราวเดียว จะเพิ่ม 10 ตัวอย่างซึ่งจะกลายเป็นตัวกรองแบนด์พาสสำหรับ 440Hz

การวิเคราะห์ครั้งสุดท้ายจะรวม 30 ตัวอย่างแรกและเปรียบเทียบกับผลรวมของ 30 ตัวอย่างสุดท้าย ซึ่งจะกลายเป็นตัวกรองแบนด์พาสสำหรับ 150Hz อย่างมีประสิทธิภาพ

ขั้นตอนที่ 4: กาวมันทั้งหมดเข้าด้วยกัน

กาวมันทั้งหมดเข้าด้วยกัน
กาวมันทั้งหมดเข้าด้วยกัน

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

ข้อควรจำ: ด้านหลังของฟังก์ชันผูกหูกระต่ายมีความสำคัญมากกว่าความสวยงาม เนื่องจากไม่มีใครเห็นสิ่งนี้

แนะนำ: