Forum: Mikrocontroller und Digitale Elektronik Midi_Orgel_Schieberegister


von Fabian F. (fabiii9)



Lesenswert?

Hallo zusammen,

es gab schon einmal einen Thread über dieses Thema.

Karl Heinz (kbuchegg) hatte mir dabei auch sehr geholfen.
Jetzt bin ich gerade dabei, die Planungen umzusetzen.

Ich habe jetzt Platinen-Layouts und Schaltpläne erstellt.

Jetzt brauche ich nur noch den passenden Code dazu.
Kar Heinz hatte mir ja einen gesagt, dass ich mich wieder melden soll, 
wenn ich anfange zu bauen.

Dies war der Code:
1
#define F_CPU 1000000              // 1 MHz
2
#define BAUD 31250                // MIDI-Baudrate (31,25kBit)
3
4
#include <avr/io.h>
5
#include <util/setbaud.h>
6
7
#define NR_SR    2
8
9
// Schieberegister MC14021
10
#define SR_DDR   DDRB
11
#define SR_PORT  PORTB
12
#define SR_PIN   PINB
13
#define SR_PS    PB0
14
#define SR_C     PB1
15
#define SR_DATA  PB2
16
17
#define SET_BIT(p,b)  p |= (1<<(b))
18
#define CLR_BIT(p,b)  p &= ~(1<<(b))
19
#define IS_SET(p,b)   (p & (1<<(b)))
20
21
// Midi Kommandos
22
#define NOTE_ON    145
23
#define NOTE_OFF   129
24
25
#define MIDI_NOTE_C2   12
26
27
uint8_t fetchByte()
28
{
29
  uint8_t Result = 0;
30
  for( uint8_t i = 0; i < 8; i++ )
31
  {
32
    Result <<= 1;
33
34
    if( IS_SET( SR_PIN, SR_DATA ) )
35
      Result |= 0x01;
36
37
    SET_BIT( SR_PORT, SR_C );
38
    CLR_BIT( SR_PORT, SR_C );
39
  }
40
41
  return Result;
42
}
43
44
void uart_init( void )
45
{
46
  UBRRH = UBRRH_VALUE;
47
  UBRRL = UBRRL_VALUE;
48
  #if USE_2X                  // U2X-Modus erforderlich
49
    UCSRA |= (1 << U2X);
50
  #else                    // U2X-Modus nicht erforderlich
51
    UCSRA &= ~(1 << U2X);
52
  #endif
53
  UCSRB |= (1<<TXEN);              // UART TX einschalten
54
  UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);  // Asynchron 8N1  
55
}
56
57
void uart_putc( uint8_t c )
58
{
59
  while (!(UCSRA & (1<<UDRE)))     // warten bis Senden moeglich
60
    ;
61
62
  UDR = c;
63
}
64
65
void SendNoteOn( uint8_t note )
66
{
67
  uart_putc( NOTE_ON );
68
  uart_putc( note );
69
  uart_putc( 100);
70
}
71
72
void SendNoteOff( uint8_t note )
73
{
74
  uart_putc( NOTE_OFF );
75
  uart_putc( note );
76
  uart_putc( 0 );
77
}
78
79
void scanKeys( uint8_t* keys )
80
{
81
  SET_BIT( SR_PORT, SR_PS );
82
  CLR_BIT( SR_PORT, SR_PS );
83
84
  for( uint8_t i = 0; i < NR_SR; i++ )
85
    keys[i] = fetchByte();
86
}
87
88
int main(void)
89
{
90
  uint8_t prevKeys[NR_SR];
91
  uint8_t nowKeys[NR_SR];
92
  uint8_t changed, pressed;
93
  uint8_t midiNote;
94
95
  SR_DDR |= (1<<SR_PS) | (1<<SR_C);
96
  uart_init();
97
98
  scanKeys( prevKeys );
99
100
  while(1)
101
  {
102
    scanKeys( nowKeys );
103
104
    midiNote = MIDI_NOTE_C2;  // die erste Note im Manual
105
106
    for( uint8_t i = 0; i < NR_SR; i++ )
107
    {
108
      changed = nowKeys[i] ^ prevKeys[i];
109
      pressed = nowKeys[i];
110
111
      prevKeys[i] = nowKeys[i];
112
113
      if( changed != 0x00 )
114
      {
115
        for( uint8_t bit = 0; bit < 8; ++bit )
116
        {
117
          if( changed & 0x80 )
118
          {
119
            if( !(pressed & 0x80) )
120
              SendNoteOn( midiNote );
121
            else
122
              SendNoteOff( midiNote );
123
          }
124
          midiNote++;
125
          changed <<= 1;
126
          pressed <<= 1;
127
        }
128
      }
129
      else
130
        midiNote += 8;
131
    }
132
  }
133
}

Das ist der Code für ein Manual.

Jetzt brauche ich nur diesen Code für drei Manuale und Pedal und 
Schweller und Taster.

Den Schwellercode habe ich auch schon.
Siehe hier:
1
#include <avr/io.h>
2
#include <avr/io.h>
3
#define F_CPU 1000000              // 1 MHz
4
#define BAUD 31250                // MIDI-Baudrate (31,25kBit)
5
#include <util/setbaud.h>
6
void adc_init (void){
7
8
  //interne Referenzspannung
9
  //ADMUX = 0xC0;
10
11
  //AVCC
12
  //ADMUX = 0x40;
13
14
  //AREF
15
  ADMUX = 0xC0;
16
17
18
  ADCSRA = 0x80; //ADC aktivieren, Rest 0 setzen
19
20
  //ADCSRA |= 0x01; //Vorteiler 2
21
  //ADCSRA |= 0x02; //Vorteiler 4
22
  //ADCSRA |= 0x03; //Vorteiler 8
23
  //ADCSRA |= 0x04; //Vorteiler 16
24
  ADCSRA |= 0x05; //Vorteiler 32
25
  //ADCSRA |= 0x06; //Vorteiler 64
26
  //ADCSRA |= 0x07; //Vorteiler 128
27
28
  ADCSRA |= (1<<6); //Konvertierung starten
29
30
  while(ADCSRA & (1<<6)){}; //Kovertierung beendet
31
32
  uint16_t ergebnis = 0;
33
34
  ergebnis = ADCL;
35
  ergebnis += (ADCH<<8);
36
37
}
38
39
uint16_t adc_read (uint8_t kanal){
40
41
  static uint8_t init = 0;
42
43
  if(init==0){adc_init(); init++;} //beim ersten Aufruf zunaechst initialisieren
44
45
  ADMUX &= (0xE0); //Vorhandenen Wert fuer den Kanal loeschen
46
47
  //den Wert fuer den Kanal schreiben, dabei die vorderen 3 Bits vor evtl. fehlern schuetzen
48
49
  ADMUX |= (kanal&(0x1F));
50
51
  ADCSRA |= (1<<6); //Konvertierung starten
52
53
54
55
  while(ADCSRA & (1<<6)){}; //Kovertierung beendet
56
57
  uint16_t ergebnis = 0;
58
59
  ergebnis = ADCL;
60
  ergebnis += (ADCH<<8);
61
62
  return ergebnis; //Ergebnis zurueckgeben
63
64
}
65
66
int main(void){
67
  uint16_t schweller;
68
  uint16_t alterWert;
69
70
  uart_init();
71
  adc_init();
72
73
  alterWert = adc_read( 2 ) / 8;
74
  
75
  while( 1 )
76
   {
77
     schweller = adc_read( 2 ) / 8;
78
     if( schweller != alterWert )
79
     {
80
       alterWert = schweller;
81
82
       uart_putc(schweller);
83
     }
84
   }
85
}
86
  
87
void uart_init(void){
88
  UBRRH = UBRRH_VALUE;
89
  UBRRL = UBRRL_VALUE;
90
  
91
  #if USE_2X                  // U2X-Modus erforderlich
92
  UCSRA |= (1 << U2X);
93
  #else                    // U2X-Modus nicht erforderlich
94
  UCSRA &= ~(1 << U2X);
95
  #endif
96
  UCSRB |= (1<<TXEN);              // UART TX einschalten
97
  UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);  // Asynchron 8N1
98
}
99
100
void uart_putc(unsigned char c){
101
  while (!(UCSRA & (1<<UDRE))){}        // warten bis Senden moeglich
102
  UDR = c;                  // sende Zeichen
103
}
104
  
105
void Sendmidicontrol(void){
106
  uart_putc(176);          // Control-Comment
107
  uart_putc(100);          // Control # (0-127)
108
  uart_putc(100);          // Control Value (0-127)
109
}

Es soll insgesamt 3 Schweller geben, 3 Manual, 1 Pedal, 1 
Schieberegisterkette mit Tastern für die Setzersteuerung.

Die Pinbelegung vom Atmega8 isdt aus dem Schaltplan der Masterplatine zu 
entnehmen.
Muss ich die Codes jett einfach nur kopieren ?
Was schlägst du vor Karl Heinz?

Vielen Dank für deine/eure Bemühungen!!!!

Viele Grüße
Fabi

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Fabian Müller schrieb:

> Was schlägst du vor Karl Heinz?

Gerade erst gesehen.

Vorschlag:
zunächjst mal kümmern wir uns um die Manuals.
Dazu braucht es 3 Schieberegisterketten, für jedes Manual eines.
Die 3 Schieberegisterketten werden mit den Steuerleitungen parallel 
gehängt und gemeinsam ausgelesen, dann dauert das für alle 3 nicht 
wesentlich länger als nur für eines alleine.

Ich würde auch vorschlagen, die Setzer-Taster im Grunde wie ein Manual 
zu behandeln. D.h. da sind nicht 3 SR-Ketten, sondern deren 4. Auch wenn 
die 4.te hardwaremässig nicht voll ausgeführt ist. Macht aber nix. 
Programmintern tun wir einfach so, mit dem Bewusstsein, dass einge der 
'Tasten' Phantasiewerte aufweisen.

Vorschlag für den Anschluss
1
   +-------+
2
           |
3
      PB0  o---------------------+------> PS der Taster-SR Kette
4
           |                     |
5
      PB1  o------------------+--)------>  C der Taster-SR Kette
6
           |                  |  |
7
      PB2  o------------------)--)------> DATA der Taster SR-Kette
8
           |                  |  |
9
      PB3  o---------------+  |  |
10
           |               |  |  |
11
      PB4  o-------------+ |  |  +------> PS Manual 1        -+
12
           |             | |  |  |                            |
13
      PB5  o-----------+ | |  +--)------>  C Manual 1       SR-Kette
14
           |           | | |  |  |                            |
15
           |           | | +--)--)------> Data Manual 1      -+
16
           |           | |    |  |
17
           |           | |    |  |
18
   +-------+           | |    |  |
19
                       | |    |  +------> PS Manual 2        -+
20
                       | |    |  |                            |
21
                       | |    +--)------>  C Manual 2       SR-Kette
22
                       | |    |  |                            |
23
                       | +----)--)------> Data Manual 2      -+
24
                       |      |  |
25
                       |      |  |
26
                       |      |  |
27
                       |      |  +------> PS Manual 3        -+
28
                       |      |                               |
29
                       |      +--------->  C Manual 3       SR-Kette
30
                       |                                      |
31
                       +----------------> Data Manual 3      -+

Ist das bei dir hardwaremässig so möglich?
(Ich hoffe, du hast da deine Masterplatine noch nicht gebaut)

