Posts mit dem Label Crawler werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Crawler werden angezeigt. Alle Posts anzeigen

Sonntag, 24. April 2022

Karosseriebeleuchtung mit PCA9685


Ein Teil des Ausbaus meines FPV Crawler bestand darin, die LEDs zu montieren und entsprechend mit Energie zu versorgen. Natürlich reichte nicht ein einfaches Anschließen an die Versorgungsspannung aus. Denn die LEDs sollten je nach ihrer Aufgabe eingeschaltet werden, was zunächst einfach klingt.
Vom Gedanken bis zur Umsetzung zeigte sich ein deutliche höherer Aufwand beim Verkabeln mehrere Leitungen und beim Programmieren des PWM Moduls, als gedacht.


Benötigt

  • Arduino
  • PWM Modul PCA9685
  • LEDs und Widerstände

 

Ziel

Standlicht, Fahrlicht, Blinker und Flutlichter sollten alle individull an-steuerbar sein. Hier sollen die Lichter immer durch ein Fade-Effekt abgebildet werden.

 

Initialisieren

Für die folgenden Beispiele verwendete ich immer die gleiche Initialisierung.
 #include <Wire.h>  
 #include <Adafruit_PWMServoDriver.h>  
 Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();  
 void setup() {  
  pwm.begin();  
  pwm.setPWMFreq(1600);  
  Wire.setClock(400000);  
  // schaltet alle aus  
  for (uint8_t pwmnum=0; pwmnum < 16; pwmnum++) {  
    pwm.setPWM(pwmnum, 0, 4095);  
  }  
 }  


Fade-In und Fade-Out

Leider kann man nicht einfach einen Wert von 0 bis 256 in den Controller eingeben, um Animationsverläufe darin abzubilden. Wenn man versucht auf diese Weise die LEDs anzusteuern, dann funktioniert das schlecht oder gar nicht. Zum Glück ist bereits ein Beispiel Code in den Sourcen für das PCA9685 Modul integriert, dass genau diese Funktion darstellt.


Mit dem Adafruit Beispiel  'pwmtest' wird gezeigt, wie das Zuweisen um-gesetzt wird. Dort sieht man, dass nicht immer plus eins, sondern immer plus acht addiert wird. Das ist sicherlich auf die 12Bit pro Port zurück zu führen.

 
void loop() {  
  int stepAdd = 10;  
  int leds = 4;  
  for (uint16_t i=0; i<4096; i += stepAdd) {  
   for (uint8_t pwmnum=0; pwmnum < leds; pwmnum++) {  
    pwm.setPWM(pwmnum, 0, 4096 - i);  
   }  
  }  
  delay(1000);  
  for (uint16_t i=0; i<4096; i += stepAdd) {  
   for (uint8_t pwmnum=0; pwmnum < leds; pwmnum++) {  
    pwm.setPWM(pwmnum, 0, i);  
   }  
  }  
  delay(1000);  
 }


Asynchroner Ablauf

Für mein Ziel wird mehr als eine LED und neben dem Modul noch WS2812b RGB LEDs eingesetzt. Damit ich nicht für jede LED einen eigenen Controller benötige, muss ich sicherstellen, wie schnell etwas aus- oder eingeblendet werden soll.

 unsigned long mCurrentMillis;  
 unsigned long mLastMillis_LED_1;   
 unsigned long mLastMillis_LED_2;  
 uint16_t mValueLED_1 = 0;  
 uint16_t mValueLED_2 = 0;  
 void loop() {  
  uint16_t endValue = 4096;  
  int stepAdd = 10;  
  int leds = 4;  
  mCurrentMillis = millis();  
  if(mCurrentMillis - mLastMillis_LED_1 > 5) {  
   if(mValueLED_1 < endValue) {   
    mValueLED_1 += stepAdd;  
    pwm.setPWM(0, 0, mValueLED_1);  
   }  
   else {   
    mValueLED_1 = 0;  
   }  
   mLastMillis_LED_1 = mCurrentMillis;  
  }  
  if(mCurrentMillis - mLastMillis_LED_2 > 10) {  
   if(mValueLED_2 < endValue) {   
    mValueLED_2 += stepAdd;  
    pwm.setPWM(1, 0, mValueLED_2);  
   }  
   else {   
    mValueLED_2 = 0;   
   }   
   mLastMillis_LED_2 = mCurrentMillis;  
  }  
 }   


Blinker

Einfaches Ein- und Ausschalten ist nicht schwer zu programmieren. Mit einem schnelle Fade-In, Fade-Out war nur etwas ausprobieren nötig. Zuerst hatte ich das Problem. dass die LEDs nie ganz ausgingen, womit das Blinken selbst weniger deutlich zu sehen waren, wenn der Blinker betätigt wurde.
Im Grunde war das ein Denkfehler, weil ich die Schrittweite zum Fade-Out nicht berücksichtigt habe und, um eine Iteration zu früh den Vorgang verlassen habe.

 unsigned long mCurrentMillis;  
 unsigned long mLastMillis_LED_1;   
 unsigned long mLastMillis_LED_2;  
 uint16_t mValueLED_1 = 0;  
 bool mFlashingLED_2 = false;  
 void loop() {  
  uint16_t endValue = 4096;  
  int stepAdd = 10;  
  int leds = 4;  
  mCurrentMillis = millis();  
  if(mCurrentMillis - mLastMillis_LED_1 > 5) {  
   if(mValueLED_1 < endValue) {   
    mValueLED_1 += stepAdd;  
    pwm.setPWM(0, 0, mValueLED_1);  
   }  
   else {   
    mValueLED_1 = 0;  
   }  
   mLastMillis_LED_1 = mCurrentMillis;  
  }  
  if(mCurrentMillis - mLastMillis_LED_2 > 200) {  
   mFlashingLED_2 = !mFlashingLED_2;  
   if(mFlashingLED_2) {   
    pwm.setPWM(1, 0, 4095);  
   }  
   else {   
    pwm.setPWM(1, 0, 0);  
   }   
   mLastMillis_LED_2 = mCurrentMillis;  
  }  
 } 

 

