Ev, dizayn, təmir, dekorasiya.  Həyət və bağ.  Öz əlinizlə

Ev, dizayn, təmir, dekorasiya. Həyət və bağ. Öz əlinizlə

» Qara xətt proqramı ev3. Qabaqcıl xətt izləmə alqoritmi

Qara xətt proqramı ev3. Qabaqcıl xətt izləmə alqoritmi

Əsərin mətni şəkillər və düsturlar olmadan yerləşdirilmişdir.
Əsərin tam versiyası PDF formatında "İş sənədləri" sekmesinde mövcuddur

Lego Mindstorms EV3 tikinti dəsti

Hazırlıq mərhələsi

Bir proqramın yaradılması və kalibrlənməsi

Nəticə

Ədəbiyyat

1. Giriş.

Robotika, mexanika və yeni texnologiyaların problemlərinin süni intellekt problemləri ilə təmasda olduğu elmi və texnoloji tərəqqinin ən vacib sahələrindən biridir.

Son illərdə robot texnikasındakı inkişaflar və avtomatlaşdırılmış sistemlər həyatımızın şəxsi və iş sahələrini dəyişdirdi. Robotlar nəqliyyatda, Yerdə və kosmik tədqiqatlarda, cərrahiyyədə, hərbi sənayedə, laboratoriya araşdırmalarında, təhlükəsizlik sahəsində, sənaye məhsullarının və istehlak məhsullarının kütləvi istehsalında geniş istifadə olunur. Sensorlardan alınan məlumatlara əsasən qərar verən bir çox cihaz robotlar da hesab edilə bilər - məsələn, həyatımız onsuz da ağlasığmaz olan liftlər.

Mindstorms EV3 Constructor, bizi füsunkar robotlar dünyasına girməyə, informasiya texnologiyaları kompleksinə girməyə dəvət edir.

Məqsəd: Robotun hərəkətini düz bir xəttdə proqramlaşdırmağı öyrənin.

    Mindstorms EV3 qurucusu və onun proqramlaşdırma mühiti ilə tanış olun.

    Robotun düz bir şəkildə 30 sm, 1 m 30 sm və 2 m 17 sm-də hərəkəti üçün proqramlar yazın.

    Mindstorms EV3 Constructor.

İnşaat dəsti hissələri - 601 ədəd, Servo mühərrik - 3 ədəd, Rəng sensoru, toxunma hərəkət sensoru, infraqırmızı sensor və toxunma sensoru. EV3 mikroprosessor bloku LEGO Mindstorms qurucusunun beynidir.

EV3 mikrokompüterinə qoşulan və robotu hərəkətə gətirən robotun hərəkətindən böyük bir servo motor cavabdehdir: irəli və arxaya dönün, verilmiş trayektoriya ilə dönün və sürün. Bu servo motor, robotun hərəkətini və sürətini çox dəqiq idarə etməyə imkan verən daxili fırlanma sensoruna malikdir.

Robotu istifadə edərək bir hərəkət yerinə yetirməyə məcbur edə bilərsiniz kompüter proqramı EV3. Proqram müxtəlif idarəetmə vahidlərindən ibarətdir. Bir hərəkət bloku ilə işləyəcəyik.

Hərəkət bloku robotun motorlarını idarə edir, açır, söndürür, təyin olunmuş tapşırıqlara uyğun işlədir. Hərəkəti müəyyən bir inqilab və ya dərəcə üçün proqramlaşdıra bilərsiniz.

    Hazırlıq mərhələsi.

    Texniki sahənin yaradılması.

Robotun iş sahəsində, elektrik lentindən və bir cetveldən istifadə edərək bir işarə çəkəcəyik, 30 sm uzunluğunda üç xətt - yaşıl bir xətt, 1 m 15 sm - qırmızı bir xətt və 2 m 17 sm - qara xətt.

    Lazımi hesablamalar:

Robot təkərin diametri 5 sm 7 mm = 5.7 sm-dir.

Robot təkərin bir inqilabı 5.7 sm diametrli ətrafa bərabərdir və ətraf düsturla tapılır

Harada r təkərin radiusudur, d diametrdir, π = 3.14

l = 5,7 * 3,14 = 17,898 = 17,9.

O. bir təkər inqilabında robot 17.9 sm məsafəni qət edir.

Sürmək üçün lazım olan inqilab sayını hesablayaq:

N = 30: 17.9 = 1.68.

    1 m 30 sm = 130 sm

N = 130: 17.9 = 7.26.

    2 m 17 sm = 217 sm.

N = 217: 17.9 = 12.12.

    Proqramın yaradılması və kalibrlənməsi.

Proqramı aşağıdakı alqoritmə uyğun olaraq yaradacağıq:

Alqoritm:

    Mindstorms EV3 proqramında hərəkət blokunu seçin.

    Müəyyən edilmiş istiqamətdə hər iki mühərriki işə salın.

    Mühərriklərdən birinin fırlanma sensorunun göstərilən dəyərə qədər dəyişməsini gözləyin.

    Mühərrikləri söndürün.

Bitmiş proqramı robotun idarəetmə hissəsinə yükləyirik. Robotu sahəyə qoyduq və start düyməsini basdıq. EV3 sahə boyunca hərəkət edir və müəyyən edilmiş xəttin sonunda dayanır. Ancaq dəqiq bir finişə nail olmaq üçün xarici amillər hərəkətə təsir göstərdiyindən kalibrləmə lazımdır.

    Sahə tələbə masalarına quraşdırılmışdır, buna görə səthin bir az əyilməsi mümkündür.

    Sahənin səthi hamar, buna görə də robotun təkərlərinin sahəyə zəif yapışması mümkündür.

    İnqilab sayını hesablayarkən rəqəmləri yuvarlaqlaşdırmalı idik və bu səbəbdən də inqilabların yüzdə birini dəyişdirərək lazımi nəticəni əldə etdik.

5. Nəticə.

Robotun düz bir xətt üzrə hərəkət etməsini necə proqramlaşdırmağı öyrənmək, daha mürəkkəb proqramlar yaratmaq üçün əlverişli olacaqdır. Bir qayda olaraq, bütün hərəkət ölçüləri robot yarışmaları üçün texniki tapşırıqda göstərilir. Proqramın məntiqi şərtlər, dövrlər və digər mürəkkəb idarəetmə blokları ilə həddindən artıq yüklənməməsi üçün lazımdır.

Lego Mindstorms EV3 robotu ilə tanışlığın növbəti mərhələsində müəyyən bir bucaqda dönüşləri, dairədə hərəkət etməyi, spiralləri necə proqramlaşdırmağı öyrənməlisiniz.

İnşaatçı ilə işləmək çox maraqlıdır. Qabiliyyətləri haqqında daha çox məlumat əldə edərək, istənilən texniki problemi həll edə bilərsiniz. Və gələcəkdə bəlkə də özünüzü yaradın maraqlı modellər robot Lego Mindstorms EV3.

Ədəbiyyat.

    D. Koposov "5-6 siniflər üçün robotikaya ilk addım". - M.: Binom. Bilik Laboratoriyası, 2012 - 286 s.

    Filippov S. A. "Uşaqlar və valideynlər üçün robot" - "Elm" 2010.

    İnternet mənbələri

    http: // lego. rkc-74.ru/

    http://www.9151394.ru/projects/lego/lego6/beliovskaya/

    http: // www. lego. com / təhsil /

Yüngül konstruksiyadakı əsas hərəkətlərdən biri də qara xətti izləməkdir.

Proqram yaratmağın ümumi nəzəriyyəsi və konkret nümunələri wroboto.ru veb saytında təsvir edilmişdir

Fərqlər olduğu üçün bunu EV3 mühitində necə tətbiq etdiyimizi izah edəcəyəm.

Robotun bilməsi lazım olan ilk şey, ağ-qara hüdudda yerləşən “ideal nöqtə” nin dəyəridir.

Şəkildəki qırmızı nöqtənin yeri bu mövqeyə tam uyğundur.

İdeal hesablama seçimi ağ-qara dəyərini ölçmək və aritmetik ortalamanı götürməkdir.

Bu əl ilə edilə bilər. Ancaq çatışmazlıqlar dərhal görünür: qısa bir müddət içərisində işıqlandırma dəyişə bilər və hesablanmış dəyər səhv olacaq.

Beləliklə, robotu bunu edə bilərsiniz.

Təcrübələr zamanı həm qara, həm də ağ ölçmək lazım olmadığını öyrəndik. Yalnız ağ ölçmək olar. Və ideal nöqtə dəyəri, qara xəttin eninə və robotun sürətinə görə 1.2 (1.15) bölünən ağ dəyər kimi hesablanır.

Hesablanmış dəyər, daha sonra əldə etmək üçün dəyişənə yazılmalıdır.

İdeal nöqtə hesablanması

Hərəkətdə iştirak edən növbəti parametr sükan nisbətidir. Nə qədər böyükdürsə, robot işıqlandırma dəyişikliklərinə daha kəskin reaksiya göstərir. Ancaq çox yüksək bir dəyər robotun sarsılmasına səbəb olacaq. Dəyər hər bir robot dizaynı üçün eksperimental olaraq fərdi olaraq seçilir.

Son parametr mühərriklərin əsas gücüdür. Robotun hərəkət sürətinə təsir göstərir. Hərəkət sürətindəki artım, robotun işıqlandırma dəyişikliklərinə cavab müddətinin artmasına səbəb olur ki, bu da trayektoriyadan uzaqlaşmağa səbəb ola bilər. Dəyər də eksperimental olaraq seçilir.

Rahatlıq üçün bu parametrlər dəyişənlərə də yazıla bilər.

Sükan nisbəti və əsas güc

Qara xətt boyunca hərəkət məntiqi belədir: ideal nöqtədən sapma ölçülür. Nə qədər böyükdürsə, robot ona qayıtmağa daha çox çalışmalıdır.

Bunu etmək üçün iki rəqəmi hesablayırıq - B və C mühərriklərinin hər birinin güc dəyərini ayrı-ayrılıqda.

Düsturlar şəklində belə görünür:

Isens, işıq sensoru oxularının dəyəridir.

Nəhayət, EV3-də tətbiq. Ayrı bir blok kimi təşkil etmək ən əlverişlidir.

Alqoritmin tətbiqi

Bu çox alqoritm WRO 2015 orta kateqoriyası üçün robotda tətbiq edildi

Bu vəzifə klassik, konseptual olaraq sadədir, dəfələrlə həll edilə bilər və hər dəfə özünüz üçün yeni bir şey kəşf edəcəksiniz.

Aşağıdakı problemi həll etmək üçün bir çox yanaşma var. Onlardan birinin seçimi robotun konkret dizaynından, sensorların sayından, təkərlərə və bir-birlərinə nisbətən yerlərindən asılıdır.

Nümunəmizdə, əsas təhsil modeli Robot Təhsili əsasında üç robot nümunəsini təhlil edəcəyik.

Əvvəlcə Robot Təhsili robotunun əsas modelini yığırıq, bunun üçün təlimatları istifadə edə bilərsiniz proqram təminatı MINDSTORMS EV3.

Həm də nümunələr üçün EV3 açıq rəngli sensorlara ehtiyacımız var. Bu işıq sensorları, başqaları kimi, bizim işimiz üçün ən uyğun olanıdır, onlarla işləyərkən ətraf işığının intensivliyindən narahat olmaq lazım deyil. Bu sensor üçün, proqramlarda sensorun qırmızı arxa işığının əks olunan işığının təxmin edildiyi əks olunan işıq rejimindən istifadə edəcəyik. Sensor oxularının sərhədləri, müvafiq olaraq "əks olunmaması" və "tam əks olunması" üçün 0 - 100 ədəddir.

Məsələn, düz, açıq fonda təsvir edilmiş qara trayektoriya boyunca hərəkət etmək üçün 3 proqram nümunəsini təhlil edəcəyik:

· P tənzimləyicisi olan bir sensör.

· PC nəzarətçi ilə bir sensor.

· İki sensor.

Nümunə 1. P sensoru olan bir sensör.

Dizayn

İşıq sensoru, modeldə əlverişli bir şüa üzərində quraşdırılmışdır.


Alqoritm

Alqoritmin işləməsi, sensorun arxa işıq şüasının qara xəttlə üst-üstə düşmə dərəcəsindən asılı olaraq, sensorun qaytardığı göstəricilərin bir gradyanla dəyişməsinə əsaslanır. Robot işıq sensorunun mövqeyini sərhəddə saxlayır qara xətt... Giriş məlumatlarını işıq sensorundan çevirərək, idarəetmə sistemi robotun fırlanma sürəti üçün bir dəyər yaradır.


Həqiqi bir trayektoriyada sensör bütün iş aralığında dəyərlər yaratdığından (0-100), robotun çalışdığı dəyər 50-dir. Bu vəziyyətdə fırlanma funksiyalarına ötürülən dəyərlər əmələ gəlir. -50-50 aralığındadır, lakin bu dəyərlər dik trayektoriyanı çevirmək üçün kifayət deyil. Buna görə, sıra bir yarım dəfə -75 - 75-ə qədər genişləndirilməlidir.

Nəticədə, proqramda kalkulyator funksiyası sadə bir nisbi nəzarətçi olur. Kimin funksiyası ( (a-50) * 1.5 ) işıq sensorunun iş aralığında qrafikə uyğun olaraq fırlanma dəyərləri yaranır:

Alqoritmin necə işlədiyinə bir nümunə

Nümunə 2. Bir kompüter nəzarətçisi olan bir sensör.

Bu nümunə eyni konstruksiyaya əsaslanır.

Əvvəlki nümunədə robotun həddindən artıq yelləndiyini və bunun kifayət qədər sürətlənməsinə imkan vermədiyini fərq etdiniz. İndi bu vəziyyəti bir az yaxşılaşdırmağa çalışacağıq.

Orantılı nəzarətçimizə, nəzarətçi funksiyalarına esneklik əlavə edəcək sadə bir kub nəzarətçi də əlavə edirik. Bu, robotun traektoriyanın istədiyi sərhəd yaxınlığında sarsılmasını azaldacaq, həm də ondan çox məsafədə daha güclü sarsıntılar edəcəkdir.

15.01.2012, 18:51

İndiyə qədər bir xətt boyunca hərəkət edərkən istifadə olunan alqoritmlər haqqında məqalələrdə, işıq sensoru sol və ya sağ sərhədini izlədiyi görünəndə belə bir metod nəzərə alınırdı: robot sahənin ağ hissəsinə hərəkət edən kimi nəzarətçi robot sərhədə, qara xəttlərə daha dərin hərəkət etməyə başlayır - tənzimləyici onu düzəldib.
Yuxarıdakı şəkil bir röle nəzarətçisi üçün olmasına baxmayaraq, mütənasib (P-nəzarətçi) hərəkətin ümumi prinsipi eyni olacaqdır. Artıq qeyd edildiyi kimi, bu cür hərəkətin orta sürəti o qədər də yüksək deyil və alqoritmin cüzi bir komplikasiyasına görə onu artırmaq üçün bir neçə cəhd göstərildi: bir halda növbələrə əlavə olaraq "yumşaq" əyləc istifadə edildi, digərində , irəli hərəkət təqdim edildi.
Robotun bəzi ərazilərdə irəliləməsinə imkan vermək üçün işıq sensoru tərəfindən verilən dəyərlər aralığında şərti olaraq "sensor xəttin sərhədində" adlandırıla bilən dar bir sahə ayrıldı.
Bu yanaşmanın kiçik bir çatışmazlığı var - əgər robot xəttin sol sərhədini “izləyirsə”, o zaman sağ tərəfdə trayektoriyanın əyriliyini dərhal aşkar etmir və nəticədə xətt axtarmağa və dönməyə daha çox vaxt sərf edir . Üstəlik, əminliklə demək olar ki, növbə nə qədər dik olsa, bu axtarış o qədər uzanır.
Aşağıdakı rəqəm sensorun sərhədin sol tərəfində deyil, sağda olsaydı, traektoriyanın əyriliyini artıq aşkar etmiş və dönüş manevrlərinə başlamış olduğunu göstərir.

Buna görə də, robotu xəttin əks tərəflərində yerləşən və müvafiq olaraq hərəkət istiqamətindəki dəyişikliklərə daha sürətli cavab verməyə kömək edəcək iki sensorla bir anda təchiz etmək yaxşıdır.
Növbəti addım bu dizayn dəyişikliyinin proqramı necə təsir edəcəyini müəyyənləşdirməkdir. Sadəlik üçün yenidən ən sadə röle nəzarətçisindən başlamalıyıq və buna görə də ilk növbədə sensorların xəttə nisbətən mümkün mövqeləri ilə maraqlanırıq:

Əslində, daha bir icazə verilən vəziyyəti ayırmaq olar - çətin marşrutlarda bu kəsişmənin kəsişməsi və ya yolda bir növ qalınlaşma olacaqdır.
Sensorların digər mövqeləri nəzərə alınmayacaq, çünki bunlar ya yuxarıda göstərilənlərdən alınır, ya da bunlar robotun xəttdən çıxarkən mövqeləridir və artıq sensorlardan gələn məlumatları istifadə edərək özünə geri dönə bilməyəcəkdir. Nəticədə, yuxarıdakı bütün müddəalar aşağıdakı təsnifata endirilə bilər:
  • sol sensör, eləcə də sağ - işıq səthinin üstündə
  • işıq səthinin yuxarı hissəsində sol sensor, qaranlığın üstündə sağ sensor
  • qaranlıq səthin üstündə sol sensor, işığın üstündə sağ sensor
  • hər iki sensor da qaranlıq bir səthin üstündədir
Müəyyən bir anda robotdakı proqram bu mövqelərdən birini aşkar edərsə, buna uyğun reaksiya verməli olacaq:
    Hər iki sensor da ağ səthin üstündədirsə, bu, xəttin sensorlar arasında olduğu normal bir vəziyyətdir, buna görə robot düz getməlidir, sol sensor hələ işıq səthinin üstündədirsə və sağ sensör onsuz da qaranlıq bir səth, o zaman robot sağ tərəfini xəttin üstünə sürdü və bu, xəttin yenidən sensorlar arasında olması üçün sağa dönməsi lazım olduğunu göstərir, sol sensor qaranlıq bir səthin üstündədirsə, sağ da Hələ yüngül birinin üstündə, sonra robotu hizalamaq üçün sola dönmək lazımdır.Hər iki sensor da qaranlıq bir səthin üstündədirsə, ümumiyyətlə, robot yenidən düz hərəkətə davam edir.

Yuxarıdakı diaqram dərhal mühərriklərin davranışının proqramda tam olaraq necə dəyişməli olduğunu göstərir.İndi proqramı yazmaq çətin olmamalı, əvvəlcə hansı sensörün seçiləcəyini seçməklə başlamalısınız. Əslində heç bir əhəmiyyəti yoxdur, gəlin solda saxlayaq. İşığın üstündə və ya qaranlıq bir səthdə olduğunu təyin etmək lazımdır:
Bu hərəkət hələ robotun hansı istiqamətə getməli olduğunu izah etməyə imkan vermir. Ancaq yuxarıda sadalanan dövlətləri iki qrupa böləcək: yuxarı qol üçün (I, II) və alt üçün (III, IV). Qrupların hər birinin indi iki vəziyyəti var, buna görə bunlardan birini seçməlisiniz. I və II ilk iki vəziyyətə diqqətlə baxsanız, onlar sağ sensorun mövqeyində fərqlənirlər - bir halda yüngül bir səthdən, digərində - qaranlıqdan yuxarıdır. Hansı tədbirin seçiləcəyini müəyyənləşdirən budur:
İndi yuxarıdakı cədvəllərə əsasən mühərriklərin davranışını müəyyənləşdirən bloklar əlavə edə bilərsiniz: iç içə vəziyyətin yuxarı qolu "hər iki sensör işıqda" birləşməsini, üst hissəsi - "işıqda solda, sağ qaranlıqda" birləşməsini təyin edir:
Əsas şərtin alt qolu başqa bir dövlət III və IV qrupundan məsuldur. Bu iki şərt də bir-birindən doğru sensörün aldığı işıqlandırma səviyyəsində fərqlənir. Beləliklə, hər birinin seçimini müəyyənləşdirəcəkdir:
Yaranan iki filial hərəkət blokları ilə doldurulur. Üst qol "solda qaranlıqda, sağda işıqda" vəziyyətində, altındakı isə "qaranlıqda hər iki sensor" üçün məsuliyyət daşıyır.
Qeyd etmək lazımdır ki, bu dizayn yalnız sahədəki müəyyən bir yerdəki sensorların göstəricilərindən asılı olaraq mühərriklərin necə açılacağını müəyyənləşdirir, təbii olaraq bir an sonra proqramın davranışını düzəltmək üçün oxunuşların dəyişib-dəyişmədiyini yoxlamalıdır. mühərriklər və bir an sonra yenidən, yenidən və s .d. Buna görə, bu təkrarlanan yoxlamanı təmin edəcək bir döngədə yerləşdirilməlidir:

Belə kifayət qədər sadə bir proqram, I və IV əyalətlərdə hərəkət edərkən maksimum sürəti düzgün bir şəkildə təyin etsəniz və eyni zamanda II və III əyalətlərdə optimal əyləc metodunu təyin etsəniz, robotun xətti boyunca onu keçmədən kifayət qədər yüksək hərəkət sürətini təmin edəcəkdir. - yolda dönmələr nə qədər dik olarsa, əyləc "daha sərt" olmalıdır - sürət daha sürətlə düşməli və əksinə - hamar dönüşlər ilə gücün kəsilməsi və ya sürətin bir az azalması ilə əyləc tətbiq etmək olduqca mümkündür. .

Sensorların robotun üzərində yerləşdirilməsi barədə bir neçə ayrıca söz deyilməlidir. Aydındır ki, bu iki sensorun təkərlərə nisbətən yerləşməsi üçün eyni tövsiyələr bir sensor üçün olduğu kimi tətbiq ediləcək, yalnız üçbucağın zirvəsi üçün, bu vəziyyətdə iki sensoru birləşdirən hissənin ortası alınır. Sensorlar arasındakı eyni məsafə də trasın xüsusiyyətləri arasından seçilməlidir: sensorlar bir-birinə nə qədər yaxın yerləşsə, robot bir o qədər tez hizalanacaq (nisbətən yavaş dönmələr həyata keçirir), lakin sensorlar kifayət qədər geniş yayılıbsa , cığırdan uçma riski var, buna görə düz hissələrdə daha sıx dönüşlər və daha yavaş sürət etməli olacaqsınız.



Bir insan bu xətti belə görür:

Robot onu belə görür:


Bu xüsusiyyəti "Yörünge" yarışma kateqoriyası üçün bir robot dizayn edərkən və proqramlaşdırarkən istifadə edəcəyik.

Bir robotu bir xətt boyunca görməyi və hərəkət etməyi öyrətməyin bir çox yolu var. Mürəkkəb proqramlar və çox sadə proqramlar var.

Sizə hətta 2-3 sinif uşaqlarının da yiyələnəcəyi bir proqramlaşdırma metodundan danışmaq istəyirəm. Bu yaşda, təlimatları uyğun olaraq quruluşları yığmaq çox asandır və bir robotu proqramlaşdırmaq onlar üçün çətin bir işdir. Ancaq bu metod uşağa 15-30 dəqiqədə rotanın istənilən marşrutu üçün robotu proqramlaşdırmağa imkan verəcəkdir (bəzi traektoriya xüsusiyyətlərinin mərhələli yoxlanılması və tənzimlənməsi nəzərə alınmaqla).

Bu metod, Surqut bölgəsində və Xantı-Mansi Muxtar Dairəsi-Yuqrada keçirilən bələdiyyə və regional robot yarışmalarında sınaqdan keçirildi və məktəbimizə birinci yerləri gətirdi. Eyni yerdə bu mövzunun bir çox komanda üçün çox aktual olduğuna əmin oldum.

Yaxşı başlayaq.

Bu tip yarışlara hazırlaşarkən, proqramlaşdırma problemin həllinin yalnız bir hissəsidir. Müəyyən bir yol üçün bir robot dizaynı ilə başlamalısınız. Növbəti məqalədə bunu necə edəcəyimi göstərəcəyəm. Bir xətt boyunca hərəkət çox yaygın olduğundan, proqramlaşdırma ilə başlayacağam.

İbtidai sinif şagirdləri üçün daha anlaşıqlı olduğundan iki işıq sensoru olan bir robot variantını nəzərdən keçirək.

İşıq sensorları 2 və 3 nömrəli bağlantı nöqtələrinə bağlıdır. B və C limanlarına mühərriklər
Sensorlar xəttin kənarlarına hizalanır (bir-birindən fərqli məsafələrdə və fərqli yüksəkliklərdə sensorlarla sınaqdan keçirməyə çalışın).
Vacib bir məqam. Üçün daha yaxşı iş belə bir sxemdən, parametrlərə görə bir cüt sensor seçmək məsləhətdir. Əks təqdirdə, sensor dəyərlərini düzəltmək üçün bir blok daxil etmək lazımdır.
Şassi üzərində sensorların klassik sxemə (üçbucağa) uyğun olaraq, şəkildə göstərildiyi kimi quraşdırılması.

Proqram az sayda blokdan ibarət olacaq:


1. İki blok işıq sensoru;
2. Dörd blok "Riyaziyyat";
3. İki blok mühərrik.

Robotu idarə etmək üçün iki mühərrik istifadə olunur. Hər birinin tutumu 100 ədəddir. Sxemimiz üçün motor gücünün orta dəyərini 50-yə bərabər götürəcəyik. Yəni düz bir xəttdə hərəkət edərkən orta sürət 50 ədədə bərabər olacaqdır. Düz hərəkətdən kənara çıxarkən, mühərriklərin gücü əyilmə bucağından asılı olaraq nisbətdə artacaq və ya azalacaq.

İndi bütün blokları necə birləşdirəcəyimizi, proqramı quracağımızı və onda nə baş verəcəyini anlayaq.
İki işıq sensoru quraq və onlara 2 və 3 portlarını təyin edək.
Riyaziyyat blokunu götürün və Çıxarma seçin.
Avtobusları olan "İntensivlik" çıxışlarından riyaziyyat blokuna "A" və "B" girişlərinə işıq sensorlarını bağlayaq.
Robotun sensorları zolaq xəttinin mərkəzindən simmetrik şəkildə quraşdırılıbsa, hər iki sensorun dəyərləri bərabər olacaqdır. Çıxardıqdan sonra dəyəri alırıq - 0.
Növbəti riyaziyyat bloku bir əmsal olaraq istifadə ediləcək və içərisində "Çarpma" təyin etməlisiniz.
Oranı hesablamaq üçün NXT vahidi ilə "ağ" və "qara" səviyyələrini ölçməlisiniz.
Tutaq ki, ağ -70, qara -50-dir.
Sonra hesablayırıq: 70-50 = 20 (ağ ilə qara arasındakı fərq), 50/20 = 2.5 (riyaziyyat bloklarında düz bir xətt üzrə hərəkət edərkən gücün orta dəyərini 50 olaraq təyin etdik. Bu dəyər əlavə olaraq əlavə edildi hərəkəti düzəldərkən güc 100-ə bərabər olmalıdır)
Dəyəri "A" girişində 2.5 olaraq təyin etməyə çalışın və daha dəqiq götürün.
Əvvəlki "Çıxarma" riyaziyyat blokunun "Nəticə" çıxışını "Çarpma" riyaziyyat blokunun "B" girişinə qoşun.
Sonra bir cüt gəlir - riyaziyyat bloku (Əlavə) və motor B.
Riyaziyyat blokunun yaradılması:
Giriş "A" 50 (motor gücünün yarısı) olaraq təyin edilmişdir.
"Nəticə" blokunun çıxışı avtobusla B motorunun "Güc" girişinə qoşulur.
Bundan sonra buxar riyaziyyat blokudur (Çıxarma) və motor C.
Riyaziyyat blokunun yaradılması:
"A" girişi 50-yə ayarlanmışdır.
"B" girişi "Çarpma" riyaziyyat blokunun "Nəticə" çıxışı olan bir avtobusla birləşdirilir.
"Nəticə" blokunun çıxışı avtobusla C motorunun "Güc" girişinə qoşulur.

Bütün bu hərəkətlər nəticəsində aşağıdakı proqramı alacaqsınız:

Bütün bunlar bir dövrdə işləyəcəyi üçün bir "Dövr" əlavə edirik, hamısını seçib "Dövrə" yə köçürürük.

İndi proqramın necə işləyəcəyini və necə qurulacağını anlamağa çalışaq.


Robot düz bir xətt üzrə hərəkət edərkən, sensor dəyərləri üst-üstə düşür, yəni "Çıxarma" blokunun çıxışı 0 dəyərinə sahib olacaqdır. "Çarpma" blokunun çıxışı da 0 dəyərini verir. dəyər motor nəzarət cütünə paralel olaraq verilir. Bu bloklar 50 olaraq təyin olunduğundan 0 əlavə etmək və ya çıxartmaq motorların gücünə təsir göstərmir. Hər iki mühərrik eyni 50 gücdə işləyir və robot düz bir xətt üzrə yuvarlanır.

Tutaq ki, yol bir dönmə edir və ya robot düz xəttdən kənara çıxır. Nə olacaq?

Şəkil göstərir ki, port 2-yə (bundan sonra sensorlar 2 və 3 deyilir) qoşulmuş sensorun işıqlandırması artır, çünki ağ sahəyə doğru hərəkət edir və sensor 3-ün işığı azalır. Tutaq ki, bu sensorların dəyərləri belə olur: sensor 2 - 55 ədəd və sensor 3 - 45 ədəd.
"Çıxarma" bloku iki sensorun (10) dəyərləri arasındakı fərqi təyin edəcək və düzəliş blokuna (bir əmsala vurma (10 * 2.5 = 25)) və sonra idarəetmə vahidlərinə təqdim edəcəkdir
mühərriklər.
Riyaziyyat blokunda (Əlavə) B sürətini orta sürətin dəyərinə 50
25 əlavə ediləcək və güc 75 75 B motoruna veriləcəkdir.
Mühərrik C idarəetməsinin riyaziyyat blokunda (Çıxarma) 25 orta sürət dəyərindən 25 çıxacaq və güc dəyəri 25 mühərrikə veriləcəkdir.
Beləliklə, düz xəttdən sapma düzəldiləcəkdir.

Parça kəskin şəkildə tərəfə dönərsə və sensor 2 ağda, sensör 3 isə qara rəngdədir. Bu sensorların işıqlandırma dəyərləri belə olur: sensor 2 - 70 ədəd və sensor 3 - 50 ədəd.
"Çıxarma" bloku iki sensorun (20) dəyərləri arasındakı fərqi təyin edəcək və düzəliş blokuna (20 * 2.5 = 50) və sonra motor idarəetmə bölmələrinə təqdim edəcəkdir.
İndi B motorunun riyaziyyat blokunda (Əlavə), güc dəyəri 50 +50 = 100 B motoruna veriləcəkdir.
Mühərrik C nəzarətinin riyaziyyat blokunda (Çıkarma), güc dəyəri 50 - 50 = 0 C motoruna veriləcəkdir.
Və robot kəskin bir dönüş edəcək.

Ağ və qara sahələrdə robot düz bir xətt üzrə hərəkət etməlidir. Bu olmazsa, eyni dəyərlərə sahib sensorları uyğunlaşdırmağa çalışın.

İndi yeni bir blok yarataq və robotu istənilən yol boyunca hərəkət etdirmək üçün istifadə edək.
Dövrü seçin, sonra "Düzenle" menyusunda "Blokumu yarat" əmrini seçin.

"Blok Konstruktor" informasiya qutusunda, blokumuza bir ad verin, məsələn, "Get", blok üçün bir simvol seçin və "DONE" düyməsini basın.

İndi xətt hərəkətinə ehtiyac duyduğumuz hallarda istifadə edilə bilən bir blok var.