การอ่านเซ็นเซอร์อะนาล็อกจำนวนมากแบบเรียลไทม์


17

ฉันพยายามสร้างตัวควบคุม MIDI ที่มีคอเหมือนกีตาร์ ที่คอนั้นมีเมทริกซ์เซ็นเซอร์ความดันขนาดใหญ่ ตัวควบคุมจะเลียนแบบ 3 สาย

วิธีการทำงานคือ: มีเทปทองแดงสองหน้ายาว 3 แถบ (กว้าง 0.5 ซม. ยาวเท่าคอ) ซึ่งเชื่อมต่อกับพลังงาน (3.3V หรือ 5V อาจไม่สำคัญตอนนี้) บนแถบเหล่านี้เป็นชั้นของ Velostat ซึ่งจะเปลี่ยนความต้านทานตามความดัน ที่ด้านบนของ velocity จะเป็นอีกชั้นหนึ่งของแถวหรือเซลล์ของเทปทองแดงที่เชื่อมต่อกับบางสิ่งบางอย่างที่แยกการอ่านของแรงดันไฟฟ้าผ่านชั้นของ velostat เนื่องจากคอยาวประมาณ 40 ซม. จะมีอย่างน้อย 80 แถว

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

ตอนนี้บิตยาก:

การวัดต้องเป็นแบบเรียลไทม์ - y เพียงพอที่จะตรวจจับค้อน -on เป็นต้น (ไม่ทราบว่าต้องให้อัตราตัวอย่างสูงเท่าไร - ประมาณที่ kHz หลายตัวสำหรับการวัดและการเล่นที่ดี) และเอาต์พุตดิจิตอลของคอนโทรลเลอร์ควรเป็น MIDI (ใน 3 ช่องสัญญาณแยก - หนึ่งต่อสาย) หรือสัญญาณดิจิตอลที่สามารถประมวลผลด้วย Raspberry Pi

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

TL; DR:

  • ประมาณ 240 เซ็นเซอร์

  • สามารถแยกออกเป็นกลุ่ม 80 ที่ขับเคลื่อนโดยบรรทัดเดียวกัน

  • นี่เป็นแอปพลิเคชั่นตามเวลาจริงฉันจำเป็นต้องได้รับแรงกดดันจากเซ็นเซอร์ทุกตัวเมื่อสัมผัส (มีเงื่อนไขบางประการดูด้านบน)

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

สิ่งที่ฉันนึกถึง:

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

แก้ไข / UPDATE:

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

ฉันมีเมทริกซ์ของเซ็นเซอร์ความดัน 80 แถว * 3 คอลัมน์ เมื่อมนุษย์โต้ตอบกับเมทริกซ์เซ็นเซอร์เซ็นเซอร์หลายตัวในบริเวณใกล้เคียงจะรับการสัมผัส แต่จะอยู่ตามแนวเสาเท่านั้น คอลัมน์ถูกแยกทางกลไก เซ็นเซอร์มีความต้านทานระหว่าง 100 โอห์มและ 1 kOhm เซ็นเซอร์เหล่านี้ทั้งหมดต้องอ่านด้วยความลึก 8 บิตผ่านการประมวลผลและต้องส่งผลลัพธ์ด้วยอัตราอย่างน้อย 1 kHz ดังนั้นการอ่าน / ประมวลผลเพียงครั้งเดียวจึงต้องใช้เวลาน้อยกว่ามิลลิวินาที เอาต์พุตสุดท้ายต่อคอลัมน์ต้องมี: 4 ไบต์สำหรับ float32 และ 1 ไบต์สำหรับ uint8 float32 จะระบุตำแหน่งโดยเฉลี่ยของการโต้ตอบแรกตามคอลัมน์ การโต้ตอบถูกกำหนดให้เป็นกลุ่มของเซ็นเซอร์ที่ต่อเนื่องกันซึ่งมีแรงดันสูงกว่าเกณฑ์ที่กำหนด นี่คือที่การประมวลผลได้รับการผสม: คอลัมน์จะถูกเลื่อนลงด้านล่างจนกว่าการอ่านจะเกินเกณฑ์ นี่จะนับเป็นการเริ่มต้นของการโต้ตอบ ความดันและตำแหน่งของเซ็นเซอร์ทุกตัวจะได้รับการจดจำจนถึงเซ็นเซอร์ตัวแรกที่อยู่ต่ำกว่าเกณฑ์ที่มีเซ็นเซอร์ต่อเนื่องสูงสุด 4 ตัว จากเซ็นเซอร์ทั้งหมดของการโต้ตอบที่บันทึกไว้เซ็นเซอร์เพียงสองตัวเท่านั้นที่จะถูกประมวลผลซึ่งเป็นเซ็นเซอร์ที่อ่านค่าความดันสูงสุด ตำแหน่งจุดลอยตัวจะคำนวณโดยการหาค่าเฉลี่ยของเซ็นเซอร์ทั้งสองตำแหน่งซึ่งถ่วงน้ำหนักด้วยแรงกดดัน ความกดดันโดยรวมของการโต้ตอบจะเป็นเพียงแค่การเพิ่มแรงกดดันทั้งสองที่ถูกจับระหว่าง 0 และ 255 (เพิ่มแรงกดดันทั้งสองของยูนิต 8 ลงใน uint16 และหารด้วย 2 โดยไม่ปัดเศษทิ้งบิตที่ไม่จำเป็น - นี่น่าจะเร็ว) สิ่งนี้ต้องเกิดขึ้นสำหรับทุกคอลัมน์ ผลลัพธ์ของขนาด 15 ไบต์จะถูกส่งผ่าน SPI ไปยังคอมพิวเตอร์ขนาดเล็ก (Raspberry Pi B3) ที่ทำหน้าที่เป็นซินธิไซเซอร์ ฉันไม่ได้ตั้งค่าวิธีการส่ง ถ้า SPI ไม่ใช่เครื่องมือที่เหมาะสมสำหรับงานฉันยินดีที่จะใช้วิธีการสื่อสารใด ๆ ที่ Raspberry Pi สามารถจัดการได้ เนื่องจากนี่เป็นแอปพลิเคชั่นทางดนตรีโต้ตอบความหน่วงจึงเป็นสิ่งสำคัญ

คำถามที่แน่นอนของฉันคือ: สิ่งนี้สามารถแก้ไขได้ด้วยไมโครคอนโทรลเลอร์เดียวโดยไม่ทำลายธนาคารหรือไม่? ฉันไม่สามารถซื้อไอซีได้หลายร้อยดอลลาร์สำหรับโครงการงานอดิเรก คุณจะแนะนำฮาร์ดแวร์อะไร มีข้อแม้ที่ไม่ชัดเจนที่ฉันต้องระวังหรือไม่

วิธีที่ฉันได้รับจากคำตอบจนถึงตอนนี้คือการให้พลังงานแต่ละคอลัมน์แยกกันจากนั้นอ่านแถวที่มี ADC 16 16 ช่อง (ADS7961) ที่เชื่อมต่อกับ Arduino ผ่าน SPI ฉันกังวลว่านี่อาจไม่ใช่วิธีที่ง่ายที่สุด / ถูกที่สุดหรือไม่เร็วพอที่จะไปถึงอัตรา> 1 kHz

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


เพียงแค่ความคิด .... อาจมีการปรับปรุงความเร็วถ้า mux มี interleaved .... mux0 จะสแกนไม่สบายใจ 0,8,16,24 ฯลฯ ... mux1 - 1,9,17,25 ... ถึง mux7 (หรือสูงกว่า) ... วิธีการที่ครั้งแรก 8 วิตกกังวลที่จะอ่านในเวลาเดียวกันโดย 8 muxes ... แล้วต่อไป 8 วิตกกังวล ... ฯลฯ
jsotola

2
คำว่า 'เรียลไทม์' อาจไม่ใช่คำที่ถูกต้อง หมายความว่าข้อมูลกำลังออกจากระบบในอัตราเดียวกับที่ป้อนเข้า (หนึ่งตัวอย่างในหนึ่งตัวอย่างออก) แต่มันไม่ได้บอกอะไรเลยเกี่ยวกับความล่าช้า - เวลาที่ใช้ในการประมวลผล สำหรับการใช้ดนตรีคุณต้องมีเวลาแฝงโดยรวม (รวมถึงเวลาในการสังเคราะห์ / เล่นเสียงสุดท้าย) ให้น้อยกว่า 10-15 ms โดยควรน้อยกว่า 5
Schizomorph

ความต้านทานที่เปลี่ยนแปลงระหว่างการกดและไม่ถูกกดคืออะไร?
Trevor_G

ระหว่าง 10 ถึง 1,000 โอห์ม (ประมาณ)
d.oelert

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

คำตอบ:


7

