1.5M AfstHand

by Floren Blom in Circuits > Arduino

129 Views, 1 Favorites, 0 Comments

1.5M AfstHand

afsthand image.jpg

Het doel van mijn interactieve ITTT project is om mensen in corona tijd op een veilige manier elkaar een hand te laten geven. Zelf gaf ik eigenlijk bijna elke dag wel iemand een hand, een docent op de middelbare school, wanneer je een nieuw persoon ontmoet, op formelere kennismakingen.
Überhaupt het fysieke contact tussen mensen is iets dat ik erg mis bij een ontmoeting, het voelt zo onwennig om ergens aan te komen en dan gewoon met je handen naast je te gaan staan. Ik heb gekozen voor het handjes geven omdat dit de meest gebruikelijke begroeting is, vooral ook tussen vreemden. Met mijn oplossing voor het handen geven op afstand kunnen mensen elkaar weer een soort van een hand geven. De handdruk ga ik nabootsen door middel van trillingen, hoewel een trilling niet de meest vergelijkbare sensatie is met een handdruk leek het me wel veruit de duidelijkste en ook het meest haalbaar. Trillingen kun je heel duidelijk voelen en de trilling is ook iets onverwachts waardoor mensen het sneller leuk vinden om te voelen hoe het werkt.

Mijn interactieve installatie bestaan uit twee armen die anderhalve meter uit elkaar staan. Deze armen hebben elk een hand aan het uiteinde waar druksensoren en trilmotoren inzitten. Twee personen kunnen elkaar dan als volgt op afstand een hand geven: Persoon A geeft de ene arm een hand, de hand meet op vier plekken op hoe hard er op de druksensoren wordt gedrukt. Persoon B geeft de andere arm een hand, in deze hand zitten op 4 plekken trilmotortjes (corresponderend met de druksensoren in de andere hand). Deze gaan trillen op basis van hoe hard persoon A drukt. Op deze manier kan persoon B dus dmv trillingen voelen op wat voor manier persoon A een hand geeft. Concept tekening Beide handen kunnen ook daadwerkelijk op en neer geschud worden door de beweegbare constructie. Hierdoor voelt het veel meer alsof je een echte arm een hand geeft.

Supplies

  • Arduino Uno
  • 4x FSR
  • 4x platte Trilmotor
  • 4x NPN transistor
  • 4x Diode
  • 4x 220 ohm weerstand
  • 4x 130 ohm weerstand
  • 2m CAT-kabel
  • 12v switching adaptor
  • 2x (IKEA) lamp standaard
  • stof en vulwol
  • 2 rechter handschoenen

Proces

IMG_7809.jpg
Schermopname_1007.jpg

Het eerste dat mijn aandacht trok tijdens de lessen van ITTT was eigenlijk de afstandssensor, ik vond het echt fascinerend hoe en hoe goed die werkte. Hier kwam eigenlijk al heel snel uit dat ik iets wou doen met afstand, en het duurde niet lang voor ik bij de anderhalve meter door corona uitkwam. Ik begon na te denken over wat voor dingen ik nou lastig vind in deze tijd en handen geven aan mensen was een van de ideeën waar ik toen aan dacht. Voor mij is dat iets dat ik echt heel vaak deed en ook iets dat ik ergens wel mis. Natuurlijk mis ik vooral gewoon überhaupt fysiek contact tijdens begroetingen, dat ongemakkelijke gevoel dat je nu hebt omdat je op afstand van elkaar een beetje hallo staat te zeggen vind ik gewoon echt heel naar. Vandaar dus dit concept. Een knuffel of andere vorm van fysieke begroeting leek me wat ambitieus voor dit project aangezien ik nog nooit eerder iets met electronica had gedaan dus vandaar dat ik voor de handdruk koos, dit is ook voor mij het meest iconische gebaar voor een begroeting. Ik had al snel een soort visueel idee bij wat de installatie zou kunnen worden, handen die op anderhalve meter uit elkaar staan. Het uiteindelijke concept en uitwerking is nog erg veranderd maar de basis van het idee had ik hiermee al wel.

Testjes

IMG_7311.jpg
CE5AA43E-D9E0-4B59-A3BB-ADEAC0FCC6FD.JPG
IMG_7362.jpg
IMG_7365.jpg

Toen ben ik begonnen met experimenteren met de Force Sensitive Resistors, dit leek me meest manier om iemands handdruk op te kunnen meten en ik snapte ook snel hoe ze werkten.

Ik heb hier ook de eerste testjes met de code gedaan om te kijken hoe ik de data van de FSR precies kom omzetten in bruikbare variabelen en hoe ik de trilmotoren aan kon sturen en ook op verschillende standen kon laten trillen.

Ik heb ook al vrij snel extra onderdelen gekocht zoals de trilmotortjes en extra onderdeeltjes die daarvoor nodig waren dioden, transistors en weerstandjes. Zodra die binnen waren heb ik daar ook veel mee getest.

Behalve een kort probleem met stroomvoorziening van de motortjes ging alles eigenlijk vrij soepel. De code voor de eerste prototypes werkte ook goed.

Code

Uiteindelijk heb ik een code geschreven die de data van de FSR omzet in bruikbare variabelen. Elke FSR is gekoppeld aan een trilmotortje, deze kan op 3 verschillende standen gaan trillen afhankelijk van hoe hoog de duk op de FSR is.

const int VM1 = 3;    //VibratieMotorenconst int VM2 = 5;const int VM3 = 6;const int VM4 = 9;int FSR1 = A0;         //FSRint FSR2 = A1;int FSR3 = A2;int FSR4 = A3;int FSR1Data;         //data van de FSRint FSR2Data;int FSR3Data;int FSR4Data;int VibrationDelay1; int VibrationDelay2;int VibrationDelay3;int VibrationDelay4; void setup() {  Serial.begin(9600);  pinMode (VM1, OUTPUT);  pinMode (FSR1, INPUT);  pinMode (VM2, OUTPUT);  pinMode (FSR2, INPUT);  pinMode (VM3, OUTPUT);  pinMode (FSR3, INPUT);  pinMode (VM4, OUTPUT);  pinMode (FSR4, INPUT);}void loop() {  Serial.print("Analog readings FSRData = ");  Serial.print(FSR1Data);  Serial.print("   ");  Serial.print(FSR2Data);  Serial.print("   ");  Serial.print(FSR3Data);  Serial.print("   ");  Serial.println(FSR4Data);    //FSR1 & VM1  FSR1Data = analogRead(FSR1);  //Serial.print("Analog reading FSR1Data = ");  //Serial.println(FSR1Data);  VibrationDelay1 = map(FSR1Data, 0, 1023, 0, 255);  if (FSR1Data < 1)  {    digitalWrite (VM1, LOW);  }    if (FSR1Data > 1 && FSR1Data < 500)  {     digitalWrite (VM1, HIGH);    delay(7);    digitalWrite (VM1, LOW);    delay(7);    //Serial.println(VibrationDelay1);  }    if (FSR1Data > 500 && FSR1Data < 800)   {    digitalWrite (VM1, HIGH);    delay(20);    digitalWrite (VM1, LOW);    delay(20);    //Serial.println(VibrationDelay1);  }  if (FSR1Data > 800)  {    digitalWrite (VM1, HIGH);  }  //FSR2 & VM2  FSR2Data = analogRead(FSR2);  //Serial.print("Analog reading FSR2Data = ");  //Serial.println(FSR2Data);  VibrationDelay2 = map(FSR2Data, 0, 1023, 0, 255);  if (FSR2Data < 1)  {    digitalWrite (VM2, LOW);  }    if (FSR2Data > 1 && FSR2Data < 500)  {     digitalWrite (VM2, HIGH);    delay(20);    digitalWrite (VM2, LOW);    delay(20);    //Serial.println(VibrationDelay2);  }    if (FSR2Data > 500 && FSR2Data < 800)   {    digitalWrite (VM2, HIGH);    delay(40);    digitalWrite (VM2, LOW);    delay(40);    //Serial.println(VibrationDelay2);  }  if (FSR2Data > 800)  {    digitalWrite (VM2, HIGH);  }  //FSR3 & VM3  FSR3Data = analogRead(FSR3);  //Serial.print("Analog reading FSR3Data = ");  //Serial.println(FSR3Data);  VibrationDelay3 = map(FSR3Data, 0, 1023, 0, 255);  if (FSR3Data < 1)  {    digitalWrite (VM3, LOW);  }    if (FSR3Data > 1 && FSR3Data < 500)  {     digitalWrite (VM3, HIGH);    delay(7);    digitalWrite (VM3, LOW);    delay(7);    //Serial.println(VibrationDelay3);  }    if (FSR3Data > 500 && FSR3Data < 800)   {    digitalWrite (VM3, HIGH);    delay(20);    digitalWrite (VM3, LOW);    delay(20);    //Serial.println(VibrationDelay3);  }  if (FSR3Data > 800)  {    digitalWrite (VM3, HIGH);  }  //FSR4 & VM4  FSR4Data = analogRead(FSR4);  //Serial.print("Analog reading FSR4Data = ");  //Serial.println(FSR4Data);  VibrationDelay4 = map(FSR4Data, 0, 1023, 0, 255);  if (FSR4Data < 1)  {    digitalWrite (VM4, LOW);  }    if (FSR4Data > 1 && FSR4Data < 500)  {     digitalWrite (VM4, HIGH);    delay(7);    digitalWrite (VM4, LOW);    delay(7);    //Serial.println(VibrationDelay4);  }    if (FSR4Data > 500 && FSR4Data < 800)   {    digitalWrite (VM4, HIGH);    delay(20);    digitalWrite (VM4, LOW);    delay(20);    //Serial.println(VibrationDelay4);  }  if (FSR4Data > 800)  {    digitalWrite (VM4, HIGH);  }  }

Omhulsel

IMG_7416.jpg
IMG_7423.jpg
IMG_7444.jpg
IMG_7420.jpg
IMG_7421.jpg
IMG_7456.jpg

Toen ik wist dat het belangrijkste onderdeel van mijn project werkte ben ik me gaan focussen op het omhulsel. De plank van anderhalf meter

die ik in het begin in mijn hoofd had bleek toch niet bepaald de beste uitwerking te zijn. Vooral omdat het ontzettend onpraktisch is om mee te nemen maar ook omdat het lastig wordt om een hand te balanceren op een stok op de manier die ik in gedachte had. Ik heb eerst nog een aantal manieren bedacht hoe het wellicht toch van hout kon maar bleef hierbij steeds een beetje steken. Toen ik bedacht dat het ook twee losse handen zouden kunnen worden die gewoon uit elkaar stonden kwam er eigenlijk een soort hele nieuwe golf van inspiratie. Ik ging veel meer denken in een soort portable handen in plaat van een enorme installatie. Toen ik het idee kreeg om gewoon losse opgevulde handschoenen te maken die met een draad hand e Arduino zaten kwam de echte grote doorbraak. Twee losse handen was natuurlijk niet bepaald de beste uitwerking maar hierdoor kreeg ik wel het idee om de handen echt scheidbaar te maken in plaats van dat je er alleen maar een beetje in kunt knijpen. Dit idee was in in het begin al wel langsgekomen maar omdat ik nog met mn hoofd bij een grote vaste installatie zat leek me dat kwa constructie gewoon te complex. Maar nu het wat kleinere losse armen zouden worden had ik veel meer de vrijheid om te experimenteren met het ‘schudbaar’ maken van de arm. Ik heb er erg lang mee gezeten want ik vond het best lastig te bedenken hoe ik nou een constructie kon maken die een sportvan kon scharnieren en die wel stevig genoeg was. En toen zag ik de bureaulamp! In onze keuken stond een IKEA bureaulamp en terwijl ik aan het nadenken was over hoe mijn arm moest gaan bewegen en tegelijk die lamp zag, zag ik opeens dat dat precies de vorm was die ik zocht! De basis van de lamp is stevig genoeg en de stangen en beweeg punten zitten precies op de plekken waar een arm zou buigen. Dus na een korte marktplaats zoektocht had ik twee IKEA bureaulampen gevonden en meteen opgehaald.

Het volgende dat ik moest uitzoeken is hoe ik een handschoen aan de lamp standaard kon vastmaken met daarin ook de sensoren en trilmotortjes.
Dit heb ik gedaan door eerst vingers te maken van ijzerdraad, daar stof omheen te wikkelen zodat dit een hand vormde, vervolgens heb ik hier een handschoen omheen gedaan zodat alles bij elkaar bleef en het er mooier uit ziet. De sensoren en trilmotortjes komen later dan tussen de handschoen en de vulling.

Het volgende dat ik heb gedaan is het maken van een omhulsel van de lamp standaard, Hiervoor heb ik zelf mouwen genaaid en deze opgevuld met wol voor stevigheid. Het omhulsel bestaat uit een binnenkant met vulling, en daaromheen een mouw.

Solderen

IMG_7639.jpg
IMG_7637.jpg
IMG_7646.jpg
IMG_7649.jpg
IMG_7633.jpg
IMG_7643.jpg

Toen de buitenkant/behuizing van de armen helemaal af was kon ik de sensoren en trilmotoren in de handschoenen plaatsen en beginnen met solderen.
Het solderen ging redelijk gemakkelijk, nadat ik de schakelingen had uitgetekend op het printplaatje kon ik alles vastmaken, ook het solderen van de FSR’s en de trilmotortjes ging goed, Ik heb de FSR’s en de trilmotortjes verbonden met de Arduino door middel van een lange CAT-kabel en de verbindingen zijn verstevigd met krimpkous.

Circuit

IMG_7709.jpg
Schermopname (1247).png

Het uiteindelijke circuit bestaat uit:
4x een FSR met een 130 ohm weerstand, En 4x een trilmotortje met een diode, een transistor en een 220 ohm weerstand.

Eindresultaat

IMG_7818.jpg
IMG_7819.jpg
ITTT hand schudden

Ik ben zeer tevreden met het uiteindelijke resultaat en had aan het begin van die project nooit kunnen bedenken dat dit er uit zou komen. Ik had nog nooit eerder met elektronica gewerkt en tijdens de eerste les was elke sensor echt magie voor mij, maar ik ben er wel achter gekomen dat ik dit eigenlijk heel erg leuk vind!

Tijdens dit project heb ik geleerd om fysieke interactieve ervaringen te ontwerpen, elektrische schakelingen te maken en solderen, elektronische componenten te gebruiken om een ontwerp te realiseren, en dat je nooit iets weg mag gooien want alle bureaulampen, handschoenen, stukken stof en oude kabels komen ooit nog een keer van pas!

fin.

HKU opdracht 'If this than that'

Floren Blom GART 1C