
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12


ดูเหมือนว่าถุงมือที่มีพลังเหลือเชื่อกำลังเดือดดาลในทุกวันนี้ ในขณะที่ถุงมือ Infinity Gauntlet ของธานอสเป็นถุงมือที่ทรงพลังมาก เราต้องการสร้างถุงมือที่สามารถทำสิ่งที่โดดเด่นยิ่งกว่าเดิม นั่นคือ เปลี่ยนเสียงของผู้สวมใส่แบบเรียลไทม์
คำแนะนำนี้ให้ข้อมูลแนะนำวิธีที่เราออกแบบถุงมือเปลี่ยนเสียง การออกแบบของเราใช้เซ็นเซอร์และไมโครคอนโทรลเลอร์หลายตัวในถุงมือเพื่อตรวจจับการเคลื่อนไหว ซึ่งถูกส่งผ่านโค้ด Arduino ไปยังโปรแกรมแก้ไข Max โดยที่สัญญาณเสียงของเราจะถูกเปลี่ยนและบิดเบี้ยวอย่างสนุกสนาน เซ็นเซอร์ การเคลื่อนไหว และการดัดแปลงเสียงเฉพาะที่เราใช้นั้นมีความยืดหยุ่นสำหรับการพิจารณาที่แตกต่างกัน นี่เป็นเพียงวิธีหนึ่งในการสร้างถุงมือเปลี่ยนเสียง!
โครงการนี้เป็นส่วนหนึ่งของความร่วมมือในชุมชนระหว่างนักศึกษา Pomona College และ Fremont Academy of Engineering Femineers เป็นการผสมผสานที่สนุกอย่างแท้จริงระหว่างวิศวกรรมอิเล็กทรอนิกส์และองค์ประกอบดนตรีอิเล็กทรอนิกส์!
ขั้นตอนที่ 1: วัสดุ



