ትምህርት 13/31፡ XY ጆይስቲክን ከ Arduino ጋር መጠቀም እና በጆይስቲክ እንቅስቃሴ ባዘርን ማብራት | Robojax
በዚህ ትምህርት ውስጥ፣ የXY ጆይስቲክ ሞጁሉን እና አቅጣጫዊ እንቅስቃሴን እና የአዝራር ተጫናን ለመለየት ከአርዱኖ ጋር እንዴት እንደሚገናኝ እንመረምራለን። ይህ ሁለገብ የግብዓት መሣሪያ ሁለት ፖቴንሺዮሜትሮችን (አንዱ ለX-ዘንግ እና አንዱ ለY-ዘንግ) እና የግፋ አዝራርን ይይዛል፣ ይህም ሙሉ የ360-ዲግሪ የእንቅስቃሴ ክልልን ከጠቅታ እርምጃ ጋር እንድትይዙ ያስችልዎታል። ጥሬ እሴቶችን ከማንበብ ባሻገር፣ ጆይስቲኩ ወደ አንድ የተወሰነ ቦታ ሲንቀሳቀስ እርምጃዎችን እንዴት ማስነሳት እንደሚቻል እናሳያለን—ለምሳሌ ባዘርን ማብራት። ይህ መርህ ለብዙ መስተጋብራዊ ፕሮጀክቶች መሠረት ይፈጥራል።
ይህ መመሪያ ለመገንባት ፍጹም ነው፦
- ለሮቦቲክ መኪና ወይም የፓን-ቲልት ካሜራ መቆሚያ ባለ ሁለት-ዘንግ የርቀት መቆጣጠሪያ።
- ለፒሲ ወይም ለሞባይል መሣሪያ ብጁ የጨዋታ መቆጣጠሪያ።
- ለኤልሲዲ ወይም ኦኤልኢዲ ማሳያ የምናሌ አሰሳ ሥርዓት።
- ለኢንዱስትሪ ወይም ለትርፍ ጊዜ ማሳለፊያ መተግበሪያዎች ትክክለኛ የሞተር ፍጥነት እና አቅጣጫ መቆጣጠሪያ።
- አንድ የተወሰነ የጆይስቲክ ቦታ ሳይረን ወይም ማንቂያ የሚያነቃ መስተጋብራዊ የማንቂያ ሥርዓት።
ሃርድዌር እና ክፍሎች
ከዚህ ፕሮጀክት ጋር ለመከታተል፣ የሚከተሉትን ክፍሎች ያስፈልግዎታል። በቪዲዮው ውስጥ ጥቅም ላይ የዋለው ልዩ ኪት የSunFounder 3-in-1 አርዱኖ ኪት ነው፣ ነገር ግን እነዚህ ክፍሎች በተናጠል በስፋት ይገኛሉ።
- አርዱኖ ኡኖ (ወይም ማንኛውም ተኳሃኝ ቦርድ)
- XY ጆይስቲክ ሞጁል
- ፓሲቭ ባዘር
- ጅመር ሽቦዎች
- ለፕሮግራም እና ለኃይል የዩኤስቢ ኬብል
የXY ጆይስቲክ ሞጁሉን መረዳት
የXY ጆይስቲክ ራሱን የቻለ የግብዓት መሣሪያ ነው። በቪዲዮው ውስጥ እንደተብራራው (በቪዲዮ 01:20 ላይ)፣ በቀጥታ አቅጣጫ የተደረደሩ ሁለት የ10k ኦም ፖቴንሺዮሜትሮችን ያጣምራል። ዱላውን በX-ዘንግ በኩል ማንቀሳቀስ አንዱን ፖቴንሺዮሜትር ያሽከረክራል፣ በY-ዘንግ በኩል ማንቀሳቀስ ደግሞ ሌላውን ያሽከረክራል። ይህ አርዱኖ ለእያንዳንዱ ዘንግ የአናሎግ ቮልቴጅ እንዲያነብ ያስችለዋል፣ ይህም የዱላውን ትክክለኛ ቦታ ይወክላል። ሞጁሉ ዱላው በቀጥታ ወደ ታች ሲጫን የሚነቃ ጊዜያዊ የግፋ አዝራርንም ያካትታል።
የፒኖቹ ዝርዝር እነሆ፦
- GND፦ ከአርዱኖው መሬት (0V) ጋር ይገናኛል።
- VCC፦ ከአርዱኖው የ5V የኃይል አቅርቦት ጋር ይገናኛል።
- VRX፦ ለX-ዘንግ ቦታ የአናሎግ ውጤት።
- VRY፦ ለY-ዘንግ ቦታ የአናሎግ ውጤት።
- SW፦ ለግፋ አዝራሩ ዲጂታል ውጤት (ንቁ ዝቅተኛ)።
ቪዲዮው እንዲሁም ሁለቱ ውስጣዊ ፖቴንሺዮሜትሮች በVCC እና GND መካከል በትይዩ የተገናኙ መሆናቸውን ያሳያል፣ ይህም በጠቅላላው ወደ 5k ኦም የሚጠጋ ተቃውሞ ይፈጥራል፣ ይህ ለዚህ ሞጁል የተለመደ ንባብ ነው (በቪዲዮ 04:30 ላይ)።
የሽቦ አገናኝ መመሪያ
ለዚህ ፕሮጀክት የሽቦ አገናኝ ቀላል ነው። ቪዲዮው ከSunFounder ሰነድ የሽቦ አገናኝ ሥዕላዊ መግለጫ ያሳያል፣ ነገር ግን ጆይስቲኩን በቀጥታ እንደተገለጸው ከአርዱኖ ፒኖች ጋር እናገናኛለን። ባዘሩ ለፕሮጀክቱ የእርምጃ ክፍል ተጨምሯል።
በቪዲዮው ውስጥ እንደተመሠረቱት ግንኙነቶች እነሆ (በቪዲዮ 06:24 ላይ)፦
- ጆይስቲክ GND → አርዱኖ GND (ጥቁር ሽቦ)
- ጆይስቲክ VCC → አርዱኖ 5V (ቀይ ሽቦ)
- ጆይስቲክ VRX → አርዱኖ A0 (ቢጫ ሽቦ)
- ጆይስቲክ VRY → አርዱኖ A1 (አረንጓዴ ሽቦ)
- ጆይስቲክ SW → አርዱኖ ፒን 8 (ሰማያዊ ሽቦ)
- ባዘር ፖዘቲቭ (ረጅም ፒን) → አርዱኖ ፒን 2
- ባዘር ኔጋቲቭ (አጭር ፒን) → አርዱኖ GND
የኮድ ማብራሪያ
የቀረበው ኮድ የጆይስቲኩን ቦታ ለማንበብ እና አንድ የተወሰነ ሁኔታ ሲሟላ ባዘሩን ለማንቃት የተነደፈ ነው። ሊያዋቅሯቸው የሚችሏቸው ቁልፍ ክፍሎች በስኬቹ አናት ላይ ናቸው።
በመጀመሪያ፣ የፒን ትርጓሜዎች ተዘጋጅተዋል። ከእርስዎ ልዩ የሽቦ አገናኝ ጋር እንዲዛመዱ እነዚህን መቀየር ይችላሉ፦
const int xPin = A0; //the VRX attach to
const int yPin = A1; //the VRY attach to
const int swPin = 8; //the SW attach to
const int alarmPin=2;//to buzzer
በመቀጠል፣ የጆይስቲኩን ሁኔታ ለማከማቸት ዓለም አቀፍ ተለዋዋጮች ይገለጻሉ። እነዚህ readJoystick() ተግባር በተጠራ ቁጥር ይዘመናሉ።
int xValue;//to store xValue
int yValue;//to store yValue
int swValue;//to store value of the switch
በsetup() ተግባር ውስጥ፣ የመቀየሪያ ፒኑ ከውስጥ የመጎተት ተቃዋሚ ጋር ተዋቅሯል። ይህ ወሳኝ እርምጃ ነው ምክንያቱም የውጭ ተቃዋሚ አስፈላጊነትን ያስወግዳል። ወደ INPUT_PULLUP በማዘጋጀት፣ ፒኑ በነባሪ HIGH ያነባል እና አዝራሩ ሲጫን ወደ LOW ይሄዳል።
pinMode(swPin, INPUT_PULLUP); //set the SW pin to INPUTዋናው አመክንዮ በloop() ውስጥ ነው። አዲስ መረጃ ለማግኘት ብጁ የሆነውን readJoystick() ተግባር ይጠራል። ከዚያም ሁኔታን ይፈትሻል፡ የX-ዘንግ እሴት ከ600 በላይ ከሆነ እና የY-ዘንግ እሴት ከ300 ያነሰ ከሆነ፣ ባዘር ይበራል። ለጆይስቲክ የተለየ "ንቁ ዞን" ለመወሰን እነዚህን የገደብ እሴቶች መቀየር ይችላሉ። ባዘሩን ለማግበር alarmPin HIGH ይዘጋጃል እና መልእክት ወደ Serial Monitor ይታተማል።
if(xValue >600 && yValue <300)
{
digitalWrite(alarmPin, HIGH);
Serial.print("Alarm X:");
Serial.print(xValue);
Serial.print(" Y:");
Serial.println(yValue);
}else{
digitalWrite(alarmPin, LOW);
// ... ማንቂያው ሲጠፋ እሴቶችን ለማተም ኮድ
}
በመጨረሻም፣ ብጁ ተግባር readJoystick() ይገለጻል። ይህ ተግባር ከX እና Y ፒኖች የአናሎግ እሴቶችን እና የመቀየሪያውን ዲጂታል ሁኔታ ያነባል፣ በአለምአቀፍ ተለዋዋጮች ውስጥ ያከማቻል። ይህ ሞዱላር አቀራረብ ዋናውን loop ንጹህ እና የተደራጀ ያደርገዋል።
void readJoystick()
{
xValue =analogRead(xPin);//የxPin እሴትን ያንብብ
yValue =analogRead(yPin);//የyPin እሴትን ያንብብ
swValue =digitalRead(swPin);//የመቀየሪያውን ያንብብ
}
የቀጥታ ፕሮጀክት እና ማሳያ
ኮዱ ከተጫነ በኋላ፣ ጥሬ እሴቶችን ለመመልከት Serial Monitor መከፈት ይችላል። መጀመሪያ ላይ፣ ጆይስቲኩ መሃል ላይ ሲሆን፣ የX እና Y እሴቶች ወደ 512 ገደማ ይሆናሉ፣ ይህም የ0-1023 ክልል መካከለኛ ነጥብ ነው። ጆይስቲኩን ወደ ታች መጫን የመቀየሪያውን እሴት ከ1 ወደ 0 ይቀይረዋል (በቪዲዮ 10:15 ላይ)።
ጆይስቲኩን ወደ ጫፎቹ ማንቀሳቀስ ሙሉውን ክልል ያሳያል፡ ሙሉ በሙሉ ወደ ቀኝ ማንቀሳቀስ የX እሴት 1023 ያሳያል፣ እና ሙሉ በሙሉ ወደ ግራ ማንቀሳቀስ 0 ያሳያል። በተመሳሳይ፣ ወደ ላይ እና ወደ ታች ማንቀሳቀስ የY እሴትን በ0 እና 1023 መካከል ይቀይረዋል (በቪዲዮ 10:37 ላይ)።
ማሳያው ከዚያም የፕሮጀክቱን የተግባር ክፍል ያሳያል። ጆይስቲኩ ወደ ላይኛው ቀኝ ጥግ ሲንቀሳቀስ (X > 600 እና Y < 300 በሚሆንበት)፣ ባዘሩ ይደወላል፣ እና Serial Monitor "Alarm" መልእክት ያትማል። ከዚያ ዞን ማራቅ ባዘሩን ያጠፋዋል። ይህ የሚያረጋግጠው የጆይስቲክን አቀማመጥ የውጤት መሳሪያን ለመቆጣጠር መጠቀም እንደሚችሉ ነው፣ ይህም ለተለያዩ አፕሊኬሽኖች ሪሌይዎችን፣ LEDs ወይም ሞተሮችን ለመቆጣጠር ሊራዘም ይችላል።
ምዕራፎች
- [00:00] የXY ጆይስቲክ ፕሮጀክት መግቢያ
- [01:20] ሃርድዌርን እና ውስጣዊ ክፍሎችን መረዳት
- [03:33] የሞጁል ስኬማቲክ እና የመቋቋም መለኪያ
- [05:51] ጆይስቲኩን ከአርዱኖ ጋር ማገናኘት
- [07:00] ኮዱን ማዘጋጀት እና የፑል-አፕ ሬዚስተርን ማንቃት
- [09:23] ኮድ መጫን እና ጥሬ እሴቶችን መሞከር
- [12:21] እርምጃ መውሰድ፡ ባዘሩን በጆይስቲክ አቀማመጥ መቆጣጠር
- [16:02] የማንቂያ ስርዓቱ የቀጥታ ማሳያ
This code has not been parsed yet. Please return to the admin panel to parse it.
Common Course Links
Common Course Files
እንደሚያስፈልግዎት ይችላል
-
አማዞንSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
አማዞን
-
አማዞን
-
አማዞን
ምንጮች እና ምንጮች
-
ሰነዶችDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
ውስጥPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
ፋይሎች📁
Arduino ቤተ መዝገቦች (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
ተጠቃሚ መመሪያ
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB