Arduino gestuurd USB keyboard

Heel veel goede systemen kan je prima runnen op een pc, alleen dat standaard toetsenbord waar je dan aan vast lijkt te zitten, is niet voor ieder systeem even prettig. Vincent legt in deze Blog ’t Zelf-post uit hoe hij met onder andere Arduino dit probleem heeft opgelost.

“Ik ergerde mij al een tijdje aan de besturing van een lichtkrant die wij gebruiken voor beursdoeleinden. Die werd bestuurd door een pc-applicatie welke op een kleine pc zonder monitor draaide. Bezoekers konden verschillende informatieteksten “oproepen” door op een normaal pc-keyboard de numerieke 1 t/m 5 toetsen te gebruiken. De 0 werd gebruikt om de lichtkrant aan of uit te zetten. Na deze toetsaanslagen werd er ook nog een enter verwacht… Deze manier vond ik erg gebruiksonvriendelijk en we merkten dan ook dat niet veel mensen wisten waar het toetsenbord voor was. Verder werd na een toetsaanslag zoals F1 of de Starttoets de lichtkrant onbestuurbaar. Door het ontbreken van een pc-monitor zat het systeem dan ook vaak in een onbekende toestand waardoor de lichtkrant vaak de hele beurs maar 1 soort informatie toonde en niet interactief was. Na diverse oplossingen geprobeerd te hebben ben ik zelf maar eens iets in elkaar gaan freubelen… Het resultaat? Een Arduinogestuurd 5-knops USB keyboard!

image

Leonardo

Ik heb gekozen voor een Arduino Leonardo. Dit is een model uit de Arduinofamilie dat niet met een seriële poort communiceert, maar direct met het USB-protocol dankzij de Atmel microcontroller die in deze Arduino gebruikt wordt. Een Arduino Due of Mega kan dit niet. De microcontroller die hierin gebruikt wordt kan enkel via een seriële poort praten, waardoor er een speciale chip nodig is die een traditionele seriële poort over het USB-protocol kan emuleren. In de eerste versies van de Arduino werd hiervoor een dure FTDI-chip gebruikt en in de nieuwere versies heeft Atmel dit met eigen software opgelost, waardoor er een extra Atmel Tiny microcontroller op het bord is bijgekomen. De chip die in de Leonardo gebruikt wordt kan echter direct via het USB-protocol communiceren en dit betekent dat er naast een seriële poort ook zeer eenvoudig een toetsenbord of muis geëmuleerd kan worden. Deze Arduino is dus uitermate geschikt voor mijn project.

image2

Flitsend en doeltreffend

Ik heb 5 grote zwarte drukknoppen en 1 rode op de GPIO-pinnen van de Arduino aangesloten. De software in de Arduino wacht totdat 1 van deze knoppen wordt ingedrukt en zendt dan een 0,1,2,3,4 of 5 gevolgd door een enter. De zwarte knoppen tonen een RSS-feed of een vast ingestelde tekst op de lichtkrant. De rode knop zal de lichtkrant aan- of uitzetten.

image3

Om de aandacht te vestigen op de besturing heb ik 2 blauwe leds toegevoegd die als een hartslag knipperen. Zo komt de besturing “tot leven” als er gedrukt wordt en zal er bij inactiviteit even een kloppende hartslag getoond worden. Hiervoor gebruik ik 2 van de PWM uitgangen van de Arduino, zodat de leds een fade in en fade out kunnen tonen.

image4

Het geheel zit stevig in een transparante hobbybox en alle kabels zijn netjes bij elkaar gebonden zodat het geheel tegen een stootje kan, wat tijdens vervoer wel eens voorkomt… Al met al is het een erg simpel project, maar erg doeltreffend. Het is dan ook erg leuk om te zien wat je als moderne hobbyist met praktisch kant en klare bouwblokken en een avondje inspanning in elkaar krijgt geknutseld!”

Vind je dit een gaaf project? Laat het Vincent weten; klik op “like/vind ik leuk” en geef ‘m een G+je! De blog-het-zelver van het project met de meeste likes/plusjes wint €50,- Conrad-shoptegoed.

Plaats reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *