Da doch einige Fehler in der ersten Version der Library waren, hier eine etwas fehlerkorrigierte Version.
@stochri,
jepp, gefunden. Es wird wohl ein bisschen dauern bei 137 Seiten Doku und 263 Files zur RP6-Lib. Ich schätze mal so zwischen 20 und 20000 Minuten
Zum Glück scheinen es ja nur 13 Dateien zur eigendlichen RP6-LIB zu sein.
Na, morgen/heute ist auch noch ein Tag.
Lieber Asuro programieren als arbeiten gehen.
Da doch einige Fehler in der ersten Version der Library waren, hier eine etwas fehlerkorrigierte Version.
schau dir das unten an für die pwm.
mit deiner hast du nur ca 15khz, beim rp6 muss die pwm ca mit 19khz laufen, ansonsten brennen die motortreiber durch.
weiterhin hilfst du den rp6 über den jordan, weil du kein sanftes anfahren machst und der wechsel der richtung zu schnell geht.
wenn du den aufbau und die baugruppenleistungen vom rp6 nicht kennst, lass lieber die finger weg.
Code:// Initialize Timer1 - PWM: // PWM, phase correct with ICR1 as top value. TCCR1A = (0 << WGM10) | (1 << WGM11) | (1 << COM1A1) | (1 << COM1B1); TCCR1B = (1 << WGM13) | (0 << WGM12) | (1 << CS10); ICR1 = 210; // Phase corret PWM top value - 210 results in // about 19 kHz PWM. // ICR1 is the maximum (=100% duty cycle) PWM value! // This means that the PWM resolution is a bit lower, but // if the frequency is lower than 19 kHz you may hear very // annoying high pitch noises from the motors! // 19 kHz is a bit over the maximum frequency most people can // hear! // // ATTENTION: Max PWM value is 210 and NOT 255 !!!
@roboterheld:
wie (fast) immer völliger Schwachsinn was Du hier postest.
Warum *DU* das mit Bascom nicht hinbekommst, kann ich nicht sagen - Du kennst Dich wohl mit Bascom nicht gut genug aus wie es scheint.
Ich habe die Motortreiber des RP6 gerade (auch wenn ich das schon vor ein paar Monaten mit ähnlichen Frequenzen getan habe) nochmals von 40000 Hertz bis unter 100 HERTZ (ohne kilo) getestet und keine Probleme damit gehabt. (allerdings ist diese niedrige Frequenz unter 100Hz absolut nicht für den Dauerbetrieb zu empfehlen - da vibrieren die Motoren schon ganz schön und ziehen auch deutlich mehr Strom als z.B. mit Frequenzen über 1kHz!)
Unterhalb von etwa 16 bis 18kHz hört man natürlich die erzeugte Frequenz und das geht einem ziemlich auf die Nerven solange man das nicht zum Musik machen ausnutzt wie es hier schon von stochri demonstriert wurde.
Das Laufverhalten der Motoren verändert sich natürlich auch.
19kHz ist eine sehr gute (unhörbare) Frequenz für die Motoren des RP6 - da muss nix dran geändert werden.
Aber man kann die Motortreiber auch mit anderen Frequenzen betreiben wenn man das unbedingt möchte...
MfG,
SlyD
PS: Das sanfte Anlaufen steigert die Lebensdauer der mechanischen Komponenten - wenn man direkt von 0 auf Maximalgeschwindigkeit oder umgekehrt wechselt, ist das für Motoren und Zahnräder *auf Dauer* gesehen nicht gut.
Das ist aber bei ALLEN Robotern egal welcher Bauart so...
sanftes an und abbremsen hab ich bei meinem großen Roboter mit sehr teurer Alu Mechanik auch drin.
das ist mein bascom-code. und der haut gut hin ohne das die motortreiber warm werden. wenn ich das sanfte bremsen nicht mache , mit anschliessender plötzlicher rückswärtsfahrt (auch mit winaver-c ) werden die motortreiber schön heiss . ergebnis ist : beim rp6 dient es nicht nur zur schonung der mechanik sondern auch zum schutz der motortreiber.dim Tccr1a_set as byte
dim Tccr1b_set as byte
Reset Tccr1a_set .wgm10 ' werte wie in winavr-c
Set Tccr1a_set .wgm11
Set Tccr1a_set .com1a1
Set Tccr1a_set .com1b1
Tccr1a = Tccr1a Or Tccr1a_set ' dann mit or dem register zugewiesen
hier noch einmal das gleiche :
Reset Tccr1b_set .wgm12
Set Tccr1b_set .wgm13
Set Tccr1b_set .cs10
Tccr1b = Tccr1b Or Tccr1b_set
Icr1h = 0
Icr1l = 210
Hallo,
OK der Bascom Code sieht schon viel passender aus.
Aber zu den Motortreibern und sanftem anlaufen:
Ich weiss nicht was Du mit dem Roboter angestellt hast - auch wenn ich mal eines der härteren Testprogramme laufen lasse kann ich das wirklich nicht nachvollziehen.
Das Testprogramm ist komplett OHNE sanftes anlaufen und jede Sekunde(!!!) wird die Laufrichtung gewechselt während der PWM Wert mit einer Periode von etwa 4 Sekunden zwischen 50 und 180 hoch und runtergefahren wird. Bei einer Spannung von 8.5V drehen die Räder damit OHNE weitere Last extrem schnell. Von den Encodern gemessene Maximalgeschwindigkeit war über 1500 Zählschritte / sekunde
(die RP6Lib würde eigentlich maximal 1000 zulassen.
Achtung: bitte nicht selbst ausprobieren Bei so einer Geschwindigkeit die Drehrichtung abrupt zu ändern ist auf Dauer gar nicht gut... )
Da werden die MOSFETs nur dann ein wenig warm, wenn ich die Motoren zusätzlich gut mit den Händen bremse. Wenn die frei laufen ist keine Temperaturerhöhung feststellbar gewesen.
MfG,
SlyD
meine batterein haben zur zeit 9,2 volt.
beim ersten rp6 ging unter belastung mit wechselseitigen fahren nach 30 minuten der rechte motor nicht mehr. muss den motortreiber gefetzt haben.
den richtungswechsel mache ich nur noch mit sanften runterfahren.
wieviel mah haben die motoren eigentlich bei verschiedenen belastungen?
roboterheld schrieb:
Liebe RP6-ASURO-User,schau dir das unten an für die pwm.
mit deiner hast du nur ca 15khz, beim rp6 muss die pwm ca mit 19khz laufen, ansonsten brennen die motortreiber durch.
weiterhin hilfst du den rp6 über den jordan, weil du kein sanftes anfahren machst und der wechsel der richtung zu schnell geht.
nach einigen Stunden Fahrzeit ist meinem RP6 noch kein Unglück geschehen. Die Motoren und die Mechanik scheinen ja doch robuster als gedacht zu sein. Wer seinen RP6 bei der Verwendung der ASURO-Lib schonen möchte, kann ja mit MotorSpeed(200,200) oder weniger fahren. Wer ganz sicher sein möchte, kann in der Motorspeed-Funktion noch eine Begrenzung hineinprogrammieren.
roboterheld schrieb:
Ich finde der Nickname "roboterheld" passt ganz gut zum Sprachstielwenn du den aufbau und die baugruppenleistungen vom rp6 nicht kennst, lass lieber die finger weg.
Lesezeichen