Klasse Radio!
Gibts den veränderten Skin irgendwo als Download?
Ich bin immernoch ein wenig am ausprobieren mit Skins an meinem Akkordeon-Radio...
Klasse Radio!
Gibts den veränderten Skin irgendwo als Download?
Ich bin immernoch ein wenig am ausprobieren mit Skins an meinem Akkordeon-Radio...
kann ich später hier anhängen, ist aber eher als Testversion zu sehen
Danke! Probiere ich gerne mal aus...
Hey,
wie hast du den das mit den encodern genau gemacht. Hast du evtl. einen Schaltplan oder ein paar links, wo so etwas beschrieben ist? Google schon seit tagen, aber ich finde nicht wirklich etwas was mir weiter hilft. So langsam zweifel ich an meinen suchfähigkeiten. Ich finde immer nur Beispiele für einen encoder. Du benutzt ja 2, ich würde gerne 3 benutzen. Da ich über den arduino auch noch einen led - strip steuere, macht es die sache auch nicht gerade einfacher.
Gruß siebi
ps: wollte deinen Skin testen, aber OE sagt mir immer Fehler beim installieren der zip
Hi,
schließe mich meinem Vorsprecher an. Wäre cool wenn du deine Codes usw. teilen würdest.
also nen code, zumindest für den links/rechts encoder gibt es hier:
Küchenradio - Jemand Erfahrung mit Arduinos ?
Skin:
Einfach den Skin per FTP in den Addon Ordner entpacken...
storage/.kodi
Encoder:
Ich benutze diese Libary:
https://github.com/0xPIT/encoder/tree/arduino
Da die Libary nur für einen Encoder gedacht ist, habe ich die komplette
Libary-Order 1x kopiert und die Sourcen editiert, das ich dann quasi 2 Libarys
dann hatte (Einträge in den *.cpp geändert: encoder in encoder2). Jeder
Encoder nutzt dann eine eigene Libary
Damit konnte ich dann beide Encoder ansprechen. Der Encoder lässt dann entsprechene
Tastaturbefehle aus. Keypress(120) zb ein "x" für Stop. Am Ende des Quellcode sind
die entsprechenden Tastaturcodes. Pressed, Halt und Released nutze ich im Moment noch
noch nicht..... Nur Click und Doppelklick...
Hier die Libarys und der Quellcode
#include <Keyboard.h>
#include <ClickEncoder.h>
#include <TimerOne.h>
ClickEncoder *encoder01;
ClickEncoder *encoder02;
int16_t last01, value01;
int16_t last02, value02;
void timerIsr01()
{
encoder01->service();
encoder02->service();
}
void setup()
{
Serial.begin(9600);
encoder01 = new ClickEncoder(A1, A0, A2, 4); // Encoder Pin an A0 und A1, Button Pin an A2; Restlichen Pins direkt an GND ### 4 = stepsPerNotch
encoder02 = new ClickEncoder(A4, A3, A5, 4); // Encoder Pin an A3 und A4, Button Pin an A5; Restlichen Pins direkt an GND ### 4 = stepsPerNotch
Timer1.initialize(1000);
Timer1.attachInterrupt(timerIsr01);
last01 = -1;
last02 = -1;
}
void loop() {
value01 += encoder01->getValue();
if (value01 != last01) {
if (value01 < last01) {
Keyboard.press(KEY_UP_ARROW);
delay(100);
Keyboard.releaseAll();
}
if (value01 > last01) {
Keyboard.press(KEY_DOWN_ARROW);
delay(100);
Keyboard.releaseAll();
}
last01 = value01;
}
ClickEncoder::Button b = encoder01->getButton();
if (b != ClickEncoder::Open) {
switch (b) {
case ClickEncoder::Pressed:
Serial.print("01: Pressed \n");
break;
case ClickEncoder::Held:
Serial.print("01: Held \n");
break;
case ClickEncoder::Released:
Serial.print("01: Released \n");
break;
case ClickEncoder::Clicked:
Keyboard.press(KEY_RETURN);
delay(100);
Keyboard.releaseAll();
break;
case ClickEncoder::DoubleClicked:
Keyboard.press(KEY_BACKSPACE);
delay(100);
Keyboard.releaseAll();
break;
}
}
// E N C O D E R 2
value02 += encoder02->getValue();
if (value02 != last02) {
if (value02 < last02) {
Keyboard.press(KEY_F9); // Lautstaerke - (Keyboard.xml anpassen)
//delay(100);
Keyboard.releaseAll();
}
if (value02 > last02) {
Keyboard.press(KEY_F10); // Lautstaerke + (Keyboard.xml anpassen)
//delay(100);
Keyboard.releaseAll();
}
last02 = value02;
}
ClickEncoder::Button c = encoder02->getButton();
if (c != ClickEncoder::Open) {
switch (c) {
case ClickEncoder::Pressed:
Serial.print("02: Pressed \n");
break;
case ClickEncoder::Held:
Serial.print("02: Held \n");
break;
case ClickEncoder::Released:
Serial.print("02: Released \n");
break;
case ClickEncoder::Clicked:
Keyboard.press(120); // Taste x - Kodi: Stop
delay(100);
Keyboard.releaseAll();
break;
case ClickEncoder::DoubleClicked:
Serial.print("02: DoubleClicked \n");
break;
}
}
}
//. . -32-
//.!. -33-
//.Ä. -34-
//.§. -35-
//.$. -36-
//.%. -37-
//./. -38-
//.ä. -39-
//.). -40-
//.=. -41-
//.(. -42-
//.`. -43-
//.,. -44-
//.ß. -45-
//... -46-
//.-. -47-
//.0. -48-
//.1. -49-
//.2. -50-
//.3. -51-
//.4. -52-
//.5. -53-
//.6. -54-
//.7. -55-
//.8. -56-
//.9. -57-
//.Ö. -58-
//.ö. -59-
//.;. -60-
//.´. -61-
//.:. -62-
//._. -63-
//.". -64-
//.A. -65-
//.B. -66-
//.C. -67-
//.D. -68-
//.E. -69-
//.F. -70-
//.G. -71-
//.H. -72-
//.I. -73-
//.J. -74-
//.K. -75-
//.L. -76-
//.M. -77-
//.N. -78-
//.O. -79-
//.P. -80-
//.Q. -81-
//.R. -82-
//.S. -83-
//.T. -84-
//.U. -85-
//.V. -86-
//.W. -87-
//.X. -88-
//.Z. -89-
//.Y. -90-
//.ü. -91-
//.#. -92-
//.+. -93-
//.&. -94-
//.?. -95-
//.^. -96-
//.a. -97-
//.b. -98-
//.c. -99-
//.d. -100-
//.e. -101-
//.f. -102-
//.g. -103-
//.h. -104-
//.i. -105-
//.j. -106-
//.k. -107-
//.l. -108-
//.m. -109-
//.n. -110-
//.o. -111-
//.p. -112-
//.q. -113-
//.r. -114-
//.s. -115-
//.t. -116-
//.u. -117-
//.v. -118-
//.w. -119-
//.x. -120-
//.z. -121-
//.y. -122-
//.Ü. -123-
//.'. -124-
//.*. -125-
//.°. -126-
//.a. -140-
//.b. -141-
//.c. -142-
//.d. -143-
//.e. -144-
//.f. -145-
//.g. -146-
//.h. -147-
//.i. -148-
//.j. -149-
//.k. -150-
//.l. -151-
//.m. -152-
//.n. -153-
//.o. -154-
//.p. -155-
//.q. -156-
//.r. -157-
//.s. -158-
//.t. -159-
//.u. -160-
//.v. -161-
//.w. -162-
//.x. -163-
//.z. -164-
//.y. -165-
//.1. -166-
//.2. -167-
//.3. -168-
//.4. -169-
//.5. -170-
//.6. -171-
//.7. -172-
//.8. -173-
//.9. -174-
//.0. -175-
//. . -180-
//.ß. -181-
//.´. -182-
//.ü. -183-
//.+. -184-
//.#. -185-
//.#. -186-
//.ö. -187-
//.ä. -188-
//.^. -189-
//.,. -190-
//... -191-
//.-. -192-
Alles anzeigen
Da die Libary nur für einen Encoder gedacht ist, habe ich die komplette
Libary-Order 1x kopiert und die Sourcen editiert, das ich dann quasi 2 Libarys
dann hatte (Einträge in den *.cpp geändert: encoder in encoder2). Jeder
Encoder nutzt dann eine eigene Libary
Ah danke, ich glaube das bringt mich schon mal ein ganzes Stück weiter.
Werde es die Tage mal testen. Allgemein finde ich es für einen Anfänger gar nicht mal so leicht
Ah danke, ich glaube das bringt mich schon mal ein ganzes Stück weiter.Werde es die Tage mal testen. Allgemein finde ich es für einen Anfänger gar nicht mal so leicht
Na, musste mich auch reinlesen und probieren. Habe auch 2 Wochen gebraucht. Ob das mit den
2 Libarys "sauber" ist? Egal, mir war nur wichtig, das es geht...
Hi,
An welchen pins hast du arduino und rpi verbunden? Braucht man auf dem Pi auch noch scripte zum auslesen der Encoder?
Arduino und Pi sind per USB verbunden. Die Encoder mit dem Arduino, siehe Quellcode
Edit:
Anbei eine Skizze
Habe mir grade mal den Touchscreen angeschaut. Wäre auch was schönes for ein Projekt von mir.
Läuft die Touchscreenfunktion auch mit OpenELEC? Auf der Homepage steht nur Ubuntu und nich was anderes.
Gesendet von meinem HTC One M8 mit Tapatalk
Glaube nicht das das Ding unterstützt wird, soweit ich weiß, nur das offizielle 7" Display.
Oder man bastelt sich ein eigenes OE, aber ob sich der Aufwand lohnt?
http://wiki.openelec.tv/index.php/Compile_from_source
Also auf OE gestaltet sich die Sache sehr schwierig. Bei dem Screen ist aber bzw sollte ein fertiges Raspbian dabei sein. Dort sind alle Treiber schon vorhanden und die Touchfunktion läuft unter Raspbian out of the box. In kodi ist es allerdings wieder anders, hier funktioniert des Touch zwar (man erkennt es, weil wenn man rechts oben drückt der Cursor erscheint) aber wirklich bedienbar ist es nicht. Habe aber schon einige workarounds dazu gesehen, aber noch nicht getestet (Stichwort CarPi). Raspbian ist aber halt deutlich langsamer als OE
Dann ist das alles wohl doch was "hoch" für mich. Mit Linux kenne ich mich absolut nicht aus. Mit Windows und Mac gehen die Kenntnisse recht tief, da aber gar nicht. Wollte meiner Frau ein schönes Internetradio basteln. Zwar was weniger aufwändig wie hier das im Thread aber Naja....
Gesendet von meinem HTC One M8 mit Tapatalk
Also mal ein fettes DANKESCHöN für den Code!!!!
Hab mich heute drangesetzt und die Encoder angeschlossen, den Code in meinen bestehennden (für die LED-Steuerung) eingefügt und siehe da es funktioniert!!!
Ich wollte zwar 3 Encoder, aber die pins sind ja jetzt alle belegt. Muss ich mich wohl oder übel ein bißchen mit dem Skinning beschäftigen.
Ich freu mich
Die Technik steht!
@ipod86
ach was, mit ein wenig Ehrgeiz ist das für niemanden zu hoch. Nicht aufgeben!
Guck doch mal in meinem Thread vorbei
Selbstbau Raspberry Pi Internetradio mit Kodi aus Holz
Das ist technisch gesehen nicht so kompliziert. Gesteuert wird es halt über Yatse.
Mir ist eben die Display Bedienung wichtig. Sonst ist der WAF nicht hoch genug. Hatte die Hoffnung, dass es sich so ähnlich wie kodi auf Android verhält. Das kann ich am Handy ganz gut steuern.
Gesendet von meinem HTC One M8 mit Tapatalk
Arduino und Pi sind per USB verbunden. Die Encoder mit dem Arduino, siehe Quellcode
Edit:
Anbei eine Skizze
Hi,
das bedeutet, der Arduino wird als Tastatur vom Raspberry direkt erkannt und man muss da nichts mehr auf dem Pi einrichten?
Mein Vorhaben:
Pollin 7 Zoll Touch
FRS 8 Lautsprecher
Hifiberry Amp+
RPI
OSMC (weil offener als Openelec wegen Touchfunktion Integration)
Arduino + 2 Encoder
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!