ትምህርት 89፡ ቀጣይነት ያለው ወይም 360 ሰርቮ ሞተር መጠቀም| አርዱኖ ደረጃ በደረጃ ኮርስ
መቼም ሞተርን በሁለቱም አቅጣጫ ለፈለጉት ጊዜ ማሽከርከር ፈልገው ያውቃሉ? እንደ መደበኛ ሰርቮ ወዲህና ወዲያ ከማወዛወዝ ይልቅ? ይህ በትክክል ቀጣይ ወይም 360-ዲግሪ ሰርቮ ሞተር የሚሰጠው ነው። ወደ አንድ የተወሰነ አንግል (በተለምዶ 0 እስከ 180 ዲግሪ) ከሚንቀሳቀስ መደበኛ ሰርቮ በተለየ፣ ቀጣይ ሰርቮ በሰዓት አቅጣጫ ወይም በተቃራኒ ሰዓት አቅጣጫ ያለማቋረጥ ይሽከረከራል። ይህ ትናንሽ ሮቦቶችን፣ የካሜራ መድረኮችን፣ ወይም ቀጣይ ሽክርክሪት ቁጥጥር የሚፈልግ ማንኛውንም ፕሮጀክት ለመገንባት ፍጹም ያደርገዋል።
በዚህ ፕሮጀክት ውስጥ፣ ሶስት የግፊት አዝራሮችን ብቻ በመጠቀም ለ360-ዲግሪ ሰርቮ የቁጥጥር ስርዓት እንገነባለን። ሰርቮውን በሰዓት አቅጣጫ፣ በተቃራኒ ሰዓት አቅጣጫ እንዲሽከረከር ወይም በማንኛውም ጊዜ እንዲቆም ማዘዝ ይችላሉ። ይህ መመሪያ በሽቦ አገናኝ ይመራዎታል፣ በኮዱ ውስጥ በተጠቃሚ ሊዋቀሩ የሚችሉትን ክፍሎች ያብራራል፣ እና የስርዓቱን የቀጥታ ማሳያ ያሳይዎታል።
ቀጣይ ሰርቮን በራስዎ ፕሮጀክቶች ውስጥ ለመጠቀም ጥቂት ተግባራዊ ሀሳቦች እነሆ፡-
- ትንሽ ባለ ሁለት ጎማ ሮቦት ይገንቡ፡- ጎማዎቹን ለማንቀሳቀስ ሁለት ቀጣይ ሰርቮዎችን ይጠቀሙ፣ ይህም ወደፊት፣ ወደኋላ እና መዞር እንቅስቃሴዎችን ያስችላል።
- የፓን-እና-ቲልት ካሜራ መጫኛ ይፍጠሩ፡- ለደህንነት ወይም የዱር እንስሳት ካሜራ ለዝግታ፣ ማለቂያ የሌለው ፓን አንድ ቀጣይ ሰርቮ ይጠቀሙ።
- የኮንቬየር ቀበቶን በራስ-ሰር ያድርጉ፡- እቃዎችን ለመደርደር ወይም ለማውጣት ትንሽ የኮንቬየር ስርዓት ይቆጣጠሩ።
- የሚሽከረከር ማሳያ መቆሚያ ይንደፉ፡- ያለማቋረጥ በሚሽከረከር መድረክ ላይ የ3D ሞዴል ወይም ምርት ያሳዩ።
የሚያስፈልጉ ሃርድዌሮች
- አርዱኖ ቦርድ (Uno፣ Nano፣ ወዘተ.)
- ቀጣይ (360-ዲግሪ) ሰርቮ ሞተር (ለምሳሌ FS90R፣ DS04-NFC)
- 3x የግፊት አዝራሮች
- መዝለያ ሽቦዎች
- ብሬድቦርድ
የሽቦ አገናኝ መመሪያ
ለዚህ ፕሮጀክት የሽቦ አገናኝ ቀላል ነው። የሰርቮ ሞተር ሶስት ሽቦዎች አሉት፡- በተለምዶ ጥቁር ለመሬት (GND)፣ መካከለኛው (ብዙውን ጊዜ ቀይ) ለኃይል (5V)፣ እና ቀለል ያለው (ብርቱካናማ፣ ቢጫ ወይም ነጭ) ለሲግናል። በቪዲዮው ላይ እንደሚታየው፣ ሰርቮው ከአርዱኖ ጋር እንደሚከተለው ተገናኝቷል፡-
- የሰርቮ መሬት (ጥቁር ሽቦ)፡- ከአርዱኖ GND ጋር ያገናኙ።
- የሰርቮ ኃይል (መካከለኛ/ቀይ ሽቦ)፡- ከአርዱኖ 5V ጋር ያገናኙ።
- የሰርቮ ሲግናል (ቀለል ያለ ሽቦ)፡- ከአርዱኖ ፒን 9 ጋር ያገናኙ።
ለሶስቱ የግፊት አዝራሮች፣ እ প্রতিটি አዝራር ሁለት ጎኖች አሉት። የሁሉም አዝራሮች አንድ ጎን አንድ ላይ ተገናኝተው ከዚያም ከአርዱኖ GND ጋር ይገናኛሉ። የእያንዳንዱ አዝራር ሌላኛው ጎን ከተለየ ዲጂታል ፒን ጋር ይገናኛል፣ ከዚህ በታች እንደተገለጸው (በቪዲዮው 03:40 ላይ)፡-
- የሰዓት አቅጣጫ (CW) አዝራር፡- ከአርዱኖ ፒን 2 ጋር ያገናኙ።
- የማቆሚያ አዝራር፡- ከአርዱኖ ፒን 3 ጋር ያገናኙ።
- የተቃራኒ ሰዓት አቅጣጫ (CCW) አዝራር፡- ከአርዱኖ ፒን 4 ጋር ያገናኙ።

የኮድ ማብራሪያ
ኮዱ በቀላሉ እንዲዋቀር ተደርጎ የተሰራ ነው። ማስተካከል የሚያስፈልግዎት በጣም አስፈላጊው ክፍል የሰርቮውን ተግባራት ለመቆጣጠር ወደ ሰርቮው የሚላኩትን ልዩ የPWM እሴቶች የሚይዘው sc[] ድርድር ነው። እነዚህ እሴቶች ሁለንተናዊ አይደሉም እና ለራስዎ ልዩ ሰርቮ ሞተር መለካት አለባቸው (በቪዲዮው 12:23 ላይ)።
int sc[]={106, 58, 0};// የሰርቮ ትዕዛዞች በቅደም ተከተል ናቸው
//CCW፣ STOP፣ CW
ይህ ድርድር የመለኪያው እምብርት ነው። እሴቶቹ በዚህ ቅደም ተከተል ጥቅም ላይ ይውላሉ፡-
- sc[0] = 106፡- ይህ እሴት ሰርቮውን በተቃራኒ ሰዓት አቅጣጫ ለማሽከርከር ይላካል።
- sc[1] = 58፡- ይህ የ"ማቆሚያ" እሴት ነው። በውስጣዊ ወረዳ ምክንያት፣ ሞተሩን የሚያቆመው ትክክለኛ እሴት ይለያያል። ሰርቮዎ ይህ ትዕዛዝ ሲላክም ቀስ ብሎ ሲሽከረከር ሊያገኙት ይችላሉ፣ እና ለሞተርዎ ትክክለኛውን "ሙሉ ማቆሚያ" እሴት ለማግኘት ይህንን ቁጥር በትንሹ ማስተካከል ያስፈልግዎታል።
- sc[2] = 0፡- ይህ እሴት ሰርቮውን በሰዓት አቅጣጫ በከፍተኛ ፍጥነት እንዲሽከረከር ያደርጋል።
የሽክርክሪት ፍጥነትን ለመቀየር በsc[] ድርድር ውስጥ ያሉትን እሴቶች ማስተካከል ይችላሉ። ለምሳሌ፣ sc[0]ን ወደ 70 ማዘጋጀት የተቃራኒ ሰዓት አቅጣጫ ሽክርክሪትን ቀስ ያደርገዋል። እሴቱ ወደ "ማቆሚያ" እሴት (58) በተጠጋ ቁጥር ሞተሩ በዚያ አቅጣጫ በዝግታ ይሽከረከራል። ከ58 በራቁ እስከ ከፍተኛ ገደብ ድረስ ያሉ እሴቶች ፍጥነቱን ይጨምራሉ።
ሊቀይሯቸው የሚገቡ ሌሎች ቁልፍ ተለዋዋጮችም አሉ። servoPin ወደ 9 ተዘጋጅቷል፣ ይህ በአርዱኖዎ ላይ PWM አቅም ያለው ፒን መሆን አለበት። የአዝራር ፒኖች በኮዱ መጀመሪያ ላይ ተገልጸዋል እና አስፈላጊ ከሆነ ሊቀየሩ ይችላሉ።
int servoPin = 9;// ይህ ፒን ከPWM ~ ካላቸው አንዱ መሆን አለበት
#define STOPpin 3 // ለSTOP የግፊት አዝራር ፒን
#define CWpin 2 // ለCW የግፊት አዝራር
#define CCWpin 4 // ለCCW የግፊት አዝራር
በመጨረሻም፣ scText[] ድርድር ለማረም ወደ Serial Monitor የሚታተሙትን ሕብረቁምፊዎች ይይዛል። የተለያዩ መልዕክቶችን ለማሳየት ከፈለጉ እነዚህን መቀየር ይችላሉ።
ኮዱን እንዴት መጠቀም እንደሚቻል
የቀረበውን ኮድ ወደ አርዱኖ ቦርድዎ ይስቀሉ። የሁኔታ መልዕክቶችን ለማየት Serial Monitorን (ወደ 9600 baud የተዋቀረ) ይክፈቱ። አሁን ሰርቮውን ሶስቱን አዝራሮች በመጠቀም መቆጣጠር ይችላሉ፡-
- የCW አዝራሩን ተጭነው ይያዙ፡- ሰርቮው በሰዓት አቅጣጫ መሽከርከር ይጀምራል። Serial Monitor "CW" እና የሚላከውን እሴት ያሳያል።
- የCCW አዝራሩን ተጭነው ይያዙ፡- ሰርቮው በተቃራኒ ሰዓት አቅጣጫ መሽከርከር ይጀምራል። Serial Monitor "CCW" እና የሚላከውን እሴት ያሳያል።
- የማቆሚያ አዝራሩን ይጫኑ፡- ሰርቮው ለማቆም ይሞክራል። Serial Monitor "Stop" ያሳያል።
የእርስዎ ሰርቮ የማቆሚያ ቁልፍ ሲጫን ሙሉ በሙሉ ካላቆመ፣ በsc[] ድርድር ውስጥ ያለውን sc[1] እሴት ማስተካከል ያስፈልግዎታል። እሴቱን በትንሹ ለመቀየር ይሞክሩ (ለምሳሌ፣ ከ58 ወደ 54 ወይም 52) እና ሞተሩ ሙሉ በሙሉ እስኪቆም ድረስ ኮዱን እንደገና ይስቀሉ።
የቀጥታ ማሳያ
በቪዲዮው ውስጥ፣ አቅራቢው ሙሉውን ስርዓት ያሳያል። ሰርቮው በቁልፍ ጭነቶች መሰረት በሁለቱም አቅጣጫዎች ሲሽከረከር ማየት ይችላሉ። የሴሪያል መቆጣጠሪያ ውጤትም ይታያል፣ የአሁኑን ሁኔታ ("CW"፣ "Stop" ወይም "CCW") እና ወደ ሰርቮው የሚላከውን ልዩ እሴት ያሳያል። ይህ ለማረም እና ለሞተርዎ ፍጹም የማስተካከያ እሴቶችን ለማግኘት ጥሩ መሳሪያ ነው። ማሳያው በsc[] ድርድር ውስጥ ያሉትን እሴቶች ማስተካከል የሞተሩን ፍጥነት ከዝግተኛ እንቅስቃሴ እስከ ከፍተኛ የመዞሪያ ፍጥነት እንዴት እንደሚጎዳ ያሳያል።
ማጠቃለያ
ይህ ፕሮጀክት ቀጣይ የሆነ ሰርቮ ሞተርን ለመቆጣጠር ቀላል እና ውጤታማ መንገድ ይሰጣል። የ"ማቆሚያ" እሴትን የማስተካከል ሂደትን በመረዳት፣ በራስዎ የሮቦቲክስ እና አውቶሜሽን ፕሮጀክቶች ውስጥ ትክክለኛ ቁጥጥርን ማረጋገጥ ይችላሉ።
የቪዲዮ ምዕራፎች
- [00:05] ለቀጣይ ሰርቮ ሞተር መግቢያ
- [02:02] የሰርቮው ሃርድዌር አጠቃላይ እይታ
- [02:40] የወልና ዲያግራም እና ግንኙነቶች
- [05:07] የኮድ ማብራሪያ፡ ተለዋዋጮች እና ማዋቀር
- [08:03] የኮድ ማብራሪያ፡ ዋና የሉፕ አመክንዮ
- [09:56] የservoCommand() ተግባር
- [10:54] የቀጥታ ማሳያ እና የሴሪያል መቆጣጠሪያ ውጤት
- [12:23] የሰርቮ ፍጥነት እና የማቆሚያ እሴቶችን ማስተካከል
++
/*
* S05-13 Servo with 3 push buttons
* Demonstration of Controlling a Continuous Servo (360 servo)
* This code allows you to control a 360-degree servo using push buttons
*
* Modified by Ahmad Shamshiri for Robojax Robojax.com
* on Jan 17, 2019 at 22:42 in Ajax, Ontario, Canada
Watch the video instruction for this sketch: https://youtu.be/hVe4TSRV4ww
Watch Introduction to 360 Servo video with code: https://youtu.be/b_xvu6wWafA
You can get the wiring diagram from my Arduino Course at Udemy.com
Learn Arduino step by step with all libraries, codes, and wiring diagrams all in one place
visit my course now http://robojax.com/L/?id=62
If you found this tutorial helpful, please support me so I can continue creating
content like this.
or make a donation using PayPal http://robojax.com/L/?id=64
Original code by BARRAGAN <http://barraganstudio.com>
*
* Code is available at http://robojax.com/learn/arduino
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int servoPin = 9;// this pin must be one of those with PWM ~
#define STOPpin 3 // push button pin for STOP
#define CWpin 2 // push button for CW
#define CCWpin 4 // push button for CCW
int sc[]={106, 58, 0};// servo commands are in order
//CCW, STOP,CW
String scText[]={"CCW","Stop","CW"};// define texts for 3 actions
int statusText;
int CWBS, CCWBS, SBS;
//CW button status (CWBS)
//CCW button status (CCWBS)
//stop button status (SBS)
void setup() {
Serial.begin(9600);
pinMode(STOPpin,INPUT_PULLUP);// set pin for push button STOP
pinMode(CCWpin,INPUT_PULLUP);// set pin for push button CCW
pinMode(CWpin,INPUT_PULLUP);// set pin for push button CW
myservo.attach(servoPin); // attaches the servo on pin 9 to the servo object
myservo.write(sc[1]);// send STOP command
statusText=1;// initial value is STOP
}
void loop() {
CCWBS = digitalRead(CCWpin);// read status of button CCW
SBS = digitalRead(STOPpin);// read status of button STOP
CWBS = digitalRead(CWpin);// read status of button CW
if(CCWBS ==LOW)
{
servoCommand(0);
}else if(SBS ==LOW)
{
servoCommand(1);
}else if(CWBS ==LOW)
{
servoCommand(2);
}
Serial.println(scText[statusText]);
delay(50);
}// loop
void servoCommand(int n)
{
statusText = n;
myservo.write(sc[n]);
Serial.print("Going to ");
Serial.print(scText[n]);
Serial.print( "(");
Serial.print(sc[n]);
Serial.println(")");
}
እንደሚያስፈልግዎት ይችላል
-
አማዞን360 Degree Servo motor on Amazonlink.amazon
-
ኢቤይ360 Degree Servo motor on eBayebay.us
-
አሊኤክስፕሬስ360 Degree Servo motor on AliExpresss.click.aliexpress.com
-
አሊኤክስፕሬስ360 Degree Servo motor on AliExpress-2s.click.aliexpress.com
ምንጮች እና ምንጮች
ፋይሎች📁
ሌላ ፋይሎች
-
SG90 Seroo ሞተር ዳታሺት
robojax-servo-SG90_datasheet.pdf0.12 MB