Touch skärmen soffbord DIY med 32-tums TV och låg kostnad CCD sensor (11 / 18 steg)
Steg 11: Arduino Teensy programvara
Jag har redan talat om de stora hårdvaruspecifikationer styrelsens Teensy. Men i kombination med Arduino programvara miljö, Teensy erbjuder också några stora möjligheter. Men först låt oss installera den plugg-i
Nu bör du se en kategori "Teensy" när du väljer din styrelse. Och om du väljer det, har du tillgång till flera andra alternativ som "USB-seriell typ" att omedelbart förvandla din styrelse till ett USB-tangentbord eller -mus (vissa möjligheter finns på Arduino Leonardo). USB-är kommunikation en "Full fart" vilket innebär att den kan kommunicera med 12Mb/s. Du kan också ändra hastigheten för styrelsen (på detta projekt jag använde överklocka 92 MHz).
För nu, har alla min Arduino UNO koder framgångsrikt byggts på det Teensy vilket innebär en anpassning mellan ARM Cortex M4 och AVR Atmega328 har gjorts mycket väl. Jag försökte skriva koden för att vara begripliga. Här är strukturen på de viktigaste loopen:
- A för loopen från 0 till numrera av LED
-Aktivera en LED (som lysdioder kopplas med på VCC anoden och katoden på PIN-koden, du måste ge ett lågt tillstånd att slå på den)
-ClearCCD(), sensorn har rensas en gång innan du läser värdet... Jag vet inte varför. Om någon har en idé om hur jag skulle kunna påskynda denna del, skulle jag mycket uppskatta den.
-readCCD(), läsa sensorn, om ett värde är över kalibreringen det lagras och funktionen returnerar 1. Om något har påvisats, är att flag_detect inställd på 1.
-Stäng LED av (hög uppgifter för OFF i denna konfiguration)
- Om något har upptäckts, sedan flag_detect är satt till 1 och du anger om-funktionen. Du kan sedan välja din kalibrering mellan följande:
-ALTERNATIV 1. Skicka Serial monitor.
Grundläggande felsökning: det här alternativet kan du läsa de 16 kluster direkt på serial monitorn.
-ALTERNATIV 2. beräkna positionen + skicka Serial monitor
Position-felsökning: skicka koordinaterna X och Y till seriell bildskärmen
-ALTERNATIV 3. Skicka bearbetning gränssnitt
Felsökning visual: titta på CCD resultaten på en bearbetning GUI. Gränssnittet kommer att behöva anpassas till antalet LED (16 standard).
-ALTERNATIV 4. beräkna positionen + skicka Python Pi gränssnitt
Skicka ställning till gränssnittet PyQT
-ALTERNATIV 5. beräkna positionen + skicka mus (endast på Teensy)
Skicka ståndpunkten som ett USB-musen gränssnitt. För att använda det här alternativet måste du gå till "Verktyg" -> "USB typ" -> "Tangentbord + mus + Joystick". (Se varningen längst ned i detta steg)
-ALTERNATIV 6. beräkna positionen + skicka tangentbord (endast på Teensy)
Skicka ståndpunkten som ett USB-tangentbord gränssnitt. För att använda det här alternativet måste du gå till "Verktyg" -> "USB typ" -> "Tangentbord + mus + Joystick".
-ALTERNATIV 7. Peka och klicka. Samma som musen men klicka i stället för efter position
- Så småningom kan du lägga till en försening i slutet av loop(). Beroende på hastigheten behöver du
Varning: ALTERNATIV 5 använder kommandot mouse.mouveTo (X, Y) som inte fungerar på en Linux station. Om du vill göra samma konfiguration som mig med en Linux Raspberry Pi du kommer att behöva använda den Fula HACK av Paul Stoffregen som verkar vara en av utvecklarna av Teensy projektet. Han är riktigt bra och han hjälper en hel del med felsökning om du har några frågor. Tack Paul!
För den här hacka måste du ändra en del av filen namnet usb_desc.c det bör installeras i mappen Arduino. Den nya konfigurationen av Paul är lite annorlunda men han gör det att fungera! Då fungerar funktionen mouse.move() inte längre.