Innehållsförteckning:

Vibrotaktil sensorisk substitutions- och förstärkningsenhet (SSAD): 4 steg
Vibrotaktil sensorisk substitutions- och förstärkningsenhet (SSAD): 4 steg

Video: Vibrotaktil sensorisk substitutions- och förstärkningsenhet (SSAD): 4 steg

Video: Vibrotaktil sensorisk substitutions- och förstärkningsenhet (SSAD): 4 steg
Video: Supporting Rhythm Activities of Deaf Children using Music-Sensory-Substitution Systems 2024, November
Anonim
Vibrotaktil sensorisk substitutions- och förstärkningsenhet (SSAD)
Vibrotaktil sensorisk substitutions- och förstärkningsenhet (SSAD)
Vibrotaktil sensorisk substitutions- och förstärkningsenhet (SSAD)
Vibrotaktil sensorisk substitutions- och förstärkningsenhet (SSAD)

Detta projekt syftar till att underlätta forskning inom området sensorisk substitution och förstärkning. Jag hade möjlighet att utforska olika sätt att bygga vibrotaktila SSAD -prototyper inom min MSc -avhandling. Eftersom sensorisk substitution och förstärkning är ett ämne som inte bara berör datavetenskapare, utan också forskare från andra områden, som kognitiv vetenskap, bör en steg-för-steg-instruktion göra det möjligt för icke-experter inom elektronik och datavetenskap att montera denna prototyp för sina egna forskningssyfte.

Jag tänker inte göra reklam för exakt en sorts märke/produkt. Detta projekt sponsrades inte av något företag. Materialet jag använde valdes på grund av tekniska specifikationer och bekvämlighet (hastighet/leveranskostnad, tillgänglighet etc.). För alla produkter som nämns i denna instruktionsbok finns lika lämpliga alternativ.

Den nuvarande Instructable innehåller steg-för-steg-instruktioner om hur man bygger en grundläggande SSAD-prototyp med upp till 4 motorer och analoga sensorer.

