Cuprins:

Dispozitiv de înlocuire și mărire senzorială vibrotactilă (SSAD): 4 pași
Dispozitiv de înlocuire și mărire senzorială vibrotactilă (SSAD): 4 pași

Video: Dispozitiv de înlocuire și mărire senzorială vibrotactilă (SSAD): 4 pași

Video: Dispozitiv de înlocuire și mărire senzorială vibrotactilă (SSAD): 4 pași
Video: Orizont: Vestul interzis (Filmul) 2024, Noiembrie
Anonim
Dispozitiv de înlocuire și mărire senzorială vibrotactilă (SSAD)
Dispozitiv de înlocuire și mărire senzorială vibrotactilă (SSAD)
Dispozitiv de înlocuire și mărire senzorială vibrotactilă (SSAD)
Dispozitiv de înlocuire și mărire senzorială vibrotactilă (SSAD)

Acest proiect își propune să faciliteze cercetarea în domeniul substituției senzoriale și măririi. Am avut posibilitatea de a explora diferite moduri de construire a prototipurilor vibrotactile SSAD în cadrul disertației mele de masterat. Întrucât înlocuirea și mărirea senzorială este un subiect care îi privește nu numai pe informaticieni, ci și pe cercetători din alte domenii, cum ar fi știința cognitivă, o instrucțiune pas cu pas ar trebui să le permită non-experților în electronică și informatică să asambleze acest prototip pentru propriile lor scopuri de cercetare.

Nu intenționez să fac reclamă pentru un singur tip de marcă / produs. Acest proiect nu a fost sponsorizat de nicio companie. Materialul, pe care l-am folosit, a fost ales datorită specificațiilor tehnice și comodității (viteza / costul livrării, disponibilitatea etc.). Pentru toate produsele menționate în acest instructabil, sunt disponibile alternative la fel de adecvate.

Actualul Instructable conține instrucțiuni pas cu pas despre cum să construiți un prototip SSAD de bază cu până la 4 motoare și senzori analogici.

În plus față de acest Instructable am creat trei extensii: În primul rând, am publicat instrucțiuni despre cum să utilizați mai mult de patru motoare cu acest prototip SSAD (https://www.instructables.com/id/Using-More-Than-4…). În al doilea rând, am creat furnizarea și exemplul modului de a face acest prototip purtabil (https://www.instructables.com/id/Making-the-SSAD-W…) și cum să acoperim motoarele ERM fără masa rotativă încapsulată (https: / /www.instructables.com/id/Covering-Rotating…). Mai mult, este publicat și un exemplu de integrare a altor senzori analogici (în acest caz senzori de proximitate) la prototip (https://www.instructables.com/id/Including-a-Proxi…).

Ce este „înlocuirea și mărirea senzorială”?

Cu substituția senzorială, informațiile colectate de o modalitate senzorială (de exemplu, vedere) pot fi percepute printr-un alt sens (de exemplu, sunetul). Este o tehnică promițătoare neinvazivă, care ajută oamenii să depășească pierderea sau afectarea senzorială.

Dacă stimulul senzorial, care este tradus, nu este în mod normal perceput de ființele umane (de exemplu, lumina UV), această abordare se numește Augmentare senzorială.

Ce abilități sunt necesare pentru a construi acest prototip?

Practic, nu sunt necesare abilități avansate de programare pentru a urma instrucțiunile furnizate mai jos. Cu toate acestea, dacă sunteți începător în lipire, planificați un timp suplimentar pentru a cunoaște această tehnică. În cazul în care nu ați programat niciodată înainte, ar putea fi necesară asistență de la cineva cu mai multă experiență în programare.

Există mașini sau scule necesare care sunt scumpe sau care nu sunt disponibile cu ușurință?

Cu excepția unui fier de lipit, nu sunt necesare mașini sau scule pentru construirea acestui prototip pe care nu îl puteți cumpăra cu ușurință online sau în următorul magazin de uz casnic. Acest SSAD este conceput pentru a permite prototiparea rapidă, ceea ce înseamnă că ar trebui să fie repede reproductibil și să permită o explorare ieftină a ideilor.

Provizii

Componente principale (aproximativ 65 GBP pentru 4 motoare, cu excepția echipamentului de lipit)

  • Arduino Uno (de ex. Https://store.arduino.cc/arduino-uno-rev3, 20 £)
  • Adafruit Motorshield v2.3 (de ex. Https://www.adafruit.com/product/1438, 20 £) și anteturi de stivuire masculine (incluse în mod normal la cumpărarea paravanului)
  • Motoare ERM cilindrice (de ex. Https://www.adafruit.com/product/1438, 5, 50 £ / motor)
  • Fier de lipit și sârmă de lipit
  • Fire

Opțional (consultați Extensii)

Dacă se cumpără motor ERM cu masă rotativă neacoperită:

  • Tub de vinil
  • Placă moale subțire
  • Imprimantă 3D (pentru carcasă Arduino)

Dacă doriți să utilizați mai mult de 4 motoare (pentru mai mult de 8 același timp o dată):

  • Adafruit Motorshield v2.3 și anteturi de stivuire masculine
  • Anteturi de stivuire feminine (de exemplu,
  • Arduino Mega pentru mai mult de 6 motoare (de ex.

Pasul 1: lipire

Lipire
Lipire

Lipiți pinii pe ecranul motorului

Adafruit oferă un tutorial foarte cuprinzător despre cum să lipiți anteturile pe un motor (https://learn.adafruit.com/adafruit-motor-shield-v…):

  1. În primul rând, puneți anteturile de stivuire în știfturile de pe Arduino Uno,
  2. Apoi, așezați scutul deasupra, astfel încât partea scurtă a știfturilor să iasă.
  3. După aceea, lipiți toate știfturile pe scut și asigurați-vă că lipirea curge în jurul știftului și formează o formă de vulcan (a se vedea imaginea de mai sus, care este adoptată de la https://cdn.sparkfun.com/assets/c/d/ a / a / 9 / 523b1189 …).

Dacă sunteți un începător în lipire, ajutați-vă cu mai multe tutoriale, cum ar fi

Lipiți fire mai lungi la motor

Deoarece majoritatea motoarelor vin fără fire foarte subțiri sau foarte scurte, este logic să le extindeți prin lipirea lor pe fire mai lungi și mai robuste. Iată cum ați putea face asta:

  1. Îndepărtați plasticul din jurul capătului firelor și poziționați-le astfel încât să fie în contact unul cu celălalt de-a lungul firelor expuse, ca în imagine.
  2. Lipiți-le împreună atingând firele ambelor fire și lăsând lipirea să curgă peste ele.

Pasul 2: Cablare

Cablare
Cablare
  1. Stivați ecranul motor deasupra Arduino.
  2. Înșurubați motoarele în parbrizul motorului.
  3. Conectați senzorii analogici la Arduino (în imagine acest lucru se face cu senzori de lumină, dar același circuit arată la fel pentru alți senzori analogici).

Pasul 3: Codificare

Codificare
Codificare
Codificare
Codificare
Codificare
Codificare
Codificare
Codificare

1. Descărcați

Descărcați folderul zip (SSAD_analogueInputs.zip), atașat mai jos. Dezarhivați-l.

Descărcați IDE-ul Arduino (https://www.arduino.cc/en/main/software).

Deschideți fișierul Arduino (SSAD_analogueInputs.ino) care se află în folderul dezarhivat cu ID-ul Arduino.

2. Instalați Biblioteci

Pentru a rula codul furnizat, trebuie să instalați câteva biblioteci. Deci, dacă fișierul Arduino, atașat la sfârșitul acestui articol, este deschis în interiorul IDE-ului Arduino, faceți următoarele:

  1. Faceți clic pe: Instrumente → Gestionați bibliotecile …
  2. Căutați „Biblioteca Adafruit Motor Shield V2” în câmpul Filtrați căutarea
  3. Instalați-l făcând clic pe butonul Instalare

După descărcarea acelor biblioteci, acum declarațiile #include din codurile furnizate ar trebui să funcționeze. Verificați acest lucru făcând clic pe butonul „Verificați” (bifați în partea stângă sus). Știți că toate bibliotecile funcționează, dacă primiți mesajul „Efectuat compilarea” în partea de jos a programului. În caz contrar, apare o bară roșie și veți primi un mesaj despre ceea ce nu a funcționat corect.

3. Schimbați codul

Schimbați codul în funcție de cazul dvs. de utilizare, urmând instrucțiunile de mai jos:

Inițierea motoarelor și a ieșirilor lor senzoriale

În primul rând, declarați ce pini utilizează motoarele, precum și în ce domeniu funcționează motoarele. De exemplu, un motor atașat la M4 și care funcționează într-un interval (de viteză) de 25 și 175 este declarat așa (sub comentariul PRINCIPAL):

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

Când lucrați cu motoare cu vibrații mici care sunt acționate într-o gamă de până la 3V, ecranul motorului trebuie utilizat cu precauție, deoarece este conceput pentru funcționarea motoarelor de la 4.5VDC la 13.5VDC. Pentru a nu deteriora motoarele de 3V, am restricționat programat ieșirea Volt a ecranului la maxim 3V (exact 2,95V). Am făcut asta măsurând cât este viteza maximă de 255 în Volt și măsurată cu un multimetru că aceasta este de 4,3V. Prin urmare, nu am permis niciodată o viteză mai mare de 175, adică aproximativ 3V, motoarelor.

Fiecare motor va fi conectat cu o singură ieșire senzorială.

O ieșire senzorială este compusă dintr-unul sau mai mulți stimuli senzoriali. De exemplu, un motor ar putea vibra fie în funcție de un singur senzor, fie în funcție de media mai multor senzori poziționați diferit.

Prin urmare, în primul rând pentru fiecare motor, trebuie declarată o ieșire senzorială. Numerele din paranteze reprezintă valoarea minimă și maximă a ceea ce senzorul (grupul) poate percepe. Pentru senzorii analogici acesta este în mare parte 0 și 1023:

Ieșire SensoryOutput1 = SensoryOutput (0, 1023);

În funcția loop () fiecare motor este apoi atribuit unei valori de ieșire. Aici scrieți pentru fiecare motor următoarea afirmație și în loc de "ieșire1", orice valoare SensoryOutput ar trebui să fie conectată la acesta. Nu uitați să schimbați și toate numele "output1" din această linie, dacă utilizați un alt nume pentru aceasta.

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

Dacă doriți, puteți da mai multor motoare (de ex. Motor1 și motor2) aceeași ieșire senzorială (de ex. Ieșire1).

Mai mult, ați putea da valorile mai multor senzori unui motor (a se vedea secțiunea următoare).

Definirea senzorilor

În funcția setup () trebuie să se declare ce senzori vor face parte din vibrațiile motorului (SensoryOutput). Iată un exemplu de modul în care definiți că senzorul care este conectat la Pinul Arduino A0 ar trebui tradus în vibrații cu motorul 1 și, în consecință, cu ieșirea 1:

output1.include (A0);

Dacă mai multe ieșiri senzoriale ar trebui combinate în cadrul unei vibrații a motorului, puteți adăuga un alt pin de intrare analogic la ieșirea 1:

output1.include (A1);

În caz contrar, continuați cu următoarea ieșire:

output2.include (A1);

Combinarea mai multor senzori

După cum sa menționat mai sus, mai multe intrări ale senzorului (de exemplu, de la A0, A1 și A2) pot fi conduse la un singur motor. Codul pe care îl furnizez calculează media valorilor citite de toți senzorii incluși. Deci, dacă acest lucru este suficient pentru cazul dvs. de utilizare și doriți pur și simplu să mapați direct, de exemplu, o intrare senzorială scăzută la o vibrație scăzută, ați terminat și nu trebuie să vă gândiți la următoarele:

Cu toate acestea, dacă aveți alte idei despre ceea ce doriți să faceți cu una sau mai multe intrări senzoriale brute, puteți face în funcție de modificările funcției int getValue () din clasa SensoryOutput:

int getValue () {

finalOutput = 0; // TODO face orice vrei cu valori senzoriale // aici se construiește media, dacă mai multe valori sunt combinate pentru (int i = 0; i <curArrayLength; i ++) {finalOutput + = analogRead (valueArray ); } returnează FinalOutput / curArrayLength; }

4. Încărcați codul pe prototipul dvs. Arduino

Conectați prototipul Arduino (de la pasul 2) la computer.

Faceți clic pe Instrumente → Port → Selectați portul, unde Arduino / Genuino Uno este scris între paranteze

Faceți clic pe Instrumente → Placă → Arduino / Genuino Uno

Acum, motoarele ar trebui să funcționeze conform intrărilor senzorilor analogici. Dacă doriți, puteți deconecta Arduino de pe computer și îl puteți conecta la o altă sursă de alimentare, cum ar fi o baterie de 9V.

Pasul 4: Extensii posibile

Extensii posibile
Extensii posibile
Extensii posibile
Extensii posibile
Extensii posibile
Extensii posibile

Prototipul pe care tocmai l-ați construit permite intrări exclusiv analogice și poate conduce până la patru motoare. Mai mult, încă nu este purtabil. Dacă doriți să extindeți aceste funcții, consultați următoarele instrucțiuni:

  • Acoperirea maselor rotative ale motoarelor ERM:
  • Modificarea SSAD-ului:
  • Utilizarea a mai mult de 4 motoare - Stivuirea mai multor ecrane de motor:
  • Utilizarea unui senzor de proximitate cu ultrasunete ca intrare SSAD:

Recomandat: