Бұрылыстар. 2-сабақ
Алдыңғы сабақта сен гироскоптық датчикті сызықтық
алгоритмдерде қалай қолданатынын үйрендің. Алайда тапсырма күрделі
болатын болса, тармақталу және циклдік алгоритмдерді қолдану
қажет.
Тармақталу алгоритмдерін бағдарламалау үшін
«Ауыстырып қосқыш» (Переключатель) блогы қолданылады. Ондағы
«Салыстыру» (Compare) режимін қолданып, ақиқат немесе жалған нәтиже
кезінде орындалатын әрекеттерді программалауға
болады.
1-сурет
Роботты тұрған орнында бұру және гироскоптық
датчиктен алынған мәнді 90 санымен салыстыратын мысалды
қарастырайық. Егер аталған шарттар орындалса, робот «Hello» деп
айтады. Орындалмаса, «Goodbye» деп айтады және моторлардың жұмысы
тоқтайды. Есіңде сақта! Программалық кодта цикл қолданылмайды,
сондықтан бұл жағдайда моторларды тоқтатудың қажеті жоқ. Шарттың
ауыстырып қосқыш блогына жазылып, содан кейін «√» және «х»
белгілеріне сай бөлімдерге тармақталатынына назар
аудар.
2-сурет
Циклдік алгоритмдерді программалауда жиі
кездесетін айнымалыларды қолдануды қарастырайық. Айнымалылар қызыл
түспен ерекшеленген, үлкен деректер жиынтығын қамтитын бөлімде
орналасқан. Бірақ біз тек айнымалыны құруды және арифметикалық
амалдарды қолдануды қарастыратын боламыз. Алгоритм түсінікті болуы
үшін нәтижені мониторға шығарайық.
1-мысал
3-сурет
Айнымалыға мәнді меншіктеу кезінде «Жазу»
(Read) режимін,айнымалыдан мәліметтерді алу үшін «Оқу»
(Write) режимін қолдану керек. Бұл режимдерді пайдалана
отырып, мәтінді, санды, логикалық мәнді (ақиқат/жалған) жазуға
немесе санауға болады.
4-сурет
Біздің мысалда
робот 180 o-қа
бұрылады, содан кейін гироскоптық датчиктен алынған деректер z
айнымалысына жазылады. Сонымен қатар осы
мәнді 90o-пен салыстыру керек. Алынған мән ұсынылған
мәннен үлкен болғандықтан, мәндерді азайтады. Айнымалының мәнін
экранға шығару үшін «Оқу» режимін таңдау керек.
Алдыңғы сабақтарда роботтарды программалауда
циклді қолдану жолдары қарастырылған болатын, енді оған гироскоптық
датчикті қолдана отырып программалау жолын қарастырайық. Циклдің
орындалу шарттарын көрсеткен кезде тізімнен тиісті датчикті таңдап,
режим мен мәндерді көрсетуге болады.
5-сурет
2-мысал
6-сурет
Робот алға қарай
қозғалады, 90o-қа
оңға бұрылады, гироскоптық датчиктің мәні экранға шығады және осы
әрекет 5 рет орындалады.
Назар аудар! Датчиктің мәндерін бастапқы қалыпқа
келтіріп, нәтижені кідірту уақытын экранға шығару
қажет.
7-сурет
3-мысал
8-сурет
Алдыңғы мысалдарда бұрылу бұрышы алдын ала
белгілі болды және программалық кодты орындау кезінде өзгермеді. Ал
бұл мысалда бұрылу бұрышының мәні 0.25-ке артады.
Бұл 45o-қа
сәйкес келеді. Сондай-ақ «Математика» блогында қосудан басқа да
арифметикалық амалдарды қолдануға болады.
9-сурет
4-мысал
10-сурет
Гироскоптық датчиктің
мәні 150o-тан аз болып тұрған кезде де циклдің орындала
беретініне назар аудар. Циклдің қайталану санын анықтау үшін «y»
айнымалысын қолданады, ал «x» айнымалысы арқылы бұрылу бұрышының
мәні артатын болады.
Артқа
Алға