Peiker Mikrofon mit Microcontroller als Keyboard fürs virtuelle Lotsen

Ich habe mir noch nicht die Mühe gemacht, eine eigene Anleitung zu erstellen für meine Umsetzung mit einem ATTINY85. Niklas hat, freundlicherweise, aber etwas mehr Motivation gezeigt und das gemacht. Ihr könnt seine Anleitung im IVAO-Forum abrufen.

Ich habe meinen verwendeten Code aber mal wieder rausgekramt. Hier einmal zum kopieren. Der Code ist aber ungetestet, da ich ein paar Änderungen vorgenommen habe, die ich noch nicht auf meinen Microcontroller hochgeladen habe.

/*
Arduino/ATTINY85 und Peiker Mirkfon
(CC BY-NC-SA 4.0)  Yannick Finzel 2019
www.AvDocs.de

Anleitung:
1. Library TrinketKeyboard.h herunterladen und installieren.
https://github.com/adafruit/Adafruit-Trinket-USB/tree/master/TrinketKeyboard
2. Für PIN_BUTTON_RED und PIN_BUTTON_BLACK den PIN überprüfen.
3. Keycodes anpassen. Voreingestellt sind STRG (links) für den roten Taster und ALT (links) für den schwarzen Taster.

*/
 
// Library "TrinketKeyboard" einladen
#include <TrinketKeyboard.h>
 
// Hier die PINs für die zwei Taster anpassen
#define PIN_BUTTON_RED 0
#define PIN_BUTTON_BLACK 2
 
bool BUTTON_STATE_RED = false;
bool BUTTON_STATE_BLACK = false;
 
void setup()
{
  // PINS als INPUT setzen
  pinMode(PIN_BUTTON_RED, INPUT);
  pinMode(PIN_BUTTON_BLACK, INPUT);
 
 // Start USB-Keyboard
  TrinketKeyboard.begin();
}
 
void loop()
{
  //Den Computer daran erinner, dass des HID-Keyboard angeschlossen ist. Auch wenn es gerade nicht gedrückt wird...
  TrinketKeyboard.poll();
 
  if (digitalRead(PIN_BUTTON_RED) == HIGH and BUTTON_STATE_RED == false){
    TrinketKeyboard.pressKey(KEYCODE_MOD_LEFT_CONTROL, 0); // GGF. PTT TASTE AUF KEYBOARD ÄNDERN
    BUTTON_STATE_RED = true;
  }
  if (digitalRead(PIN_BUTTON_RED) == LOW and BUTTON_STATE_RED == true){
    TrinketKeyboard.pressKey(0, 0);
    BUTTON_STATE_RED = false;
  }
 
  if (digitalRead(PIN_BUTTON_BLACK) == HIGH and BUTTON_STATE_BLACK == false){
    TrinketKeyboard.pressKey(KEYCODE_MOD_LEFT_ALT, 0); // GGF. PTT TASTE AUF KEYBOARD ÄNDERN
    BUTTON_STATE_BLACK = true;
  }
  if(digitalRead(PIN_BUTTON_BLACK) == LOW and BUTTON_STATE_BLACK == true){
    TrinketKeyboard.pressKey(0, 0);
    BUTTON_STATE_BLACK = false;
  }
}