สารบัญ:
- ขั้นตอนที่ 1: พื้นหลัง
- ขั้นตอนที่ 2: แนวคิดดั้งเดิม
- ขั้นตอนที่ 3: ปัญหาที่พบ
- ขั้นตอนที่ 4: วิธีแก้ไข
- ขั้นตอนที่ 5: การตรวจจับขอบและโปรแกรม Matlab
- ขั้นตอนที่ 6: ตัวอย่าง: Instructables Robot
- ขั้นตอนที่ 7: การแก้ไขปัญหา/ตัวอย่างไฟล์
วีดีโอ: เพลงออสซิลโลสโคป: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
บทนำ: คำแนะนำนี้คือการปฏิบัติตามข้อกำหนดสำหรับส่วนเอกสารของโครงการเชื่อมต่อไมโครคอมพิวเตอร์ที่ Utah State University
ขั้นตอนที่ 1: พื้นหลัง
พื้นหลัง:
ออสซิลโลสโคปใช้เพื่อแสดงและวัดสัญญาณแรงดันไฟฟ้าที่วางแผนตามเวลา ออสซิลโลสโคปในโหมด XY จะแปลงสัญญาณเทียบกับสัญญาณอื่นที่คล้ายกับสมการพาราเมทริก โปรเจ็กต์นี้ใช้ออสซิลโลสโคปในโหมด XY เพื่อแสดงภาพที่ผลิตโดยไฟล์เสียง
ขั้นตอนที่ 2: แนวคิดดั้งเดิม
แนวคิดดั้งเดิมสำหรับโครงการนี้คือการแปลงโทรทัศน์ Cathode Ray Tube (CRT) เก่าให้เป็นออสซิลโลสโคป XY และใช้สิ่งนั้นเพื่อแสดงภาพ สามารถทำได้โดยถอดคอยล์โก่งตัวออก เมื่อคุณปลดขดลวดแนวนอน เส้นแนวตั้งจะปรากฏขึ้น และเมื่อคุณถอดคอยล์แนวตั้ง เส้นแนวนอนจะปรากฏขึ้น ทั้งหมดที่ฉันต้องทำคือเชื่อมต่อแหล่งกำเนิดเสียงกับขดลวดโก่งตัว และฉันก็จะมีออสซิลโลสโคป XY ขออภัย ฉันพบปัญหาหลายประการ
ขั้นตอนที่ 3: ปัญหาที่พบ
ปัญหาหนึ่งที่ฉันพบคือคุณลักษณะด้านความปลอดภัย ทีวีตรวจพบว่าขดลวดโก่งตัวถูกตัดการเชื่อมต่อและไม่สามารถเปิดได้ เพื่อป้องกันลำแสงอิเล็กตรอนจากการเผารูในสารเรืองแสงบนหน้าจอ ฉันวัดความต้านทานของคอยส์แล้ววางตัวต้านทานข้ามมัน ตัวต้านทานไหม้ครึ่งหนึ่งทันทีเนื่องจากไฟฟ้าแรงสูง ฉันลองอีกครั้งโดยใช้ตัวต้านทานที่มีคะแนนสูงกว่า แต่ก็ไม่ได้ผลเช่นกัน ฉันอ่านฟอรัมออนไลน์เกี่ยวกับวิธีที่ชุดขดลวดโก่งตัวอื่นสามารถเชื่อมต่อกับทีวีดั้งเดิมได้ ดังนั้นฉันจึงพบทีวีอีกเครื่องและต่อเข้ากับขดลวดโก่งตัวของฉัน อิมพีแดนซ์ไม่เท่ากัน เลยเปิดไม่ติด หลังจากการค้นคว้าเพิ่มเติม ฉันพบว่าทีวีรุ่นเก่าไม่มีคุณลักษณะด้านความปลอดภัยและไม่สนใจว่าขดลวดโก่งตัวจะถูกตัดการเชื่อมต่อหรือไม่ ฉันสามารถหาทีวีที่ผลิตในปี 2000 ที่ดูเหมือนจะใช้งานได้ ฉันสามารถสร้างรูปร่างง่ายๆ บนหน้าจอได้ แต่สิ่งที่ซับซ้อนกว่าวงกลมจะบิดเบี้ยวอย่างมาก ในที่สุดทีวีเครื่องนี้ก็หยุดทำงานและฟิวส์ยังคงเป่าอยู่
ฉันสามารถหาทีวีขนาดเล็กที่ผลิตในปี 1994 ได้ ทีวีเครื่องนี้ใช้งานได้ค่อนข้างดี แต่ฉันไม่สามารถกำหนดทิศทางที่ถูกต้องของภาพได้ แม้ว่าฉันจะเปลี่ยนสัญญาณในทุกชุดค่าผสม มันยังมีปัญหาเช่นเดียวกับทีวีอื่นๆ และจะไม่สร้างภาพที่ซับซ้อน หลังจากการวิจัยหลายครั้ง ฉันพบว่าปัญหาคือฉันพยายามสร้างภาพเวกเตอร์บนจอแสดงผลแรสเตอร์ การแสดงผลแรสเตอร์เป็นหน้าจอที่สแกนในแนวนอนอย่างรวดเร็วและในแนวตั้งด้วยอัตราที่ช้ากว่า การแสดงเวกเตอร์ใช้เส้นเพื่อสร้างภาพ ฉันพบบทช่วยสอนเกี่ยวกับวิธีแปลงการแสดงผลแรสเตอร์เป็นการแสดงเวกเตอร์ แต่กระบวนการนี้เป็นอันตรายและอาจใช้เวลานาน
ขั้นตอนที่ 4: วิธีแก้ไข
หลังจากปัญหาเหล่านี้ทั้งหมด ฉันก็พบวิธีแก้ปัญหาที่ค่อนข้างง่าย โปรแกรมจำลองออสซิลโลสโคป XY ที่ใช้เสียงเป็นอินพุต เมื่อฉันพบโปรแกรมนี้ ฉันเปลี่ยนจากการมุ่งเน้นที่การสร้างออสซิลโลสโคปเป็นการสร้างวิธีสร้างไฟล์เสียงจากรูปภาพเพื่อแสดงบนออสซิลโลสโคป
เครื่องจำลองออสซิลโลสโคป
ขั้นตอนที่ 5: การตรวจจับขอบและโปรแกรม Matlab
นี่คือผังงานพื้นฐานของโปรแกรมของฉัน เริ่มต้นด้วยรูปภาพที่โหลดลงในโปรแกรม EdgeDetect.m MATLAB โปรแกรมนี้แปลงเป็นภาพระดับสีเทาแล้วตรวจจับขอบในภาพ พิกัด XY ของขอบที่ตรวจพบจะถูกจัดวางเป็นสองอาร์เรย์ซึ่งจะถูกแปลงเป็นไฟล์เสียง
ขั้นตอนที่ 6: ตัวอย่าง: Instructables Robot
นี่คือตัวอย่างของกระบวนการกับหุ่นยนต์ Instructables ก่อนอื่นให้ดาวน์โหลดรูปภาพของหุ่นยนต์ Instrucables และบันทึกเป็น "image.png" ลงในโฟลเดอร์การทำงาน MATLAB ของคุณ (ที่เดียวกับ "EdgeDetect.m") ตรวจสอบให้แน่ใจว่ารูปภาพไม่มีอะไรที่คุณต้องการให้ตรวจจับ หรืออาจเพิ่มพิกัดที่ไม่จำเป็นจำนวนมากลงในไฟล์เสียงของคุณ เรียกใช้โปรแกรม EdgeDetect และรูปภาพจะถูกแปลงเป็นระดับสีเทา และให้ตรวจพบขอบและจัดเก็บเป็นไฟล์เสียงชื่อ "vector.wav" ถัดไปเปิดไฟล์เสียงใน Audacity หรือโปรแกรมแก้ไขเสียงอื่น เปิดโปรแกรมจำลองออสซิลโลสโคปของคุณ (ลิงก์ในขั้นตอนก่อนหน้า) ตั้งค่าอัตราการสุ่มตัวอย่างเป็น 192000 Hz กดปุ่มเริ่ม คลิกปุ่มไมโครโฟน แล้วเลือกตัวเลือกบรรทัดใน ใน Audacity กด "shift + spacebar" เพื่อเล่นไฟล์เสียงแบบวนซ้ำ รูปภาพควรปรากฏบนเครื่องจำลองออสซิลโลสโคป
ขั้นตอนที่ 7: การแก้ไขปัญหา/ตัวอย่างไฟล์
ขณะที่ฉันพัฒนาโปรแกรมนี้ ฉันต้องปรับการตั้งค่าบางอย่างในโปรแกรม ต่อไปนี้คือบางสิ่งที่ต้องตรวจสอบอีกครั้งว่าไม่ทำงานหรือไม่:
- ตรวจสอบให้แน่ใจว่าเอาต์พุตเสียงของคุณถูกป้อนเข้าในสายคอมพิวเตอร์ของคุณและคุณมี 2 ช่องสัญญาณเสียงแยกกัน (ซ้ายและขวา)
- หากโปรแกรม MATLAB ไม่ได้อ่านรูปภาพ คุณอาจต้องแก้ไขภาพในโปรแกรมระบายสีและบันทึกเป็นรูปแบบอื่น
- ในบรรทัดที่ 61 ของรหัส อย่าลืมใส่ตัวเลขจากหน้าจอตรวจจับขอบด้วย โปรแกรมมักจะใส่สี่เหลี่ยมรอบๆ สิ่งทั้งหมด ซึ่งคุณสามารถตัดออกโดยเปลี่ยนจาก "i=1:length(B)" เป็น "i=2:length(B)" นอกจากนี้ หากคุณมีตัวเลขเฉพาะที่ต้องการรวมไว้แต่ไม่ต้องการรวมทั้งหมด คุณสามารถใช้วงเล็บเหลี่ยมเพื่อรับตัวเลขเฉพาะ: "[1 3 6 10 15 17]"
- หากภาพดูสั่นคลอนและชิ้นส่วนต่างๆ อยู่เต็มไปหมด คุณอาจต้องลดจำนวนตัวอย่างโดยปรับ "N" ในบรรทัดที่ 76 ยิ่งภาพง่ายเท่าใด ค่า N ที่ต่ำกว่าก็จะยิ่งสูงขึ้นได้ แต่ควรให้สูงกว่านี้หากภาพนั้น มีความซับซ้อน สำหรับหุ่นยนต์ฉันใช้ N=5
- คุณยังสามารถปรับ "Fs" ในบรรทัดที่ 86 ได้ ยิ่งอัตราการสุ่มตัวอย่างสูง ภาพก็จะยิ่งดูดี แต่การ์ดเสียงบางตัวจะไม่สามารถรองรับอัตราการสุ่มตัวอย่างที่สูงขึ้นได้ เพลงสมัยใหม่มีอัตราการสุ่มตัวอย่างประมาณ 320,000 เฮิรตซ์
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง