สารบัญ:

แก้วไวน์แตกพร้อมเสียง!: 10 ขั้นตอน (พร้อมรูปภาพ)
แก้วไวน์แตกพร้อมเสียง!: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: แก้วไวน์แตกพร้อมเสียง!: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: แก้วไวน์แตกพร้อมเสียง!: 10 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: แก้วไวน์ราคาถูก vs ราคาแพง ดูยังไง? | กินไงไหนเล่าสิ [EP.1] | MONKEY MIG 2024, พฤศจิกายน
Anonim
Image
Image

สวัสดีและยินดีต้อนรับ!

นี่คือตัวอย่างเต็มรูปแบบของโครงการ!

ลำโพงมีระดับสูงสุดที่ขอบท่อประมาณ 130 เดซิเบล ดังนั้นอุปกรณ์ป้องกันเสียงจึงจำเป็นอย่างยิ่ง!

แนวคิดสำหรับโครงการนี้มีดังนี้:

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

ปุ่มควบคุมและการใช้งาน:

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

- ด้านบนขวาเป็นสวิตช์เปิด/ปิด มันเปิดหรือปิดไฟให้กับวงจรทั้งหมด

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

- ด้านล่างขวาเป็นปุ่มเอาท์พุตของลำโพง ขณะกด ลำโพงจะเริ่มส่งสัญญาณความถี่ที่บันทึกไว้ก่อนหน้านี้

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

ดังนั้น เตรียมตัวและ…

มาสร้างหุ่นยนต์กันเถอะ!

ขั้นตอนที่ 1: วัสดุ เครื่องมือ และอุปกรณ์

วัสดุ เครื่องมือ และอุปกรณ์
วัสดุ เครื่องมือ และอุปกรณ์
วัสดุ เครื่องมือ และอุปกรณ์
วัสดุ เครื่องมือ และอุปกรณ์

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

ที่จำเป็น:

วัสดุ:

  • แก้วไวน์ - อะไรก็ได้ ฉันไปที่ Goodwill และพบว่าราคาถูก ยิ่งทินเนอร์ยิ่งดี
  • ลวด (สีต่างๆจะเป็นประโยชน์ฉันใช้ 12 เกจ)
  • 6S 22.2v Lipo Battery (คุณไม่จำเป็นต้องมี mAh สูงจริงๆ ฉันใช้ 1300):

    hobbyking.com/en_us/turnigy-1300mah-6s-35c…

  • ขั้วต่อแบตเตอรี่บางประเภท หากคุณใช้อันด้านบน นั่นคือ XT60:https://www.amazon.com/YXQ-10XT-60-Female-Connecto…
  • Compressor Driver Speaker - คุณต้องมีบางอย่างที่มีระดับความไวสูง (~100 dB):

    www.amazon.com/dp/B075K3P2CL/ref=psdc_1098…

  • ไมโครโฟนที่เข้ากันได้กับ Arduino:

    www.amazon.com/Electret-Microphone-Amplifi…

  • Arduino (Uno สำหรับ non-souldering หรือ Nano สำหรับ Souldering):

    www.amazon.com/ELEGOO-Arduino-ATmega328P-W…

  • ตัวเข้ารหัสโรตารี่:

    www.amazon.com/Encoder-15%C3%9716-5-Arduin…

  • สวิตช์เปิด/ปิดบางประเภทก็มีประโยชน์เช่นกัน (ฉันใช้สิ่งเหล่านี้):

    www.amazon.com/Encoder-15%C3%9716-5-Arduin…

  • ปุ่มกด:

    www.adafruit.com/product/1009

  • แอมพลิฟายเออร์อย่างน้อย 60W:

    www.amazon.com/KKmoon-TPA3118-Digital-Ampl…

  • 5v BEC เพื่อขับเคลื่อน Arduino:

    www.amazon.com/Servo-Helicopter-Airplane-R…

เครื่องมือ / อุปกรณ์:

  • การป้องกันการได้ยิน - ไม่ได้ล้อเล่น ผู้ชายคนนี้มีเสียงสูงสุดประมาณ 130 dB ซึ่งอาจทำให้เกิดความเสียหายได้ทันที
  • หัวแร้ง
  • ประสาน
  • เครื่องปอกสายไฟ
  • กระดาษทราย
  • ปืนกาวร้อน

ไม่ต้องการ:

สิ่งต่อไปนี้จำเป็นเฉพาะในกรณีที่คุณต้องการสร้างที่อยู่อาศัยที่พิมพ์ 3 มิติเต็มรูปแบบสำหรับโครงการของคุณ

วัสดุ:

  • ขั้วต่อหัวกระสุน:https://www.amazon.com/Blulu-Banana-Connector-Repl…
  • ลวดหดความร้อน:https://www.amazon.com/gp/product/B07F6GSN2J/ref=s…
  • ABS Filament จำนวนมาก - ฉันไม่ได้วัดว่าใช้ไปเท่าไหร่ แต่มีการพิมพ์ ~ 24 ชั่วโมงสองครั้งและการพิมพ์หนึ่ง ~ 8 ชั่วโมง
  • สกรูและสลักเกลียว M3 หลายแบบ - ในทางเทคนิคแล้ว คุณสามารถใช้ขนาดใดก็ได้หากต้องการเจาะรู แต่ฉันทำการออกแบบโดยคำนึงถึงสกรู M3

เครื่องมือ / อุปกรณ์:

  • เครื่องพิมพ์ 3 มิติ - ฉันใช้ Ultimaker 2
  • เดรเมลยังมีประโยชน์หากเครื่องพิมพ์ทิ้งคราบไว้ในส่วนของคุณ

ขั้นตอนที่ 2: สร้างวงจรทดสอบ

สร้างวงจรทดสอบ
สร้างวงจรทดสอบ
สร้างวงจรทดสอบ
สร้างวงจรทดสอบ
สร้างวงจรทดสอบ
สร้างวงจรทดสอบ

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

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

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

เข้าสู่วงจร:

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

เริ่มจากแหล่งจ่ายไฟ:

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

ขั้วบวกจะเปลี่ยนจากสวิตช์ไปที่บอร์ดเครื่องขยายเสียง

ขั้วลบของแบตเตอรี่ไม่จำเป็นต้องผ่านสวิตช์ มันสามารถไปที่ปลายเพาเวอร์ของแอมป์ได้โดยตรง

ถัดไป บอร์ดเครื่องขยายเสียง:

บอร์ดเครื่องขยายเสียงมีพินสี่ชุด แต่ละชุดมีท่อนไม้สองอัน ฉันไม่ได้ใช้คุณสมบัติ 'ปิดเสียง' ของบอร์ดนี้ ไม่ต้องกังวลไป ฉันได้อธิบายไว้ข้างต้นแล้วว่า Power + และ Power - ควรได้รับ 22.2v จากแบตเตอรี่โดยตรง สำหรับผลลัพธ์ คุณควรเชื่อมต่อสิ่งนี้กับลูกค้าเป้าหมายในไดรเวอร์การบีบอัดโดยตรง ไม่สำคัญว่าสายใดจะไปที่พินใด แต่บางครั้งการสลับไปรอบๆ จะทำให้คุณได้คุณภาพเสียงที่ดีขึ้น สุดท้าย อินพุต + และอินพุต - ไปที่พิน 10 และ 9 บน Arduino อีกครั้ง ลำดับไม่สำคัญเสมอไป

ไมโครโฟน:

ไมโครโฟนนั้นเรียบง่ายมาก Vcc รับ 5v จาก Arduino, GND ไปที่ GND บน Arduino และ OUT ไปที่พิน A0 บน Arduino

ปุ่ม:

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

www.instructables.com/id/Arduino-Button-wi…

