Indholdsfortegnelse:

Vibrotaktil sensorisk substitutions- og augmentationsenhed (SSAD): 4 trin
Vibrotaktil sensorisk substitutions- og augmentationsenhed (SSAD): 4 trin

Video: Vibrotaktil sensorisk substitutions- og augmentationsenhed (SSAD): 4 trin

Video: Vibrotaktil sensorisk substitutions- og augmentationsenhed (SSAD): 4 trin
Video: Дэвид Иглмен: Можем ли мы создать для людей новые чувства? 2024, November
Anonim
Vibrotaktil sensorisk substitutions- og augmentationsenhed (SSAD)
Vibrotaktil sensorisk substitutions- og augmentationsenhed (SSAD)
Vibrotaktil sensorisk substitutions- og augmentationsenhed (SSAD)
Vibrotaktil sensorisk substitutions- og augmentationsenhed (SSAD)

Dette projekt har til formål at lette forskning inden for sensorisk substitution og augmentation. Jeg havde mulighed for at undersøge forskellige måder at bygge vibrotaktile SSAD -prototyper inden for min MSc -afhandling. Da sensorisk substitution og forstørrelse er et emne, der ikke kun vedrører dataloger, men også forskere fra andre områder, f.eks. Kognitiv videnskab, bør en trin-for-trin instruktion gøre det muligt for ikke-eksperter inden for elektronik og datalogi at sammensætte denne prototype til deres eget forskningsformål.

Jeg har ikke til hensigt at lave reklame for præcis en slags mærke/produkt. Dette projekt blev ikke sponsoreret af nogen virksomhed. Materialet, jeg brugte, blev valgt på grund af tekniske specifikationer og bekvemmelighed (hastighed/leveringsomkostninger, tilgængelighed osv.). For alle produkter, der er nævnt i denne instruks, findes lige passende alternativer.

Den nuværende Instructable indeholder trin-for-trin instruktioner om, hvordan man bygger en grundlæggende SSAD-prototype med op til 4 motorer og analoge sensorer.

Ud over denne Instructable har jeg oprettet tre udvidelser: For det første offentliggjorde jeg instruktioner om, hvordan man bruger mere end fire motorer med denne SSAD-prototype (https://www.instructables.com/id/Using-More-Than-4…). For det andet har jeg skabt et eksempel på, hvordan man gør denne prototype bærbar (https://www.instructables.com/id/Making-the-SSAD-W…) og hvordan man dækker ERM-motorer uden indkapslet roterende masse (https:/ /www.instructables.com/id/Covering-Rotating…). Endvidere offentliggøres også et eksempel på, hvordan man integrerer andre end analoge sensorer (i dette tilfælde en nærhedssensorer) til prototypen (https://www.instructables.com/id/Including-a-Proxi…).

Hvad er "sensorisk substitution og forstørrelse"?

Med sensorisk substitution kan informationen indsamlet af en sensorisk modalitet (f.eks. Syn) opfattes gennem en anden sans (f.eks. Lyd). Det er en lovende ikke-invasiv teknik, der hjælper mennesker med at overvinde sansetab eller svækkelse.

Hvis den sansestimulus, der oversættes, normalt ikke kan opfattes af mennesker (f.eks. UV -lys), kaldes denne tilgang for sensorisk forstørrelse.

Hvilke færdigheder er nødvendige for at bygge denne prototype?

Grundlæggende er det ikke nødvendigt med avancerede programmeringsevner for at følge instruktionerne nedenfor. Men hvis du er nybegynder inden for lodning, skal du planlægge lidt ekstra tid for at lære denne teknik at kende. Hvis du aldrig har programmeret før, kan det være nødvendigt med hjælp fra en, der har mere erfaring med programmering.

Er der nødvendige maskiner eller værktøjer, der er dyre eller ikke let tilgængelige?

Bortset fra et loddejern er det ikke nødvendigt med maskiner eller værktøj til at bygge denne prototype, som du ikke let kan købe online eller i den næste husstandsbutik. Denne SSAD er designet til at muliggøre hurtig prototypering, hvilket betyder, at den skal være hurtigt reproducerbar og muliggøre en billig udforskning af ideer.

Forbrugsvarer

Hovedkomponenter (ca. 65 £ for 4 motorer, ekskl. Loddeudstyr)

  • Arduino Uno (f.eks. Https://store.arduino.cc/arduino-uno-rev3, 20 £)
  • Adafruit Motorshield v2.3 (f.eks. Https://www.adafruit.com/product/1438, 20 £) og stabelhoveder til mænd (normalt inkluderet ved køb af motorskærmen)
  • Cylindriske ERM -motorer (f.eks. Https://www.adafruit.com/product/1438, 5, 50 £/motor)
  • Loddejern og lodningstråd
  • Ledninger

Valgfrit (se udvidelser)

Hvis der købes ERM -motor med afdækket roterende masse:

  • Vinylrør
  • Tyndt blødt bræt
  • 3D -printer (til Arduino -kabinet)

Hvis du vil bruge mere end 4 motorer (for mere end 8 samme en anden gang):

  • Adafruit Motorshield v2.3 og hanstabler
  • Stabelhoveder til kvinder (f.eks.
  • Arduino Mega til mere end 6 motorer (f.eks.

Trin 1: Lodning

Lodning
Lodning

Lod lodstiftene til motorskærmen

Adafruit tilbyder en meget omfattende tutorial om, hvordan man lodder headere til et motorshield (https://learn.adafruit.com/adafruit-motor-shield-v…):

  1. Først skal du sætte stabelhovederne i stifterne på Arduino Uno,
  2. Placer derefter skærmen ovenpå, så stifternes korte side stikker ud.
  3. Derefter loddes alle stifterne til skjoldet og sørges for, at loddet flyder rundt om stiften og danner en vulkanform (se billedet ovenfor, som er vedtaget fra https://cdn.sparkfun.com/assets/c/d/ a/a/9/523b1189…).

Hvis du er nybegynder inden for lodning, kan du hjælpe dig selv med flere selvstudier, f.eks.

Lodde længere ledninger til motoren

Da de fleste motorer kommer uden eller meget korte og tynde tråde, er det fornuftigt at forlænge dem ved at lodde dem til længere og mere robuste tråde. Sådan kan du gøre det:

  1. Fjern plasten omkring enden af ledningerne, og placer dem, så de er i kontakt med hinanden langs deres udsatte ledninger, som på billedet.
  2. Lod dem sammen ved at røre ved begge trådes tråde og lade loddet flyde over dem.

Trin 2: Ledningsføring

Ledninger
Ledninger
  1. Stak motorskærm oven på Arduino.
  2. Skru motorer ind i motorskærmen.
  3. Led analoge sensorer til Arduino (på billedet gøres dette med lyssensorer, men det samme kredsløb ser det samme ud for andre analoge sensorer).

Trin 3: Kodning

Kodning
Kodning
Kodning
Kodning
Kodning
Kodning
Kodning
Kodning

1. Download

Download zip -mappe (SSAD_analogueInputs.zip), vedhæftet nedenfor. Pak den ud.

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

Åbn Arduino -filen (SSAD_analogueInputs.ino), der er inde i den udpakkede mappe med Arduino IDE.

2. Installer biblioteker

For at køre den medfølgende kode skal du installere nogle biblioteker. Så hvis Arduino -filen, der er vedhæftet i slutningen af denne artikel, er åben inde i Arduino IDE, skal du gøre følgende:

  1. Klik: Værktøjer → Administrer biblioteker …
  2. Se efter "Adafruit Motor Shield V2 Library" i Filtrér dit søgefelt
  3. Installer det ved at klikke på knappen Installer

Efter download af disse biblioteker skulle nu #include -sætningerne i de angivne koder fungere. Kontroller det ved at klikke på knappen "Bekræft" (flueben øverst til venstre). Du ved, at alle bibliotekerne fungerer, hvis du får meddelelsen "Udført kompilering" i bunden af programmet. Ellers vises en rød bjælke, og du får en besked om, hvad der gik galt.

3. Ændre koden

Skift koden i henhold til din brugstilfælde ved at følge instruktionerne herunder:

Start af motorer og deres sensoriske output

Først og fremmest skal du angive, hvilke ben motorerne bruger, samt i hvilket område motorerne fungerer. For eksempel er en motor, der er knyttet til M4 og arbejder i et (hastigheds) område på 25 og 175, erklæret sådan (under MAIN -kommentaren):

Motormotor1 = Motor (4, 25, 175);

Når der arbejdes med små vibrationsmotorer, der drives i et område op til 3V, skal motorskærmen bruges med forsigtighed, da den er lavet til at køre motorer på 4,5VDC til 13,5VDC. For ikke at beskadige 3V -motorerne begrænsede jeg programmatisk skærmets voltudgang til maksimalt 3V (præcist 2,95V). Det gjorde jeg ved at måle, hvor meget den maksimale hastighed på 255 er i Volt og målt med et multimeter, at dette er 4,3V. Derfor tillod jeg aldrig en højere hastighed end 175, hvilket er cirka 3V, til motorerne.

Hver motor vil blive forbundet med en SensoryOutput.

Én SensoryOutput er sammensat af en eller flere sensoriske stimuli. For eksempel kan en motor enten vibrere ifølge en enkelt sensor eller i henhold til gennemsnittet af flere, forskelligt placerede sensorer.

Derfor skal der først deklareres én SensoryOutput for hver motor. Tallene inde i parenteserne er den mindste og maksimale værdi af, hvad sensoren (gruppen) kan opfatte. For analoge sensorer er dette for det meste 0 og 1023:

SensoryOutput output1 = SensoryOutput (0, 1023);

I loop () -funktionen tildeles hver motor derefter en udgangsværdi. Her skriver du for hver motor følgende sætning og i stedet for "output1", uanset hvilken SensoryOutput -værdi, der skal tilsluttes den. Glem ikke også at ændre alle "output1" -navne i denne linje, hvis du bruger et andet navn til det.

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

Hvis du vil, kan du give flere motorer (f.eks. Motor1 og motor2) den samme SensoryOutput (f.eks. Output1).

Yderligere kan du give værdierne for flere sensorer til en motor (se næste afsnit).

Definere sensorerne

I opsætningsfunktionen () skal det deklareres, hvilke sensorer der skal være en del af hvilken motorvibration (SensoryOutput). Her er et eksempel på, hvordan du definerer, at den sensor, der er forbundet til Arduino Pin A0, skal oversættes til vibrationer med motor1 og følgelig output1:

output1.include (A0);

Hvis flere sensoriske udgange skulle kombineres inden for en motorvibration, kan du bare tilføje en anden analog indgangsstift til output1:

output1.include (A1);

Ellers skal du bare fortsætte med det næste output:

output2.include (A1);

Kombination af flere sensorer

Som nævnt ovenfor kan flere sensorindgange (f.eks. Fra A0, A1 og A2) ledes til en motor. Koden, jeg angiver, beregner gennemsnittet af de værdier, der læses af alle inkluderede sensorer. Så hvis dette er nok til din use case, og du blot vil kortlægge f.eks. Et lavt sensorisk input til en lav vibration, er du færdig og behøver ikke tænke på følgende:

Hvis du dog har andre ideer om, hvad du vil gøre med et eller flere rå sensoriske input, kan du gøre i henhold til ændringer i funktionen int getValue () i klassen SensoryOutput:

int getValue () {

finalOutput = 0; // TODO gør hvad du vil med sensoriske værdier // her er gennemsnittet bygget, hvis flere værdier kombineres for (int i = 0; i <curArrayLength; i ++) {finalOutput+= analogRead (valueArray ); } returner finalOutput / curArrayLength; }

4. Upload koden til din Arduino -prototype

Tilslut Arduino Prototype (fra trin 2) til din pc.

Klik på Værktøjer → Port → Vælg porten, hvor Arduino/Genuino Uno er skrevet i parentes

Klik på Værktøjer → Board → Arduino/Genuino Uno

Nu skal motorerne køre i henhold til input fra de analoge sensorer. Hvis du vil, kan du afbryde Arduino fra din pc og tilslutte den til en anden strømkilde, f.eks. Et 9V batteri.

Trin 4: Mulige udvidelser

Mulige udvidelser
Mulige udvidelser
Mulige udvidelser
Mulige udvidelser
Mulige udvidelser
Mulige udvidelser

Den prototype, du lige har bygget, tillader udelukkende analoge indgange og kan køre op til fire motorer. Desuden er den ikke bærbar endnu. Hvis du vil udvide disse funktioner, skal du kigge på følgende instruktioner:

  • Dækker roterende masser af ERM-motorer:
  • Gør SSAD bærbar:
  • Brug af mere end 4 motorer-stabling af flere motorskærme:
  • Brug af en ultralydssensor som SSAD-indgang:

Anbefalede: