Агуулгын хүснэгт:

Vibrotactile мэдрэхүйн орлуулах ба томруулах төхөөрөмж (SSAD): 4 алхам
Vibrotactile мэдрэхүйн орлуулах ба томруулах төхөөрөмж (SSAD): 4 алхам

Видео: Vibrotactile мэдрэхүйн орлуулах ба томруулах төхөөрөмж (SSAD): 4 алхам

Видео: Vibrotactile мэдрэхүйн орлуулах ба томруулах төхөөрөмж (SSAD): 4 алхам
Видео: Питательный коктейль для контроля веса 42571 38890 Орифлэйм Wellness by Oriflame 2024, Долдугаар сарын
Anonim
Vibrotactile мэдрэхүйн орлуулах ба томруулах төхөөрөмж (SSAD)
Vibrotactile мэдрэхүйн орлуулах ба томруулах төхөөрөмж (SSAD)
Vibrotactile мэдрэхүйн орлуулах ба томруулах төхөөрөмж (SSAD)
Vibrotactile мэдрэхүйн орлуулах ба томруулах төхөөрөмж (SSAD)

Энэхүү төсөл нь мэдрэхүйн орлуулалт ба өсөлтийн чиглэлээр хийсэн судалгааг хөнгөвчлөх зорилготой юм. Би магистрын диссертацийн хүрээнд вибротактив SSAD прототипүүдийг бий болгох янз бүрийн арга замыг судлах боломжтой байсан. Мэдрэхүйн орлуулалт ба нэмэгдэл нь зөвхөн компьютер судлаачдад төдийгүй танин мэдэхүйн шинжлэх ухаан гэх мэт бусад салбарын судлаачдад хамаатай сэдэв тул алхам алхмаар зааварчилгаа нь электроник, компьютерийн шинжлэх ухааны чиглэлээр мэргэшээгүй хүмүүст энэхүү загварыг өөрсдөө угсрах боломжийг олгох ёстой. судалгааны зорилго.

Би яг нэг төрлийн брэнд/бүтээгдэхүүний сурталчилгаа хийх бодолгүй байна. Энэ төслийг ямар ч компани ивээн тэтгээгүй. Миний ашигласан материалыг техникийн үзүүлэлт, тав тухтай байдлаас шалтгаалан сонгосон (хурд/хүргэх зардал, бэлэн байдал гэх мэт). Энэхүү зааварчилгаанд дурдсан бүх бүтээгдэхүүний хувьд адилхан тохиромжтой хувилбарууд байдаг.

Одоогийн зааварчилгаа нь 4 хүртэлх мотор, аналог мэдрэгч бүхий SSAD-ийн үндсэн загварыг хэрхэн яаж хийх тухай алхам алхмаар зааварчилгааг агуулдаг.

Энэхүү зааварт нэмэлтээр би гурван өргөтгөл үүсгэсэн: Нэгдүгээрт, би энэхүү SSAD прототипээр дөрөвөөс дээш моторыг хэрхэн ашиглах тухай зааврыг нийтэлсэн (https://www.instructables.com/id/Using-More-Than-4…). Хоёрдугаарт, би энэхүү загварыг хэрхэн элэгддэг болгох тухай жишээ, жишээ (https://www.instructables.com/id/Making-the-SSAD-W…) болон ERM моторыг битүү эргэдэг массгүйгээр хэрхэн яаж бүрхэх тухай жишээ, загварыг бий болгосон (https:/ /www.instructables.com/id/Covering-Rotating…). Цаашилбал, аналоги мэдрэгчээс бусад тохиолдолд (энэ тохиолдолд ойролцоо мэдрэгчийг) прототипт хэрхэн нэгтгэх тухай жишээг мөн нийтэлсэн болно (https://www.instructables.com/id/Including-a-Proxi…).

"Мэдрэхүйн орлуулалт ба өсөлт" гэж юу вэ?

Мэдрэхүйн орлуулалтын тусламжтайгаар нэг мэдрэхүйн хэлбэр (жишээ нь хараа) -аар цуглуулсан мэдээллийг өөр утгаар (жишээлбэл дуу) хүлээн авч болно. Энэ бол хүмүүст мэдрэхүйн алдагдал, хямралыг даван туулахад туслах инвазив бус ирээдүйтэй арга юм.

Хэрэв мэдрэхүйн өдөөлтийг орчуулбал хүн төрөлхтөн ихэвчлэн ойлгодоггүй бол (жишээлбэл хэт ягаан туяа) энэ аргыг мэдрэхүйн өсөлт гэж нэрлэдэг.

Энэхүү загварыг бүтээхийн тулд ямар ур чадвар шаардлагатай вэ?

Үндсэндээ доорх зааврыг дагаж мөрдөхийн тулд дэвшилтэт програмчлалын ур чадвар шаардагддаггүй. Гэсэн хэдий ч хэрэв та гагнуур хийж эхэлж байгаа бол энэ техниктэй танилцахын тулд нэмэлт цаг төлөвлө. Хэрэв та урьд нь хэзээ ч програмчилж байгаагүй бол програмчлалын талаар илүү туршлагатай хэн нэгний тусламж шаардлагатай байж магадгүй юм.

Өндөр үнэтэй эсвэл амархан олддоггүй шаардлагатай машин, багаж хэрэгсэл байна уу?

Гагнуурын төмрөөс бусад тохиолдолд онлайнаар эсвэл дараагийн өрхийн дэлгүүрээс худалдаж авах боломжгүй энэхүү загварыг бүтээхэд ямар ч машин, багаж хэрэгсэл шаардлагагүй болно. Энэхүү SSAD нь хурдан загварчлах боломжийг олгодог бөгөөд үүнийг хурдан хуулбарлаж, санаагаа хямд судлах боломжийг олгодог.

Хангамж

Үндсэн бүрэлдэхүүн хэсгүүд (4 хөдөлгүүрт ойролцоогоор 65 фунт стерлинг, гагнуурын төхөөрөмжөөс бусад)

  • Arduino Uno (жишээ нь https://store.arduino.cc/arduino-uno-rev3, 20 фунт)
  • Adafruit Motorshield v2.3 (жишээ нь https://www.adafruit.com/product/1438, 20 фунт стерлинг) болон эрэгтэй овоолсон толгой (моторын бамбай худалдаж авахад ихэвчлэн багтдаг)
  • Цилиндр хэлбэртэй ERM мотор (жишээ нь https://www.adafruit.com/product/1438, 5, 50 фунт/мотор)
  • Гагнуурын төмөр ба гагнуурын утас
  • Утас

Нэмэлт (өргөтгөлүүдийг үзнэ үү)

Хэрэв битүү эргэдэг масстай ERM мотор худалдаж авбал:

  • Винил хоолой
  • Нимгэн зөөлөн самбар
  • 3D принтер (Arduino бүрхүүлийн хувьд)

Хэрэв та 4 -өөс дээш мотор ашиглахыг хүсч байвал (өөр 8 -аас дээш удаа):

  • Adafruit Motorshield v2.3 ба эрэгтэй овоолсон толгой
  • Эмэгтэй овоолсон толгой (жишээ нь
  • 6 -аас дээш мотортой Arduino Mega (жишээ нь

Алхам 1: Гагнах

Гагнах
Гагнах

Зүүг моторын бамбай руу гагнах

Adafruit нь толгойг моторын бамбай руу хэрхэн яаж гагнах талаар маш дэлгэрэнгүй гарын авлага санал болгодог (https://learn.adafruit.com/adafruit-motor-shield-v…):

  1. Нэгдүгээрт, толгойны толгойг Arduino Uno дээр байрлуулна уу.
  2. Дараа нь бамбайгаа орой дээр нь тавь, ингэснээр тээглүүрийн богино тал нь наалдана.
  3. Үүний дараа бүх тээглүүрийг бамбай руу гагнаж, гагнуур нь зүүг тойрон урсаж, галт уулын хэлбэртэй байгаа эсэхийг шалгаарай (https://cdn.sparkfun.com/assets/c/d/ дээрээс авсан зургийг үзнэ үү. a/a/9/523b1189…).

Хэрэв та гагнуур хийж эхэлж байгаа бол https://learn.sparkfun.com/tutorials/how-to-solder… гэх мэт илүү олон зааварчилгаанд туслаарай.

Урт утсыг мотор руу гагнах

Ихэнх моторууд нь маш богино, нимгэн утасгүй эсвэл урт, илүү бат бөх утсаар гагнах замаар сунгах нь утга учиртай болно. Үүнийг хэрхэн яаж хийж болохыг энд харуулав.

  1. Утасны үзүүрт байгаа хуванцарыг авч, зураг дээрх шиг ил утаснуудынхаа дагуу бие биетэйгээ холбоо барихаар байрлуулна.
  2. Хоёр гагнуурын утас руу хүрч, гагнуурыг дээгүүр нь урсгах замаар тэдгээрийг гагнана.

Алхам 2: Цахилгааны утас

Цахилгаан утас
Цахилгаан утас
  1. Arduino -ийн дээд талд байрлах бамбай.
  2. Моторыг бамбай руу шургуулна.
  3. Аналог мэдрэгчийг Arduino -той холбоно уу (зураг дээр үүнийг гэрэл мэдрэгчээр хийдэг, гэхдээ ижил аналог мэдрэгчийн хувьд ижил хэлхээ харагдаж байна).

Алхам 3: Кодлох

Кодлох
Кодлох
Кодлох
Кодлох
Кодлох
Кодлох
Кодлох
Кодлох

1. Татаж авах

Доор хавсаргасан зип хавтсыг (SSAD_analogueInputs.zip) татаж авна уу. Үүнийг задлах.

Arduino IDE татаж авах (https://www.arduino.cc/en/main/software).

Arduino IDE ашиглан задалсан хавтас дотор байгаа Arduino файлыг (SSAD_analogueInputs.ino) нээнэ үү.

2. Номын сан суулгах

Өгөгдсөн кодыг ажиллуулахын тулд та зарим номын санг суулгах хэрэгтэй. Тиймээс, хэрэв энэ нийтлэлийн төгсгөлд хавсаргасан Arduino файл Arduino IDE дотор нээлттэй байвал дараахь зүйлийг хий.

  1. Дарна уу: Хэрэгслүүд → Номын санг удирдах …
  2. Хайлтын талбараас "Adafruit Motor Shield V2 номын сан" -г хайж олоорой
  3. Суулгах товчийг дарж суулгана уу

Тэдгээр номын санг татаж авсны дараа өгсөн кодууд дахь #include мэдэгдэл ажиллах ёстой. Үүнийг шалгахын тулд "Баталгаажуулах" товчийг дарна уу (зүүн дээд буланд байгаа тэмдэглэгээ). Хэрэв та програмын доод хэсэгт "Дууссан эмхэтгэх" гэсэн мессежийг хүлээн авбал бүх номын сан ажилладаг гэдгийг та мэднэ. Үгүй бол улаан баар гарч ирэх бөгөөд та буруу зүйл хийсэн тухай мессеж хүлээн авах болно.

3. Дүрмийг өөрчлөх

Доорх зааврыг дагаж кодыг ашиглалтын тохиолдлынхоо дагуу өөрчилнө үү.

Мотор ба тэдгээрийн мэдрэхүйн гаралтыг эхлүүлэх

Нэгдүгээрт, моторууд ямар тээглүүр ашигладаг, мөн мотор ямар хүрээнд ажилладаг болохыг мэдэгдээрэй. Жишээлбэл, M4 -т залгагдсан, 25 ба 175 -ийн (хурд) мужид ажилладаг моторыг дараах байдлаар зарласан болно (Үндсэн тайлбарын доор):

Мотор мотор1 = Мотор (4, 25, 175);

Жижиг чичиргээтэй 3В хүртэлх хүчдэлтэй хөдөлгүүртэй ажиллахдаа 4.5VDC -аас 13.5VDC хүртэл хөдөлгүүрийг ажиллуулах зориулалттай тул бамбайг болгоомжтой ашиглах хэрэгтэй. 3V моторыг гэмтээхгүйн тулд би бамбайны вольтын гаралтыг хамгийн ихдээ 3V (яг 2.95V) хүртэл хязгаарласан. Би үүнийг 255 -ийн хамгийн дээд хурд нь вольтоор хэмжиж, 4.3V гэж мултиметрээр хэмжсэн. Тиймээс би моторт 3В орчим хэмжээтэй 175 -аас илүү өндөр хурдыг хэзээ ч зөвшөөрөөгүй.

Мотор бүр нэг SensoryOutput -тай холбогдоно.

Нэг SensoryOutput нь нэг буюу олон мэдрэхүйн өдөөлтөөс бүрдэнэ. Жишээлбэл, мотор нь нэг мэдрэгчийн дагуу чичиргээ хийх боломжтой, эсвэл өөр өөр байрлалтай олон мэдрэгчийн дунджаар чичирч болно.

Тиймээс, мотор бүрийн хувьд эхлээд нэг SensoryOutput зарлах ёстой. Хаалтны доторх тоонууд нь мэдрэгч (бүлэг) -ийн ойлгож чадах хамгийн бага ба хамгийн их утга юм. Аналог мэдрэгчийн хувьд ихэвчлэн 0 ба 1023 байдаг.

SensoryOutput output1 = SensoryOutput (0, 1023);

Loop () функц дээр мотор бүрийг нэг гаралтын утгад хуваарилдаг. Энд та мотор тус бүрт дараах мэдэгдлийг бичээд "output1" -ний оронд SensoryOutput -ийн ямар ч утга холбогдох ёстой. Хэрэв та өөр нэр ашиглавал энэ мөрөнд байгаа "output1" нэрийг өөрчлөхээ бүү мартаарай.

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

Хэрэв та хүсвэл олон хөдөлгүүрийг (жишээлбэл мотор1 ба мотор2) ижил SensoryOutput (жишээ нь гаралт1) өгөх боломжтой.

Цаашилбал, олон мэдрэгчийн утгыг нэг хөдөлгүүрт өгөх боломжтой (дараагийн хэсгийг үзнэ үү).

Мэдрэгчийг тодорхойлох

Тохиргоо () функц дээр аль мэдрэгчийг хөдөлгүүрийн чичиргээний нэг хэсэг болохыг мэдэгдэх ёстой (SensoryOutput). Arduino Pin A0 -т холбогдсон мэдрэгчийг мотор1 -ийн чичиргээ рүү хөрвүүлэх ёстой бөгөөд үүний үр дүнд гаралт1 гэж тодорхойлсон жишээ энд байна.

гаралт 1. оруулах (A0);

Хэрэв нэг хөдөлгүүрийн чичиргээнд олон мэдрэхүйн гаралтыг нэгтгэх шаардлагатай бол та гаралт дээр өөр аналог оролтын зүү нэмж болно:

гаралт 1. оруулах (A1);

Үгүй бол дараагийн гаралтыг үргэлжлүүлээрэй.

гаралт 2. оруулах (A1);

Олон мэдрэгчийг хослуулах

Дээр дурдсанчлан олон мэдрэгчийн оролтыг (жишээлбэл A0, A1, A2) нэг мотор руу хөтлөх боломжтой. Миний өгсөн код нь оруулсан бүх мэдрэгчийн уншдаг утгуудын дундажийг тооцоолж байна. Тиймээс, хэрэв энэ нь таны хэрэглээнд хангалттай бөгөөд та жишээлбэл, бага чичиргээний мэдрэх чадвар багатай оролтыг шууд зураглахыг хүсч байвал дараахь зүйлийг хийх шаардлагагүй болно.

Хэрэв танд нэг буюу хэд хэдэн түүхий мэдрэхүйн оролтоор юу хийхийг хүсч байгаа талаар өөр санаа байгаа бол та SensoryOutput ангиллын int getValue () функцийн өөрчлөлтийн дагуу хийж болно.

int getValue () {

finalOutput = 0; // TODO нь мэдрэхүйн утгын тусламжтайгаар хүссэн зүйлээ хийх болно // энд олон утгыг нэгтгэсэн тохиолдолд (int i = 0; i <curArrayLength; i ++) {finalOutput+= analogRead (valueArray ); } finalOutput / curArrayLength буцаана; }

4. Arduino Prototype дээрээ кодыг байршуулна уу

Arduino прототипийг (2 -р алхамаас) компьютертээ залгаарай.

Tools → Port → Arduino/Genuino Uno -ийг хаалтанд бичсэн портыг сонгоно уу

Tools → Board → Arduino/Genuino Uno дээр дарна уу

Одоо моторууд аналог мэдрэгчийн оролтын дагуу ажиллах ёстой. Хэрэв та хүсвэл Arduino -г компьютерээсээ салгаад 9V батерей гэх мэт өөр тэжээлийн эх үүсвэрт залгаарай.

Алхам 4: Боломжит өргөтгөлүүд

Боломжит өргөтгөлүүд
Боломжит өргөтгөлүүд
Боломжит өргөтгөлүүд
Боломжит өргөтгөлүүд
Боломжит өргөтгөлүүд
Боломжит өргөтгөлүүд

Таны дөнгөж бүтээсэн прототип нь зөвхөн аналог оролтыг зөвшөөрдөг бөгөөд дөрвөн хөдөлгүүр хүртэл жолоодох боломжтой. Цаашилбал, одоо болтол өмсөх боломжгүй байна. Хэрэв та эдгээр функцийг өргөжүүлэхийг хүсч байвал дараах зааврыг дагана уу.

  • ERM моторын эргэдэг массыг хамарсан:
  • SSAD-ийг элэгддэг болгох:
  • 4-өөс дээш мотор ашиглах-Олон моторын бамбай тавих:
  • SSAD оролт болгон хэт авианы ойролцоо мэдрэгчийг ашиглах:

Зөвлөмж болгож буй: