Kontroll tal-Motor Servo: Guida Kompleta
L-Apprendiġġ Importanti:
Il-Kontroll tal-Motor Servo Definit: Il-kontroll tal-motor servo jippermetti l-manipolazzjoni preċiża tal-pożizzjoni, ta’ veloċità, u ta’ aċċelerazzjoni tal-motor permezz ta’ segnali elektroniki.
Il-Mekkanismu ta’ Riflessjoni: Is-sistema ta’ riflessjoni, li solitament hija potenziometru jew enkoder, tassegura li l-output tal-motor jiġi mmexxija preċisament mal-input tal-kontroll.
Il-Segnal PWM: Il-modulazzjoni ta’ ampiezza tal-puls (PWM) hija essenzjali biex tikseb il-pożizzjoni tas-servo permezz ta’ varjanza f’durata ta’ pulsi elettrika.
Arduino u Motors Servo: L-użu ta’ board Arduino huwa mod popolari u effettiv biex tiprogramma u tkontrolla motors servo b’setup ta’ hardwar minima.
Aplikazzjonijiet tal-Motors Servo: Il-motors servo huma essenzjali għal proġetti li rikiedu kontroll pożizzjonali aċkurat, kif sara fl-robotika u sistemi awtomatizzati.
Il-motor servo huwa motor disinnat għal preċiżjoni u aċċurataggħa għal rotazzjoni. Jidifferenzja mill-motor DC tipiku għall-faċilità tiegħu li jikkonserva posizjoni speċifika invece di spindilu waħda wara l-oħra. Dan it-tratt karatteristiku jgħin lil motors servo li jkunu ideali għal robotika, awtomazzjoni, u proġetti hobbi.
Dan l-artiklu jispjega kif funzjona l-kontroll tal-motor servo, it-tipi differenti tal-motors servo, u metodi u dwejjar diversi ta’ kontrol. Jipprovdiki wkoll esempi ta’ aplikazzjonijiet u proġetti tal-motors servo.
X’Huwa Motor Servo?
Il-motor servo huwa definit bħala aktuator li jippermetti l-kontroll preċiż tal-pożizzjoni (anglu), tal-veloċità, u tal-aċċelerazzjoni. Motor servo tipiku consisti fis-sliet komponenti ewlenin: motor DC, circuit ta’ kontrol, u dispożitiv ta’ feedback.
Il-motor DC ipprovdi l-enerġija għas-servo u huwa mkonektat ma’ ingranaggi li jingħadu l-veloċità u jżidu l-torque fuq is-silġ tal-output.

Is-silġ tal-output huwa l-parti tas-servo li tirrotula u timmuġġa l-karrik.
Il-circuit ta’ kontrol huwa responsabbli biex jirċievi u jipproċessa l-segnali input minn controller estern. Dawn is-segnali jgħidu lis-servo liex pożizzjoni, veloċità, jew direzzjoni jagħmlu. Il-circuit ta’ kontrol jgħid ukoll l-enerġija għal motor DC biex iddriġġha.
Id-dispożitiv ta’ feedback solitament huwa potenziometru jew enkoder li jimmisura l-pożizzjoni attwali tas-silġ tal-output.

Id-dispożitiv ta’ feedback jirreġistra data ta’ pożizzjoni lura lill-circuit ta’ kontrol, li wara dan jagħżel l-enerġija tal-motor DC biex jallinia l-pożizzjoni verifikata mal-pożizzjoni desiderata mil-segnal input.
Il-loop ta’ feedback bejn il-circuit ta’ kontrol u d-dispożitiv ta’ feedback jassenżjali li s-servo jista’ immovejja u jikkonservaja kull pożizzjoni f’dawn ir-range ta’ moviment.
Kif Tikontrolla Motor Servo?
Il-motors servo jintkontrollaw permezz tal-bidil ta’ segnal PWM (modulazzjoni ta’ ampiezza tal-puls) fil-linja ta’ segnal tas-servo. Il-PWM huwa teknika li tibdel segnal on u off rapidament biex toħloq pulsi ta’ ampiezza differenti. L-ampiezza ta’ dawn il-pulsi tiddetermina l-pożizzjoni tas-silġ tal-output.
Pereżempju, meta tibbidel segnal PWM b’ampiezza ta’ puls ta’ 1.5 millisecondi (ms), is-servo se jmovejja lill-pożizzjoni neutrali (90 gradi).

Meta tibbidel segnal PWM b’ampiezza ta’ puls ta’ 1 ms, is-servo se jmovejja lill-pożizzjoni minim (0 gradi). Meta tibbidel segnal PWM b’ampiezza ta’ puls ta’ 2 ms, is-servo se jmovejja lill-pożizzjoni massima (180 gradi).
Il-segnal PWM għandu frekwenza ta’ 50 Hz, li tiddeffinixxi li jirrepeti kull 20 ms. L-ampiezza ta’ pulsu tista’ tvarja minn 1 ms sa 2 ms fi dan it-tul.
Jinkiteb modi ħafna biex tgħidil u tibbidel segnali PWM għal motors servo. B’ċertezza, il-modi iktar komuni huma:
Talbien ta’ board Arduino jew mikrokontroller ieħor
Użu ta’ potenziometru jew sensor analog ħdejed
Użu ta’ joystick jew dispositiv ta’ input digital ħdejed
Użu ta’ kontrolleur jew driver ta’ servo dedikat
Fis-silġ tal-artiklu, se niesploraw kunkella minn dawn il-modi fid-detall u nara xi esempi kif jopraw.
Kontroll tal-Motor Servo bl-Arduino
Arduino huwa minn l-platformi l-iktar popolari għal kontrol tal-motors servo. Il-boards Arduino għandhom PWM outputs built-in li jistgħu jiġu użati biex jibidlu segnali għal servos. Arduino għandu wkoll librerija Servo li tigħtina l-faċilità biex tikteb kod għal kontrol tas-servo.
Biex tkontrolla motor servo bl-Arduino, għandhek:
Board Arduino (kif Arduino UNO)
Motor servo standard (kif SG90)
Jumper wires
Breadboard (optional)
Il-wire abjad mis-servo jikkonektaw mal-pin 9 fuq il-board Arduino. Il-wire abjad mis-servo jikkonektaw mal-pin 9 fuq il-board Arduino. Il-wire abjad mis-servo jikkonektaw mal-pin 9 fuq il-board Arduino.
Biex tiprogramma l-board Arduino, għandhek tuża l-IDE Arduino (online jew offline). Tista’ tuża wieħed mill-eżempji mill-librerija Servo jew tikteb il-kod tiegħek stess.
Il-kod li jmiss juri kif tisweepa motor servo avanti u narrakkar 180 gradi permezz ta’ for loop:
#include <Servo.h> // Include Servo library
Servo myservo; // Create Servo object
int pos = 0; // Variable for position
void setup() {
myservo.attach(9); // Attach Servo object to pin 9
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // Loop from 0 to 180 degrees
myservo.write(pos); // Write position to Servo object
delay(15); // Wait 15 ms
}
for (pos = 180; pos >= 0; pos -= 1) { // Loop from 180 to 0 degrees
myservo.write(pos); // Write position to Servo object
delay(15); // Wait 15 ms
}
}
Dan il-kod juttilizza żewġ loops biex jżid u jżallil variablu tal-pożizzjoni minn 0 sa 180 gradi u vice versa. Wara dan jikteb din il-valur lill-objett Servo permezz ta’ myservo.write(pos). Jżid ukoll delay ta’ 15 ms bejn kull passi biex jallini l-moviment.
Upload dan il-kod lill-board Arduino tiegħek permezz ta’ buton Upload tal-IDE, u tara kif is-servo tiegħek isweepa avanti u narrakkar sew.
Kontroll tal-Motor Servo bl-Potenziometru
Il-potenziometru huwa sensor analog li jista’ jvarja r-resistanza skont kemm tiftaħ il-knob tiegħu. Tista’ tuża potenziometru bħala dispositiv ta’ input għal kontrol tal-motor servo.
Biex tkontrolla motor servo bl-potenziometru, għandhek:
Board Arduino (kif Arduino UNO)
Motor servo standard (kif SG90)
Potenziometru (10k Ohms)
Jumper wires
Breadboard
Id-diagram tal-konezzjoni għal konezzjoni ta’ potenziometru u motor servo mal-board Arduino huwa murturi hawn taħt:
Il-wire abjad mis-servo jikkonektaw mal-pin D9 fuq row ieħor fuq il-breadboard. Il-wire abjad mis-servo jikkonektaw mal-pin D9 fuq row ieħor fuq il-breadboard. Il-wire abjad mis-servo jikkonektaw mal-pin D9 fuq row ieħor fuq il-breadboard.
Biex tiprogramma l-board Arduino tiegħek, għandhek tuża l-istess kod mill-eżempju preċedenti imma tagħmel xi varjanzi:
#include <Servo.h> // Include Servo library
Servo myservo; // Create Servo object
int potpin = A0; // Pin connected to potentiometer
int val = 0; // Variable for reading potentiometer value
void setup() {
myservo.attach(9); // Attach Servo object pin D9
}
void loop() {
val = analogRead(potpin); // Read value from potentiometer (0 -1023)
val = map(val,0,1023,0,180); // Map value range (0 -180)
myservo.write(val); // Write mapped value Servo object
delay(15); // Wait 15 ms
}
Dan il-kod juttilizza l-funzjoni analogRead(potpin) biex jillegga l-valur mill-potenziometru imkonness mal-pin A0. Wara dan juttilizza l-funzjoni map(val,0,1023,0,180) biex jimmapeja l-range ta’ valur minn 0 -1023 gradi. Wara dan jikteb il-valur immappat lill-objett Servo permezz ta’ funzjoni myservo.write(val). Jżid ukoll delay, kif l-eżempju preċedenti.
Tista’ tuupload dan il-kod lill-board Arduino tiegħek permezz ta’ buton Upload tal-IDE. Għandhek tara li s-servo tiegħek se jmovejja skont il-pożizzjoni tal-knob tal-potenziometru.
Kontroll tal-Motor Servo bl-Joystick
Il-joystick huwa dispositiv ta’ input digital li jista’ jiddetektja l-direzzjoni u l-magnituda tal-moviment lungu żewġ assi. Tista’ tuża joystick biex tkontrolla motor servo permezz ta’ mapping tal-assi x tal-joystick mal-anglu tas-servo.
Biex tkontrolla motor servo bl-joystick, għandhek l-oggetti segwenti:
Board Arduino (kif Arduino UNO)
Motor servo standard (kif SG90)
Modul joystick (kif KY-023)
Jumper wires
Breadboard
Id-diagram tal-konezzjoni għal konezzjoni ta’ modul joystick u motor servo mal-board Arduino huwa murturi hawn taħt:
!https://www.makerguides.com/wp-content/uploads/2019/01/Servo-motor-control-with-Arduino-and-joystick-wiring-diagram.png
Il-wire abjad mis-servo jikkonektaw mal-pin D9 fuq row ieħor fuq il-breadboard. Il-wire abjad mis-servo jikkonektaw mal-pin D9 fuq row ieħor fuq il-breadboard. Il-wire abjad mis-servo jikkonektaw mal-pin D9 fuq row ieħor fuq il-breadboard.
Biex tiprogramma l-board Arduino tiegħek, għandhek tuża l-istess kod mill-eżempju preċedenti imma tagħmel xi varjanzi:
#include <Servo.h> // Include Servo library
Servo myservo; // Create Servo object
int joyX = A0; // Pin connected to joystick x-axis
int val = 0; // Variable for reading joystick value
void setup() {
myservo.attach(9); // Attach Servo object to pin 9
}
void loop() {
val = analogRead(joyX); // Read value from joystick x-axis