Os ydych chi am ddefnyddio a modur servo, neu servo, Gyda Arduino, yn yr erthygl hon byddwch yn dysgu beth sydd ei angen arnoch i ddechrau. Rydym eisoes wedi gweld mewn erthyglau eraill yr hyn sy'n angenrheidiol i'w ddefnyddio moduron trydan, moduron stepiwr, a hefyd gysyniadau eraill sy'n angenrheidiol i ddeall gweithrediad y math hwn o ddyfais, fel yr erthygl ar PWM.
Nawr, gallwch ychwanegu cydran electronig newydd arall at y rhestr dyfeisiau wedi'i ddadansoddi ac y gallwch chi fynd integreiddio eich prosiectau DIY i ychwanegu ymarferoldeb newydd.
Mynegai
Beth yw servo?
Un servomotor, neu servo yn syml, yw modur electronig sy'n debyg i moduron DC confensiynol, ond gyda rhai elfennau sy'n eu gwneud yn arbennig. Yn yr achos hwn, mae ganddo'r gallu i ddal safle sy'n cael ei nodi, rhywbeth nad yw moduron trydan yn ei ganiatáu.
Ar y llaw arall, gall y servo hefyd rheoli yn union cyflymder cylchdroi, diolch i gyfres o gerau mewnol a system sy'n caniatáu rheolaeth lawer gwell nag y gellid ei wneud mewn mathau eraill o moduron.
Mae'r nodweddion hyn yn ei gwneud yn arbennig o ddiddorol ar gyfer ceisiadau roboteg, neu ar gyfer dyfeisiau eraill lle mae angen rheoli symudiad a safle, fel argraffydd, neu gar a reolir o bell. Yn y math hwn o gar a reolir gan radio mae modur confensiynol i yrru'r car, a servo ar gyfer y llyw, i reoli'r tro yn union ag ef.
Gwahaniaeth rhwng modur stepper a modur servo
Os ydych chi'n meddwl tybed y gwahaniaeth rhwng modur servo a modur stepper, y gwir yw y gellir eu drysu, oherwydd yn y modur stepper, neu'r stepper, gellir rheoli'r cylchdro hefyd yn eithaf manwl gywir, ac mae'r cymwysiadau'n debyg iawn i'r servo. Yn lle, mae yna rai gwahaniaethau.
Ac y mae'r servomotors yn eu defnyddio fel rheol magnetau daear prin, tra bod moduron stepiwr yn defnyddio magnetau rhatach a mwy confensiynol. Felly, gall servo gyflawni datblygiad trorym uwch, er gwaethaf aros yn gryno. Felly, bydd y grym troi yn uchel iawn.
Nodweddion technegol
Pryd bynnag y byddwch chi'n prynu servo, dylech chi ymgynghori â'i ddalen dechnegol neu ei daflen ddata. Trwy hynny, byddwch yn sicrhau'r nodweddion technegol mae ganddo, ond hefyd y cyfyngiadau y gallwch eu gosod arno, megis foltedd, dwyster, llwyth uchaf, torque, ac ati. Cofiwch y gall pob model fod yn dra gwahanol.
Er enghraifft, os edrychwch ar un o'r rhai mwyaf poblogaidd, y Micro Servo 9G SG90 o y cwmni adnabyddus Tower Pro, yna bydd gennych rai nodweddion hynod iawn, er bod rhaglennu a chysylltiad y modelau fwy neu lai yr un peth ac mae popeth a ddywedir yma yn ddefnyddiol i unrhyw un.
Yn achos y model hwn, mae'n fodur o ansawdd uchel, gydag ongl droi sy'n caniatáu a ysgubo rhwng -90 a 90º, hynny yw, cyfanswm troad o 180º. Mae'r penderfyniad y gallwch ei gyflawni yn uchel iawn, felly byddwch yn gallu symud ymlaen ychydig ar ôl ychydig. Er enghraifft, gyda chyfyngiadau signal PWM o Arduino UNO, fe allech chi hyd yn oed gael blaenswm o radd i radd.
Yn yr un modd, bydd y signal PWM hefyd yn gosod terfyn arall, a dyna'r nifer o weithiau y gall pob safle newid fesul uned o amser. Er enghraifft, gan fod y corbys yn gweithio gyda rhwng 1 a 2 ms a gyda Cyfnodau 20 ms (50Hz), yna gall y servo symud unwaith bob 20 ms.
Yn ogystal, bydd ganddo bwysau o 9 gram ac, er gwaethaf y pwysau a'r maint cryno hwnnw, gall ddatblygu a trorym neu dorque o 1.8 kg / cm gyda 4.8v. Dyna diolch i'w set gêr POM.
Yn olaf, rydych chi eisoes yn gwybod, yn dibynnu ar yr hyn rydych chi am ei gyflawni, bod yn rhaid i chi ddewis un neu fodel arall, fel bod ganddo'r nodweddion sydd eu hangen ar gyfer eich prosiect. Hynny yw, nid yr un peth ydych chi am i fodur symud llwyth X, nag un ar gyfer XX ...
Ble i brynu servo
Os ydych chi am ddechrau defnyddio'r math hwn o servomotor, gallwch ei gael yn rhad mewn llawer o siopau arbenigol, a gallwch hefyd ei gael ar-lein yn Amazon. Er enghraifft, dyma rai enghreifftiau o cynhyrchion a argymhellir a allai fod o ddiddordeb i chi:
-
AZDelivery Servo MG90S Micro: yn cefnogi hyd at 13.4 kg.
- Arloesi-UE: gyda hyd at 25 kg / cm.
- Arloesi-UE: model diddos arall, a gyda hyd at 35kg / cm.
Mae gan bob un ohonynt ongl droi eithaf da, ond yn y bôn mae'n wahanol yn y torque y gall pob un ei oddef. Rwyf wedi cynnwys tri model gwahanol. Efallai y bydd y cyntaf, ac yn rhatach, yn ddigonol ar gyfer y mwyafrif o geisiadau. Ond os oes angen un arnoch chi â mwy o gryfder ar gyfer cymwysiadau eraill, mae gennych chi'r 25 a'r 35, sydd eisoes yn eithaf rhyfeddol ...
Integreiddio ag Arduino
Fel y gwelwch yn y ddelwedd uchod, mae'r servo yn cysylltu'n hawdd iawn i Arduino. Dim ond tri chebl sydd ganddo, y gallwch chi eu cysylltu fel hyn:
- Coch gyda 5V
- Du gyda GND
- Melyn gyda phin PWM Arduino, yn yr achos hwn gyda -9.
Er mwyn rhaglennu braslun i ddechrau defnyddio'r mathau hyn o beiriannau, mae gennych sawl opsiwn. Ond, yn gyntaf oll, i ddechrau, mae'n rhaid i chi ychwanegu llyfrgell Arduino IDE i yrru'r math hwn o moduron servo:
- Open Arduino IDE.
- Ewch i'r Rhaglen.
- Yna Cynhwyswch Lyfrgell.
- Servo
O ran cod braslunioGallai fod mor syml â hynny y bydd y servo yn mynd trwy ei safleoedd, gan stopio ar 0º, 90º a 180º:
//Incluir la biblioteca del servo #include <Servo.h> //Declarar la variable para el servo Servo servoMotor; void setup() { // Iniciar el monitor serie Serial.begin(9600); // Iniciar el servo para que use el pin 9 al que conectamos servoMotor.attach(9); } void loop() { // Desplazar a la posición 0º servoMotor.write(0); // Esperar 1 segundo delay(1000); // Desplazar a la posición 90º servoMotor.write(90); // Esperar 1 segundo delay(1000); // Desplazamos a la posición 180º servoMotor.write(180); // Esperar 1 segundo delay(1000); }
Nawr os ydych chi eisiau ei symud o radd i radd, yna byddai fel hyn:
// Incluir la biblioteca servo #include <Servo.h> // Declarar la variable para el servo Servo servoMotor; void setup() { // Iniciar la velocidad de serie Serial.begin(9600); // Poner el servo en el pin 9 servoMotor.attach(9); // Iniciar el servo en 0º servoMotor.write(0); } void loop() { // Los bucles serán positivos o negativos, en función el sentido del giro // Positivo for (int i = 0; i <= 180; i++) { // Desplazar ángulo correspondiente servoMotor.write(i); // Pausa de 25 ms delay(25); } // Negativo for (int i = 179; i > 0; i--) { // Desplazar el ángulo correspondiente servoMotor.write(i); // Pausa e 25 ms delay(25); } }