Hallo Michael,
mein Audi TT hat noch die gute alte K-Line
CAN gab es zwar schon zwischen Motorsteuergerät und ESP/ABS, aber im Innenraum kam das erst nach 2002.
Hier mal ein Video (Achtung, über 20MB!) wo man das Instrument in Bewegung sieht.
Mittlerweile auch mit drehendem Knopf in der Mitte. Es sieht in Natura aber wesentlich besser aus als auf dem Video.
https://www.dropbox.com/scl/fi/ex8jz3ykw...peoyj&dl=0
Ich bitte die Hintergrundgeräusche zu entschuldigen - irgendwo lief ein Fernseher
Wie funktioniert das?
Ich nutze die TFT_eSpi Library vom Bodmer und daraus die Sprite Funktion.
https://github.com/Bodmer/TFT_eSPI
Es werden zwei Sprites angelegt, einmal das Hintergrundbild "img1" mit der Skala und einmal den Zeiger mit Knopf "needle".
In einem Loop lade ich beide Sprites und mit pushSprite wird das fertige Bild zum TFT transportiert. In meinem Falle mit 50MHz SPI
Loop:
der Zeiger wird so erzeugt und mit angle1 um den Pivot Punkt im Loop gedreht ausgegeben:
Die Bilder sind als PNG abgelegt und mit image2cpp in C-Code im Flash hinterlegt.
Die push.image Funktion erledigt den Rest
mein Audi TT hat noch die gute alte K-Line
CAN gab es zwar schon zwischen Motorsteuergerät und ESP/ABS, aber im Innenraum kam das erst nach 2002.
Hier mal ein Video (Achtung, über 20MB!) wo man das Instrument in Bewegung sieht.
Mittlerweile auch mit drehendem Knopf in der Mitte. Es sieht in Natura aber wesentlich besser aus als auf dem Video.
https://www.dropbox.com/scl/fi/ex8jz3ykw...peoyj&dl=0
Ich bitte die Hintergrundgeräusche zu entschuldigen - irgendwo lief ein Fernseher
Wie funktioniert das?
Ich nutze die TFT_eSpi Library vom Bodmer und daraus die Sprite Funktion.
https://github.com/Bodmer/TFT_eSPI
Es werden zwei Sprites angelegt, einmal das Hintergrundbild "img1" mit der Skala und einmal den Zeiger mit Knopf "needle".
In einem Loop lade ich beide Sprites und mit pushSprite wird das fertige Bild zum TFT transportiert. In meinem Falle mit 50MHz SPI
Loop:
Code:
img1.pushImage(0,0,240,240, epd_bitmap_tempTT);
needle.pushRotated(&img1, angle1, TFT_BLACK);
digitalWrite(TFT_1, LOW);
img1.pushSprite(0,0);
digitalWrite(TFT_1, HIGH);
der Zeiger wird so erzeugt und mit angle1 um den Pivot Punkt im Loop gedreht ausgegeben:
Code:
void createNeedle(void)
{
uint16_t piv_x = needle.width() / 2; // x pivot of Sprite (middle)
uint16_t piv_y = needle.height() -35; // y pivot of Sprite (35 pixels from bottom)
needle.setPivot(piv_x, piv_y); // Set pivot point in this Sprite
needle.pushImage(piv_x-35, 0, 70, piv_y+35, epd_bitmap_ZeigerTT);
}
Die Bilder sind als PNG abgelegt und mit image2cpp in C-Code im Flash hinterlegt.
Die push.image Funktion erledigt den Rest
Grüße
Thomas
Thomas