Touch sense...

Ik ben wat aan het experimenteren met "touch sense".

Dus ik heb een bordje gemaakt, proberen de handleiding te volgen van de fabrikant (ST) ground plane, 15%, draadjes XX van andere draadjes af enz enz.

Dan is natuurlijk de vraag of de capaciteit echt verandert en zoja hoeveel....

Dus vanochtend even getest met m'n aneng 8002 meter: met niets in de buurt meet ik zo'n 12-14pF met een vinger in de buurt 24-35 pF. Gewoon hartstikke duidelijk te meten!

Een veel groter verschil dan ik had verwacht. Nu nog software maken om de TSC module van de STM32 aan te sturen en kijken of het werkt....

Ik heb een apart bordje met de sensoren en "sense capacitor" gemaakt en dat prik ik op m'n eigen development bordje. Dat betekent dat ik vast nog wat extra capaciteit van de draadjes naar de connectoren ga meten. Dus als dat nog 10 toevoegt, dan zou de meting vanuit de CPU iets van 24 niet-aangeraakt, 44 wel moeten aangeven. Dat zou toch goed als wel/niet moeten kunnen worden geinterpreteerd. Ohja, Het scheelt 1-2pF als je met je vinger de naastliggende toets aanraakt. Dus als normaal 14 is, moet je bij 16pF nog niet roepen dat er een aanraking is....

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Arco

Special Member

Voor pic controllers met CTMU module zijn er kant en klare inleerroutines om de controller de default state aan te leren. ST zal toch ook wel zoiets hebben?

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Je kan zeggen dat ik het mezelf moeilijk maak, maar het STMCUBE gedoe vind ik maar vervelend.

Ik gebruik chibios. Daar zit in ieder geval nog geen TSC (zo heet de module bij ST) driver in. Anderzijds, het ding is eigenlijk best eenvoudig. Gewoon een paar waardes in de registers zetten en klaar is kees. Ik denk dat ik voorlopig gewoon ga pollen. En de andere app die knopjes gebruikt die heeft een "get_button()" waar dus makkelijk wat voor in de plaats te zetten is.

ST beweert dat er een "free library" is voor de TSC. Of dat betekent dat je in de STMCUBE iets aan kan vinken en dat je dan met hun approved ontwikkelomgeving die library kan meelinken of dat er iets open source is, dat weet ik nog niet.

Maar goed.... Via het "charge transfer princiepe wordt de boel gemeten".

Volgens mij begin ik eea te begrijpen. De waarde van de sense capacitor daar geeft ST over als informatie (....vage handgebaren)....

Weinig leidraad. Maar als ik een count van ongeveer 150 wil hebben bij 50pF, dan moet de sense condensator ongeveer 150 * 50pF zijn. Dat is 7nF. Volgens mij heb ik er zo een op m'n bordje gezet. (ook een 68nF, dus dan zou ik 1500 counts in m'n tellertje moeten gaan zien voor die pads). Ik ga het proberen....

Jep! De library is C-code en helmaal beschibaar: (hiervandaan)

Complete free C source code library

En als ik hem download krijg ik een zipfile met daarin een windowsexecutable. Zucht.

Update2: Ok. Uitgepakt. Inderdaad sourcecode. Die gebruikt weer de ST-HAL layer. Troep als: Vroeger riep iedereeen "setPinMode (port, pin, mode)" functies aan en dan tientallen op een rij. Het is veel handiger als je gewoon een doit functie aanroept met een structure waar instaat wat ie allemaal voor pinmodes moet instellen. Die structure kan je dan in flash zetten, bespaart geheugen.

Zie hier de resulterende code van ST zelf:

c code:

#if TSLPRM_TSC_GROUP5_IO3 == SAMPCAP
  GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_6;
#endif
#if TSLPRM_TSC_GROUP5_IO4 == SAMPCAP
  GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_7;
#endif
#if TSLPRM_TSC_GROUP6_IO1 == SAMPCAP
  GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_11;
#endif
#if TSLPRM_TSC_GROUP6_IO2 == SAMPCAP
  GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_12;
#endif
#if TSLPRM_TSC_GROUP6_IO3 == SAMPCAP
  GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_13;
#endif
#if TSLPRM_TSC_GROUP6_IO4 == SAMPCAP
  GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_14;
#endif
  GPIO_Init(GPIOB, &GPIO_InitStructure);

  // GPIOC
#if TSLPRM_TSC_GROUP3_IO1 == SAMPCAP
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
  GPIO_Init(GPIOC, &GPIO_InitStructure);
#endif

[Bericht gewijzigd door rew op dinsdag 26 september 2017 16:56:54 (29%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lambiek

Special Member

Waarom maak je zelf niet iets? Ik heb niet zulke beste ervaringen met die standaard dingen, zijn erg gevoelig en werken niet echt goed bij de minste verandering. Maar deze ken ik niet, dus misschien valt deze mee.

Als je haar maar goed zit, GROETEN LAMBIEK.
Arco

Special Member

Voor de pic controllers met cap. sense is er een auto adjust functie. Als de default waarde verandert, wordt die ook aangepast.
(kan o.a. gebeuren als de touch vlakken ergens zitten waar er bijv. waterdruppels op kunnen komen waardoor de capaciteit verandert)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Lambiek

Special Member

Op 27 september 2017 09:18:34 schreef Arco:
(kan o.a. gebeuren als de touch vlakken ergens zitten waar er bijv. waterdruppels op kunnen komen waardoor de capaciteit verandert)

En dat is nu precies wat ik bedoel, die dingen worden gebruikt om spiegel verwarming aan en uit te zetten. Dus in een vochtige omgeving, werkt niet echt lekker. Ook werken die dingen vaak met een aarde.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 27 september 2017 09:11:27 schreef Lambiek:
Waarom maak je zelf niet iets? Ik heb niet zulke beste ervaringen met die standaard dingen, zijn erg gevoelig en werken niet echt goed bij de minste verandering. Maar deze ken ik niet, dus misschien valt deze mee.

De hardware geeft simpelweg de mogelijkheid om de verhouding tussen twee condensatoren nauwkeurig te bepalen.... op een factor na. Eigenlijk niets dus. Maar wel precies genoeg om dus met sub-picofarad nauwkeurigheid de verandering van een test-condensator te bepalen. Zonder m'n stuurprintje er aan was de capaciteit ongeveer 14pF, met vinger er op bijna 40. Dat moet gewoon te meten zijn. Een threshold van zeg 25 pF, dan werkt het ook nog met de kleinere vingers van m'n stagiaire (1e keer 28pF, later ook 38 en 40), en ook als er 5 of 8 pF aan waterdruppels op komen.

Wel is het zo dat het dielectricum nu erg dun is: het soldeermasker van de print. Ik ga meten en rapporteren wat de boel doet als ik de sensor module van de CPU aan de praat heb.

---- Edit:

Ik begrijp nu dat "zelf maken" op: "een library achtig ding voor de TSC" slaat. Sorry.

Als je een library maakt is het een goed plan om EERST te beschrijven hoe je de boel wilt aanroepen, en DAN pas de library te gaan maken.

code:


// capacitors on the first of each of the first three groups. 
#define CAPMASK 0x0111
// 3 sense channels on two groups and one on the next. 
#define SENSEMASK 0x2ee
int results[7];

TSC_init (CAPMASK, SENSEMASK);
TSC_get_values (results); // wait for results

// of: 
TSC_start_conversion ();
while (!TSC_conversion_done ()) {
  // do somethingelse
}
TSC_get_results (results);

[Bericht gewijzigd door rew op woensdag 27 september 2017 16:08:54 (24%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Is de TTP223B misschien een eenvoudige oplossing voor je ?
Ze zijn kant en klaar op een boardje te koop voor weinig (om te testen).
Als het werkt zoals je het zou willen, kun je later de losse chippies per 100 stuks kopen,.. ook voor weinig..

Mocht je meer toetsen met een enkele chip willen uitlezen, kun je ook het broertje ervan gebruiken : TTP229

Verder heb ik hier een aantal QT60161b-AG liggen. Zijn -volgens mij- niet zo makkelijk meer te verkrijgen. Heb je belangstelling en maximaal maximaal 7 toetsenbordjes te maken : je weet me te vinden via de mail.

Opm : De linkjes verwijzen naar de "datasheets" met schema.

Van elk bezoek aan CO leer ik weer meer...

Using a larger electrode size can increase sensitivity. Otherwise it can decrease sensitivity

Using a thinner panel can increase sensitivity. Otherwise it can decrease sensitivity.

't kan vriezen, 't kan dooien. :-)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Arco

Special Member

Het is ook aan te raden om een deel aardvlak achter de electrodes te hebben. (is me ooit bij Microchip verteld)
Als je dat niet hebt, is de zaak ook zeer gevoelig voor zendende GSM telefoons. (daar hadden de eerste demokits van Microchip ook last van)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Dat hebben de TTP229 demo bordjes op AliExpress NIET, mijn bordje WEL.
PS library is geschreven. (alleen de basics)... Zou moeten werken. Nog niet getest. :-)

[Bericht gewijzigd door rew op donderdag 28 september 2017 10:22:22 (39%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lambiek

Special Member

Ben benieuwt naar je bevindingen. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Ik moet einde-maand-financiele dingen doen, en dan zit ik weer op CO... :-(

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Lambiek

Special Member

Ja, dat hoort er ook bij. Leuk hé. :)

Als je haar maar goed zit, GROETEN LAMBIEK.