Ursprünglich war in der Firmware des ESPuino fest verankert, dass die Bedienung über drei Tasten und einem Drehencoder zu erfolgen hat. Die Bedienung/Bedeutung der jeweiligen Tasten war dabei vorgegeben. Dies hat sich nun geändert: Tasten können nun wahlweise hinzugefügt und entfernt werden. Auch ist der Drehencoder nun optional.
An dieser Stelle sei erwähnt, dass das von mir empfohlene (und benutzte) Layout weiterhin drei Taster und ein Drehencoder ist.
-
Als neue Direktive in
settings.h
istUSEROTARY_ENABLE
hinzugekommen. Wird kein Drehencoder gebraucht, so kann dies deaktiviert werden. Hinweis: Ist dies der Fall, so muss in der jeweiligen Develboard-spezifischen Config unbedingtWAKEUP_BUTTON
angepasst werden. -
Mit dem eben bereits angesprochenen
WAKEUP_BUTTON
kann festgelegt werden, mit welcher Taste der ESPuino wieder aus dem Tiefschlaf geholt werden soll. Es ist an dieser Stelle darauf zu achten, dass nur sog. RTC-GPIOs (0, 4, 12, 13, 14, 15, 25, 26, 27, 32, 33, 34, 35, 36, 39) verwendbar sind. Es können an dieser Stelle direkt Zahlen reingeschrieben werden oder aber z.B. auch Namen wieDREHENCODER_BUTTON
oderNEXT_BUTTON
. Soll dieses Feature deaktiviert werden, so ist eine 99 zu setzen. Nicht auskommentieren! -
In der Develboard-spezifischen Config sind die Tasten
BUTTON_4
undBUTTON_5
hinzugekommen. Per Voreinstellung sind sie deaktiviert (99). Im Gegenzug können jedoch auchNEXT_BUTTON
,PREVIOUS_BUTTON
oderPAUSEPLAY_BUTTON
wahlweise aktiviert oder deaktiviert werden. -
In
settings.h
können den Tastern nun beliebige Aktionen zugewiesen werden. Hierbei ist zu unterscheiden, ob es sich um eine Tastenkombination aus zwei Tasten (MULTI_n_SHORT
) oder um eine einzige Taste (BUTTON_n_SHORT
oderBUTTON_n_LONG
) handelt. D.h. jeder einzelnen Taste kann man eine Aktion fĂĽr kurzen Tastendruck und eine fĂĽr langen Tastendruck zuweisen. -
Möchte man einer Taste keine Aktion zuweisen, so ist die Direktive
CMD_NOTHING
zu setzen. Dies muss entsprechend fĂĽr einen kurzen und/oder langen Tastendruck gemacht werden. -
Möchte man einer Taste eine Aktion zuweisen, so sind folgende Aktionen möglich (siehe
values.h
):
Kommando | Beschreibung |
---|---|
CMD_LOCK_BUTTONS_MOD | Sperrt alle Tasten und gibt sie [theoretisch] wieder frei. Macht als Tastenbelegung eher nicht so viel Sinn, da man mit gesperrten Tasten keine Tastenaktion mehr auslösen kann. Ist eher eine Aktion für Modifikationskarten. |
CMD_SLEEP_TIMER_MOD_15 | Schaltet sich nach 15 Minuten aus und LEDs werden gedimmt |
CMD_SLEEP_TIMER_MOD_30 | Schaltet sich nach 30 Minuten aus und LEDs werden gedimmt |
CMD_SLEEP_TIMER_MOD_60 | Schaltet sich nach 60 Minuten aus und LEDs werden gedimmt |
CMD_SLEEP_TIMER_MOD_120 | Schaltet sich nach 120 Minuten aus und LEDs werden gedimmt |
CMD_SLEEP_AFTER_END_OF_TRACK | Schaltet sich nach Ende des Titels aus und LEDs werden gedimmt |
CMD_SLEEP_AFTER_END_OF_PLAYLIST | Schaltet sich nach Ende der Playlist aus und LEDs werden gedimmt |
CMD_SLEEP_AFTER_5_TRACKS | Schaltet sich nach Ende von fĂĽnf Titeln aus und LEDs werden gedimmt |
CMD_REPEAT_PLAYLIST | Aktuelle Playlist wird endlos wiederholt |
CMD_REPEAT_TRACK | Aktueller Titel wird endlos wiederholt |
CMD_DIMM_LEDS_NIGHTMODE | Dimmt LEDs in Nachtmodus |
CMD_TOGGLE_WIFI_STATUS | Schaltet WLAN an/aus |
CMD_TOGGLE_BLUETOOTH_SINK_MODE | Schaltet den Bluetooth-Modus an/aus, bei dem man zu ESPuino streamen kann (z.B. von einem Handy). |
CMD_TOGGLE_BLUETOOTH_SOURCE_MODE | Schaltet den Bluetooth-Modus an/aus, bei dem man von ESPuino zu einem externen Lautsprecher oder einem Kopfhörer streamen kann. |
CMD_ENABLE_FTP_SERVER | Schaltet FTP-Server an (aus geht nicht) |
CMD_PLAYPAUSE | Wechsel zwischen Pause und Play |
CMD_PREVTRACK | Vorheriger Titel der aktuellen Playlist |
CMD_NEXTTRACK | Nächster Titel der aktuellen Playlist |
CMD_FIRSTTRACK | Sprung zu erstem Titel der aktuellen Playlist |
CMD_LASTTTRACK | Sprung zu letztem Titel der aktuellen Playlist |
CMD_VOLUMEINIT | Stellt aktuelle Lautstärke auf Lautstärke nach dem Start ein |
CMD_VOLUMEUP | Erhöht Lautstärke um eine Einheit |
CMD_VOLUMEDOWN | ReduziertLautstärke um eine Einheit |
CMD_MEASUREBATTERY | Startet Messung der Akkuspannung (wird ĂĽber Log, Neopixel und MQTT anschlieĂźend ausgegeben) |
CMD_SLEEPMODE | Schaltet ESPuino sofort aus |
CMD_SEEK_FORWARDS | Springt n Sekunden nach vorne im Titel (Dauer in settings.h konfigurierbar |
CMD_SEEK_BACKWARDS | Springt n Sekunden nach hinten im Titel (Dauer in settings.h konfigurierbar |
- Beispiel: Man möchte ein Layout, welches auf drei Tasten und einem Drehencoder basiert. Dabei möchte man gerne zum vorherigen Titel, zum nächsten Titel, zum ersten Titel und zum letzten Titel springen können. Man möchte auch Pause/Play setzen kann. Weiterhin mittels Drehencoder den ESPuino anschalten, ausschalten, die Lautstärke ändern und die Batteriespannung anzeigen. Dies könnte man wie folgt machen (nicht zugewiesene Aktionen sind ausgeblendet):
#define BUTTON_0_SHORT CMD_NEXTTRACK
#define BUTTON_1_SHORT CMD_PREVTRACK
#define BUTTON_2_SHORT CMD_PLAYPAUSE
#define BUTTON_3_SHORT CMD_MEASUREBATTERY#define BUTTON_0_LONG CMD_LASTTRACK
#define BUTTON_1_LONG CMD_FIRSTTRACK
#define BUTTON_2_LONG CMD_PLAYPAUSE
#define BUTTON_3_LONG CMD_SLEEPMODE
Weiterhin möchte man mit der Tastenkombination aus NEXT und PREVIOUS das WLAN aus- und anschalten können. Zusätzlich mit der Tastenkombination PAUSE/PLAY und NEXT den FTP-Server aktivieren.
#define BUTTON_MULTI_01 TOGGLE_WIFI_STATUS
#define BUTTON_MULTI_02 ENABLE_FTP_SERVER
- Die Zahlen 0 bis 5 ergeben sich aus einer festen Zuordnung heraus, die nicht änderbar ist. D.h. egal, ob du einen Drehencoder benutzt oder nicht, dessen Nummer wird immer 3 bleiben. Es gilt:
0: NEXT_BUTTON
1: PREVIOUS_BUTTON
2: PAUSEPLAY_BUTTON
3: DREHENCODER_BUTTON
4: BUTTON_4
5: BUTTON_5
-
Eine Multi-Button-Aktion ergibt sich somit immer auf Basis zweier solcher Nummern. Für NEXT+PREVIOUS also z.B. 01. Dabei ist darauf zu achten, dass die kleinere Zahl immer vorne zu stehen hat. D.h. während 01 gültig ist, wäre das bei 10 nicht der Fall.
-
Abgesehen von GPIOs (0 bis 39) können auch Channels des Port-Expanders PCA9555 verwendet werden, sofern dieser verwendet wird und aktiviert ist. Der Wertebereich ist 100 bis 115. Weitere Informationen dazu gibt es hier: 📗 Einsatz des Port-Expanders PCA9555.