Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Silniki Serwo Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Silniki Serwo Zasilanie: 5V Pobór prądu: < 2mA Efektywny kąt: < 15º http://www.pyroelectro.com/tutorials/servo_motor/servomotor.html 05-2015 Zygmunt Kubiak
Schemat elektromechaniczny serwo dla sterowania radiowego Silniki Serwo Schemat elektromechaniczny serwo dla sterowania radiowego Reproduced with permission of Jim Stewart and Servo Magazine, c 2008 T&L Publications 05-2015 Zygmunt Kubiak
Serwo dla sterowania radiowego Silniki Serwo Serwo dla sterowania radiowego Input pulse width versus output shaft position for an RC servo. (Reproduced with permission of Jim Stewart and Servo Magazine, c 2008 T&L Publications.) 05-2015 Zygmunt Kubiak
serwo dla sterowania radiowego Silniki Serwo serwo dla sterowania radiowego Functional block diagram of an RC servo. (Reproduced with permission of Jim Stewart and Servo Magazine, c 2008 T&L Publications.) 05-2015 Zygmunt Kubiak
Serwo dla sterowania radiowego Silniki Serwo Serwo dla sterowania radiowego 05-2015 Zygmunt Kubiak
Serwo dla sterowania radiowego Silniki Serwo Serwo dla sterowania radiowego 05-2015 Zygmunt Kubiak
Serwo dla sterowania radiowego Silniki Serwo Serwo dla sterowania radiowego Typowa częstotliwość powtarzania - 50 Hz Większa częstotliwość to - 400 Hz; nie wszystkie urządzenia ją obsługują Przykład sterowania serwo Sterowanie w kierunku światła LDR (Light Dependent Resistor) - fotorezystor Fotorezystor wykonany jest z siarczku kadmu (CdS), który ma właściwości półprzewodnikowe – im większe natężenie światła tym mniejsza rezystancja Sensory LDR dołączone są do wejść analogowych mikrokontrolera 05-2015 Zygmunt Kubiak
Przykład sterowania serwo Silniki Serwo Przykład sterowania serwo 05-2015 Zygmunt Kubiak
Przykład sterowania servo Silniki Servo Przykład sterowania servo 05-2015 Zygmunt Kubiak
Przykład sterowania servo Silniki Servo Przykład sterowania servo 05-2015 Zygmunt Kubiak
Przykład sterowania serwo Silniki Serwo Przykład sterowania serwo Generowanie PWM w mikrokontrolerze PIC16F690 05-2015 Zygmunt Kubiak
Przykład sterowania serwo Silniki Serwo Przykład sterowania serwo 05-2015 Zygmunt Kubiak
Przykład sterowania serwo Silniki Serwo Przykład sterowania serwo Metoda sterowania #define THRESHOLD_VALUE 50 ldr_diff = ldr_left - ldr_right; // Wyznaczenie różnicy if ((ldr_diff > = -THRESHOLD_VALUE) && (ldr_diff <= THRESHOLD_VALUE)) top_value = MAX_VALUE; // Zatrzymanie silnika serwo else { if (ldr_diff > THRESHOLD_VALUE) top_value = CCW_ROTATION; // Obrót w lewo (MAX_VALUE – 20) top_value = CW_ROTATION; // Obrót w prawo (MAX_VALUE – 10) } 05-2015 Zygmunt Kubiak
Przykład sterowania serwo Silniki Serwo Przykład sterowania serwo Arduino – przykład 1 /* Sweep by BARRAGAN <http://barraganstudio.com> This example code is in the public domain. modified 8 Nov 2013 by Scott Fitzgerald http://arduino.cc/en/Tutorial/Sweep */ #include <Servo.h> Servo myservo; // Definicja obiektu servo // Można zdefiniować 12 różnych obiektów int pos = 0; // Zmienna pamiętająca pozycję servo 05-2015 Zygmunt Kubiak
Przykład sterowania serwo Silniki Serwo Przykład sterowania serwo Arduino – przykład 1 void setup() { myservo.attach(9); // określenie wyjścia dla obiektu servo (pin 9) } void loop() for(pos = 0; pos <= 180; pos += 1) // zmiana pozycji w stopniach (0-180) myservo.write(pos); // ustaw pozycję według zmiennej 'pos' delay(15); // czekaj 15ms dla osiągnięcia pozycji for(pos = 180; pos>=0; pos-=1) // zmiana pozycji w stopniach (180-0) myservo.write(pos); // ustaw pozycję według zmiennej 'pos’ 05-2015 Zygmunt Kubiak
Przykład sterowania serwo Silniki Serwo Przykład sterowania serwo Arduino – przykład 2 /* Sterowanie pozycją serwo z wykorzystaniem potencjometru by Michal Rinott <http://people.interaction-ivrea.it/m.rinott> modified on 8 Nov 2013 by Scott Fitzgerald http://arduino.cc/en/Tutorial/Knob */ #include <Servo.h> Servo myservo; // Definicja obiektu servo int potpin = 0; // Określenie wejścia analogowego (A0) int val; // Zmienna do odczytu potencjometru (z wej. A0) 05-2015 Zygmunt Kubiak
Przykład sterowania serwo Silniki Serwo Przykład sterowania serwo Arduino – przykład 2 void setup() { myservo.attach(9); // określenie wyjścia dla obiektu servo (pin 9) } void loop() val = analogRead(potpin); // Odczyt wartości z potencjometru // (wartość 0 do 1023) val = map(val, 0, 1023, 0, 180); // Przeskalowanie wyniku // (wartość 0 do 180) myservo.write(val); // ustaw pozycję według zmiennej ‘val’ delay(15); // czekaj 15ms dla osiągnięcia pozycji 05-2015 Zygmunt Kubiak
Dziękuję Zygmunt Kubiak 05-2015