go seven !

Teil 4: Heimfahrt und Fazit – Tag 6 bis 8

Jeder Urlaub geht vorbei. Dann folgt die Heimfahrt – wieder per Fähre (Malmö -> Travemünde). Zuvor eine 107km lange Fahrt durch Schweden, davon etwa 35km auf Schotterpiste (weil ich es kann). Die Fähre führ gegen 22:45 mit leichter Verspätung los und kam gegen 7 Uhr am nächsten Morgen an, pünktlich. Es folgte ein ausgiebiges Frühstück beim Bäcker in Travemünde, dann die Überfahrt mit der (kleineren) Fähre über die Trave.

450er
Fein geputzt, nach der Ankunft 😉

Von dort aus fuhr ich für einen Besuch nach Wolgast auf Usedom (ja, ein Teil der Stadt ist AUF Usedom) und übernachtete dort. Am Sonntag nachmittag (nach 2 super Strand-Besuchen) ging der längste Teil der Fahrt an einem Stück los, der in die Heimat nach Westsachen. 540km am Stück, in denen ich nur 2 mal zum Tanken anhielt (ja, da machen sich die 18 Liter des 450ers bemerkbar 😉 ).

In der Heimat angekommen kam die Probe aufs Exempel: Was sagt der Ölstand? Hintergrund ist, dass die alten Smart mit zunehmender Laufzeit immer mehr Öl verbrauchen, was auf einen baldigen Motor-Tod hinweisen kann. Die Strecke insgesamt der Woche betrug etwa 1000km, also kann man gut ermitteln, was verbraucht wurde. Doch es folgte Erleichterung – ein Rückgang des Ölstands war nicht zu erkennen (vielleicht zu erahnen, also maximal 75ml). Ein gutes Zeichen, mit dem ich diese Reihe beende.

PS: Auf meinem Tacho steht gerade eine Schnapszahl. Aber so viel will ich definitiv nicht trinken!

Smart 450 CityCoupe mit Startknopf ausrüsten

Ja, ich habe es wieder getan. In meinem Smart steckt wieder ein Startknopf.

IMG_20150416_193513032

Doch diesmal habe ich mich gegen eine „analoge“ Variante entschieden und das Ganze mit einem Mikrocontroller verbunden. Hier seht Ihr den Prototyp:

IMG_20150327_201120128

In dem Taster ist auch ein LED-Ring (5V) – dieser zeigt die unterschiedlichen Funktionszustände an. Eine grobe Übersicht über meinen Aufbau habe ich hier mit Fritzing dargestellt:

auto_eingebaut_Steckplatine

Der Schaltplan sieht wie folgt aus:

auto_eingebaut_Schaltplan

Zu beachten ist hierbei, dass Taster und LED getrennt (also Symbolisch) vorhanden sind. Die Relais steuern die beiden Pole an, die ich hier beschreibe.

Den Quellcode für den Mikrocontroller gibt es auch noch:

const int zuendung_relay = 4; //Zündungs-Relay-PIN
const int starten_relay = 5; //Start-Relay-PIN
const int led_pwm = 6; //Taster-LED per PWM
int count = 0;
int scount = 0;
const int taster = 7;
boolean zuendung = false; //TRUE=EIN / FALSE=AUS
boolean starten = false; //TRUE=Startet gerade / FALSE=wurde gestartet oder ist aus
boolean gestartet = false; //TRUE=Motor läuft / FALSE=MOTOR AUS
boolean ladespannung = false; //TRRUE=größergleich 13,5V / FALSE=unter 13,5V
boolean halten = false; //
boolean countreset = false;
boolean startprozess = false;
#include 
elapsedMillis tasterdruck = 0;
elapsedMillis startwait = 0;
elapsedMillis serialsend = 0;
elapsedMillis blinker_standby = 0;
elapsedMillis fader_starten = 0;
elapsedMillis warten_befehl = 0;
void setup() {
 pinMode(zuendung_relay, OUTPUT);
 pinMode(starten_relay, OUTPUT);
 
 pinMode(taster, INPUT_PULLUP); //WICHTIG
 Serial.begin(9600);
}
void loop() {
//Taster-halten-Zeit messen
 if (digitalRead(taster)==LOW && halten==false) {
 tasterdruck=0;
 halten = true;
 } 
 //Taster-halten zurücksetzen
 if (digitalRead(taster)==HIGH && halten==true && tasterdruck > 10) { //&& tasterdruck < 500  halten = false;  tasterdruck=0;  count = count + 1;  }    //Zähler Zurücksetzen & Schieben  if (tasterdruck > 2000) { //zeit seit letzten tasterdruck > 2s
 if (count!=0) { //wenn da ist eine zahl...
 scount = count; //schieben & nullen
 }
 count = 0; //sonst 0 bleiben 
 } 
 //Zündung
 if ((scount==1 && zuendung==false)/* || (do_befehl1==true && zuendung==false)*/ ) {
 zuendung = true;
 Serial.println("Zuendung AN");
 scount=0;
 do_befehl1=false;
 checksummeok=false;
 }
 //Zündung und Start
 if (scount==2 && zuendung == false) {
 zuendung = true;
 startwait = 0;
 startprozess = true;
 scount=0;
 Serial.println("Zuendung AN");
 }
 if (scount==2 && zuendung == true) {
 startwait = 0;
 startprozess = true;
 scount=0;
 Serial.println("Zuendung AN");
 }
 if (startwait > 1000 && startprozess < 2000 && startprozess == true) {  starten = true;  Serial.println("Starten AN");  }  if (startwait > 2000 && startprozess == true) {
 startprozess = false;
 starten = false;
 Serial.println("Starten AUS");
 }
//Ausschalten
 if ((scount==3 && zuendung == true) /*|| (do_befehl3==true && zuendung == true)*/) {
 zuendung = false;
 Serial.println("Zuendung AUS");
 scount=0;
 analogWrite(led_pwm, 0);
 do_befehl3=false;
 checksummeok=false;
 send_off=true;
 } 
 /* RELAY-BEREICH */
 //Zündungs-Relay-Einschalten
 if (zuendung==true) {
 digitalWrite(zuendung_relay, LOW);
 }
//Zündungs-Relay-Ausschalten
 if (zuendung==false) {
 digitalWrite(zuendung_relay, HIGH);
 }
 //Start-Relay-Einschalten
 if (starten==true) {
 digitalWrite(starten_relay, LOW);
 }
 //Start-Relay-Ausschaten
 if (starten==false) {
 digitalWrite(starten_relay, HIGH);
 } 
 /* DIAGNOSE-BEREICH */
 if (serialsend > 1000) {
 Serial.print(count);Serial.print(" ");Serial.println(scount);
 serialsend = 0;
 }
 /* LED-BEREICH */
 if (blinker_standby > 9800 && blinker_standby < 10000 && zuendung == false) {  analogWrite(led_pwm, 10);  }  if (blinker_standby > 10000 && zuendung == false) {
 analogWrite(led_pwm, 0);
 blinker_standby = 0;
 }
 if (zuendung == true && starten == false) {
 analogWrite(led_pwm, 255);
 }
 if (starten == true) {
 for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) { 
 analogWrite(led_pwm, fadeValue); 
 delay(10); 
 }
 for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=10) { 
 analogWrite(led_pwm, fadeValue); 
 delay(10); 
 } 
 }
}

Und nun noch den Prototyp als Video:

Nun noch einen rechtlichen Hinweis:

Das hier vorgestellte hat, wenn es von euch gebaut wird, keine E-Nummer und ist nicht in der STVO zugelassen. Durch eine Einzelabnahme des TÜV könnt ihr dies ändern. Eventuelle Schänden oder getötete Kätzchen habt ihr zu verantworten, ich übernehme weder Garantie oder Haftung.

Advaboard – TFT-Display, Touchscreen, RTC, 5V-I/Os, I2C, SPI, RS-485, Power-Management und viel mehr für den Raspberry Pi

Ja, die Überschrift ist etwas lang. Aber das hat seinen Grund. Denn das Advaboard vereint alle meine Wünsche, die ich bezüglich eines Breakoutboards habe. Ich habe es Anfang der Woche bestellt und werde es Ende dieser Woche erhalten. Dann gibt es natürlich weiteres Review, hier soll aber schon etwas vorgegriffen werden. Deshalb erstmal ein paar technische Details:

  • TFT-Display-Schnittstelle für TFT-Display inkl. Touchscreen
  • Echtzeituhr (optional batteriegepuffert)
  • erweiterte Schnittstellen
    • I2C, erweiterter SPI
    • Digital- und Analog-I/Os
    • RS-232, RS-485
  • 5V-tolerante Ein-/Ausgänge (außer I2C)
  • Power-Management / Batteriebetrieb
  • Softwarebibliothek + Beispielprogramme (super Dokumentation!!!)
  • Framebuffer- und Touchscreen-Treiber für Linux
  • JTAG-/C2-Programmer
  • optionale Peripherie: Sensoren, Erweiterungsplatinen, Displays, Automatisierungskomponenten (z.B. Motoren), Messtechnik

advaboard-rpi1_TFT32_desktop.1024Im Bild seht ihr, wie ein (optional günstig erhältlicher) Touchscreen direkt per X11 angesteuert wird. Es gibt also einen Treiber dafür – es werden sogar bis zu 30fps erreicht, für Videos und Games ist dies natürlich nicht gedacht, eher um als eine Art HMI verwendet zu werden. Auch dafür gibt es Softwarebesipiele die den einstieg erleichtern.

Was plane ich?

Ich möchte dies mit meiner GPIO-Control kombinieren, um den PI besser zur Hausautomatisierung zu verweden. Man soll (simpel gesagt) die Relais per Touchscreen schalten können, gleichzeitig auch Zustand von digitalen und analogen Inputs auslesen können (um beispielsweise die Feuchtigkeit in der Erde meiner geliebten Pflanze zu messen). Das wird natürlich nicht in 10 Minuten gehen und ein wenig Entwicklungszeit erfordern. Dank der guten Dokumentation und des schnellen technisch versierten Support sollte es aber keine großen Probleme geben (wie ich sie beispielsweise zu Anfang beim CubieBoard hatte).

Galvanaische Trennung der Masse

Viele Nutzer eines Verstärkers kennen das Problem: Im SOund der Anlage „spiegelt“ sich die Motordrehzahl in einem Knattern. Dioeses Rührt oft von einer alten / kaputten oder aber minderwertigen Lichtmaschine oder einer Fehlverkabelung. Doch in manchen fällen kann es auch einfach sein, dass alles in Ordnung ist, oder man nichts ändern kann oder will – und trotzdem Muss diese sogenannte Masseüberlagerung ( oder Masseschleife) weg – so professionell als möglich. Mich als Elektrotechniker (zweites Schuljahr mit Abitur) interessieren nun natürlich die Hintergründe, die elektrischen Bauteile und Möglichkeiten.

Der eigentlich einzige Weg zur entfernung dieses Signals ist die soganannte galvanische Trennung der Masse – sprich die Teilung in 2 einzelne Stromkreise, zwischen denen auf Audiobasis kein Strom fließt, aber trotzdem eine Energie übertragen wird. Da nun Dinge wie mechanische Übertragung oder chemische Energieformen ausfallen bleibt kaum noch Auswahl – die magnetische Übertragung bleibt übrig. Und was fällt einem da ein? Klar: Der Transformator -in der Ausiotechnik in diesem Fall auch oft einfach Übertrager genannt. Allerdings ist dies nicht die einzige Möglichkeit. Auch andere, aber sicher schwierigere Wege sind denkbar:

  • Optokoppler (Tonübertragung per Licht; oft schon in PC’s oder HiFi-Anlagen)
  • Kondensatoren (per rein elektrischen Feld)
  • Funkkopplung (per Elektromagnetischem Signal)