ขึ้นอยู่กับช่วงราคาของคุณคุณอาจต้องการพิจารณาใช้ FPGA ระหว่าง Raspberry Pi และ ADC ของคุณเช่นDE0-Nano Boardซึ่งได้รับการสนับสนุนเป็นอย่างดีในกระดาน FPGA dev เบื้องต้น โซลูชันนี้มีข้อดีของการอนุญาตให้คุณเขียนโค้ดซึ่งจะนาฬิกา ADC หลายตัว / หลายตัวในเวลาเดียวกันและจัดรูปแบบข้อมูลของคุณในแบบที่เป็นไปได้ของ Raspberry Pi

คุณพูดถึงว่าคุณกำลังพิจารณา MCP3008 ชิปนี้คือ SPI ดังนั้นคุณสามารถเชื่อมต่ออุปกรณ์สองสามอย่างเข้าด้วยกันบนรถบัสเดียวกันด้วยหมุด CS ที่แตกต่าง สมมติว่าคุณเชื่อมต่อชิปสามตัวกับรถบัสเพื่อให้ช่อง 24 ADC ต่อ 6 พิน (สามสายข้อมูลและสามสาย CS) ซึ่งหมายความว่า 240 ช่องสัญญาณสำหรับ 60 พินซึ่งอยู่ภายในความสามารถของ FPGA อย่างง่ายดาย

หากคุณรันสายสัญญาณ MCP3008 ที่ความถี่สูงสุด 2MHz มันจะใช้เวลา (15 นาฬิกา / ช่อง) * (8 ช่อง / ชิป) * (3 ชิป / บัส) * (1/2000000 วินาที / นาฬิกา) = 0.18ms ถึง อ่านเซ็นเซอร์ 240 ทั้งหมดซึ่งสอดคล้องกับอัตราตัวอย่าง 5.56kHz


ฟังดูเหมือนเป็นวิธีที่ยอดเยี่ยมอย่างไม่น่าเชื่อ! ฉันจะตรวจสอบสิ่งนั้นอย่างแน่นอน ฉันไม่มีประสบการณ์เกี่ยวกับ FPGA ดังนั้นนี่อาจจะมากเกินไปสำหรับฉันที่จะจัดการ ... ในทางกลับกันฉันมักจะมองหาข้ออ้างที่จะเข้าสู่ FPGA ...
d.oelert

คุณสามารถใช้ชิป ARM ที่มี SPI หลายบรรทัด ด้วยวิธีนี้คุณจะหลีกเลี่ยงค่าใช้จ่ายของ FPGA และรับอัตราตัวอย่างเพิ่มขึ้นสามเท่า (ถ้าคุณมีคอนโทรลเลอร์ SPI 3 ตัว) โปรดทราบว่าคุณต้องจัดการความล่าช้าเนื่องจากการประมวลผลภายใน (การย้ายการอ่านภายใน MCU ไปยังตำแหน่งอื่น ๆ ที่ Pi สามารถรับได้) และการสื่อสาร MCU-> Pi
Ronan Paixão

อย่างไรก็ตาม PI ยังมีคอนโทรลเลอร์ SPI ด้วย
Ronan Paixão

แนวคิดเบื้องหลัง FPGA คือคุณสามารถสร้างพูดได้ว่าตัวควบคุม SPI 10 ตัวแยกจากกัน (ใช้หมายเลขจากตัวอย่างที่ฉันให้ไว้) และใช้งานพวกมันแบบขนานได้อย่างง่ายดาย และใช่ Pi มีคอนโทรลเลอร์ SPI แต่ไม่มีที่ไหนใกล้เร็วหรือขนานเท่าที่ FPGA จะทำให้สามารถสร้างได้
Billy Kalfus

หากคุณสามารถค้นหา FPGA หรือ CPLD ด้วยอินพุตที่ไม่มีบัฟเฟอร์คุณอาจสร้าง MUX แบบอะนาล็อก 80: 1 มันเป็นช็อตยาว แต่มันอาจใช้งานได้
Caleb Reister

10

คำตอบที่ชัดเจนคือ muxing ซึ่งหมายความว่าคุณสร้างเส้นทางไฟฟ้าแบบไดนามิก ดังนั้นแค่วนซ้ำทั้งเมทริกซ์ทีละตัวหรืออินพุต ADC (Analog to Digital Converter) เท่าที่คุณมี

หากคุณได้รับ 3 ADC จากนั้นคุณสามารถอ่านทีละหนึ่งแถวจากนั้นคุณเปลี่ยนอินพุตเป็น mux และ voilla ตอนนี้คุณกำลังอ่านแถวที่สองแล้วดำเนินการต่อ ปัญหาของการตั้งค่านี้คือคุณมี 80 แถวและไม่มี 80: 1 (อินพุตแปดสิบต่อหนึ่งอินพุต) mux ที่ฉันรับรู้ แต่มี16: 1 muxesที่คุณสามารถรวมเข้าด้วยกันเพื่อรับ 16 * 5 = 80 อินพุต

มันจะมีลักษณะเช่นนี้:

row  0-15 [16:1 mux]____________ 5 inputs in [8:1 mux]-ADC
row 16-31 [16:1 mux]_| | | |
row 32-47 [16:1 mux]___| | |
row 48-63 [16:1 mux]_____| |
row 64-79 [16:1 mux]_______|

สัญญาณอินพุท 4 เข้ากับ 16: 1 mux สามารถเชื่อมต่อเข้าด้วยกัน

ดังนั้นในที่สุดคุณจะมีไบต์พร้อมสัญญาณควบคุมในรูปแบบนี้:

Grouped up:
0, 3 bits for the 8:1 mux, 4 bits for the 16:1 mux

Bit for bit:
0,8:1 MSB, 8:1 LSB+1, 8:1 LSB, 16:1 MSB, 16:1 LSB+3, 16:1 LSB+2, 16:1 LSB+1, 16:1 LSB

ซึ่งหมายความว่าคุณจะต้อง 5 × 16: 1 muxes และหนึ่ง 8: 1 mux = 6 IC

คูณด้วย 3 เพราะคุณอาจต้องการอ่านทีละหนึ่งแถว

ซึ่งหมายความว่าคุณจะมี 18 IC, 7 สัญญาณควบคุม คุณสามารถลดจำนวนของไอซีถ้าคุณจะเพิ่มจำนวนของอินพุตแบบอะนาล็อก มันคือ 18 มีเพียง 3 อินพุตอะนาล็อก

หากคุณใช้ 240/16 = 15 IC ของแทนคุณจะได้รับ 15 เอาต์พุตอนาล็อกจาก 15 × 16: 1 muxes จากนั้นคุณสามารถเรียงซ้อนด้วย 16: 1 mux หรือ 16: 8 mux ในท้ายที่สุดมันจะเป็น 16 IC ถ้าคุณจะ "ปรับ" ด้วย 16: 1 muxes แต่นี่จะหมายความว่าโซลูชันซอฟต์แวร์ของคุณจะไม่เป็น ... สง่างามอย่างที่กล่าวไว้ข้างต้นมันจะมีความสลับซับซ้อนและโมดูลัสและสิ่งอื่น ๆ แต่คุณช่วยคุณประหยัดได้ 2 IC

10.8ms=1.25kHZ

เป็นไปได้ แต่มันไม่ใช่การออกแบบที่ดี

ลองแก้ปัญหานี้ในอีกที่ ... เพิ่มพื้นที่และเงินอย่างมีประสิทธิภาพ

* 20 นาทีต่อมา * อืม ... วิธีแก้ปัญหาทั้งหมดที่ฉันพบนั้นยากเกินไปในการตั้งค่าและ / หรือต้องการการสอบเทียบขั้นสูง ...

โอ้ดีฉันคิดว่าการออกแบบของคุณเหมาะสมกับงานของคุณ

ขอให้โชคดี


ฉันสงสัยว่าโซลูชันอื่น ๆ เหล่านั้นคืออะไร สนใจที่จะแบ่งปัน? - pandalion98

OP ต้องการวัดตำแหน่งและความดัน นั่นคือพารามิเตอร์สองตัว ซึ่งหมายความว่าเราจำเป็นต้องบรรจุข้อมูลนั้นภายในสัญญาณแรงดันไฟฟ้าเพื่อให้เราสามารถอ่านและถอดรหัสได้ หรือเราจำเป็นต้องบรรจุเข้าไปในหน่วยอื่น ๆ เช่น ohm, inductance, capacitance

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

ความคิดแรก:

ใช้สายคู่ขนาน (ความต้านทานต่ำ) จากด้านล่างของกีต้าร์ไปที่คอของกีตาร์ เชื่อมต่อกราวด์กับสายไฟสายหนึ่งที่ด้านล่างของกีต้าร์ สร้างระบบการวัดค่า LR และวัดค่าการเหนี่ยวนำและความต้านทานจากลวดอื่น ๆ ที่ด้านล่าง

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

