Sommario:

Dispositivo di sostituzione e aumento sensoriale vibrotattile (SSAD): 4 passaggi
Dispositivo di sostituzione e aumento sensoriale vibrotattile (SSAD): 4 passaggi

Video: Dispositivo di sostituzione e aumento sensoriale vibrotattile (SSAD): 4 passaggi

Video: Dispositivo di sostituzione e aumento sensoriale vibrotattile (SSAD): 4 passaggi
Video: Daniel Schmachtenberger: La tecnologia ci distruggerà? 2024, Novembre
Anonim
Dispositivo di sostituzione e aumento sensoriale vibrotattile (SSAD)
Dispositivo di sostituzione e aumento sensoriale vibrotattile (SSAD)
Dispositivo di sostituzione e aumento sensoriale vibrotattile (SSAD)
Dispositivo di sostituzione e aumento sensoriale vibrotattile (SSAD)

Questo progetto mira a facilitare la ricerca nell'area della sostituzione e dell'aumento sensoriali. Ho avuto la possibilità di esplorare diversi modi di costruire prototipi SSAD vibrotattili all'interno della mia tesi di laurea magistrale. Poiché la sostituzione e l'aumento sensoriale sono un argomento che riguarda non solo gli informatici, ma anche i ricercatori di altri campi, come le scienze cognitive, un'istruzione passo passo dovrebbe consentire ai non esperti di elettronica e informatica di assemblare questo prototipo per i propri scopi di ricerca.

Non ho intenzione di fare pubblicità per esattamente un tipo di marchio/prodotto. Questo progetto non è stato sponsorizzato da nessuna azienda. Il materiale da me utilizzato è stato scelto per caratteristiche tecniche e praticità (velocità/costo di consegna, disponibilità, ecc.). Per tutti i prodotti menzionati in questo Instructable, sono disponibili alternative ugualmente adatte.

L'attuale Instructable contiene istruzioni passo passo su come costruire un prototipo SSAD di base con un massimo di 4 motori e sensori analogici.

Oltre a questo Instructable ho creato tre estensioni: in primo luogo, ho pubblicato istruzioni su come utilizzare più di quattro motori con questo prototipo SSAD (https://www.instructables.com/id/Using-More-Than-4…). In secondo luogo, ho creato un esempio di come rendere indossabile questo prototipo (https://www.instructables.com/id/Making-the-SSAD-W…) e come coprire i motori ERM senza massa rotante incapsulata (https:/ /www.instructables.com/id/Covering-Rotating…). Inoltre, viene pubblicato anche un esempio di come integrare sensori diversi da quelli analogici (in questo caso un sensore di prossimità) al prototipo (https://www.instructables.com/id/Includeing-a-Proxi…).

Che cos'è la "sostituzione e aumento sensoriale"?

Con la sostituzione sensoriale le informazioni raccolte da una modalità sensoriale (es. vista) possono essere percepite attraverso un altro senso (es. suono). È una tecnica non invasiva promettente che aiuta le persone a superare la perdita o la disabilità sensoriale.

Se lo stimolo sensoriale, che viene tradotto, non è normalmente percepibile dagli esseri umani (es. luce UV), questo approccio è chiamato Aumento Sensoriale.

Quali competenze sono necessarie per costruire questo prototipo?

Fondamentalmente, non sono necessarie competenze di programmazione avanzate per seguire le istruzioni fornite di seguito. Tuttavia, se sei un principiante nella saldatura, pianifica del tempo extra per conoscere questa tecnica. Nel caso in cui non abbiate mai programmato prima, potrebbe essere necessaria l'assistenza di qualcuno con più esperienza nella programmazione.

Ci sono macchine o strumenti necessari che sono costosi o non disponibili facilmente?

Ad eccezione di un saldatore, non sono necessari macchinari o strumenti per costruire questo prototipo che non è possibile acquistare facilmente online o nel prossimo negozio di casalinghi. Questo SSAD è progettato per consentire la prototipazione rapida, il che significa che dovrebbe essere rapidamente riproducibile e consentire un'esplorazione economica delle idee.

Forniture

Componenti principali (circa 65 £ per 4 motori, escl. attrezzatura di saldatura)

  • Arduino Uno (es. https://store.arduino.cc/arduino-uno-rev3, 20£)
  • Adafruit Motorshield v2.3 (es. https://www.adafruit.com/product/1438, 20£) e intestazioni impilabili maschio (normalmente incluse quando si acquista il motorshield)
  • Motori cilindrici ERM (es. https://www.adafruit.com/product/1438, 5, 50£ / motore)
  • Saldatore e filo di saldatura
  • fili

Opzionale (vedi Estensioni)

Se si acquista motore ERM con massa rotante scoperta:

  • Tubo in vinile
  • Tavola morbida sottile
  • Stampante 3D (per custodia Arduino)

Se vuoi utilizzare più di 4 motori (per più di 8 lo stesso un'altra volta):

  • Adafruit Motorshield v2.3 e intestazioni impilabili maschili
  • Intestazioni di impilamento femmina (ad es.
  • Arduino Mega per più di 6 motori (es.

Passaggio 1: saldatura

saldatura
saldatura

Saldare i pin allo scudo del motore

Adafruit offre un tutorial molto completo su come saldare le intestazioni a un motorshield (https://learn.adafruit.com/adafruit-motor-shield-v…):

  1. Innanzitutto, inserisci le intestazioni di impilamento nei pin di Arduino Uno,
  2. Quindi, posiziona lo scudo sopra, in modo che il lato corto dei perni sporga.
  3. Successivamente, salda tutti i pin allo scudo e assicurati che la saldatura scorra attorno al pin e formi una forma a vulcano (vedi la foto sopra, che è adottata da https://cdn.sparkfun.com/assets/c/d/ a/a/9/523b1189…).

Se sei un principiante nella saldatura, aiutati con più tutorial, come

Saldare i fili più lunghi al motore

Poiché la maggior parte dei motori viene fornita senza o con fili molto corti e sottili, ha senso estenderli saldandoli a fili più lunghi e robusti. Ecco come potresti farlo:

  1. Rimuovere la plastica attorno all'estremità dei fili e posizionarli in modo che siano in contatto tra loro lungo i fili scoperti, come nell'immagine.
  2. Saldarli insieme toccando i fili di entrambi i fili e lasciando che la saldatura scorra su di essi.

Passaggio 2: cablaggio

Cablaggio
Cablaggio
  1. Impila il motorshield sopra l'Arduino.
  2. Avvitare i motori nello scudo del motore.
  3. Collegare i sensori analogici ad Arduino (nell'immagine questo è fatto con i sensori di luce, ma lo stesso circuito sembra lo stesso per altri sensori analogici).

Passaggio 3: codifica

codifica
codifica
codifica
codifica
codifica
codifica
codifica
codifica

1. Scarica

Scarica la cartella zip (SSAD_analogueInputs.zip), allegata di seguito. Decomprimilo.

Scarica l'IDE Arduino (https://www.arduino.cc/en/main/software).

Apri il file Arduino (SSAD_analogueInputs.ino) che si trova all'interno della cartella decompressa con l'IDE Arduino.

2. Installa le librerie

Per eseguire il codice fornito, è necessario installare alcune librerie. Quindi, se il file Arduino, che è allegato alla fine di questo articolo, è aperto all'interno dell'IDE Arduino, procedi come segue:

  1. Fare clic su: Strumenti → Gestisci librerie…
  2. Cerca "Adafruit Motor Shield V2 Library" nel campo Filtra la tua ricerca
  3. Installalo facendo clic sul pulsante Installa

Dopo aver scaricato quelle librerie, ora le istruzioni #include nei codici forniti dovrebbero funzionare. Verificalo facendo clic sul pulsante "Verifica" (spunta in alto a sinistra). Sai che tutte le librerie funzionano, se ottieni il messaggio "Compilazione completata" in fondo al programma. Altrimenti appare una barra rossa e riceverai un messaggio di cosa è andato storto.

3. Cambia il codice

Modifica il codice in base al tuo caso d'uso seguendo le istruzioni seguenti:

Avviare i motori e le loro uscite sensoriali

Prima di tutto, dichiara quali pin utilizzano i motori e in quale gamma funzionano i motori. Ad esempio, un motore che è collegato a M4 e lavora in un intervallo (velocità) di 25 e 175 è dichiarato così (sotto il commento MAIN):

Motore motore1 = Motore(4, 25, 175);

Quando si lavora con piccoli motori a vibrazione azionati in un intervallo fino a 3 V, lo scudo motore deve essere usato con cautela poiché è realizzato per far funzionare motori da 4,5 V CC a 13,5 V CC. Per non danneggiare i motori a 3V, ho limitato a livello di programmazione l'uscita Volt dello schermo a un massimo di 3V (esattamente 2,95V). L'ho fatto misurando quanto la velocità massima di 255 è in Volt e misurato con un multimetro che questo è 4,3 V. Pertanto, non ho mai consentito ai motori una velocità superiore a 175, che è di circa 3V.

Ogni motore sarà collegato con un SensoryOutput.

Un SensoryOutput è composto da uno o più stimoli sensoriali. Ad esempio, un motore potrebbe vibrare in base a un singolo sensore o in base alla media di più sensori posizionati diversamente.

Pertanto, in primo luogo per ogni motore, deve essere dichiarato un SensoryOutput. I numeri all'interno delle parentesi rappresentano il valore minimo e massimo di ciò che il sensore (gruppo) può percepire. Per i sensori analogici questo è principalmente 0 e 1023:

SensoryOutput output1 = SensoryOutput(0, 1023);

Nella funzione loop() ogni motore viene quindi assegnato a un valore di uscita. Qui scrivi scrivi per ogni motore la seguente dichiarazione e invece di "output1", qualunque valore SensoryOutput dovrebbe essere collegato ad esso. Non dimenticare di cambiare anche tutti i nomi "output1" in questa riga, se usi un altro nome per questo.

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

Se lo desideri, puoi assegnare a più motori (es. motor1 e motor2) lo stesso SensoryOutput (es. output1).

Inoltre, è possibile assegnare i valori di più sensori a un motore (vedere la sezione successiva).

Definizione dei sensori

Nella funzione setup() deve essere dichiarato quali sensori faranno parte di quale vibrazione del motore (SensoryOutput). Ecco un esempio di come si definisce che il sensore che è collegato al Pin A0 di Arduino debba essere tradotto in vibrazioni con motore1 e di conseguenza uscita1:

output1.include(A0);

Se più uscite sensoriali devono essere combinate all'interno di una vibrazione del motore, puoi semplicemente aggiungere un altro pin di ingresso analogico a output1:

output1.include(A1);

Altrimenti, continua con l'output successivo:

output2.include(A1);

Combinazione di più sensori

Come accennato in precedenza, più ingressi sensore (es. da A0, A1 e A2) possono essere portati a un motore. Il codice, che fornisco, sta calcolando la media dei valori che vengono letti da tutti i sensori inclusi. Quindi, se questo è sufficiente per il tuo caso d'uso e vuoi semplicemente mappare direttamente, ad esempio, un input sensoriale basso su una vibrazione bassa, hai finito e non devi pensare a quanto segue:

Se, tuttavia, hai altre idee su cosa vuoi fare con uno o più input sensoriali grezzi, puoi fare in base alle modifiche nella funzione int getValue() nella classe SensoryOutput:

int getValue(){

output finale = 0; // DA FARE fai quello che vuoi con i valori sensoriali // qui viene costruita la media, se più valori sono combinati per (int i = 0; i < curArrayLength; i++) { finalOutput += analogRead(valueArray); } return finalOutput / curArrayLength; }

4. Carica il codice sul tuo prototipo Arduino

Collega il prototipo Arduino (dal passaggio 2) al PC.

Fai clic su Strumenti → Porta → Seleziona la porta, dove Arduino/Genuino Uno è scritto tra parentesi

Fare clic su Strumenti → Scheda → Arduino/Genuino Uno

Ora i motori dovrebbero funzionare in base agli ingressi dei sensori analogici. Se lo desideri, puoi scollegare Arduino dal tuo PC e collegarlo a un'altra fonte di alimentazione, come una batteria da 9V.

Passaggio 4: possibili estensioni

Possibili estensioni
Possibili estensioni
Possibili estensioni
Possibili estensioni
Possibili estensioni
Possibili estensioni

Il prototipo che hai appena realizzato consente esclusivamente ingressi analogici e può pilotare fino a quattro motori. Inoltre, non è ancora indossabile. Se desideri estendere queste funzionalità, dai un'occhiata alle seguenti istruzioni:

  • Copertura delle masse rotanti dei motori ERM:
  • Rendere il SSAD indossabile:
  • Utilizzo di più di 4 motori - Impilamento di più schermi motore:
  • Utilizzo di un sensore di prossimità a ultrasuoni come input SSAD:

Consigliato: