Hallo zusammen, ich möchte ein MC Projekt in Angriff nehmen und brauche eure Hilfe bei der Hardware und Softwareauswahl. Wenn es einen besseren Lösungsansatz gibt bin ich sicher nicht beratungsresistent ;) Problemstellung: Für mein Ferngesteuertes Auto habe ich eine Regler/ Steller (ESC) verbaut bei dem die Bremse erst bei erreichen der letztes 20% des Hebelweges zieht. Möglich wären ja 50%. Diese Eigenschaft des Regler kann ich leider nicht beeinflussen. Außerdem gibt es an der Fernsteuerung keine Optionen, um diese Unschönheit zu korrigieren. Zusammenhang siehe Grafik. Der in der Fernsteuerung verbaute MC ermittelt die Gas/Bremskurve über einen linearen 5K Poti. Die Spannung am Poti und damit am GPio des MC ist 5V. Nun meine Idee. Ich nehme ein kleines MC Board mit 5V und 5V GPIO Toleranz einem Analog Input und Analogem Output wandler und korrigiere die Kennlinie dort. Die Schaltung wäre dann: 5k Poti an das neue MC Board und ein weiterer Wiederstand am Ausgang gegen Ground 5K? An diesem greift der alte MC der Fernsteuerung sein Signal ab. Ich bin auf der Suche nach einem micro/Nano MC Board mit folgenden Anforderungen: 1. Sehr klein, um es in der Fernsteuerung zu verbauen, Format vielleicht wie Arduino Nano 2. Vc und GPIO 5V tolerant mit min. einen 8 Bit Analog Input und einen Analog Output und ein paar weitere freie GPIO's 3. Samplefrqeuenz sollte bei max 5ms liegen 3. Verfügbare Toolchain ohne extra Kosten, Prog. über USB wohl nur sinnvoll und einfach einzurichten 4. Programmierung in C Könnt ihr mir eine MC plattform und eine MC Board für meinen Anwendungsfall empfehlen oder seht sonst einen grundsätzliches Problem bei meinem Lösungsansatz? Dank Rainer
Ja, aber die Gas und Bremskurve kann nicht angepasst werden
RCProg schrieb: > Könnt ihr mir eine MC plattform und eine MC Board für meinen > Anwendungsfall empfehlen ATTiny13 - entweder AVR Toolchain oder aktuelle Arduino IDE mit Aufsatz Beitrag "Neuer Arduino core für ATTiny13" wenns unbedingt ein Board sein muss einen ATTiny85, das Brtt heißt dann Digistump - ebenfalls AVR-Toolchain oder Arduino IDE mit ATTiny bzw. Digistump Aufsatz RCProg schrieb: > Für mein Ferngesteuertes Auto habe ich eine Regler/ Steller (ESC) > verbaut bei dem die Bremse erst > bei erreichen der letztes 20% des Hebelweges zieht. Kommt mir bekannt vor. Hab's zwar nur mit nem Servotester überprüft, nach Reklamation "Bremse funzt net" den kaufbetrag erstattet bekommen.. ;) Ich denke mal, dass Du von einem Regler für einen herkömmlichen Bürten-kommutierten Motor sprichst. Bei den asiatischen Reglern sind die Chips meistens abgeschliffen, und Software für Bürstencontroller ist auch eher simpel gestrickt. Eine Alternative wären "bruhless" Motoren. Zum einen hat die Software einen höher entwickelten Stand, zum anderen findet man Alternativen im OpenSource Bereich
bianchifan schrieb: > RCProg schrieb: >> Könnt ihr mir eine MC plattform und eine MC Board für meinen >> Anwendungsfall empfehlen > > ATTiny13 - entweder AVR Toolchain oder aktuelle Arduino IDE mit Aufsatz > Beitrag "Neuer Arduino core für ATTiny13" > > wenns unbedingt ein Board sein muss einen ATTiny85, das Brtt heißt dann > Digistump - ebenfalls AVR-Toolchain oder Arduino IDE mit ATTiny bzw. > Digistump Aufsatz werde ich mir heute genauer anschauen :) bianchifan schrieb: > RCProg schrieb: >> Für mein Ferngesteuertes Auto habe ich eine Regler/ Steller (ESC) >> verbaut bei dem die Bremse erst >> bei erreichen der letztes 20% des Hebelweges zieht. > > Kommt mir bekannt vor. > Hab's zwar nur mit nem Servotester überprüft, nach Reklamation "Bremse > funzt net" den kaufbetrag erstattet bekommen.. ;) > Ich denke mal, dass Du von einem Regler für einen herkömmlichen > Bürten-kommutierten Motor sprichst. > Bei den asiatischen Reglern sind die Chips meistens abgeschliffen, und > Software für Bürstencontroller ist auch eher simpel gestrickt. > > Eine Alternative wären "bruhless" Motoren. > Zum einen hat die Software einen höher entwickelten Stand, zum anderen > findet man Alternativen im OpenSource Bereich Der Regler/Steller ist natürlich ein Asiate und die Fernsteuerung auch! Der MC-chip der Fernsteuerung hat tatsächlich keine Beschriftung Der Motor ist ein Brushless und passt eben sehr gut zu dem Regler, wenn da nicht dieses kleine Problem mit der Bremskurve wäre.... Die Anpassung soll in jedem fall in der Fernsteuerung erfolgen!
RCProg schrieb: > bianchifan schrieb: >> RCProg schrieb: >>> Könnt ihr mir eine MC plattform und eine MC Board für meinen >>> Anwendungsfall empfehlen >> >> ATTiny13 - entweder AVR Toolchain oder aktuelle Arduino IDE mit Aufsatz >> Beitrag "Neuer Arduino core für ATTiny13" >> >> wenns unbedingt ein Board sein muss einen ATTiny85, das Brtt heißt dann >> Digistump - ebenfalls AVR-Toolchain oder Arduino IDE mit ATTiny bzw. >> Digistump Aufsatz > > werde ich mir heute genauer anschauen :) Der ATTiny13 mund ATTiny85 haben nur 10 Bit ADC aber keine DAC an Board laut datasheet! :/
Du hast noch gar nicht erklärt, warum du die Kennlinie korrigieren möchtest.
Und du willst wirklich in die Schaltung der Fernsteuerung eingreifen? Mach das doch lieber auf der anderen Seite hinter dem Empfänger. Da musst du nur die Pulsweite des Servosignals verändern. Du musst dich nicht mit ADC und DAC rumschlagen und kannst deine Fernsteuerung auch noch für andere Modelle verwenden, die diese Anpassung nicht brauchen. Wenn du es doch so machen willst: ATTiny geht schon. Einen DAC kann man mit PWM improvisieren.
Stefan U. schrieb: > Du hast noch gar nicht erklärt, warum du die Kennlinie korrigieren > möchtest. Er hat auch nicht erklärt warum er bremsen möchte, auch nicht warum e RC-Auto fährt und überhaupt. Er hat aber ein sinnvolles Diagramm mitgegeben und auch wenn er ein paar Kleinigkeiten unsauber vertüdelt hat: er hat sinnvoll abstrahiert, gekapselt und um Hilfe gebeten, sodass was mit uC zu machen ist verständlich ist. Piesackt ihn nicht weiter! Zur Sache: ein Festwiderstand zwischen Schleifer und Ende des "Gasknüppelpotis" gibt der ganzen Kennlinie einen "S-Schlag". Leider auch auf der "Gasseite", aber vielleicht liesse sich damit ja leben... Es gilt den passenden Wert experimentell zu ermitteln.
> Piesackt ihn nicht weiter!
Nun, wenn ich wüsste, warum er die Kennlinie ändern möchte, kann ich ihm
möglicherweise eine elegante einfache Lösung vorschlagen.
na komm schon! schrieb: > Stefan U. schrieb: >> Du hast noch gar nicht erklärt, warum du die Kennlinie korrigieren >> möchtest. > Er hat auch nicht erklärt warum er bremsen möchte, auch nicht warum e > RC-Auto fährt und überhaupt. > > Er hat aber ein sinnvolles Diagramm mitgegeben und auch wenn er ein paar > Kleinigkeiten unsauber vertüdelt hat: er hat sinnvoll abstrahiert, > gekapselt und um Hilfe gebeten, sodass was mit uC zu machen ist > verständlich ist. > Piesackt ihn nicht weiter! Die Bremse des Fahrzeuges kann ich nicht richtig dosieren und damit auch nicht den Bremsweg! 1. Weil es einen sehr langen toten Weg am Steuerknüppel der Fernsteuerung gibt und ich schlecht einschätzen kann wann die Bremsung beginnt 2. Weil eben die Dosierung innerhalb des nutzbaren! Hebelweges schlecht ist > > Zur Sache: ein Festwiderstand zwischen Schleifer und Ende des > "Gasknüppelpotis" gibt der ganzen Kennlinie einen "S-Schlag". Leider > auch auf der "Gasseite", aber vielleicht liesse sich damit ja leben... > Es gilt den passenden Wert experimentell zu ermitteln. Das wäre suboptimal. Wie Du schon sagst, das würde die Gaskennlinie beeinflussen! Also das Ziel ist die Rote Kennlinie meiner Grafik zu durchlaufen ;)
Stefan schrieb: > Und du willst wirklich in die Schaltung der Fernsteuerung eingreifen? > Mach das doch lieber auf der anderen Seite hinter dem Empfänger. Da > musst du nur die Pulsweite des Servosignals verändern. Du musst dich > nicht mit ADC und DAC rumschlagen und kannst deine Fernsteuerung auch > noch für andere Modelle verwenden, die diese Anpassung nicht brauchen. > > Wenn du es doch so machen willst: ATTiny geht schon. Einen DAC kann man > mit PWM improvisieren. Richtig, das ist die bessere Wahl, kann z.B. ein ATTiny ein PWM Signal eines Empfängers in ms Raster Messen, Nachbearbeitung und wieder in der der notwendigen Genauigkeit an einem GPio ausgeben? Die Idee hört sich gut an :)) Der Pegel des Empfängers ist wohl immer 5V, das würde passen...
Wenn ich das Problem richtig erkenne(?), geht es darum, den linearen Knüppel-/ Gasweg in einem bestimmten Bereich zu begradigen, um einen Totbereich zwischen Gasgeben und Bremsen zu schaffen. - dafür reicht nach dem Empfänger in den Kanalweg eingeschleift ein Attiny13 aus, genauso gut kann ein Arduino nano etc. genommen werden - wenn die Fernsteuerplattform noch nicht feststeht, ist natürlich eine "Taranis" ideal, aber auch eine Turnigy 9xr, die auf OpenTx geflasht wurde, ist sehr gut geeignet (+ Sendemodul), weil Deine Kurve fast genau so wie in Der Skizze im Sender grafisch eingegeben wird und super anpaßbar ist. https://hobbyking.com/en_us/turnigy-9xr-pro-radio-transmitter-mode-2-without-module.html Gruß
Bussard schrieb: > Wenn ich das Problem richtig erkenne(?), geht es darum, den linearen > Knüppel-/ Gasweg in einem bestimmten Bereich zu begradigen, um einen > Totbereich zwischen Gasgeben und Bremsen zu schaffen. Nicht ganz, sondern ich möchte einen Totbereich verkleinern (Bremsweg) > - dafür reicht nach dem Empfänger in den Kanalweg eingeschleift ein > Attiny13 aus, genauso gut kann ein Arduino nano etc. genommen werden Keine Ahnung welches Board ich nehmen soll? 1. 5V Pegel fest (Empfänger und Regler out) 2. genung PWM's (In und Out) und guten handling für meine Vorgaben Servo Timing: a. Periodendauer 20ms b. Regelbare Tastbreite von 0% -> 0,5ms 50% -> 1ms 100% -> 1,5ms 3. Genug Rechenleistung, RAM und ROM um diese Regelbereich zu korrigieren 4. weitere Anforderung siehe oben...
Du mußt doch nur EINE signalverändernde Schaltung in EINE Leitung einschleifen, die vom Empfänger zum Fahrtregler. Das kann jeder Arduino. Arduino Nano kostet je nach Quelle zwischen 2,50 und 20 Euro. Entwicklungsumgebung kostenlos. Fertig. Da der Arduiono nichts anderes zu tun hat, als alle 20ms EINEN Puls variabler Länge aufzunehmen und verändert wiederzugeben, ist das Programm denkbar simpel: Für die Pulsaufnahme genügt pulseIn() Danach eine Fallunterscheidung: - Pulslänge 50-100% der möglichen Variation: genauso weitergeben. - Pulslänge 0-45% (ein bißchen Totzeit noch lassen): Auszugebende Pulslänge so berechnen, daß bei 45% daraus 20% werden und bei 0% daraus 0% werden. Ich lasse jetzt bewußt die Feinheiten weg, daß die Pulslänge ja nicht von 0 bis 100% geht, sondern von ca. 1500 bis 2500us... Danach den Puls zu Fuß mit digitalWrite HIGH delayMicroseconds digitalWrite LOW ausgeben. Fertig.
TomH schrieb: > Du mußt doch nur EINE signalverändernde Schaltung in EINE Leitung > einschleifen, die vom Empfänger zum Fahrtregler. > > Da der Arduiono nichts anderes zu tun hat, als alle 20ms EINEN Puls > variabler Länge aufzunehmen und verändert wiederzugeben, ist das > Programm denkbar simpel: > > Für die Pulsaufnahme genügt pulseIn() > > Danach eine Fallunterscheidung: > - Pulslänge 50-100% der möglichen Variation: genauso weitergeben. > - Pulslänge 0-45% (ein bißchen Totzeit noch lassen): Auszugebende > Pulslänge so berechnen, daß bei 45% daraus 20% werden und bei 0% daraus > 0% werden. > > Ich lasse jetzt bewußt die Feinheiten weg, daß die Pulslänge ja nicht > von 0 bis 100% geht, sondern von ca. 1500 bis 2500us... > > Danach den Puls zu Fuß mit > digitalWrite HIGH > delayMicroseconds > digitalWrite LOW > ausgeben. > > Fertig. klasse, danke für die kurze Ausführung! dann bestelle ich mir mal ein oder zwei Arduino Nano... > Das kann jeder Arduino. > > Arduino Nano kostet je nach Quelle zwischen 2,50 und 20 Euro. > Entwicklungsumgebung kostenlos. Fertig. > Bei welchem seriösen Bezugsquelle gibt es ihn den für 2,50 ? Bei conrad, völkner, Reichelt liegen wir immer bei 20 + Versand
Rainer O. schrieb: > Bei welchem seriösen Bezugsquelle gibt es ihn den für 2,50 ? > Bei conrad, völkner, Reichelt liegen wir immer bei 20 + Versand Aliexpress z.B. Da gibt es den Nano, bzw. Arduino Nano-kompatible Clones ab 1.64 Euro, incl. Versand. Allerdings dauert die Lieferzeit dann natürlich vglw. lang, wegen Versand aus China. https://www.aliexpress.com/item/Nano-V3-ATmega168-CH340-MicroUSB-Compatible-for-Arduino-Nano-V3-0/32630652771.html
Joachim S. schrieb: > Rainer O. schrieb: > >> Bei welchem seriösen Bezugsquelle gibt es ihn den für 2,50 ? >> Bei conrad, völkner, Reichelt liegen wir immer bei 20 + Versand > > Aliexpress z.B. > Da gibt es den Nano, bzw. Arduino Nano-kompatible Clones ab 1.64 Euro, > incl. Versand. Allerdings dauert die Lieferzeit dann natürlich vglw. > lang, wegen Versand aus China. > https://www.aliexpress.com/item/Nano-V3-ATmega168-CH340-MicroUSB-Compatible-for-Arduino-Nano-V3-0/32630652771.html Auf den letzten cent will ich jetzt nicht schauen und dafür 4 Wochen warten müssen. Deshalb habe ich nun bei ebay 2 Boards für je 4,50 bestellt und mit normalen Versand -> ca. 1-2 Tage In voller Hoffnung, das der Clone einen vernünftigen bootloader hat und der USB-Treiber für win 7 64Bit funktioniert :)
Cyblord -. schrieb im Beitrag #4796345: > Und wenn der TE dann mit dem fehlenden DAC kommt, weiß ICH schon alles > was man über den TE wissen muss. Den mutmaßlichen Wissensstand kann man bereits aus dem Eröffnungsbeitrag heraus lesen bzw. dem Thema. Aber irgendwie erwarten manche, das man allwissend geboren wird.. Cyblord -. schrieb im Beitrag #4796345: > Dazu muss man allerdings programmieren können und 3 Leitungen muss man > auch selber an den Controller anschließen können. > > Kann der TE allerdings von A-Z nicht. Wenn nach einer solchen Anfrage > dann erst mal die Frage nach einem Distributor kommt, dann weiß man > schon alles. .... RCProg schrieb: > Der ATTiny13 mund ATTiny85 haben nur 10 Bit ADC aber keine DAC an Board > laut datasheet! Der DAC ist völlig uninteressant, PWM wurde bereits erwähnt. Um Mikrocontroller habe ich immer einen Riesenbogen gemacht, bis ich vor ca. 10Jahren in einem Minolta-Forum mit einem ATTiny13 konfrontiert wurde. Da hat jemand das komplette Blitzprotokoll so umgefriemelt, dass ältere Blitze auch auf den(damals) neueren Digitalkameras verwendet werden konnten. Das Programm ist ein wenig aufwändiger ;) RCProg schrieb: > Der Motor ist ein Brushless und passt eben sehr gut zu dem Regler, wenn > da nicht dieses kleine Problem mit der Bremskurve wäre.... > > Die Anpassung soll in jedem fall in der Fernsteuerung erfolgen! Du hast also bereits einen brushless, schön. Die meisten sind Hobbywing Derivate, die sollten sich auf die neuste Soft updaten lassen. Oder halt eine OpenSource Alternative aufspielen, dazu musst Du aber in den einschlägigen Foren suchen, für Autos habe ich allerdings keinen Überblick. RCGroups ist auf jeden Fall immer gut für den Einstieg. Anpassung der Fernbedienung ist suboptimal. Wie bereits erwähnt, das "Servosignal" am Empfänger abgreifen, verunstalten und den ESC damit vollstopfen. Ein ATTiny13 reicht da dicke auch ohne handoptimierten Assemblercode. Ein Nano ist IMHO Unfug, ist was für Arduino-Jünger ohne viel technische Kenntnisse oder zu faul, einen USBASP anzustecken. Leg Dir zwei USBASP zu und ne Handvoll pro minis zum Spielen, so für alle Fälle. Und wenn Du auf den Pistolengriff verzichten bzw. Dich mit einem Standardsender anfreunden kannst kannst Du auf diverse OPenSource Projekte zurückgreifen, angefangen beim ausgeschlachteten oder 3D-gedruckten Minimalmodell mit Arduino pro mini bis zum STM32 mit 32 oder noch mehr Kanälen. Meine Empfehlung lautet Deviation, damit kannst Du jedes erdenkliche Protokoll fahren. Mit diesen Modellen ist Dir das ECS-Verhalten total schnuppe, da Du Dein gewünschtes Verhalten im Sender definierst.
> RCProg schrieb: >> Der ATTiny13 mund ATTiny85 haben nur 10 Bit ADC aber keine DAC an Board >> laut datasheet! > Der DAC ist völlig uninteressant, PWM wurde bereits erwähnt. > Um Mikrocontroller habe ich immer einen Riesenbogen gemacht, bis ich vor > ca. 10Jahren in einem Minolta-Forum mit einem ATTiny13 konfrontiert > wurde. > Da hat jemand das komplette Blitzprotokoll so umgefriemelt, dass ältere > Blitze auch auf den(damals) neueren Digitalkameras verwendet werden > konnten. > Das Programm ist ein wenig aufwändiger ;) > RCProg schrieb: >> Der Motor ist ein Brushless und passt eben sehr gut zu dem Regler, wenn >> da nicht dieses kleine Problem mit der Bremskurve wäre.... >> Die Anpassung soll in jedem fall in der Fernsteuerung erfolgen! > Du hast also bereits einen brushless, schön. > Die meisten sind Hobbywing Derivate, die sollten sich auf die neuste > Soft updaten lassen. > Oder halt eine OpenSource Alternative aufspielen, dazu musst Du aber in > den einschlägigen Foren suchen, für Autos habe ich allerdings keinen > Überblick. > RCGroups ist auf jeden Fall immer gut für den Einstieg. > Anpassung der Fernbedienung ist suboptimal. > Wie bereits erwähnt, das "Servosignal" am Empfänger abgreifen, > verunstalten und den ESC damit vollstopfen. > Ein ATTiny13 reicht da dicke auch ohne handoptimierten Assemblercode. > Ein Nano ist IMHO Unfug, ist was für Arduino-Jünger ohne viel technische > Kenntnisse oder zu faul, einen USBASP anzustecken. > Leg Dir zwei USBASP zu und ne Handvoll pro minis zum Spielen, so für > alle Fälle. > Und wenn Du auf den Pistolengriff verzichten bzw. Dich mit einem > Standardsender anfreunden kannst kannst Du auf diverse OPenSource > Projekte zurückgreifen, angefangen beim ausgeschlachteten oder > 3D-gedruckten Minimalmodell mit Arduino pro mini bis zum STM32 mit 32 > oder noch mehr Kanälen. > Meine Empfehlung lautet Deviation, damit kannst Du jedes erdenkliche > Protokoll fahren. > Mit diesen Modellen ist Dir das ECS-Verhalten total schnuppe, da Du Dein > gewünschtes Verhalten im Sender definierst. Weiter oben habe ich schon geschrieben, dass der Lösungsansatz nun eine Anpassung des PWM Signals zwischen Empfänger und Regler sein wird! Und genau für diese Anwendung brauche ich eine Lösung (MC Board). Außerdem wurde ebenfalls schon gepostet, dass ich keine andere Fernsteuerung und auch keinen anderen Regler verwenden will...
Was ist mit Rückwärts fahren? Wenn die Kennlinie für den Bereich "Hebel nach hinten drücken" verformt wird, betrifft das auch die rückwärts Fahrt.
Hey Stefan, der Regler ist nur mit Bremsfunktion parametriert. Deine Idee das PWM Signal auszuwerten ist super, dass lässt noch deutlich mehr Funktionalität zu. z.B. eine fehlende Fail-safe-Funktion nachzurüsten :)
Hallo zusammen, am Montag sind die beiden Arduino Nano Module mit der Post angekommen :) Die Software ist heute fertig geworden und wurde erfolgreich mit Empfänger und der Fernsteuerung getestet. D.h. die Bremskennlinie wird nun on the fly im Nano für meine zweck umskaliert. Danke, Gruß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.