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


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.