Mindstorms NXT 2.0 бағдарламасын іске қосыңыз. Ашылған терезеде «Жұмысты бастау нұсқаулығы» (Жылдам бастау нұсқаулығы) және «Бағдарламалық қамтамасыздандыруға шолу» (Бағдарламалық жасақтаманы шолу) бейнесін көруге болады.
Профильдер
Егер NXT-G бағдарламаларын әзірлеу кезінде бірнеше компьютер пайдаланатын болса, онда әрбір әзірлеушіге осы әзірлеушінің бағдарламалары ғана сақталатын бірегей профильді жасау ыңғайлы. Lego Mindstorms NXT 2.0 нұсқасын орнатқаннан кейін, бір профиль автоматты түрде әдепкі (әдепкі) атымен жасалады.
Жаңа студент профилін жасаңыз. Мұны істеу үшін Өңдеу\Өзгерту профильдері мәзірінің тармағын таңдаңыз. Пайда болған терезеде Құру түймешігін басыңыз (жаңа профильдің әдетті түрі Профайл-1 аты болады), Аты өрісін толтырыңыз және Жабу түймешігін басыңыз .
Енді сіз бірегей профильді тізімнен таңдай аласыз :
Student профилін жойып, атыңызбен профиль жасаңыз. Әрі қарай жұмыс істеу үшін профильді таңдаңыз.
Бағдарламаларды құру және ашу
Қоршаған ортаны әдепкі пайдаланушы интерфейсі бірінші жаңа бағдарламаның атауын Untitled-1 (атаусыз-1) деп орнатады. Болашақта сіз жасаған әрбір жаңа бағдарламаның саны автоматты түрде көбейеді. Дегенмен, бағдарламаларыңыз үшін бірегей «сөйлейтін» аттарды қолдану орынды.
Астында жасау жаңа бағдарлама (жаңа бағдарлама), теріңіз Сәлеметсіз бе! және Go түймесін басыңыз.
Назар аударыңыз! NXT экраны тек ағылшын тіліндегі мәтінді көрсетеді, сондықтан файл атауындағы кириллица таңбаларына рұқсат етілмейді.
Болашақта, саласындағы оны тізімнен таңдау арқылы қазірдің өзінде құрылған бағдарламаны ашу Open соңғы бағдарлама (қолданыстағы бағдарламасын ашыңыз) .
Сондай-ақ, файлдарды жасау және ашу үшін стандартты құралдарды пайдалана аласыз - тиісінше Ctrl + N және Ctrl + O немесе File мәзірін пайдаланыңыз .
Ортаңғы терезенің жоғарғы сол жағындағы қойындылар Robo Center мен My Portal портлетін ашуға мүмкіндік береді . Бұл мүмкіндіктерді осы нұсқаулықтың шеңберінен тыс қалдырамыз және оқырманға олармен танысуды ұсынамыз. Бағдарламалау аймағын ұлғайту үшін жай ғана крестке басыңыз.
Қажет болса, бұл қойындылар әрдайым қосылуы мүмкін.
Бағдарламалық блоктарды ашу
NXT-G оқу үшін өте ыңғайлы бағдарламаларды жобалаудың көрнекі әдісін қолданды. Бағдарлама блоктан тұрады.Әрбір блок әрекеттің басқа түрін білдіреді. Блоктарды реттеуге болады. Барлық блоктарды үш бағдарламалау палитрасы - «Common» (Common), «Complete» (Complete) және «Custom» (Custom) бағдарламаларында ұйымдастырады және ұсынады. Сіз бір уақытта тек бір палитрамен жұмыс істей аласыз.
Блокта блоктың функционалдық мақсаттарына байланысты түрлі түсті болады. Функционалдығы боялған секілді блоктар. Мысалы, кейбір әрекеттерді орындауға жауапты барлық әрекеттер ( әрекет ) жасыл түсті болып табылады және сенсорлардың ағымдағы мәндерін көрсететін блоктарды сары болады. Бояу бояғышты қажетті блоктарды табуға мүмкіндік береді.
Ең жиі қолданылатын блоктары Бірыңғай панельде топтастырылған. Бұл палитраның әрбір белгішесі осы блоктың алты нұсқасын көрсететін Wait белгішесін қоспағанда, бөлек бағдарлама блогы болып табылады :
Күте тұру блогының кез-келген нұсқаларын блокты орнату арқылы алуға болады. 1.7-міндет. Жалпы бояғыштардағы блоктарға арналған құралдар кеңестерін олардың үстіне меңзеп, қарап шығыңыз. Толық бояғышты алты блокта ұйымдастырылған 39 блокқа қол жеткізуге мүмкіндік береді. Бірінші санат жалпы бояғышты қайталайды. Кейінірек нақты мысалдармен басқа санаттармен танысамыз. Пайдаланушы палитрасы сіз жүктеген және өзіңіз жасаған блоктарды қамтиды.
Бірінші бағдарлама
Бағдарлама жасауды жалғастырыңыз Сәлем ! NXT-G қоршаған орта интерфейсін шолуды аяқтайды.
Бағдарламалау палитрасының оң жағында үлкен бағдарламалау аймағы бар. Блоктар палитадан тышқанмен Лего шұңқыры түрінде арнайы бағыттауышқа сүйреледі , ол келесі қосымша блокпен көбейеді.
Хабарламаны көрсететін программалау тілін енгізу үшін классикалық бағдарлама жасайық : Сәлем, әлем!
қосу тізіміне бағдарлама блок Display жалпы бояғышты. Терезенің төменгі бөлігінде ағымдық (бөлінген) блоктың параметрлер тақтасы көрсетіледі. By Әдепкі, бірлігі үшін орнатылған көрсету суреттерді ( : Image Action атап айтқанда, жымиып Көңіл-күй таңбасын). Кескінді Файл сипатында өзгерту мүмкін . Дисплейсипаты жаңа кескінді көрсетпестен бұрын экранды ( Clear ) тазалауға мүмкіндік береді .
Біз мәтінді көрсету, сондықтан қасиеттерін өзгерту керек іс-қимыл туралы Мәтін , мәтінді ауыстыру арқылы әдепкі Сәлем, әлем! және Line-5 дисплейінің орналасу орнын таңдаңыз (сіз тінтуірмен қажетті орынғаорналасу қасиетіне бассаңыз немесе қажетті координаттарын орнатасыз ).
Біздің бағдарламамыз өте тығыз, ол экранға толығымен сай келеді. Болашақта біз ұзақ (сөздің мағынасында) кодты кездестіреміз. Экранға сәйкес келмейтін кодты көру үшін меңзер көрсеткілерін пайдалануға болады.Сонымен қатар, экранның төменгі оң жақ бұрышындағы код аймағында тінтуірді басуға болады (ол үлкейткіш кескіннің суреті бар қойындыға басқанда қол жетімді болады).
жүктеу және іске бағдарламалар блок NXT NXT-G қоршаған ортаға пайдаланып бақылау түймелерін немесе арқылы -басқалары, контроллер :
Роботты USB кабелі арқылы компьютерге қосыңыз. Роботты қызғылт түсті түймені басу арқылы қосыңыз.Бағдарламаны орындау үшін контроллердің орталық түймесін қолданып іске қосыңыз. Сіз не көрдіңіз? Экранда сәлемдесу Hello! содан кейін дереу жасалды . Бұл дегеніміз, бағдарлама Сәлеметсіз бе! қазірдің өзінде сіздің жұмысын аяқтады, және сіз ешқашан көрмеген. Бағдарламалық жасақтама файлдарының мәзірі енді NXT экранында көрсетілетінін ескеріңіз .
Бағдарламаның аяқталуына дейін NXT экранындағы мәтінді көру уақытын алу үшін уақыт кідірісін пайдалану керек. Бағдарламаға жаңа күту блогын қосыңыз және оны екі секунд ішінде санау үшін теңшеңіз :
Бағдарламаны қайтадан контроллердің орталық түймешігі арқылы іске қосыңыз. Енді экранда экранда екі секундқа қалды. Қазіргі уақытта NXT экраны бойынша іске қосылғандықтан , бағдарламаны орындауды қызғылт сары батырманы басу арқылы қайталауға болады.
NXT экранында солға және оңға қарап көзге көрінетін жаңа бағдарлама, Көздер жасаңыз . Сол / оң көріністі имитациялау үшін Қарап шығудың сол және оң іздеген файлдарын пайдаланыңыз. Бағыттың өзгеруі төрт рет орындалады.
NXT-блокқа жаңа атау беру арқылы тақырыпты аяқтаңыз.
NXT атауын өзгерту. NXT терезесінің контроллері түймесін басыңыз . Нәтижесінде терезе ашылады, оның оң жағында NXT деректерінде келесі мәліметтер бар :
Атауы
Батарея
Қосылым
Тегін сақтау
Микробағдарлама нұсқасы (бағдарламалық жасақтама нұсқасы, «микробағдарлама» деп аталады)
Name өрісіне NXT үшін жаңа атау енгізіңіз және осы өрістің жанындағы енгізу түймешігін басыңыз. NXT экраны жаңа атауды автоматты түрде көрсетеді.
Байланыс және жад түймелері кейінірек талқыланады.
Моторды бағдарламалау: Пәрменді жылжыту
Роботтың басты функцияларының бірі қозғалыс. Робот пен оның жеке бөліктері де қозғала алады. Қозғалыс сервомоторлармен басқарылады (немесе сервос). Lego Mindstorms конструкторында сервосы негізгі осьтің айналу дәрежесінің санын есептейтін жылдамдық сенсорларына ие. Сервомотордың маңызды компоненті - беріліс жүйесі арқылы ішкі электр қозғалтқышының өте жылдам айналуын қамтамасыз ететін беріліс қорабы. Жылдамдық датчигі мен беріліс қорабының болуы сервомотордың негізгі осьтің нақты қозғалысына мүмкіндік береді. Lego servo дәлдігі 1 ° бұрыла алады. Суреттегі ішкі құрылғы servo.
Қозғалыс бағдарламалауы ортақ және толық бояғыштардағы Move блокты арқылы жүзеге асырылады .
Жылжыту блогында мотордың мінез-құлқын бақылауға мүмкіндік беретін көптеген параметрлер бар .
Суретте сандар:
Осы құрылғымен басқарылатын қозғалтқыштар.
Қозғалтқыштардың айналу бағыты.
Мотордың қуат деңгейі (жылдамдық). Роботтың нақты жылдамдығы оның бетіне (тайғақ, өрескел және т.б.), беткі трленгаға, робот массасына және т.б. сияқты дизайнына байланысты болады.
Қозғалыс ұзақтығының параметрі: шектелмей, градустарда, революцияларда немесе секундта.
Блокты таңдағаннан кейін экранның төменгі жағында басқа блоктарды сияқты жылжыту блогын орнату :
Суретте сандар:
Басқарылатын қозғалтқыштарды таңдау ( Порт ). Мүмкін, A, B немесе C бір қозғалысы бір мезгілде екі қозғалтқышты басқара алады (тоқтау, тіпті үш); B және C қозғалтқыштары таңдалғандығына назар аударыңыз.Доңғалақты немесе роботты роботтарды жасау кезінде В және С қозғалтқыштарына сол және оң дөңгелектерді (тректерді) тағайындау және А қозғалтқышына көмекші операциялар (манипуляторлар, бұрылыс мұнаралары және т.б.) керек. NXT құрылғысының құрылғысымен байланысты және роботтың нақты қозғалысын қамтамасыз етеді.
Қозғалтқыштың / қозғалтқыштардың айналу бағытын таңдау ( бағыт ). Мүмкін «алға», «кері» немесе «тоқтау».
Екі қозғалтқышты басқару кезінде ол айналдыру үшін қолданылады: жүгірткіні жылжыту (жүгірткі) Рульді басқару солға немесе оңға. Тікелей қозғалыс үшін оны ортасында орнатыңыз. Егер сіз осы параметрдің аралық мәндерін қолдансаңыз, робот доғаның астына өтеді. Орталықтан сырғанаушы қаншалықты алыс болса, соғұрлым круче.
Қуат деңгейі қуат деңгейін 0 - 100% құрайды. Қуат осы диапазоннан асып кете алмайды.
Шексіз - ешқандай шектеу жоқ. Бұл өте маңызды параметр; оның таңдау қозғалтқыш оқиғаға дейін жұмыс істейтін болады деп болжайды. Мысалы, біз қозғалтқышты іске қосу және робот қызыл алаңында қоңырау кезде оны тоқтатуға болады.
Келесі әрекеттен кейін әрекетті қозғалтқыш әрекеті. Мұнда екі нұсқа бар:
Тежегіш - тежегіші. Бұл жағдайда қозғалтқыш тоқтаған кезде оның айналуын дереу тоқтатады.Энергия бұл міндетке жұмсалады. Атап айтқанда, үнемі кенеттен тежелу арқылы батарея жылдамырақ отырады.
Coast The - жай ғана қозғалтқыштың қуатын өшіру және инерция выкатывать тоқтатуға кейін команда. Бұл режим нақты тоқтауды қажет етпесе, пайдалану үшін пайдалы.
Кері байланыс өрісі. Қозғалтқыш айналымының ағымдағы мәндері робот компьютерге қосылған кезде көрсетіледі.
2.1 Тапсырма. Параметрлерді өзгерту.
Lego Mindstorms NXT роботтары үшін бағдарламалау ортаңызды бастаңыз.
Жаңа файл жасаңыз. Бағдарламаға жылжыту блогын қосыңыз .
Суретте бағдарлама жасамай, оны оқыңыз. Әрбір бағдарлама блогына қандай параметрлер сәйкес келеді?
Әрі қарай жұмыс істеу үшін бізге роботтың сынақ моделі қажет.
Робот: «бес минут»
Егер сіз сынақты іске қосу үшін немесе эксперимент немесе басқа жоба үшін бастапқы нүкте ретінде жылдам құрылуға болатын негізгі робот машинасымен басталғыңыз келсе, бұл қарапайым дизайн шамамен бес минут ішінде жасалуы мүмкін. бәрін орыс тілінде жазыңыз! Бұл тегіс едендерде өте күшті және оңай. Робот «Пятиминутка» монтаждау нұсқаулары 1
2
3
Немесе
NXT-ге алты AA батарейкасын немесе арнайы NXT қайта зарядталатын аккумуляторды салыңыз.
4
5
6 Екі жетекші қозғалтқышты NXT құрылғысында B және C порттарына жалғау үшін екі орта ұзын сымды қолданыңыз. Абайлаңыз : B порты электр қозғалтқышының B жағында және С жағында қозғалтқышпен қосылғанын тексеріңіз.
Мемлекет және оқиғалар. Датчиктер
Роботтың мінез-құлқы - дәйекті мемлекеттер тізбегі (қозғалыс жағдайы, іздеу күйі және т.б.). Шарттардың өзгеруі сыртқы оқиғаларға байланысты болады. Робот әр түрлі сенсорлар арқылы оқиғаларды тіркейді. Роботтың барлық мінез-құлықтары мемлекеттер арасында өтпелі диаграмма түрінде схемалық түрде бейнеленуі мүмкін.
Мысал 3.1. Роботтың қара сызыққа сәйкес келетін «State 1 → Event → State 2» күйін өту диаграммасы :
Робот қозғалыс жағдайында.
Жарық сенсоры жарықтықтың төмендеуін белгілі бір шекті мәнге тіркейді - бұл «робот қара сызыққа жетті» деп атауға болатын жаңа оқиға.
Іс-шараны тіркеу нәтижесінде робот өз күйін әрекетсіздікке (тоқтатуға) өзгертеді.
Осылайша, робот әрдайым оқиғалардың күтілуін күту керек деп айтуға болады. Осы мақсатта NXT-G ортада арнайы бөлімшесі, бар күтіңіз (күту) :
Оқиғалардың көздері:
түрлі сенсорлар (сенсорлар): түстер, жарық, сенсор және т.б .;
таймер;
NXT-түймелерінің түймелері;
Bluetooth байланысына жіберілген басқа роботтардан алынған хабарлар.
Бұдан әрі біз ең жиі қолданылатын сенсорлармен жұмыс істеуді қарастырамыз
Түс сенсоры
Түс сенсоры (RGB сенсоры) үш функцияны біріктіреді:
Роботқа түстерді ажыратуға мүмкіндік береді.
Роботқа көрсетілген жарықтың жарықтығын өлшеу арқылы жарық деңгейін ажыратуға мүмкіндік береді.
Түс шамдары.
Түсті анықтау режимінде жұмыс істеу
Мысал 3.2. Түс сенсорынан оқиға күтілуде.
Робот көк түспен анықталғанға дейін сынақ жолында алға жылжиды.
Бұрын «Motor Programming: Move Command » деген тақырыпта біз Move блоктағы параметрлерде «Лимитсіз» параметрі келесі оқиғаға дейін ешқандай шектеусіз қозғалуға мүмкіндік беретінін атап өтті . Осыдан кейін сіз роботтың күйін өзгерте аласыз. Мемлекет өзгеруі автоматты түрде орындалмайды: оны бағдарламалау керек! Біздің мысалда, оқиға басталғаннан кейін (көк сенсормен тіркелу) B және C қозғалтқыштарының тоқтауы бағдарламаланған.
Назар аударыңыз:
Өріс дейін төмендегідей орыс [Антиллы] оқып аударылуы тиіс: «жоқ болады дейін ...»;
саласындағы дейін екі опцияларының бірін:
Inside Range - «тіркелген түстер белгілі бір түстің ауқымына түсуі» оқиғасы;
Outside Range - «тіркелген түстер көрсетілген түстің диапазонының сыртына түседі» деп күтілуде;
Түске дейінгі өріс екі сырғытпа арқылы орнатылады.
Тапсырма 3.1. Түс сенсорын тексеру:
Алдыңғы жағында орналасқан және төменгі жағына қарай орналасқан «бес минуттық» роботтың дизайнын түстің сенсорын еденнен (үстелден) шамамен 1,5 см биіктікте қосыңыз.
Бағдарлама өрісіне Wait Color Sensor блогын қосыңыз және оны түрлі түсті заттарға тексеріңіз:
NXT құрылғысын компьютерге USB қосылымы арқылы қосыңыз.
Wait блокты таңдаңыз және NXT контроллерінің жүктелуін таңдап, таңдалған түймешікті іске қосыңыз .
USB кабелін ажыратпастан, түрлі түстердегі элементтерді сенсорға шамамен 1 см қашықтықта ұстаңыз.
Нәтижені сенсор параметрлері панелінің кері байланыс өрісінде көріңіз (параметрлер тақтасының төменгі сол жақ бұрышы).
NXT View мәзірін пайдаланып бірдей сынақтарды орындаңыз . Сынақ нәтижелері сәйкес келеді ме?
3.2 тапсырма. Роботты қызыл (көгілдір, жасыл және т.б.) түс анықтағанға дейін сынақ жолына жылжыту үшін бағдарламаны жазу . Көрсетілген түс анықталғаннан кейін, робот түс түсіндіруі керек.
Тапсырма 3.3. Роботты тест жолағы арқылы жылжыту үшін бағдарламаны көк немесе жасыл түс анықталғанша жазыңыз. Сынақ жолының әр түрлі жағынан роботты іске қосу арқылы бағдарламаны тексеріңіз.
Жарықтандыруды өлшеу әдісі бойынша жұмыс
Біздің жинағымыздың түс сенсоры екі режимде жұмыс істей алады: түс сенсоры және жарықты өлшейтін жарық сенсоры. Wait Color Sensor параметрлерінде сенсорды жарық сенсор режиміне ауыстырыңыз. Мұны істеу үшінӘрекет өрісінде Light Sensor параметрін таңдаңыз . Wait блоктың пайда болуы өзгергеніне назар аударыңыз .
Жарық сенсорының «көріп» тұрғанын жақсы түсіну үшін, ол қара және ақ фотосурет үстінде қозғалып тұрғанын елестетіңіз. Өлшеу нәтижесі 0 (қара түс) - 100 (ақ түсті) аралығындағы жарықтылық болады, бірақ практикада экстремалды мәндерді түзету мүмкін емес.
Назар аударыңыз:
өріске дейін жарықтандыру деңгейі жүгірткі немесе сандық мәнді енгізу арқылы орнатылады;
күтілетін оқиғаның белгісі ашық немесе қараңғы «күн» (әдепкі таңба «>») басу арқылы ауыстырылады;
Өріс дейін делінген: «жарықтандыру болмайды .... дейін» Осылайша, фигура «жарық деңгейі> 50» оқиғасын күтуде, бұл жарық күшінің деңгейі 50 градусқа дейін күте тұру алдындағы әрекетті орындауды білдіреді ;
Өріс Функция , қызыл, жасыл немесе көк жарық (тегін қорап шамдарды ретінде түсті сенсор арқылы бередіLight ). Бетіндегі жарықтың қарқындылығын өлшеу оның жарықтығын бағалайды: қараңғыдан гөрі көбірек жарық жарық бетінде көрінеді. Жалпы алғанда, күндізгі жарықта жарық өлшеулер орын алса, артқы жарық өшірілуі мүмкін ( Light Box құсбелгіні алып тастаңыз ). Дегенмен, өндіруші қызыл жарықтандыруды жарығын өлшеу режимінде қолдануды ұсынады. Сондай-ақ, жарық сөнгенде, сіз қоршаған кеңістіктегі жалпы жарықтандыруды өлшеуге болады.
3.4 Тапсырма. Алдыңғы тапсырмадағыдай түрлі түстегі объектілердегі жарықтандырудың өлшеу режимінде түс сенсорының жұмысын тексеріңіз:
Сенсордың тексеру аймағында қара, көк, көк, сары, жасыл, қызыл және қара түстерге арналған жарық мәндерін жазыңыз.
Әртүрлі түстердің артқы жарық шамдары ретінде пайдаланыңыз. Сенсорлық көрсеткіштер қалай өзгереді?
Артқы жарықтандырғышты өшіріңіз және сенсорлық көрсеткіштерді артқы жарығымен бірге немесе онсыз салыстырыңыз.
Қоршаған объектілермен эксперимент жасаңыз.
Тапсырма 3.5. RGB сенсорын жарықтандырудың өлшеу режимінде пайдалану роботты қара түсті белгіні қара түске дейін жылжытуға арналған бағдарламаны жазыңыз. Бұл әрекетті орындау үшін, өріске дейін қажетті шекті қара түспен көрсетіңіз. Роботты тоқтатқаннан кейін тиісті ақпаратты көрсету керек (мысалы, «Қара түсті табылды!» ).
Ультрадыбысты трансивер
Ультрадыбыстық сенсор роботты көруді ауыстырады. Ол жарылғыш локатор ретінде жұмыс істейді: дыбыс толқыны үшін алынған уақытты объектінің көрінісінен кейін қайтару арқылы қашықтықты өлшейді. Оның параметрлері бойынша, сенсор +/- 3 см дәлдікпен 0-ден 255 см-ге дейін қашықтықты өлшеуге қабілетті, бірақ іс жүзінде ультрадыбысты датчиктің маңызды оқуларын беретін ең аз қашықтық 5-тен 7 см-ге дейін, сонымен қатар есте сақтау керек Түстермен, жарықпен, сенсормен және т.б. сенсормен салыстырғанда баяу датчик. Біріншіден, бұл жарық жылдамдығымен салыстырғанда дыбыстың төмен жылдамдығымен, ал екіншіден, осы сенсор үшін пайдаланылатын баяу деректер алмасу протоколы.
Роботтың ультрадыбыстық датчиктің дизайнын қосыңыз, ол бағытқа бағыттаңыз. Сенсор параметрлері суретте көрсетілген.
Назар аударыңыз:
далалық дейін арналған, сондай-ақ датчик түсті шығыс бөлігіндегі жағдайын анықтайды;
күтілетін оқиғадағы «<» -дан «>» белгісіне немесе керісінше « Гардандан алыстау» батырмасын басу арқылы (үлкенірек) таудың немесе Nearer Than (кем) гүлінің бейнесі (әдепкі бойынша орнатылады) арқылы ауысады . Сіз сондай-ақ тізімін пайдалана аласыз;
Көрсету өрісі қашықтыққа өлшеу бірлігін орнатады. Әдепкі қашықтық дюйм (өлшенеді дюйм ). Бұл параметрді сантиметрге ауыстыруды ұмытпаңыз;
3.6-міндет. Ультрадыбыспен түрлендіргішті әртүрлі қашықтыққа орналастыру және нәтижелерді бақылау арқылы тексеріңіз:
Көрініс мәзірін пайдалану ;
Wait блогының кері байланыс өрісінде .
3.7-міндет. Робот кедергінің бағыты бойынша жылжитын бағдарламаны жазып, одан 30 см қашықтықта тоқтаңыз.
Сенсорды түртіңіз
Сенсорлық сенсорды қосыңыз - «Бес минут» робот дизайнына арналған түйме. Ол бекітілмейді, бірақ ұзын кабельмен жалғанып, қашықтан басқару құралы ретінде пайдаланылады.
Wait сенсорлық блоктың параметрлерінде келесі опциялар Әрекет ретінде қол жетімді:
3.8 міндет. «Кім дәлірек» ойынын жазыңыз, оның мәні роботты нақты сызықта тоқтату. Бағдарламаны бастағаннан кейін робот қара жолға қарай қозғала бастайды. Роботтың дөңгелектері сызықты ұстағаннан кейін, ойнатқыш түймені басуы керек; ал робот тоқтап қалуы керек. Алдыңғы дөңгелектерден сызыққа дейін қашықтықта болған адам аз ғана жеңеді. Параметрлер блогы Жылжыту : шексіз қозғалыс, қуат 80%. Мәселені шешу үшін ең жақсы опцияны таңдаңыз.
3.9 міндет. «Кім дәлірек» ойын ережесі бойынша жарысты өткізу.
Циклдар
Бағдарламаларды жазған кезде командалардың топтарын циклдік түрде қайталау қажет. Ол үшін NXT-G циклініңблокына сәйкес келетін тілдік цикл құрылымын пайдаланыңыз .
Цикл ішінде бірнеше рет орындалатын блоктар орналасқан. Айналымдарға, мысалы, « Жылжыту» , « Дыбыс» және басқа да кейбір циклдарда циклдық блокта орналасу үшін сақтықпен (дәлірек айтқанда, түсіну керек) назар аударыңыз .
Бағдарламалау циклі біз алдын ала білуіміз керек, қай жағдайда ол жұмысын тоқтатады. Циклді аяқтау (циклден шығу) түрлі себептермен болуы мүмкін. NXT-G жүйесінде Басқару өрісінде келесі шығу әдісі бар :
Forever - forever (әдепкі бойынша);
Сенсор - сенсорға сәйкес;
Уақыт - белгілі бір уақыттан кейін;
Count - белгілі бір сағаттардың циклын орындағаннан кейін;
Логика - бағдарламашы көрсеткен логикалық жағдай орындалған болса.
NXT-G тілін үйрену барысында біз осы әдістердің барлығын біртіндеп үйренеміз. Шексіз циклнан бастасақ.
Циклдердің қарапайым түрлері
4.1 тапсырма. Роботты алдынғы түс сенсорымен дайындаңыз; сенсор төменде көрсетілгендей және үстелден 1 см қашықтықта болуы керек. Роботты қара жолдың (немесе қара жолдың) алдында шамамен 20 см қашықтықта орналастырыңыз.
4.2-міндет. Жолға жылжытыңыз. Жарықтандырудың өлшеу әдісінде түс сенсорын қолдану арқылы роботқа қара сызыққа жетуге және тоқтатуға мүмкіндік беретін бағдарлама жазыңыз (3.3 тапсырмасын қараңыз).
Тапсырма 4.3. Сызыққа және артқа жылжу. Қара сызыққа жеткеннен кейін, робот ақ өріске жететін етіп, тапсырманы 4.2 нұсқасынан өзгертіңіз.
Тапсырма 4.4. Сызыққа және артқа шексіз циклдық қозғалыс. Бағдарламаны 4.3 нұсқасынан өзгертіңіз де, робот желіге қозғалысты орындайды және шексіз сандарды қайтарады. Мұны істеу үшін алдыңғы бағдарламаны шексіз (мәңгілік ) циклға қосыңыз.
4.5 міндет. Циклдық қозғалыс сызыққа және артқа қарай. Роботтың қозғалысты желіге орап, үш рет артқа айналдыру үшін бағдарламаны 4.4 тапсырмасынан өзгертіңіз. Мұны орындау үшін цикл параметрлерін төмендегідей өзгертіңіз:
Роботтың желінің қозғалысы
Мысал 4.1. Роботтың классикалық міндетіне қарай сызық бойымен қозғалайық. Мұндай сызығы бар полигон әр жиынтығында қол жетімді.
Робот сызық бойымен қозғала алатынын, яғни сенсордың әрдайым қара далада болатынын көрейік. Ол үшін, біраз уақыт өткеннен кейін, сенсор қара өрістен «кетіп», ақ түсте тұрғанын елестетіп көрейік. Біз бұл жағдайда роботтың қара сызыққа оралу үшін сәл ғана бағыт беруі керек екенін түсінеміз. Бірақ қайда ұшуға болады: солға немесе оңға? Қара сызықтың екі жағындағы ақ түсті бірдей. Сондықтан, мұндай жағдайда бір рет робот дұрыс шешім қабылдай алмайды.
Осы жағдайдан шығу міндеттерді шешудегі кішкене өзгеріс болады: робот желіде емес, қара және ақ шекарада қозғалуы керек.
Не өзгереді? Робот пен адам сызық шекарасын басқаша қабылдайды.
Түс сенсорының қозғалысы кезінде солға немесе оңға қарай қара және ақ түстердің өткір шекарасын байқамайды.Бұл, мысалы, солдан оңға қарай жылжытылғанда, сенсорға енетін жарық саны бірте-бірте артады. Бұл датчиктің көрсеткіштері біртіндеп артады.
Біз сенсордың ортаңғы ұстанымымен ыңғайлы, яғни ол тікелей шекарадан жоғары орналасқан кезде. Бұл жағдайда сенсор қара емес, ақ түспейді, бірақ кейбір «орташа» сұр. Сұр түске арналған сенсорды анықтау үшін ақ пен қара арифметикалық ортаны табу керек.
Робот қозғалады, сол жаққа (қара аймаққа) жылжу сенсорлық көрсеткіштердің азаюына әкеледі және оңға қарай (ақ аймаққа) қарай өседі. Осылайша біз сол жақтан оң жақтан ажырата аламыз.
Жолдың бойымен қозғалысқа арналған келесі бағдарлама туралы білеміз:
Төмендегілерге назар аударыңыз: роботты бастамас бұрын далаға орналастырылады да, түс сенсоры сызық шекарасында «көрінеді»: сол жағында қара, оң жағында ақ бар. Тапсырма 4.6. Ұсынылған шешім мен бағдарламаның арасындағы айырмашылықты 4.4 тапсырмасынан табыңыз. Тапсырма 4.7. Роботты бағдарламаның кодын өзгерту арқылы қара сызық бойынша жылжуды бағдарламалау 4.4 және оның жұмысын тексеріңіз. 4.8 міндет. Роботты бір сызықта іске қосу қажет, бірақ керісінше. Бағдарламаны өзгертпестен қалай істеу керек?
Есептегішпен айналдыру. Блоктар арасындағы деректерді беру
Келесі мысалды талдайық.
Мысал 4.2. Робот қозғалысын жылдамдатумен жазу.
Алдымен біз роботты тұрақты жылдамдықпен жылжытуға арналған бағдарламаны жазамыз:
20 рет қайталаңыз:
Алға
Жылжыту бұғаттау параметрлерін жағалауды белгілеңіз (блокты орындау соңында тежеу жоқ). Ұзақтығыөрісінде 1 Ротация мәнін қалдырыңыз .
Жұмыс бағдарламасын тексеріңіз. Робот тұрақты жылдамдықпен қозғалады.
Жеделдету жасау үшін циклден қозғалыс блогына деректерді беруді пайдаланамыз. Әлбетте, біздің жағдайда бұл жеделдету робот жылдамдығын біртіндеп ұлғайтады, яғни мотор қуатын арттыру.
Бағдарламаны өзгертіңіз.
блок орнату жылы Loop құсбелгісін көрсету Counter (Counter Дисплей) . Циклдің сыртқы түрі қалай өзгергеніне назар аударыңыз: Loop Count қосқышы пайда болды .
Блоктың төменгі сол жағындағы түймені басу арқылы Жылжыту блокты деректер хабын ашыңыз :
Нәтижесінде, басқа бірліктердің қосқыштарынан деректер шиналарын жалғауға болатын кіріс (сол жақта орналасқан) және шығыс (оң жақта орналасқан) қосқыштары ашылады . Осылайша, бағдарлама ішіндегі деректерді NXT-G-ге айнымалы мәндерді нақты пайдаланбай тасымалдауға болады.
автобус қосқышы және қарсы коннекторы цикл қосыңыз Power (қуат) Block Move (тиісті қосқышына тінтуір меңзерінің TT пайда). Байланысты жасау үшін, басында сол жақ батырманы басыңыз, тінтуірді жолдың соңына сүйреңіз және қайтадан басыңыз; Қажетті бүктемелердің орындарында жол бойында қосымша шерулер жасай аласыз. Астында ұзақтығы көрсетіңіз Шектеусіз (жоқ ұзындығы шектеулер). Блоктың ашылмалы панелін басу арқылы деректер хабын азайтыңыз, егер оны азайту керек болса. Шиналар үшін жарамсыз барлық қосқыштар жоғалады. Бұл трюк бағдарламаның аумағын айтарлықтай азайта алады.
Нәтижесінде бағдарлама келесідей болады:
Оның жұмысын тексеріңіз.
Жеделдікті визуалды ету үшін, циклге қысқа кідіріс қосыңыз:
Мысал 4.3. NXT модулі экранында ақпарат шығуы.
Келіңіздер, шын мәнінде циклден « Жылжыту» блогының енгізілуіне келетінін тексерейік . Мұны орындау үшін, NXT блогының экранында цикл есептегішінің мәні көрсетілетін оңайлатылған бағдарламаны жасаймыз.Ендеше, Жалпы панельдегі Display блокты шығару үшін пайдаланылады .
Біз сандық ақпаратты көрсетудеміз, сондықтан оны алдымен мәтін түріне түрлендіру керек. Бұл Қосымша тақтасының Нөмірге мәтіндік блогын пайдалану арқылы жасалады .
Біз келесі бағдарлама диаграммасын аламыз:
ілмектер блогының параметрлерінде, санауыш мәнін 10 мәніне орнатыңыз;
цикл есептегішінің мәні «Сандар → Мәтін» түрлендіргішіне ауыстырылады ;
қабылданған мәтін Дисплей блогының кірісіне жіберіледі ;
Экрандағы мәнді қарауға уақыт бөлу үшін кешігуді жасаңыз;
Циклнан кейін соңғы көрсетілетін мәнді көру үшін Бастау түймешігін баспай тұрып кешігуді орнатыңыз .
Әртүрлі шиналар әртүрлі боялғандығын ескеріңіз. Жалпы, NXT-G деректерінің үш түрін қолданады, олардың әрқайсысының өз бояуы бар:
сандық деректер түрі - сары түсті;
мәтіндік деректер түрі қызыл;
логикалық деректер түрі жасыл болады.
Суретте соңғы блоктың параметрлері көрсетілген:
Датчиктің мәні бойынша шығыспен айналдыру
NXT-G - бұл датчиктің нақты мәніне сәйкес шығатын циклдің қолданылуы. Осындай циклді орнату Wait блокты орнатуға мүлдем ұқсайды , тек айырмашылық цикл параметрлері бар Counter контроллері құсбелгісі болып табылады . Сенсордың мәніне сәйкес шығыспен бос цикл тиісті Wait блокына ұқсас . Бірақ циклдің денесінде сенсорды бастамас бұрын бірнеше рет қайталанатын блоктарды орналастыруға болады.
Мысал 4.4. Суреттегі алдыңғы бағдарламаны қарапайым секундомерге айналдырыңыз. Бұл әрекетті орындау үшін уақытты төмендетуге тура келеді, бірақ түймені басқаннан кейін тоқтау керек. Суреттегі шешімді қараңыз .
Тапсырма 4.9. Робот ультрадыбыстық сенсорды пайдаланып, қабырғаға жетіп, одан 30 см қашықтықта тоқтаған бағдарламаны жазу. Көлік жүргізу кезінде қабырғаға ағымдағы қашықтықты көрсету керек.
Шартты шығыспен айналдыру
Кейде циклды қолдану ыңғайлы, оның нәтижесі белгілі бір логикалық жағдай орындалғанда пайда болады. Бұл Pascal бағдарламалау тілінде While және Repeat-Until циклдарының аналогы . Циклды орнату әдеттегідей орындалады:
Мұнда №1 қосқышы ( Loop Condition ) пайда болады, егер №2 ( Басқару ) өрісінде Логика таңдалса . Бұл тұйық портты логикалық мәнмен (жасыл) сымға қосу керек.
Өріс № 3 ( дейін ) циклдің шығу жағдайын анықтауға мүмкіндік береді: егер қосқышқа қолданылатын шарт шын болса ( True ) немесе ол жалған болса ( False ). 4.5-мысал. Бір секундқа таймерді қолдану арқылы n секундта күтуді модельдеу. Бұл өте маңызды мысал қарастырылған түрдің циклімен танысу үшін ғана берілген.
Мұнда шарт бойынша шығу үшін конфигурацияланған циклде келесі әрекеттер орындалады:
бір секунд тиісті блоктың көмегімен есептеледі;
портынан алдағы цикл Итерация саны, Counter , салыстыру бірлігіне берілетін салыстыру мәзірін, Data (Data) толық палитрасын ;
мұнда n саны бойынша салыстырылады және осы салыстырудың нәтижесі жасыл сым арқылы екінші циклдік коннекторға беріледі;
егер салыстыру блогында көрсетілген шарт орындалған болса, цикл тоқтайды және динамиктен дауысты естисіз.
Салыстыру блогында келесі логикалық әрекеттер бар:
Аз «- аз»;
Үлкенірек - «артық»;
Тең тең - тең.
Салыстыру блогының өрістеріндегі деректер сыртқы коннекторлар арқылы да, сәйкес өрістерге де кіре алады.Осылайша, 4.5-мысалда, А өрісіндегі деректер циклдік контактінің қосқышынан келеді (бұл жағдайда өрістегі кіріс жоқ) және B өрісінде пайдаланушы енгізеді.
4.10 міндет. 4.5-мысалдан бағдарлама кодын тексеріңіз. Бағдарламаны жасаңыз және оның жұмысын n әр түрлі мәндеріне тексеріңіз .
4.11 міндет. Бағдарламаны жазу, ол іске қосылғаннан кейін қызғылт түсті NXT батырмасын басуды күтеді, содан кейін бір нәрсе айтады және аяқталады. Қызғылт сары түймені басып шығару үшін NXT батырмаларыныңбағдарлама блогын Sensors мәзірінен және шартты шығыспен циклды пайдаланыңыз. Осы тапсырманы орындаған кезде « Күте тұру» блогын қолдануға тыйым салынады! Сенсорлар тобындағы сары блоктар ағымдағы сенсорлық көрсеткіштерді білуге мүмкіндік береді.
Тапсырма 4.12. Дұрыс алдыңғы бағдарлама аяқталғаннан кейін орын алған, сондықтан N - қызғылт батырмасын басу ші. Кеңес: кірістірілген ілмектерді пайдаланыңыз.
Қосалқы бағдарламалар: Менің блогым
NXT-G тілі бағдарламашыға жылжыту блок секілді өз блоктарын жасауға мүмкіндік береді . Бұл жағдайда, көрінетін бағдарлама коды айтарлықтай азаяды, бұл NXT-G жағдайда өте маңызды, себебі кодының кішкене бөлігі ғана экранға түседі және жиі айналдыруға баруға тура келеді.
Меншікті блоктарды бағдарламада бірнеше рет қолдануға болады, сондай-ақ олардың қатысуымен жаңа блоктарды құруға болады.
Бұл бөлімде блоктың қарапайым нұсқасын қарастырамыз: кіріс және шығыс параметрлері жоқ. Болашақта біз күрделі істерді қарастырамыз.
6.1-міндет. Роботтың өзі 90 градусқа айналуы үшін ноутбукке роботтың дөңгелектерін бұру үшін қанша градус қажет екенін жазыңыз.
6.2 міндет. Роботтың қозғалысын келесі схема бойынша алаңға жазыңыз:
6.3 міндет. Робот келесі траектория бойынша қозғалатын «сегіз» бағдарламаны жазу : [4] :
Қозғалыстың басталуы фигураның ортасында орналасқан; сандар тараптардың өту тәртібін көрсетеді.Бағдарламаның схемасы:
2 рет қайталаңыз
Алаңы
N ° бұру. Кеңес: N ° пропорцияны табады; 6.1 тапсырмасын қараңыз.
Мысал 6.1. Сол бағдарламаны кіші ( My block ) арқылы жазыңыз . Осыған:
квадратта роботтың қозғалысын тінтуірмен таңдаңыз;
Мәзір элементін таңдаңыз Edit \ Create My New My Block (Өңдеу \ Create new block);
My Block Builder терезесінде Блокты атау өрісінде Блокты квадраттың атауын (тек ағылшын тіліндегі әріптермен) және Блоктың Сипаттамасы өрісіндегі блоктың сипаттамасын (мысалы, орыс тілінде) енгізіңіз, мысалы, «Square move movement»;
Келесі түймешігін басыңыз ;
Бұл қадамда, дайын икондарды терезенің жоғарғы бөлігіне апару арқылы блоктың белгішесін жасау керек;бірнеше белгішелерді пайдалануға болады;
Finish (Аяқтау) түймешігін басыңыз ;
Нәтижесінде бағдарлама парағындағы циклдың орнына, сіз Square деп аталатын блокты көресіз . Егер сіз оны екі рет бассаңыз, келесі қойындыда (жаңа бетте) блоктың мазмұны ашылып, қажет болса редакциялануы мүмкін. Блоктарыңызды таңдамалы палитра палитрасынан (Менің палитрасы) таңдай аласыз ;
Осы қадамдардың ішінде кіші бағдарлама құру 1, 2, 6-қадамдар міндетті түрде орындалады. Алайда, біз сізге бүкіл тізбекті орындауды және кіші бағдарламаның сипаттамасына ерекше назар аударуды ұсынамыз. Біраз уақыттан кейін ол бұл кіші бағдарламаның параметрлерін анықтау үшін не істейтінін еске түсіреді. Бұған қоса, блоктың сипаттамасын енгізу жақсы үн ережесі болып табылады. Біздің іс-әрекетімізде бұл әрекетті қажет деп санаймыз.
Содан кейін 8-дегі қозғалыс бағдарламасы, мысалы,
немесе солай
6.4-міндет. Екі бағдарлама параметрінің жұмысын салыстыру.
Блок конструкторына кіруді құралдар тақтасы арқылы да алуға болады ( 6.3 сурет ):
6.5-міндет. Роботтың оң жақ үшбұрышында қозғалыс бағдарламасын жазыңыз. Кеңес: айналу бұрышын есептеу үшін пропорцияны пайдаланыңыз.
6.6-міндет. (From [4] ). 6.5 тапсырмасынан бағдарламаны қолданатын роботтың қозғалысы үшін бағдарлама жазыңыз, оның қозғалысы кезінде мозаиканы «тартады» ( 6.4 сур. ). Роботтың қозғалысын көбірек көрнекі етіп жасау үшін, роботтағы маркерді ұшымен төменге қойып, қағазды үстелге қойыңыз.