Die Manualplatine:
Würde ich nicht so machen.
Ich würde mir ein kleines Platinenmodul machen, auf dem EIN (maximal 2) 
Schieberegister sitzt. Ernsthaft.
Jedes dieser Module hat eine Stiftleiste als "Eingang" und eine 
Stiftleiste als "Ausgang". Jedes Modul holt sich die PS und die 
C-Leitung vom Eingang und schleift sie auf seinen Ausgang durch. Die 
Data-Leitung von der Ausgangsstiftleiste geht auf den Kaskadiereingang 
des Schieberegisters und der Datenausgang vom Schieberegister geht auf 
auf die Eingangsstiftleiste. Dazu natürlich noch Vcc und GND (wobei es 
nicht schadet, ,mehrere GND bzw. Vcc Leitungen auf dem Kabel zu haben, 
so dass zwischen jeder Signale-führenden Leitung jeweils eine Vcc bzw. 
GND Leitung liegt. 2-reihige Stiftleisten sind ideal dafür.

Die Module werden in der benötigten Anzahl pro Schieregisterkette 
mittels kurzer Flachbandkabel aneinander gesteckt, wobei die Module dann 
möglichst dicht an die Manual-Tasten kommen, für die sie zuständig sind.

d.h. die Module werden so aneinander gereiht
1
           +----------------+         +----------------+         +----------------+
2
   PS -----o----+-----------o---------o----+-----------o---------o----+-----------o-->
3
    C -----o---+|-----------o---------o---+|-----------o---------o---+|-----------o-->
4
 Data -----o--+||       +---o---------o--+||       +---o------------+||       +---o-->
5
           |  |||       |   |         |  |||       |   |         |  |||       |   |
6
           |  Schieregister |         |  Schieregister |         |  Schieregister |
7
           |                |         |                |         |                |
8
           +|-|-|-|-|-|-|-|-+         +|-|-|-|-|-|-|-|-+         +|-|-|-|-|-|-|-|-+
9
            | | | | | | | |            | | | | | | | |            | | | | | | | |
10
            v v v v v v v v            v v v v v v v v            v v v v v v v v
11
               8 oder 16                  8 oder 16
12
                Tasten                      Tasten

Jedes Rechteck ist ein Modul - eine Platine. Alle Platinen sind gleich 
und man kann 'beliebig' viele hintereinander schalten, je nachdem 
wieviele Eingänge in dieser Kette benötigt werden.
Dadurch, dass die Platinen auf die Art klein sind, kann man die auch 
problemlos fertigen. Und dadurch, dass die Verbindungen zwischen den 
Modulen problemlos ein paar Zentimeter lang sein können 
(Flachbandkabel), können die Platinen jeweils in unmittelbarer nähe der 
8 Tasten sitzen, für die sie zuständig sind. (oder 16 Tasten, wenn 
jeweils 2 Schieberegister auf einem Modul sitzen)

Pro Manual brauchst du also 8 derartige Model (oder 4, bei 2 SR pro 
Modul). Für alle 3 Manuals daher 24 Module (oder 12). Für die Taster pro 
8 Taster jeweils 1 weiteres Momdul (oder pro 16 Taster), wobei ich mir 
die Frage stelle, ob die Pedale im Prinzip ja auch einfach nichts 
anderes als Schalter sind und daher mit den Tastern mitgehen.
Willst du irgendwann man mehr Schalter und Taster, dann hängst du 
einfach ein weiteres Modul an diese Kette an, was durch die 
'standardisierten' Anschlüsse auch problemlos geht.

So würde ich das aufbauen, wenn ich den Platz in der vorgegebenen Orgel 
habe, entlang der Manuals jeweils kleine Platinen anbringen zu können.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Zu deinen Platinen.

Da haben wir wieder mal zum 3 millionsten mal den immer gleichen Fehler:
JEDES IC benötigt seinen Blockkondensator. Zwischen Vcc und GND gehört 
(möglichst dicht an das IC herangerückt) ein 100nF keramischer 
Kondensator.

Ohne diese Kondensatoren kann es funktionieren, muss aber nicht. Gerade 
bei derartigen Sachen, würde ich aber nicht auf 'kann' setzen, sondern 
auf Nummer sicher gehen. Blockkondensator hin und zumindest der Teil ist 
in Punkte 'Erhöhung der Zuverlässigkeit' erst mal abgehakt.
Die Blockkondensatoren stellen sicher, dass kleine Spannungseinbrüche, 
die durch kurzzeitig hohen Stromverbrauch eines IC entstehen, abgeblockt 
und am Ort des Entstehens ausgeglichen werden. Nicht ganz unwichtig, 
wenn im µC Arbeit verrichtet wird bzw. wenn ca. 30 Schieberegister 
gleichzeitig schalten. Da entstehen ganz schnell Stromspitzen, die das 
Netzteil mit Sicherheit nicht schnell genug ausregeln kann.

: Bearbeitet durch User
von Fabian F. (fabiii9)


Lesenswert?

Hallo,

viele Dank für deine Antwort.

Habe mich jetzt doch gegen den Selbstbau entschieden.
Es wird mir zu kompliziert.
Werde Platinen von WIRA oder Konsorten kaufen.

Gruß
Fabi

von Hobbyorganist (Gast)


Lesenswert?

Ich finde das Thema interessant, ich baue auch an einer Orgel und würde 
gerne den Zweck dieses Schieberegisters verstehen.

von Karl H. (kbuchegg)


Lesenswert?

Ein derartiger µC hat zuwenig Pins, als das man die Tasten der Manuals 
direkt anhängen könnte.
Die Schieberegister beheben das, indem sie sich zu einem bestimmten 
Zeitpunkt den aktuell Zustand jeder Taste merken und der µC dann die 
jeweiligen Zustände im Gänsemarsch an lediglich 3 Pins einlesen kann.

: Bearbeitet durch User
von Hi-Tech-Progger S. (Gast)


Lesenswert?

Falls das jemand liest und sich dafür interessiert:

Die Firma Döpfer hat ein fertiges System für bis zu 64 INs und OUTs und 
auf UCAPPS gibt es Projekte mit bis zu 128 IOs.

von Kamerad Butzelmann (Gast)


Lesenswert?

Nur so zur Information.

In der Zeitschrift "c't Magazin" 2005 Heft14,15,17,22 war mal eine 
Selbstbau Musik-Workstation "Klangcomputer ||" beschrieben. Sehr 
interessant aber aufwändig.

von Organist (Gast)


Angehängte Dateien:

Lesenswert?

Karl H. schrieb:
> Die Schieberegister beheben das, indem sie sich zu einem bestimmten
> Zeitpunkt den aktuell Zustand jeder Taste merken und der µC dann die
> jeweiligen Zustände im Gänsemarsch an lediglich 3 Pins einlesen kann.

Ich benutze diese hier in Handverdrahtung. Sind 1,50 das Stück.

Kennt jemand was Besseres? Z.b. eine komplette Kaskade für gleich 32 
Kanäle?

von schlumpf (Gast)


Lesenswert?

Naggige 595er hab ich schon fuer 3 ct/Stck per 30er Stange gesehn.

Das waeren aber wohl auch die flaschen.

Du brauchst Parallel-In Serial-Out.
Die 595er sind Serial-In und Parallel-Out!

von Organist (Gast)


Lesenswert?

Ja, richtig. Zum Ansteuern nach diesem Schema benötige ich aber beide 
Funktionen:

Beitrag "Re: 4x4 Matrix Tastatur am FPGA"

von Schlumpf (Gast)


Lesenswert?

Matrixtastaturen bei Musikinstrumenten sind Kaese.

Ausser Billigheimern macht sowas niemand ohne Not.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Organist schrieb:
> Ja, richtig. Zum Ansteuern nach diesem Schema benötige ich aber beide
> Funktionen:
Dass dieses "Schema" für deine Zwecke völlig untauglich ist, wurde in 
dem verlinkten Thread schon ausgiebig diskutiert. Es bringt nichts, wenn 
du noch ein paar weitere Threads damit beglückst.

Aber wenn du es UNBEDINGT so machen WILLST, dann mache es genau so. 
Fang einfach mal damit an und mach ein Funktionsmodell zum Lernen. So, 
wie du zur Zeit herumhampelst und dich in der Theorie und halbgaren 
Spekulationen verlierst, dauert das Jahre und wird nichts.

Schlumpf schrieb:
> Matrixtastaturen bei Musikinstrumenten sind Kaese.
Ganz meine Worte. Auf jeden Fall bei Einzelstücken. Wenn man 1 Million 
davon macht, dann sieht das evtl. anders aus...

: Bearbeitet durch Moderator
von Schlumpf (Gast)


Lesenswert?

Spaetestens wenn er denn mal wirklich 61 oder 73 oder womoeglich
sogar 88 Tasten an/in einer Matrix verknueppern muss, wird ihmchen
schon die Einsicht kommen.
Statt 8 oder 16 Leitungen (+GND) per Tastaturabschnitt, fuer eine
Tastatur ohne oder mit Anschlagdynamik, hat er dann mit einem wilden
Draht/Platinenverhau zu kaempfen.

Mein Beileid hat er dann nicht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Zum Glück hat ein Orgel keine Anschlagdynamik, aber da müssen noch viele 
andere Schaltkontakte (Register, Koppel,...) abgefragt werden. Und wehe, 
wenn man mal hinterher noch was erweitern will.
Mit vielen Schieberegistern hintereinander ist das kein Problem: die 
verteilten Schalter/Taster/Kontakte müssen nicht großartig verdrahtet 
werden, weil sie einfach auf dem kürzesten Weg zum (durchaus räumlich 
gesehen) nächsten Schieberegister verdrahtet werden. Und wenn die Mimik 
zu wenige Eingänge hat, weil noch was erweitert werden soll, dann hängt 
man einfach noch ein paar Schieberegister dahinter.

Es ist ja nicht so, dass ich sowas nicht schon ein paar Mal gemacht 
hätte und ins Blaue hinein fabulieren würde...

von Schlumpf (Gast)


Lesenswert?

> Mit vielen Schieberegistern hintereinander ist das kein Problem
Ja.

> räumlich gesehen
Genau deswegen.

Eine Matrix wuerde auch keine IOs an einem Controller/FPGA einsparen
sondern nur zusaetzliche belegen.

von Organist (Gast)


Lesenswert?

Schlumpf schrieb:
> Eine Matrix wuerde auch keine IOs an einem Controller/FPGA einsparen
> sondern nur zusaetzliche belegen.

Wieso denn das bitte?

Schlumpf schrieb:
> fuer eine
> Tastatur ohne oder mit Anschlagdynamik, hat er dann mit einem wilden
> Draht/Platinenverhau zu kaempfen.

Es geht auch nicht um die Tasten des Manuals, sondern nur um Schalter, 
die per Hand bedient werden und Funktionen steuern.

von Schlumpf (Gast)


Lesenswert?

Fuer die Abfrage von Tasten (gegen GND) mit einem Parallel-Seriellen-SR
braucht man nur Takt und Daten.

Macht genau 2 IOs.

Um die Tasten in einer Matrix abzufragen braucht man noch Ausgaenge.

Die muessen ja auch angesteuert werden.


> Wieso denn das bitte?

[Hier stand ein unfreundlicher Satz.]


> Es geht auch nicht um die Tasten des Manuals, sondern nur um Schalter,
> die per Hand bedient werden und Funktionen steuern.

Was da dran haengt ist den Schieberegistern weitgehend egal.

von Organist (Gast)


Lesenswert?

Schlumpf schrieb:
>> Wieso denn das bitte?
>
> [Hier stand ein unfreundlicher Satz.]

Wenn du eine sachliche Rückfrage nicht beantworten möchtest, dann lass 
es eben. Am Besten hälst Du Dich aus solchen Foren fern, wenn Du nicht 
kommunizieren kannst, oder willst.

Und noch dies:

Schlumpf schrieb:
> Matrixtastaturen bei Musikinstrumenten sind Kaese.
>
> Ausser Billigheimern macht sowas niemand ohne Not.

Nur so am Rande:
http://www.doepfer.de/DIY/Matrix_61.gif

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Organist schrieb:
> Nur so am Rande:
> http://www.doepfer.de/DIY/Matrix_61.gif
Na bitte, da hast du deinen Schaltplan. Du siehst da auch, wie die 
Dioden dort reinkommen.

Mach es genau so. An den Matrixleitungen kommen da dann auch keine 
Schieberegister, sondern direkt Portpins.

> Am Besten hälst Du Dich aus solchen Foren fern, wenn Du nicht
> kommunizieren kannst, oder willst.
Statt die Zeit für solche Ratschläge zu vergeuden solltest du einfach 
mal anfangen...

von Rolf S. (audiorolf)


Lesenswert?

Hobbyorganist schrieb:
> Ich finde das Thema interessant, ich baue auch an einer Orgel und würde
> gerne den Zweck dieses Schieberegisters verstehen.

Die Bauzeit scheint sich in die Länge zu ziehen! (2014)

Vielleicht hilft doch ein Blick auf MIDIBOX. Die haben eine Menge 
fertiger Projekte mit WIKI. Für mich steht das hier an:

http://midibox.org/forums/gallery/image/3455-seq-productsheet-twojpg/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.