|
|
Touchpadvon Tobias Frintz
[Bearbeiten] Touchpad – do it yourselfDieses Platinentouchpad reagiert nicht wie die herkömmlichen Touchs auf Kapazität sondern auf den Hautwiderstand.
[Bearbeiten] Die Funktionsweise:[Bearbeiten] Der Touch:Auf einer Platine ist jeweils eine Minusleitung direkt neben einer Sensorleitung. Beim Berühren wird die Sensorleitung hochohmig mit der Minusleitung verbunden. Bei den Pullupwiderständen gilt desto höher der Wert desto feinfühliger reagiert der Touch. Ich würde hier Werte zwischen 500 Kiloohm und 2000 Kiloohm nehmen je nachdem wie man die Touchplatine aufgebaut hat und wo und wie man sie einsetzt. [Bearbeiten] Die Auswerteeinheit:Die Auswerteeinheit ist extrem einfach: Ein 4066 cmos-Ic beinhaltet 4 digitale Schalter. Wenn die Steuerleitung an den Pluspol gelegt wird „schaltet“ der Schalter durch und wenn sie an Masse gelegt wird ist er geöffnet. Eine der Seiten der Schalter sind an den Mikrocontroller angeschlossen, die anderen an Minus, die Steuerleitungen an den Touch Ein AVR wertet die Signale von dem 4066 aus und sendet wenn der Touch berührt wurde dem Hostcontroller seriell die Daten [Bearbeiten] Touchkreis mit 4 Feldern:Eine Möglichkeit ist ein Touchkreis zu bauen. Natürlich kann man auch andere Formen gestalten. Bei dieser Version kann man srollen (im Uhrzeigersinn oder gegen den Uhrzeigersinn über den Kreis fahren) und hat die Möglichkeit 4 Taster (Oben, Unten, Recht, Links) zu benutzen. Durch ein Doppelklick (wie beim Laptop) wird dem Touchcontroller gezeigt das es sich um ein Tasten handelt und nicht um srollen. Ich hab hier ein ATtiny13 eingesetzt, weil er die benötigten Portpins hat, sehr bekannt ist/ oft eingesetzt wird und preiswert ist
[Bearbeiten] Der Aufbau des TouchsMan muss bei der Platine eigentlich nur zwei Sachen beachten: 1) Der innere Kreis darf nicht direkt an den vier Sensorflächen anliegen, weil sonst der Touch sehr feuchtigkeitsempfindlich wird und 2) Das Gehäuse muss die Sensorleitungen die zu den Sensorflächen führen vollständig abdecken sonst würde man z.B wenn man Rechts berührt die Leitung wo nach Oben führt auch an Masse legen. [Bearbeiten] Die Funktionsweise der Software des AVRsIm Hauptprogramm wird erst kontrolliert ob zu hohe Feuchtigkeit ist dann ob man die Tastensperre aktiviert werden sollte und dann werden noch alle Toucheingänge abgefragt und wenn eine Sensorfläche berührt wurde wird die alte Berührung mit der jetzigen verglichen. Wenn ein danebenliegendes Feld berührt wurde wird mit dem Uhrzeigersinn scrollen oder gegen den Uhrzeigersinn srollen in Register 18 gespeichert danach oder wenn ein anderes Feld berührt wurde wird die jetzige Berührung einfach in das Register wo die alte Berührung ist verschoben. Hinweiß: Dieses Programm ist lediglich ein Testprogramm wo die Berührungen über 3 Leds anzeigt. Wenn man den Touch in der Praxis einsetzen will muss man das Programm umschreiben und eventuell Funktionen wie Tasten hinzufügen und entweder die Software in ein Timerinteruppt integrieren (im Host) oder wie oben beschrieben z.B ein ATtiny nehmen und eine Schnittstelle zum Host aufbauen.
[Bearbeiten] Touchkreis mit mehr als 4 Feldern[Bearbeiten] Die FunktionsweiseWenn man ein Touchkreis mit mehr als 4 Touchfelder bauen will braucht man für jede 4 zusätzlichen Felder ein 4066 Ic mehr. Eine platzraubenende und teuere Lösung, deswegen hab ich ein Touchkreis entwickelt wo man beliebigviele Felder die durch 3 Teilbar sind mit nur einem Ic auswerten kann. Zusatzlich kann man wie bei dem einfacheren 4-Feld-Touchkreis Tasten, nur kann man hier nur 3 Tastfelder auswerten (mit Dioden) ohne noch einen Zusätzlichen IC zu verwenden. Das Prinzip von diesem Touch ist auch ziemlich einfach: Wenn ein Berührung von ... 1 nach 2 stattfand ist einmal mit dem Uhrzeigersinn gescrollt worden 2 nach 3 stattfand ist einmal mit dem Uhrzeigersinn gescrollt worden 3 nach 1 stattfand ist einmal mit dem Uhrzeigersinn gescrollt worden 1 nach 3 stattfand ist einmal gegen den Uhrzeigersinn gesrollt worden 3 nach 2 stattfand ist einmal gegen den Uhrzeigersinn gesrollt worden 2 nach 1 stattfand ist einmal gegen den Uhrzeigersinn gesrollt worden [Bearbeiten] Der fertige Touch:[Bearbeiten] TastenWenn man auf dem Touchpad auch "OK" und "Abrechen" oder ähnliche "Taster" zusätzlich zu dem srollen integrieren könnte, würde man kein einzigen echten Taster mehr benötigen und hätte ein extrem schickes robustes Design (wenn man will sogar Wasserdicht). Hier die Idee zur Umsetzung: [Bearbeiten] Tasten bei dem Touch mit 4 Feldern
Wenn man am Ende der mainloop das Unterprogramm "Nichtsberuert" steht wird es immer aufgerufen wenn kein Feld berührt wurde. Wenn man dann ein Register jedesmal wenn das Unterprogramm aufgerufen wird um 1 runterzählen lässt (vielleicht eine doppelte schleife -> ausprobieren) ist in diesem "Nichtsberührtregister" sozusagen gespeichet wie lange nichts gedrückt wurde. Und wenn dann z. B. Oben berührt wird und die alte Berührung auch Oben war muss man das "Nichtsberührtregister" überprüfen. Ich würd sagen zwischen 0,5 und 2 Sec kann man das Tasten zählen lassen. [Bearbeiten] Tasten bei dem Touch mit mehr als 4 FeldernDas Prinzip ist genau das gleiche wie bei dem Touch mit 4 Feldern. Nur bei diesem hier kann man nicht die 3 sich immmerwiederholenden Felder als Taster nehmen weil sie an verschiedenen Stellen am Touch vorkommen und man so nicht feststellen kann wo man das Touch berührt hat aber man hat zum Glück noch ein 4066 Eingang frei. Wenn man in mit 4 Dioden an 4 nebeneinanderliegende Felder anschließt hat man schon ein Tastfeld in dem Kreis. Man scrollt dann durch das Menü bestätigt mit einem Doppelklick auf dem Touch oben und als letzten Menüpunkt würde ich Zurück oder Abbrechen nehmen. [Bearbeiten] Probleme[Bearbeiten] bei zu kleinen TouchfeldernMan muss darauf achten das man die Touchfelder (vorallem bei dem Touchkreis mit mehr als 4 Feldern) nicht zu klein gestaltet denn sonst berührt man beim darüberfahren vielleicht zufällig ein Feld nicht und dann kommt es zu Fehlern beim Auswerten. [Bearbeiten] In Standgeräten:Das Problem in Standgeräten ist das man normalerweise waagerecht tippt. Daher berührt nur die Fingerkuppe den Touch. Ich würde hier die Sensorflächen ein bisschen näher an den Minuskreis legen, außerdem die Pullupwiderstände vor den 4066er Eingängen erhöhen (nicht zu hoch sonst treten Probleme auf wenn man schwitzt, dagegen Haucht oder sich in stark feuchten Räumen befindet).
[Bearbeiten] In Handgeräten:Hier hat man den Vorteil das man fast parallel zum Gehäuse den Touch berührt (-> große Auflegefläche daher kann man die Pullups vor den 4066er Eingängen ein bisschen senken) In Handgehäusen bietet sich oft nicht viel Platz deswegen würde ich eine kleine doppelseitige Platine verwenden auf der eine Seite der Touch und auf der Rückseite die Auswerteelektronik komplett in SMD.
|