De Tastsensor gebruiken

De Tastsensor detecteert of de knop op de voorzijde van de sensor ingedrukt is. Je kunt een Tastsensor bijvoorbeeld gebruiken om te detecteren wanneer je robot ergens tegenaan rijdt. Je kunt ook met je vinger op de Tastsensor drukken om een actie teweeg te brengen.
De Tastsensor kan aangeven of de knop al dan niet ingedrukt is. De sensor is niet in staat te meten hoe ver of hoe hard de knop ingedrukt wordt. De Tastsensor verschaft een Logische output (Waar of Onwaar). De positie van de Tastsensor wordt de Status genoemd. Als deze ingedrukt is, is de waarde Waar; is dit niet het geval (vrijgegeven), dan is de waarde Onwaar.

Met de Tastsensor kun je ook bijhouden of de knop in het verleden werd ingedrukt en daarna werd losgelaten. Dit word Geraakt genoemd, en is handig voor het detecteren van bijvoorbeeld een druk met de vinger. Zie Meer informatie over Geraakt voor meer informatie.
Gegevens van de Tastsensor
De Tastsensor kan de volgende gegevens verschaffen:
GegevensTypeOpmerkingen
Status LogischWaar als de knop ingedrukt is en Onwaar als dat niet het geval is.
Ingedrukt LogischWaar indien ingedrukt, Onwaar indien niet (zelfde als Status).
Vrijgegeven LogischOnwaar indien ingedrukt, Waar indien niet (omgekeerd aan Status).
Geraakt LogischWaar als de knop in het verleden ingedrukt en losgelaten werd. Voor de volgende status Geraakt moet de knop opnieuw ingedrukt en losgelaten worden.
Voorbeelden van het gebruik van Ingedrukt
Hieronder vind je enkele voorbeelden van het gebruik van de status Ingedrukt van de Tastsensor.
Voorbeeld 1: Rijden tot een Tastsensor ingedrukt wordt
Met dit programma rijdt een robot rechtdoor tot een Tastsensor ingedrukt wordt, waarna de robot stopt. Het programma maakt gebruik van het blok Wachten in de modus Tastsensor - Vergelijken – Taststatus om na te gaan of de status Ingedrukt van toepassing is.
Handige weetjes
Gebruik de modus Aan van het blok Richting veranderen als je de robot wilt laten rijden terwijl er op een sensor wordt gewacht.
Voorbeeld 2: Een motor activeren wanneer een Tastsensor ingedrukt blijft (methode 1)
Met dit programma wordt een motor geactiveerd wanneer de Tastsensor ingedrukt blijft. De motor wordt gestopt wanneer de Tastsensor losgelaten wordt. Het programma maakt gebruik van het blok Schakelen in de modus Tastsensor - Vergelijken – Taststatus om na te gaan of de status Ingedrukt van toepassing is. Het resultaat van de test wordt gebruikt om te kiezen tussen het in- en uitschakelen van de motor. De test wordt via een Herhaling continu herhaald.
Voorbeeld 3: Het Statuslicht Intelligente steen laten knipperen wanneer een Tastsensor ingedrukt gehouden wordt
Met dit programma gaat het Statuslicht Intelligente steen oranje branden en knipperen wanneer de Tastsensor ingedrukt gehouden wordt. Het programma maakt gebruik van het blok Tastsensor in de modus Meten om de status van de Tastsensor te achterhalen. Het resultaat wordt via een Logische gegevensverbinding doorgestuurd naar de input Knipperen van het blok Knoppen Intelligente steen.
Voorbeelden van het gebruik van Vrijgegeven
Hieronder vind je enkele voorbeelden van het gebruik van de status Vrijgegeven van de Tastsensor.
Voorbeeld 4: Een pieptoon produceren telkens wanneer de Tastsensor ingedrukt wordt
Met dit programma wordt er een korte toon geproduceerd wanneer de Tastsensor ingedrukt wordt. Er wordt telkens slechts één toon geproduceerd. Het programma maakt gebruik van een blok Wachten in de modus Tastsensor - Vergelijken – Taststatus om na te gaan of de status Ingedrukt van toepassing is, en van een ander blok Wachten om te wachten tot Vrijgegeven van toepassing is om de lus te herhalen.
Handige weetjes
Als je het blok Wachten voor de status Vrijgegeven verwijdert uit dit programma, zul je merken dat de toon herhaald zal worden zolang de Tastsensor ingedrukt is. Dit komt doordat het blok Wachten voor de status Ingedrukt onmiddellijk met het volgende blok zal starten als de Tastsensor al ingedrukt is. Test het uit!
Voorbeeld 5: Een motor activeren wanneer een Tastsensor ingedrukt blijft (methode 2)
Met dit programma wordt een motor geactiveerd wanneer de Tastsensor ingedrukt blijft. De motor wordt gestopt wanneer de Tastsensor losgelaten wordt. Het programma maakt gebruik van een blok Wachten in de modus Tastsensor - Vergelijken – Taststatus om te wachten tot de status Ingedrukt van toepassing is om de motor te starten, en van een ander blok Wachten om te wachten tot Vrijgegeven van toepassing is om de motor te stoppen. Het proces wordt via een Herhaling herhaald.
Handige weetjes
Dit programma heeft hetzelfde resultaat als Voorbeeld 2 hierboven, maar gebruikt een andere methode.
Meer informatie over Geraakt
Naast analyseren of de knop op de Tastsensor ingedrukt of vrijgegeven is, registreert de Tastsensor eveneens of de knop in het verleden al werd ingedrukt en losgelaten (dit wordt Geraakt genoemd). Dit maakt het eenvoudig om na te gaan of de Tastsensor gebruikt werd als een drukknop, zonder constant te moeten controleren of er gedrukt wordt en daarna te moeten wachten tot de knop wordt losgelaten.

Eens een Tastsensor aangegeven heeft dat de knop Geraakt werd, zal deze pas een volgende keer Geraakt geven als status wanneer de Tastsensor opnieuw werd ingedrukt en losgelaten. Op die manier is het bijvoorbeeld eenvoudig om er zeker van te zijn dat elke druk op de knop overeenstemt met een actie die slechts één keer voorvalt.

In de onderstaande tabel vind je een voorbeeld van een reeks stappen waarbij de Tastsensor twee keer ingedrukt en losgelaten wordt. De tabel geeft het resultaat weer van een programma dat na elke actie nagaat of de status Ingedrukt, Vrijgegeven of Geraakt van toepassing is.
StapActieIngedruktVrijgegevenGeraakt
1 De knop is in het begin vrijgegevenOnwaarWaarOnwaar
2 De knop is ingedruktWaarOnwaarOnwaar
3 De knop is vrijgegevenOnwaarWaarWaar
4 De knop is nog steeds vrijgegeven, en het programma test de Tastsensor opnieuwOnwaarWaarOnwaar
5 De knop wordt een tweede keer ingedruktWaarOnwaarOnwaar
6 De blijft ingedrukt, en het programma test de Tastsensor opnieuwWaarOnwaarOnwaar
7 De knop is vrijgegevenOnwaarWaarWaar
8 De knop is nog steeds vrijgegeven, en het programma test de Tastsensor opnieuwOnwaarWaarOnwaar
Merk op dat wanneer de knop ingedrukt blijft, de Tastsensor „Ingedrukt” zal blijven aangeven als status telkens wanneer het programma de test uitvoert. Wanneer de knop echter losgelaten wordt, zal de knop alleen Geraakt aangeven wanneer de status Geraakt voor het eerst wordt getest. De sensor zal Geraakt pas opnieuw aangeven wanneer deze opnieuw werd ingedrukt en losgelaten.
Voorbeelden van het gebruik van Geraakt
Hieronder vind je enkele voorbeelden van het gebruik van de status Geraakt van de Tastsensor.
Voorbeeld 6: De weergave wijzigen wanneer de Tastsensor ingedrukt wordt
Met dit programma zal het scherm van de EV3-steen „Zero”, vervolgens „One”, daarna „Two” enz. weergeven. De weergave wordt gewijzigd telkens wanneer de Tastsensor geraakt (ingedrukt en losgelaten) wordt.
Handige weetjes
Als je het blok Wachten voor blokken in dit programma wijzigt zodat er getest wordt op Ingedrukt in plaats van op Geraakt, zul je merken dat de weergave na „Zero” meteen wijzigt naar „Two” („One” wordt dus overgeslagen). Test het uit! Dit komt doordat de blokken Beeldscherm (weergeven) zo snel worden uitgevoerd dat wanneer het tweede blok Wachten voor de test „Ingedrukt” uitgevoerd wordt, je vinger nog steeds de knop ingedrukt houdt zodat het tweede blok Wachten meteen beëindigd wordt. Wanneer er getest wordt op Geraakt, wordt er voor elke druk slechts één test uitgevoerd.
Voorbeeld 7: In een patroon rijden tot een Tastsensor ingedrukt wordt
Met dit programma herhaald een robot een patroon (rechtdoor rijden en daarna draaien) tot een Tastsensor, die dienst doet als een stopknop op de robot, ingedrukt wordt. Na het indrukken van de Tastsensor zal de robot stoppen na de volgende bocht. Het programma maakt gebruik van een blok Herhaling in de modus Tastsensor om het rijden te herhalen tot de Tastsensor wordt Geraakt (ingedrukt en losgelaten).
Handige weetjes
Als je dit programma probeert met Ingedrukt in plaats van Geraakt, zul je merken dat de robot meestal niet zal stoppen als je de Tastsensor indrukt. Test het uit! De reden hiervoor is dat de sensor tijdens de herhaling slechts kort getest wordt na het voltooien van de twee blokken Verplaatsen. Als je de sensor indrukt en loslaat terwijl de blokken Verplaatsen uitgevoerd worden, wordt de status Ingedrukt niet waargenomen. Als je Geraakt gebruikt, onthoudt de Tastsensor dat deze in het verleden werd ingedrukt en losgelaten.
Blokken en modi voor de Tastsensor
In de onderstaande tabel zie je alle programmeerblokken en modi die je kunt gebruiken met de Tastsensor.
BlokModusGebruiken
WachtenTastsensor – VergelijkenWachten tot de Tastsensor Ingedrukt, Vrijgegeven of Geraakt wordt.
WachtenTastsensor - WijzigWachten tot de status van de Tastsensor wijzigt.
HerhalingTastsensorEen bloksequentie herhalen tot de Tastsensor Ingedrukt, Vrijgegeven of Geraakt wordt.
SchakelenTastsensorKiezen tussen twee bloksequenties afhankelijk van of de Tastsensor al dan niet Ingedrukt, Vrijgegeven of Geraakt wordt.
TastsensorMetenDe huidige status van de Tastsensor (Ingedrukt of niet) verkrijgen via een Logische gegevensverbinding.
TastsensorVergelijkenTesten of de Tastsensor Ingedrukt, Vrijgegeven of Geraakt is, en het resultaat verkrijgen via een Logische gegevensverbinding.
DataloggingZie Datalogging.
Tast
Snelkoppelingen