Hexapod mit PIC18F45K22 machbar?

#4951773
Lesenswert?

dünnwandiger Trog schrieb:
> Was spricht denn gegen einen Richtigen. Mit 12 oder mehr timern, wie zB
> einem dsPIC33FJ64GS606, nicht immer dieses spielzeug..

stimme dir voll zu ein DsPic ist besser geeignet (bzw. glaub mit einem 
8-bit PIC wirds eh schwirig...) aber der dsPIC33FJ64GS606 hat nicht 
genug Output-Compare-Einheiten... Bin mir nicht sicher, aber ich glaube 
die Motorcontrol-PWM's sind dafür nicht geeignet.

mit dem dsPIC33EP512MU814 sollts gehen. Würde aber eher einen STM32 oder 
so nehmen dafür...
Gast #4951816
Lesenswert?

Axel H. schrieb:
> Ich glaub nicht, dass das mit dem PIC (ordentlich) geht. Die Timer
> anzahl (min 1) ist eigentlich egal (weil man nur eine Timebase braucht)
> ABER es gibt nicht genug CCP-Einheiten (capture compare pwm)

Erschwerend kommt noch hinzu, daß man für 6 Beine eine inverse Kinematik 
rechnen muß.

Axel H. schrieb:
> Bin mir nicht sicher, aber ich glaube
> die Motorcontrol-PWM's sind dafür nicht geeignet.

Sind sie schon. Der größte Aufwand ist, alle nicht benötigten Features 
abzuschalten.

MfG Klaus
Gast #4952112
Lesenswert?

Wäre es nicht möglich einfach die I/O Ports per Timer ein/auszuschalten, 
wäre man dann nicht unabhängig von der  PWM Hardware? Ich würde 
sozusagen die PWM per Software basteln. Kam mir nur so der Gedanke
#4952300
Lesenswert?

Ich hab's mir das gerade angeschaut, ja es sollte gehen. Ob in C ist die 
Frage weil du da schon an die Grenzen gehst. In ASM sollte es gehn...

Ich nehm mal an das ist ein HTL Projekt oder so ?



Wenn du die "PWM Daten" im vorhinein berechnest/vorbereitest und ins 
SRAM speicherst dann:

Hab mir ausgerecht du braust ca. 7+ Instructions mit 1-2 Zyklen pro 
Inst. sind 10 Zyklen. Weil der Pic pro Zyklus 4 Taktzyklen braucht => 
4*10=40

für 1° Auflösung => (0,001s)/(360°)=360kHz

360kHz*40 = 14Mhz Oszilator Frequenz

bei Fmax=64Mhz (vom Pic) hättest du sogar 40 Instriuctons Zeit... Könnt 
sogar in C gehn

dann hättest du noch 9/10 von der Rechenzeit übrig für Berechnungen (bei 
20ms Periode der "PWM").


Aber ein DsPic ist eindeutig die bessere Lösung...
Gast #4952868
Lesenswert?

Axel H. schrieb:
> Ich hab's mir das gerade angeschaut, ja es sollte gehen.

Danke für die ausführliche Analyse des Problems, schön zu wissen dass es 
hart ander Grenze ist aber zu gehen scheint. Das wäre übrigens ein 
reines Spaßprojekt. Welchen ARM Prozessor könntet ihr mir empfehlen für 
dieses Vorhaben (ich bevorzuge STM)?
#4954043
Lesenswert?

Es könnte hilfreich sein, zu wissen daß die Impulse für die Servos 
deutlich kürzer sind, als die Periodendauer. Das kann man ausnutzen, 
indem man die Impulse für die Servos nacheinender erzeugt. Mit etwas 
zusätzlicher Logik kann ein Hardware-PWM-Ausgang locker 6-8 Servos 
ansteuern. Auch eine Software-PWM Lösung wird deutlich einfacher, wenn 
die Signale nicht alle gleichzeitig erzeugt werden müssen. Gängig sind 
z.B. 50Hz Rate -> 20ms, Impulslänge üblicherweise 1ms .. 2ms (Manchmal 
auch 0,5ms .. 2,5ms), 1,5ms ist Mittelstellung.

Mit freundlichen Grüßen - Martin

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren