Operácie

Acrob03: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Nová stránka: == 3. Úloha == Konečne začneme hýbať motorčekmi! Robot používa dva modifikované servomotory. Majú trojvodičové pripojenie, dva vodiče slúžia na napájanie, tretí j...
 
Balogh (diskusia | príspevky)
Bez shrnutí editace
 
(Jedna medziľahlá úprava od rovnakého používateľa nie je zobrazená.)
Riadok 2: Riadok 2:


Konečne začneme hýbať motorčekmi!
Konečne začneme hýbať motorčekmi!
[[Obrázok:DifferentialKinematics.png|center]]


Robot používa dva modifikované servomotory. Majú trojvodičové pripojenie, dva vodiče slúžia na napájanie,  
Robot používa dva modifikované servomotory. Majú trojvodičové pripojenie, dva vodiče slúžia na napájanie,  
Riadok 60: Riadok 62:
</source>
</source>


[[Obrázok:ServoConnection.png|center]]




[[Acrob02|Predošlá úloha...]] | [[Acrob|Späť do menu]] | [[Acrob04|Pokračovanie...]]
[[Acrob02|Predošlá úloha...]] | [[Acrob|Späť do menu]] | [[Acrob04|Pokračovanie...]]

Aktuálna revízia z 20:34, 28. apríl 2010

3. Úloha

Konečne začneme hýbať motorčekmi!

Robot používa dva modifikované servomotory. Majú trojvodičové pripojenie, dva vodiče slúžia na napájanie, tretí je riadiaci signál. Rýchlosť a smer otáčania sa riadia šírkou impulzu. Pôvodne slúžil na nastavenie polohy v rozsahu 0-180 stupňov. Po úprave signál pre 90 st. motorček zastaví, 180 roztočí max. rýchlosťou jedným smerom a 0 max. rýchlosťou druhým smerom (TODO: upraviť knižnicu z polohy na rýchlosť).

Tento program ilustruje použitie základných pohybových príkazov. Všimnite si použitie knižnice Servo.h:

#include <Servo.h> // this program uses the Servo library

Servo LeftServo;   // create servo object to control both servos
Servo RightServo;  // a maximum of eight servos can be created 

#define FAST  50   // try to change these values during the test
#define SLOW   5

 void setup() 
{ 
 LeftServo.attach(9);    // attaches the servo on pin 9 to the servo object 
 RightServo.attach(10);  // attaches the servo on pin 10 to the servo object 
} 
 
void loop() 
{ 
 // FAST FORWARD
  LeftServo.write(90 + FAST);    // value 90 is in middle, i.e. stop   
 RightServo.write(90 - FAST);    // mirrored position       
            delay(1500);         // go fast forward for  1,5 s 

 // SLOW FORWARD
  LeftServo.write(90 + SLOW);    // test varying speed of movement
 RightServo.write(90 - SLOW);           
            delay(1500);                       

  LeftServo.write(90 - FAST);    // FAST BACKWARD
 RightServo.write(90 + FAST);           
            delay(1500);                       

  LeftServo.write(90 + FAST);    // ROTATE (PIVOT) RIGHT
 RightServo.write(90 + FAST);           
            delay(1500);                       

  LeftServo.write(90 - FAST);    // ROTATE (PIVOT) LEFT
 RightServo.write(90 - FAST);           
            delay(1500);                       

  LeftServo.write(90);           // STOP both motors
 RightServo.write(90);            
        
              for(;;);           // stop the program operation here

}   /* End of Loop */


Predošlá úloha... | Späť do menu | Pokračovanie...