Posts mit dem Label Analog Servo werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Analog Servo werden angezeigt. Alle Posts anzeigen

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...




Sonntag, 20. Dezember 2020

Alternativen zu den original LEGO Technic Motoren können beispielsweise selbstgemacht sein



Mit etwas Basteln kann ein passender Motortreiber gelötet werden, welches die Power-Function Motoren mit einem Microcontroller angesteuert werden könnten. Dies bedeutet etwas Aufwand, der sich zwar lohnt, aber auch eine Hürde darstellen kann, wenn man sich nur darauf konzentrieren möchte, etwas zu bauen und zu programmieren.

Die Kittenbot Micro:bit bieten da mehr, da sie nicht nur ein Mikrocontroller Board liefern, sondern auch Motoren anbieten, die mit LEGO Technic kompatible sind. Das Tolle an diesen Motoren ist, dass diese einfach mit dem PWM Signal angesteuert werden können und auch mit einem Stecksystem kommen, das in der Microcontroller Welt stark verbreitet ist. Worauf man sich jedoch einstellen muss, ist, dass die Bauform sich von den  der LEGO Technic Motoren unterscheiden.

 

Vorgestellt werden hier:

  • Motor Green und Orange
  • Motor Rot
  • Motor Grau

 

Unterschiede

Beim Kauf verwirrte mich die Bezeichnung ‚Servomotor‘. Ist zwar nicht falsch, aber auch irreführen, da man unter einem Servo immer einen beschränkten Drehbereich ausgeht. Der grüne und orange Servomotor steuern sich wie einen Motorenregler oder, anders ausgedrückt, Fahrtenregler. Beim grauen Motor ist eine Servo-Funktion erkennbar, auch, wenn diese keinen wirklichen Mittelpunkt hat. Denn dieser lässt sich mit dem Standard PWM Signal um fast 360 Grad drehen. Jedoch muss am Anfang festgelegt werden, wo die Mittelstellung liegen soll und, ohne Sensoren zum Kalibrieren, wird dies nur mit manuellen Eingaben möglich sein.

 

 

Grüner und oranger Motor (Servo, ähnliche Form)

Beide bilden dieselbe Funktion ab. Die Bezeichnung 'Servo' stimmt nur bedingt, weil sich das Ergebnis wie bei einem Servo Hack verhält und sich nicht nach links oder rechts (ca. 90 Grad) in eine Stellung bewegt, sondern weiterdreht. Es kann lediglich die Drehgeschwindigkeit reguliert werden.

Aus der Bauformreihe gibt auch eine graue blockgeformte Variante, das sich vermutlich wie die folgende beschriebene Servomotor verhält.

 

Details:

Anschluss: 3 Pins (Steuerung, VCC, GND

Betriebsspannung: 3,3V bis 6V

Stromaufnahme (max.): 200mA bis ca. 450mA (700mA)

Drehmoment: 5 Ncm oder 0,5 Kg

 


 

Grauer Motor (Blockform)

Dieser verhält sich wie ein Servo, kann aber um 360 Grad frei positioniert werden. Also je nachdem von wo man startet, könnte dort der Mittelpunkt sein. Hier fehlt eine mögliches Auslesen der Position, um den Mittelpunkt zu kalibrieren.

 

Details:

Anschluss: 3 Pins (Steuerung, VCC, GND)

Betriebsspannung: 4,8V bis 6V

Stromaufnahme: 900mA

Drehmoment: 20 Ncm oder 2 Kg


 

 

Roter Motor (Blockform)

Dieser kommt ohne Motortreiber, so dass dieser nicht mit einem PWM Signal steuerbar ist. Hier wird ein eigner Motortreiber fällig. Aus meiner Sicht kann man diesen Motor für etwas verwenden, das dauerhaft in einer Geschwindigkeit drehen soll.

 

Details:

Anschluss: 2 Pins (VCC, GND)

Betriebsspannung: 4,8V bis 6V

Stromaufnahme: 900mA

Drehmoment: 20 Ncm oder 2 Kg

 

 

 

Kompatible Bauformen

Interessant ist die Bauform, weil diese mit LEGO Technic oder anderen Klon-Produkten eingesetzt werden können.
Eigentlich ist das Kittenbot Board dazu gedacht, eigene Sets erstellen zu können. Diese sind ebenfalls mit konnektoren Löcher versehen.

 




 

 

 

Fazit

Das Kittenbot Micro:bit ist nicht sonderlich verbreitet, wie Makeblock beispielsweise. Dieses bietet auch Kompatibilität zu LEGO Technik an -scheint es aber nicht mehr zu geben.

Die Leistungsdaten sind leider sehr schwach. Ich hatte von den Servos in Blockform mehr erwartet. Servos mit ähnlicher Baugröße haben oft schon fast das doppelte an Drehmoment. Dies ist aber nicht schlimm, mit unterschiedlicher Zahnradübersetzung kann ein größeres Drehmoment erreicht werden.

 

Sonntag, 17. Januar 2016

Arduino Control (Teil 5) - PWM Signal einlesen


Das Einlesen und Ausgeben des PWM Signals ist mit dem Beispiel für "Analoges Signal einlesen" vergleichbar. Daher gehe ich nochmal auf das Signal selbst ein.

Im Modellbau werden oft Analog Servos verwendet und nutzen zur Ansteuerung das PWM Signal. Die eingesetzte Frequenz liegt bei 50Hz. Bei Digital Servos wird ebenfalls ein PWM Signal verwendet, allerdings können diese mit einer deutlichen höheren Frequenz umgehen. Das bedeutet natürlich am Ende, dass in jeder Sekunde die Position des Servoarms mehrmals eingestellt wird. Also je höher die Frequenz, desto öfter pro Sekunde wird die Position festgelegt. Der Vorteil liegt auf der Hand: mit dem Digital Servo kann man wesentlich genauer arbeiten, hat aber entsprechend mehr Verbrauch. Hier muss man abwägen, ob sich für den geplanten Einsatz ein Digital Servo lohnt.

Zunächst zu dem PWM selbst sollte klar sein, wie  eigentlich das Signal aussieht. Im folgenden Bild ist zu sehen, dass eine Periodendauer aus einem HIGH und einem LOW Pegel besteht.
Mit der Pulslänge von 1ms bis 2ms wird das Steuersignal für den Ziel Steuereinheit bestimmt. Zum Beispiel bei einem Servo wäre dann bei 1ms Pulslänge der Winkel bei 0 Grad, bei 1,5ms bei 60 Grad und bei 2ms wäre die Ausrichtung  dann 120 Grad.
Im Modellbau ist der HIGH Level für gewöhnlich zwischen 4,8V und 6V. Wer einen Mikrocontroller mit einer Betriebsspannung von 3,3V verwendet, benötigt einen Pegelwandler. Hier reicht ein Wandler von 3,3V auf 5V aus. Natürlich können einige Servos wiederum mit der niedrigen Signalspannung umgehen. Dazu gehören z.B. Micro Servos.
Das HIGH Signal beinhaltet den Steuerwert und kann generell im RC Modellbau eine Pulslänge von 1 bis 2 Millisekunden betragen. Der LOW Zustand stellt die restliche Zeit der gesamten Periode. Zeitlich gesehen wird nichts mehr weiteres unternommen bis die nächste Periode beginnt. Bei 50Hz liegt die Periodendauer bei 20 Millisekunden, was bedeutet, dass 18 bis 19 Millisekunden kein neuer Steuerwert zugewiesen wird. Bei Digital Servos kann der LOW-Level-Zeitraum verkürzt werden. Als Beispiel könnte dann eine Periodendauer von 5 Millisekunden geschaltet werden, so das der LOW Zustand nun zwischen drei bis vier Millisekunden andauert.
Kommen wir zum Arduino Code. Anstatt der Methode analogRead, wird pulseIn(pinNumber, HIGH) verwendet. Der Ausgabewert kommt als ganze Zahl und stellt die Microsekunden dar. Wenn ein Signal von einem einfachen Empfänger gelesen wird, dann sollte ein Wert zwischen 900 bis 2000 als Ergebnis kommen.

// Digitaler Pin Nummer 3
int pin = 3;

void setup() {
 
  Serial.begin(9600);
 
  // Pin Eingang festlegen
  pinMode(pin, INPUT);
}

void loop() {
 
  // Pin Eingang einelsen
  int result = pulseIn(pin, HIGH);
 
  // Nur Inhalt im If ausführen,
  // wenn der Status sich geändert hat.
  if(result != lastValue)
  {
   // Member Field überschreiben.
    lastValue = result;
  
   // Buffer vorbereiten und
   // den Wert in zwei bytes aufteilen.
    byte ba[2];
    ba[0] = (byte)((result >> 8) & 0xff);
    ba[1] = (byte)(result & 0xff);
   
    // Buffer Inhalt von zwei Bytes senden.
    Serial.write(ba, 2);
       
    // Ermöglicht das Erkennen vom 1. und 2. Byte
    // in dem zwischen den Sendungen eine Pause gesetzt wird.
    delay(100);
  }  

  delay(20);
}

Für das Programm auf dem Desktop kann der selbe Code Schnipsel verwendet werden, wie aus meinem Blog Post "Arduino Control (Teil 4) - Potentiometer Wert am PC ausgeben". Zur Vollständigkeit steht dieser im folgenden Abschnitt.

static void Main(string[] args)
{
    
// Die Verwendete COM Verbindung
    // sollte der aus dem Arduino Programm entsprechen.
    
    SerialPort sp = new SerialPort("COM16", 115200);
    // Event zuweisen für den Empfang.    
    sp.DataReceived += sp_DataReceived;
    // Verbindung öffnen.
   
// Wenn das Programm gestartet ist, 
    // sollte der Arduino bereits mit dem PC verbunden sein.
    
    sp.Open();
    while (true)
    {
       
// Nur warten.        
       Thread.Sleep(1000);
    }
}

// Wird ausgeführt, wenn Daten im Empfangspuffer vorhanden sind.
static void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    
// SerialPort aus 'sender' casten.    
    SerialPort sp = (SerialPort)sender;
    // Bytes einlesen vom Empfang und auf die Console wiedergeben.    
    byte[] buffer = new byte[2];
    
if (sp.Read(buffer, 0, 2) != 0)
    {
        
Console.Clear();
        
// Die zwei empfangenen Byte müssen wieder zusammengelegt werden, 
        // um den Eigentlichen Wert wiederzugeben.
        
        Console.WriteLine("Received: {0} micro secounds", (int)buffer[0] << 8 | buffer[1]);
    }
}

Sinnvollerweise kann dieses Beispiel mit einer Fernsteuerung und einem Empfänger verwendet werden.

Quellcode zum Download
·         Für den Arduino reicht der Code aus dem Post aus.


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...