ปุ่มที่อ่านจากไมโครโฟนจะเชื่อมต่อกับพิน 6 และปุ่มที่บอกให้ลำโพงเริ่มสร้างเสียงจริงๆ จะอยู่ที่พิน 5 พินอื่นๆ บนปุ่มทั้งสองจะต่อสายเข้ากับ GND

ตัวเข้ารหัสโรตารี่:

ตัวเข้ารหัสแบบหมุนที่ฉันใช้ยังมีปุ่มที่ฝังอยู่ภายในด้วย ดังนั้น คุณสามารถคลิกบนแป้นหมุนได้จริง และสามารถอ่านได้ด้วยการกดปุ่ม

การเดินสายสำหรับสิ่งนี้มีดังนี้: GND ถึง Arduino GND, + ถึง Arduino +5v, SW ถึงพิน 4, DT ถึงพิน 3, CLK ถึงพิน 2

หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของเครื่องเข้ารหัสแบบโรตารี่ โปรดดูที่ลิงค์นี้:

howtomechatronics.com/tutorials/arduino/ro…

และนั่นคือทั้งหมดสำหรับวงจร!

ขั้นตอนที่ 3: รหัสทดสอบ

รหัสทดสอบ
รหัสทดสอบ

ตอนนี้ได้เวลาอัปโหลดโค้ดไปยัง Arduino ของคุณแล้ว

คุณสามารถดาวน์โหลด repo ของฉันบน GitHub ที่มีไฟล์ทั้งหมดที่คุณต้องการ:

หรือฉันอัปโหลดเฉพาะไฟล์ GlassGun.ino ไปที่ด้านล่างของขั้นตอนนี้

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

ฉันใช้สิ่งเหล่านี้ทั้งหมด:

  • LinkedList -
  • ToneAC -
  • โรตารี -

แต่ละคนมีคำแนะนำเกี่ยวกับวิธีการติดตั้งลงใน Arduino Directory ของคุณ หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับ Arduino Libraries โปรดดูที่ลิงค์นี้:

www.arduino.cc/en/Guide/Libraries

แฟล็กนี้อนุญาตให้ผู้ใช้ปิดหรือพิมพ์หน้าจอไปยังบรรทัดซีเรียลได้อย่างง่ายดาย:

//ดีบักแฟล็ก

บูลีน printDebug = true;

สิ่งนี้จะเริ่มต้นตัวแปรที่ใช้ในการจับความถี่และส่งคืนตัวแปรที่ปรากฏมากที่สุด:

//ความถี่ captureLinkedList freqData; LinkedList NOT_DATA; โหมด int ถือ; int modeCount = 1; int modeSubCount = 1; บูลีน gotData = เท็จ; บูลีน badData = true;

สิ่งนี้ตั้งค่าสำหรับการส่งออกไปยังลำโพง freqModifier คือสิ่งที่เราเพิ่มหรือลบไปยังเอาต์พุตตามการปรับจูนเอ็นโค้ดเดอร์แบบหมุน modeValue คือสิ่งที่เก็บบันทึกจากไมโครโฟน ผลลัพธ์สุดท้ายเป็นเพียง modeValue + freqModifier

//ความถี่เปล่ง

int freqModifier = 0; โหมด intValue;

ตั้งค่า Rotary Encoder โดยใช้ไลบรารี:

//การปรับจูนโดยใช้เครื่องเข้ารหัสแบบหมุน

ค่า int; #define encoderButtonPin 4 #define encoderPinA 2 #define encoderPinB 3 โรตารี r = โรตารี (encoderPinA, encoderPinB);

กำหนดหมุดที่ปุ่มติดอยู่กับ:

//ปุ่มเพื่อเรียกไมโครโฟนและลำโพง

#กำหนดปุ่มลำโพง5 #กำหนดปุ่มไมโครโฟน6

ค่านี้บอกว่าความถี่ที่บันทึกไว้สูงหรือต่ำเป็นพิเศษ:

//ตัดตัวแปรตัวบ่งชี้

การตัดบูลีน = 0;

ใช้ในการบันทึกความถี่:

//ตัวแปรการจัดเก็บข้อมูล

ไบต์ newData = 0; ไบต์ prevData = 0;

ใช้ในการคำนวณจำนวนความถี่ตามการแกว่ง:

//ตัวแปรความถี่

ตัวจับเวลา int ที่ไม่ได้ลงนาม = 0; // นับรอบระยะเวลาของคลื่นที่ไม่ได้ลงชื่อ ความถี่ int;

ตอนนี้เข้าสู่เนื้อหาจริงของรหัส:

ที่นี่เราตั้งค่าปุ่มไมโครโฟนและลำโพงไม่ให้ใช้ตัวต้านทานเมื่อกดปุ่มตามที่อธิบายไว้ในขั้นตอนวงจรทดสอบ (ข้อมูลเพิ่มเติม: https://www.instructables.com/id/Arduino-Button-wi…) I เรียกอีกอย่างว่า resetMicInterupt ซึ่งทำการตั้งค่าพินระดับต่ำมากเพื่อฟังพิน A0 ในช่วงเวลาที่แตกต่างกันมาก ฉันใช้คำแนะนำนี้เพื่อแนะนำวิธีรับความถี่จากค่าเหล่านี้:

www.instructables.com/id/Arduino-Frequency…

การตั้งค่าเป็นโมฆะ () { pinMode (13, OUTPUT); // ไฟแสดงสถานะพินพินโหมด (microphoneButton, INPUT_PULLUP); // พินไมโครโฟนโหมดพิน (ปุ่มลำโพง, INPUT_PULLUP); ถ้า (printDebug) { Serial.begin (9600); } resetMicInterupt(); } ถือเป็นโมฆะ resetMicInterupt(){ cli();//diable interrupts //ตั้งค่าการสุ่มตัวอย่างต่อเนื่องของขาอนาล็อก 0 //ล้าง ADCSRA และ ADCSRB รีจิสเตอร์ ADCSRA = 0; ADCSRB = 0; ADMUX |= (1 << REFS0); //ตั้งค่าแรงดันอ้างอิง ADMUX |= (1 << ADLAR); // ซ้ายจัดค่า ADC- เพื่อให้เราสามารถอ่าน 8 บิตสูงสุดจากการลงทะเบียน ADCH เท่านั้น ADCSRA |= (1 << ADPS2) | (1 << ADPS0); // ตั้งค่านาฬิกา ADC พร้อมพรีสเกลเลอร์ 32 ตัว-16mHz/32=500kHz ADCSRA |= (1 << ADATE); //เปิดใช้งานทริกเกอร์อัตโนมัติ ADCSRA |= (1 << ADIE); // เปิดใช้งานการขัดจังหวะเมื่อการวัดเสร็จสิ้น ADCSRA |= (1 << ADEN); //เปิดใช้งาน ADC ADCSRA |= (1 << ADSC); // เริ่มการวัด ADC sei ();// เปิดใช้งานการขัดจังหวะ } ISR (ADC_vect) {// เมื่อค่า ADC ใหม่พร้อม prevData = newData; // เก็บค่าก่อนหน้า newData = ADCH; // รับค่าจาก A0 ถ้า (prevData = 127){//if เพิ่มขึ้นและข้ามจุดกึ่งกลาง = timer;//get period timer = 0;//reset timer } if (newData == 0 || newData == 1023){//if clipping PORTB |= B00100000;/ /set pin 13 high- เปิดไฟแสดงสถานะการคลิป led clipping = 1;//currently clipping } timer++; // เพิ่มตัวจับเวลาในอัตรา 38.5kHz }

ฉันคิดว่าโค้ดส่วนใหญ่ในที่นี้เรียบง่ายเพียงพอ และน่าจะอ่านง่าย แต่ฉันจะเน้นย้ำในส่วนที่สับสนมากขึ้น:

ส่วนนี้ส่วนใหญ่มาจากห้องสมุดโรตารี ทั้งหมดที่กล่าวมาคือ หากคุณเลื่อนตามเข็มนาฬิกา ให้เพิ่ม freqModifer ขึ้นหนึ่งค่า หากคุณไม่ขึ้นไป คุณจะต้องได้ลดลง ดังนั้นให้ลด freqModifier ลงหนึ่งรายการ

ผลลัพธ์ถ่านที่ไม่ได้ลงนาม = r.process(); // ดูว่าเครื่องเข้ารหัสแบบโรตารี่ขยับหรือไม่

if(ผล){ firstHold = true; ถ้า (ผลลัพธ์ == DIR_CW) freqModifier++; // หากเราเคลื่อนที่ตามเข็มนาฬิกา ให้เพิ่มขึ้น มิฉะนั้น ลดลงอีก freqModifier--; ถ้า (freqModifier 50) freqModifier = 50; ถ้า (printDebug) { Serial.print ("FreqMod: "); Serial.println (freqModifier); } }

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

ถือเป็นโมฆะ getMode () { boolean doAdd = true // การกดปุ่มแรกควรสั้นเพื่อรับ "ค่าที่ไม่ดี" หรือค่าที่เรารู้ว่าไม่ดี // เป็นการสลับระหว่างการบันทึกข้อมูล "ข้อมูลที่ไม่ดี" และ "ข้อมูลที่ดี" ถ้า (badData) { ถ้า (printDebug) Serial.println ("ข้อมูลไม่ถูกต้อง: "); สำหรับ (int j = 0; j < freqData.size (); j++) { สำหรับ (int i = 0; i < NOT_DATA.size (); i++) { if (freqData.get (j) == NOT_DATA.get (i)) { doAdd = เท็จ; หยุดพัก; } } if (doAdd) { NOT_DATA.add(freqData.get(j)); } doAdd = จริง; } if (printDebug) { Serial.println ("-----"); สำหรับ (int i = 0; i < NOT_DATA.size(); i++) { Serial.println(NOT_DATA.get(i)); } Serial.println("-------"); } }

นี่คือเราวนลูปผ่าน "ข้อมูลที่ดี" และนำข้อมูลที่ตรงกับ "ข้อมูลที่ไม่ดีจากเมื่อก่อน" ออก

เมื่อใดก็ตามที่เราลบองค์ประกอบหนึ่งออกจากรายการ เราต้องย้อนกลับขั้นตอนในวงรอบนอกของเรา (j--) เพราะไม่เช่นนั้น เราจะข้ามค่า

อื่น {

if (printDebug) Serial.println ("ไม่ใช่ข้อมูลที่ไม่ถูกต้อง: "); สำหรับ (int j = 0; j < freqData.size (); j++) { สำหรับ (int i = 0; i < NOT_DATA.size (); i++) { if (freqData.get (j) == NOT_DATA.get (i)) { ถ้า (printDebug) { Serial.print ("ลบ: "); Serial.println(freqData.get(j)); } freqData.remove(j); NS--; หยุดพัก; } } } freqData.sort(minToMax); modeHold = freqData.get(0); modeValue = โหมดพัก; สำหรับ (int i = 0; i modeSubCount) { modeSubCount = modeCount; modeValue = โหมดพัก; } modeCount = 1; modeHold = freqData.get(i); } } modeCount = 1; modeSubCount = 1; ถ้า (printDebug) { Serial.println ("-------"); Serial.println (modeValue); Serial.println("---------"); } NOT_DATA.clear(); } if (badData) badData = false; อย่างอื่น badData = true; freqData.clear(); }

ขั้นตอนที่ 4: ปรับไมโครโฟนของคุณ

ปรับไมโครโฟนของคุณ
ปรับไมโครโฟนของคุณ
ปรับไมโครโฟนของคุณ
ปรับไมโครโฟนของคุณ

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

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

วิธีนี้ช่วยให้คุณ 'ปรับ' ไมโครโฟนของคุณเป็นระดับเสียงของแก้วไวน์ได้

ดังนั้นคุณจะบรรลุสิ่งนี้ได้อย่างไร?

คุณสามารถต่อ Arduino ของคุณกับคอมพิวเตอร์ผ่านสาย USB เปิดจอภาพแบบอนุกรมโดยคลิกที่ไอคอนที่ด้านบนขวาของ Arduino Editor

ตั้งค่าอัตราบอดเป็น 9600

จากนั้นเมื่อคุณอัปโหลดโค้ดของคุณไปยัง Arduino คุณจะเห็นข้อความ "printDebug" ทั้งหมดปรากฏขึ้นในหน้าต่างใหม่นั้น

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

ดังนั้น กระบวนการคือ:

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

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

ขั้นตอนที่ 5: ทุบกระจกบางส่วน

ทุบกระจกบาง!
ทุบกระจกบาง!
ทุบกระจกบาง!
ทุบกระจกบาง!

ได้เวลาทุบกระจกเก่า!

ประการแรก ตรวจสอบให้แน่ใจว่าคุณสวมอุปกรณ์ป้องกันหู!

มีศิลปะในการทำให้ทุกอย่างเข้าที่เพื่อให้กระจกแตก

  1. ต้องขัดขอบแก้วไวน์
  2. คุณต้องได้รับความถี่ที่ถูกต้อง
  3. คุณต้องได้มุมที่ถูกต้อง
  4. คุณต้องตรวจสอบให้แน่ใจว่าแก้วไวน์ของคุณไม่สูญเสียพลังงานสั่นสะเทือนอันมีค่าไปสู่การเขย่า

ดังนั้น วิธีที่ดีที่สุดที่ฉันพบคือ:

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

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

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

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

ใช้เวลาเล่นกับมันเพื่อลองเล่นให้ได้ระดับที่ถูกต้อง และอย่าลืมบันทึกมันเอาไว้เพื่อที่คุณจะได้อวดเพื่อน ๆ ทุกคนได้!

ขั้นตอนที่ 6: (ไม่บังคับ) ประสาน

(ไม่บังคับ) ประสาน
(ไม่บังคับ) ประสาน
(ไม่บังคับ) ประสาน
(ไม่บังคับ) ประสาน
(ไม่บังคับ) ประสาน
(ไม่บังคับ) ประสาน

แล้วคุณตัดสินใจทำทั้งหมดแล้วหรือยัง? ดีสำหรับคุณ! ฉันสนุกกับการทำมันอย่างแน่นอน!

อย่างแรกเลย โดยทั่วไปวงจรจะเหมือนกัน มีความแตกต่างเพียงเล็กน้อยเท่านั้น

  1. คุณจะบัดกรีโดยตรงไปยังสายนำของลำโพง
  2. คุณจะเพิ่มขั้วต่อ Bullet เข้ากับลำโพง
  3. คุณจะเพิ่ม BEC เพื่อขับเคลื่อน Arduino Nano

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

ขั้วบวกของแบตเตอรี่ของเราก่อนไปที่สวิตช์ ไปที่ BEC ขั้นตอนนี้เป็นขั้นตอนที่แรงดันไฟฟ้าของเราลดลงจาก 22.2v เป็น 5v เพื่อจ่ายพลังงานให้กับ Arduino ขั้วบวกของแบตเตอรี่จะไปที่ปลาย Power+ ของแอมพลิฟายเออร์ของเราด้วย สิ่งนี้ให้ 22.2v โดยตรงกับแอมป์

แรงดันไฟล่างของ BEC เปลี่ยนจาก + เป็น +5v บน Arduino และ - เป็น GND บน Arduino

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

นอกจากนี้ คุณจะไม่ต้องบัดกรีอะไรเป็นพิเศษ คุณแค่บัดกรีในอากาศ มันเป็นเทคนิคที่ฉันเรียกว่า "การบัดกรีด้วยอากาศ" มันค่อนข้างยากที่จะเข้าใจในตอนเริ่มต้น แต่คุณชินกับมันสักพักหนึ่ง

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

ขั้นตอนที่ 7: (ไม่บังคับ) พิมพ์ที่อยู่อาศัย

(ไม่บังคับ) พิมพ์ที่อยู่อาศัย
(ไม่บังคับ) พิมพ์ที่อยู่อาศัย
(ไม่บังคับ) พิมพ์ที่อยู่อาศัย
(ไม่บังคับ) พิมพ์ที่อยู่อาศัย
(ไม่บังคับ) พิมพ์ที่อยู่อาศัย
(ไม่บังคับ) พิมพ์ที่อยู่อาศัย
(ไม่บังคับ) พิมพ์ที่อยู่อาศัย
(ไม่บังคับ) พิมพ์ที่อยู่อาศัย

มีสามไฟล์ที่จะพิมพ์ด้วยโปรเจ็กต์นี้:

  1. ส่วนหน้าที่วางลำโพงและไมโครโฟน
  2. บิตกลางที่มีอุปกรณ์อิเล็กทรอนิกส์ ปุ่ม และแบตเตอรี่ทั้งหมด
  3. ฝาครอบแบตเตอรี่

ชิ้นส่วนทั้งหมดรวมกันนั้นใช้เวลาพิมพ์ประมาณ 48 ชั่วโมงบน Ultimaker 2 ของ Georgia Tech ตรวจสอบให้แน่ใจว่าคุณพิมพ์ด้วยตัวรองรับ เนื่องจากมีระยะยื่นขนาดใหญ่บนงานพิมพ์นี้

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

ขั้นตอนที่ 8: (ไม่บังคับ) ระบายสี - เพื่อเพิ่มความเย็น

(ไม่บังคับ) สี - เพื่อเพิ่มความเย็น
(ไม่บังคับ) สี - เพื่อเพิ่มความเย็น
(ไม่บังคับ) สี - เพื่อเพิ่มความเย็น
(ไม่บังคับ) สี - เพื่อเพิ่มความเย็น
(ไม่บังคับ) สี - เพื่อเพิ่มความเย็น
(ไม่บังคับ) สี - เพื่อเพิ่มความเย็น

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

ขั้นตอนที่ 9: (ไม่บังคับ) ประกอบ

(ไม่บังคับ) ประกอบ
(ไม่บังคับ) ประกอบ
(ไม่บังคับ) ประกอบ
(ไม่บังคับ) ประกอบ
(ไม่บังคับ) ประกอบ
(ไม่บังคับ) ประกอบ

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

ฉันพบว่าการวาง Arduino ไว้ด้านข้างกับผนังนั้นง่ายที่สุด จากนั้นบอร์ดแอมพลิฟายเออร์ก็สามารถวางราบได้ที่ด้านล่าง

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

ตัวเข้ารหัสแบบหมุนมีสกรูของตัวเองอยู่ คุณจึงขันน็อตให้แน่นจากด้านบนได้

ต้องเสียบสวิตช์ไฟจากด้านบน อาจต้องใช้แรงเล็กน้อยในการใส่เข้าไป แต่ควรใส่ให้พอดีเมื่ออยู่ในช่อง

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

แบตเตอรี่ควรพอดีที่ด้านหลังของถาด แต่ฉันไม่มีปัญหาในการใส่เข้าไปที่นั่น

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

ขั้นตอนที่ 10: (ไม่บังคับ) ทุบกระจกอีกครั้ง

Image
Image

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

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

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

และครั้งสุดท้าย…

มาสร้างหุ่นยนต์กันเถอะ!

การประกวดเสียง 2018
การประกวดเสียง 2018

รองชนะเลิศการประกวดเครื่องเสียง 2018

แนะนำ: