Isi kandungan:

Peranti Penggantian dan Augmentasi Sensor Vibrotactile (SSAD): 4 Langkah
Peranti Penggantian dan Augmentasi Sensor Vibrotactile (SSAD): 4 Langkah

Video: Peranti Penggantian dan Augmentasi Sensor Vibrotactile (SSAD): 4 Langkah

Video: Peranti Penggantian dan Augmentasi Sensor Vibrotactile (SSAD): 4 Langkah
Video: Webinar Nasional Augmentasi Virtual dan Realitas 2024, Julai
Anonim
Peranti Penggantian dan Augmentasi Sensor Vibrotactile (SSAD)
Peranti Penggantian dan Augmentasi Sensor Vibrotactile (SSAD)
Peranti Penggantian dan Augmentasi Sensor Vibrotactile (SSAD)
Peranti Penggantian dan Augmentasi Sensor Vibrotactile (SSAD)

Projek ini bertujuan untuk memudahkan penyelidikan di bidang Penggantian dan Peningkatan Sensori. Saya mempunyai kemungkinan untuk meneroka pelbagai cara untuk membina prototaip SSAD vibrotactile dalam disertasi MSc saya. Oleh kerana Penggantian dan Peningkatan Sensori adalah topik yang tidak hanya berkaitan dengan saintis komputer, tetapi juga penyelidik dari bidang lain, seperti sains kognitif, arahan langkah demi langkah harus membolehkan bukan pakar dalam bidang elektronik dan sains komputer untuk mengumpulkan prototaip ini untuk mereka sendiri tujuan penyelidikan.

Saya tidak berhasrat untuk membuat iklan untuk satu jenis jenama / produk. Projek ini tidak ditaja oleh mana-mana syarikat. Bahan yang saya gunakan dipilih kerana spesifikasi dan kemudahan teknikal (kelajuan / kos penghantaran, ketersediaan, dll.). Untuk semua produk yang disebutkan dalam Instruksional ini, tersedia alternatif yang sesuai.

Instructable semasa mengandungi arahan langkah demi langkah bagaimana membina prototaip SSAD asas dengan sehingga 4 motor dan sensor analog.