อะไหล่:
- ไมโครคอนโทรลเลอร์ HexWear (ATmega32U4) (https://hexwear.com/)
- MMA8451 มาตรความเร่ง (https://www.adafruit.com/product/2019)
- เซนเซอร์แบบงอสั้น (x4) (https://www.adafruit.com/product/1070)
- ถุงมือวิ่งน้ำหนักเบา
- #2 สกรูและแหวนรอง (x8)
- ขั้วต่อขั้วต่อแบบจีบ; เกจ 22-18 (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
- ตัวต้านทาน50kΩ (x4)
- ลวด (~ 20 เกจ)
- หมุดนิรภัยแบบมีกาวในตัว
- สักหลาดหรือผ้าอื่นๆ (~10 ตร.นิ้ว)
- ด้ายเย็บผ้า
- Zipties
- แล็ปท็อป
- ไมโครโฟน USB
เครื่องมือ
- ชุดบัดกรี
- เครื่องปอกสายไฟและเครื่องตัดลวด
- เทปพันสายไฟ
- ปืนลมร้อน
- ไขควง
- กรรไกร
- เข็มเย็บผ้า
ซอฟต์แวร์:
- แม็กซ์ บาย ไซเคิล '74 (https://cycling74.com)
- ซอฟต์แวร์ Arduino (https://www.arduino.cc/en/Main/Software)
ขั้นตอนที่ 2: การติดตั้งซอฟต์แวร์
เรามาเริ่มกันที่ส่วนที่ทำให้ดีอกดีใจที่สุดของโปรเจ็กต์ นั่นคือ การติดตั้งไลบรารี่ (และอื่น ๆ)
Arduino:
ดาวน์โหลดและติดตั้งซอฟต์แวร์ Arduino (https://www.arduino.cc/en/Main/Software)
HexWear:
1) (Windows เท่านั้น ผู้ใช้ Mac สามารถข้ามขั้นตอนนี้ได้) ติดตั้งไดรเวอร์โดยไปที่ https://www.redgerbera.com/pages/hexwear-driver-installation ดาวน์โหลดและติดตั้งไดรเวอร์ (ไฟล์.exe ที่ระบุไว้ในขั้นตอนที่ 2 ที่ด้านบนของหน้า RedGerbera ที่เชื่อมโยง)
2) ติดตั้งไลบรารีที่จำเป็นสำหรับ Hexware เปิด Arduino IDE ภายใต้ "ไฟล์" เลือก "การตั้งค่า" ในพื้นที่ที่ให้ไว้สำหรับ URL ตัวจัดการบอร์ดเพิ่มเติม ให้วาง
github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json
จากนั้นคลิก "ตกลง"
ไปที่เครื่องมือ -> บอร์ด: -> ผู้จัดการบอร์ด จากเมนูมุมซ้ายบน ให้เลือก "มีส่วนร่วม"
ค้นหา จากนั้นคลิกที่ Gerbera Boards แล้วคลิก Install ออกจากและเปิด Arduino IDE ใหม่
เพื่อให้แน่ใจว่าไลบรารีได้รับการติดตั้งอย่างถูกต้อง ให้ไปที่เครื่องมือ -> บอร์ด และเลื่อนไปที่ด้านล่างของเมนู คุณควรเห็นส่วนที่ชื่อว่า "Gerbera Boards" ซึ่งควรมี HexWear ปรากฏเป็นอย่างน้อย (ถ้าไม่ใช่บอร์ดอื่นๆ เช่น mini-HexWear)
มาตรความเร่ง:
ดาวน์โหลดและติดตั้งไลบรารี accelerometer (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)
ขั้นตอนที่ 3: การแนบมาตรความเร่ง


เราต้องการเซ็นเซอร์หลักสองประเภทเพื่อโต้ตอบกับโครงการนี้: มาตรความเร่งและเซ็นเซอร์แบบยืดหยุ่น เราจะตรวจสอบทีละรายการโดยเริ่มจากมาตรวัดความเร่ง ขั้นแรก เราจำเป็นต้องมีการเชื่อมต่อฮาร์ดแวร์เพื่อให้ตรงกัน
เพื่อหลีกเลี่ยงไม่ให้ Hex ของคุณเสียหาย เราแนะนำให้ใส่สกรู #2 และแหวนรองผ่านพอร์ตที่ต้องการ จากนั้นจึงต่อการเชื่อมต่อทั้งหมดเข้ากับสกรูตัวนั้น เพื่อป้องกันไม่ให้สิ่งใดหลุดออกมาขณะเล่นถุงมือ ควรบัดกรีและ/หรือจีบข้อต่อ ใช้ลวดสองสามนิ้วสำหรับการเชื่อมต่อแต่ละครั้ง ทำการเชื่อมต่อต่อไปนี้จาก Hex ไปยังมาตรความเร่ง (ดูพินด้านบนสำหรับการอ้างอิง):
แรงดันไฟฟ้าขาเข้า GROUNDROUND GNDSCL/D3 SCLSDA/D2 SDA
เราพร้อมที่จะทดสอบแล้ว!
ในการทดสอบ ให้รันโค้ดตัวอย่างมาตรความเร่งใน Arduino (ไฟล์->ตัวอย่าง->Adafruit_MMA8451->MMA8451demo) ตรวจสอบให้แน่ใจว่าสามารถส่งออกไปยังจอภาพแบบอนุกรมได้ มันควรจะส่งออกความเร่งเนื่องจากแรงโน้มถ่วง (~10m/s) ในทิศทาง z เมื่อรักษาระดับ การเอียงตัวมาตรความเร่งจะวัดความเร่งในทิศทาง x หรือ y เราจะใช้สิ่งนี้เพื่อให้ผู้สวมใส่เปลี่ยนเสียงด้วยการหมุนมือ!
ตอนนี้ เราต้องนำเสนอข้อมูลมาตรความเร่งในลักษณะที่สามารถเชื่อมต่อกับ Max ได้ ในการทำเช่นนั้น เราต้องพิมพ์ค่าของ x และ y ซึ่งอาจแก้ไขเพื่อให้ตรงกับช่วงที่ต้องการ (ดูส่วนที่ 6) ในรหัสของเราที่แนบมาที่นี่ เราทำสิ่งต่อไปนี้:
//วัดทิศทางแกน x และทิศทาง y เราแบ่งและคูณเพื่อให้ได้ช่วงที่ถูกต้องสำหรับ MAX (ช่วง 1000 ใน x และช่วง 40 ใน y) xdir = event.acceleration.x/0.02; ydir = abs(event.acceleration.y)*2; //พิมพ์ทุกอย่างในรูปแบบที่อ่านได้สำหรับ Max - โดยมีช่องว่างระหว่างแต่ละหมายเลข Serial.print(xdir); Serial.print(" ");
สิ่งนี้ควรให้เลขฐานสิบหกพิมพ์ค่าที่แก้ไขของทิศทาง x และ y ของมาตรความเร่งทุกบรรทัด ตอนนี้เราพร้อมที่จะเพิ่มเซ็นเซอร์แบบยืดหยุ่นแล้ว!
ขั้นตอนที่ 4: การติด Flex Sensors



ผู้สวมใส่สามารถรับการควบคุมเสียงที่อาจเกิดขึ้นได้มากมายหากเราสามารถตรวจจับการงอนิ้วได้ เซ็นเซอร์แบบยืดหยุ่นจะทำอย่างนั้น เซ็นเซอร์แบบยืดหยุ่นแต่ละตัวโดยพื้นฐานแล้วจะเป็นโพเทนชิออมิเตอร์ โดยที่เซ็นเซอร์แบบไม่งอจะมีความต้านทาน ~25KΩ ในขณะที่เมื่องอเต็มที่จะมีความต้านทาน ~100KΩ เราใส่เซ็นเซอร์แบบยืดหยุ่นแต่ละตัวในตัวแบ่งแรงดันไฟฟ้าแบบง่ายพร้อมตัวต้านทาน 50K ดังที่แสดงในภาพแรก
อีกครั้งโดยใช้ลวดที่มีความยาวค่อนข้างสั้น (โปรดจำไว้ว่าสิ่งนี้ทั้งหมดจะพอดีกับด้านหลังของถุงมือ) บัดกรีโมดูลตัวแบ่งแรงดันไฟฟ้าสี่ตัว โมดูลทั้งสี่จะใช้ Vin และกราวด์เดียวกัน - เราบิดปลายสายไฟที่ดึงออกมาเข้าด้วยกันเพื่อให้เรามีตะกั่วเพียงอันเดียวในการบัดกรี สุดท้าย ใช้โมดูลทั้งสี่และสร้างการเชื่อมต่อที่แสดงในภาพที่สอง (หากใครรู้วิธีการทำเช่นนี้โดยไม่ทำให้ยุ่งเหยิงอย่างน่ากลัวโปรดเปิดเผยความลับของคุณ)
ตอนนี้เราต้องการรหัส Arduino เพื่ออ่านแรงดันไฟฟ้าจากเซ็นเซอร์แต่ละตัว เพื่อจุดประสงค์ของเรา เราถือว่าเซ็นเซอร์แบบยืดหยุ่นเป็นสวิตช์ พวกเขาเปิดหรือปิด ดังนั้นรหัสของเราจึงตั้งค่าเกณฑ์แรงดันไฟฟ้าที่สูงกว่าเกณฑ์นี้ เราส่งออก 1 ไปยังพอร์ตอนุกรม (หมายความว่าเซ็นเซอร์งอ) มิฉะนั้นเราจะส่งออกเป็น 0:
// เอาเลข
ตัวอย่างแอนะล็อกและรวมเข้ากับเซ็นเซอร์แบบยืดหยุ่นแต่ละตัว
ในขณะที่ (sample_count < NUM_SAMPLES) {
sum10 += analogRead (A10);
sum9 += analogRead (A9);
sum7 += analogRead (A7);
sum11 += analogRead (A11);
sample_count++;
//รอช้าอย่ารีบเร่ง
ล่าช้า(5);
}
// คำนวณแรงดันไฟฟ้า
การหาค่าเฉลี่ยจากกลุ่มตัวอย่างที่รวดเร็ว
// ใช้ 5.0 สำหรับ 5.0V ADC
แรงดันอ้างอิง
// 5.015V คือค่าที่ปรับเทียบแล้ว
แรงดันอ้างอิง
แรงดันไฟฟ้า 10 = ((ลอย) sum10 /
(ลอย)NUM_SAMPLES * 5.015) / 1024.0;
แรงดันไฟฟ้า 9 = ((ลอย) sum9/
(ลอย)NUM_SAMPLES * 5.015) / 1024.0;
แรงดันไฟฟ้า7 = ((ลอย) sum7 /
(ลอย)NUM_SAMPLES * 5.015) / 1024.0;
แรงดันไฟ 11 = ((ลอย) sum11 /
(ลอย)NUM_SAMPLES * 5.015) / 1024.0;
// ตรวจสอบว่าเซ็นเซอร์แบบยืดหยุ่นแต่ละตัวหรือไม่
มากกว่าเกณฑ์ (thresh) - ถ้าใช่ ให้ตั้งค่าตัวเลข
//นิ้วก้อย
ถ้า (voltage10 > นวด)
{
//-5 เพิ่ม
ระดับเสียงหนึ่งอ็อกเทฟ
flex10 = -10;
}
อื่น ๆ flex10 = 0;
//แหวน
ถ้า (voltage9 >
(thresh-0.4)) {
///5 ลงไป
ระดับเสียงหนึ่งอ็อกเทฟ
flex9 = 5;
}
อื่น ๆ flex9 = 0;
//นิ้วกลาง
ถ้า (voltage7 > นวด) {
///1 เพื่อตั้งค่า
เอฟเฟกต์เสียงสะท้อน
flex7 = 1;
}
อื่น ๆ flex7 = 0;
//นิ้วชี้
ถ้า (voltage11 > นวด)
{
//50 เพื่อตั้งค่า
รอบถึง50
flex11 = 93;
}
อื่น ๆ flex11 = 0;
//รีเซ็ตการนับทั้งหมด
ตัวแปรเป็น 0 สำหรับลูปถัดไป
sample_count = 0;
sum10 = 0;
sum9 = 0;
sum7 = 0;
sum11 = 0;
ณ จุดนี้ พอร์ตอนุกรมควรแสดงค่าสำหรับการวางแนวมาตรความเร่ง และดูว่าเซ็นเซอร์แบบโค้งงอแต่ละตัวหรือไม่ เราพร้อมแล้วที่จะให้โค้ด Arduino ของเราคุยกับ Max!
ขั้นตอนที่ 5: เชื่อมต่อกับ Max

ตอนนี้รหัส Hex กำลังคายตัวเลขจำนวนมากผ่านพอร์ต Serial เราจึงต้องใช้ซอฟต์แวร์ Max เพื่ออ่านสัญญาณเหล่านี้ บล็อกของรหัสภาพด้านบนทำอย่างนั้น! คุณยินดีอย่างมาก.
หมายเหตุสำคัญ: หลังจากอัปโหลดรหัสไปยัง Hex แล้ว ให้ปิดหน้าต่างพอร์ตอนุกรมทั้งหมด จากนั้นเปลี่ยนตัวอักษรในวงกลมในโค้ด Max เพื่อให้ตรงกับพอร์ต Hex หากคุณไม่แน่ใจว่าต้องตั้งค่าตัวอักษรใด การกดส่วน "พิมพ์" ของรหัส Max จะแสดงรายการพอร์ตที่เชื่อมต่อทั้งหมด
บรรทัดที่พิมพ์จากพอร์ตอนุกรมของ Hex จะอ่านผ่านบล็อกโค้ด Max แล้วแยกตามตัวคั่นช่องว่าง เอาต์พุตที่ส่วนท้ายของบล็อก Max ช่วยให้คุณจับแต่ละหมายเลขได้ ดังนั้นเราจะเชื่อมต่อพื้นที่เอาต์พุตแรกกับตำแหน่งที่เราต้องการให้ทิศทาง x ของมาตรความเร่งไป ช่องว่างที่สองจะเป็นทิศทาง y เป็นต้น สำหรับ ตอนนี้ เพียงเชื่อมต่อสิ่งเหล่านี้กับบล็อคตัวเลขเพื่อให้แน่ใจว่ามันใช้งานได้ คุณควรจะสามารถย้ายมาตรความเร่งและเซ็นเซอร์แบบยืดหยุ่นได้ และเห็นการเปลี่ยนแปลงตัวเลขในซอฟต์แวร์ Max
ขั้นตอนที่ 6: สร้างส่วนที่เหลือของ Max Code
ด้วยพลังของภาษา Max คุณสามารถปล่อยให้จินตนาการของคุณโลดแล่นได้ที่นี่ด้วยทุกวิถีทางที่คุณสามารถเปลี่ยนสัญญาณเสียงที่เข้ามาด้วยถุงมือพลังเวทย์มนตร์ของคุณ อย่างไรก็ตาม หากคุณไม่มีไอเดีย ข้างต้นคือบทสรุปว่าโค้ด Max ของเราทำงานอย่างไรและทำงานอย่างไร
สำหรับแต่ละพารามิเตอร์ที่คุณพยายามแก้ไข คุณอาจต้องยุ่งเกี่ยวกับช่วงของค่าที่มาจากโค้ด Arduino เพื่อให้ได้ค่าความไวที่เหมาะสม
เคล็ดลับการแก้ไขปัญหา Max อื่นๆ:
-
หากคุณไม่ได้ยินเสียง
- ตรวจสอบให้แน่ใจว่า Max ได้รับการตั้งค่าให้รับสัญญาณเสียงจากไมโครโฟนของคุณ (Options Audio Status Input Device)
- ตรวจสอบให้แน่ใจว่าได้เปิดแถบเลื่อนระดับเสียงหลักใน Max และตัวควบคุมระดับเสียงอื่น ๆ ที่คุณอาจมีในรหัสของคุณ
-
ถ้าโค้ดดูเหมือนไม่มีอะไรทำ
- ตรวจสอบให้แน่ใจว่าแพทช์ของคุณถูกล็อค (สัญลักษณ์ล็อคที่มุมล่างซ้าย)
- ตรวจสอบผ่านการอ่านข้อมูลในโปรแกรมแก้ไข Max ว่าโปรแกรมแก้ไข Max ของคุณยังคงได้รับข้อมูลจากพอร์ตอนุกรม Arduino หากไม่เป็นเช่นนั้น ให้ลองรีเซ็ตพอร์ตอนุกรม (ตามที่อธิบายไว้ในขั้นตอนที่ 5) และ/หรือตรวจสอบการเชื่อมต่อสายไฟทางกายภาพของคุณ
-
เสียงคลิปแปลก ๆ เมื่อเปลี่ยนพารามิเตอร์
นี่คือสิ่งที่จะทำอย่างไรกับ ~tapin และ ~tapout ทำงานอย่างไร โดยเฉพาะเมื่อคุณเปลี่ยนค่า ค่าเหล่านั้นจะรีเซ็ต ซึ่งทำให้เกิดการตัด จากความรู้ที่จำกัดของเราเกี่ยวกับโปรแกรม เราเกือบจะแน่ใจว่ามีวิธีที่ดีกว่าในการทำเช่นนี้ใน Max และขจัดปัญหา…
ขั้นตอนที่ 7: นำทุกอย่างมารวมกันอย่างแท้จริง




สิ่งที่เหลืออยู่ตอนนี้คือติดวงจรของเราเข้ากับถุงมือ นำผ้าเพิ่มเติมของคุณและตัดแถบที่มีขนาดใหญ่กว่าเซ็นเซอร์แบบยืดหยุ่นออกเล็กน้อย เย็บผ้าเพิ่มเติมเข้ากับนิ้วของถุงมือโดยที่ข้อนิ้วงอ โดยเหลือปลอกแขนสำหรับเซ็นเซอร์การโค้งงอให้นั่ง (เราไม่สามารถติดเซ็นเซอร์การโค้งงอเข้ากับถุงมือโดยตรงได้ เนื่องจากผ้าของถุงมือจะยืดเมื่อนิ้วงอ). เมื่อเย็บปลอกหุ้มเป็นส่วนใหญ่แล้ว ให้เลื่อนเซ็นเซอร์ Flex เข้าไป และเย็บสายยางเข้ากับถุงมืออย่างระมัดระวัง โดยยึดเซ็นเซอร์ Flex เข้าที่ ทำซ้ำสำหรับเซ็นเซอร์แบบยืดหยุ่นแต่ละตัว
ถัดไป ใช้หมุดนิรภัยแบบมีกาวในตัวเพื่อติด Hex ที่ด้านหลังของถุงมือ (คุณอาจต้องการติดกาวร้อนบนหมุดเพื่อให้แน่ใจว่าจะไม่หลุดออกมาระหว่างการสึกหรอ) เย็บมาตรความเร่งที่ข้อมือของถุงมือ สุดท้าย ใช้ความมหัศจรรย์ของซิปผูกเพื่อทำความสะอาดสายไฟที่ไม่น่าดูให้สวยงาม
คุณพร้อมแล้วที่จะทดสอบถุงมือพลังแห่งการร้องเพลงของคุณ! (เราขอแนะนำเพลง "Harder Better Faster Stronger" ของ Daft Punk เพื่อแสดงความสามารถในการเปลี่ยนเสียงของคุณอย่างเต็มที่)
แนะนำ:
สร้าง Wearable Motion Tracker (BLE จาก Arduino ไปยัง Custom Android Studio App): 4 ขั้นตอน

สร้าง Wearable Motion Tracker (BLE จาก Arduino ไปยัง Custom Android Studio App): Bluetooth Low Energy (BLE) เป็นรูปแบบหนึ่งของการสื่อสาร Bluetooth ที่ใช้พลังงานต่ำ อุปกรณ์สวมใส่ได้ เช่น เสื้อผ้าอัจฉริยะ ที่ฉันช่วยออกแบบที่ Predictive Wear ต้องจำกัดการใช้พลังงานในทุกที่ที่ทำได้เพื่อยืดอายุการใช้งานแบตเตอรี่ และใช้ BLE บ่อยครั้ง
Simple & Modular Wearable Lights!: 5 ขั้นตอน (พร้อมรูปภาพ)

Simple & Modular Wearable Lights!: สร้างไฟสวมใส่ได้สวยงามล้ำยุคและปรับได้ด้วยชิ้นส่วนราคาไม่แพง (และส่งมอบ) เพียงไม่กี่ชิ้น! ติดเข้ากับเครื่องประดับทุกประเภทและสลับสีเพื่อให้เข้ากับชุด/ความรู้สึก/วันหยุด/ทุกสิ่ง!ความยากลำบาก: ระดับเริ่มต้น+ (ทหาร
โปรเจ็กต์ Wearable Tech Final Project - หมวกกันน็อค DJ: 6 ขั้นตอน

โปรเจ็กต์ Wearable Tech Final - หมวกกันน็อค DJ: เป้าหมายของโปรเจ็กต์นี้คือการสร้างหมวกกันน็อค DJ พร้อมไฟ LED ที่ตอบสนองต่อเสียงเพลงเพื่อการแสดงและปัจจัยว้าว เรากำลังใช้แถบ LED ที่สามารถระบุตำแหน่งได้จาก Amazon.com เช่นเดียวกับหมวกกันน็อคมอเตอร์ไซค์ Arduino uno และ wire
Pulse Sensor Wearable: 10 ขั้นตอน (พร้อมรูปภาพ)

Pulse Sensor Wearable: คำอธิบายโปรเจ็กต์ โปรเจ็กต์นี้เกี่ยวกับการออกแบบและการสร้างอุปกรณ์สวมใส่ที่คำนึงถึงสุขภาพของผู้ใช้ที่จะสวมใส่ วัตถุประสงค์ของมันคือการทำตัวเหมือนโครงกระดูกภายนอกซึ่งทำหน้าที่ในการผ่อนคลายและทำให้ผู้ใช้สงบในระหว่าง
Wearable Tech: Air Drums: 5 ขั้นตอน

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