Viel aus-probieren

Erst am Ende, wenn alles im Programmcode eingegeben ist, muss die Geschwindigkeit der Animationen eingestellt werden. Damit dies geht, sollte möglichst am Anfang diese Einstellungen zentral eingehalten werden, um das Nachjustieren zu beschleunigen.

Montag, 18. April 2022

Crawler - LUA Skript für Lipo Sensor


Wie voll ein Lipo Akku ist, kann an der Spannung der einzelnen Zelle oder an der Gesamtspannung erkannt werden. Der Umstand ist immer, dass wir in unserem Kopf umrechnen, wie viel uns noch vom Akku an Kapazität bleibt.

Bei unseren Geräten wie dem Smartphone oder Tablet gibt es eine Prozentanzeige und dieses will ich hier nun umsetzen.

 

Benötigt

  • Frsky X-Lite oder Fernsteuerung mit OpenTX
  • Frsky Lipo Sensor

 

Ziel

Der Akkustand soll in Prozent ausgegeben und graphisch mit einem Ladebalken angezeigt werden. Wenn die verbrauchbare Akkuladung sich dem Ende nährt, soll außerdem eine Warnung ausgegeben werden.

 

Auslesen der Telemetrie

Anders als bei dem Arduino Projekt wird das Ergebnis nicht als einzelner Wert ausgegeben. Genau genommen ist der verwendete Typ eine Tabelle, das wie ein Dictionary verwendet wird. Mit einem Schleifendurchgang kann der Index und der Wert gelesen werden.

 local mCellId = nil  
 local mField = nil  
 -- read from telemetry pool by name  
 local function getTelemetryId(name)  
   mField = getFieldInfo(name)  
   if mField then  
    return mField.id  
   else  
    return -1  
   end  
 end  
 local function init()  
      mCellId = getTelemetryId("Cels")  
 end  

 

Spannungen umrechnen

Im Grunde ist es keine große Sache, die Spannung in Prozent umzurechnen. Wir wissen, dass eine Lipo-Zelle eine Lagerspannung von 3,7 Volt hat und bei ca. 4.2 Volt voll ist. Praktisch darf der Akku nur 0,5V an Spannung verlieren, um dann als verbraucht zu gelten. Einige haben 3,6V als Grenze, aber weiter runter sollte man hier nicht gehen, wenn der Akku keinen Schaden nehmen soll.

 

Gesamtspannung = 8,4 V

Lagerspannung = 7,4 V

Verbrauchbare Differenzspannung = Gesamtspannung - Lagerspannung

1,0 V = 8,4 V - 7,4 V

 

Messspannung = 8,1 V

Rest Differenzspannung = Messspannung - Lagerspannung

0,7 = 8,1 V - 7,4 V

 

Kapazitätswert in Prozent = Rest Differenzspannung / Verbrauchbare Differenzspannung * 100

70 % = 0,7 / 1,0 * 100

 

Genauer wird dies, wenn die Spannungen der einzelnen Zellen berechnet werden. Zudem bleibt die Möglichkeit die Zellen einzeln zu betrachten, um bei Bedarf den nicht-balancierten Zustand zu erkennen.

 -- Lipo total  
 local mLipoTotalFull = 8.4  
 local mLipoTolalLow = 7.4  
 -- lipo cell  
 local mLipoCellVoltage = 4.2  
 local mLipoCellVoltageLow = 3.7  
 -- results  
 local mTotalResult = 0  
 local mCellResult1 = 0  
 local mCellResult2 = 0  
 local mTotalCellsResult = 0  
 local mCells = 0  
 local mCell1 = 0  
 local mCell2 = 0  
 local function calculateCellsState()  
      if mCellId == -1 then  
           return 0  
      end       
      mCells = 0  
      local cells = getValue(mCellId)  
      if(type(cells) == "table") then  
           for index, voltage in ipairs(cells) do  
                mCells = mCells + voltage  
                if index == 1 then  
                     mCell1 = voltage  
                end  
                if index == 2 then  
                     mCell2 = voltage  
                end  
           end  
      end  
      -- total voltage   
      local totalFull = mLipoTotalFull - mLipoTolalLow  
      local totalState = mCells - mLipoTolalLow  
      mTotalResult = math.ceil(totalState / totalFull * 100)  
      -- cell  
      local cellFull = mLipoCellVoltage - mLipoCellVoltageLow  
      -- cell 1 voltage  
      local cellState1 = mCell1 - mLipoCellVoltageLow  
      mCellResult1 = cellState1 / cellFull * 100  
      -- cell 2 voltage  
      local cellState2 = mCell2 - mLipoCellVoltageLow  
      mCellResult2 = cellState2 / cellFull * 100  
      -- total result  
      mTotalCellsResult = math.ceil((mCellResult1 + mCellResult2) / 2.0)  
      return 1  
 end  

 

Werte und Balken als Zustandsanzeige

Anstatt nur Zahlen zu lesen, kann ein Balken gezeichnet werden. Damit man sehen kann, wo die 100 % liegen, wird zusätzlich ein Rahmen angelegt.
Anders gesagt wird es wie ein Ladebalken angezeigt, der als haptische Füllstandsanzeige verwendet werden soll.

 local function drawTextAndBars()  
      -- lipo accu state calculate to percentage  
      -- title  
      lcd.drawText(0, 0, "Accu State", MIDSIZE)  
      -- total lipo voltage  
      lcd.drawText(2, 12, "Lipo Accu:", SMLSIZE)  
      lcd.drawText(46, 12, mTotalResult.."%", SMLSIZE)  
      -- sum of cells lipo voltage  
      lcd.drawText(64, 12, "By Cells", SMLSIZE)  
      lcd.drawText(102, 12, mTotalCellsResult.."%", SMLSIZE)  
      -- Cell voltage  
      lcd.drawText(2, 20, string.format("%.2f", mCells).."V", SMLSIZE)  
      lcd.drawText(32, 20, string.format("%.2f", mCell1).."V", SMLSIZE)  
      lcd.drawText(62, 20, string.format("%.2f", mCell2).."V", SMLSIZE)  
      -- screensize  
      -- 128 x 64  
      -- cells  
      lcd.drawRectangle(5, 28, 118, 5)  
      lcd.drawLine(7, 30, math.ceil(mTotalResult * 1.18), 30, SOLID, FORCE)  
      -- cell 1  
      lcd.drawRectangle(5, 34, 118, 5, SOLID)  
      lcd.drawLine(7, 36, math.ceil(mCellResult1 * 1.18), 36, SOLID, FORCE)  
      -- cell 2  
      lcd.drawRectangle(5, 41, 118, 5, SOLID)  
      lcd.drawLine(7, 43, math.ceil(mCellResult2 * 1.18), 43, SOLID, FORCE)  
      return 0  
 end

 

Alternativ kann die Füllstandsanzeige mit lcd.drawGauge(x1, y1, w, h, maxfill) gezeichnet werden. Jedoch habe ich noch nicht die Option gefunden, eine vertikale Darstellung zu zeichnen. Ist deshalb in dem von mir hier erstellten Skript noch nicht der Fall.

 

Skript ausführen

Das Skript muss in den Ordner SCRIPTS/TELEMETRY und die Bezeichnung des Scripts darf hier nicht mehr als 5 Zeichen lang sein, da sonst das Skript nicht für das Display ausgewählt werden kann.

Nun habe ich da noch ein Problem mit der Darstellung auf dem Bildschirm. Obwohl das Skript im Menü eingebunden wurde, wird mir auf der Telemetrie Ansicht gemeldet, dass keine Telemetrie Screens verfügbar sei.


 

Am Ende offen

Den Fehler konnte ich noch nicht herausfinden und starte daher alternativ das Skript direkt aus dem Ordner heraus. Eine weitere Störung tritt auf, wenn man den Crawler ausschaltet, dann scheint die Fernsteuerung im Zustand des Betriebs zu springen und hier kann man nur noch ausschalten.

Aktuell ist die Darstellung nur sehr einfach und nicht sehr stylisch, weshalb ich ein Screen zusätzlich designe.

 

Handling Lipo Sensor Data - OpenTX 2.3 Lua Reference Guide (open-tx.org)

OpenTX 2.2 Lua Reference Guide (schorse-video.de)

Taranis-XLite-Q7-Lua-Dashboard/farl.lua at master · AndrewFarley/Taranis-XLite-Q7-Lua-Dashboard (github.com)

 

Sonntag, 5. September 2021

Nummernschildrahmen für den Crawler


Die nächsten Schritte sind oft Verbesserungen, aber ein Nummernschild war vor zwei Monate noch nicht fertig. Und wenn man sich auch das Heck vom Crawler ansieht, dann kommt einem schnell der Eindruck, dass zumindest das noch fehlt.


Verwendet:

  • 3D Programm wie 123D Design
  • Dienstleister oder eigenen 3d Drucker
  • Tamiya Schwarz Matt TS-6
  • Sehr dünne Kabel
  • Osram SMD LEDs, SMD 3430, PCLCC4, kalt weiß, 560mcd

 

Ziel

Für ein Bestehenden auf klebbaren Nummernschild, soll ein Rahmen entworfen werden, in dem SMD LEDs  verbaut werden können. Die Ansteuerung der LEDs erfolgt wiederum über den bereits bestehenden PWM Moduls. Die Größe des Rahmens orientiert sich an der Größe des Angefertigten Nummernschild.

 

Rahmen Modulieren

Im Grunde muss zunächst eine Fläche Gebildet werden, das größer ist als das Nummernschild selbst. Dann soll das Nummernschild in einer Vertiefung liegen, bzw. soll rund um ein Rand angelegt werden. Der Fragliche Teil ist die Beleuchtung, die von oben kommen soll. Dennoch sollte der Rahmen weiterhin sehr flach bleiben.

Normale LEDs sind ab 3mm bereits zu groß. Deshalb sah ich mich in der SMD Abteilung um. Gut das ich hierfür bereits welche auf Lager hatte, um diese in der Hand direkt zu vermessen und einzuschätzen wie die Beleuchtung an den Nummernschildrahmen angebracht werden kann.

Knifflig war der Kabelschach einzuzeichnen und zwar so, dass diese auch von einem 3D Drucker gedruckt werden kann (die ich am Ende doch nicht brauchte).


 

Hier habe ich mich zunächst mit dem 3D Builder aus Windows eine Vorprüfung starten können, welches mir dann entsprechende Meldungen zurück gab, wo die Stellen zu dünn sind. Diese Funktion war für mich Hilfreich, weil ich anfangs meine Einschätzung etwas zu dünn gewählt hatte.

Damit der Rahmen keine Klobigen Beleuchtungsansätze hat, änderte ich das Design an den Stellen und Rundete die Ecken etwas ab. Somit sah der Entwurf des Nummernschildrahmen wieder Natürlicher aus.



 

Jemand hat bestimmt einen 3D Drucker

Natürlich fragte ich ebenfalls  in der Copter Gruppe, ob mein Entwurf für einen 3D Druck geeignet ist und bekam hierzu auch die Bestätigung. Zudem bekam ich kurzerhand einen Ausdruck von meinem Nummernschild Entwurf.

 

Alternative einen Dienstleister

Wollte ich ausprobieren, kommt ein andermal.

 

Entscheidung der SMD LEDs

Die aktuell verwendeten Osram SMD LEDs hatte ich auf Lager. Daher gibt's zu der Entscheidung, außer der Baugröße keine Nennenswerte Eigenschaften, warum ich mich dafür entschieden habe.

Eine Besonderheit könnte jedoch sein, dass diese sehr hell sind. In meinem Fall muss ich jedoch die Helligkeit drosseln.

 

SMD LEDs

Ist sicherlich nicht für jeden etwas, in der Größenordnung zu Löten. Wichtig hierbei ist, eine Halterung zu haben, die auch dritte Hand genannt wird. Ohne wird das nichts.

Die zwei SMD LEDs werden Parallel geschaltet, womit ein größerer Strom auf einen Wiederstand berechnet wird. Im Datenblatt konnte ich entnehmen, dass die einzelne SMD LED  4,35V Spannung und 30mA Strom benötig. Allerdings müssen diese nicht bei voller Leistung leuchten.

Bei einer Spannungsversorgung von 5V, ist der berechnete Vorwiderstand 16 Ohm groß. Alternative verwende ich hier aus der E12 Reihe, einen Kohlebeschichteten Widerstand mit 100 Ohm. Der Widerstand selbst wird nicht im Nummernschildrahmen verbaut und wird daher aus Platzgründen im Verlegten Kabel untergebracht.

 

 

Die Steuerung der LEDs wird von dem PCA9685 Modul übernommen. Über den Arduino kann ich nachträglich die Helligkeit runter regeln.

 

Wie Verbinden?

Das lustige ist, wenn man die Falsch herum anschließt, dann leuchtet die SMD LED rot, statt weiß.

 

Verlöten

Die Kontakte müssen mit ein wenig Lötzinn angereichert werden, damit sich die Leitungen leichter anlöten lassen. Ich verwendete für die Verkabelung sehr dünne Kabel, damit der Rahmen nicht zu weit hervorgehoben werden muss von der Karosserie.

 

Lochbohren

Der Teil der mir immer etwas Sorgen bereitet sind Löcher in die Schöne Karosserie zu bohren. Zum Glück reicht hier nur eins.



 

Fertig

Das Nummernschild mit Rahmen empfinde ich als eines der Highlights zum Crawler. Das Nummernschild selbst als Aufkleber bestellte ich über Ebay, welches ich über den Händler RC-Decals gefunden habe. Neben den normalen Schildern, erhielt ich auf Anfrage auch Nummernschilder mit meinem Internetnamen „Codexzier“.


Download zu meine 3D Entwurf des Nummernschild:

Nummernschildrahmen in den Formaten *.sat, *.stl, *.wrl und *.x3d



Sonntag, 15. August 2021

Bau des FPV Crawler

In den letzten drei Monaten habe ich an meinem RC Crawler immer wieder weitergebastelt, so, wie gerade Zeit war. Das ist schon eine lange Bauzeit. Andere hätten vielleicht nur zwei bis drei Wochen benötigt.

Für den Bau kamen viele Anforderungen, zu denen ich mich erstmal einlesen musste. Was für ein Chassis, welche Karosserie, welche Farben, welche Farbkombination, Aufkleber, Zubehör, wie stark muss der Motor sein, Fahrtenregler für Crawler, Steuerelektronik für Licht und noch mehr.

Da der Bau doch viele verschiedene Bereiche anspricht, kam meine Freundin auf die Idee, dass ganze zusammen zu tragen und daraus ein Blogeintrag anzufertigen. Kommentar aus dem Off: <3 Beste Frau der Welt *zwinker

Hier breche ich nun meine eigenen Vorgaben für die bisherigen Blog Einträgen, die bisher nicht länger als zwei bis drei Seiten lang waren. Dennoch versuche ich mich mit den einzelnen Themen kurz zu halten und schreibe nur über die wesentlichen Informationen, die mich zu meinem Ziel gebracht haben.

 

Ein Chassi das mir gefällt

Eine Zeitlang wollte ich den 1:16 Crawler aufrüsten, aber am Ende wäre dieser für jede Herausforderung zu klein. Zumindest, wenn man in einem RC Modellhaus unterwegs ist, so ist das Gelände oft für 1:10 gebaut. Doch auch normal gewachsener Rasen im Garten, hält einen 1:16 Crawler schnell auf. Sicherlich kann man auch dort den richtigen Motor und Getriebe erweitern, damit auch der kleine Crawler die schwierigen Wege schafft.

Seit letzten Jahr fiel mein Blick auf ein Chassis mit CNC gefrästen Teilen und einem Carbon Rahmen. Leider gab's dazu keinen Namen zum Hersteller, was mich zunächst skeptisch sein ließ. Aber auch eine nennenswerte Bezeichnung fehlte. Danach suchen ging trotzdem, wenn die richtigen technischen Detailnamen wie RC, Crawler, CNC und Carbon verwendete. Auf YouTube konnte ich mir verschiedene Reviews ansehen, um mich von der Qualität und Aufbau zu überzeugen.

 

Kräftiger Servo

In meinen Bestand hatte ich bereits zwei passende Servos. Mit 142 Ncm Drehmoment, doppelt Kugelgelagert, Metall-Getriebe und mit digitale Ansteuerung kann der Crawler präzise gelenkt werden. Die Geschwindigkeit mit 60° in 0,17 Sekunden reichen ebenfalls aus. Natürlich gibt's bessere und, falls der Bedarf besteht, kann ich diese Komponente noch austauschen. Die Praxis wird zeigen, ob die Leistung ausreicht.

Die Angabe für das Drehmoment ist unterschiedlich. Einige geben diese in Kilo an und das klingt auch vertrauter. Wer wie ich damit aufgewachsen ist, die Angabe in Ncm zu lesen, hat erstmal keinen Bezug dazu, wieviel Kraft das nun wirklich ist. Ein Newton sind gerundet 102g (oder 1/9,81 kg). Wenn wir einen Servo mit der Drehmoment Angabe von 25Kg haben, dann sieht die Umrechnung folgendermaßen aus:

254,8 Ncm = 25 * 1/9,81 kg * 100

Wenn man einmal die Rechnung gesehen hat, könnte man auch über den Daumen die 25Kg mal 10 rechnen und die Einheit Ncm ranhängen. In der Größenordnung sind die 4,8 Ncm  fast nichts und wäre nur bei Mini-Servos relevant.

Dann kommt noch was. Kann man mit dem Servo theoretisch 25Kg heben? Ja, solange der Arm bei 1 cm Länge ist. Wäre der Servo-Arm bei 10cm, dann könnten nur noch 2,5Kg gehoben werden. Und das kann entscheiden sein, weil RC Autos immer einen Arm verwenden, der länger als ein Zentimeter ist. Bei meinem vorigen RC Straßenfahrzeug ist ein Servo mit einer Stärke von 35Ncm verbaut. Dieser wäre im Crawler bereits bei einem Arm von zwei Zentimeter überfordert und könnte in ungünstiger Lage die Lenkung nicht mehr bewegen.



Kräftiger Motor

Zum Testen nahm ich aus meinem alten RC Modell, dem Camaro, den Motor heraus und setzte diesen in das Chassis ein. Denn hier kam typischerweise ein 500ter Motor Größe hinein. Eine kleine Ritzel sollte mehr Drehmoment auf die Achsen bringen, aber ich rechnete nicht mit dem hohen Stromabnahme. Das führte zu einem Ende des Tamiya Standard Fahrtenregler.

Wie bei vielen Dingen suchte ich Rat im Internet und las mich durch die Foren. Die Konstante, die ich dann fand, ist die Empfehlung für Crawler einen Motor mit vielen Turns zu verwenden. Daher bestellte ich einen passenden mit 50 Turns und 8300 U/min. Wer das mit den Turns nicht kennt:
Die Turns sind die Wicklungen, die Pro Anker am Rotor des Motors gewickelt sind. Je nach Querschnitt und Anzahl Wicklung kann man zwischen Drehmoment und Drehzahl bestimmen. Bei einigen hochwertigen RC Modell Motoren kann nachträglich die Drehzahl und das Drehmoment geändert werden, durch das Verstellen des Winkels der Bürstenköpfen zum Kollektor.

Die Betriebsspannung für den Motor liegt bei 7,2V bis 7,4V. Mehr Spannung geht auch. Der Einsatz mit einem 3S und 11,1V würde ebenfalls funktionieren, aber dies verkürzt die Lebensdauer des Motors, wenn keine zusätzlich Kühlung montiert wurde. Genau genommen schmilzt der Isolierlack auf dem Kupfer und verursacht einen Kurzschluss. Kurz gesagt, die Nennleistung Leistung ist weg.

Mein damaliger Fachlehrer für Elektrotechnik sagte: Ein Motor kann mit höheren Spannungen arbeiten, wenn ausreichend Kühlung vorhanden ist. Spätestens die Fliehkraft, bringt jeden Motor zum Ende.



Fahrtenregler

So wie ich den Motor aus dem Camaro zum Test nahm, nahm ich, wie bereits beschrieben, auch den Fahrtenregler. Ich kann da nur abraten. Wenn der Fahrtenregler nicht mehr durchsteuert, weil dieser überhitzt ist, dann sollte man nicht warten bis dieser abgekühlt ist. Sondern die Teile wieder herausnehmen und geduldig auf die richtigen Teile warten.

Der neue Fahrtenregler QuickRun WP1080 von Hobbywing stellte meine vorigen verwendeten Regler in den Schatten. Allein, dass ich eine Programmierkarte zum Einstellen des Fahrtenregler verwenden konnte, brachte mich zum Staunen. Früher kannte ich nur Features wie die Bremsfunktion und Anfahrt mit antirutsch Funktion. Jetzt mache ich Bekanntschaft weiterer Funktionen, wie z.B. mit der elektronische Handbremse, auf Akkutyp einstellen, festlegen der maximale Energie für Vor- und Rückwärts, Fahrmodus, Bremskraft und mehr.

Eine Testfahrt mit dem richtigen Motor und dem Fahrtenregler zeigte mir, wie präzise auf unwegsamen Wegen gefahren werden kann. Damit meine ich Folgendes: Ich gebe ganz wenig Gas (ja ich weiß, es ist Strom!!) und das RC Fahrzeug bewegt sich ganz langsam und konstant über ein Hindernis.
Bei meinen zwei kleinen RC Crawler dachte ich immer, ich hätte die nicht gut geschmiert und würden deshalb über Hindernisse so vor sich hin ruckeln.

 

Lipo Akku

Hier hätte mein 6 Zellen NiMh Accu mit 5000mAh gereicht, aber der war schon sehr verbraucht. Fürs Erste ging mein intakter 2S Lipo mit 2400mAh. Entsprechen stellte ich den Fahrtenregler für diesen Akkutyp ein.

Nachdem Fertigstellen des Hauptteil des Baus, entschied ich mich doch einen neuen 2S Lipo Akku mit 7000mAh zu kaufen. Die Wahl hing allerdings von der maximalen einsetzbaren Größe ab, die im Chassis transportiert werden konnte.

Der neue Akku hat sich gelohnt. Die Fahrzeit liegt nun bei fast einer Stunde. Ganz genau konnte ich allerdings die Betriebszeit nicht bestimmen, weil ich beim Spazieren oft anhalte und die Gegend fotografiere.


Karosserie im Design der 1980iger

Naja, eigentlich hatte ich nach einem Pickup mit einem neueren Design gesucht, jedoch viel mir bei der Suche die Jeep Cherokee Karosserie immer wieder auf. Und jetzt erscheint mir der Fahrzeugtyp überall auch auf den Straßen. Das muss die suggestive Wahrnehmung sein.

Die neue ABS Karosserie ist nicht die Erste, die ich lackiert habe und daher lag die Anforderung nahe, dass ich mein Können und Erfahrungen steigere. Ok, ich bin kein Lackierer und meine Erfahrungen sind weiterhin ausbaufähig. Ich recherchierte in Foren, um herauszufinden, welche Schritte ich für ein gelungenes Ergebnis zu unternehmen hatte. Und obwohl ich mich gut vorinformierte hatte, zu nach beispielhaften Lösungen, traten beim Lackieren offene Fragen auf. 


Wahl der Karossiere

Eine Karosserie aus Lexan kam nicht in Frage, denn ich will etwas Schönes, das man auch prima ins Wohnzimmerregal stellen kann. Auf Pinterest und Instagram verglich ich verschiedene ausgebaute Karosserien. Schließlich fiel die Wahl der Karosserie auf den Jeep Cherokee von Injora.

 (Neben der unlackierten Karosserie ist ein Crawler im Maßstab 1:16)


Was wird zum Lackieren benötigt

Bei den Farbsprühdosen blieb die Wahl bei Tamiya. Die Farbwahl wiederum war schon etwas schwieriger. Denn diesmal sollten zwei Hauptfarben und weitere Aktzentfarben auf der Karosserie aufgetragen werden. Lange habe ich mich farblich von Cyberpunk 2077 inspirieren lassen und hätte am liebsten den Thorton Colby CX410 in Grün genommen.

Mit Hilfe von Adobe Color Picker (geht sicherlich auch mit anderen Farbmischer-Tools) suchte ich eine Farbkombination, die mit meiner Lieblingsfarbe Grün funktionieren. Überraschend sah ich, dass auch Lila dazu passt, welche ich später als Akzent einsetzte.

Ich kaufte wie immer von jeder Farbe eine Sprühdose und stellte erst beim Lackieren fest, dass die Menge nicht ausreichte. Am Ende habe ich zweimal nachbestellt. Zum Glück waren bei Conrad Electronic alle Tamiya Farben im Angebot. Eine Sprühdose kostete zu dieser Zeit 8,99€, statt 9,99€.

Farbe

Bezeichnung

Menge

Grundierung Weiß

Tamiya Surface Primer 180ml

1

Gun Metall

Tamiya Gun Metall TS-38 100ml

2

Grün (Candy-Lime)

Tamiya Grün (Candy-Line) TS-52 Spraydose

4

Klarlack

Tamiya Klar TS-13 100ml

3

Schwarz Glänzend

Tamiya Schwarz Glänzend TS-14 100ml

2

British Grün

Tamiya British Grün TS-9 100ml

1

Matt Schwarz

Tamiya Matt Schwarz TS-6 100ml

2

Für die Hauptfarbe Grün 'Candy-Lime' habe ich knapp drei Sprühdosen verbraucht. Die Sekundärfarbe 'Gun Metall' wurden komplett zwei Sprühdosen verbraucht. Für Klarlack (TS 13) hätte man auch mehr als drei nehmen können. Allerdings reichten auch die vorhanden drei Dosen für die vier Schichten aus.

 

Farben testen

Am Anfang war ich mir bei den Farben nicht sicher, wie diese aufgesprüht miteinander wirken. Hilfreich war hier für mich die nicht genutzte ABS Karosserie im Maßstab 1:16, welches aus Kabine und Motorhaube besteht. Zunächst kam die Grundierung, die ich jedoch aus Testzwecke nicht perfekt aufsprühte. Die verschiedenen Farben habe ich jeweils nur mit einer Schicht aufgesprüht. Das Abkleben mit dem richtigen Abklebeband ermöglichte mir harte Kanten zu den Farben abzubilden. Die von mir ernannte Testkarosserie eignete sich prima zum Ausprobieren der Sprühwerkzeuge. Natürlich ist der Verbrauch auf diese Weise höher, aber verbessert das eigene Gefühl und Umgang mit Sprühdosen.




Wann und wie wird lackiert

Idealerweise würde ein Raum zum Lackieren gut. Leider stand mir kein Raum zur Verfügung und deshalb fand das Lackieren im Freien statt. Das bedeutet, dass das Lackieren nur unter guten Wetterbedingungen stattfinden konnte. Schon ein wenig Wind führt dazu, dass sich beim Sprühen ein zu großer Teil das Lacks in der Luft verteilte. Bei meinem Verbrauch hätte man sicherlich eine halbe Sprühdose einsparen können.

Für das nächste Mal, würde ich eine extra Lackierbox bauen mit Entlüftung. Denn im Freien konnte ich nicht konstant durcharbeiten und nach vier Wochen verspürte ich die Ungeduld. Dies zeigte sich in Form von Fehlern, die in den letzten Schritten zu sehen sind.

 

Trocknen

Bei sonnigen Tagen trocknet der Lack sehr schnell. Schon nach 15 Minuten war die Farbe trocken und ließ sich auch nicht mehr verschmieren. An bewölkten Tagen braucht dies jedoch schon eine halbe Stunde. Was man nicht vergessen darf, ist die Karosserieteile gut zu schützen. Im meinem Umfeld hat ein Vogel Kot meine Karosserie getroffen. Zum Glück war das keine Stelle, die von außen zu sehen ist.

Am Ende, nach dem mehrere Schichten Klarlack fertig aufgesprüht wurden, ließ ich den Lack einen Tag durchtrocknen.

 

Lagern von Karosserie und Sprühfarben

Vielleicht habe ich mir das eingebildet, aber am Anfang hatte ich vorrübergehend die Sachen im Wohnzimmer abgestellt. Da ich auch im Wohnzimmer mein Homeoffice Platz aufgebaut habe, bekam ich des öfteren Kopfschmerzen. Das passt zu den Warnhinweisen auf den Sprühdosen. Nach dem Lackieren der Karosserie verdampft noch Hilfsmittel von der Sprühfarbe. Das ist mir früher nie aufgefallen, da ich zuvor die lackierten Teile in der Garage zum Trocknen stehen ließ. Zum Schutz vor Schmutz und Staub, habe ich die Teile in einem großen Karton in der Abseite abgedeckt und gelagert.

 

Zusammensetzen

Für die Karosserie liegen ausreichend Schrauben bei. Man muss jedoch darauf achten, dass man die Schrauben auch wie vorgesehen verwendet. Die Reihenfolge beim Zusammensetzten der Teile, wurde in der Anleitung nur teilweise bildlich erklärt. Ist allerdings nicht so schwer, als dass man sich einige Reihenfolgen nicht selbst erschließen kann. Umso umständlicher war die Größe der Teile beim Zusammenschrauben.


Löcher bohren

Auf dem Dach sollte nun der Dachgepäckträger montiert werden. Hierfür mussten Löcher ins Dach gebohrt werden, damit die Montage funktionierte. Damit die Löcher nicht verreißen, habe ich die Stellen mit einem spitzen Gegenstand vorgekörnt. Anschließend habe ich eine Bohrspitze mit einem kleinen Durchmesser begonnen und die Löcher millimeterweise mit einer größeren Bohrspitze aufgebohrt bis die Zielgröße erreicht war. In meinem Fall mussten für den Dachgepäckträger 3mm und für die Licht- und FPV-Leitungen 6mm Löcher gebohrt werden. Damit die 6mm Löcher nicht so konturlos werden, verwendete ich die Halterungen für 5mm LEDs (Auf dem Foto kaum zu erkennen).


Weitere Details

Das Nummernschild habe ich mir über den Ebay Händler RC-Decals bestellt und freute mich über die Möglichkeit, dies mit meinem Internet Nickname bedrucken zu lassen. Allerdings wollte ich den Aufkleber nicht direkt auf die Karosserie kleben, denn dass erschien mir doch zu flach. Deshalb entschied ich einen Rahmen für das Nummernschild zu entwerfen, an dem auch LEDs angebracht werden können.

Geplant waren weitere Aufkleber. Nun sind da meine Erfahrungen eigene herzustellen gleich null und die Aufkleber, die ich bisher gefunden habe, gefielen mir nicht. Zudem wollte ich keine Werbetafel fahren. Sieht man sich die Fahrzeuge in Cyberpunk an, sind einige Beschriftungen zu erkennen. Beschriftungen an Klappen, an Erweiterungen, an Anschlüssen und andere Markierungen. Das wollte ich, aber dann habe ich diese Idee verworfen.

 

Gepäck

Auf dem Dachgepäckträger waren mir zu wenig Gepäck. Die Holzkiste, die ich bei einem Set bekam, fand ich nicht sonderlich passend (ist aber noch drauf) und auch eine Tonne wollte ich nicht. Ich habe mir als Alternative eine SD Karten Schutzhülle in schwarz lackiert und zusätzlich eine Funktion gegeben. Die eingelassene Solarplatte versorgt einen Mikrokontroller, der wiederum 5 LEDs zum Blinken bringt.

Einen weiteren passenden Kunststoffbehälter habe ich in Matt schwarz lackiert. Dieser bekam die Aufgabe die FPV Funktion zu beherbergen. Hier kommt ein Lipo Akku hinein, der die Kameras und den FPV Sender versorgt. Der FPV Sender passt ebenfalls hinein und durch eine Bohrung in das Kunststoffgehäuse, konnte die 5GHz Antenne angebracht werden.




Die Flutlichtscheinwerfer auf dem Dach und an der Frontstoßstange hatten zuvor nur sehr helle und weiße LEDs. Diese habe ich durch die RGB LEDs WS2812b ersetzt und sie werden durch einen Arduino angesteuert.



 

Elektronik und Steuerung

Neben dem Empfänger, Fahrtenregler und Servo zum Lenken, kamen noch die LEDs und in meinem Fall die FPV Kameras hinzu. Eine FPV Kamera ist nicht das Highlight, doch das eine zweite als Rückfahrkamera dient schon. Zumindest habe ich bis heute noch keinen anderen Eintrag im Internet gefunden.

Für die LEDs hätte ich ein fertiges System verwenden können, aber keins der System sagte mir wirklich zu. Denn hier sollte jede LED einzeln steuerbar sein und das funktioniert prima mit einem Arduino.

 

Arduino für die Signalverarbeitung

Klingt etwas hoch gestochen, wenn man von Signalverarbeitung schreibt. Kurz gesagt bedeutet das, dass die Signale vom Receiver eingelesen und entsprechend für die Zielausgabe übersetzt werden. Für dieses Projekt werden hauptsächlich die LEDs angesteuert.

Insgesamt stehen vier PWM Signale zum Einlesen bereit. Eigentlich fehlt aber noch ein fünftes. Das Fünfte soll die Fahrgeschwindigkeit prüfen, um das Bremslicht zu kontrollieren. Das ist mir jedoch erst viel später eingefallen.

Das Signal zum Lenken lässt sich ohne Störung auslesen, womit dann der erste Eingang zum Arduino verbunden wurde und damit die Blink LEDs stuerte. Die drei weiteren Kanäle wurden ebenfalls zum Schalten der LEDs und RGB LEDs eingesetzt. So kann ich dann an der Fernsteuerung das Fahrlicht einschalten und die Flutlichter ihre Animation starten. 

 

LEDs durch LED Treiber ansteuern

Die Helligkeit könnte eigentlich durch die verwendeten Widerstände festgelegt werden. Ich will jedoch die LEDs mit einem LED Treiber einzeln einstellbar haben. Das ermöglicht auch Effekte zu erzeugen wie sanftes Aufleuchten oder die Blinker für das Lenken einzustellen.

Hierzu passte für den Einsatz der PCA9685 mit 16 PWM Ausgängen. Das ist auch die Menge an Ausgängen, die für den Crawler tatsächlich benötigt werden.

  • 2x Front Stoßstangen Licht
  • 2x Front Scheinwerfer
  • 2x Front Standlicht
  • 2x Front Blinker
  • 2x Heck Lichter
  • 2x Heck Blinker
  • 2x Heck Stoßstangen Licht (aktuell noch nicht montiert)
  • 2x Nummernschild

Wenn jedoch mehr PWM Ausgänge benötigt werden, kann ein weiteres Modul verbaut werden, dank I²C Bus.


RGB WS2812b für Flutlicht

Die LEDs in den Flutlichter haben dieselbe Breite wie die Streifen von den WS2812b. Daher ist ein Austausch simpel. Die Anzahl der RGBs ist natürlich abhängig von der Breite des Scheinwerfergehäuse. In den Dachscheinwerfer passen 20 und für die Stoßstange können 11 eingesetzt werden.

Aus mir nicht ersichtlichen Gründen ist mir zweimal bei beiden Streifen die erste RGB LED ausgefallen. Zuviel Spannung ist ausgeschlossen, weil hier in der ganzen Schaltung 5V verwendet werden. Zu dem Thema habe ich einen Eintrag gefunden, aber keine Antwort, was wirklich das Problem verursacht. Das erste Mal, dass zweimal derselbe Defekt auftaucht. Hier ist der Aufbau nicht anders als bei meinem Quadrocopter und auch hier verwendet ich für die RGB LEDs einen extra Step Down Stromversorgung. Wenn ich den Fehler gefunden habe, dann schreibe ich einen Blogpost dazu.

 

Piezo Summer als Hupe

Nach einer Stunde und verschiedenen Tönen und Melodien, klingelten meine Ohren. Ehrlich gesagt tat das in meinen Ohren weh, weshalb ich mich entschied die Hupe erstmal auszulassen.

Alternative habe ich noch einen MP3 Modul, dass mit einfachen Lautsprechern funktioniert. Aber als Hupe eher ungeeignet. Also werde ich da noch etwas forschen müssen.

  

Gimbel für Fahrkamera

Bereits mein kleiner 1:16 Crawler hat einen Servo, mit dem nach links und recht die Kamera schwenken kann. Um da noch einen draufzusetzen, kann jetzt mein neuer Crawler auch hoch und runter kippen. Hierfür verwende ich (noch) ein bestehendes Gimbal System, das aber kein passende Steckhalterung für die Kamera hat. Deshalb habe ich die Kamera provisorisch mit Heizkleber angebracht.


So ganz stimmt mich das noch nicht zufrieden. Im Grunde verwendet der Aufbau viel Raum und mir fehlt die Möglichkeit, nachträglich die Kamera in der Höhe zu verstellen.

Von der Fernsteuerung konnte ich die Bewegungsgrenze einstellen, so dass die Kamera im Gehäuse nicht mehr sinnlos aneckt. Das geht bei OpenTX im Bereich des Mixer, wo auch das Steuersignal umgekehrt werden kann, wenn z.B. ein Servo sich in die umgekehrte Richtung bewegen sollte.

In der Entwicklung habe ich ein eigen entworfenes Gimbal. Muss allerdings noch gedruckt werden. Und dann muss sich noch zeigen, ob meine Lösung auch wirklich funktioniert.

 


Fehler finden und Ausbessern

Nach den ersten zwei Spazierfahrten traten erste Fehler auf. Die Verkabelung war in Ordnung, aber die Kräfte, die auf den Leitungen auftraten waren stärker. Alle betroffenen Stellen habe ich neu verlötet und zusätzlich mit Heizkleber verstärkt.


Der zweite Mangel sind die Magneten, die die Karosserie festhalten. Denn die sind eigentlich für das Anheften von Lexan Karosserien gedacht. Für ABS Karosserien reichen vier in der kleinen Größe nicht aus.

Bei zu ruckartigen Bewegungen kam es dazu, dass die Magnetverankerung nicht hielt und somit sich die Karosserie sich ablöste. (Verbesserung ist in Arbeit.)

Die Rückfahrkamera war im Gegensatz zur Frontkamerahalterung nicht festgeschraubt und ist aktuell noch aus LEGO Teilen aufgeklebt. Nicht ideal und auch etwas schwer. Allerdings nur ein Provisorium.

Natürlich wird dies durch ein Eigenentwurf ersetzt und muss noch gedruckt werden. Hier bin ich jedoch noch nicht sicher, ob ich das noch überarbeiten kann. Das Beste daran ist, dass dort auch die Kamera nach links und rechts geschwenkt werden kann.

 

Schlusswort

Das Ergebnis kann sich sehen lassen. Auch wenn ein paar Macken am Lack sind oder das Kabel-Management nicht perfekt ausgelegt ist. In Summe habe ich einiges geschafft und ein Teil meiner Erfahrungen erweitern können. Besser wäre jemanden zu kennen, der sich genau mit der Materie beschäftigt.

Foren wären toll, wenn man nicht am Ende so viel Informationen selektieren müsste, welche Lösungen für einen selbst geeignet sind. Am Ende bin ich mit dem eigenständigen Erschließen auf eine ähnliche Zeitspanne gekommen. Als Zeitmaß sehe ich die damalige Forenhilfen, bei denen ich am Ende keine Antwort bekam und ich die Lösung selbst gefunden oder entwickelt habe. Ok, ganz ohne Foren lesen bin ich nicht ausgekommen. Empfehlung für den Fahrtenregler war in den Foren sehr eindeutig.

Die Firmware für die Beleuchtung braucht noch etwas feintuning. Hier sollen die LEDs dimmen beim Ein- und Ausschalten und mit dem vierten Kanal der Modus und Helligkeit eingestellt werden. Aber das habe ich noch in Arbeit...




Ameisen Simulation und andere Dinge

Wer lange sich schon mit C# beschäftig, hat sicherlich schon mal was von AntMe gelesen oder gehört. Diese Idee hatte ich aufgegriffen und mi...