Sebagai tambahan kepada Instructable ini, saya telah membuat tiga sambungan: Pertama, saya menerbitkan arahan mengenai cara menggunakan lebih daripada empat motor dengan prototaip SSAD ini (https://www.instructables.com/id/Using-More-Than-4…). Kedua, saya buat menyediakan dan contoh bagaimana membuat prototaip ini dapat dipakai (https://www.instructables.com/id/Making-the-SSAD-W…) dan bagaimana untuk menutupi motor ERM tanpa jisim putaran yang dikemas (https: / /www.instructables.com/id/Covering-Rotating…). Selanjutnya, contoh cara mengintegrasikan selain daripada sensor analog (dalam hal ini sensor jarak) ke prototaip juga diterbitkan (https://www.instructables.com/id/Inc termasuk-a-Proxi…).

Apa itu "Penggantian dan Peningkatan Sensori"?

Dengan Penggantian Deria maklumat yang dikumpulkan oleh satu modaliti deria (mis. Penglihatan) dapat dirasakan melalui pengertian lain (mis. Suara). Ini adalah teknik tidak invasif yang menjanjikan yang membantu orang mengatasi kehilangan atau penurunan deria.

Sekiranya rangsangan deria, yang diterjemahkan, biasanya tidak dapat dilihat oleh manusia (mis. Sinar UV), pendekatan ini disebut Sensory Augmentation.

Apakah kemahiran yang diperlukan untuk membina prototaip ini?

Pada asasnya, tidak ada kemahiran pengaturcaraan lanjutan yang diperlukan untuk mengikuti arahan yang disediakan di bawah. Namun, jika anda seorang pemula dalam pematerian, rancanglah masa tambahan untuk mengetahui teknik ini. Sekiranya anda tidak pernah memprogram sebelumnya, mungkin memerlukan bantuan daripada orang yang lebih berpengalaman dalam pengaturcaraan.

Adakah mesin atau alat yang diperlukan yang mahal atau tidak boleh didapati dengan mudah?

Kecuali besi solder, tidak ada mesin atau alat yang diperlukan untuk membina prototaip ini yang tidak dapat anda beli dengan mudah secara dalam talian atau di kedai isi rumah seterusnya. SSAD ini direka untuk membolehkan prototaip cepat, yang bermaksud ia harus dapat dihasilkan dengan cepat dan membolehkan penerokaan idea yang tidak mahal.

Bekalan

Komponen utama (kira-kira 65 £ untuk 4 motor, tidak termasuk peralatan pematerian)

  • 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 lelaki (biasanya disertakan semasa membeli motor motorshield)
  • Motor ERM silinder (mis. Https://www.adafruit.com/product/1438, 5, 50 £ / motor)
  • Pateri dan kawat pematerian
  • Wayar

Pilihan (lihat Sambungan)

Sekiranya motor ERM dengan jisim berputar tidak bertutup dibeli:

  • Tiub vinil
  • Papan lembut nipis
  • Pencetak 3D (untuk sarung Arduino)

Sekiranya anda mahu menggunakan lebih daripada 4 motor (lebih dari 8 sama pada masa yang sama):

  • Adafruit Motorshield v2.3 dan tandukan susun lelaki
  • Header susun wanita (mis.
  • Arduino Mega untuk lebih daripada 6 motor (mis.

Langkah 1: Pematerian

Pematerian
Pematerian

Pateri pin ke pelindung motor

Adafruit menawarkan tutorial yang sangat komprehensif mengenai cara menyisipkan tajuk ke permotoran (https://learn.adafruit.com/adafruit-motor-shield-v…):

  1. Pertama, masukkan header susun ke dalam pin di Arduino Uno,
  2. Kemudian, letakkan pelindung di atas, supaya bahagian pendek pin melekat.
  3. Selepas itu, pateri semua pin ke pelindung 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…).

Sekiranya anda seorang pemula dalam pematerian, bantu diri anda dengan lebih banyak tutorial, seperti

Pateri lebih panjang wayar ke motor

Oleh kerana kebanyakan motor dilengkapi tanpa atau wayar yang sangat pendek dan nipis, masuk akal untuk memanjangkannya dengan menyoldernya ke wayar yang lebih panjang dan lebih kuat. Inilah cara anda dapat melakukannya:

  1. Tanggalkan plastik di sekitar hujung wayar dan letakkannya sehingga saling bersentuhan di sepanjang wayar mereka yang terdedah, seperti dalam gambar.
  2. Pateri bersama dengan menyentuh benang kedua wayar dan membiarkan pateri mengalir di atasnya.

Langkah 2: Pendawaian

Pendawaian
Pendawaian
  1. Tumpukan perisai motor di atas Arduino.
  2. Skru motor ke pelindung motor.
  3. Sensor analog wayar ke Arduino (dalam gambar ini dilakukan dengan sensor cahaya, tetapi litar yang sama kelihatan sama untuk sensor analog yang lain).

Langkah 3: Pengekodan

Pengekodan
Pengekodan
Pengekodan
Pengekodan
Pengekodan
Pengekodan
Pengekodan
Pengekodan

1. Muat turun

Muat turun folder zip (SSAD_analogueInputs.zip), dilampirkan di bawah. Nyahzipnya.

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

Buka fail Arduino (SSAD_analogueInputs.ino) yang berada di dalam folder yang tidak dizip dengan Arduino IDE.

2. Pasang Perpustakaan

Untuk menjalankan kod yang disediakan, anda perlu memasang beberapa perpustakaan. Oleh itu, jika fail Arduino, yang dilampirkan pada akhir artikel ini, terbuka di dalam Arduino IDE, lakukan perkara berikut:

  1. Klik: Alat → Urus Perpustakaan…
  2. Cari "Perpustakaan Adafruit Motor Shield V2" di ruangan Penapis carian anda
  3. Pasang dengan mengklik Butang Pasang

Setelah memuat turun perpustakaan tersebut, kini pernyataan #include dalam kod yang disediakan akan berfungsi. Periksa dengan mengklik Butang "Verifikasi" (Tandakan di kiri atas). Anda tahu bahawa semua perpustakaan berfungsi, jika anda mendapat mesej "Selesai menyusun" di bahagian bawah program. Jika tidak, bar merah muncul dan anda akan mendapat mesej tentang apa yang salah.

3. Tukar Kod

Tukar kod mengikut kes penggunaan anda dengan mengikuti arahan di bawah:

Memulakan Motor dan SensoryOutput mereka

Pertama sekali, nyatakan pin mana yang digunakan motor, dan berapa jarak motor berfungsi. Sebagai contoh, motor yang dipasang pada M4 dan berfungsi dalam jarak (kelajuan) 25 dan 175 dinyatakan seperti itu (di bawah komen UTAMA):

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

Ketika bekerja dengan motor getaran kecil yang digerakkan dalam jarak hingga 3V, pelindung motor harus digunakan dengan hati-hati kerana dibuat untuk menjalankan motor pada 4.5VDC hingga 13.5VDC. Untuk tidak merosakkan motor 3V, saya secara teratur menghadkan output Volt perisai maksimum 3V (tepat 2.95V). Saya melakukannya dengan mengukur berapa kelajuan maksimum 255 dalam Volt dan diukur dengan multimeter bahawa ini adalah 4.3V. Oleh itu, saya tidak pernah membenarkan kelajuan lebih tinggi daripada 175, iaitu sekitar 3V, ke motor.

Setiap motor akan dihubungkan dengan satu SensoryOutput.

One SensoryOutput terdiri daripada satu atau banyak rangsangan deria. Sebagai contoh, motor boleh bergetar mengikut satu sensor tunggal, atau mengikut rata-rata beberapa sensor yang berlainan kedudukan.

Oleh itu, pertama untuk setiap motor, satu SensoryOutput harus dinyatakan. Nombor di dalam kurungan adalah nilai minimum dan maksimum dari apa yang dapat dilihat oleh sensor (kumpulan). Untuk sensor analog ini kebanyakannya 0 dan 1023:

SensoryOutput output1 = SensoryOutput (0, 1023);

Dalam fungsi gelung () setiap motor kemudian diberikan kepada satu nilai output. Di sini anda menulis tulis untuk setiap motor pernyataan berikut dan bukannya "output1", apa sahaja nilai SensoryOutput harus dihubungkan dengannya. Jangan lupa untuk menukar semua nama "output1" dalam baris ini, jika anda menggunakan nama lain untuknya.

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

Sekiranya anda mahu, anda boleh memberikan beberapa motor (mis. Motor1 dan motor2) SensoryOutput yang sama (mis. Output1).

Selanjutnya, anda dapat memberikan nilai beberapa sensor kepada satu motor (lihat bahagian seterusnya).

Mendefinisikan Sensor

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

output1.termasuk (A0);

Sekiranya pelbagai output deria digabungkan dalam satu getaran motor, anda boleh menambahkan pin input analog lain ke output1:

output1.termasuk (A1);

Jika tidak, teruskan dengan output seterusnya:

output2.termasuk (A1);

Menggabungkan Pelbagai Sensor

Seperti yang disebutkan di atas, pelbagai input sensor (mis. Dari A0, A1 dan A2) dapat diarahkan ke satu motor. Kod, yang saya berikan, adalah mengira purata nilai yang dibaca oleh semua sensor yang disertakan. Oleh itu, jika ini cukup untuk kes penggunaan anda dan anda hanya ingin memetakan secara langsung, sebagai contoh, input deria rendah ke getaran rendah, anda sudah selesai dan tidak perlu memikirkan perkara berikut:

Namun, jika anda mempunyai idea lain mengenai apa yang ingin anda lakukan dengan satu atau beberapa input deria mentah, anda boleh melakukan perubahan mengikut fungsi int getValue () di kelas SensoryOutput:

int getValue () {

finalOutput = 0; // TODO buat apa sahaja yang anda mahukan dengan nilai deria // di sini rata-rata dibina, jika pelbagai nilai digabungkan untuk (int i = 0; i <curArrayLength; i ++) {finalOutput + = analogRead (valueArray ); } kembali finalOutput / curArrayLength; }

4. Muat naik Kod ke Prototaip Arduino anda

Pasangkan Prototaip Arduino (dari Langkah 2) ke PC anda.

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

Klik Alat → Papan → Arduino / Genuino Uno

Sekarang, motor harus berjalan mengikut input sensor analog. Sekiranya anda mahu, anda boleh memutuskan sambungan Arduino dari PC anda dan memasangkannya ke sumber kuasa lain, seperti bateri 9V.

Langkah 4: Sambungan yang Mungkin

Kemungkinan Sambungan
Kemungkinan Sambungan
Kemungkinan Sambungan
Kemungkinan Sambungan
Kemungkinan Sambungan
Kemungkinan Sambungan

Prototaip yang baru anda buat membolehkan input analog secara eksklusif dan boleh menggerakkan hingga empat motor. Tambahan lagi, ia belum boleh dipakai. Sekiranya anda ingin memperluas ciri-ciri tersebut, lihat petunjuk berikut:

  • Meliputi Massa Berputar ERM Motors:
  • Menjadikan SSAD Boleh Dipakai:
  • Menggunakan lebih daripada 4 Motor - Menumpuk pelbagai motor pelindung:
  • Menggunakan sensor jarak ultrasonik sebagai input SSAD:

Disyorkan: