Mundarija:

Vibrotaktil sensorli almashtirish va kattalashtirish qurilmasi (SSAD): 4 qadam
Vibrotaktil sensorli almashtirish va kattalashtirish qurilmasi (SSAD): 4 qadam

Video: Vibrotaktil sensorli almashtirish va kattalashtirish qurilmasi (SSAD): 4 qadam

Video: Vibrotaktil sensorli almashtirish va kattalashtirish qurilmasi (SSAD): 4 qadam
Video: Noutbuk ishlatadiganlar aslo bu xatolarni qilmang !!! 2024, Iyul
Anonim
Vibrotaktil sensorli almashtirish va kattalashtirish qurilmasi (SSAD)
Vibrotaktil sensorli almashtirish va kattalashtirish qurilmasi (SSAD)
Vibrotaktil sensorli almashtirish va kattalashtirish qurilmasi (SSAD)
Vibrotaktil sensorli almashtirish va kattalashtirish qurilmasi (SSAD)

Ushbu loyiha sezgi almashinuvi va kuchayishi sohasidagi tadqiqotlarni osonlashtirishga qaratilgan. Men magistrlik dissertatsiyasida SSD prototiplarining vibrotaktil prototiplarini yaratishning turli usullarini o'rganish imkoniyatiga ega bo'ldim. Sensorli almashtirish va kattalashtirish nafaqat kompyuter olimlarini, balki kognitiv fan kabi boshqa sohadagi tadqiqotchilarni ham qiziqtiradigan mavzu bo'lgani uchun, bosqichma-bosqich ko'rsatma elektronika va informatika bo'yicha mutaxassis bo'lmaganlarga ushbu prototipni o'zlari uchun yig'ishga imkon berishi kerak. tadqiqot maqsadlari.

Men aynan bitta turdagi tovar/mahsulot haqida reklama qilmoqchi emasman. Bu loyihaga hech qanday kompaniya homiylik qilmagan. Men ishlatgan material texnik xususiyatlar va qulaylik (tezlik/etkazib berish narxi, mavjudligi va boshqalar) tufayli tanlangan. Ushbu yo'riqnomada ko'rsatilgan barcha mahsulotlar uchun bir xil mos variantlar mavjud.

Hozirgi Instructable 4 ta dvigatel va analog sensorlar bilan SSAD prototipini yaratish bo'yicha bosqichma-bosqich ko'rsatmalarni o'z ichiga oladi.

Bu yo'riqnomaga qo'shimcha ravishda men uchta kengaytmani yaratdim: Birinchidan, men SSAD prototipi bilan to'rtdan ortiq motorni ishlatish bo'yicha ko'rsatmalarni nashr qildim (https://www.instructables.com/id/Using-More-Than-4…). Ikkinchidan, men ushbu prototipni qanday taqib yurish mumkinligi haqida misol va misol yaratdim (https://www.instructables.com/id/Making-the-SSAD-W…) va ERM dvigatellarini aylanuvchi massasi bo'lmagan holda qanday qoplash kerak (https:/ /www.instructables.com/id/Covering-Rotating…). Bundan tashqari, prototipga analog sensorlardan (bu holda yaqinlik sensorlaridan) boshqasini qanday qo'shish mumkinligi haqidagi misol ham e'lon qilinadi (https://www.instructables.com/id/Including-a-Proxi…).

"Sensorli almashtirish va kattalashtirish" nima?

Sensorli almashtirish yordamida bitta sezgi usuli (masalan, ko'rish) tomonidan to'plangan ma'lumotni boshqa ma'no (masalan, tovush) orqali sezish mumkin. Bu odamlarga sezgi yo'qotilishi yoki buzilishlarini engishga yordam beradigan, istiqbolli invaziv bo'lmagan usul.

Agar tarjima qilingan hissiy stimulni odatda odamlar sezmasa (masalan, ultrabinafsha nurlar), bu yondashuv sezuvchanlikni kuchaytirish deb ataladi.

Ushbu prototipni yaratish uchun qanday ko'nikmalar kerak?

Asosan, quyida keltirilgan ko'rsatmalarga amal qilish uchun ilg'or dasturlash ko'nikmalari talab qilinmaydi. Ammo, agar siz lehim bilan shug'ullanishni boshlayotgan bo'lsangiz, ushbu texnika bilan tanishish uchun qo'shimcha vaqt ajrating. Agar siz ilgari hech qachon dasturlashtirmagan bo'lsangiz, dasturlashda tajribali odamning yordami talab qilinishi mumkin.

Qimmat yoki osonlikcha mavjud bo'lmagan mashinalar yoki asboblar bormi?

Lehimlash temiridan tashqari, bu prototipni yaratish uchun hech qanday mashina yoki asbob kerak emas, uni siz Internetda yoki keyingi uy do'konida osongina sotib ololmaysiz. Bu SSAD tezkor prototiplashga ruxsat berish uchun mo'ljallangan, ya'ni u tez takrorlanishi va g'oyalarni arzon o'rganishga imkon beradi.

Ta'minotlar

Asosiy komponentlar (4 dvigatel uchun taxminan 65 funt, lehim uskunasidan tashqari)

  • Arduino Uno (masalan, https://store.arduino.cc/arduino-uno-rev3, 20 funt)
  • Adafruit Motorshield v2.3 (masalan, https://www.adafruit.com/product/1438, 20 funt) va erkak yig'ish sarlavhalari (odatda dvigatel ekranini sotib olishda ko'rsatiladi)
  • Silindrli ERM dvigatellari (masalan, https://www.adafruit.com/product/1438, 5, 50 £/motor)
  • Lehimlash temir va lehim simlari
  • Simlar

Majburiy emas (kengaytmalarni ko'ring)

Agar aylanayotgan massasi yopiq ERM dvigateli sotib olinsa:

  • Vinil quvur
  • Yupqa yumshoq taxta
  • 3D printer (Arduino korpusi uchun)

Agar siz 4 dan ortiq dvigatellardan foydalanishni xohlasangiz (yana 8 marta).

  • Adafruit Motorshield v2.3 va erkak yig'ish sarlavhalari
  • Ayollarni yig'ish sarlavhalari (masalan,
  • 6 dan ortiq dvigatel uchun Arduino Mega (masalan,

1 -qadam: Lehimlash

Lehimlash
Lehimlash

Pimlarni motor ekraniga lehimlang

Adafruit avtotransport oynasiga sarlavhalarni qanday lehimlash bo'yicha keng qamrovli qo'llanmani taklif qiladi (https://learn.adafruit.com/adafruit-motor-shield-v…):

  1. Birinchidan, yig'ish sarlavhalarini Arduino Uno -ga joylashtiring.
  2. Keyin, qalqonni tepaga qo'ying, shunda pimlarning qisqa tomoni chiqib ketadi.
  3. Shundan so'ng, barcha pimlarni qalqonga lehimlang va lehim pim atrofida oqayotganini va vulqon shakliga ega ekanligiga ishonch hosil qiling (yuqoridagi rasmga qarang, https://cdn.sparkfun.com/assets/c/d/ a/a/9/523b1189 …).

Agar siz lehim bilan shug'ullanishni boshlayotgan bo'lsangiz, o'zingizni https://learn.sparkfun.com/tutorials/how-to-solder… kabi boshqa darsliklar bilan o'zingizga yordam bering.

Uzunroq simlarni motorga lehimlang

Ko'pgina dvigatellar juda qisqa va ingichka simlarsiz kelganda, ularni uzunroq va mustahkamroq simlarga lehimlab uzaytirish maqsadga muvofiqdir. Mana buni qanday qilish mumkin:

  1. Plastmassani simlarning uchidan olib tashlang va joylashtiring, ular rasmdagi kabi ochiq simlari bo'ylab bir -biriga tegib tursin.
  2. Ularni bir -biriga lehimlang, ikkala simning iplariga tegib, lehimning ustidan o'tishiga ruxsat bering.

2 -qadam: simlarni ulash

Ulanish
Ulanish
  1. Arduino tepasida motorli ekran.
  2. Dvigatellarni motor ekraniga burab qo'ying.
  3. Arduino -ga analog sensorlar ulang (rasmda bu yorug'lik sezgichlari yordamida amalga oshiriladi, lekin xuddi shu sxema boshqa analog sensorlar uchun ham xuddi shunday ko'rinadi).

3 -qadam: kodlash

Kodlash
Kodlash
Kodlash
Kodlash
Kodlash
Kodlash
Kodlash
Kodlash

1. Yuklab olish

Quyida biriktirilgan zip papkasini (SSAD_analogueInputs.zip) yuklab oling. Uni oching.

Arduino IDE -ni yuklab oling (https://www.arduino.cc/en/main/software).

Arduino IDE bilan ochilmagan papkada joylashgan Arduino faylini (SSAD_analogueInputs.ino) oching.

2. Kutubxonalarni o'rnating

Taqdim etilgan kodni ishga tushirish uchun siz ba'zi kutubxonalarni o'rnatishingiz kerak. Shunday qilib, agar ushbu maqolaning oxirida biriktirilgan Arduino fayli Arduino IDE ichida ochiq bo'lsa, quyidagilarni bajaring:

  1. Bosing: Asboblar → Kutubxonalarni boshqarish…
  2. Qidiruv maydonidan "Adafruit Motor Shield V2 kutubxonasi" ni qidiring
  3. O'rnatish tugmachasini bosib uni o'rnating

Ushbu kutubxonalarni yuklab olgandan so'ng, endi berilgan kodlarga #include iboralari ishlashi kerak. "Tekshirish" tugmachasini bosish orqali buni tekshiring (chap tomonda belgi). Bilasizmi, barcha kutubxonalar ishlaydi, agar siz dasturning pastki qismida "Bajarildi" xabarini olsangiz. Aks holda, qizil chiziq paydo bo'ladi va siz xato qilganingiz haqida xabar olasiz.

3. Kodni o'zgartiring

Quyidagi ko'rsatmalarga amal qilib, kodni ishlatilgan holatingizga qarab o'zgartiring:

Dvigatellarni ishga tushirish va ularning sensorli chiqishlari

Avvalo, dvigatellar qaysi pimlardan foydalanilishini, shuningdek, motorlar qaysi diapazonda ishlashini aniqlang. Masalan, M4 ga ulangan va 25 (175) diapazonda ishlaydigan dvigatel shunday e'lon qilinadi (asosiy izoh ostida):

Dvigatel dvigateli1 = Dvigatel (4, 25, 175);

3V gacha bo'lgan kichik tebranish dvigatellari bilan ishlaganda, dvigatelni ehtiyotkorlik bilan ishlatish kerak, chunki u 4.5VDC dan 13.5VDC gacha bo'lgan dvigatellar uchun mo'ljallangan. 3V dvigatellarga zarar bermaslik uchun men ekranli voltning chiqishini maksimal 3V (aniq 2.95V) ga chekladim. Men buni 255 maksimal tezligini voltda o'lchash va multimetr bilan o'lchash orqali qildim, bu 4,3 V. Shuning uchun, men hech qachon motorlarga 3V ga yaqin bo'lgan 175dan yuqori tezlikka ruxsat bermaganman.

Har bir dvigatel bitta SensoryOutput bilan ulanadi.

Bir SensorOutput bir yoki bir nechta sezgi stimullardan iborat. Masalan, dvigatel bitta sensorga ko'ra yoki bir nechta, boshqacha joylashtirilgan datchiklarning o'rtacha ko'rsatkichiga ko'ra tebranishi mumkin.

Shuning uchun, birinchi navbatda, har bir dvigatel uchun bitta SensoryOutput e'lon qilinishi kerak. Qavs ichidagi raqamlar sensor (guruh) idrok qila oladigan minimal va maksimal qiymatdir. Analog sensorlar uchun bu asosan 0 va 1023:

SensoryOutput chiqishi1 = SensoryOutput (0, 1023);

Loop () funktsiyasida har bir dvigatel bitta chiqish qiymatiga beriladi. Bu erda siz har bir dvigatel uchun quyidagi so'zni yozasiz va "output1" o'rniga, SensoryOutput qiymati unga ulangan bo'lishi kerak. Agar siz boshqa nom ishlatsangiz, ushbu qatordagi barcha "output1" nomlarini o'zgartirishni unutmang.

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

Agar xohlasangiz, siz bir nechta motorlarni (masalan, motor1 va motor2) bir xil SensoryOutput (masalan, chiqish1) berishingiz mumkin.

Bundan tashqari, siz bir nechta sensorlarning qiymatlarini bitta dvigatelga berishingiz mumkin (keyingi bo'limga qarang).

Sensorlarni aniqlash

O'rnatish () funktsiyasida qaysi sensorlar dvigatel tebranishining bir qismi bo'lishini e'lon qilish kerak (SensoryOutput). Arduino Pin A0 ga ulangan sensorni motor1 bilan tebranishlarga aylantirish va natijada chiqish1 ni qanday aniqlash mumkinligiga misol:

chiqish 1. qo'shish (A0);

Agar bitta dvigatel tebranishida bir nechta sensorli chiqishlarni birlashtirish kerak bo'lsa, siz chiqish 1ga boshqa analog kirish pinini qo'shishingiz mumkin:

chiqish 1. qo'shish (A1);

Aks holda, keyingi chiqishni davom ettiring:

chiqish2. o'z ichiga oladi (A1);

Bir nechta sensorlarni birlashtirish

Yuqorida aytib o'tilganidek, bir nechta sensorli kirishlar (masalan, A0, A1 va A2 dan) bitta dvigatelga o'tkazilishi mumkin. Men taqdim etadigan kod barcha kiritilgan sensorlar o'qiydigan qiymatlarning o'rtacha qiymatini hisoblab chiqadi. Shunday qilib, agar bu sizning holatingiz uchun etarli bo'lsa va siz to'g'ridan -to'g'ri, masalan, past tebranishni past sezgir kirishini to'g'ridan -to'g'ri xaritada ko'rishni xohlasangiz, siz tugadingiz va quyidagilar haqida o'ylamasligingiz kerak:

Agar sizda bir yoki bir nechta xom sezgichli kirishlar bilan nima qilishni xohlayotganingiz haqida boshqa fikrlaringiz bo'lsa, SensoryOutput sinfidagi int getValue () funktsiyasini o'zgartirishingiz mumkin:

int getValue () {

finalOutput = 0; // TODO sensorli qiymatlar bilan xohlagan narsani bajaradi // bu erda o'rtacha qiymat tuziladi, agar bir nechta qiymatlar birlashtirilsa (int i = 0; i <curArrayLength; i ++) {finalOutput+= analogRead (valueArray ); } finalOutput / curArrayLength qaytarish; }

4. Kodni Arduino prototipiga yuklang

Arduino prototipini kompyuterga ulang (2 -bosqichdan).

Asboblar → Port → Arduino/Genuino Uno qavs ichida yozilgan portni tanlang

Asboblar → Kengash → Arduino/Genuino Uno -ni bosing

Endi dvigatellar analog sensorlar kirishiga qarab ishlashi kerak. Agar xohlasangiz, Arduino -ni shaxsiy kompyuteringizdan uzib, 9V batareyasi kabi boshqa quvvat manbaiga ulashingiz mumkin.

4 -qadam: Mumkin bo'lgan kengaytmalar

Mumkin bo'lgan kengaytmalar
Mumkin bo'lgan kengaytmalar
Mumkin bo'lgan kengaytmalar
Mumkin bo'lgan kengaytmalar
Mumkin bo'lgan kengaytmalar
Mumkin bo'lgan kengaytmalar

Siz yaratgan prototip faqat analogli kirishga imkon beradi va to'rtta dvigatelni boshqarishi mumkin. Bundan tashqari, uni hali kiyish mumkin emas. Agar siz ushbu xususiyatlarni kengaytirmoqchi bo'lsangiz, quyidagi ko'rsatmalarni ko'rib chiqing.

  • ERM motorlarining aylanadigan massalarini qamrab olish:
  • SSADni kiyinadigan qilish:
  • 4 dan ortiq dvigatellardan foydalanish-bir nechta motorli qalqonlarni joylashtirish:
  • Ultrasonik yaqinlik sensori SSAD usuli sifatida ishlatiladi:

Tavsiya: