Haptiikka on tuntoaistiin
perustuvaa aistimista. Lainaus Wikipediasta: Tuntoaistilla eli kosketustunnolla eli
paineaistilla tarkoitetaan aistitoimintoa, jolla aistitaan painetta ja
hahmotetaan kosketusta, terävyyttä, pehmeyttä, lämpötilaa, kipua ja kehon
asentoja.
Tämä sovellus vaikuttaa
lähinnä kipuaistiin, mutta niin hellästi, että kieli tuntee sen lähinnä
kutituksena. Kielianturiin syötetty 5V:in pulssi on niin matalajännitteinen ja
lyhyt, että se ei tunnu kipuna. Tietysti kokemuksessa täytyy olla yksilöllisiä
eroja. Huomasin pöydällä laktrisapaloja, joten keksin kääriä elektrodit
lakupalan päihin, joten samalla sai ”palkinnon”, sain suun magiaks’. Oleellinen
tavoite on tuoda esiin käskyn pulseIn(Pin,
HIGH/ LOW) (= pulse In, In isolla iillä) toiminta. Sen avulla voi suurella
resoluutiolla mitata, kauanko digitaalipinni on alhaalla / ylhäällä.
Digitaalitekniikkassa on
tähän aistiin liittyvien tuotteiden kehitys voimakkaan kehityksen kohteena.
Tähän mennessä olemme voineet keskutella puheella etäällä olevan henkilön
kanssa ja nykyään mukana on myös kuva. Siis kuulo ja näköaisti ovat
nykytekniikalle jo arkipäivää. Ei varmaankaan (näin kuvittelen) mene enää montakaan
vuotta, kun voimme aidon tuntuisesti kätellä toisella mantereella olevaa
ystävää ja tehdä virtuaalilasit päässä yhteisen patikkaretken vaikkapa
vuoristoon.
Mutta nyt laskeudun
takaisin alavalle pinnalle. Verenpainemittari hajosi. Siinä paine muutetaan
sähköiseksi signaaliksi pietsosähköisellä elementillä. Tässä elementissä
mekaaninen puristus tai vääntö saa aikaan sähköjännitteen elementin napoihin.
Arkisempi esimerkki ilmiöstä on sytkäri, missä on useita pietsokiteitä sarjassa
(kunkin jännite kytkeytyy myös sarjaan) ja vasaran naksahtaessa
elementtipinoon, syntyy kipinä, joka sytyttää kaasun, ja savukkeen voi sytyttää
(toivottavasti kuitenkin tuuli sammuttaa liekin sitä ennen, jotta keuhkot
säilyvät terveempinä).
Toiminto toimii toisinkin
päin. Kun elemettiin tuodaan jännite, muuttaa kide muotoaan. Päivittäin
törmäämme (tiedostamatta) ilmiöön esim. kännykän yhteydessä. Niissä on tarkkaa
taajuutta ja aikaa muodostamassa värähtelevä kide. Arduinossa se näyttää
tekevän 16 000 000 (16MHz) heilahdusta sekunnissa. Tavoittelin tuon mittarin
elementin irroittamisella juuri tätä. Tarkoitukseni oli side silmillä
”tutkailla” ultraäänianturilla (HC-SR04) ympäristöä ja viedä näin saatu
(jalostuksen jälkeen) signaali kehoon teipattuun pietsoelementtiin, jonka
värähtelyn voisi tuntea iholla. Anturi toimi, mutta ei tarpeeksi voimakkaasti
nyt käytettävissä olevilla jännitteillä (esim. 5V). Ajatus oli hylättävä.
Onneksi muistin kuinka lapsena kielenpäällä kokeiltiin, vieläkö litteässä
taskulampun paristossa oli ”virtaa” (oikeasti jännitettä 4,5V). Pitääpä siis
hyödyntää kielen herkkää tuntoa.
Tähän mennessä tuo oli
vasta ensimmäinen erehdys. Lisää oli tulossa! Ultraäänianturi (tämä tyyppi
HC-SR04) toimii siten, että lyhyellä posittivisella pulssilla (OUT) trikataan
anturia ja seuraavaksi toinen (IN) pinni asettuu HIGH (1) kaikua vastaavaksi
ajaksi. Arduinon sisäinen laskuri päivittyy aikaan verrannollista pulsseita.
Pulssiluku on suuri ja muuttujan täytyy olla unsigned long. Ääni kulkee ilmassa 340m sekunnissa. Ultraäänipulssi
ottaa siis aikaa mennäkseen ja heijastuakseen takaisin.
Tämän toiminnon aikana
Arduino ei suorita mitään muuta ohjelmaa. Ennen kuin hoksasin tämän, oli
kokeilussa kulunut paljon aikaa. Lakupala ehti hyvin liueta loppuun. (Tosin
pureskelin sen siinä pähkäillessä.) Alkuperäiseen kuvitteluun nähden ohjelmasta
tuli paljon yksinkertaisempi. Kaikki kielianturin pulssitukseen liittyvä
laskenta jäi pois. Kaiusta muodostui luonnollinen viive. Sitä pidempi, mitä
enemmän edessä on vapaata tilaa. Sekvenssillä hallitaan perusjksoa (noin 2s
pulssiväli) ja kaiulla (eli lasketuilla pulsseilla) ohjelman kiertoaikaa.
Tällöin kieli saa sykäyksen harvakseltaan, kun edessä on paljon tilaa ja ”sähköiskut”
kiihtyvät, kun välimatka esteeseen lyhenee. Huoneissa tämä toimii hyvin, mutta
ulkona tarvitaan kyllä muutakin (esim. GPS), tai joutuu helposti eksyksiin.
Ohjelma 21
/***************************************
*
Ohjelma 21
*
02.06.2016
*
Haptiikka ja "valkoinen keppi"
**************************************/
// Määrittelyt
const int Con_Pulssi = 8;
const int Con_Kaiku = 9;
unsigned long Ulo_Kesto1 = 0;
const int Con_LED13 = 13;
const int Con_Hapti = 2;
int Seq_Pulssitus = 1;
const int Con_PulssiVali = 30;
int Int_PullsiVali = Con_PulssiVali;
// ASETUKSET:
void setup(){
Serial.begin(9600);
pinMode(Con_Pulssi, OUTPUT);
pinMode(Con_Kaiku, INPUT);
pinMode(Con_LED13, OUTPUT);
pinMode(Con_Hapti, OUTPUT);
}// Asetuksen loppu
// PÄÄLOOPPI
void loop(){
// Paluupulssin pituuden mittaus
digitalWrite(Con_Pulssi, HIGH);
digitalWrite(Con_Pulssi, LOW);
Ulo_Kesto1 = pulseIn(Con_Kaiku, HIGH); // Mittausjakso
// Muunnos anturille
switch (Seq_Pulssitus) {
case 1:
Int_PullsiVali = Con_PulssiVali;
Seq_Pulssitus = 2;
break;
case 2:
Int_PullsiVali--;
if(Int_PullsiVali == 0){
Fun_Pulssi();
Seq_Pulssitus = 1;}
break;
} // Pulssisekvenssin loppu
delay(1);
} // Pääohjelma LOPPU
void Fun_Pulssi(){
digitalWrite(Con_Hapti, HIGH);
digitalWrite(Con_LED13, HIGH);
delay(30);
digitalWrite(Con_LED13, LOW);
digitalWrite(Con_Hapti, LOW);
} // Aliohjeman loppu
Ei kommentteja:
Lähetä kommentti