Saya mencoba membangun pengontrol seperti MIDI yang memiliki leher seperti gitar. Di leher itu, ada matriks besar sensor tekanan. Pengontrol akan meniru 3 string.
Cara kerjanya adalah: Ada 3 strip panjang pita tembaga dua sisi (lebar 0,5 cm, sepanjang leher) yang terhubung ke daya (mungkin 3.3V atau 5V, tidak masalah untuk saat ini). Pada strip ini adalah lapisan Velostat, yang mengubah resistivitas berdasarkan tekanan. Di atas velostat akan ada lapisan lain dari baris atau sel-sel pita tembaga, terhubung ke sesuatu, yang memuntahkan pembacaan tegangan melalui lapisan velostat. Karena lehernya sekitar 40 cm, akan ada setidaknya 80 baris.
Jika Anda membayangkan 3 strip bawah pita tembaga sebagai kolom bagan di sepanjang leher, sensornya akan menjadi sel atau baris, tergantung pada metode pengukurannya (saya pikir orang mungkin dapat menggandakan kolom juga, lalu mungkin ada baris.) Ada beberapa kondisi khusus yang mungkin membuat ini lebih mudah: Karena ini adalah pengontrol seperti gitar tidak setiap interaksi perlu diukur! Hanya sentuhan yang paling dekat dengan badan pengontrol yang penting. Juga resolusi 8 bit harus cukup akurat. 255 level tekanan mungkin lebih dari yang dibutuhkan.
Sekarang bagian yang sulit:
Pengukuran harus real-time-y cukup untuk mendeteksi palu, dll. (Tidak tahu seberapa tinggi laju sampel perlu - diperkirakan beberapa kHz untuk ukuran dan pemutaran yang baik) dan output digital dari pengontrol harus MIDI (pada 3 saluran terpisah - satu per string) atau sinyal digital yang dapat diproses dengan Raspberry Pi.
Sekarang karena pengetahuan saya sangat terbatas, saya tidak bisa memikirkan alat yang tepat untuk pekerjaan itu. Yang saya tahu adalah: Itu mungkin. Ada pengontrol yang serupa tetapi berbeda yang menggunakan teknik yang sangat mirip (yang saya reka ulang direkayasa sampai saya perhatikan, bahwa mereka memiliki hak paten dan informasi tentang cara mereka melakukannya tidak seaneh yang saya kira), disebut ROLI Daerah pesisir.
TL; DR:
kira-kira 240 sensor
dapat dipisahkan menjadi kelompok-kelompok 80 yang didukung oleh garis yang sama
ini adalah aplikasi waktu nyata, saya perlu mendapatkan tekanan dari setiap sensor saat disentuh (beberapa kondisi berlaku, lihat di atas)
Terima kasih sebelumnya, saya tahu banyak membaca. Saya berterima kasih atas saran dan akan sangat senang jika Anda dapat membantu saya menyelesaikan kekacauan mengerikan yang saya rencanakan untuk diproduksi!
Hal-hal yang saya pikirkan sejauh ini:
Multiplexing baris dan kolom, membaca setiap sel dengan MCP3008 atau ADC lebih besar dan rantai (seperti rantai daisy atau pohon) ATmegas yang hanya mendorong interaksi posisi-bijaksana terendah ke sinyal akhir, tetapi dari perhitungan saya, yang mungkin bisa dihambat oleh overhead komunikasi. Juga model sebelumnya termasuk potensiometer pita, yang telah saya buang, karena desainnya buruk (beberapa upaya, tidak cukup keren).
EDIT / PEMBARUAN:
Terima kasih atas saran yang bagus sejauh ini! Terima kasih kepada mereka, saya sekarang dapat mengungkapkan masalah saya dengan lebih jelas:
Saya memiliki matriks 80 baris * 3 kolom sensor tekanan. Ketika seorang manusia berinteraksi dengan matriks sensor, beberapa sensor di dekatnya akan mengambil sentuhan, tetapi hanya di sepanjang kolom. Kolom dipisahkan secara mekanis. Sensor memiliki resistansi antara 100 Ohm dan 1 kOhm. Semua sensor ini perlu dibaca dengan kedalaman 8 bit, diproses dan hasilnya harus dikirim dengan kecepatan minimal 1 kHz. Jadi satu bacaan / pemrosesan perlu waktu kurang dari satu milidetik. Output akhir per kolom harus: 4 byte untuk float32 dan 1 byte untuk uint8. Float32 akan menunjukkan posisi rata-rata dari interaksi pertama sepanjang kolom. Interaksi didefinisikan sebagai sekelompok sensor yang berurutan dengan tekanan di atas ambang tertentu. Di sinilah pemrosesan masuk ke dalam campuran: kolom akan dilintasi ke bawah sampai pembacaan melampaui ambang batas. Ini kemudian akan dihitung sebagai awal interaksi. Tekanan dan posisi setiap sensor diingat hingga sensor pertama, yang jatuh di bawah ambang batas dengan maksimum (mungkin) 4 sensor berturut-turut. Dari semua sensor interaksi yang direkam, hanya dua sensor yang akan diproses - sensor yang membaca tekanan tertinggi (resistansi terendah) dan sensor tertinggi langsung di atas atau di bawahnya. Posisi titik mengambang dihitung dengan rata-rata dua posisi sensor yang dibebani oleh tekanannya. Tekanan keseluruhan interaksi adalah penambahan kedua tekanan yang dijepit antara 0 dan 255 (tambahkan kedua tekanan unit8 ke dalam uint16 dan bagi dengan 2 tanpa pembulatan, buang bit yang tidak dibutuhkan - ini harus cepat). Ini perlu terjadi untuk setiap kolom. Hasil ukuran 15 byte kemudian akan dikirim melalui SPI ke komputer kecil (Raspberry Pi B3) yang bertindak sebagai synthesizer. Saya tidak mengatur tentang metode transmisi. Jika SPI bukan alat yang tepat untuk pekerjaan itu, saya bersedia mengambil metode komunikasi apa pun yang dapat ditangani oleh Raspberry Pi. Karena ini adalah aplikasi interaktif musik, latensi sangat penting.
Pertanyaan persis saya adalah: Apakah ini dapat diselesaikan dengan mikrokontroler tunggal tanpa merusak bank? Saya tidak mampu membeli beberapa ratus dolar IC untuk proyek hobi. Perangkat keras apa yang akan Anda rekomendasikan? Apakah ada peringatan yang tidak jelas yang harus saya waspadai?
Pendekatan yang saya peroleh dari jawaban sampai sekarang adalah untuk memberi daya pada masing-masing kolom secara terpisah, kemudian membacakan baris dengan 5 ADC 16-saluran (ADS7961) yang terhubung ke Arduino melalui SPI. Saya khawatir ini mungkin bukan pendekatan termudah / termurah atau tidak cukup cepat untuk mencapai tingkat> 1 kHz.
Penafian: Saya biasanya seorang ahli kimia teoritis dan amatir yang buruk dalam hal teknik elektro, semua yang saya tahu adalah otodidak dan tanpa latar belakang profesional (yang pada gilirannya menjadi alasan saya mencari bantuan dari orang yang lebih berpengetahuan). Saya tahu jalan saya di sekitar perangkat lunak. Apapun tentang perangkat lunak, saya akan mencari tahu dengan waktu yang cukup. Juga, saya orang Jerman, jadi mohon maafkan kesalahan tata bahasa sesekali.