Daftar Isi:

Perangkat Substitusi dan Augmentasi Sensorik Vibrotactile (SSAD): 4 Langkah
Perangkat Substitusi dan Augmentasi Sensorik Vibrotactile (SSAD): 4 Langkah

Video: Perangkat Substitusi dan Augmentasi Sensorik Vibrotactile (SSAD): 4 Langkah

Video: Perangkat Substitusi dan Augmentasi Sensorik Vibrotactile (SSAD): 4 Langkah
Video: Blind User Preferences for Sensory Substitution Devices (SCHI Lab) 2024, November
Anonim
Perangkat Substitusi dan Augmentasi Sensorik Vibrotactile (SSAD)
Perangkat Substitusi dan Augmentasi Sensorik Vibrotactile (SSAD)
Perangkat Substitusi dan Augmentasi Sensorik Vibrotactile (SSAD)
Perangkat Substitusi dan Augmentasi Sensorik Vibrotactile (SSAD)

Proyek ini bertujuan untuk memfasilitasi penelitian di bidang Substitusi dan Augmentasi Sensorik. Saya memiliki kemungkinan untuk mengeksplorasi berbagai cara membangun prototipe SSAD vibrotactile dalam disertasi MSc saya. Karena Substitusi dan Augmentasi Sensorik adalah topik yang tidak hanya menyangkut ilmuwan komputer, tetapi juga peneliti dari bidang lain, seperti ilmu kognitif, instruksi langkah demi langkah harus memungkinkan non-ahli dalam bidang elektronik dan ilmu komputer untuk merakit prototipe ini untuk mereka sendiri. tujuan penelitian.

Saya tidak bermaksud membuat iklan hanya untuk satu jenis merek/produk. Proyek ini tidak disponsori oleh perusahaan manapun. Bahan yang saya gunakan dipilih karena spesifikasi teknis dan kenyamanan (kecepatan/biaya pengiriman, ketersediaan, dll.). Untuk semua produk yang disebutkan dalam Instruksi ini, tersedia alternatif yang sama cocoknya.

Instructable saat ini berisi petunjuk langkah demi langkah tentang cara membuat prototipe SSAD dasar dengan hingga 4 motor dan sensor analog.

Selain Instructable ini, saya telah membuat tiga ekstensi: Pertama, saya menerbitkan instruksi tentang cara menggunakan lebih dari empat motor dengan prototipe SSAD ini (https://www.instructables.com/id/Using-More-Than-4…). Kedua, saya membuat menyediakan dan contoh bagaimana membuat prototipe ini dapat dipakai (https://www.instructables.com/id/Making-the-SSAD-W…) dan bagaimana menutupi motor ERM tanpa massa berputar yang dienkapsulasi (https:/ /www.instructables.com/id/Covering-Rotating…). Selanjutnya, contoh bagaimana mengintegrasikan selain sensor analog (dalam hal ini sensor jarak) ke prototipe juga diterbitkan (https://www.instructables.com/id/Including-a-Proxi…).

Apa itu "Substitusi dan Augmentasi Sensorik"?

Dengan Substitusi Sensorik informasi yang dikumpulkan oleh satu modalitas sensorik (misalnya penglihatan) dapat dirasakan melalui indera lain (misalnya suara). Ini adalah teknik non-invasif yang menjanjikan yang membantu orang mengatasi kehilangan atau gangguan sensorik.

Jika stimulus sensorik, yang diterjemahkan, biasanya tidak terlihat oleh manusia (misalnya sinar UV), pendekatan ini disebut Sensory Augmentation.

Keterampilan apa yang dibutuhkan untuk membangun prototipe ini?

Pada dasarnya, tidak diperlukan keahlian pemrograman tingkat lanjut untuk mengikuti instruksi yang diberikan di bawah ini. Namun, jika Anda seorang pemula dalam menyolder, rencanakan waktu ekstra untuk mengenal teknik ini. Jika Anda belum pernah memprogram sebelumnya, beberapa bantuan dari seseorang yang lebih berpengalaman dalam pemrograman mungkin diperlukan.

Apakah ada mesin atau alat yang diperlukan yang mahal atau tidak tersedia dengan mudah?

Kecuali besi solder, tidak ada mesin atau peralatan yang diperlukan untuk membuat prototipe ini yang tidak dapat Anda beli dengan mudah secara online atau di toko rumah tangga berikutnya. SSAD ini dirancang untuk memungkinkan pembuatan prototipe cepat, yang berarti harus dapat direproduksi dengan cepat dan memungkinkan eksplorasi ide yang murah.

Perlengkapan

Komponen utama (sekitar £ 65 untuk 4 motor, tidak termasuk peralatan solder)

  • Arduino Uno (mis. https://store.arduino.cc/arduino-uno-rev3, 20£)
  • Adafruit Motorshield v2.3 (mis. https://www.adafruit.com/product/1438, 20£) dan header susun jantan (biasanya disertakan saat membeli pelindung motor)
  • Motor ERM silinder (mis. https://www.adafruit.com/product/1438, 5, 50£ / motor)
  • Besi solder dan kawat solder
  • kabel

Opsional (lihat Ekstensi)

Jika motor ERM dengan massa berputar tidak tertutup dibeli:

  • tabung vinil
  • Papan lunak tipis
  • Printer 3D (untuk casing Arduino)

Jika Anda ingin menggunakan lebih dari 4 motor (untuk lebih dari 8 yang sama di lain waktu):

  • Adafruit Motorshield v2.3 dan header susun jantan
  • Header susun betina (mis.
  • Arduino Mega untuk lebih dari 6 motor (mis.

Langkah 1: Menyolder

Pematerian
Pematerian

Solder pin ke kaca motor

Adafruit menawarkan tutorial yang sangat komprehensif tentang cara menyolder header ke pelindung motor (https://learn.adafruit.com/adafruit-motor-shield-v…):

  1. Pertama, masukkan header susun ke dalam pin pada Arduino Uno,
  2. Kemudian, letakkan pelindung di atas, sehingga sisi pendek pin menonjol.
  3. Setelah itu, solder semua pin ke shield dan pastikan solder mengalir di sekitar pin dan membentuk bentuk gunung berapi (lihat gambar di atas, yang diadopsi dari https://cdn.sparkfun.com/assets/c/d/ a/a/9/523b1189…).

Jika Anda seorang pemula dalam menyolder, bantu diri Anda dengan lebih banyak tutorial, seperti

Solder kabel yang lebih panjang ke motor

Karena sebagian besar motor datang tanpa atau kabel yang sangat pendek dan tipis, masuk akal untuk memperpanjangnya dengan menyoldernya ke kabel yang lebih panjang dan lebih kuat. Inilah cara Anda bisa melakukannya:

  1. Lepaskan plastik di sekitar ujung kabel dan posisikan sehingga saling bersentuhan di sepanjang kabel yang terbuka, seperti pada gambar.
  2. Solder bersama-sama dengan menyentuh kedua ulir kabel dan biarkan solder mengalir di atasnya.

Langkah 2: Pengkabelan

Pengkabelan
Pengkabelan
  1. Tumpuk motorshield di atas Arduino.
  2. Sekrup motor ke kaca motor.
  3. Hubungkan sensor analog ke Arduino (dalam gambar ini dilakukan dengan sensor cahaya, tetapi sirkuit yang sama terlihat sama untuk sensor analog lainnya).

Langkah 3: Pengkodean

Pengkodean
Pengkodean
Pengkodean
Pengkodean
Pengkodean
Pengkodean
Pengkodean
Pengkodean

1. Unduh

Unduh folder zip (SSAD_analogueInputs.zip), terlampir di bawah. Buka ritsletingnya.

Unduh Arduino IDE (https://www.arduino.cc/en/main/software).

Buka file Arduino (SSAD_analogueInputs.ino) yang ada di dalam folder unzip dengan Arduino IDE.

2. Instal Perpustakaan

Untuk menjalankan kode yang disediakan, Anda perlu menginstal beberapa perpustakaan. Jadi, jika file Arduino, yang dilampirkan di akhir artikel ini, terbuka di dalam Arduino IDE, lakukan hal berikut:

  1. Klik: Alat → Kelola Perpustakaan…
  2. Cari "Perpustakaan Adafruit Motor Shield V2" di kolom Filter pencarian Anda
  3. Instal dengan mengklik Tombol Instal

Setelah mengunduh pustaka tersebut, sekarang pernyataan #include dalam kode yang disediakan akan berfungsi. Periksa itu dengan mengklik Tombol " Verifikasi " (Centang di kiri atas). Anda tahu bahwa semua perpustakaan berfungsi, jika Anda mendapatkan pesan "Selesai kompilasi" di bagian bawah program. Jika tidak, bilah merah akan muncul dan Anda akan mendapatkan pesan tentang apa yang salah.

3. Ubah Kode

Ubah kode sesuai dengan kasus penggunaan Anda dengan mengikuti petunjuk di bawah ini:

Memulai Motor dan Output Sensorinya

Pertama-tama, nyatakan pin mana yang digunakan motor, serta dalam kisaran berapa motor bekerja. Misalnya, motor yang terpasang ke M4 dan bekerja dalam rentang (kecepatan) 25 dan 175 dinyatakan seperti itu (di bawah komentar UTAMA):

Motor motor1 = Motor(4, 25, 175);

Saat bekerja dengan motor getaran kecil yang digerakkan dalam kisaran hingga 3V, pelindung motor harus digunakan dengan hati-hati karena dibuat untuk menjalankan motor pada 4,5VDC hingga 13.5VDC. Agar tidak merusak motor 3V, saya secara terprogram membatasi output Volt pelindung hingga maksimum 3V (tepatnya 2.95V). Saya melakukannya dengan mengukur berapa kecepatan maksimum 255 dalam Volt dan diukur dengan multimeter yaitu 4.3V. Oleh karena itu, saya tidak pernah mengizinkan kecepatan lebih tinggi dari 175, yaitu sekitar 3V, ke motor.

Setiap motor akan terhubung dengan satu SensoryOutput.

Satu SensoryOutput terdiri dari satu atau banyak rangsangan sensorik. Misalnya, motor dapat bergetar menurut satu sensor tunggal, atau menurut rata-rata beberapa sensor yang diposisikan berbeda.

Oleh karena itu, pertama untuk setiap motor, satu SensoryOutput harus dideklarasikan. Angka-angka di dalam tanda kurung adalah nilai minimum dan maksimum dari apa yang dapat dilihat oleh sensor (grup). Untuk sensor analog ini sebagian besar 0 dan 1023:

SensoryOutput output1 = SensoryOutput(0, 1023);

Dalam fungsi loop() setiap motor kemudian ditetapkan ke satu nilai output. Di sini Anda menulis untuk setiap motor pernyataan berikut dan alih-alih "output1", nilai SensoryOutput apa pun harus dihubungkan ke sana. Jangan lupa juga untuk mengubah semua nama "output1" di baris ini, jika Anda menggunakan nama lain untuk itu.

motor1.drive(output1.getValue(), output1.getMin(), output1.getMax());

Jika mau, Anda dapat memberikan beberapa motor (misalnya motor1 dan motor2) yang sama SensoryOutput (misalnya output1).

Selanjutnya, Anda dapat memberikan nilai beberapa sensor ke satu motor (lihat bagian berikutnya).

Mendefinisikan Sensor

Dalam fungsi setup() itu harus dinyatakan sensor mana yang akan menjadi bagian dari getaran motor mana (SensoryOutput). Berikut adalah contoh bagaimana Anda menentukan bahwa sensor yang terhubung ke Arduino Pin A0 harus diterjemahkan ke dalam getaran dengan motor1 dan akibatnya output1:

output1.include(A0);

Jika beberapa output sensorik harus digabungkan dalam satu getaran motor, Anda dapat menambahkan pin input analog lainnya ke output1:

output1.include(A1);

Jika tidak, lanjutkan saja dengan output berikutnya:

output2.include(A1);

Menggabungkan Beberapa Sensor

Seperti disebutkan di atas, beberapa input sensor (misalnya dari A0, A1 dan A2) dapat diarahkan ke satu motor. Kode yang saya berikan adalah menghitung rata-rata nilai yang dibaca oleh semua sensor yang disertakan. Jadi, jika ini cukup untuk kasus penggunaan Anda dan Anda hanya ingin langsung memetakan, misalnya, input sensorik rendah ke getaran rendah, Anda selesai dan tidak perlu memikirkan hal berikut:

Namun, jika Anda memiliki ide lain tentang apa yang ingin Anda lakukan dengan satu atau beberapa input sensorik mentah, Anda dapat melakukan perubahan yang sesuai pada fungsi int getValue() di kelas SensoryOutput:

int getNilai(){

keluaran akhir = 0; // TODO melakukan apa pun yang Anda inginkan dengan nilai sensorik // di sini rata-rata dibangun, jika beberapa nilai digabungkan untuk (int i = 0; i < curArrayLength; i++) { finalOutput += analogRead(valueArray); } mengembalikan finalOutput / curArrayLength; }

4. Unggah Kode ke Prototipe Arduino Anda

Colokkan Prototipe Arduino (dari Langkah 2) ke PC Anda.

Klik Alat → Port → Pilih Port, di mana Arduino/Genuino Uno ditulis dalam tanda kurung

Klik Alat → Papan → Arduino/Genuino Uno

Sekarang, motor harus berjalan sesuai dengan input sensor analog. Jika mau, Anda dapat melepaskan Arduino dari PC dan menyambungkannya ke sumber daya lain, seperti baterai 9V.

Langkah 4: Kemungkinan Ekstensi

Kemungkinan Ekstensi
Kemungkinan Ekstensi
Kemungkinan Ekstensi
Kemungkinan Ekstensi
Kemungkinan Ekstensi
Kemungkinan Ekstensi

Prototipe yang baru saja Anda buat memungkinkan input analog eksklusif dan dapat menggerakkan hingga empat motor. Selain itu, itu belum bisa dipakai. Jika Anda ingin memperluas fitur tersebut, lihat petunjuk berikut:

  • Meliputi Massa Berputar Motor ERM:
  • Membuat SSAD Dapat Dipakai:
  • Menggunakan lebih dari 4 Motor - Susun beberapa motorshields:
  • Menggunakan sensor jarak ultrasonik sebagai input SSAD:

Direkomendasikan: