Afgelopen periode ben ik bezig geweest om een bedieningspaneel te maken voor onze kerkgemeenschap.
Om zonder toetsenbord en muis de computer te bedienen is mogelijk via teamviewer.
Dit is niet altijd handig, omdat er eigenlijk een constante verbinding open moet zijn met de computer.
Een ander idee is om gebruik te maken van een USB kabel naar een extern bedieningspaneel waar toetsen op zitten die dan de computer kunnen bedienen
Om dit voor elkaar te krijgen, zijn er verschillende stappen nodig met bestanden die ik in dit bericht zal delen en uitwerken.
1 het maken van de sketch
Om de sketch te schrijven, kan de normale methode worden gebruikt door middel van de Arduino IDE
Het script wat hierboven staat is niet wat ik heb gebruikt.
Mijn script bevat een registreren van knoppen, zodat er acties kunnen worden uitgehaald door de Arduino.
Er wordt hier een pin gelezen, in dit geval PinStreamStart_8. Als deze is ingedrukt, wordt buff [0] geladen met KEY_LEFT_CTRL, die boven in de sketch is ingesteld op de waarde 0x01. buff[2] wordt geladen met de waarde van 17 van de N. Deze combinatie is in OBS (software voor streaming) ingesteld voor het starten van de Stream.
Kijk voor de toetsen aanduidingen hier
Via Serial.write (buf,8) wordt de code CTRL+N naar de computer gestuurd waar OBS draait en de stream wordt gestart.
Zoals te zien is, is buf[8] geinitialiseerd als keyboard report buffer.
In de functie releaseKey() wordt buff[0] en buff[2] weer op ‘0’ gezet.
Als al deze software is geprogrammeerd kan de sketch in de arduino worden geladen.
2 het laden van de firmware voor de HID-functie.
Om de Arduino nu als toetsenbord te laten werken, kun je als volgt te werk gaan, maar eerst verwijs ik je naar de officiele DFU programming pagina.
Ik heb zelf een soort van schema gemaakt hoe ik het beste kan werken.
Arduino als HID programmeren
- Sluit de pennen kort
- in Flip:
- open Arduino_keyboard_…
- CTRL+U en kies voor open
- klik op Run (2x)
- Sluit de pennen weer even kort
- USB eruit en er weer in (de knoppen zullen nu werken, mits geprogrammeer in een programma zoals OBS)
Op deze pagina (instructables van Eward Hage), wordt ook het hele verhaal in het engels uitgelegd met een download er bij (bovenaan de pagina)
Sluit de pennen kort
Dit gebeurt door de volgende pennen kort te sluiten op de Arduino (MEGA)
Je zult zien dat de RX en TX gaan knipperen tot de kortsluiting weer weg is gehaald. De Arduino is nu in de DFU mode
Hieronder een aantal bestanden die nodig zijn voor het gebruik maken van de DFU-optie van de Arduino
1. De arduino firmware voor de de Arduino Uno en de Mega
2. het programma Flip voor het uploaden van de firmware
3. De keyboard Firmware
4. Nog een document van Eward Hage voor het programmeren van de HID-functie
Arduino in normale mode om de sketch te laden
- Sluit de pennen weer even kort
- in Flip:
- Open Arduino_usbserial…
- CTRL+U en kies voor open
- Run (2x)
- Sluit de pennen weer even kort
- Usb eruit en er in
- in Arduino IDE
- Juiste poort zoeken
- uploaden van de sketch
Dit is al met al een erg korte omschrijving van wat er allemaal gebeurt, maar het wijst zich eigenlijk van zelf.
Voor een duidelijker uitleg verwijs ik naar het document van Eward Hage wat ik herboven heb gelinkt.
Een gedachte over “Arduino als hid-keyboard”