Stap 7: Bouw van het touchscreen: vind een exacte X Y-positie
De precisie van de opsporing verbeteren gaan we moesten complexify van het systeem door toevoeging van sommige LED op verschillende digitale poorten van de Raad van bestuur. Zoals u op de foto's zien kunt, ik heb nu 15 LEDs (Kies zo velen aangezien u wilt) bedraad in een kunststof bruin stokken. De afstand tussen elke LED is 5cm, dus de totale afstand 70cm is.
Nu, hoe gaan we om te ontdekken een zeer exacte positie?
1. we moeten controleren als het systeem is het opsporen van iets. De methode is gonna be:
- LED 1, inschakelen
- Lees de sensor en vink als iets het licht blokkeert
- Als er iets is in de manier waarop de pixels boven kalibratie opslaat in een tabel
- LED1 uitschakelen
- LED 2 inschakelen
- Lees de sensor en vink als iets het licht blokkeert
Als er iets is in de manier waarop de pixels boven kalibratie opslaat in een tabel
- Zwenking vandoor LED2
- ... (doe dit voor elke LED)
Nu hebben we alle gebieden opsporen iets opgeslagen.
2. Bereken de functie
Ik weet dat school is vaak ver weg en wiskunde scheen niet handig op het moment. Maar weet je nog de basisfunctie Y = AX + B?
Hier gaan we hebben een volledige toepassing van deze. We gaan voor het berekenen van de functie overschrijding van de LED en het midden van het gebied de CCD-sensor gedetecteerd.
Om te vereenvoudigen, zullen we de XY-oorsprong van de afbeelding instellen op de eerste LED LED 1 genoemd. Vervolgens kunnen we B berekenen voor elke LED (in mm):
LED 1 = 0, 2 = 50 (50mm afstand), LED LED 3 = 100, LED 4 = 150...
De A is een beetje lastiger, als Y = AX + B dan A = (Y - B) /X
Als we het gemiddelde van de pixels gedetecteerd (in het programma is het "(maxi + mini)/2") kunnen we berekenen de exacte hoogte (Y). We moeten ook transformeren van de pixels in de dimensie.
(NB_PIXELS-(maxi+mini)/2)*CCD_HEIGHT)/NB_PIXELS+(SCREEN_HEIGHT/2)-(CCD_HEIGHT/2)
en zoals we X, Y en B hebben we A berekenen:
A = (Y - B) /X
Nu we A hebben en B van alle regels die van elke LED naar het midden van het gebied dat ze niet op de sensor zien. Wij hebben function1: Y = X A1 + B1 en Y = X A2 + B2
Vervolgens kunnen we berekenen met de overschrijding van deze functies:
De coördinaat X en Y van de kruising zal worden:
X = (B2 - B1) / (A1 - A2)
Y = (((A1*X) + B1) + ((A2*X) + B2)) / 2
De X- en Y zijn de Overstekende coördinaten. Als u alle functies overschrijding van punt berekenen en u hen gemiddelde moet je een goede benadering van de centrale ligging van het object. De multi punt kan niet werken met slechts gemiddeld, het moet een meer complex algoritme (in stap 9).