Arduino "Blinka att prata" med Charlieplexing (1 / 8 steg)
Steg 1: arbetar
Funktionen är enkel. Sensorn består av en IR-LED/fotodiod par monterad på ett par glasögon. Värdet som returneras av fotodiod varierar beroende på om IR ljuset reflekteras bort av ögonlocket eller vit sklera i ögat. Detta används för att erhålla tröskelvärden för Glimten upptäckten.
Nu för att individuellt behandla 26 lysdioder för varje 26 alfabet, behöver jag 26 I/O linjer. För att hålla kostnaderna låga, ville jag använda en ATmega328, snarare än den ATmega2560 som skulle ha mer än tillräckligt IO linjer för vårt syfte. Dock faller ATmega328 kort av en hel del. För att åtgärda detta, faller vi tillbaka på en ganska intressant metod för multiplexing kallas Charlieplexing. Det fungerar så här. 30 lysdioderna är anslutna i ett rutnät som visas i den bifogade rutnät schematiskt. En snabb titt skulle säga att genom att vrida på någon två linjer, en hel del av lysdioder kommer att lysa upp när vi vill bara en av dem att lysa upp. Detta sker genom att vrida på två rader, samtidigt sätta alla andra 4 rader i en hög impedans tillstånd, vilket för en Arduino, skulle innebära att förklara dessa 4 rader som INPUT linjer. Det ska bli lättare att förstå om man studerar bilden ett tag, medan betala nära uppmärksamhet till polariteten av lysdioderna. För mer information om Charlieplexing, kan du hitta en utmärkt instructable på Charlieplexing teori här.
Nu, LED rutnät fungerar precis som en alfabetet ombord används för personer som lider av ALS. När systemet slås på, erhåller en kalibrering snabb tröskeln värden genom att låta användaren hålla ögonen öppna och sedan stängt för en viss tid. Systemet börjar sedan skannar varje vågrät rad i rutnätet (vrida på en rad med lysdioder) med intervaller på 1-2 sekunder, hela tiden söker efter en blinkning. När en blinkning upptäcks medan en viss rad var påslagen, system varelser scanning varje LED av denna rad, kolumn för kolumn, när du letar efter en andra blinka. När en andra blinka upptäcks på en viss alfabetet, det alfabetet skrivs ut till LCD, och också valfritt överförs till andra displayer via bluetooth-modulen. En Vippbrytare på den första raden, gör att användaren kan skriva ut en gemensam fras motsvarar varje alfabetet, snarare än att skriva hela ut brev skrivelse. Du kan också möjliggör detta system också för användaren att styra andra enheter och bekvämligheter på rummet trådlöst, genom att sända en signal till en andra modul som är ansluten till ett relä. Detta kommer att diskuteras senare. Jag också experimenterat med att ha blink sensorn som en del av en separat trådlös huvudbonader och bifogar resultatet av det i slutet av detta instructable.