Jinsi ya kudhibiti servo na vifungo viwili. Udhibiti wa SG90 servo drive bila microcontroller. Vifaa vya mashine ya kushona

Pamoja na kidhibiti na vitambuzi, vitendaji ni sehemu muhimu ya roboti zote bila ubaguzi. Wanazungusha magurudumu ya roboti, kuiruhusu kusonga angani, na kuamilisha vidanganyifu vyenye nguvu. , ambayo ananyakua vitu.

Katika somo hili tutafanya kazi na kitendaji kimoja kama hicho kinachoitwa servo gari(au servo). Tofauti na motor ya kawaida ya umeme, gari la servo ni ngumu kifaa cha mchanganyiko, inayojumuisha injini mkondo wa moja kwa moja, kipunguza gia, potentiometer na mzunguko wa elektroniki. Yote hii inaruhusu gari la servo kuzungusha shimoni madhubuti kwa pembe fulani na kuishikilia. Kutumia anatoa kama hizo unaweza, kwa mfano, kutengeneza manipulator rahisi ifuatayo:

1. Kuunganishwa kwa Arduino

Kwa hivyo, kama ilivyoelezwa hapo juu, gari la servo ni maarufu kwa uwezo wake wa kuzunguka kwa pembe fulani. Je, tutamwonyeshaje angle hii? Ninapendekeza kutumia kipingamizi cha kutofautisha, kinachojulikana pia kama potentiometer, kwa kusudi hili. Tutazunguka kisu cha potentiometer, na mtawala ataamuru servo kuzunguka kwa pembe inayofaa.

Potentiometer ina vituo vitatu tu. Tutaunganisha zile zilizokithiri kwa +5V na chini, na moja ya kati kwa pembejeo ya analog A0.

Servo ya SG90 pia ina anwani tatu. Kawaida hutiwa rangi kama ifuatavyo:

  • kahawia - ardhi;
  • nyekundu - ugavi wa nguvu +5V;
  • machungwa (au njano) - ishara.

Tunaunganisha waya wa ishara kwa pato la dijiti Nambari 8. Kama matokeo, tunapata mchoro ufuatao:

Ni rahisi zaidi kuunganisha vifaa vyote kwa Arduino Uno kupitia ubao wa mkate:

2. Mpango

Sasa hebu tuandike programu rahisi ambayo itaunganisha vipengele vyote vya vifaa vyetu na mantiki kali. Tunachohitaji kutoka kwa mtawala ni:

  • soma usomaji kutoka kwa potentiometer katika safu kutoka 0 hadi 1023;
  • kubadilisha nambari inayotokana na pembe kutoka digrii 0 hadi 180;
  • sambaza pembe inayosababisha kwenye gari la servo.

Kuandika programu tunatumia yetu . Tunatumia kitengo cha gari la servo, kitengo cha kusoma kutoka kwa bandari ya analog na kazi ya kuchora safu moja ya thamani hadi nyingine.

Kwa kubofya kitufe cha "Arduino" katika mbuni, tutafungua ukurasa na msimbo wa chanzo programu kwa ajili ya mazingira Kitambulisho cha Arduino:

#pamoja na huduma za huduma; usanidi utupu())( ) kitanzi batili())( servos.attach(8); servos.write((ramani(analogRead(A0), 0, 1024, 0, 180))); kuchelewa(50);)

Kama inavyoonekana kutoka kwa programu, tulitumia maktaba kudhibiti kiendeshi cha servo Huduma. Maktaba hii ina utendaji kadhaa ambao ni muhimu kwetu:

  • ambatisha(pin_number) - uanzishaji wa servo;
  • kuandika (angle) - mzunguko wa servo kwa pembe fulani;
  • read() - Inapata pembe ya sasa ya servo.

Kupanga seti ya nambari 0 - 1023 kwa seti 0-180, mjenzi alitumia kazi hiyo. ramani. Operesheni hiyo hiyo inaweza kufanywa kwa kutumia usemi:

int angle = (thamani / 1023.0) * 180;

Pakia programu kwenye Arduino Uno na uone kitakachotokea!

Sasa, unajua servo drive ni nini na unaweza kuidhibiti kwa urahisi. Mbele! Kuelekea uundaji wa mikono ya roboti na roboti za buibui zinazotembea!

Servo motors hutumiwa sio tu katika modeli za ndege na robotiki, zinaweza pia kutumika katika vifaa vya nyumbani. Ukubwa mdogo, utendaji wa juu, pamoja na udhibiti rahisi wa servomotor huwafanya kuwa wanafaa zaidi kwa kutekeleza udhibiti wa kijijini vifaa mbalimbali.

Matumizi ya pamoja ya servomotors na moduli za redio za kupitisha-kupokea hazifanyi ugumu wowote kwa upande wa mpokeaji, inatosha tu kuunganisha kiunganishi kinacholingana kilicho na voltage ya usambazaji na ishara ya kudhibiti kwa servomotor, na kazi imefanywa.

Lakini ikiwa tunataka kudhibiti servomotor "kwa mikono", kwa mfano, kwa kutumia potentiometer, tunahitaji jenereta ya kudhibiti mapigo. Chini ni ya kutosha mzunguko rahisi msingi wa jenereta mzunguko jumuishi 74HC00.

Mpango huu unaruhusu udhibiti wa mwongozo servomotors kwa kusambaza mapigo ya udhibiti na upana wa 0.6 hadi 2 ms. Mzunguko unaweza kutumika, kwa mfano, kuzungusha antena ndogo, taa za mafuriko za nje, kamera za CCTV, nk.

Udhibiti wa seva. Maelezo ya Kidhibiti

Msingi wa mzunguko ni chip 74HC00 (IC1), ambayo ina milango 4 ya NAND. Jenereta huundwa kwenye vipengele vya IC1A na IC1B, matokeo ambayo hutoa mapigo na mzunguko wa 50 Hz. Mipigo hii huwasha kichochezi cha RS kinachojumuisha vipengele vya mantiki IC1C na IC1D.

Kwa kila mpigo kutoka kwa jenereta, pato la IC1D limewekwa kuwa "0" na capacitor C2 hutolewa kupitia resistor R2 na potentiometer P1. Ikiwa voltage kwenye capacitor C2 inapungua kwa kiwango fulani, basi mzunguko wa RC hubadilisha kipengele kwa hali ya kinyume. Kwa hivyo, pato tunalopata ni mapigo ya mraba na muda wa 20 ms. Upana wa pigo umewekwa na potentiometer P1.

Kwa mfano, gari la servo la Futaba S3003 hubadilisha angle ya mzunguko wa shimoni kwa digrii 90 kwa sababu ya udhibiti wa mapigo ya kudumu kutoka 1 hadi 2 ms. Ikiwa tunabadilisha upana wa pigo kutoka 0.6 hadi 2 ms, angle ya mzunguko itakuwa hadi 120 °. Vipengele katika mzunguko huchaguliwa kwa njia ambayo pigo la pato liko katika aina mbalimbali za 0.6 hadi 2 ms, na kwa hiyo angle ya ufungaji ni 120 °. Gari ya servo ya Futaby's S3003 ina torque kubwa, na matumizi ya sasa yanaweza kuanzia makumi hadi mamia ya mA kulingana na mzigo wa mitambo.

Kubuni

Mzunguko wa udhibiti wa servomotor umekusanyika kwenye pande mbili bodi ya mzunguko iliyochapishwa vipimo 29 x 36 mm. Ufungaji ni rahisi sana, hivyo hata amateur wa redio ya novice anaweza kukusanya kifaa kwa urahisi.

Kujifunza kudhibiti servomotor kwa kutumia Arduino.

Kwanza, tutaangalia jinsi ya kuhakikisha kuwa shimoni la pato la gari la servo linazunguka mode otomatiki"mbele" na ndani mwelekeo wa nyuma. Baada ya hayo, tutaongeza potentiometer kwenye mzunguko, ambayo itatoa udhibiti wa mzunguko wa gari la servo.

Nodes zinazohitajika

Ili kujua mbinu za udhibiti wa servo zilizopewa katika kifungu, utahitaji:

Kipinga 1 cha kutofautiana (potentiometer) 10 kOhm



1 Kidhibiti kidogo cha Arduino Uno



1 100 µF capacitor (si lazima)


Mchoro wa waya wa "Fagia" (mzunguko otomatiki)

Kwa jaribio hili, unahitaji tu kuunganisha motor ya servo kwenye Arduino.


Kuna anwani 3 kwenye servomotor. Rangi ya mawasiliano inaweza kutofautiana kulingana na mtengenezaji, lakini nyekundu daima ni 5 V kuwasiliana. Pini ya GND(ardhi) inaweza kuwa nyeusi au kahawia. Pini ya tatu iliyobaki ni ishara ambayo hutumiwa kudhibiti nafasi ya rotor ya servo. Kawaida huwa na rangi ya njano au njano. Tunaunganisha pini hii kwenye pin 9 ya dijitali kwenye Arduino.

Mawasiliano ya servo yana viunganisho ambavyo viunganisho (waya) vinaweza kusanikishwa na kuunganishwa kutoka bodi ya maendeleo, na kisha na Arduino.


Servo motor jerks

