జాయ్ స్టిక్ ఉపయోగించి సర్వో మోటారును ఎలా నియంత్రించాలి

సమస్యలను తొలగించడానికి మా పరికరాన్ని ప్రయత్నించండి





ఈ పోస్ట్‌లో జాయ్‌స్టిక్ మరియు ఆర్డునో ఉపయోగించి సర్వో మోటార్లు ఎలా నియంత్రించాలో నేర్చుకుంటాము. మేము జాయ్ స్టిక్, దాని పిన్స్, దాని నిర్మాణం మరియు పని గురించి అవలోకనాన్ని చూస్తాము. మేము సర్వో మోటారులను నియంత్రించడానికి ఆధారమైన జాయ్ స్టిక్ నుండి ఉపయోగకరమైన డేటాను తీస్తాము.

పరిచయం

ఈ వ్యాసం యొక్క నినాదం కేవలం కాదు సర్వో మోటార్లు నియంత్రించండి కానీ, ఎలా ఉపయోగించాలో తెలుసుకోవడానికి నియంత్రించడానికి జాయ్ స్టిక్ అనేక ఇతర పరిధీయ పరికరాలు.



ఇప్పుడు జాయ్ స్టిక్ చూద్దాం.

జాయ్ స్టిక్ అనేది ఇన్పుట్ పరికరం, ఇది లివర్ కలిగి ఉంటుంది, ఇది X మరియు Y అక్షాలలో అనేక దిశలలో కదలగలదు. లివర్ యొక్క కదలికను మోటారు లేదా ఏదైనా పెరిఫెరల్స్ ఎలక్ట్రానిక్ పరికరాలను నియంత్రించడానికి ఉపయోగిస్తారు.



జాయ్‌స్టిక్‌లను ఆర్‌సి బొమ్మల నుండి బోయింగ్ విమానాల వరకు ఉపయోగిస్తారు మరియు ఇలాంటి విధులను నిర్వహిస్తారు. అదనంగా గేమింగ్ మరియు చిన్న జాయ్ స్టిక్స్ Z అక్షంలో పుష్ బటన్‌ను కలిగి ఉంటాయి, ఇవి చాలా ఉపయోగకరమైన చర్యలను చేయడానికి ప్రోగ్రామ్ చేయబడతాయి.

జాయ్ స్టిక్ యొక్క ఇలస్ట్రేషన్:

జాయ్ స్టిక్ యొక్క ఇలస్ట్రేషన్:

జాయ్‌స్టిక్‌లు సాధారణంగా ఎలక్ట్రానిక్ పరికరాలు కాబట్టి, మనం శక్తిని వర్తింపజేయాలి. లివర్ యొక్క కదలిక అవుట్పుట్ పిన్స్ వద్ద వోల్టేజ్ వ్యత్యాసాన్ని ఉత్పత్తి చేస్తుంది. మోటారు వంటి అవుట్పుట్ పరికరాన్ని నియంత్రించడానికి వోల్టేజ్ స్థాయిలు మైక్రోకంట్రోలర్ చేత ప్రాసెస్ చేయబడతాయి.

ఇలస్ట్రేటెడ్ జాయ్ స్టిక్ ఇలాంటిది, ఇది ప్లేస్టేషన్ మరియు ఎక్స్‌బాక్స్ కంట్రోలర్‌లలో చూడవచ్చు. ఒకదాన్ని రక్షించడానికి మీరు ఈ నియంత్రికలను విచ్ఛిన్నం చేయవలసిన అవసరం లేదు. ఈ మాడ్యూల్స్ స్థానిక ఎలక్ట్రానిక్ షాపులు మరియు ఇ-కామర్స్ సైట్లలో సులభంగా లభిస్తాయి.

ఇప్పుడు ఈ జాయ్ స్టిక్ నిర్మాణం చూద్దాం.

దీనికి రెండు 10 కిలో ఓం ఉంది పొటెన్షియోమీటర్ స్ప్రింగ్‌లతో X మరియు Y అక్షాలలో ఉంచబడుతుంది, తద్వారా, వినియోగదారు లివర్ నుండి శక్తిని విడుదల చేసినప్పుడు దాని అసలు స్థానానికి తిరిగి వస్తుంది. ఇది Z అక్షం మీద ON to బటన్‌ను కలిగి ఉంది.