Hier ein simpler Entstörfilter auf Basis von magnetischer Übertragung (Schema):

Ich habe das auch für meinen Smart gebraucht – allerdings in Kombination mit einer Umwandlung vom „normaler“ Radio-Lautsprecher-Ausgang zu Cinch – wegen meines Verstärkers. Deshalb habe ich zu folgendem gegriffen:

PT

Apple darf in Deutschland nicht mehr verkaufen – oder doch?

Aus einem kürzlich veröffentlichtem Dokument der siebten Zivilkammer des landgerichtes Mannheim geht hervor, dass Apple in Deutschland keine seiner mobilen Produkte (iPhone, iPad…) mehr verkaufen darf – so jedenfalls sehen das die gängigen Medien. Doch stopp – schon auf der ersten Seite des oben genannten Papiers lässt sich vermuten, dass hier etwas faul ist. Denn als Beklagter (umgangssprachlich „Angeklagter“) wird nicht Apple Deutschland, sondern die „Apple Inc. 1 Infinite Loop, Cupertino, CA, 95014/USA“ angegeben. Und gegen eben diesen Posten in den USA wurde folgendes Urteil erlassen:

A.l.     Die Beklagte wird verurteilt,
1 .a)     es zu unterlassen, im Gebiet der Bundesrepublik Deutschland mobile Gerate
anzubieten und/oder zu liefern,
die zur Durchführung des folgenden Verfahrens ausgebildet sind:
Verfahren zur Verwendung in einem drahtlosen Kommunikationssystem zum
Senden elnes Kommunikationssignals, das eine Vielzahl von Blöcken von Infor-
mationen umfasst, wobei das Verfahren die folgenden Schritte umfasst:
Senden der Vielzahl von Blöcken von Informationen über eine vorbestimmte
Anzahl von Kanalressourcen;
Bestimmen einer Anzahl aus der Vielzahl von Blocken, die noch gesendet
werden mussen;
wobei das Verfahren durch folgende Schritte gekennzeichnet ist:
basierend auf der vorbestimmten Anzahl von Kanalressourcen, Anpassen
der Anzahl aus der Vielzahl von BlOcken, die noch gesendet werden rnUssen,
urn eine angepasste Anzahl ubrigbleibender Blöcke zu erzeugen; und
Senden der angepassten Anzahl von Blöcken, die dem drahtlosen Kommu-
nikationssystem übrig bleiben
(EP 1 010 336 BI, Anspruch 1, mittelbare Verletzung).

[Quelle: Siehe oben]

Demnach lässt sich schlussfolgern, dass „Apple Inc. 1 Infinite Loop, Cupertino, CA, 95014/USA“ keine Geräte mehr in Deutschland verkaufen darf. Allerdings sind außnahmslos alle Apple-Stores und Versandhäuser der Apple Germany (vormals Apple Deutschland genannt) unterstellt, gegen die zwar von Motorola auch geklagt wurde, allerdings bisher kein Urteil gefallen ist.

Ein rechtlicher Schritt bleibt allerdings noch: Der Apple Online Shop wird von „Apple Inc“ betrieben – was sich auf  „Apple Inc. 1 Infinite Loop, Cupertino, CA, 95014/USA“ wie es oben in dem Urteil heißt, bezieht. Demnach dürfte Apple darüber keine mobilen Geräte mehr verkaufen. Die Strafe dagegen ist allerdings nunja – gering.

1.b)     Fur jeden Fall der Zuwiderhandlung gegen das Verbot gem.-Ag Ziff. A.l.1.a) wird
der Beklagten Ordnungsgeld bis Euro 250.000, ersatzweise Ordnungshaft, oder
Ordnungshaft bis zu 6 Monaten angedroht, wobei die Ordnungshaft an den ge-
setzlichen Vertretern der Beklagten zu vollziehen ist.

[Quelle: Siehe oben]

Die 250.000 Euro zahlt Apple aus der Portokasse…

PT