Wakati mwingine wakati wa kushikamana servos haifanyi kazi amri zilizotolewa au yanachakatwa kimakosa. Aidha, hii inaweza kutokea tu wakati wa kuunganisha kwa fulani Bandari za USB. Sababu ni kwamba servos zinahitaji nguvu nyingi za nguvu, haswa mwanzoni mwa harakati za rotor. Rukia hizi za ghafla katika matumizi ya nguvu zinaweza "kufuta" voltage kwenye Arduino. Bodi inaweza hata kuwasha upya.

Hili likitokea, utahitaji kuongeza capacitor (470uF au kubwa zaidi) kati ya reli za GND na 5V kwenye ubao wako wa mkate.


Capacitor hufanya kama aina ya hifadhi ya mkondo wa umeme. Wakati motor ya servo inapoanza kukimbia, inapokea malipo iliyobaki kutoka kwa capacitor na kutoka kwa umeme wa Arduino kwa wakati mmoja.

Mguu mrefu wa capacitor ni terminal nzuri na inaunganisha kwa 5V. Terminal hasi mara nyingi huwekwa alama ya "-".

Mchoro wa Arduino "Fagia" (mzunguko otomatiki)

Pakua hadi Mchoro wa Arduino, ambayo inajadiliwa hapa chini. Baada ya kupakia, rotor ya servo inapaswa kuanza kuzunguka kwa mwelekeo mmoja, na kisha kinyume chake.

Mpango huo unategemea mchoro wa kawaida wa "fagia", ambao unaweza kupata ndani Menyu ya Arduino Mifano katika folda ya "servo".

#pamoja na <Servo.h>

int servoPin = 9;

pembe ya int = 0; // servo angle katika digrii

servo.attach(servoPin);

// ongezeko kutoka 0 hadi 180 digrii

kwa(pembe = 0; pembe < 180; pembe++)

servo.write(pembe);

// sasa kwa mwelekeo tofauti kutoka digrii 180 hadi 0

kwa(pembe = 180; pembe > 0; pembe--)

servo.write(pembe);

Servomotors hudhibitiwa na msururu wa mapigo. Ili kurahisisha usimamizi wa servos, maktaba maalum (maktaba ya Arduino) iliandikwa. Kwa maktaba hii unaweza kudhibiti servo kwa kuweka angle halisi ya mzunguko wa shimoni kwenye pato.

Amri za udhibiti wa servos ni sawa na zile zilizojengwa kwenye Arduino, lakini kwa kuwa hutumii katika miradi yote, zimehifadhiwa kwenye maktaba tofauti. Ikiwa unataka kutumia amri kutoka kwa maktaba ya gari la servo, unahitaji kujumuisha maktaba kwenye mchoro wako wa Arduino IDE na laini ifuatayo:

#pamoja na <Servo.h>

Tunatumia kigezo cha "servoPin" ili kuamua bandari inayodhibiti servo.

Mstari unaofuata:

huanzisha "servo" mpya ya aina ya "Servo". Maktaba hutupatia aina mpya data kama "int" au "float", ambayo inawajibika kwa seva. Kwa njia hii unaweza kuanzisha servos nane. Kwa mfano, ikiwa tuna servos mbili, tunaweza kuandika yafuatayo:

Katika mwili wa kazi ya "kuanzisha" lazima tuweke ramani ya "servo" kwa pini ambayo itadhibiti servomotor kwa kutumia amri:

servo.attach(servoPin);

Tofauti ya "pembe" hutumiwa kuonyesha pembe ya sasa ya mzunguko wa servo kwa digrii. Katika mwili wa kazi ya "kitanzi" tunatumia loops mbili "kwa". Moja ni kuongeza angle ya mzunguko katika mwelekeo mmoja na pili ni kurudi wakati tumefanya zamu ya digrii 180.

servo.write(pembe);

Inaambia servo kusasisha pembe ya mzunguko wa shimoni la pato la servo kulingana na pembe iliyoainishwa kama kigezo.

Mchoro wa unganisho la Servo na potentiometer ("Knob")

Hatua inayofuata ni kuongeza kudhibiti nafasi ya shimoni la pato la servo kwa kugeuza kisu cha kutofautisha.

Unahitaji tu kuongeza potentiometer na kondakta kutoka kwa mawasiliano ya ishara kutoka kwa potentiometer ili kubandika A0 kwenye Arduino kwenye ubao wa mkate.


Mchoro wa Arduino "Knob" (kudhibiti servo kwa kutumia potentiometer)

Programu ambayo nafasi ya shimoni ya pato la servo inadhibitiwa na pembe ya mzunguko wa kisu cha potentiometer ni rahisi zaidi kuliko ilivyojadiliwa hapo awali. mzunguko wa moja kwa moja na kurudi kwenye nafasi ya kuanzia.

#pamoja na <Servo.h>

int servoPin = 9;

servo.attach(servoPin);

usomaji wa ndani = analogRead(potPin); // kutoka 0 hadi 1023

pembe ya int = kusoma / 6; // kutoka 0 hadi 180

servo.write(pembe);

Mchoro uliongeza kigeu kinachoitwa "potPin".

Ili kuleta shimoni la servo kwenye nafasi, tunasoma thamani kutoka kwa pini ya Arduino A0. Thamani kutoka kwa pini hii itakuwa katika safu kati ya 0 na 1023. Kwa kuwa servo inaweza tu kuzunguka digrii 180, tunahitaji kuongeza maadili yanayotokana. Kugawanya maadili kutoka kwa pini A0 hadi 6, tunapata pembe katika safu kutoka 0 hadi 170, ambayo inatufaa vizuri.

Servomotors - habari ya jumla

Servomotors ni mojawapo ya aina za motors ambazo hutumiwa mara nyingi katika robotiki, miradi ya mechatronic, na miradi ya Arduino.

Msimamo wa shimoni la pato la servomotor imedhamiriwa na urefu wa pigo. Serva inaweza kupokea mapigo kila baada ya milisekunde 20. Ikiwa mpigo wa juu unachukua millisecond 1, pembe ya mzunguko wa servo itakuwa sawa na sifuri. Ikiwa ni milliseconds 1.5, basi servo itaenda kwenye nafasi yake ya katikati, na ikiwa ni milisekunde 2, itaenda kwenye nafasi inayolingana na digrii 180.


Nafasi kali za servomotors zinaweza kutofautiana. Zaidi ya hayo, servos nyingi zinaweza kuzungushwa digrii 170. Pia kuna servos "zinazoendelea" zinazozunguka digrii 360 kamili.

Ndani ya servo

Video hapa chini inaonyesha kile kinachotokea ndani ya servomotor.

Kuwa mwangalifu. Ikiwa utatenganisha servo Kwa njia sawa, kuna uwezekano kwamba haitawezekana kuiweka tena.

Majaribio zaidi ya servo na Arduino

Fungua mchoro wa "fagia" na ujaribu kupunguza ucheleweshaji kutoka milisekunde 15 hadi, sema, milisekunde 5. Angalia jinsi servos zilianza kuzunguka kwa kasi zaidi.

Jaribu kubadilisha mchoro wa "knob". Badala ya kutegemea maadili kutoka kwa potentiometer, tumia udhibiti wa servo kwa kutumia maadili uliyobainisha kwenye dirisha la Arduino IDE's Serial Monitor.

Kidokezo kidogo: ili mchoro wako usome thamani za pembe kutoka kwa ufuatiliaji wa mfululizo, unaweza kutumia chaguo la kukokotoa Serial.parseInt(). Chaguo hili la kukokotoa huchanganua (husoma) maadili ya nambari kutoka kwa mfuatiliaji wa serial.

Acha maoni yako, maswali na ushiriki uzoefu wa kibinafsi chini. Mawazo mapya na miradi mara nyingi huzaliwa katika majadiliano!

Iliyochapishwa 07/25/2012

Servos au anatoa za servo zimepata matumizi mengi sio tu katika robotiki na modeli, lakini pia katika tasnia anuwai na utengenezaji wa zana.

Je, servo inafanya kazi gani?

Servos nyingi hutumia waya tatu kufanya kazi. Waya kwa nguvu, kwa kawaida 4.8V au 6V, waya wa kawaida (ardhi) na waya wa mawimbi. Ishara ya udhibiti hupeleka taarifa kuhusu nafasi inayohitajika ya shimoni la pato. Shaft imeunganishwa na potentiometer, ambayo huamua nafasi yake. Mtawala katika gari la servo, kwa kuzingatia upinzani wa potentiometer na thamani ya ishara ya kudhibiti, huamua ni mwelekeo gani motor inahitaji kuzungushwa ili kupata. nafasi inayotakiwa shimoni la pato. Kadiri voltage ya usambazaji wa gari la servo inavyofanya kazi, ndivyo inavyofanya kazi haraka na ndivyo torque inavyokua.

Sifa za Hifadhi ya Servo

Ukubwa na uzito

Ukubwa ni: "micro", "mini", "standard" na "giant". Katika kila darasa, saizi inaweza kutofautiana kidogo. Ukubwa wa wastani wa servos kwa marejeleo:

  • Ndogo: 24mm x 12mm x 24mm, uzito: 5-10g.
  • Mini: 30mm x 15mm x 35mm, uzito 25g.
  • Kawaida: 40mm x 20mm x 37mm, uzito: 50-60g.

Kasi

Kasi ya servo hupimwa wakati mkono wa servo unazunguka kwa pembe ya digrii 60 kwenye voltage ya usambazaji wa 4.8V na 6V. Kwa mfano, servo yenye parameter ya 0.22s / 60 ° katika 4.8V inazunguka shimoni digrii 60 katika 0.22s kwenye voltage ya usambazaji wa 4.8V. Sio haraka kama inavyoweza kuonekana. Seva za haraka sana zina wakati wa kusafiri wa 0.06 hadi 0.09s.

Angle ya mzunguko

Anatoa za Servo zinaweza kuwa na pembe ya mzunguko wa shimoni ya digrii 60, 90, 180. Pembe ya mzunguko ni mdogo kielektroniki na kiufundi. Kuna servos bila kikomo, i.e. inazunguka digrii 360. Ikiwa una gari la servo na upeo wa uendeshaji wa digrii 60, basi unaweza kupanua tu kwa kubadilisha muundo wa mashine ya servo. Wakati mwingine unaweza kuongeza anuwai kwa kupotosha haswa ishara ya kudhibiti. Lakini hii ni njia isiyo ya kawaida na isiyoaminika.

Torque ya shimoni

Torque ya gari la servo hupimwa kwa uzito wa mzigo kwa kilo, ambayo gari la servo linaweza kushikilia bila kusonga kwenye kiti cha kutikisa na bega ya 1 cm Nambari mbili zinaonyeshwa, kwa voltage ya 4.8V na 6V. Kwa mfano, ikiwa imeelezwa kuwa gari la servo linaendelea kilo 10 / cm, inamaanisha kuwa kwenye rocker 1 cm kwa muda mrefu, gari la servo linaweza kuendeleza nguvu ya kilo 10 kabla ya kuacha. Kwa mwenyekiti wa rocking wa 2cm, servo hiyo inaweza kuendeleza nguvu ya 5kg, na kwa rocker 5mm, 20kg.

Digital na analog servos

Digital na analog servos ni mechanically sawa. Wana nyumba sawa, motors, gia na hata potentiometers. Yote ni juu ya jinsi motor inavyodhibitiwa. Seva za kidijitali ni sahihi zaidi na kwa ujumla zina nyakati za majibu haraka. Lakini hutumia nguvu zaidi kuliko servos za analog. Ishara ya udhibiti wa servos za analog na dijiti ni sawa.

Ishara ya kudhibiti

Ishara ya kudhibiti ni mipigo ya upana wa kutofautiana. Mapigo yanarudiwa kwa mzunguko wa mara kwa mara (kawaida 50Hz). Msimamo wa servo imedhamiriwa na upana wa pigo. Kwa servo ya kawaida inayotumiwa katika mifano ya RC, upana wa mapigo ya 1500 µs inamaanisha kuwa servo inapaswa kusonga hadi nafasi ya kati. Kuongeza au kupunguza urefu wa mapigo kutasababisha servo kugeuka saa au kinyume cha saa, mtawalia.

Kwa hivyo, ili kudhibiti gari la servo tutahitaji kuunda PWM na mzunguko wa 50 hertz. Katika kesi hii, kwa nafasi ya "0", muda wa pigo unapaswa kuwa microseconds 1000, na kwa nafasi ya "kiwango cha juu" - 2000 microseconds. Nafasi ya kati ni 1500 microseconds.

Sehemu ya mwisho ya utafiti wetu itakuwa bodi ya majaribio ya servo ambayo inafanya kazi na servos mbili. LED zinaonyesha hali ya majaribio ya servo. Umbo PWM Tutatumia uwezo wa vifaa vya microcontroller ATMega8, na tutazalisha ishara kuu kwa kuzingatia nafasi ya potentiometer.
Ishara za kudhibiti kwa servos zinazalishwa kwenye miguu OC1A, OC1B.
Njia zinabadilishwa na kitufe. LED tatu zinaonyesha hali ya uendeshaji ya tester ya servo.

  • Njia ya 1 - nafasi ya servos imewekwa na potentiometer
  • Njia ya 2 - nafasi ya kati ya servos imewekwa
  • Njia ya 3 - ishara ya mpangilio hubadilika kwa mzunguko kutoka kwa nafasi moja iliyokithiri hadi nyingine.

Servotester inaendeshwa na betri na voltage ya 6..12V.

Chanzo