దీనికి 5 పిన్స్, 5 వోల్ట్ విసిసి, జిఎన్‌డి, వేరియబుల్ ఎక్స్, వేరియబుల్ వై, మరియు ఎస్‌డబ్ల్యు (జెడ్ యాక్సిస్ స్విచ్) ఉన్నాయి. మేము వోల్టేజ్ను వర్తింపజేసినప్పుడు మరియు జాయ్‌స్టిక్‌ను దాని అసలు లివర్ స్థానంలో ఉంచినప్పుడు. X మరియు Y పిన్స్ అనువర్తిత వోల్టేజ్‌లో సగం ఉత్పత్తి చేస్తాయి.

మేము లివర్‌ను తరలించినప్పుడు వోల్టేజ్ X మరియు Y అవుట్పుట్ పిన్‌లలో మారుతుంది. ఇప్పుడు జాయ్‌స్టిక్‌ను ఆర్డునోకు ఆచరణాత్మకంగా ఇంటర్‌ఫేస్ చేద్దాం.

బొమ్మ నమునా:

జాయ్ స్టిక్ ఉపయోగించి ఆర్డునో సర్వో మోటార్ కంట్రోల్

సర్క్యూట్ పక్కన పిన్ కనెక్షన్ వివరాలు ఇవ్వబడ్డాయి. పూర్తయిన హార్డ్‌వేర్ సెటప్‌ను కనెక్ట్ చేయండి మరియు కోడ్‌ను అప్‌లోడ్ చేయండి.

కార్యక్రమం:

//---------------Program Developed by R.Girish--------------//
int X_axis = A0
int Y_axis = A1
int Z_axis = 2
int x = 0
int y = 0
int z = 0
void setup()
{
Serial.begin(9600)
pinMode(X_axis, INPUT)
pinMode(Y_axis, INPUT)
pinMode(Z_axis, INPUT)
digitalWrite(Z_axis, HIGH)
}
void loop()
{
x = analogRead(X_axis)
y = analogRead(Y_axis)
z = digitalRead(Z_axis)
Serial.print('X axis = ')
Serial.println(x)
Serial.print('Y axis = ')
Serial.println(y)
Serial.print('Z axis = ')
if(z == HIGH)
{
Serial.println('Button not Pressed')
}
else
{
Serial.println('Button Pressed')
}
Serial.println('----------------------------')
delay(500)
}
//---------------Program Developed by R.Girish--------------//

సీరియల్ మానిటర్‌ను తెరవండి మీరు వోల్టేజ్ స్థాయిని X మరియు Y అక్షాల పిన్‌ల వద్ద మరియు Z అక్షం యొక్క స్థితిని చూడవచ్చు, అనగా క్రింద వివరించిన విధంగా పుష్ బటన్.

ఈ X, Y, Z అక్షాల విలువలు లివర్ యొక్క స్థానాన్ని అర్థం చేసుకోవడానికి ఉపయోగిస్తారు. మీరు చూడగలిగినట్లుగా విలువలు 0 నుండి 1023 వరకు ఉంటాయి.

వోల్టేజ్ 0V - 5V ను 0 నుండి 1023 విలువలకు మార్చే ADC కన్వర్టర్‌లో Arduino నిర్మించినందున దీనికి కారణం.

మీటను తాకకుండా వదిలేసినప్పుడు లివర్ X మరియు Y అక్షాల మధ్య స్థానం వద్ద ఉండి 1023 యొక్క సగం విలువను చూపుతుందని మీరు సీరియల్ మానిటర్ నుండి చూడవచ్చు.

ఈ జాయ్‌స్టిక్‌ల తయారీ ఎప్పుడూ పరిపూర్ణంగా లేనందున ఇది 1023 లో సగం సగం కాదని మీరు చూడవచ్చు.

ఇప్పటికి, మీకు జాయ్‌స్టిక్‌ల గురించి కొంత సాంకేతిక పరిజ్ఞానం వచ్చేది.

ఇప్పుడు ఒక జాయ్ స్టిక్ ఉపయోగించి రెండు సర్వో మోటార్లు ఎలా నియంత్రించాలో చూద్దాం.

సర్క్యూట్ రేఖాచిత్రం:

మీరు X అక్షం వెంట జాయ్‌స్టిక్‌ను తరలించినప్పుడు రెండు సర్వో మోటార్లు ఒక జాయ్ స్టిక్ ద్వారా నియంత్రించబడతాయి పిన్ # 7 వద్ద కనెక్ట్ చేయబడిన సర్వో లివర్ స్థానాన్ని బట్టి సవ్యదిశలో మరియు యాంటీ-క్లాక్ వారీగా కదులుతుంది.

మీరు జాయ్ స్టిక్ స్థాయిని ఒక నిర్దిష్ట స్థానంలో ఉంచితే, మీరు సర్వో యాక్యుయేటర్‌ను కూడా ఒక స్థానంలో ఉంచవచ్చు.

పిన్ # 6 వద్ద కనెక్ట్ చేయబడిన సర్వో మోటారు మాదిరిగానే, మీరు మీటను Y అక్షం వెంట తరలించవచ్చు.

మీరు Z అక్షం వెంట మీటను నొక్కినప్పుడు, రెండు మోటార్లు 180 డిగ్రీల స్వీప్ చేస్తాయి.

మీరు arduino ని కనెక్ట్ చేయవచ్చు 9 వి బ్యాటరీ లేదా కంప్యూటర్‌కు. మీరు ఆర్డునోను కంప్యూటర్‌కు కనెక్ట్ చేస్తే, మీరు సీరియల్ మానిటర్‌ను తెరిచి, సర్వో యాక్యుయేటర్స్ మరియు వోల్టేజ్ స్థాయిల కోణాన్ని చూడవచ్చు.

సర్వో మోటార్ నియంత్రణ కోసం ప్రోగ్రామ్:

//---------------Program Developed by R.Girish--------------//
#include
Servo servo_X
Servo servo_Y
int X_angleValue = 0
int Y_angleValue = 0
int X_axis = A0
int Y_axis = A1
int Z_axis = 2
int x = 0
int y = 0
int z = 0
int pos = 0
int check1 = 0
int check2 = 0
int threshold = 10
void setup()
{
Serial.begin(9600)
servo_X.attach(7)
servo_Y.attach(6)
pinMode(X_axis, INPUT)
pinMode(Y_axis, INPUT)
pinMode(Z_axis, INPUT)
digitalWrite(Z_axis, HIGH)
}
void loop()
{
x = analogRead(X_axis)
y = analogRead(Y_axis)
z = digitalRead(Z_axis)
if(z == LOW)
{
Serial.print('Z axis status = ')
Serial.println('Button Pressed')
Serial.println('Sweeping servo actuators')
for (pos = 0 pos <= 180 pos += 1)
{
servo_X.write(pos)
delay(10)
}
for (pos = 180 pos >= 0 pos -= 1)
{
servo_X.write(pos)
delay(15)
}
for (pos = 0 pos <= 180 pos += 1)
{
servo_Y.write(pos)
delay(10)
}
for (pos = 180 pos >= 0 pos -= 1)
{
servo_Y.write(pos)
delay(15)
}
Serial.println('Done!!!')
}
if(x > check1 + threshold || x {
X_angleValue = map(x, 0, 1023, 0, 180)
servo_X.write(X_angleValue)
check1 = x
Serial.print('X axis voltage level = ')
Serial.println(x)
Serial.print('X axis servo motor angle = ')
Serial.print(X_angleValue)
Serial.println(' degree')
Serial.println('------------------------------------------')
}
if(y > check2 + threshold || y {
Y_angleValue = map(y, 0, 1023, 0, 180)
servo_Y.write(Y_angleValue)
check2 = y
Serial.print('Y axis voltage level = ')
Serial.println(y)
Serial.print('Y axis servo motor angle = ')
Serial.print(Y_angleValue)
Serial.println(' degree')
Serial.println('------------------------------------------')
}
}
//---------------Program Developed by R.Girish--------------//

ఈ ప్రాజెక్ట్‌కు సంబంధించి మీకు ఏదైనా నిర్దిష్ట ప్రశ్న ఉంటే, వ్యాఖ్య విభాగంలో సంకోచించకండి, మీకు శీఘ్ర సమాధానం లభిస్తుంది.




మునుపటి: ఆర్డునో ఉపయోగించి డిజిటల్ కెపాసిటెన్స్ మీటర్ సర్క్యూట్ తర్వాత: ఆర్డునోతో డిజిటల్ పొటెన్టోమీటర్ MCP41xx ను ఉపయోగించడం