Interaktivt LED bord med multitouch

Berätta om dina pågående projekt.
sminded
Inlägg: 1
Blev medlem: 25 november 2015, 14:35:09

Interaktivt LED bord med multitouch

Inlägg av sminded »

Jag bygger elektroniken för ett interaktivt soffbord/spelbord som har 256 pixlar och drivs av en mikrokontroller - Teensy 3.1
Som bord kommer jag börja att prova med ett färdigt ikea bord (se bild nedan).
Jag skriver den här tråden för att kunna bolla idéer om olika vägval och problem som jag har med bordet.

Nuvarande lösning:

Generellt:
Jag vill ha en modulär lösning där flera kretskort kan sättas samman för att bygga bord av olika storlekar.
Jag har valt att prova med en lösning där varje kort är 12x12 cm, bestående av 4x4 pixlar där varje pixel är 3x3 cm.
Förutom detta så kommer det finnas ett kretskort med mikrokontrollern, och eventuella andra lösa saker som inte ska vara modulära. Det kan vara wifi-kretsar, bluetooth, eller ljud-kretsar etc i framtiden.
Varje kort har alltså ett antal in och utgångar och kopplas samman via IDC jumpers hona/hane. På ingående signaler har jag lagt en kombinerad buffer krets och nivåomvandlare (74HC245) dels för att skifta upp från Teensys 3.3 V utgångar och dels för att motverka spänningsförluster i den långa kommunikationsbussen. Förmodligen får jag även lägga på matchande termineringsmotstånd på mikrokontrollerkortet för att motverka reflektion på bussen.

Pixlarna:
En pixel har två funktioner, dels kan den tändas via en RGB led, och dels har den en touch sensor.

RGB LED:
Jag använder en integrerad RGB led som heter APA102C och kommer som en 5x5 mm SMD-krets. Den styrs genom 2 signaler; klocka och data. Kretsen har redan logik för att hantera de tre interna LED:sen via PWM. Alla RGB leds är kopplade samman seriellt.

Touch-sensorer:
Dessa består just nu av en IR sändare och mottagare i form av en 5mm IR LED (everlight 940nm, 50mA) och en 3mm IR-fotodiod (everlight 940nm).
Utgången (0-5V) från fotodioden är kopplad till ett PISO skiftregister (74HC165) som ger en logisk etta vid 2V. Varje skiftregister kan ta 8 st touch sensorer, så det behövs två stycken för ett kretskort. Skiftregistrerna är kopplade samman seriellt och stöder SPI-protokollet. Det gör att jag kan styra pollningen av touch sensorerna med en klocka, och en enable signal, och få en data signal som input till kontrollern.

Problem som behöver lösas har främst med touch-sensorerna att göra:

1. Undvika reflektion på glas (vilket ger falska touch) eftersom touch sensorn ligger under ett glas.
Har ännu ingen bra lösning för detta.

2. Undvika bakgrundsbelysning, dagsljus och andra eventuella störningar.
Ett sätt att lösa detta skulle kunna vara att använda modulerade IR signaler, tex 38 kHz. Jag behöver veta mer om hur dessa lösningar ser ut.
Det bästa vore en integrerad lösning som pulsar IR leden själv och ger ut 0-5V signal motsvarande distansen på touch.
Jag har sett någon krets som ger ut en frekvens, där frekvensen motsvarar distansen, men det passar dåligt med kravet på att sensor-datat behöver vara kopplat ihop seriellt för undvika multiplexing etc av sensorerna.

3. Öka noggrannheten så att en touch bara triggar när man trycker på glaset. Eventuellt införa kalibrering.
Att som nu endast läsa in av/på från sensorerna kanske är för enkelt. Jag kanske behöver veta distans i form av 0-5V?
Kanske behöver ersätta skiftregistrerna med A/D omvandlare?

4. Öka känsligheten på sensorerna. Just nu är det bara någon centimeter med ett finger. Behövs speciellt under glas då mycket energi reflekteras.
Tittar på operationsförstärkare, tex LM324 som verkar fungera bra. Kanske inte behövs om jag inför A/D omvandlare.

Ikea bordet:
Bild.

Film på prototypkortet v0.1:


Jag ska lägga till kretschema inom kort.