- భాగాలు అవసరం
- సర్వో మోటార్ యొక్క పిన్ వివరణ
- సర్క్యూట్ రేఖాచిత్రం
- AVR ATmega16 తో సర్వో మోటార్ను నియంత్రించడం
- USBasp ఉపయోగించి Atmega16 ప్రోగ్రామింగ్
రోబోట్లు, ఆటోమేటెడ్ మెషినరీస్, రోబోటిక్ ఆర్మ్ వంటి ఖచ్చితమైన నియంత్రణ అవసరమయ్యే చోట సర్వో మోటార్స్ విస్తృతంగా ఉపయోగించబడుతున్నాయి. అయినప్పటికీ, సర్వో మోటారు యొక్క పరిధి దీనికి పరిమితం కాదు మరియు అనేక అనువర్తనాలలో ఉపయోగించవచ్చు. సర్వో మోటర్ యొక్క ప్రాథమికాలు, సిద్ధాంతం మరియు పని సూత్రం గురించి మరింత తెలుసుకోవడానికి లింక్ను అనుసరించండి.
మేము ఇంతకుముందు చాలా మైక్రోకంట్రోలర్లతో సర్వో మోటార్ను ఇంటర్ఫేస్ చేసాము:
- ARM7-LPC2148 తో ఇంటర్ఫేసింగ్ సర్వో మోటార్
- MSP430G2 తో ఇంటర్ఫేసింగ్ సర్వో మోటార్
- STM32F103C8 తో ఇంటర్ఫేసింగ్ సర్వో మోటార్
- MPLAB మరియు XC8 ఉపయోగించి PIC మైక్రోకంట్రోలర్తో ఇంటర్ఫేసింగ్ సర్వో మోటార్
- అర్డునో యునోతో ఇంటర్ఫేసింగ్ సర్వో మోటార్
- 8051 మైక్రోకంట్రోలర్తో సర్వో మోటార్ ఇంటర్ఫేసింగ్
ఈ ట్యుటోరియల్లో, మేము మైక్రో సర్వో మోటార్ను అట్మెగా 16 ఎవిఆర్ మైక్రోకంట్రోలర్తో అట్మెల్ స్టూడియో 7.0 ఉపయోగించి ఇంటర్ఫేస్ చేస్తాము. సర్వో మోటారు 4.8-6V లో పనిచేయడానికి రేట్ చేయబడింది. పల్స్ రైలు లేదా పిడబ్ల్యుఎం సిగ్నల్స్ వర్తింపజేయడం ద్వారా మేము దాని భ్రమణ మరియు దిశ కోణాన్ని నియంత్రించవచ్చు. సర్వో మోటార్లు పూర్తి 360 డిగ్రీల భ్రమణం కోసం కదలలేవని గమనించండి, కాబట్టి అవి నిరంతర భ్రమణం అవసరం లేని చోట ఉపయోగించబడతాయి. భ్రమణ కోణం 0 -180 డిగ్రీలు లేదా (-90) - (+90) డిగ్రీలు.
భాగాలు అవసరం
- ఎస్జీ 90 టవర్ ప్రో మైక్రో సర్వో మోటార్
- Atmega16 మైక్రోకంట్రోలర్ IC
- 16Mhz క్రిస్టల్ ఓసిలేటర్
- రెండు 100 ఎన్ఎఫ్ కెపాసిటర్లు
- రెండు 22 పిఎఫ్ కెపాసిటర్లు
- నొక్కుడు మీట
- జంపర్ వైర్లు
- బ్రెడ్బోర్డ్
- USBASP v2.0
- లెడ్ (ఏదైనా రంగు)
సర్వో మోటార్ యొక్క పిన్ వివరణ
- ఎరుపు = సానుకూల విద్యుత్ సరఫరా (4.8V నుండి 6V వరకు)
- బ్రౌన్ = గ్రౌండ్
- ఆరెంజ్ = కంట్రోల్ సిగ్నల్ (పిడబ్ల్యుఎం పిన్)
సర్క్యూట్ రేఖాచిత్రం
AVR మైక్రోకంట్రోలర్ ఉపయోగించి సర్వో మోటారును తిప్పడానికి దిగువ రేఖాచిత్రంలో చూపిన విధంగా అన్ని భాగాలను కనెక్ట్ చేయండి. నాలుగు PWM పిన్స్ ఉన్నాయి, మేము Atmega16 యొక్క ఏదైనా PWM పిన్ను ఉపయోగించవచ్చు. ఈ ట్యుటోరియల్లో పిడబ్ల్యుఎం ఉత్పత్తి కోసం పిన్ పిడి 5 (ఓసి 1 ఎ) ను ఉపయోగిస్తున్నాం. PD5 నేరుగా ఇన్పుట్ సిగ్నల్ పిన్ అయిన సర్వో మోటార్ యొక్క నారింజ తీగతో అనుసంధానించబడి ఉంది. శక్తి సూచిక కోసం దారితీసిన ఏదైనా రంగును కనెక్ట్ చేయండి. అవసరమైనప్పుడు, Atmega16 ను రీసెట్ చేయడానికి రీసెట్ పిన్లో ఒక పుష్ బటన్ను కనెక్ట్ చేయండి. సరైన క్రిస్టల్ ఓసిలేటర్ సర్క్యూట్తో Atmega16 ను కనెక్ట్ చేయండి. అన్ని సిస్టమ్ 5 వి సరఫరాతో శక్తినిస్తుంది.
పూర్తి సెటప్ క్రింద కనిపిస్తుంది:
AVR ATmega16 తో సర్వో మోటార్ను నియంత్రించడం
స్టెప్పర్ మోటార్ మాదిరిగా, సర్వో మోటారుకు బాహ్య డ్రైవర్ అవసరం లేదు ఉదా. ULN2003 లేదా L293D మోటారు డ్రైవర్. సర్వో మోటారును నడపడానికి PWM సరిపోతుంది మరియు మైక్రోకంట్రోలర్ నుండి PWM ను ఉత్పత్తి చేయడం చాలా సులభం. ఈ సర్వో మోటర్ యొక్క టార్క్ 2.5 కిలోలు / సెం.మీ ఉంటుంది, కాబట్టి మీకు ఎక్కువ టార్క్ అవసరమైతే ఈ సర్వో తగినది కాదు.
సర్వో మోటారు ప్రతి 20 సెకన్లకు ఒక పల్స్ను కోరుకుంటుందని మనకు తెలుసు మరియు సానుకూల పల్స్ యొక్క పొడవు సర్వో మోటార్ యొక్క భ్రమణ కోణాన్ని నిర్ణయిస్తుంది.
20ms పల్స్ పొందడానికి అవసరమైన ఫ్రీక్వెన్సీ 50Hz (f = 1 / T). కాబట్టి ఈ సర్వో మోటర్ కోసం, స్పెసిఫికేషన్ 0 డిగ్రీకి మనకు 0.388ms కావాలి, 90 డిగ్రీలకు మనకు 1.264ms కావాలి మరియు 180 డిగ్రీకి 2.14ms పల్స్ అవసరం.
పేర్కొన్న పప్పులను ఉత్పత్తి చేయడానికి మేము Atmega16 యొక్క టైమర్ 1 ను ఉపయోగిస్తాము. CPU ఫ్రీక్వెన్సీ 16Mz అయితే మైక్రోకంట్రోలర్కు అనుసంధానించబడిన ఎక్కువ పెరిఫెరల్స్ లేనందున మేము 1Mhz ను మాత్రమే ఉపయోగిస్తాము మరియు మైక్రోకంట్రోలర్పై ఎక్కువ లోడ్ లేదు, కాబట్టి 1Mhz ఆ పని చేస్తుంది. ప్రెస్కాలర్ 1 కు సెట్ చేయబడింది. కాబట్టి గడియారం 1Mhz / 1 = 1Mhz (1uS) గా విభజించబడింది, ఇది చాలా బాగుంది. టైమర్ 1 ఫాస్ట్ పిడబ్ల్యుఎం మోడ్ అనగా మోడ్ 14 గా ఉపయోగించబడుతుంది. మీరు కావలసిన పల్స్ రైలును ఉత్పత్తి చేయడానికి టైమర్ల యొక్క వివిధ రీతులను ఉపయోగించవచ్చు. సూచన క్రింద ఇవ్వబడింది మరియు మీరు Atmega16 అధికారిక డేటాషీట్లో మరింత వివరణను కనుగొనవచ్చు.
టు ఫాస్ట్ PWM వంటి Timer1 ఉపయోగించడానికి మోడ్ మనం ICR1 పైన విలువ (ఇన్పుట్ క్యాప్చర్ Register1) అవసరం. క్రింద ఇవ్వబడిన TOP విలువ వినియోగ సూత్రాన్ని కనుగొనడానికి:
f pwm = f cpu / nx (1 + TOP)
దీన్ని సరళీకృతం చేయవచ్చు, TOP = ( f cpu / ( f pwm xn)) - 1
ఎక్కడ, ప్రెస్కాలర్ సెట్ యొక్క N = విలువ
f cpu = CPU ఫ్రీక్వెన్సీ
f pwm = 50Hz అయిన సర్వో మోటార్ పల్స్ వెడల్పు
ఇప్పుడు మనకు అవసరమైన అన్ని విలువలు ఉన్నందున ICR1 విలువను లెక్కించండి, N = 1, f cpu = 1MHz, f pwm = 50Hz
పై సూత్రంలో విలువలను ఉంచండి మరియు మనకు లభిస్తుంది
ICR1 = 1999
దీని అర్థం గరిష్ట డిగ్రీని సాధించడం అంటే 180 0 ICR1 1999 అయి ఉండాలి.
16MHz క్రిస్టల్ మరియు ప్రెస్కాలర్ 16 కు సెట్ చేయబడితే, మనకు ఉంటుంది
ICR1 = 4999
ఇప్పుడు స్కెచ్ గురించి చర్చించడానికి ముందుకు వెళ్దాం.
USBasp ఉపయోగించి Atmega16 ప్రోగ్రామింగ్
సర్వో మోటార్ను నియంత్రించడానికి పూర్తి AVR కోడ్ క్రింద ఇవ్వబడింది. కోడ్ సులభం మరియు సులభంగా అర్థం చేసుకోవచ్చు.
ఇక్కడ మేము 0 నుండి సర్వో మోటార్ రొటేట్ Atmega16 కోడ్ చేసిన 0 180 0 180 నుండి మళ్ళీ తిరిగి వచ్చే 0 0 0. ఈ పరివర్తన 9 దశల్లో పూర్తవుతుంది, అంటే 0 - 45 - 90 - 135 - 180 - 135 - 90 - 45 - 0. ఆలస్యం కోసం, మేము అట్మెల్ స్టూడియో యొక్క అంతర్గత లైబ్రరీని ఉపయోగిస్తాము
మీ USBASP v2.0 ని కనెక్ట్ చేయండి మరియు USBASP మరియు Atmel Studio 7.0 ఉపయోగించి Atmega16 AVR మైక్రోకంట్రోలర్ ప్రోగ్రామ్కు ఈ లింక్లోని సూచనలను అనుసరించండి. స్కెచ్ను నిర్మించి, బాహ్య టూల్చెయిన్ను ఉపయోగించి అప్లోడ్ చేయండి.
ప్రదర్శన వీడియోతో పూర్తి కోడ్ క్రింద ఇవ్వబడింది. రోబోటిక్స్లో వాటి ప్రాముఖ్యతను తెలుసుకోవడం ద్వారా సర్వో మోటార్లు గురించి మరింత తెలుసుకోండి.