VEX IQ (1-ші буын) қашықтық сенсорын пайдалану

Сипаттама

Бұл сенсор оның және ең жақын қатты заттың арасындағы қашықтықты хабарлайды (50мм - 1м диапазон). Ол ультрадыбыстық толқындардың объектіден секіріп, сенсорға оралуына кететін уақытты пайдаланып қашықтықты есептейді.

VEX IQ (1-ші буын) қашықтық сенсоры.

Қашықтық сенсоры қалай жұмыс істейді: қашықтықты тыңдау

Жасыл текшеге ультрадыбысты жіберіп, содан кейін шағылысқан дыбысты қабылдайтын қашықтық сенсорының диаграммасы.

Қашықтық сенсоры дыбысты өлшеу үшін сонар құрылғыларымен бірдей принциптерді қолданады. Ол сенсордың бір жағындағы эмитентімен кішкентай ультрадыбыстық импульс жібереді, содан кейін дыбыстың сенсордың екінші жағындағы қабылдағышқа шағылысуын естуге кететін уақытты еселейді. Сенсор дыбыс импульсінің айналма жолды жасау үшін қанша уақыт кеткеніне негізделіп қашықтықты есептейді. Қашықтық сенсоры робот миына ең жақын нысанның қаншалықты алыс екенін айту үшін дыбыс жылдамдығына негізделген есептеу жүргізеді. 

Егер беті қисық қабырға немесе шар сияқты тегіс болмаса, ультрадыбыстық толқын барлық бөліктерден бірдей немесе бір уақытта шағылмайды. Толқынның анықталатын мөлшерін кері шағылыстыруға жеткілікті үлкен ең жақын бет нысанның анықталған қашықтығын анықтайды.


Қашықтық сенсорының жалпы қолданылуы:

VEXcode IQ нысаны қашықтық нысанды тапты ма деп оқитын блокты тапты?
Екі диаграмма. Жоғарыда, қашықтық сенсоры жақын маңдағы жасыл текшеге бағытталған және құсбелгімен белгіленген. Төменде қашықтық сенсоры жақын жердегі ештеңені бағыттамайды және ол X белгісімен белгіленген.

Бұл сенсор оның алдында нысанның бар-жоғын анықтай алады.

VEXcode IQ Қашықтық қашықтығын мм деп көрсететін блоктан қашықтық.

Бұл сенсор объекті мен оның арасындағы қашықтықты өлшей алады.

  • Робот бұл сенсорды нысаннан белгілі бір қашықтықты жүргізу үшін пайдалана алады. Қашықтық 160 мм-ден төмен болғанша робот жүріп келе жатқанда қашықтық мәнінің өзгеруін көру үшін төмендегі анимацияны қараңыз.

  • Робот бұл сенсорды объектіге қол тигізбестен апару үшін пайдалана алады. Жүргізуді үйлестіру үшін қашықтық сенсорларын пайдаланатын екі роботты көру үшін осы анимацияны қараңыз.

  • Бұл сенсор беретін мәндерді роботтың объектіге немесе бетінен жақын немесе алыс болуына байланысты жылдамдығын реттеу үшін пайдалануға болады. Роботтың қабырғаға дейінгі қашықтыққа қарай реттелуін көру үшін осы анимацияны қараңыз.


Жарыс роботында қашықтық сенсорын қолдану

  • Робот дұрыс жерде болған кезде әрекеттер тізбегін бастау үшін қашықтық сенсорын пайдалана алады. Мысалы, робот қабырғадан 150 мм қашықтықта екенін анықтағанша алға қарай жүре алады, содан кейін 90 градусқа бұрылып, нысанды баллдық аймаққа жібере алады.  
  • Қашықтық сенсорын объект ауқымда анықталған кезде ойын бөлігін алу сияқты робот әрекеттерін іске қосу үшін пайдалануға болады.
  • Робот қашықтық сенсорын нысанға немесе бетке ол белгілі бір қашықтықта болғанша, оған тимей-ақ жүргізу үшін пайдалана алады. Бұл робот ойын бөліктерін қағып кетпейтініне көз жеткізу үшін пайдаланылуы мүмкін.
  • Робот белгілі бір қашықтыққа жеткенше нысаннан немесе бетінен алыстау үшін қашықтық сенсорын пайдалана алады. Бұл алаңда басқа роботтармен соқтығысуды болдырмау үшін пайдаланылуы мүмкін.

VEXcode IQ жүйесінде қашықтық сенсорын пайдалану

Қашықтық сенсорын VEXcode IQ жүйесінде құрылғы ретінде қосу

Құрылғы қосу түймесі таңдалғаннан кейін VEXcode IQ құрылғылары мәзірі. Қашықтық (1-ші буын) опциясы бөлектелген.

Қашықтық сенсорын VEXcode IQ жүйесінде кодтау үшін алдымен қашықтық сенсорын конфигурациялау керек. VEXcode IQ жүйесінде сенсорды конфигурациялау туралы қосымша ақпарат алу үшін осы мақаланы қараңыз.

Сенсор конфигурацияланғаннан кейін жобаңызда пайдалануға болатын Құралдар жинағында пәрмендер пайда болады.

Блоктардағы қашықтық сенсорын кодтау

VEXcode IQ нысаны Distance7 оқитын блок табылды. Нысан табылды ма?

<Object found> блогы шартты ақиқат немесе жалған деп хабарлайтын логикалық репортер блогы болып табылады. <Object found> блогы сияқты логикалық блоктар басқа блоктар үшін алтыбұрышты (алты жақты) кірістері бар блоктардың ішіне орналасады.

<Object found> логикалық блок сенсор нысанды анықтаса, «шын», ал сенсор анықтамаса, «жалған» деп хабарлайды. Логикалық блоктар туралы қосымша ақпарат алу үшін Анықтама немесе Блок пішіндері мен мағынасы мақаласына кіріңіз.

 

VEXcode IQ нысанды тапқанша алға жылжыту үшін қашықтық сенсорын пайдаланатын жобаны блоктайды. Жоба іске қосылғанда, алға қарай жүріңіз, Distance7 нысанды тапқанша күтіңіз, содан кейін жүргізуді тоқтатыңыз деп оқиды.

Бұл мысалда <Object found> блогы Қашықтық сенсоры нысанды анықтағанша роботты алға жылжыту үшін [Күту] блогымен бірге пайдаланылады. Сенсор нысанды анықтаған кезде, робот жоғарыдағы суретте көрсетілгендей қозғалысты тоқтатады. 

VEXcode IQ Дистанцияны оқитын блоктан қашықтығы 7 қашықтығы мм.

(Distance from) блогы қашықтық сенсорынан ең жақын нысанның қашықтығын хабарлайды. Ол 24 мм-ден 1000 мм-ге дейінгі немесе 1 дюймнен 40 дюймге дейінгі диапазонды хабарлайды. (Distance from) блогы - дөңгелек кеңістіктері бар блоктардың ішінде қолданылатын репортер блогы.

 

VEXcode IQ қашықтығы 50 мм-ден аз болғанша алға жылжыту үшін Қашықтық сенсорын пайдаланатын жобаны блоктайды. Жоба іске қосылғанда, алға қарай жүріңіз, Мидағы Дистанция7 қашықтықты мм-мен басып шығарыңыз, Дистанция7 қашықтығы мм-мен 50-ден аз болғанша күтіңіз, содан кейін қозғалысты тоқтатыңыз.

Бұл мысалда (Distance from) блогы Ми экранында қашықтық сенсоры мен нысан арасындағы қашықтықты көрсету үшін [Print] блогымен бірге пайдаланылады. (Ашықтығы) блогы {Wait until} блоктың ішіндегі <Less than> блогының ішінде де көрсетіледі. Бұл роботты Қашықтық сенсоры 50 миллиметрден аз қашықтықтағы нысанды анықтағанша жүргізеді, содан кейін қозғалысты тоқтатады. Бұл жоғарыдағы бірінші бейнеде көрсетілген.

Python тіліндегі қашықтық сенсорын кодтау

Ескерту:Python тілінде VEX IQ (1-ші буын) қашықтық сенсорын кодтау үшін оны VEX IQ (2-ші буын) миына қосу керек. VEX IQ (1-ші буын) миы Python тілін қолдамайды.

қашықтық_7.is_объект_анықталды()

distance.is_object_detected пәрмені нысан анықталса, «шын» және нысан анықталмаса, «жалған» деп хабарлайды.

Ескертпе:Пәрменде пайда болатын қашықтық сенсорының атауы конфигурацияда берілген атқа сәйкес келеді. 

drivetrain.drive(FORWARD)
while not distance_7.is_object_detected()
    wait(20, MSEC)
drivetrain.stop()
Бұл мысалда, қашықтық сенсоры нысанды анықтағанша роботты алға жылжыту үшін distance.is_object_detected командасымен бірге емес, шартыменWhile циклі қолданылады. Сенсор нысанды анықтаған кезде, робот жоғарыдағы Python кодында көрсетілгендей жүргізуді тоқтатады.
қашықтық_7.қашықтық(ММ)

қашықтық.дистанция пәрмені қашықтық сенсорынан ең жақын нысанның қашықтығын хабарлайды. Ол 24 мм-ден 1000 мм-ге дейінгі немесе 1 дюймнен 40 дюймге дейінгі диапазонды хабарлайды.

drivetrain.drive(FORWARD)
brain.screen.print(distance_7.distance(MM)
while distance_7.distance(MM) емес < 50:
    wait(20, MSEC)
drivetrain.stop() ...

Бұл мысалда, қашықтық сенсоры нысанды анықтағанша роботты алға жылжыту үшін distance.is_object_detected командасымен бірге емес, шартымен While циклі қолданылады. Сенсор нысанды анықтаған кезде, робот жүргізуді тоқтатады.

Бұл мысалда, Brain экранында Қашықтық сенсоры мен нысан арасындағы қашықтықты көрсету үшін distance.distance командасы brain.screen.print командасымен бірге қолданылады. distance.distance командасы While циклінің ішінде емес, шартымен көрсетілген. Бұл роботтың қашықтық сенсоры 50 миллиметрден аз қашықтықтағы нысанды анықтағанша жүруіне, содан кейін жүруді тоқтатуына әкеледі. Бұл жоғарыдағы бірінші бейнеде көрсетілген.

Python тілінде қашықтық сенсорын кодтау туралы көбірек білу үшін, Информатика 1-деңгейінің 5-бөлімін қараңыз - Python. 

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: