Knight Rider Projekt - Neuling könnte Helfer gebrauchen

Hallo zusammen,

ich heiße Martin und wohne in Berlin. Ich besitze einen Nachbau von K.I.T.T. aus der Serie Knight Rider, den ihr im angehängten Foto sehen könnt. Der Pontiac Trans Am ist nicht nur außen, sondern auch innen originalgetreu nachgebildet und ca. zu 80% fertig.

Ich beschäftige mich seit zwei Wochen mit dem Arduino, um diverse Ideen für die Automatisierung und Steuerung umzusetzen. Gerade wo ich den Ausbau des cockpitartigen Amaturenbretts abschließe, kommen mir immer wieder etliche Projekte in den Sinn, die ich irgendwann angehen möchte. Denn KITT ist doch nur KITT, wenn er auch etwas kann, oder?

Ich arbeite derzeit eine Menge Literatur durch, um mich durchs Ausprobieren von Tutorials mit Schaltungen aller Art vertraut zu machen. Das macht durchaus Spaß. Elektrontechnische Grundkenntnisse sind ausreichend vorhanden. Allerdings würde ich gerne konkreter werden und eher beim Angehen eigener Projekte lernen.

Ich suche also versierte Online-Freunde aus der Arduino Welt, mit denen ich Ideen und Ansätze austauschen kann. Die mir helfen, kleine Hürden zu überspringen und mich auf den richtigen Weg lotsen. Ich bin gut im Recherchieren, ebenso im schnellen Erlernen von Dingen. Doch manchmal weiß man einfach nicht, wo man anfangen muss zu suchen. Das kennst du sicher von deiner Anfangszeit?

Also, Lust mir zu helfen? Schreib mir eine Nachricht. Auf Facebook, per eMail oder hier.

Freue mich auf Kontakte. DANKE! Martin

DonBusko:
... Freue mich auf Kontakte. ...

Ich weiß zwar nicht, ob ich helfen kann und ich lese auch nur hier im Forum mit, aber da ich jetzt auf Dein Posting geantwortet habe, bekomme ich Nachricht, wenn in Deinem Thread etwas los ist. Wenn Du mit einer konkreten Aufgabenstellung kommst und mir etwas dazu einfällt, klinke ich mich ein.

Gruß

Gregor

hi,

na dann herzlich willkommen im forum und schreib' halt, wenn Du was wissen willst. sind viele hilfsbereite leutchen hier.

gruß stefan

Ohne weiter rein zu schauen. Es gibt Audio Chips für den Arduino, die man programmieren kann. Sprachbefehle braucht KITT doch wohl oder? :wink:

Hallo,

wir brauchen kein Fratzenbuch und auch keine Werbung von dir. Wenn du Fragen rund um den Arduino hast dann darfst du sie gerne hier im Forum stellen. Dann wird jedem mit besten Wissen und Gewissen auch geholfen. Nur so eine Hintertür Werbung für FB kann ich persönlich absolut nicht leiden. Dafür hasse ich diese zu sehr. Soll nicht heißen das du FB nicht verwenden darfst.

Doc_Arduino:
... wir brauchen kein Fratzenbuch und auch keine Werbung von dir. ...

Für eine Begrüßung ist das ein bisschen spröde ...

Doc_Arduino:
Dafür hasse ich diese zu sehr. Soll nicht heißen das du FB nicht verwenden darfst.

... aber FB gehört auch meiner Meinung nach ins Klo. Wie Windows, Google, die NSA und noch ein paar andere.

Und ich dachte schon, ich sei mit dieser Meinung allein :slight_smile:

Gruß

Gregor

Hallo,

ich bin sonst nicht so, aber der letzte Satz

Also, Lust mir zu helfen? Schreib mir eine Nachricht. Auf Facebook, per eMail oder hier.

sagt mir, dass er hier keine Fragen stellt, sondern nur irgendwelche Kontakte sammeln und Leute auf seine FB Seite locken möchte. Er hat sich vorgestellt mit keiner einzigen Frage. Im Pontiac Forum wäre er damit besser aufgehoben. Ein K.I.T.T. Forum gibts sicherlich auch. Ganz ehrlich.

Fragen rund um Arduino darf er natürlich gern stellen. Logisch.

Doc_Arduino:
ich bin sonst nicht so ...

Eieiei ... meine Laune ging heute auch schon mächtig auf Talfahrt. Manchmal genügt dazu ein einziger Satz (wenn er nur ordentlich blöd ist).

Gruß

Gregor

PS: Es ist WE! Noch den ganzen Tag!!!

Hallo zusammen,

danke für die ersten Antworten, wenngleich ich mich über so manchen Kommentar gewundert habe. Ich persönlich lege größten Wert auf einen angemessenen Umgangston und freue mich sehr, wenn mir auch dem entsprechend geantwortet wird.

Ich schreibe die interessierten Kommentatoren gleich privat an und freue mich auf Austausch.

Danke fürs erste. Weitere Interessenten sind herzlich wilkommen.

Martin

Hallo Martin,

ich finde dein Projekt interessant und werde hier (und nur hier) mal mitlesen.. vielleicht kann ich bei konkreten Fragen auch mal helfen...

hi,

martin, das meint keiner böse, es ist nur unüblich hier, daß im forum angefragt wird, und dann wird's auf eine andere plattform gezogen.

auch ist es unüblich, daß per PN gearbeitet wird, es soll alles öffentlich ablaufen, jeder hier will teilhaben, mitmachen, lehren, lernen.

also nochmal: herzlich willkommen!

gruß stefan

DonBusko:
Ich schreibe die interessierten Kommentatoren gleich privat an und freue mich auf Austausch.

Damit machste dir so richtig viele Freunde. Schade das du meine direkte Art nicht verstanden hast.
Ich frage mich ganz ehrlich was das hier soll? Du stellst keine einzige Frage aber suchst wie wild nach Kontakten? Kommt mir vor wie ein Schneeballwerbesystem.
Ideenaustausch funktioniert am besten auf einer offenen Plattform. Zum Bsp. in einem Forum. Erstmal egal welches. Im dunklen klappt das nicht. Aber wem sage ich das ... bist alt genug.

Leute, ich bin neu hier und kenne die Gepflogenheiten nicht. Danke an die, die es vernünftig erläutern und mir keine merkwürdigen Verschwörungen unterstellen :wink:

Also:

Das ich per PN die ersten Fußstapfen setzen wollte hatte einen gut gemeinten Grund: Ich hatte vermutet, dass ein Forum nicht dafür da ist, wegen jedem Kram vollgespamt zu werden und man nur sehr konkrete Projekte oder Anfragen öffentlich postet. Statt dessen kleinere Fragen oder Anregungen in PN austauscht und dafür interessierte Bekannte kennenlernt.

Wenn dem nicht so ist, dann weiß ich das jetzt. Dann poste ich öffentlich wenn ich Hilfe brauche, auch wenn das nur ne Kleinigkeit ist.

Martin

Irgendwann kommt jeder zum ersten mal mit einem Forum in Berührung und weiß noch nicht wie es funktioniert.

Einfach gesagt, Martin: Es ist ein Stammtisch, einer fragt was, alle anderen antworten und bringen neue Ideen mit ein... Wenn du mit jedem einzelnen vor die Tür gehst und ein 4- Augen- Gespräch führst, wirst du nichts sinnvolles zustande bringen...

Hallo,

hier kommen jeden Tag Kleinigkeiten um die Ecke - wir leben alle noch. :slight_smile:
Genau wie MaHa76 es beschreibt ist es. Wie im echten Leben.
Entschuldigung für die Unterstellung. :confused:

DonBusko:
Doch manchmal weiß man einfach nicht, wo man anfangen muss zu suchen.

Zum Testen ist ein UNO mit Steckbrett gut geeignet. Die machanisch kleinen Brüder sind der Nano und der ProMini. Eine Schippe mehr Leistung bringt der teensy 3.2. Auch mehrere Arduinos können zusammenarbeiten. Porterweiterungen gibt es beispielsweise über den I2C-Bus.

APA102C oder WS2812B sind einfach anzusteuernde LED-Streifen (Bibliothek Fastled mit schönen Beispielen). Bei mir hängen davon 2 x 5m mit je 300 Lichtpunkten im Keller. Könnte ich mir gut für den Innenraum vorstellen.

Soundmodul wurde schon erwähnt.

Ein Grafikdisplay (TFT) gehört eigentlich auch dazu, Touch mußt Du ja nicht verwenden.

Wichtig im Auto ist eine saubere Spannungsversorgung mit 5V, da die 12V im Auto schwanken und möglicherweise mit Spannungsspitzen verseucht sind. Da helfen gute Filter und ggf. StepDown-Wandler.

Bei Bedarf liefere ich Links gerne nach.

Willkommen am Stammtisch!

Okay... dann nehme ich mal am Stammtisch platz. Ein Bier bitte! Es geht los...

Woran ich gerade arbeite:

Im Anhang habe ich euch einen Screenshot des Armaturenbretts von KITT begelegt. Die grünen Pfeile in der totalen Ansicht zeigen vor dem Fahrer 3 Anzeigeleuchten, von der eine leuchtet und auf der rechten Seite eine Reihe von roten Schaltern. Drei von diesen Schaltern tragen die gleiche Bezeichnung wie die Anzeigeleuchten und schalten diese.

Das Prinzip könnte einfacher nicht sein: Drücke ich den Schalter "Normal", leuchtet die Anzeige "Normal" auf. Drücke ich "Auto", schaltet sich "Normal" ab und die Leuchte schaltet auf "Auto". Das gleiche ebenso mit "Pursuit". In der Serie steuerte Michael Knight damit den Modus von KITT.

Der entsprechende Sketch war mein erster und ich hoffe ich habe soweit alles richtig gemacht. Auf dem Breadboard klappt das mit LEDs super. Code weiter unten. Gerne Kommentare dazu. Nun möchte ich den Code langsam um Funktionen erweitern und natürlich dazu lernen.

Hier mein nächster Schritt, bei dem ich aber nicht recht weiß, wo ich anfangen soll:

Ich würde gerne einen "Demomode" implementieren, der die Anzeige automatisch alle 20 Sekunden hin und her schalten lässt, als würde KITT das selbst machen. Das ist ein Blickfang, wenn der Wagen irgendwo steht.

Ich möchte also...

... den Demomode einschalten, indem ich eine der Tasten mehr als 2 Sekunden gedrückt halte und diesen wieder verlassen, wenn ich wieder eine der Tasten kurz drücke.

...nach Einschalten des Demomode eine dauerhafte Schleife laufen lassen, bei der selbsttätig alle 20 Sekunden hin und her geschaltet wird. Am besten Random. Bis ich diese eben wieder verlasse.

Ich bin mir nicht sicher...

...wie ich in meinem Loop eine eigene Schleife implementiere. So eine Art Loop im Loop.

...wie ich das mit dem lange gedrückten Schalter hinbekomme.

Bitte helft mir. Ich welche Themen muss ich mich einarbeiten? Wo fange ich an?

Danke euch, Martin

P.S. Hier der bisherige Code für die Ansteuerung von LEDs auf dem Breadboard:

// PANP Steuerung der Knight Rider Voicebox

int stat_auto=0;        // Status Speicher für Taste Auto
int stat_norm=0;        // Status Speicher für Taste Normal
int stat_purs=2;        // Status Speicher für Taste Pursuit

int light_auto=8;       // Ausgang Auto-Licht   
int light_norm=9;       // Ausgang Normal-Licht  
int light_purs=10;      // Ausgang Pursuit-Licht  

int taster_auto=4;      // Eingang Auto-Taster  
int taster_norm=5;      // Eingang Normal-Taster  
int taster_purs=6;      // Eingang Pursuit-Taster 

int buzzer=7;              // Piezzo Buzzer lässt Tastendruck erklingen. Nur temporär. Später über DTMF Generator. 

void setup() 
{
 pinMode(light_auto, OUTPUT);     // Folgende Befehle setzen die LED Pins auf Ausgang
 pinMode(light_norm, OUTPUT);
 pinMode(light_purs, OUTPUT);

 pinMode(taster_auto, INPUT);     // Folgende Befehle setzen die Taster Pins auf Eingang
 pinMode(taster_norm, INPUT);
 pinMode(taster_purs, INPUT);

 digitalWrite(light_norm, HIGH);  // Sorgt dafür, dass Normal Light als Standard eingeschaltet wird

}

void loop() {

stat_auto=digitalRead(taster_auto);  // Folgende Befehle speichern den letzten Schalterzustand
stat_norm=digitalRead(taster_norm);
stat_purs=digitalRead(taster_purs);

if (stat_auto == HIGH)  
// If-Routine schaltet Auto Licht ein, wenn Auto Schalter gedrückt wird, die anderen aus.
 {
   digitalWrite(light_auto, HIGH);
   digitalWrite(light_norm, LOW);
   digitalWrite(light_purs, LOW);
   tone(buzzer, 500, 150);

 }
 
if (stat_norm == HIGH)
// If-Routine schaltet Normal Licht ein, wenn Normal Schalter gedrückt wird, die anderen aus.
  {
   digitalWrite(light_auto, LOW);
   digitalWrite(light_norm, HIGH);
   digitalWrite(light_purs, LOW);
   tone(buzzer, 650, 150);
  }

if (stat_purs == HIGH)
// If-Routine schaltet Pursuit Licht ein, wenn Pursuit Schalter gedrückt wird, die anderen aus.
  {
   digitalWrite(light_auto, LOW);
   digitalWrite(light_norm, LOW);
   digitalWrite(light_purs, HIGH);
   tone(buzzer, 550, 150);
  }

}

Natürlich Anhang vergessen. Hier ist er

KRFotos_2013_11_27 (254).jpg

Mach mal bitte ein Liste welche Eingangsgrößen du hast, was mit diesen gemacht werden soll und was deine Ausgabeelemente sind.... ich verstehe aktuell noch nicht so ganz was passieren soll - klar - die Serie hab ich damals gesehen.... aber erinnern kann ich mich an kaum etwas....

DonBusko:
… und ich hoffe ich habe soweit alles richtig gemacht …

“Ein Sketch, der tut, was er soll, ist ein guter Sketch!” wurde mit hier geschrieben, gebe ich so weiter.

Optimierungsansätze:

bool stat_auto=LOW;

Ein Taster hat nur HIGH oder LOW.

const int light_auto=8;

Das ändert sich nicht und spart so Speicher.

pinMode(taster_auto, INPUT_PULLUP);

spart externe PullUp-Widerstände. Taste gegen Masse schalten.

DonBusko:
So eine Art Loop im Loop.

Nö, nimm loop als Schleife. Nichtblockierende Programmierung ist angesagt.

Themen: Endlicher Automat (Ablaufsteuerung), Zeiten mittels millis().

Prost :smiley: