paralelní práce více serv

Odpovědět
cigi
Příspěvky: 6
Registrován: 29 led 2018, 21:13
Reputation: 0

paralelní práce více serv

Příspěvek od cigi » 29 led 2018, 21:22

Ahoj, na stará kolena se to učím a po různých blikáčkách chci rozchodit Merkur Beta přes Arduino. Jednotlvá serva si rozchodím pomocí knihovny Servo.h, ale potřebuji zpomalit přesuny a to umím pouze smyčkou for(). Tady jsem v koncích jak napsat, aby jelo víc smyček současně, každá s jinými parametry. V taskingu snad ani nejsem začátečník. Vůbec nevím, co hledat? Díky.

ohruska
Příspěvky: 235
Registrován: 08 pro 2017, 20:56
Reputation: 0

Re: paralelní práce více serv

Příspěvek od ohruska » 30 led 2018, 12:35

Zdravím.
Nezkoušel jsem to, ale mělo by to fungovat.
V této knihovně lze řídit rychlost serva.

Kód: Vybrat vše

myServo.slowmove (newpos, speed);
Přílohy
VarSpeedServo.zip
(7.91 KiB) Staženo 186 x

cigi
Příspěvky: 6
Registrován: 29 led 2018, 21:13
Reputation: 0

Re: paralelní práce více serv

Příspěvek od cigi » 30 led 2018, 14:55

Díky moc, vyzkouším a dám vědět. :P

ohruska
Příspěvky: 235
Registrován: 08 pro 2017, 20:56
Reputation: 0

Re: paralelní práce více serv

Příspěvek od ohruska » 30 led 2018, 17:51

Zdravím.
Zkoušel jsem a je třeba v knihovně "VarSpeedServo.cpp" nahradit #include <WProgram.h> za #include <Arduino.h>.

Ještě ukázka kódu:

Kód: Vybrat vše

#include <VarSpeedServo.h>

VarSpeedServo servo1; 

void setup() {
  servo1.attach(9);  
  servo2.attach(10);

  Serial.begin(9600);
  Serial.println("Ready");
   servo1.write(90);
   Serial.println("90");
   delay(5000);
     servo1.write(45);
     Serial.println("45");
        delay(5000);
     servo1.slowmove(0,15);
     Serial.println("0");
        delay(5000);
     servo1.slowmove(90,5);
     Serial.println("0");
        delay(5000);
        
}

void loop() {

} 

cigi
Příspěvky: 6
Registrován: 29 led 2018, 21:13
Reputation: 0

Re: paralelní práce více serv

Příspěvek od cigi » 31 led 2018, 09:34

Zkoušel jsem a hlásí chybu při kompilaci desky.
První chyba byla nedefinované 2. servo - vyřešeno přidáním (VarSpeedServo myServo2;)
pak jsem zkoušel i variantu bez serial.print

void loop() {
myServo1.slowmove (60, 10);
myServo2.slowmove (120, 5);
delay(2000);

myServo1.slowmove (0, 10);
myServo2.slowmove (60, 5);
delay(2000);

}

Pořád ta samá chyba. Knihovnu mám v adresáři spolu s programem (Arduino.h jsem do cpp vložil - vyměnil)

Náznak chybové hlášky (je jich asi 11):

D:\Ĺ kola\krouĹľek\Arduino\servo\merkurBetaRychlostDveSoucasne\merkurBetaRychlostDveSoucasneSpeedServo/merkurBetaRychlostDveSoucasneSpeedServo.ino:7: undefined reference to `VarSpeedServo::attach(int)'

ohruska
Příspěvky: 235
Registrován: 08 pro 2017, 20:56
Reputation: 0

Re: paralelní práce více serv

Příspěvek od ohruska » 31 led 2018, 10:08

Za to Servo 2 se omlouvám.
Myslím si že nemáte knihovnu ve správném adresáři.
Soubor VarSpeedServo.zip je třeba rozbalit. Potom složku "VarSpeedServo" nakopírovat do složky knihoven "Arduino\libraries".
Pro jistotu jsem upravil knihovnu a přikládám archiv s provedenou opravou VarSpeedServo.zip.
Přílohy
VarSpeedServo.zip
(7.75 KiB) Staženo 197 x

cigi
Příspěvky: 6
Registrován: 29 led 2018, 21:13
Reputation: 0

Re: paralelní práce více serv

Příspěvek od cigi » 31 led 2018, 13:39

Děkuji - funguje. Měl jsem špatně rozbalenou knihovnu - duplicitní adresář. V něm .cpp a vně .h. Snažím se pochopit řízení přes serial.print (dal jsem ho do loop(). Ale i tím mým "lama" postupem asi dokážu udělat několik sekvencí pohybů celé ruky. Zas jsem trochu moudřejší :D

cigi
Příspěvky: 6
Registrován: 29 led 2018, 21:13
Reputation: 0

Re: paralelní práce více serv

Příspěvek od cigi » 31 led 2018, 13:45

Aha už svítá - serial print je jen na výpis činnosti. Ostatní řízení jsou standardní příkazy s a bez řízení rychlosti (příklad - porovnání). :oops:

Uživatelský avatar
SkullKeep
Příspěvky: 290
Registrován: 23 srp 2017, 18:51
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: paralelní práce více serv

Příspěvek od SkullKeep » 19 úno 2018, 12:17

Jestli toto pomůže tu je návod na ovládání dvou steper motorů. ===>https://github.com/snowdd1/multistepper
:twisted: :?: :arrow: :geek: P. Q. M.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 14 hostů