ዝርዝር ሁኔታ:
- ደረጃ 1 - ሃርድዌር
- ደረጃ 2 - መስመርን ይከተሉ
- ደረጃ 3: በእውነት ከመጀመራችን በፊት…
- ደረጃ 4: ቁልል
- ደረጃ 5 - ሶፍትዌሩ
- ደረጃ 6 - ኮዱን እናሻሽል
ቪዲዮ: ክፍል 3 GPIO: ARM Assembly: የመስመር ተከታይ: TI-RSLK: 6 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:31
ሰላም. ይህ የ ARM ስብሰባን (ከከፍተኛ ደረጃ ቋንቋ ይልቅ) የምንጠቀምበት ቀጣይ ክፍል ነው። ለዚህ አስተማሪነት መነሳሳት የቴክሳስ መሣሪያዎች ሮቦቶች ስርዓት መማሪያ ኪት ፣ ወይም TI-RSLK ላብ 6 ነው።
ማይክሮ መቆጣጠሪያውን ከኪቲው ፣ ከ MSP432 LaunchPad ልማት ቦርድ እንጠቀማለን ፣ ግን ምናልባት እርስዎ LaunchPad ን ባይጠቀሙም ፣ ወይም ቲአይውን ቢከተሉ እንኳን ከዚህ አስተማሪ ለማውጣት ጠቃሚ የሆነ ነገር ያገኛሉ። ሥርዓተ ትምህርት።
የ ARM ስብሰባን ፣ የእድገቱን አከባቢ እና ፕሮጀክት እንዴት እንደሚሰራ በማስተማር ማስተዋወቅ ጀመርን።
በ ARM ስብሰባ ላይ ቀጣዩ Instructable ከግብዓት/ውፅዓት (ጂፒኦ) ጋር እንዴት መስተጋብር እንደሚፈጠር አስተዋውቋል።
ከዚያ የእኛን ዕውቀት አስፋፍተናል ፣ እና ተግባሮችን አስተዋውቀናል ፣ ኤልኢዲዎችን እና መቀያየሪያዎችን ይቆጣጠራል።
አሁን በዚህ አስተማሪ ፣ እኛ የተማርነውን የበለጠ አስደሳች ፣ የበለጠ ጠቃሚ ነገር ለማድረግ አንድን መስመር ልንጠቀምበት እንችላለን።
የመስመር ተከታይ ሮቦት ስንሠራ ይህ በኋላ ላይ ሊረዳን ይችላል።
በስርዓተ ትምህርቱ ውስጥ ፣ አብዛኛው የፕሮግራም አወጣጥ የሚከናወነው በ C ወይም C ++ ውስጥ ነው ፣ ነገር ግን በከፍተኛ ደረጃ ቋንቋዎች እና በቤተመጽሐፍት ላይ በመመስረት ከመጀመራችን በፊት ከስብሰባ ጋር መተዋወቅ ጠቃሚ ነው።
ደረጃ 1 - ሃርድዌር
ቀደም ሲል ምንጮች ስላሉት ሃርድዌርን እንደገና ማደስ አልፈልግም ፣ ግን አስፈላጊ በሚሆንበት ጊዜ ማብራሪያዎችን እንጨምራለን።
እንደ TI-RSLK (የሮቦት ኪት) አካል ስለሆነ ለዚህ አስተማሪ ፣ ከፖሎሉ አንፀባራቂ ዳሳሽ አደርን እንጠቀማለን። እሱ በትምህርቱ ውስጥ ፣ እና በስርዓተ ትምህርቱ ላብራቶሪ 6 ውስጥ ያገለገለ ነው።
ያ ከሌለዎት ለመገኘቱ እና ላለመገኘት ዲጂታል ምልክት ፣ ከፍተኛ ወይም ዝቅተኛ ፣ የሚያወጣውን ማንኛውንም የ IR መመርመሪያ (ወይም የእነሱ ተከታታይ) መጠቀም ይችላሉ።
እኛ በመስመሩ መሃል ላይ መሆናችንን ወይም ወደ አንድ ወገን መሄዳችንን ለማወቅ ሊረዳ ስለሚችል የድርድር አነፍናፊው በጣም ጥሩ ነው። በተጨማሪም ፣ በኋላ እንደምናየው ፣ ከመስመሩ አንፃር የሮቦቱን አንግል ለመለየት ይረዳናል።
አንጸባራቂ ድርድር እርስ በእርስ በጣም ቅርብ የሆኑ መመርመሪያዎች አሉት። ያ ማለት በመስመሩ ውፍረት ላይ በመመስረት ብዙ የመለየት ምልክቶችን ማግኘት አለብን ማለት ነው።
እንደዚያ ከሆነ ፣ ሮቦቱ በቀጥታ ከመስመሩ ጋር የማይሰለፍ ከሆነ ፣ መስመሩ ከሚገባው በላይ ሰፊ የሆነ ውፅዓት መመለስ አለበት (ምክንያቱም እኛ አንግል ላይ ነን)።
ከላይ ላለው የተሻለ ማብራሪያ ፣ የላቦራቶሪ 6 ሰነዱን ይመልከቱ።
አነፍናፊውን ከ MSP432 LaunchPad ልማት ቦርድ ጋር ለማገናኘት / ለማገናኘት እገዛ ፣ አንዳንድ ጠቃሚ መመሪያዎች እዚህ አሉ።
እኔም ወደዚህ ደረጃ ተመሳሳይ (ተመሳሳይ?) የፒዲኤፍ መመሪያዎችን አክዬአለሁ።
የፖሎሉ ሰነዶችን በጥንቃቄ ካነበቡ ፣ ከ 5 ቮ ይልቅ 3.3 ቪ የሚጠቀሙ ከሆነ መዝለል እንደሚፈልጉ ለ “3.3V ማለፊያ” ምክንያቱን ያብራራሉ።
እኛ ሮቦትን ገና ስላልገነባን ይልቁንስ ስለ አርኤም ስብሰባ እና እንዲሁም ከሮቦቱ ቁርጥራጮች (ንዑስ ስርዓቶች) ጋር እንዴት እንደምንገናኝ እየተማርን ነው ፣ ከላይ ያሉትን መመሪያዎች ለደብዳቤው መከተል የለብንም።
ለአሁን ፣ የመስመር ዳሳሽ ድርድርን ማገናኘት ብቻ ይበቅላል/ወደሚከተለው ይቀንሳል።
- 3.3V እና GND ን ከ MSP432 ቦርድ ወደ አነፍናፊ ድርድር ያገናኙ።
- ወደብ ፒን (P5.3 እጠቁማለሁ) ከ MSP432 ወደ ኤልኢን በመስመር ዳሳሽ ድርድር ላይ ፒን ያገናኙ። በአነፍናፊው ላይ ያለው ፒን በ 3.3V እና GND መካከል ነው።
- የአንድን ወደብ ሁሉንም ስምንት ፒን/ቢት (ከ P7.0 እስከ P7.7 እጠቁማለሁ) ከ “1” እስከ “8” ከተሰየመው የስሜት ድርድር ስምንት ፒኖች ጋር ያገናኙ። እነሱ በሚሰማቸው ላይ በመመስረት ወደ HIGH ወይም LOW የሚሄዱ መስመሮች ናቸው።
በዚህ ደረጃ ምስሎች እና በቪዲዮው ውስጥ እንደሚመለከቱት ፣ አነፍናፊውን ከሮቦት ሻሲው ጋር አላያያዝኩም ፣ ምክንያቱም የፕሮግራም ፣ የማረም ፣ የመፈተሽ ፣ የመማርን ቀላልነት እፈልግ ነበር።
ስለዚህ ከተገናኘው ሁሉ ጋር ወደ ሶፍትዌሩ ለመግባት ዝግጁ ነን።
ደረጃ 2 - መስመርን ይከተሉ
የአንፀባራቂ ድርድር አነፍናፊ ቢያንስ በሁለት መንገዶች ሊረዳ ስለሚችል በጣም ቆንጆ ነው።
- ይወስኑ ሮቦቱ በመስመር ላይ ያተኮረ ወይም ወደ አንድ ጎን የሚንሸራተት።
- ሮቦቱ በመስመሩ አቅጣጫ የተስተካከለ ነው ወይስ በአንድ ማዕዘን ላይ ነው።
እያንዳንዱ የድርድር መመርመሪያዎች በመሠረቱ አንድ ትንሽ መረጃ ፣ ከፍተኛ ወይም ዝቅተኛ ይሰጣሉ።
ሀሳቡ እነዚያን ሁሉ ቁርጥራጮች ወደ አንድ ቁጥር ወይም ነጠላ ቢት-ጥለት ማዋሃድ እና ውሳኔዎችን ለማድረግ (በትክክል ለመንቀሳቀስ) ያንን ንድፍ ይጠቀሙ።
ደረጃ 3: በእውነት ከመጀመራችን በፊት…
.. ስለ ARM ስብሰባ መርሃ ግብር አዲስ ነገር መማር አለብን። እና እኔ ሌላ መመሪያ ብቻ ማለቴ አይደለም። እነዚያ ጥቃቅን የመሆን አዝማሚያ አላቸው።
እስካሁን ድረስ በፕሮግራሞቻችን ውስጥ “ቁልል” ን አልተጠቀምንም።
እኛ አብዛኞቹን ዋና ዋና የሲፒዩ መዝገቦችን በተለያዩ ንዑስ መርሆዎች በመላው ዓለም በመጠቀም ላይ ተመርተናል።
እኛ ያደረግነው አንድ ነገር የ LR (የአገናኝ መመዝገቢያ) አድራሻን ለአንድ ተግባር ማዳን እና ወደነበረበት መመለስ ነበር - ሌሎች በርካታ ተግባራትን የጠራው። (እዚህ “ተግባር” እና “ንዑስ” ን በተለዋጭ እጠቀማለሁ)።
ስንሠራው የነበረው ጥሩ አይደለም። ሌሎች ተግባሮችን ጎጆ ብንፈልግስ? ከአንድ በላይ ደረጃ ጎጆ ቢኖረንስ?
በቀደሙት ምሳሌዎች ፣ የመመዝገቢያ R6 ን እንደ LR ወይም የመመለሻ አድራሻ ማከማቻ ለመጠቀም መርጠናል። ግን የበለጠ/ጥልቅ ጎጆ መሥራት ከፈለግን ፣ የ R6 እሴቱን መለወጥ መቀጠል አንችልም። ሌላ መዝገብ መምረጥ አለብን። እና ሌላ። እና ከዚያ የትኛውን ዋና ሲፒዩ ምዝገባ የትኛው LR ወደ የትኛው ተግባር እንደሚመለስ ለመከታተል ከባድ ይሆናል።
ስለዚህ አሁን “ቁልል” የሚለውን እንመለከታለን።
ደረጃ 4: ቁልል
ቁልል የሚያብራራ አንዳንድ የንባብ ቁሳቁስ እዚህ አለ።
እኔ የሁለት ሀሳቦች ትልቅ ደጋፊ ነኝ -
- የሚፈለገውን ያህል ፅንሰ -ሀሳብ ብቻ ፣ ወደ ተግባራዊው በፍጥነት ይሂዱ
- እንደአስፈላጊነቱ ይማሩ ፣ ዓላማ በሌላቸው መልመጃዎች ወይም ምሳሌዎች ላይ ብቻ ሳይሆን በእውነቱ አንድ ነገር በማድረግ ላይ ያተኩሩ።
ስለ ቁልል የሚያወሩ ብዙ ARM እና MSP432 ሰነዶች በመስመር ላይ አሉ ፣ ስለዚህ ያንን ሁሉ እንደገና ለማደስ አይደለም። እኔ እዚህ የቁልል አጠቃቀምን በትንሹ በትንሹ እጠብቃለሁ - የመመለሻ አድራሻውን (የአገናኝ መመዝገቢያውን) በማስቀመጥ።
በዋናነት ፣ መመሪያዎችን ብቻ ያስፈልገናል-
PUSH {የመዝገብ ዝርዝር}
POP {የመዝገብ ዝርዝር}
ወይም ፣ በእኛ ሁኔታ ፣ በተለይ -
ግፋ {LR}
ፖፕ {LR}
ስለዚህ ፣ የመሰብሰቢያ ተግባር/ንዑስ ክፍል እንደዚህ ይመስላል
funcLabel.asmfunc
PUSH {LR} ፤ ይህ ምናልባት በመግቢያው ላይ ካሉት የመጀመሪያ መመሪያዎች አንዱ ሊሆን ይችላል።; እዚህ ተጨማሪ ኮድ ያድርጉ..; ምናምን ምናምን ምናምን…; እሺ ፣ እኛ ወደ ተግባር ጥሪ POP {LR} ለመመለስ ዝግጁ ነን ፣ ተግባሩን ጨርሰናል ፣ ይህ ትክክለኛውን የመመለሻ አድራሻ ወደ ጥሪ ይመልሳል ፣ ተግባር። BX LR; ተመለስ.endasmfunc
ቪዲዮው በበርካታ ጎጆ ተግባራት የቀጥታ ምሳሌን ያልፋል።
ደረጃ 5 - ሶፍትዌሩ
“MSP432_Chapter…” የሚል የተለጠፈው የተያያዘው ፋይል ስለ MSP432 ወደቦች ብዙ ጥሩ መረጃ አለው ፣ እና ከዚያ ሰነድ የሚከተሉትን ወደቦች ፣ ምዝገባዎች ፣ አድራሻዎች ፣ ወዘተ እናገኛለን። ሆኖም ፣ ለፖርት 5 እና ከዚያ በላይ የተዘረዘሩትን ዝርዝር አድራሻዎች አላየሁም። (“ተለዋጭ ተግባራት” ብቻ)። ግን አሁንም ጠቃሚ ነው።
ሁለት ወደቦችን እንጠቀማለን። P5 ፣ P7 ፣ P1 እና P2።
P5.3 (አንድ ቢት) ውፅዓት በአነፍናፊው ላይ የ IR LED ን ማንቃት ለመቆጣጠር ይሆናል። P5.3 ን እየተጠቀምን ያለነው ልክ እንደ ሌሎች የ MSP432 ግንኙነቶች ወደ አነፍናፊ ድርድር በሚሄዱበት ተመሳሳይ ራስጌ ላይ የተጋለጠ ፒን ነው።
ከ P7.0 እስከ P7.7 ድረስ መረጃውን ከአነፍናፊው የሚሰበስቡት ስምንት ግብዓቶች ይሆናሉ ፤ እሱ “የሚያየው”።
P1.0 ነጠላ ቀይ LED ነው እና እኛ ያንን የውሂብ አመላካቾችን ሊሰጠን ይችላል።
P2.0 ፣ P2.1 ፣ P2.2 የ RGB LED ነው እና እኛ እንደዚሁም ፣ ከተለያዩ የቀለም አጋጣሚዎች ጋር ፣ የአነፍናፊ ውሂቡን አመላካች ሊሰጠን ይችላል።
ከዚህ ሁሉ ጋር የተዛመዱትን የቀድሞ አስተማሪዎችን ካለፉ ታዲያ ፕሮግራሙን እንዴት እንደሚያዋቅሩ ያውቃሉ።
ለወደብ እና ለቢቶች ፣ ወዘተ የማወቂያ ክፍል ብቻ ይኑርዎት።
“ዋና” ክፍል ይኖርዎታል።
ከ P7 ውሂቡን በተከታታይ የምናነብበት ፣ ያንን መረጃ የምንወስንበት እና ሁለቱን ኤልኢዲዎች በዚህ መሠረት የምናበራበት አንድ ሉፕ መኖር አለበት።
እንደገና የወደብ ምዝገባ አድራሻዎች እዚህ አሉ
- GPIO P1: 0x4000 4C00 + 0 (አድራሻዎች እንኳን)
- GPIO P2: 0x4000 4C00 + 1 (ያልተለመዱ አድራሻዎች)
- GPIO P3: 0x4000 4C00 + 20 (አድራሻዎች እንኳን)
- GPIO P4: 0x4000 4C00 + 21 (ያልተለመዱ አድራሻዎች)
- GPIO P5: 0x4000 4C00 + 40 (አድራሻዎች እንኳን)
- GPIO P6: 0x4000 4C00 + 41 (ያልተለመዱ አድራሻዎች)
- GPIO P7: 0x4000 4C00 + 60 (አድራሻዎች እንኳን)
- GPIO P8: 0x4000 4C00 + 61 (ያልተለመዱ አድራሻዎች)
- GPIO P9: 0x4000 4C00 + 80 (አድራሻዎች እንኳን)
- GPIO P10: 0x4000 4C00 + 81 (ያልተለመዱ አድራሻዎች)
ደፋር የሆነው ለዚህ አስተማሪ የምንጠቀምበትን ነው።
የ IR መመርመሪያዎችን ለማንበብ የፕሮግራም እርምጃዎች
የሚከተለው ፕሮግራሙን በ C ውስጥ ለመፃፍ psuedo-code ነው ፣ ግን አሁንም ጠቃሚ ነው ፣ እና በፕሮግራሙ የስብሰባ ስሪት ውስጥ በጣም በቅርብ እንከተለዋለን።
ዋና ፕሮግራም 0) (ወደ 1) {1) P5.3 ከፍታ (IR LED ን ያብሩ) 2) P7.0 ን ውፅዓት ያድርጉ እና ከፍ ያድርጉት (capacitor ን በመሙላት) 3) 10 እኛን ይጠብቁ ፣ Clock_Delay1us (10); 4) P7.0 ን ግብዓት ያድርጉ 5) ይህንን loop 10,000 ጊዜ ያሂዱ ሀ) P7.0 ን ያንብቡ (P7.0 ላይ ያለውን ቮልቴጅ ወደ ሁለትዮሽ ይለውጣል) ለ) የውጤት ሁለትዮሽ ወደ P1.0 (በእውነተኛ ጊዜ ውስጥ ሁለትዮሽ እንዲያዩ ያስችልዎታል) 6) P5.3 ዝቅተኛ ያዘጋጁ (IR LED ን ያጥፉ ፣ ኃይልን ይቆጥቡ) 7) 10 ms ፣ Clock_Delay1ms (10) ይጠብቁ ፤ } // ይድገሙ (ወደ ኋላ ())
ደረጃ 6 - ኮዱን እናሻሽል
የ Pololu IR LED ድርድር ዓላማ ወይም አጠቃቀም አንድ መስመርን ለመለየት እና ሮቦቱ (የወደፊቱ) በቀጥታ በመስመሩ ላይ ያተኮረ መሆኑን ወይም ወደ አንድ ወገን መሄዱን ማወቅ ነው። እንዲሁም ፣ መስመሩ የተወሰነ ውፍረት ስላለው ፣ የአነፍናፊው ድርድር በቀጥታ ከመስመሩ ቀጥ ያለ ከሆነ ፣ የኤን ዳሳሾች ብዛት ከሌላው የተለየ ንባብ ይኖራቸዋል ፣ ነገር ግን የ IR LED ድርድር በአንዳንድ ማእዘን ላይ ከሆነ (ቀጥ ያለ አይደለም) ፣ ከዚያ N+1 ወይም N+2 IR LED/detector ጥንዶች አሁን የተለየ ንባብ መስጠት አለባቸው።
ስለዚህ ፣ ምን ያህል ዳሳሾች የመስመር መገኘቱን እንደሚያመለክቱ ላይ በመመስረት ፣ እኛ ማእከል እንደሆንን ፣ እና አንግል ብንሆን ወይም እንዳልሆንን ማወቅ አለብን።
ለዚህ የመጨረሻ ሙከራ ፣ አነፍናፊ ድርድር ስለሚነግረን የበለጠ መረጃ እንዲሰጠን ፣ ቀዩን ኤልኢዲ እና አርጂቢ ኤል ዲ ማግኘት እንደምንችል እስቲ እንመልከት።
ቪዲዮው ወደ ሁሉም ዝርዝሮች ይሄዳል። የመጨረሻው ኮድ እንዲሁ ተያይ attachedል።
ይህ ከጂፒኦ ጋር የተዛመደውን የ ARM ስብሰባ ተከታታይን ያጠናቅቃል። ከጊዜ በኋላ በበለጠ የ ARM ስብሰባ እንደምንመለስ ተስፋ እናደርጋለን።
አመሰግናለሁ.
የሚመከር:
የመስመር ተከታይ ሮቦት Siebe Deetens: 4 ደረጃዎች
የመስመር ተከታይ ሮቦት Siebe Deetens: Bij de opleiding Elektromechanica Automatisering aan HOGENT (3e bachelor) ፣ hebben we vanuit het vak Syntheseproject de opdracht gekregen om een line follower robot te maken. ሰላም
Tinkercad ላይ የመስመር ተከታይ 3 ደረጃዎች
በ Tinkercad ላይ የመስመር ተከታይ-ስሙ እንደሚያመለክተው የ A- መስመር ተከታይ ሮቦት ፣ በራስ-ሰር የሚመራ ተሽከርካሪ ነው ፣ ይህም ወለሉ ወይም ጣሪያው ላይ የተካተተውን የእይታ መስመር ይከተላል። ብዙውን ጊዜ ፣ የእይታ መስመሩ የመስመር ተከታይ ሮቦት የሚሄድበት መንገድ ሲሆን በ wh ላይ ጥቁር መስመር ይሆናል
የመስመር ተከታይ ሮቦት ከፒሲኮ ጋር - 5 ደረጃዎች (ከስዕሎች ጋር)
የመስመር ተከታይ ሮቦት ከፒሲኮ ጋር - እኛ እንደምናውቀው ስልጣኔን የሚያስቆም ሮቦትን ከመፍጠርዎ በፊት እና የሰውን ዘር ለማቆም የሚችል ነው። በመሬት ላይ የተቀረፀውን መስመር መከተል የሚችሉትን ቀለል ያሉ ሮቦቶችን መፍጠር መቻል አለብዎት ፣ እና እዚህ የት ያደርጉዎታል
የመስመር ተከታይ ሮቦት አርዱinoኖ እና ኤል 293 ዲ ጋሻ 4 ደረጃዎች
የመስመር ተከታይ ሮቦት አርዱinoኖ እና ኤል 293 ዲ ጋሻ - የመስመር ተከታይ ለጀማሪ ኤሌክትሮኒክስ በጣም ቀላል ሮቦት ነው። ሮቦቱ የአይአር ዳሳሹን በመጠቀም በመስመሩ ላይ ይጓዛል። አነፍናፊው ሁለት ዳዮዶች አሉት ፣ አንደኛው ዳዮድ የኢንፍራሬድ ብርሃን ይልካል ፣ ሌላኛው ዳዮድ ከላይ የሚንፀባረቀውን ብርሃን ይቀበላል። ዋ
የመስመር ተከታይ ሮቦት አርዱዲኖ ኡኖን እና L298N ን በመጠቀም - 5 ደረጃዎች
Arduino Uno እና L298N ን በመጠቀም የመስመር ተከታይ ሮቦት - የመስመር አበባ ለጀማሪ ኤሌክትሮኒክስ በጣም ቀላል ሮቦት ነው።