ไม่จำเป็นต้องเป็น "สายไฟ" สองเส้นสามารถเป็นเทปนำไฟฟ้าสองอันหรืออย่างอื่นก็ได้

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

ดังนั้นการเหนี่ยวนำ => ตำแหน่งของนิ้ว ความต้านทาน => คุณกดยากแค่ไหน

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

ความคิดที่สอง:

ทำให้พื้นผิวที่เป็นตัวนำแบนบนกีตาร์ที่เชื่อมต่อกับพื้นดิน

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

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

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

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


มันจะมีลักษณะเช่นนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันสันนิษฐานว่าอิมพีแดนซ์ลักษณะเป็น 150 in ในคำอื่น ๆ สายส่งที่ไม่ดี ในความเป็นจริงมันอาจจะแย่กว่านั้นฉันไม่รู้ว่าฉันไม่เคยทำสิ่งนี้

นี่คือลิงค์ในกรณีที่มีคนต้องการยุ่ง

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

อีกส่วนที่ยากคือการวัด TOF (เวลาของการบิน) มี IC บางตัวอยู่ที่นั่น แต่มันไม่ถูกเลย .. แต่คุณสามารถสร้างแหล่งกระแสคงที่และเติมตัวเก็บประจุขนาดเล็กได้เสมอ อ่านแรงดันไฟฟ้า

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

https://en.wikipedia.org/wiki/Transmission_lineเลื่อนลงมาเล็กน้อยและคุณจะเห็นว่าพารามิเตอร์ตัวเก็บประจุเป็นส่วนหนึ่งของส่วน

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

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

แนวคิดที่สาม:

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

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


1
ฉันรู้สึกว่าการดีบั๊กเกี่ยวข้องกับการต่อ 15 ไอซีเข้ากับเซ็นเซอร์ 80 ชุด 3 ชุดซึ่งอาจ ... สำคัญ นอกจากนี้แน่นอนว่าสิ่งนี้จะไม่แข็งแรงพอที่จะใช้งานเนื่องจากสายไฟหลายร้อยตัวห้อยลงมาจากอาร์เรย์เซ็นเซอร์
BeB0000

ฉันคิดว่านี่เป็นจริงได้และถ้าทำอย่างถูกต้องลดปริมาณการเดินสายที่จะต้องมีอย่างอื่น
pjc50

ฉันสงสัยว่าโซลูชันอื่น ๆ เหล่านั้นคืออะไร สนใจที่จะแบ่งปัน?
PNDA

1
@ pandalion98 อืม ... ความคิดที่สองอาจไม่ใช่ความคิดที่เลวร้าย โอ้ดี
Harry Svensson

6

สามความคิด:

1. ทำมัลติเพล็กซ์ที่ด้านอุปทาน

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

แต่คุณสามารถทำมัลติเพล็กซ์นี้บางส่วนหรือทั้งหมดในด้านอุปทานโดยการแบ่ง 'ราง' ของอุปกรณ์ออกเป็นส่วนn เชื่อมต่อชุดแผ่นเซ็นเซอร์nซึ่งแต่ละชุดมีรางจ่ายที่แตกต่างกัน ตอนนี้ให้พลังงานรางจ่ายเพียงครั้งเดียวและใช้หนึ่งอินพุต ADC เพื่ออ่านแผ่นแต่ละชุด (นี่เป็นวิธีที่วงจรที่อ่านแป้นพิมพ์คอมพิวเตอร์มักจะทำงานได้และวิธีการสลับสายมักเรียกว่า 'crosspoint switch') ในที่สุดคุณก็สามารถใช้ ADC ตัวเดียวเชื่อมต่อกับ 'ราง' ทั้งหมดและทำ มัลติเพล็กซ์ทั้งหมดโดยเชื่อมต่อพลังงานกับแต่ละแผ่นในทางกลับกัน

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

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

2. ใช้ไมโครคอนโทรลเลอร์บางตัวที่มีอินพุต ADC จำนวนมาก

ตัวอย่างเช่นPICAXE 40X2มี 27 พินที่สามารถใช้เป็นอนาล็อกในดังนั้นคุณสามารถครอบคลุมความต้องการของคุณด้วย 9 ของพวกเขา มันถูกตั้งโปรแกรมในภาษา BASIC แบบง่ายและสามารถทำหน้าที่เป็นทาส i2c - ดังนั้นคุณสามารถอ่าน 9 ชิปด้วยไมโครคอนโทรลเลอร์เพิ่มเติมหนึ่ง - หรือคุณอาจจะแค่ส่งออกจากแต่ละชิปเป็นข้อมูลอนุกรมและอ่านมันไปยังโฮสต์คอมพิวเตอร์ ผ่านตัวแปลงอนุกรมเป็น USB ฉันไม่สามารถรับประกันได้ว่าจะไปได้เร็วแค่ไหน แต่ฉันคิดว่ามันจะทำงานได้ดีถ้าคุณตอกบัตร PICAXE ที่ความเร็วสูงสุด (64 MHz โดยใช้ resonator ภายนอก 16 MHz) แน่นอนถ้าคุณมีความสุขกับการเขียนโปรแกรมไมโครคอนโทรลเลอร์ใน C คุณสามารถทำสิ่งเดียวกันกับ PIC18F45K22 ซึ่งใช้ PICAXE

3. ใช้หน่วยอินพุตแบบอะนาล็อกนอกชั้นวาง

ท้ายที่สุดถ้าคุณไม่รังเกียจที่จะใช้เงินเพื่อประหยัดเวลาและความสะดวกในการพกพานั้นไม่ได้มีความสำคัญสูงตัวอย่างเช่นถ้ามันโอเคสำหรับเครื่องมือที่จะผูกติดกับชั้นวางอุปกรณ์ด้วยสายเคเบิลหนา ๆ อุปกรณ์อินพุตแบบอะนาล็อกนับช่องสัญญาณเพื่อวัดเซ็นเซอร์ทั้งหมดในครั้งเดียว ตัวอย่างเช่นการวัดการคำนวณ USB-2633อ่านอะนาล็อก 64 อินพุตสำหรับค่าเกิน US $ 1k เล็กน้อย


4

อาจจะคุ้มค่าหากพิจารณาการปรับสภาพสัญญาณเดรัจฉานแบบแรง ๆ (อาจจะเป็นแบบพาสซีฟ) ตามด้วย ADC ขนาดเล็กหรือ MCU / ADC ที่มีอินพุต ADC แบบ MUX'd 16 หรือมากกว่านั้นแต่ละอินพุต นั่นเป็นเพียง 40 ชิป ตัวอย่างหนึ่งของชิปที่อาจใช้งานได้คือADS7961QDBTRQ1ซึ่งมีโหมดช่องสัญญาณเพิ่มขึ้นอัตโนมัติและอินพุต 16 ช่อง

อัตราข้อมูลโดยรวมแม้ที่อัตราตัวอย่าง 4kHz และ 240bytes ต่อตัวอย่างประมาณ 1MB / s ซึ่งไม่น่ากลัวเกินไป บางทีซีพียูหลักที่มีบัส 10MHz หรือ 20MHz SPI กำลังสื่อสารกับทาส ใช้ 2 SPI บัสถ้าแบนด์วิดท์ไม่ได้มี ส่วนที่กล่าวถึงข้างต้นทำงานที่ 20MHz ดังนั้น SPI เดียวจะทำ

หรือบางทีคุณอาจใช้ชิป TI ตัวเดียวนั่นคือDDC2256AZZFซึ่งมีการสุ่มตัวอย่าง 64 ช่องสัญญาณและ 256 อินพุท .. แต่มันไม่ถูกมากนัก (ประมาณ $ 350 USD) และมาในอาร์เรย์ LFBA ขนาด 14x14 มม. 323 พินดังนั้นมันจะไม่ ทำงานร่วมกับเขียงหั่นขนมปลั๊กอินสีขาว


3

สำหรับแอปพลิเคชันอินเทอร์เฟซของมนุษย์แบบเรียลไทม์อัตราตัวอย่างโดยรวมของมัลติ - เฮิร์ทซ์ดูเหมือนสูง 50Hz น่าจะเพียงพอ ( https://en.wikipedia.org/wiki/Input_lag#Typical_overall_response_times ) ซึ่งหมายความว่าคุณต้องสุ่มตัวอย่างเซ็นเซอร์ทั้งหมดใน <20ms ดังนั้น 80us ต่อเซ็นเซอร์ นี่ไม่ใช่เรื่องยากเกินไปและสามารถจัดการได้โดยทั่วไป 8 บิตไมโครคอนโทรลเลอร์ (เช่น Atmega88 สามารถทำได้ใน <30us)

คุณอาจวัดการโต้ตอบทั้งหมดแล้วละทิ้งสิ่งที่คุณไม่ต้องการเพราะการวัดทั้งหมดนั้นไม่ยากทางเทคโนโลยี ปัญหามาจากมัลติเพล็กซ์ ฉันสับสนเล็กน้อยที่โพสต์ของคุณเพราะมันบอกว่าเซ็นเซอร์ใช้พลังงาน 80 ครั้ง? สิ่งที่ต้องทำตามปกติคือคอลัมน์และแถวแบบหลายจุด หากคุณไม่ทำเช่นนั้นคุณจะต้องจัดการกับ> 80 สายที่ออกมาจากอุปกรณ์ของคุณซึ่งไม่ใช่ความคิดที่ดีจริงๆ คุณต้องหาวิธีที่จะแยกมันเป็นเมทริกซ์เพื่อให้คุณได้รับ 30 สาย (ซึ่งยังคงเป็นจำนวนมาก) คุณสามารถมัลติเพล็กซ์ได้ ฯลฯ แต่ถ้าฉันเป็นคุณฉันจะมีไมโครคอนโทรลเลอร์หลายตัวและให้พวกเขาเชื่อมต่อกับมาสเตอร์ คุณสามารถใช้ ADC เฉพาะงานแทน slave MCUs แต่โดยส่วนตัวแล้วฉันจะติดกับ MCU

คุณระบุได้อย่างถูกต้องว่าการสื่อสารอาจมีปัญหา แต่นี่ไม่ใช่เรื่องใหญ่อย่างน้อยระหว่าง MCU Atmega ที่ 8MHz สามารถทำ SPI ที่ 2MHz ดังนั้นการส่งข้อมูลเซ็นเซอร์ทั้งหมดจะใช้เวลา <1ms คำถามคือสิ่งที่คุณต้องการทำกับข้อมูลนี้หลังจากที่ MCU หลักมีแล้ว


2
เมื่อตอบสนองต่ออินพุต 50 เฮิร์ตซ์มักจะถือว่า "เพียงพอ" ในข้อกำหนดทั่วไปของ GUI แต่จากประสบการณ์ของฉันเองกับการ์ดเสียงการเล่นเพลงที่มีความล่าช้า 200 ms ไม่ใช่ประสบการณ์ที่น่าพึงพอใจเลย (คิดว่าการพูดติดขัด) ฉันจินตนาการว่าตัวแปรแฝง 0-200 มิลลิวินาทีจะทำให้เครื่องมือไม่สามารถเล่นได้จริงเพราะความรู้สึกใด ๆ ของ rhytm จะต้องถูกฆ่าตายอย่างแน่นอน ความถี่ในการโพลประมาณ 1 kHz จะเป็นจุดเริ่มต้นที่ดีที่สุด
Dampmaskin

1
@Dampmaskin 50 Hz = 20ms ไม่ใช่ 200ms 20ms น่าจะสมเหตุสมผลมากกว่านี้
Steven Waterman

1
ความผิดฉันเอง. อาจใช้งานได้ 20 ms หากเป็น consinsent 20 ms แต่เวลาแฝงที่น้อยกว่าจะดีกว่าเสมอ จะมีความล่าช้ามากขึ้นในภายหลังในห่วงโซ่สัญญาณอยู่แล้ว
Dampmaskin

@ Dampmaskin นั่นเป็นปัญหาที่ฉันเห็นด้วยวิธีการที่อธิบายไว้ ฉันจำเป็นต้อง "บันทึก" เวลาแฝงให้มากที่สุดเท่าที่จะเป็นไปได้สำหรับองค์ประกอบต่อไปในโซ่ขณะที่ฉันกำลังพยายามเชื่อมต่อราสเบอร์รี่ปี่ synth และฉันควรจะอยู่ต่ำกว่า 15-20ms ของเวลาแฝงทั้งหมด หากคอนโทรลเลอร์ใช้เวลานานถึง 20ms แสดงว่าไม่มี headroom เหลืออยู่
d.oelert

@StevenLowes 20ms นานเกินไปสำหรับนักดนตรีส่วนใหญ่ แม้จะอยู่นอกระยะทาง Haas สำหรับเสียงบางอย่าง โดยส่วนตัวแล้วฉันไม่สามารถจัดการกับความล่าช้ามากกว่า 10ms ได้และฉันรู้ว่านักเปียโนที่ไม่สามารถอยู่ในความล่าช้า 6ms ได้
Todd Wilcox

3

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

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

แผนผัง

จำลองวงจรนี้ - แผนผังที่สร้างโดยใช้CircuitLab

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


1

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

ที่จะบอกตำแหน่งที่คุณสัมผัส

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

ข้อเสียของวิธีนี้คือสตริงจะตอบสนองต่อการสัมผัสที่สูงขึ้น


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

โดยเฟร็ตและสตริงดังกล่าวข้างต้นที่ผมหมายถึงแถบทองแดงที่คุณกล่าวถึงในคำถามของคุณ
Jasen

อ่าฉันเห็นสิ่งที่คุณหมายถึงตอนนี้ขอโทษที่หนาแน่น วิธีการนี้อาจแตกหักเมื่อโน้ตเล่นเลกาโตเพราะเมื่อนั้นจะมีการสัมผัสหลายครั้งบนสตริงเดียวกันอย่างหลีกเลี่ยงไม่ได้ เฉพาะเรื่องที่ต่ำที่สุดเท่านั้น
d.oelert

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

กล้องมีจำนวนมากของเซ็นเซอร์อนาล็อก ...
Jasen

0

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

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


" หากคุณสามารถรับสายบางเส้นที่มีความต้านทานสม่ำเสมอต่อนิ้วที่อยู่ระหว่าง 100 โอห์มและ 100K สำหรับความยาวของกีต้าร์ " - ฉันสงสัยว่า s / เขาสามารถหาสายชนิดนั้นได้
Harry Svensson

ฉันไม่เห็นด้วย; ฉันมีสายต้านทานในสำนักงานของฉันที่ 1717 ohm / m ดังนั้นจึงไม่ยากที่จะหาเลย ฉันไม่ได้บอกว่ามันง่ายที่จะทำงานด้วยเพราะนี่เป็นสายØ50 µm แต่ก็ไม่ยากที่จะได้รับ
MrGerber

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

นี่ไม่ใช่ NiCr แต่ FeCrAl และความต้านทานไม่เปลี่ยนแปลงมากเกินอุณหภูมิ ประเภทที่ฉันเปลี่ยนประมาณ 8% จาก 100 C เป็น 1300 C Ref: Kanthal D (และไม่ฉันไม่ได้ผลิตบุหรี่อิเล็กทรอนิกส์)
MrGerber

@MrGerber: โอเคนั่นไม่เลวเลย ในการตอบสนองต่อความคิดเห็นก่อนหน้านี้ฉันค้นหาตารางและเห็นค่าความต้านทานที่เพิ่มขึ้นตามลำดับความสำคัญกับอุณหภูมิ
supercat

0

ฉันเห็นโพสต์นี้และฉันคิดว่ามันอาจเป็นไปได้ด้วยชิปตัวเดียว ฉันรู้ว่าคุณเอาบอร์ดไมโครคอนโทรลเลอร์มาใช้เหมือนบอร์ด bluepill ราคาถูก มันมี ARM M3 พร้อม 10 ช่อง ADC ให้ใช้งานฟรี หากคุณใส่คอลัมน์ใน 3 กลุ่มของ 3 สายเชื่อมต่อคอลัมน์เหล่านั้นเข้ากับช่อง ADC ฟรี 9 ช่อง ใช้หมุด 21 อันอื่นเพื่อสลับแถวของพินรวม 63 'frets' เมทริกซ์การเชื่อมต่อตัวต้านทานคือเซลล์เทอร์โมสตัลไดรฟ์ gpio ที่ 3.3v หรืออยู่ในโหมดอินพุตหมุด ADC วัดแรงดันตกคร่อมเซลล์โซเลเตอร์ ไมโครคอนโทรลเลอร์มี ADC 12 บิต 1 Msps สองตัวที่สามารถใช้กับการหน่วงเวลาเฟสเพื่อสนับสนุน 2Msps ซึ่งควรมีมากมายที่จะไม่พลาดค้อนหรือสังเกตเห็นการปรับใด ๆ ฉันคิดว่าคุณสามารถใช้การเชื่อมต่อ USB และทำให้มันทำงานเหมือนคอนโทรลเลอร์ USB midi คุณสามารถใช้ไมโครคอนโทรลเลอร์ที่มีขนาดใหญ่ขึ้นเพื่อรับอินพุตมากขึ้น แต่ฉันไม่เห็นว่าคุณจะจัดการระยะห่างที่ 'ทำให้ไม่สบายใจ' ด้วยความวิตกกังวลมากกว่า 30 ครั้งหรือว่ามันจะเป็นหน้าจอสัมผัสมากกว่านี้หรือไม่?

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.