Utöver denna instruerbara har jag skapat tre tillägg: För det första publicerade jag instruktioner om hur man använder mer än fyra motorer med denna SSAD-prototyp (https://www.instructables.com/id/Using-More-Than-4…). För det andra skapade jag ett exempel och exempel på hur man gör denna prototyp bärbar (https://www.instructables.com/id/Making-the-SSAD-W…) och hur man täcker ERM-motorer utan inkapslad roterande massa (https:/ /www.instructables.com/id/Covering-Rotating…). Vidare publiceras också ett exempel på hur man integrerar andra än analoga sensorer (i detta fall en närhetssensorer) till prototypen (https://www.instructables.com/id/Including-a-Proxi…).

Vad är "sensorisk substitution och förstärkning"?

Med sensorisk substitution kan informationen som samlas in av en sensorisk modalitet (t.ex. syn) uppfattas genom en annan känsla (t.ex. ljud). Det är en lovande icke-invasiv teknik som hjälper människor att övervinna sensorisk förlust eller försämring.

Om den sensoriska stimulansen, som översätts, normalt inte kan uppfattas av människor (t.ex. UV -ljus), kallas denna metod för sensorisk förstoring.

Vilka färdigheter behövs för att bygga denna prototyp?

I grund och botten behövs inga avancerade programmeringskunskaper för att följa instruktionerna nedan. Men om du är nybörjare inom lödning, planera lite extra tid för att lära känna denna teknik. Om du aldrig har programmerat tidigare kan det krävas lite hjälp från någon som har mer erfarenhet av programmering.

Finns det några maskiner eller verktyg som är dyra eller inte lätt tillgängliga?

Förutom ett lödkolv krävs inga maskiner eller verktyg för att bygga denna prototyp som du inte enkelt kan köpa online eller i nästa hushållsbutik. Denna SSAD är utformad för att möjliggöra snabb prototypering, vilket innebär att den ska vara snabbt reproducerbar och möjliggöra en billig utforskning av idéer.

Tillbehör

Huvudkomponenter (ca 65 £ för 4 motorer, exkl. Lödutrustning)

  • Arduino Uno (t.ex. https://store.arduino.cc/arduino-uno-rev3, 20 £)
  • Adafruit Motorshield v2.3 (t.ex. https://www.adafruit.com/product/1438, 20 £) och manliga staplingshuvuden (ingår normalt vid köp av motorsköld)
  • Cylindriska ERM -motorer (t.ex. https://www.adafruit.com/product/1438, 5, 50 £/motor)
  • Lödkolv och lödtråd
  • Trådar

Valfritt (se tillägg)

Om ERM -motor med avtäckt roterande massa köps:

  • Vinylrör
  • Tunn mjuk bräda
  • 3D -skrivare (för Arduino -hölje)

Om du vill använda mer än 4 motorer (för mer än 8 samma en annan gång):

  • Adafruit Motorshield v2.3 och manliga staplingshuvuden
  • Kvinnliga staplingshuvuden (t.ex.
  • Arduino Mega för mer än 6 motorer (t.ex.

Steg 1: Lödning

Lödning
Lödning

Löd stiften till motorskölden

Adafruit erbjuder en mycket omfattande handledning om hur man lödar rubriker till ett motorshield (https://learn.adafruit.com/adafruit-motor-shield-v…):

  1. Sätt först staplingshuvudena i stiften på Arduino Uno,
  2. Lägg sedan skölden ovanpå så att stiftets kortsida sticker ut.
  3. Löd sedan alla stiften till skölden och se till att lödet flyter runt stiftet och bildar en vulkanform (se bild ovan, som antas från https://cdn.sparkfun.com/assets/c/d/ a/a/9/523b1189 …).

Om du är nybörjare inom lödning, hjälp dig själv med fler självstudier, till exempel

Löd längre kablar till motorn

Eftersom de flesta motorer kommer utan eller mycket korta och tunna trådar, är det vettigt att förlänga dem genom att löda dem till längre och mer robusta trådar. Så här kan du göra det:

  1. Ta bort plasten runt trådänden och placera dem så att de är i kontakt med varandra längs deras exponerade trådar, som på bilden.
  2. Lödda ihop dem genom att vidröra båda trådarnas trådar och låta lodet flöda över dem.

Steg 2: Kabeldragning

Kabeldragning
Kabeldragning
  1. Stapla motorsköld ovanpå Arduino.
  2. Skruva in motorerna i motorskyddet.
  3. Anslut analoga sensorer till Arduino (i bilden görs detta med ljussensorer, men samma krets ser likadan ut för andra analoga sensorer).

Steg 3: Kodning

Kodning
Kodning
Kodning
Kodning
Kodning
Kodning
Kodning
Kodning

1. Ladda ner

Ladda ner zip -mapp (SSAD_analogueInputs.zip), bifogad nedan. Packa upp den.

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

Öppna Arduino -filen (SSAD_analogueInputs.ino) som finns i den uppackade mappen med Arduino IDE.

2. Installera bibliotek

För att köra den angivna koden måste du installera några bibliotek. Så om Arduino -filen, som bifogas i slutet av denna artikel, är öppen inuti Arduino IDE, gör följande:

  1. Klicka: Verktyg → Hantera bibliotek …
  2. Leta efter "Adafruit Motor Shield V2 Library" i Filtrera ditt sökfält
  3. Installera den genom att klicka på knappen Installera

Efter att ha laddat ner dessa bibliotek ska nu #include -påståendena i de angivna koderna fungera. Kontrollera det genom att klicka på "Verifiera" -knappen (kryss i högst upp till vänster). Du vet att alla bibliotek fungerar, om du får meddelandet "Klart att kompilera" längst ner i programmet. Annars visas en röd stapel och du får ett meddelande om vad som gick fel.

3. Ändra koden

Ändra koden enligt ditt användningsfall genom att följa instruktionerna nedan:

Starta motorer och deras SensoryOutputs

Först och främst, deklarera vilka stift motorerna använder, liksom i vilket intervall motorerna fungerar. Till exempel deklareras en motor som är ansluten till M4 och arbetar i (hastighets) intervallet 25 och 175 så här (under huvudkommentaren):

Motormotor1 = Motor (4, 25, 175);

När du arbetar med små vibrationsmotorer som drivs i ett område upp till 3V måste motorskölden användas med försiktighet eftersom den är gjord för att köra motorer på 4,5VDC till 13,5VDC. För att inte skada 3V -motorerna begränsade jag programmatiskt volymutgången från skärmen till maximalt 3V (exakt 2,95V). Jag gjorde det genom att mäta hur mycket maxhastigheten 255 är i Volt och mätt med en multimeter att detta är 4,3V. Därför tillät jag aldrig motorerna en högre hastighet än 175, vilket är ungefär 3V.

Varje motor kommer att anslutas med en SensoryOutput.

En SensoryOutput består av en eller flera sensoriska stimuli. Till exempel kan en motor antingen vibrera enligt en enda sensor, eller enligt genomsnittet för flera, olika placerade sensorer.

Därför måste en SensoryOutput deklareras för varje motor. Siffrorna inuti parenteserna är det lägsta och högsta värdet av vad sensorn (gruppen) kan uppfatta. För analoga sensorer är detta mestadels 0 och 1023:

SensoryOutput output1 = SensoryOutput (0, 1023);

I loop () -funktionen tilldelas sedan varje motor ett utgångsvärde. Här skriver du för varje motor följande påstående och istället för "output1", vilket SensoryOutput -värde som helst som ska anslutas till det. Glöm inte att också ändra alla "output1" -namn på den här raden, om du använder ett annat namn för det.

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

Om du vill kan du ge flera motorer (t.ex. motor1 och motor2) samma SensoryOutput (t.ex. output1).

Vidare kan du ge värdena för flera sensorer till en motor (se nästa avsnitt).

Definiera sensorerna

I setup () -funktionen måste det deklareras vilka sensorer som ska ingå i vilken motorvibration (SensoryOutput). Här är ett exempel på hur du definierar att sensorn som är ansluten till Arduino Pin A0 ska översättas till vibrationer med motor1 och följaktligen output1:

output1.include (A0);

Om flera sensoriska utgångar ska kombineras inom en motorvibration kan du bara lägga till en annan analog ingångsstift till utgång1:

output1.include (A1);

Annars är det bara att fortsätta med nästa utdata:

output2.include (A1);

Kombinera flera sensorer

Som nämnts ovan kan flera sensoringångar (t.ex. från A0, A1 och A2) ledas till en motor. Koden, jag tillhandahåller, beräknar genomsnittet av de värden som läses av alla inkluderade sensorer. Så om detta är tillräckligt för ditt användningsfall och du helt enkelt vill mappa till exempel en låg sensorisk ingång till en låg vibration, är du klar och behöver inte tänka på följande:

Om du däremot har andra idéer om vad du vill göra med en eller flera råa sensoriska ingångar kan du göra ändringar i funktionen int getValue () i klassen SensoryOutput:

int getValue () {

finalOutput = 0; // TODO gör vad du vill med sensoriska värden // här är genomsnittet byggt, om flera värden kombineras för (int i = 0; i <curArrayLength; i ++) {finalOutput+= analogRead (valueArray ); } returnera finalOutput / curArrayLength; }

4. Ladda upp koden till din Arduino -prototyp

Anslut Arduino Prototype (från steg 2) till din dator.

Klicka på Verktyg → Port → Välj porten, där Arduino/Genuino Uno skrivs inom parentes

Klicka på Verktyg → Board → Arduino/Genuino Uno

Nu ska motorerna köras enligt ingångarna från de analoga sensorerna. Om du vill kan du koppla bort Arduino från din dator och ansluta den till en annan strömkälla, som ett 9V -batteri.

Steg 4: Möjliga tillägg

Möjliga tillägg
Möjliga tillägg
Möjliga tillägg
Möjliga tillägg
Möjliga tillägg
Möjliga tillägg

Prototypen du just har byggt tillåter uteslutande analoga ingångar och kan driva upp till fyra motorer. Dessutom är den inte bärbar än. Om du vill förlänga dessa funktioner, ta en titt på följande instruktioner:

  • Täcker roterande massor av ERM-motorer:
  • Gör SSAD bärbar:
  • Använda mer än 4 motorer-Stapla flera motorsköldar:
  • Använda en ultraljudsavståndssensor som SSAD-ingång:

Rekommenderad: