Touch skärmen soffbord DIY med 32-tums TV och låg kostnad CCD sensor (7 / 18 steg)
Steg 7: Bygga pekskärmen: hitta en exakt placering med X Y
För att förbättra precisionen för att upptäcka kommer vi att behöva complexify systemet genom att lägga till några LED på olika digitala portar i styrelsen. Som ni kan se på bilderna, jag har nu 15 lysdioder (Välj så många du vill) fast i en plast brun pinnar. Avståndet mellan varje LED är 5cm så den totala sträckan är 70cm.
Nu, hur vi kommer att upptäcka en mycket exakt placering?
1. vi måste kontrollera om systemet upptäckt något. Metoden kommer att vara:
- Slå på LED 1,
- Läs sensorn och kontrollera om något blockerar ljuset
- Om något är på sätt lagra pixlar ovan kalibrering i en tabell
- Stänga av LED1
- Slå på lampan 2
- Läs sensorn och kontrollera om något blockerar ljuset
om något är på sätt lagra pixlar ovan kalibrering i en tabell
- Stänga av LED2
- ... (gör detta för varje LED)
Nu har vi lagrat alla områden upptäcka något.
2. beräkna funktionen
Jag vet att skolan är ofta långt borta och matematik verkade mycket användbart på gång. Men kommer du ihåg den grundläggande funktionen Y = AX + B?
Här kommer vi att ha en fullständig tillämpning av detta. Vi ska beräkna funktionen passerar LED och i mitten av området CCD-sensorn upptäcks.
För att förenkla, ska vi ställa XY beskärningen av grafiken på första LED kallas LED 1. Vi kan sedan räkna ut B för varje LED (i mm):
LED 1 = 0, ledde 2 = 50 (50mm avstånd), LED 3 = 100, ledde 4 = 150...
A är lite mer besvärlig, om Y = AX + B då A = (Y - B) /X
Om vi tar genomsnittet av de pixlar som upptäckt (i programmet är det "(maxi + mini)/2") kan vi beräkna exakt höjd (Y). Vi måste också förvandla pixlar i dimension.
(NB_PIXELS-(maxi+mini)/2)*CCD_HEIGHT)/NB_PIXELS+(SCREEN_HEIGHT/2)-(CCD_HEIGHT/2)
och som vi har Y, B och X vi beräkna A:
A = (Y - B) /X
Nu vi har A och B för alla rader kommer från varje ledde till mitten av det område som de inte kan se på sensorn. Vi har function1: Y = A1 X + B1 och Y = X A2 + B2
Sedan kan vi beräkna passage av dessa funktioner:
Koordinaten X och Y för överfarten kommer att vara:
X = (B2 - B1) / (A1 - A2)
Y = (((A1*X) + B1) + ((A2*X) + B2)) / 2
X och Y är korsningen koordinater. Om du beräknar alla funktioner passerar punkten och du i genomsnitt dem bör du ha en bra approximation av centrala position i objektet. Flera punkter kan inte arbeta med endast i genomsnitt, det behöver en mer komplex algoritm (i steg 9).