Lichtsteuerung & mehr mit Arduino

  • Hallo Zusammen


    Auf Vorschlag des Users donaldsneffe eröffne ich diesen Thread um über Lichtsteuerungen auf Arduino-Basis zu berichten, welche ich nun in 2 Projekten genutzt habe. Dabei wird nicht nur das Licht gesteuert, sondern auch viele andere Dinge wie z. B. Lipo-Überwachung, Schaltgetriebe oder Sound. Das habe ich zwar nun schon in den Modell-spezifischen Threads beschrieben, aber bei über 100 Seiten (bei WPL) geht das einfach unter. Und das Prinzip ist ja auch für andere Modelle nutzbar.


    Ich werde also in den nächsten Posts hier in diesem Thread die Infos aus den Modell-spezifischen Threads zusammenfassen. Das wären dann die Steuerungen für den WPL C24 (Toyota Hilux) im Maßstab 1/16 und den Orlandoo Jeep Wrangler im Maßstab 1/35.


    Gruß

    RCfreund

  • Auswahl des Arduino Boards


    Für beide Projekte (WPL und Orlandoo) nutze ich das "Pololu A-Star 32U4 Micro" welches zur einfachen Programmierung eine Micro USB-Buchse drauf hat. Das Board ist incl. USB-Buchse nur 27 x 15 mm groß, bietet 18 frei programmierbare Ein-/Ausgänge und ist so super auch für kleine Modelle geeignet:

    https://www.pololu.com/product/3101


    Das Board kostet knappe 11€. Natürlich geht es auch noch billiger oder ohne USB-Anschluss noch kleiner. Aber mir war es wichtig, dass ein USB-Anschluss on board ist, die Qualität stimmt und ich es auch in Deutschland schnell bekommen kann. Die Firma Pololu stellt Bauelemente und Boards für Robotertechnik her. Damit habe ich mich das letze halbe Jahr intensiv beschäftigt und einige Pololu Produkte in einem kleinen Roboter verbaut. Insbesondere auch die umfangreiche Dokumentation der Produkte hat mich überzeugt.


    Das Arduino Board von Pololu kann man in Deutschland z. B. bei EXPtech beziehen:

    https://www.exp-tech.de/plattf…/pololu-a-star-32u4-micro


    Zur Programmierung ist die Standard Arduino Programmierumgebung (IDE) sowie ein spezieller boardspezifischer Treiber für den PC erforderlich. Wer sich noch nicht mit Arduino befasst hat, die Arduino IDE kann man sich hier herunterladen:

    https://www.arduino.cc/en/Guide/HomePage

    Den boardspezifischen Treiber für das Pololu Arduino Board gibt es hier:

    https://www.pololu.com/product/3101/resources


    Die Installation des Treibers und die Einbindung in die Arduino IDE ist im umfangreichen User Guide beschrieben:

    https://www.pololu.com/docs/0J61


    Von den 18 Ein- / Ausgängen können 7 Pins als PWM Ausgänge konfiguriert werden. D. h. damit können LEDs gedimmt, und mit unterschiedlichen Helligkeiten betrieben werden. Oder daran kann alles angeschlossen werden, was auch an einen normalen RC-Empfänger angeschlossen werden kann, z. B. Servos, RC-Switches, Soundmodule etc. 8 Pins von den 18 Ein- / Ausgängen können auch als Analogpins fungieren. Damit kann man also Spannungen messen, was sich z. B. zur Überwachung der Akku-Spannung anbietet.


    Laut Angabe des Herstellers kann das Board mit +5V über die USB-Buchse oder mit 5,5V bis 15V über den Pin VIN betrieben werden. D. h. man kann es direkt an einen 2S oder 3S LIPO anschließen. Es hat einen 5V-Spannungswandler eingebaut, welcher maximal 100mA liefern kann. Diese 5V sind auch auf einen Pin herausgeführt. Der Eigenverbrauch liegt bei ca. 25mA. D. h. man könnte maximal noch 75mA für LEDs verwenden. Das ist natürlich nicht so toll. Man sollte seine LEDs also besser mit einem passenden Vorwiderstand an die +5V des BECs anschließen.


    Wichtig ist natürlich auch, wieviel Strom ein einzelner Ausgang liefern kann. Im Datenblatt des Microcontrollers steht dazu auf Seite 383ff:

    - DC Current per I/O Pin: 40.0mA

    - DC Current VCC and GND Pins: 200.0mA


    Einschränkend kommt aber noch hinzu:

    Although each I/O port can source more than the test conditions (20mA at VCC = 5V, 10mA at VCC = 3V) under

    steady state conditions (non-transient), the following must be observed:

    1)The sum of all IOH, for ports A0-A7, G2, C4-C7 should not exceed 100mA.

    2)The sum of all IOH, for ports C0-C3, G0-G1, D0-D7 should not exceed 100mA.

    3)The sum of all IOH, for ports G3-G5, B0-B7, E0-E7 should not exceed 100mA.

    4)The sum of all IOH, for ports F0-F7 should not exceed 100mA


    Was heißt das nun in der Praxis? Man liegt auf der sicheren Seite, wenn der Ausgangsstrom pro Pin mit einem passenden Vorwiderstand auf 12,5mA begrenzt wird. Möchte man mehr Strom ziehen, muss man sich genau anschauen, welche LEDs gleichzeitig eingeschaltet sind (pro Port nicht mehr als 100mA). Besser ist es aber in dem Fall das Signal mit Transistoren, FETs oder z.B. mit einem Darlington Array (z.B. ULN2003A mit 7 Darlingtons) zu verstärken.


    Bei meinen Projekten für den WPL C24 und den Orlandoo Jeep Wrangler habe ich die Vorwiderstände so bemessen, dass ich auf eine aktive Verstärkung verzichten konnte.


    Das Board wird ohne eingelötete Steckverbinder geliefert. Pfostenleisten sind aber im Lieferumfang mit drin. Je nach Platzverhältnissen kann man also die Kabel entweder direkt anlöten oder die mitgelieferten Leisten oder was ganz anderes verwenden.


    In den nächsten Postings gehe ich dann auf die Steuerungen für den Orlandoo Jeep und den WPL C24 ein. Sinngemäß läßt sich das natürlich auf andere Modelle übertragen und nutzen.


  • Lichtsteuerung für den Orlandoo Jeep Wrangler


    Im Orlando Jeep Wrangler geht es bei einem Maßstab von 1/35 recht eng zu. Deshalb habe ich die Vorwiderstände für die LEDs direkt an die Anschlüsse des Boards gelötet; an die andere Seite "freihängend" die Zuleitungen von den LEDs (also keine Steckverbinder). Das Ganze in ein ein Stück Schrumpfschlauch eingeschrumpft und quer in den Jeep eingebaut. So ist nach Abnahme der Karo die USB-Buchse zur Programmierung gut zugänglich.


    Ich steuere damit Scheinwerfer und Rücklicht (per PWM kombiniertes Abblend-/Fernlicht, Rück-/Bremslicht), Zusatzscheinwerfer, separates Bremslicht (das über dem Jeep-Reserverrad) und Blinker/Warnblinker. Desweiteren wird die LIPO-Spannung permanent überwacht, welche dann mit einem kleinen Piezo-Beeper

    signalisiert wird. Der Beeper wird auch als "Blink-Summer" genutzt.


    Für akustische Signalisierungen habe ich diesen Piezo-Beeper hier verwendet:

    https://www.exp-tech.de/zubeho…ll-enclosed-piezo-w/wires


    Zur Steuerung werden die Kanäle von Lenkung Gas und Aux/CH3 ausgewertet. Zusatzfunktionen werden mit Mehrfachbetätigungen von Kanal 3 gesteuert:

    - 1 mal drücken > Licht an/aus,

    - 2 mal drücken > Zusatzscheinwerfer an/aus,

    - 3 mal drücken > Warnblinker an,

    - 4 mal drücken > LIPO-Restkapazität mit Blinker und Beeper signalisieren (5 Beeps = 100% ... 1 Beep = 20%).


    Automatische Funktionen:

    - Einschalten des Fernlichts (Scheinwerfer heller) beim Gas geben.

    - Automatisches Blinken beim Einlenken; Blinkerstop bei Geradeausfahrt.

    - 2 sec Bremslicht (helleres Rücklicht + Bremslicht am Reserverad) beim Anhalten.

    - Automatisches Warnblinken bei 15 sec Inaktivität.

    - Flackern der Blinker-LEDs bei Ausfall des Empfangssignals.


    Anbei im Zip-File der Arduino-Sketch und eine kleine Zeichnung für die Verdrahtung.


  • Lichtsteuerung mit Eigenbau-ESC für den Orlandoo Jeep Wrangler


    Der Olandoo ESC verhält sich im unteren Bereich leider nicht sehr "feinfühlig". Dies wurde auch schon von anderen Usern hier im Forum angemerkt. Ein optimaler alternativer Regler wurde meines Wissens aber noch nicht gefunden.


    Auch mich hat das insbesondere mit dem 500rpm Motor gestört. Mit diesem Motor kann man zwar recht zügig fahren, aber das langsame crawlen ist nicht ganz einfach. Ich habe mal bei vollem Akku die Radumdrehungen pro Minute gemessen: Vollgas = 280 rpm, niedrigstes Tempo = 155 rpm. Langsames Fahren ist also etwas mehr

    als die halbe Höchstgeschwindigkeit. Das ist natürlich nicht so toll.


    Mit Hilfe eines kleinen PWM-Motortreibers und der vorstehend vorgestellten Arduino-basierten Lichtsteuerung habe ich nun einen eigenen Regler aufgebaut der den Orlandoo Reglerteil ersetzt.

    Meine Messwerte sind nun: Vollgas = 260 rpm, niedrigstes Tempo = 20 rpm. Mit anderen Worten: Ich kann nun so langsam wie mit einem 80er Motor fahren, habe aber die Höchstgeschwindigkeit vom 500er :) Dies funktioniert auch erstaunlich gut ohne "Gummibandeffekt". Ich war selbst überrascht.


    Als Motortreiber habe ich dieses winzige Board für knappe 6€ verwendet:

    https://www.exp-tech.de/module…tor-driver-carrier?c=1208


    Das Board hat keine eigene Intelligenz. Die Umsetzung des PWM-Signals vom Empfänger zum PWM-Signal für den Motor wird deshalb mit wenigen Zeilen Programmcode auf dem Arduino erledigt.


    Vom Orlandoo ESC benutze ich jetzt nur noch den BEC und die Pegelwandlung für das low voltage Servo. Motorregelung und Lichtsteuerung ist nun Marke Eigenbau. Auf den Fotos ist der Motortreiber über der Vorderradachse zu sehen.


    Der Arduino-Sketch und eine kleine Zeichnung für die Verdrahtung ist im nächsten Posting zu finden (mit Scale Mode).


  • Scale-Modus zum maßstabsgerechten Beschleunigen und Bremsen für den Orlandoo Jeep Wrangler


    Das Arduino-Programm habe ich nun so mit 2 Fahrmodies erweitert, dass in einem "Full Scale Modus" ein Maßstabsgerechtes (1:35) sanftes Beschleunigen und Abbremsen möglich ist. Ruckartige unnatürliche Fahrbewegungen werden unterbunden.


    Ausgangswerte und Annahmen für diesen Scale Modus:

    • 27mm Raddurchmesser und Raddrehzahl 250 U/min (500er Motor) entsprechen bei Maßstab 1:35 ca. 45 km/h.
    • Ein Jeep Wrangler beschleunigt in 3,5 sec. von 0 auf 45 km/h.
    • Einfache Bremswegformel = ((V / 10) x (V / 10)) / 35.
      Bei 45 km/h wären dies: ((45 / 10) x (45 / 10)) / 35 = 58 cm Bremsweg.
      Da ich aber keine Wegmessung vornehmen kann, habe ich die Zeit bis zum Stillstand einfach auf 1,5 sec gesetzt.

    Dieser Full Scale Mode ist nun aber so "scalig", das auch der Wunsch nach flotterer Fahrt aufkommen kann. Dafür habe ich noch einen "Semi Scale Mode" implementiert, der ruckartige Fahrbewegungen zwar verhindert, insgesamt aber eine flottere Fahrweise zulässt.


    Alle Features der Motorsteuerung in der Übersicht:

    • Mit Hilfe eines Pololu MAX14870 Motortreibers wird aus Kanal 2 das PWM-Signal für den Motor erzeugt.
    • Ermöglicht "feinfühliges" Fahren im unteren Bereich ab 20 Radumdrehungen / min mit einem 500er Motor.
    • Scale Modus zum maßstabsgerechten (1:35) Beschleunigen und Bremsen.
    • Da das Modell im Scale Modus bei Gaswegnahme nicht sofort anhält, gibt es auch die Funktion "Vollbremsung"
      (Gashebel schnell in andere Richtung bewegen).
    • Bei Rückwärtsfahrt wird die Geschwindigkeit auf etwa die halbe Höchstgeschwindigkeit beschränkt.
    • Da der Scale Modus nur relativ "unaufgeregtes" Fahren erlaubt, ist ein auch ein Semi Scale Modus implementiert.
      Der Semi Scale Modus erlaubt flotteres Fahren, verhindert aber ein ruckartiges Fahrverhalten beim Anfahren und Stoppen.
    • Die Scale Modies werden über Konstanten gesteuert (in zulässige Pulsweitenänderung pro sec), welche leicht anzupassen sind.
    • Im "Normal Modus" wird das Signal vom RC-Empfänger ohne Manipulation an den Motortreiber durchgereicht.
    • Umschaltung der Fahrmodies Normal, Semi Scale, Full Scale über Kanal 3.
    • Signalisierung des gewählten Fahrmodus über Zusatzscheinwerfer-LEDs und Beeper.
    • Die Nullstellung vom Gas (Kanal 2) wird beim Einschalten immer neu angelernt.
    • Bei LIPO-Unterspannung wird der Motor ausgeschaltet. Keine Weiterfahrt möglich.


    Unten stehend der Arduino-Sketch und ein Bild von der Verdrahtung.


    Ich habe hier auch mal 2 Videos gemacht. Im ersten Video wird mit dem Orlandoo ESC gefahren und im zweiten Video mit dem Fahrtregler Marke Eigenbau im Scale Modus. Ich glaube man kann ganz gut erkennen, dass das Fahrverhalten beim zweiten Video näher am Original dran ist. Keine ruckartigen unnatürlichen Fahrbewegungen mehr!


    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Lichtsteuerung mit Bedienung des 2-Gang Getriebeservos und Steuerung des Soundmoduls für den WPL C24 (Toyota Hilux)


    Hier möchte ich nun die Arduino-basierte Lichtsteuerung für den WPL C24 vorstellen, die auch zum Schalten des Getriebeservos und für das Orlandoo Soundmodul genutzt wird. So können alle "Spielereien" mit einer 3-Kanal Funke gesteuert werden.


    Als Arduino-Board habe ich wieder das oben beschriebene das "Pololu A-Star 32U4" Micro verwendet. Da im WPL C24 etwas mehr Platz zur Verfügung steht musste ich die Leitungen nicht wie im Orlandoo Jeep direkt anlöten, sondern habe aus einer Lötstreifen-Lochrasterplatine und Steckverbindern einen Adapter gebaut. Untenstehend 3 Fotos zu meiner aktuellen Lösung im WPL C24.


    Die Vorwiderstände für die LEDs habe ich aber nicht auf diese Adapterplatine gesetzt, sondern meist direkt an den LEDs angelötet. Die Stromaufnahme der LEDs ist durch entsprechende Bemessung der Vorwiderstände auf ca. 10mA pro LED begrenzt (220 Ohm für jede weisse LED, 330 Ohm für jede farbige LED).


    Wegen Kompatibilitätsproblemen der Arduino tone()-Funktion mit der Servo.h Library habe ich diesmal für Signalisierungen einen aktiven Piezo Beeper verwendet. Dieser piept selbstständig beim Anlegen von LOW an der Signalleitung:

    https://www.roboter-bausatz.de…9012-transistor-mit-kabel


    Folgendes ist mit dieser Steuerung möglich:

    • Steuerung von Scheinwerfer und Rücklicht (per PWM kombiniertes Abblend-/Fernlicht, Rück-/Bremslicht), separates Bremslicht, Rückfahrscheinwerfer, Blinker/Warnblinker, sowie Innenbeleuchtung.
    • Desweiteren wird die LIPO-Spannung permanent überwacht, welche dann mit Blinker und Piezo-Beeper signalisiert wird. Der Beeper wird auch als "Blink-Indikator" genutzt (klack, klack...).
    • Steuerung des 2-Gang Getriebes über das Getriebe-Schaltservo. Steuerung des Soundmoduls (aktivieren/ deaktivieren, Leerlaufsound bei aktivem bremsen, einstellbare Ausschaltzeit). Hierzu sind Schaltservo und Soundmodul direkt am Arduino-Board (und nicht am Empfänger) angeschlossen.
    • Zur Steuerung werden die Kanäle von Lenkung, Gas und Aux/CH3 vom Arduino-Board ausgewertet.


    Manuelle Funktionen werden mit Mehrfachbetätigungen von Kanal 3 gesteuert:

    - 1 mal drücken > Umschaltung zwischen ersten und zweiten Gang mittels Getriebeservo,

    - 2 mal drücken > Licht an/aus,

    - 3 mal drücken > Warnblinker an,

    - 4 mal drücken > Soundmodul deaktivieren / aktivieren

    - 5 mal drücken > LIPO-Restkapazität mit Blinker und Beeper signalisieren (5 Beeps = 100% ... 1 Beep = 20%).


    Automatische Funktionen:

    • Einschalten des Fernlichts (Scheinwerfer heller) beim Gas geben.
    • Einschalten des Rückfahrscheinwerfers bei Rückwärtsfahrt.
    • Automatisches Blinken und "Klicken" beim Einlenken; Blinkerstop bei Geradeausfahrt.
    • 2 sec Bremslicht (helleres Rücklicht & ggf. separates Bremslicht) beim Gas wegnehmen.
    • Bremslicht, solange aktiv gebremst wird (erste Gashebelbewegung zurück)
    • Während dem aktiven Bremsen wird das Soundmodul auf "Leerlauf" gestellt
    • Frühere Abschaltung des Motorsounds im Stillstand (über Konstante einstellbar)
    • Verzögertes hochdimmen der Innenbeleuchtung beim Anhalten. Ausschalten beim Losfahren.
    • Warnblinken bei 15 sec Inaktivität.
    • Flackern der Blinker-LEDs bei Ausfall des Empfangssignals.
    • Signalisierung des Akku-Füllstands beim Einschalten via Blinker und Beeper
    • Alarmblinken und piepen bei LIPO-Unterspannung.
    • Verhinderung des Einlegens des ersten Gangs bei Motorstillstand (weil die Zahnräder sonst u.U. nur seitlich aufeinander drücken, aber nicht ineinander greifen)
    • Die Nullstellung vom Gas (Kanal 2) wird beim Einschalten immer wieder neu angelernt.


    Anbei im Zip-File der Arduino-Sketch für diese Lichtsteuerung. Verdrahtungsplan siehe Post #12.


  • Lichtsteuerung mit Bedienung des 2-Gang Getriebeservos und Steuerung des Soundmoduls für den WPL C24 (Toyota Hilux)


    Zur Veranschaulichung der Funktionen habe ich hier noch ein kleines Video gemacht:


    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • hi RCfreund (gibt's auch 'nen richtigen Namen?hmm),


    vielen Dank für Dein Bemühen! :respekt: Die Aufgaben, die Du hier dem Arduino überträgst, gefallen mir sehr gut!!! :jaja:


    Besonders die Darstellung der Akkukapazität und der Warnblinker bei Inaktivität finde ich sehr sinnvoll! Eine Frage


    habe ich noch zur Innenraumbeleuchtung nach dem Anhalten. Kann man das auch an den Motorsound koppeln?


    Das heißt, wenn sich der Motor abstellt, das dann die Innenbeleuchtung angeht? Das wäre für mich noch etwas


    realistischer und könnte mir so etwas bei meinen Modellen gut vorstellen!


    Apropos vorstellen, fertigst Du auch Auftragsarbeiten? :whistling:

  • Hallo Ralph,


    Klar habe ich auch einen richtigen Namen. Aber nicht hier im Forum wo theoretisch Milliarden von Menschen mitlesen können mit denen ich überhaupt nichts zu tun habe ;)


    Freut mich, wenn du etwas von dem ich hier veröffentlicht habe gebrauchen kannst. Zu deiner Frage: sämtliche Zeitangaben sind Angaben in Millisekunden die du einfach im Programm ändern kannst. Die Zeiten für "Motorsound aus" und "Innenbeleuchtung an" brauchst du nur auf den selben Wert zu setzen. Dann kann die Innenbeleuchtung angehen, wenn der Sound aus geht. Der Trigger ist "Gas auf Neutralposition".


    Ich werde eventuell noch was dazu schreiben, wie man das Programm am besten an seine eigenen Bedürfnisse anpassen kann (an einigen wenigen Stellen sogar anpassen MUSS, z.B. Endstellungen des Getriebe-Schaltservos).


    Auftragsarbeiten mache ich nicht. Das Rumgebastel hier ist nur mein Hobby. Und für mich lukrative Auftragsarbeiten würdest du nicht bezahlen wollen :)

    Aber ich mache mir gerade schon Gedanken darüber, wie so eine Lichtsteuerung jemandem ohne Arduino-Kenntnisse nutzbar gemacht werden kann.


    Gruß

    RCfreund

  • Lichtsteuerung mit Bedienung des 2-Gang Getriebeservos und Steuerung des Soundmoduls für den WPL C24 (Toyota Hilux)


    Nachstehend der Verdrahtungsplan, so wie ich bei mir das Arduino-Board im WPL C24 eingebaut habe.




    Das andere Bildchen zeigt das Adapterboard zum Verbinden des Arduinos mit den LEDs und allen anderen beteiligten Komponenten. Die orange-farbigen Streifen sollen die Lötstreifen auf der Lochrasterplatine sein. Diese Streifen müssen wie dort dargestellt aufgetrennt werden. Fotos des Boards siehe Post #6.



  • Hallo RCfreund,

    vielen Dank für die Antwort, demnächst steht die Elektronik von einem King Hauler an, da werde ich mich damit befassen müssen..... ( und vermutlich mit Fragen nerven :whistling:)


    Nochmals : großen:respekt::respekt:


    Viele Grüße aus Thüringen

    Ralph

  • Das ganze ist echt sehr gut gemacht!


    Vielleicht raff ich ja die Verdrahtung noch irgendwann

    Wenn du Fragen hast ... nur zu. Ich baue gerade einen Orlandoo Defender D110 im Maßstab 1/32 auf. Da will ich dann auch wieder die Steuerung einbauen, so wie beim Orlandoo Jeep Wrangler. Allerdings mit ein paar Erweiterungen gegenüber dem Jeep für Rückfahrscheinwerfer, Nebelschlussleuchte und Dachscheinwerfer. Infos werde ich dann hier wieder einstellen.


    Gruß

    RCfreund

  • Na da komm ich doch gerne drauf zurück, Programmierst du in der Ardu IDE ? Ich hab mir vor einiger Zeit mal das codeing Grafisch angeschaut aber nicht weiter verfolgt, (aus Zeitlichen Gründen), ich frage weil weiter oben das Thema aufkam mit einstellungen ändern wie, wo und vorallem was. um es noobs wie mir zu ermöglichen, könnte das eine möglichkeit sein........., man kann die Bausteine benennen.

    Ich für meinen Teil fahre mit einer 8 Kanal Knüppel Anlage, ich bastel ich gerade an deinem Code rum um die Blinker händisch über einen Kanal zu schalten (z.b. Kanal D, Schalter mit 3 Stellunegen wäre dann 1=Blinker links, 2=Blinker aus und 3= Blinker rechts). hoffe du hast nichts dagegen :saint:


    Bei den Grafischen Programmierungen wäre das z.b. Freeware wie Ardublock, Minibloq (gibt noch mehr kommt auch etwas auf die Bausteine und Module an die man haben möchte.

  • ich bastel ich gerade an deinem Code rum um die Blinker händisch über einen Kanal zu schalten (z.b. Kanal D, Schalter mit 3 Stellunegen wäre dann 1=Blinker links, 2=Blinker aus und 3= Blinker rechts). hoffe du hast nichts dagegen :saint:

    Natürlich habe ich nichts dagegen!

    Ja, ich programmiere mit der Arduino IDE. Ich weiß zwar, dass es auch andere, und auch grafische Entwicklungsplattformen gibt, damit habe ich mich aber nie befasst.

  • Lichtsteuerung mit Eigenbau-ESC und Soundsteuerung für den Orlandoo Land Rover Defender

    Teil 1 – Verdrahtung der Hardware


    Als Arduino-Board habe ich wieder das oben beschriebene das "Pololu A-Star 32U4" Micro verwendet. Die Vorwiderstände für die LEDs habe ich wie schon beim Orlandoo Jeep Wrangler direkt in das Board eingelötet und danach das Ganze in Schrumpfschlauch eingeschrumpft. Ebenso sind die Anschlüsse von dem kleinen Piezo Beeper auf dem Board angelötet. Da die Widerstände möglichst klein sein sollten, habe ich die Bauform 0204 verwendet. Die kann man z.B. hier bestellen: http://www.kessler-electronic.…orm/Bauform_0204_c350.htm




    Auch der Motortreiber Pololu MAX14870 kommt wieder zum Einsatz. Er ersetzt in Zusammenarbeit mit dem Arduino die Reglerfunktionalität des Orlandoo ESC und ermöglicht gute Langsamfahrten selbst mit einem 500er Motor. Der Orlandoo ESC wird dann nur noch als BEC benötigt und für die Pegelwandlung für das Low Voltage Servo.



    7,2V vom LIPO werden vom Arduino, vom Motortreiber und vom Orlandoo ESC benötigt. Da ich die Kabel nicht alle am Orlandoo ESC einlöten wollte, habe ich die Stromzuführung ausgelötet und dort eine abgewinkelte 3-polige Stiftleiste eingesetzt. Somit ist die Verbindung steckbar und das Löten an der 3-poligen Buchse fällt leichter.



    Und so sieht das ganze dann im eingebauten Zustand aus:



    Diesmal wird auch das Orlandoo Sound Modul vom Arduino gesteuert. Es ist aber nur ein früheres Stoppen des Sounds möglich oder eine dauerhafte Deaktivierung. Dazu ist der Signaleingang des Soundmoduls nicht mehr direkt an den Receiver angeschlossen, sondern über einen 3,3 kOhm Widerstand. Der Signaleingang des Soundmoduls ist aber direkt mit einem Arduino-Pin zur Steuerung verbunden.


    Wenn das Soundmodul normal vom Receiver gesteuert werden soll, ist der Arduino-Pin als Eingang definiert (ist also hochohmig). Um den Sound nun zu stoppen wird der Arduino-Pin als Ausgang definiert und für 1 sec auf High gelegt; danach wieder als Eingang definiert (hochohmig). Zur dauerhaften Deaktivierung beim Einschalten des Modells bleibt der Arduino-Pin dauerhaft auf High. Das Signal vom Receiver bleibt dann ohne Wirkung und das Soundmodul stumm.


    Auf dem nachstehenden Bild ist zu sehen, dass ich die schwarze Leitung vom Motortreiber ausgelötet habe um es für die Soundsteuerung zu verwenden. Das Enable-Signal wurde nicht unbedingt zur Steuerung des Motortreibers benötigt.



    Die gesamte Verdrahtung ist dem nachstehenden Bild und der Zeichnung zu entnehmen:




    Im Teil 2 geht es dann weiter mit der Software.

  • Lichtsteuerung mit Eigenbau-ESC und Soundsteuerung für den Orlandoo Land Rover Defender

    Teil 2 – Software und Funktionen


    In Teil 1 hatte ich die Hardware-Verdrahtung beschrieben. Nun hier die Beschreibung der Software und ihren Funktionen.


    Basierend auf dem Sketch für den Orlandoo Jeep Wrangler habe ich die Lichtsteuerung für den Land Rover Defender erweitert und auch mit ganz neuen Funktionen versehen. So werden nicht nur die zusätzlichen Leuchten für Rückfahrscheinwerfer, Positionslicht und Kennzeichenbeleuchtung gesteuert, auch das Orlando Sound Module wird unter bestimmten Bedingungen früher abgeschaltet, bzw. deaktiviert. Desweiteren ist ein „Multi Model Mode“ implementiert (siehe unten).


    Da mir die „originale“ Funktion der kleineren weißen Leuchten vorne, der beiden kleinen Roten hinten, sowie der größeren roten Einzelleuchte hinten nicht bekannt ist, habe ich für diesen Sketch folgendes festgelegt:

    • Die kleinen weißen Leuchten vorne und beiden kleinen roten hinten sind Positionslichter (Standlicht) die gemeinsam geschaltet werden.
    • Die rote runde Leuchte hinten ist ein separates Bremslicht.


    Hier die komplette Funktionsbeschreibung:

    • Steuerung von Scheinwerfer und Rücklicht (per PWM kombiniertes Abblend-/Fernlicht, Rück-/Bremslicht),
    • Zusatzscheinwerfer, separates Bremslicht, Positionslichter, Kennzeichenbeleuchtung und Blinker/Warnblinker.
    • Zur Steuerung werden die Kanäle von Lenkung, Gas und Aux/CH3 vom Arduino ausgewertet.
    • Desweiteren wird die LIPO-Spannung permanent überwacht, welche dann bei unter 7,2V mit einem Piezo-Beeper signalisiert wird.
    • Der Beeper wird auch als "Blink-Summer" genutzt.
    • Motorregelung über separaten Motortreiber als Ersatz für den Orlandoo Fahrtregler.
    • Steuerung des Orlandoo Soundmoduls ermöglicht früheres Ausschalten des Sounds, bzw. Deaktivierung während der Fahrt.


    Zusatzfunktionen werden mit Mehrfachbetätigungen von Kanal 3 gesteuert:


    Einzelbetätigungen (mit ca. 1 sec Pause)

    1. Einzelbetätigung: Positionslicht vorne und hinten an (Scheinwerfer und Rücklicht bleiben aus)

    2. Einzelbetätigung: Scheinwerfer und Rücklicht an, Positionslicht vorne und hinten aus

    3. Einzelbetätigung: Positionslicht vorne und hinten an (Scheinwerfer und Rücklicht bleiben an)

    4. Einzelbetätigung: Komplette Beleuchtung aus (nicht Zusatzscheinwerfer)

    2 mal schnell betätigen > Zusatzscheinwerfer (Aux) an/aus.

    3 mal schnell betätigen > Warnblinker an.

    4 mal schnell betätigen > Fahrtregler Modus umschalten (Normal, Semi Scale, Full Scale). Siehe unter "Motorsteuerung / ESC".

    5 mal schnell betätigen > LIPO-Restkapazität mit Blinker und Beeper signalisieren (5 Beeps = 100% ... 1 Beep = 20%).

    6 mal schnell betätigen > Multi Model Mode aktivieren/deaktivieren. Blinker und Beeper signalisieren 10 mal schnell.



    Automatische Funktionen:

    • Beim Einschalten des Modells wird die LIPO-Kapazität mit Blinker und Beeper signalisiert (5 Beeps = 100% ... 1 Beep = 20%).
    • Einschalten des Fernlichts (Scheinwerfer heller) beim Gas geben.
    • Automatisches Blinken und Summen beim Einlenken; Blinkerstop bei Geradeausfahrt.
    • 2 sec Bremslicht (helleres Rücklicht + separates Bremslicht) beim Anhalten aus Vorwärts- und Rückwärtsfahrt.
    • Einschalten des Rückfahrscheinwerfers bei Rückwärtsfahrt.
    • Einschalten der Kennzeichenbeleuchtung wenn Hauptscheinwerfer eingeschaltet werden.
    • Warnblinken bei 15 sec Inaktivität. Zusatzscheinwerfer (Aux) werden ausgeschaltet.
    • Warnblinken und komplettes Licht ausschalten bei 60 sec Inaktivität.
    • Flackern der Blinker-LEDs und Signalisierung mit Summer bei Ausfall des Empfangssignals.
    • Alarmblinken und piepen bei LIPO-Unterspannung. Um kurze Spannungseinbrüche nicht zu berücksichtigen wird der laufende Mittelwert aus 8 Messungen berechnet und genutzt.
    • Abschalten des Soundmoduls nach 10 sec Leerlauf und beim Ausschalten des Lichts. Siehe unter "Steuerung des Orlandoo Soundmoduls".


    Steuerung des Orlandoo Soundmoduls:

    • Ausschalten des Motorsounds wenn sich der Motor mehr als 10 sec im "Leerlauf" befindet (statt Orlandoo Standard von 20 sec).
    • Ausschalten des Motorsounds nach 2 sec wenn das Licht (Hauptscheinwerfer) ausgeschaltet wird.
    • Wenn ohne Licht gefahren wird, wird der Motorsound 10 sec nach Motorstillstand abgeschaltet.
    • Generelles Deaktivieren des Motorsounds wenn an der Fernsteuerung zuerst der Kanal 3 auf ON gestellt wird, und erst danach das Modell eingeschaltet wird.


    Technisch ist die Steuerung des Soundmoduls wie folgt realisiert:

    Der Signaleingang des Soundmoduls ist mehr nicht direkt an den Receiver angeschlossen, sondern über einen 3,3 kOhm Widerstand. Der Signaleingang des Soundmoduls ist aber direkt mit einem Arduino-Pin verbunden. Wenn das Soundmodul normal vom Receiver gesteuert werden soll, ist der Arduino-Pin als Eingang definiert (ist also hochohmig). Um den Sound nun zu stoppen wird der Arduino-Pin als Ausgang definiert und für 1 sec auf High gelegt; danach wieder als Eingang definiert (hochohmig). Zur dauerhaften Deaktivierung beim Einschalten des Modells bleibt der Arduino-Pin dauerhaft auf High. Das Signal vom Receiver bleibt deshalb ohne Wirkung.



    Motorsteuerung / ESC:

    • Mit Hilfe eines Pololu MAX14870 Motortreibers wird aus dem Kanal 2 Empfängersignal das PWM-Signal für den Motor erzeugt.
    • Dies Ermöglicht "feinfühliges" Fahren im unteren Bereich ab 20 Radumdrehungen / min mit einem 500er Motor.
    • Scale Modus zum maßstabsgerechten Beschleunigen und Bremsen (kann über Kanal 3 umgeschaltet werden). Der Scale Modus verhindert unnatürliches ruckartiges Anfahren und Anhalten. Beschleunigung und Bremsverhalten orientieren sich am Original. Da im Scale Modus das Modell bei Gaswegnahme nicht sofort anhält, gibt es auch die Funktion "Vollbremsung" (Gashebel schnell in andere Richtung). Bei Rückwärtsfahrt wird die Geschwindigkeit auf etwa die halbe Höchstgeschwindigkeit beschränkt.
    • Da der Scale Modus nur relativ "unaufgeregtes" Fahren erlaubt, ist ein auch ein Semi Scale Modus implementiert. Der Semi Scale Modus erlaubt flotteres Fahren, verhindert aber ein ruckartiges Fahrverhalten.
    • Im "Normal Modus" wird das Signal vom RC-Empfänger ohne Manipulation an den Motortreiber durchgereicht.
    • Umschaltung der Fahrmodies Normal, Semi Scale, Full Scale über Kanal 3. Signalisierung des gewählten Fahrmodus über Scheinwerfer-LEDs und Beeper.
    • Die Nullstellung vom Gas (Kanal 2) wird beim Einschalten immer wieder neu angelernt.
    • Bei LIPO-Unterspannung wird der Motor ausgeschaltet. Keine Weiterfahrt möglich.


    Multi Model Mode:

    • Ermöglicht gleichzeitiges bzw. abwechselndes Steuern von zwei Modellen welche beide mit dem gleichen Modellspeicher der Funke gebunden sind.
    • Auswahl des zu steuernden Modells ebenfalls mit Kanal 3. Motor und Sound läuft nur bei dem Modell bei dem die Scheinwerfer eingeschaltet sind.
    • Beim inaktiven Modell sind dann im Standy auch Bremslicht, Rückfahrscheinwerfer, Blinker und Inaktivitätswarnung deaktiviert.
    • Zur Aktivierung / Deaktivierung des Multi Model Modes muss Kanal 3 6 Mal schnell betätigt werden.
    • Blinker signalisieren die Aktivierung / Deaktivierung mit 10-fachem Aufblitzen; der Summer wird dabei aktiviert.


    Anbei der Arduino Sketch sowie Zeichnungen zur Verdrahtung.

    Ein Video zur Veranschaulichung der Funktionen folgt in Teil 3.