#pamoja na #pamoja na #pamoja na //====================== ADC ========================= ====================== //Kuanzisha ADC: batili adc_init(batili)( ADCSRA = _BV(ADEN) | _BV(ADPS0) | _BV(ADPS1) |. _BV(ADPS2); // prescaler = 128 ) // Soma chaneli ya ADC: uint32_t adc_read(uint8_t ch)( ADMUX = _BV(REFS0) | (ch & 0x1F); // weka chaneli (VREF = VCC) ADCSRA &= ~ _BV(ADIF) // wazi maunzi "uongofu umekamilika" bendera ya ADCSRA |= _BV(ADSC) anzisha ubadilishaji wakati(ADCSRA & _BV(ADSC)); ; ) int main() ( char mode=0; // Mode - default 0 int direct=0; uint16_t adc_result; #fafanua ICR_MAX F_CPU/50 // ICR1(TOP) = fclk/(N*f ); &= ~ (1<<4); PORTB |= (1<<4); // Настраиваем порт светодиодов DDRC = (1<<1) | (1<<2) | (1<<3); PORTC |= (1<<(mode+1)); // Настраиваем PWM на таймере 1 (выход на ногах PB1, PB2) TCCR1A = 0; // Отключаем PWM пока будем конфигурировать ICR1 = ICR_MAX; // Частота всегда 50 Гц // Включаем Fast PWM mode via ICR1 на Таймере 1 без делителя частоты TCCR1A = (1<2) ( mode = 0; ) // Washa PORTC ya LED inayotaka &= ~((1<<1) | (1<<2) | (1<<3)); PORTC |= (1<<(mode+1)); } switch (mode){ case 0:{ // Задаем положени сервомеханизма, в зависимости от положения потенциометра adc_result adc_result=adc_read(0); OCR1A = OCR_MIN+(adc_result * (OCR_MAX-OCR_MIN)/1024); OCR1B = OCR1A; break; } case 1:{ // Задаем центральное положение сервомеханизма direct=0; OCR1A = OCR_CENTER; OCR1B = OCR1A; break; } case 2:{ // Циклическое изменение положения сервомашинки if (direct==0){ OCR1A++; OCR1B++; if (OCR1A >= OCR_MAX) ( moja kwa moja=1; ) ) ikiwa (moja kwa moja==1)( OCR1A--; OCR1B--; ikiwa (OCR1A<= OCR_MIN) { direct=0; } } _delay_ms(1); break; } } } }

ni gari ambalo shimoni linaweza kuhamia kwenye nafasi fulani au kudumisha kasi fulani ya mzunguko. Kwa maneno mengine, shimoni la servo linaweza kudhibitiwa, kwa mfano, kwa kutoa nafasi kwa digrii au kasi fulani ya mzunguko.

Servo anatoa hutumiwa katika nyanja mbalimbali, kwa mfano katika robotiki husaidia kuiga mienendo mbalimbali ya roboti. Anatoa za Servo ni suluhisho la ufanisi kwa mifumo ya kusonga katika nafasi.


Kifaa cha kiendeshi cha Servo

Ikiwa tunazungumza juu ya mambo kuu ya gari la servo, lina kitengo cha kudhibiti, motor na sensor.

Udhibiti hutokea kwa njia ya bodi ya mzunguko iliyochapishwa ambayo motor DC na potentiometer (sensor) huunganishwa. Gia za gia pia ziko ndani ya kitengo cha kudhibiti.



Kwa kweli, gari yenyewe ni motor umeme na gearbox ni motor umeme ambayo inabadilisha umeme katika hatua ya mitambo. Lakini kasi ya mzunguko wa gari haifai kila wakati kufikia malengo yako. Ili kufanya iwezekanavyo kudhibiti mzunguko wa motor, sanduku la gear hutumiwa. Matokeo yake, inapunguza kasi ya mzunguko wa shimoni la pato kwa thamani inayotaka. Potentiometer inadhibiti matokeo ya pato.


Pia kuna waya tatu zinazotoka kwenye servo. Wawili kati yao huwasha motor, waya wa tatu hutumiwa kusambaza ishara ambayo hubeba thamani fulani.





Kanuni ya uendeshaji

Wakati motor ya umeme imewashwa, shimoni la pato linazunguka. Unaweza kuunganisha au kuambatisha kwa kile unachopanga kudhibiti katika siku zijazo.


Hifadhi ya servo inapokea thamani maalum, kisha inalinganisha thamani hii na thamani kwenye sensor yake. Katika tukio la kutofautiana, kitengo cha udhibiti kinajitahidi kufikia na kudumisha thamani iliyowekwa ili ifanane, iwezekanavyo, thamani inayotoka kwa sensor.


Tabia kuu za kiufundi za gari la servo

Torque (Nguvu ya shimoni) . Inapimwa kwa kilo / cm. Ni bidhaa ya nguvu na urefu wa lever. Katika mazoezi, torque inawajibika kwa kuongeza kasi ya shimoni ya pato na uwezo wake wa kushinda upinzani wa mzunguko. Kadiri torati inavyokuwa juu, ndivyo injini inavyopata fursa nyingi zaidi za kutambua uwezo wake.


Kasi ya kugeuka . Inahusu kasi ambayo shimoni la pato la servo hubadilisha msimamo wake. Pembe ya mabadiliko ya msimamo imeonyeshwa kwa digrii.


Angle ya mzunguko. Huu ndio upeo wa juu ambao shimoni la pato linaweza kuzunguka. Maadili ya kawaida ya tabia hii ni 180 ° na 360 °.


Vipimo vya gari la Servo . Servos huja kwa ukubwa mdogo, wa kawaida na mkubwa. Huduma za kawaida ni za gharama nafuu zaidi. Ikiwa vipimo vinapotoka kutoka kwa viwango vya kawaida, bei, kama sheria, inabadilika kulingana na kupotoka kama hivyo.


Nyenzo za gia . Gia za kupunguza ni za plastiki, kaboni na chuma. Gia za plastiki ni nyepesi, lakini hazijaundwa kwa mizigo nzito. Gia za kaboni ni nguvu zaidi, lakini pia ni ghali zaidi. Gia za chuma ni nzito zaidi na zinafaa kwa mizigo ya juu.




Aina za servos

Anatoa za Servo zinaweza kuwa za dijiti au analog.

Kwa kuonekana wao ni karibu kutofautishwa kutoka kwa kila mmoja. Tofauti kuu ni kanuni ya udhibiti wa magari. Servos za analog zinadhibitiwa kwa kutumia microcircuit maalum ya digital ina microprocessor. Microcircuit na microprocessor zina uwezo wa kupokea na kuchambua mapigo ya kudhibiti. Ni wao tu ambao hufika kwenye microcircuit kwa mzunguko wa 50 Hz, na kwa microprocessor kwa mzunguko wa 200 Hz au zaidi. Matokeo yake, gari la servo la digital ni la simu zaidi na linajibu kwa uwazi zaidi kwa ishara ya udhibiti.



Digital servos ni hatua mpya katika maendeleo ya teknolojia, na zina sifa ya faida kadhaa. Faida hizi ni pamoja na: usahihi wa nafasi ya juu, uwezo wa kudhibiti gari kwa kasi, na uwezo wa kudumisha torque mara kwa mara.


Inaunganisha kwa Arduino

Hifadhi ya servo inaweza kuunganishwa kwa kidhibiti kinachoweza kuratibiwa cha Arduino ili kufikia malengo mbalimbali ya roboti. Uunganisho unafanywa kwa njia ya nyaya zinazotoka kwenye servo. Kwa kawaida kuna nyaya tatu: nyekundu; kahawia au nyeusi; njano, machungwa au nyeupe.





Cable nyekundu inawajibika kwa kuwezesha servo. Brown - kwa kutuliza. Njano - inaunganisha moja kwa moja kwenye bodi ya Arduino na imeundwa kusambaza ishara ya kudhibiti.

Hifadhi ya servo imeunganishwa kwenye bodi ya Arduino kupitia pini za PWM.



Kwa hivyo, waya mweusi umeunganishwa na pini yoyote ya GND.

Cable nyekundu ya nguvu (VTG) - kwa terminal inayolingana ya kuunganisha nguvu.

Cable ya ishara nyeupe - kwa pato la PWM.


Ugavi wa umeme wa Servo

Bodi nyingi za Arduino zimekadiriwa kwa 500mA. Kulingana na hili, gari la servo ni sehemu ya kutosha ya nishati, kwani hutumia zaidi ya 100 mA. Ikiwa mradi unahitaji matumizi ya gari la servo yenye nguvu au servos kadhaa, basi ni muhimu kutunza ugavi wao wa ziada wa nguvu. Shida ya usambazaji wa umeme wa ziada kwa servos inaweza kutatuliwa kama ifuatavyo:

Toa nguvu kwa gari la servo kutoka kwa usambazaji wa umeme ulionunuliwa zaidi, kwa mfano, 5 au 6 V;

Ikiwa hakuna umeme na voltage inayohitajika, unaweza kutumia utulivu.

Servo ya chini ya nguvu tu inaweza kushikamana moja kwa moja na Arduino. Vinginevyo, mtumiaji anaweza kutarajia madhara mbalimbali: kutoka kwa kuanzisha upya bodi hadi kuchoma vipengele vya mtu binafsi.


Idadi ya servos

Idadi ya servos iliyounganishwa na bodi ya Arduino ni mdogo. Aina nyingi za Arduino hutoa kwa kuunganisha servos 12, Arduino Mega hukuruhusu kuunganisha hadi servos 48.





Udhibiti wa huduma


Maktaba ya Servo

Maktaba ya gari la servo ina seti ya amri za ziada zinazokuwezesha kuingiza programu kwa fomu iliyorahisishwa.

Hadi sasa, mipango tayari imeandikwa kwa madhumuni mbalimbali. Maktaba zinaweza kupatikana kwa kutumia kiungo.

Kwenye mbao za Arduino isipokuwa muundo wa Arduino Mega, kuita maktaba huzima kipengele cha analogWrite(PWM) kwenye pini 9 na 10. Kuwepo au kutokuwepo kwa muunganisho wa servo haijalishi. Kwenye bodi za Arduino Mega, unaweza kuunganisha hadi servomotors 12 bila kuzima utendaji wa PWM.


Ili kudhibiti kiendeshi cha servo, maktaba ya Servo.h hutolewa.



Inaitwa kupitia #include . Baada ya kuunganisha maktaba, inawezekana kutumia orodha ya kazi zilizomo. Kazi za maktaba zinaweza kupatikana kupitia menyu ya "Faili/Mifano". Kwa kila servo, "kitu" chake (servo) kinaundwa, ambacho kinaunganishwa na pini ya digital inayofanana. Baada ya hayo, kidhibiti kinachoweza kupangwa cha Arduino kiko tayari kutuma ishara za udhibiti kwa servo maalum. Ishara hupitishwa kwa kuendelea, hata wakati gari la servo halifanyi kazi. Ili kusitisha kuashiria, lazima utume amri wewe mwenyewe.


Ishara ya kudhibiti

Ili kudhibiti gari la servo, ishara ya kudhibiti inakuwa muhimu. Ni pigo ambalo lina upana unaohitajika na hutumwa kwa mzunguko unaofaa. Upana wa mapigo unaweza kuingizwa kwa msimbo wa programu kwa mikono, kwa kutumia njia ya uteuzi ili kufikia pembe halisi, au unaweza kutumia amri za maktaba, kuonyesha angle inayotaka kwa digrii. Kwa chapa tofauti za anatoa za servo, upana wa mapigo ya kuzungusha shimoni la pato kwa pembe fulani inaweza kuwa tofauti.

Mapigo yanawajibika kwa harakati zote za servo na msimamo wake wa kusimama. Hifadhi ya servo inafanya kazi katika mduara wa mzunguko uliofungwa wa mapigo yaliyotumwa.


Timu za usimamizi

Udhibiti wa Servo kupitia maktaba unategemea amri zifuatazo:

Ikiwa usumbufu unatokea katika uendeshaji wa gari la servo, basi, kama sheria, hii inaonyeshwa na kelele zinazofanana: buzzing, crackling, nk. Hapo chini tutazingatia sababu kuu za kelele kama hiyo.


Kutokuwa na uwezo wa kugeuka kwa pembe fulani

Kuna matukio wakati kugeuza gari la servo kwa pembe fulani haiwezekani. Kwa mfano, kikwazo fulani kinaonekana kwenye njia yake. Kikwazo hiki kinaweza kuwa kifaa au sehemu yake iliyounganishwa kwenye gari la servo. Inapogonga kikwazo, kiendeshi cha servo huanza kupiga kelele kwa tabia. Ili kutatua tatizo hili, amri huingizwa kwenye programu ili kupunguza kikomo cha harakati ya servo kwa kubadilisha angle ya harakati.


Anza na umalizie mipangilio ya nafasi

Wakati mwingine ni muhimu kurekebisha kuratibu za nafasi ya kuanzia au ya mwisho. Hii ni muhimu wakati maadili ya sensor na nafasi halisi ya shimoni ya pato inatofautiana kuhusiana na nafasi ya mwisho ya mwisho. Kwa mfano, shimoni la pato liko kwenye nafasi ya mwisho, lakini sensor inadhani kuwa bado haijafikia na inajaribu kulazimisha shimoni la pato kuendelea kusonga. Kelele ya tabia inaonekana. Katika kesi hii, nafasi ya kuanza haifai kuanza saa 0 ° C, na nafasi ya mwisho haipaswi kuishia 180 ° C. Maadili haya ya kikomo yanaweza kubadilishwa kidogo na 5-10 ° C, na tatizo litatatuliwa.




Hitimisho

Leo, gari la servo ni kipengele muhimu katika robotiki, kwa msaada ambao miradi mingi ya ubunifu inatekelezwa. Injini hii yenye udhibiti mzuri imeundwa kuiga harakati. Kutumia kazi zake ni rahisi sana; programu nyingi tayari zimeandikwa ambazo zinaweza kutumika kama stencil kwa kutambua maoni yako mwenyewe. Hifadhi ya servo imeunganishwa na kidhibiti kinachoweza kupangwa cha Arduino. Ugumu wote wa mchakato huu umefunikwa kwa undani katika nakala hii na katika nakala zingine zilizowekwa kwenye mtandao.

Maduka ya kisasa hutoa uteuzi mkubwa wa servos. Kujua sifa zinazohitajika, ni rahisi kuchagua mfano unaofaa.