bahay - Drywall
Lego ev3 na sumusunod sa itim na linya. Lego EV3. Paggalaw sa kahabaan ng itim na linya. Color sensor - "Ambient light brightness" mode


Upang gawing maayos ang paggalaw ng robot kasama ang itim na linya, kailangan mong gawin itong kalkulahin ang bilis ng paggalaw mismo.

Nakikita ng isang tao ang isang itim na linya at ang malinaw na hangganan nito. Medyo naiiba ang paggana ng light sensor.

Ito ang pag-aari ng light sensor - ang kawalan ng kakayahang malinaw na makilala sa pagitan ng puti at itim - na gagamitin namin upang kalkulahin ang bilis ng paggalaw.

Una, ipakilala natin ang konsepto ng "Ideal na trajectory point."

Ang mga pagbabasa ng light sensor ay mula 20 hanggang 80, kadalasan sa puti ang mga pagbabasa ay humigit-kumulang 65, sa itim ay humigit-kumulang 40.

Ang perpektong punto ay isang maginoo na punto na humigit-kumulang sa gitna ng puti at itim na mga kulay, kasunod kung saan lilipat ang robot sa itim na linya.

Narito ang lokasyon ng punto ay pangunahing - sa pagitan ng puti at itim. Hindi posibleng itakda ito nang eksakto sa puti o itim para sa mga kadahilanang pangmatematika kung bakit magiging malinaw sa ibang pagkakataon.

Sa empirikal, nakalkula namin na ang perpektong punto ay maaaring kalkulahin gamit ang sumusunod na formula:

Dapat na mahigpit na gumalaw ang robot sa perpektong punto. Kung mayroong isang paglihis sa anumang direksyon, ang robot ay dapat bumalik sa puntong iyon.

Mag-compose tayo matematikal na paglalarawan ng problema.

Paunang data.

Tamang punto.

Kasalukuyang pagbabasa ng light sensor.

Resulta.

Ang lakas ng pag-ikot ng motor V.

Lakas ng pag-ikot ng motor C.

Solusyon.

Isaalang-alang natin ang dalawang sitwasyon. Una: ang robot ay lumihis mula sa itim na linya patungo sa puting linya.

Sa kasong ito, dapat pataasin ng robot ang lakas ng pag-ikot ng motor B at bawasan ang lakas ng motor C.

Sa isang sitwasyon kung saan ang robot ay pumasok sa itim na linya, ang kabaligtaran ay totoo.

Kung mas lumilihis ang robot mula sa perpektong punto, mas mabilis itong kailangang bumalik dito.

Ngunit ang paglikha ng naturang regulator ay isang mahirap na gawain, at hindi ito palaging kinakailangan sa kabuuan nito.

Samakatuwid, nagpasya kaming limitahan ang aming sarili sa P-regulator lamang, na sapat na tumutugon sa mga paglihis mula sa itim na linya.

Sa wikang matematika ito ay isusulat tulad nito:

kung saan ang Hb at Hc ay ang panghuling kapangyarihan ng mga motor B at C, ayon sa pagkakabanggit,

Base – isang tiyak na base power ng mga motor na tumutukoy sa bilis ng robot. Ito ay pinili sa eksperimento, depende sa disenyo ng robot at ang talas ng mga pagliko.

Itek – kasalukuyang pagbabasa ng light sensor.

Iid – kinakalkula ang perpektong punto.

k – koepisyent ng proporsyonalidad, pinili sa eksperimentong paraan.

Sa ikatlong bahagi ay titingnan natin kung paano ito i-program sa kapaligiran ng NXT-G.

Ang problemang ito ay klasiko, simple sa ideolohiya, maaari itong malutas nang maraming beses, at sa bawat oras na makatuklas ka ng bago.

Mayroong maraming mga diskarte upang malutas ang sumusunod na linya ng problema. Ang pagpili ng isa sa mga ito ay depende sa tiyak na disenyo ng robot, sa bilang ng mga sensor, ang kanilang lokasyon na may kaugnayan sa mga gulong at bawat isa.

Sa aming halimbawa, tatlong halimbawa ng isang robot ang susuriin batay sa pangunahing modelong pang-edukasyon ng Robot Educator.

Upang magsimula, binubuo namin ang pangunahing modelo ng robot na pang-edukasyon na Robot Educator, para dito maaari mong gamitin ang mga tagubilin sa software MINDSTORMS EV3.

Gayundin, para sa mga halimbawa, kakailanganin namin ng EV3 light-color na sensor. Ang mga light sensor na ito, tulad ng walang iba, ay pinakaangkop para sa aming gawain kapag nagtatrabaho sa kanila, hindi namin kailangang mag-alala tungkol sa intensity ng nakapaligid na liwanag. Para sa sensor na ito, sa mga programa ay gagamitin namin ang reflected light mode, kung saan tinatantya ang dami ng reflected light mula sa pulang backlight ng sensor. Ang mga limitasyon ng mga pagbabasa ng sensor ay 0 - 100 mga yunit, para sa "walang pagmuni-muni" at "kabuuang pagmuni-muni", ayon sa pagkakabanggit.

Bilang halimbawa, susuriin namin ang 3 halimbawa ng mga programa para sa paglipat sa isang itim na trajectory na inilalarawan sa isang patag, maliwanag na background:

· Isang sensor, na may P regulator.

· Isang sensor, na may PC regulator.

· Dalawang sensor.

Halimbawa 1. Isang sensor, na may P regulator.

Disenyo

Ang light sensor ay naka-install sa isang beam na maginhawang matatagpuan sa modelo.


Algorithm

Ang pagpapatakbo ng algorithm ay batay sa katotohanan na, depende sa antas ng overlap ng sensor illumination beam na may itim na linya, ang mga pagbabasa na ibinalik ng sensor ay unti-unting nag-iiba. Pinapanatili ng robot ang posisyon ng light sensor sa hangganan ng itim na linya. Sa pamamagitan ng pag-convert ng data ng input mula sa light sensor, bumubuo ang control system ng halaga para sa bilis ng pagliko ng robot.


Dahil sa isang tunay na tilapon ang sensor ay bumubuo ng mga halaga sa buong saklaw ng pagpapatakbo nito (0-100), ang 50 ay pinili bilang ang halaga kung saan ang robot ay nagsusumikap Sa kasong ito, ang mga halaga na ipinadala sa mga function ng pag-ikot ay nabuo ang saklaw -50 - 50, ngunit ang mga halagang ito ay hindi sapat para sa isang matarik na pag-ikot sa tilapon. Samakatuwid, ang hanay ay dapat na palawakin ng isa at kalahating beses sa -75 - 75.

Bilang resulta, sa programa, ang calculator function ay isang simpleng proportional controller. Ang pag-andar nito ( (a-50)*1.5 ) sa operating range ng light sensor ay bumubuo ng mga halaga ng pag-ikot alinsunod sa graph:

Halimbawa kung paano gumagana ang algorithm

Halimbawa 2. Isang sensor, na may PK regulator.

Ang halimbawang ito ay batay sa parehong konstruksyon.

Marahil ay napansin mo na sa nakaraang halimbawa ang robot ay umindayog nang labis, na hindi pinahintulutan itong mapabilis nang sapat. Ngayon ay susubukan naming mapabuti nang kaunti ang sitwasyong ito.

Sa aming proporsyonal na controller Nagdaragdag din kami ng isang simpleng cubic adjuster na magdaragdag ng ilang flex sa adjuster function. Bawasan nito ang pag-indayog ng robot malapit sa nais na hangganan ng tilapon, pati na rin ang paggawa ng mas malakas na mga jerks kapag malayo dito.

Ganito nakikita ng isang tao ang linya:

Ito ay kung paano ito nakikita ng robot:


Gagamitin namin ang feature na ito kapag nagdidisenyo at nagprograma ng robot para sa kategorya ng kompetisyon na "Trajectory".

Mayroong maraming mga paraan upang turuan ang isang robot na makita ang isang linya at lumipat sa kahabaan nito. May mga kumplikadong programa at napakasimple.

Nais kong pag-usapan ang tungkol sa isang pamamaraan ng programming na kahit na ang mga bata sa grade 2-3 ay maaaring makabisado. Sa edad na ito, mas madali para sa kanila na mag-ipon ng mga istruktura ayon sa mga tagubilin, at ang pagprograma ng isang robot ay para sa kanila. mahirap na pagsubok. Ngunit ang pamamaraang ito ay magpapahintulot sa bata na i-program ang robot sa anumang ruta ng track sa loob ng 15-30 minuto (isinasaalang-alang ang sunud-sunod na pagsubok at pagsasaayos ng ilang mga tampok ng tilapon).

Ang pamamaraang ito ay nasubok sa mga munisipal at rehiyonal na kumpetisyon sa robotics sa rehiyon ng Surgut at Khanty-Mansi Autonomous Okrug-Yugra at dinala ang aming paaralan sa mga unang puwesto. Doon ako naging kumbinsido na ang paksang ito ay napaka-kaugnay para sa maraming mga koponan.

Well, simulan na natin.

Kapag naghahanda para sa ganitong uri ng kumpetisyon, ang programming ay bahagi lamang ng solusyon sa problema. Kailangan mong magsimula sa pamamagitan ng pagdidisenyo ng isang robot para sa isang partikular na ruta. Sa susunod na artikulo sasabihin ko sa iyo kung paano ito gagawin. Well, dahil ang paggalaw sa isang linya ay madalas na nangyayari, magsisimula ako sa programming.

Isaalang-alang natin ang opsyon ng isang robot na may dalawang light sensor, dahil mas naiintindihan ito ng mga mag-aaral sa elementarya.

Ang mga light sensor ay konektado sa mga port 2 at 3. Mga motor sa port B at C.
Ang mga sensor ay inilalagay sa mga gilid ng linya (subukang mag-eksperimento sa paglalagay ng mga sensor sa iba't ibang distansya mula sa isa't isa at sa iba't ibang taas).
Mahalagang punto. Para sa mas magandang trabaho Para sa gayong pamamaraan, ipinapayong pumili ng isang pares ng mga sensor ayon sa mga parameter. Kung hindi, kakailanganing magpakilala ng bloke para sa pagsasaayos ng mga halaga ng sensor.
Pag-install ng mga sensor sa chassis ayon sa klasikong pamamaraan(tatsulok), humigit-kumulang tulad ng nasa larawan.

Ang programa ay binubuo ng isang maliit na bilang ng mga bloke:


1. Dalawang light sensor unit;
2. Apat na bloke ng "Mathematics";
3. Dalawang bloke ng motor.

Dalawang motor ang ginagamit upang kontrolin ang robot. Ang kapangyarihan ng bawat isa ay 100 yunit. Para sa aming scheme, kukunin namin ang average na halaga ng kapangyarihan ng motor na katumbas ng 50. Iyon ay, ang average na bilis kapag gumagalaw sa isang tuwid na linya ay magiging katumbas ng 50 mga yunit. Kapag lumihis mula sa tuwid na linya ng paggalaw, ang kapangyarihan ng mga motor ay proporsyonal na tataas o bababa, depende sa anggulo ng paglihis.

Ngayon alamin natin kung paano ikonekta ang lahat ng mga bloke, i-configure ang programa at kung ano ang mangyayari dito.
Mag-set up tayo ng dalawang light sensor at magtalaga ng mga port 2 at 3 sa kanila.
Kunin ang math block at piliin ang "Pagbabawas."
Ikonekta natin ang mga light sensor mula sa "Intensity" na mga output ng mga bus patungo sa mathematics block sa mga input na "A" at "B".
Kung ang mga sensor ng robot ay naka-install nang simetriko mula sa gitna ng linya ng track, kung gayon ang mga halaga ng parehong mga sensor ay magiging pantay. Pagkatapos ng pagbabawas makuha namin ang halaga - 0.
Ang susunod na bloke ng matematika ay gagamitin bilang isang koepisyent at kailangan mong itakda ang "Pagpaparami" dito.
Upang kalkulahin ang koepisyent, kailangan mong sukatin ang mga antas ng "puti" at "itim" gamit ang NXT block.
Ipagpalagay natin: puti -70, itim -50.
Susunod na kalkulahin namin: 70-50=20 (ang pagkakaiba sa pagitan ng puti at itim), 50/20=2.5 ​​​​(itinakda namin ang average na halaga ng kapangyarihan kapag gumagalaw sa isang tuwid na linya sa mga bloke ng matematika sa 50. Ang halagang ito kasama ang idinagdag kapangyarihan kapag nag-aayos ng paggalaw ay dapat na katumbas ng 100)
Subukang itakda ang value sa 2.5 sa input na "A", at pagkatapos ay piliin ito nang mas tumpak.
Sa input na "B" ng mathematics block na "Multiplication", ikonekta ang output na "Resulta" ng nakaraang mathematics block na "Subtraction".
Susunod ang isang pares - isang math block (Addition) at motor B.
Pagse-set up ng math block:
Ang input na "A" ay nakatakda sa 50 (kalahati ng lakas ng motor).
Ang output ng "Result" block ay konektado ng bus sa "Power" input ng motor B.
Ang susunod na pares ay isang math block (Subtraction) at motor C.
Pagse-set up ng math block:
Ang input na "A" ay nakatakda sa 50.
Ang input na "B" ay ikinonekta ng isang bus sa "Result" na output ng "Multiplication" mathematics block.
Ang output ng "Result" block ay konektado ng bus sa "Power" input ng motor C.

Bilang resulta ng lahat ng mga pagkilos na ito, makukuha mo ang sumusunod na programa:

Dahil ang lahat ng ito ay gagana sa isang cycle, idagdag namin ang "Cycle", piliin ito at ilipat ang lahat sa "Cycle".

Ngayon subukan nating malaman kung paano gagana ang programa at kung paano ito i-configure.


Habang ang robot ay gumagalaw sa isang tuwid na linya, ang mga halaga ng mga sensor ay nag-tutugma, na nangangahulugan na ang output ng bloke na "Pagbabawas" ay magiging halaga 0. Ang output ng bloke ng "Pagpaparami" ay nagbibigay din ng halaga na 0. Ang halagang ito ay ibinibigay nang kahanay sa pares ng kontrol ng motor. Dahil ang mga bloke na ito ay nakatakda sa 50, ang pagdaragdag o pagbabawas ng 0 ay hindi makakaapekto sa kapangyarihan ng mga motor. Ang parehong mga motor ay gumagana sa parehong kapangyarihan ng 50, at ang robot ay gumulong sa isang tuwid na linya.

Ipagpalagay natin na ang track ay lumiliko o ang robot ay lumihis mula sa isang tuwid na linya. Ano ang mangyayari?

Ipinapakita ng figure na ang pag-iilaw ng sensor na konektado sa port 2 (simula dito ay tinutukoy bilang mga sensor 2 at 3) ay tumataas, habang ito ay gumagalaw papunta sa puting field, at ang pag-iilaw ng sensor 3 ay bumababa. Ipagpalagay natin na ang mga halaga ng mga sensor na ito ay magiging: sensor 2 – 55 units, at sensor 3 – 45 units.
Ang bloke na "Pagbabawas" ay tutukuyin ang pagkakaiba sa pagitan ng mga halaga ng dalawang sensor (10) at ipakain ito sa bloke ng pagwawasto (multiply sa isang koepisyent (10*2.5=25)) at pagkatapos ay sa mga bloke ng kontrol
mga motor.
Sa bloke ng matematika (Addition) ng kontrol ng motor B sa average na halaga ng bilis na 50
25 ay idaragdag at isang power value na 75 ang ibibigay sa motor B.
Sa mathematics block (Pagbabawas) ng motor C control, ang 25 ay ibabawas mula sa average na halaga ng bilis na 50 at isang power value na 25 ang ibibigay sa motor C.
Sa ganitong paraan, ang paglihis mula sa tuwid na linya ay itatama.

Kung biglang lumiko ang track sa gilid, magiging puti ang sensor 2, at itim ang sensor 3. Ang mga halaga ng pag-iilaw ng mga sensor na ito ay nagiging: sensor 2 – 70 units, at sensor 3 – 50 units.
Ang bloke na "Pagbabawas" ay tutukuyin ang pagkakaiba sa pagitan ng mga halaga ng dalawang sensor (20) at ipakain ito sa bloke ng pagwawasto (20*2.5=50) at pagkatapos ay sa mga yunit ng kontrol ng motor.
Ngayon sa mathematics (Addition) block ng motor B control, isang power value na 50 +50 =100 ang ibibigay sa motor B.
Sa mathematics block (Subtraction) ng motor C control, isang power value na 50 – 50 = 0 ang ibibigay sa motor C.
At ang robot ay gagawa ng matalim na pagliko.

Sa puti at itim na mga patlang, ang robot ay dapat magmaneho sa isang tuwid na linya. Kung hindi ito mangyayari, subukang pumili ng mga sensor na may parehong mga halaga.

Ngayon, gumawa tayo ng bagong bloke at gamitin ito para ilipat ang robot sa anumang ruta.
Piliin ang cycle, pagkatapos ay sa menu na "I-edit" piliin ang command na "Gumawa ng aking bloke".

Sa dialog box na "Block Designer", bigyan ng pangalan ang aming block, halimbawa, "Go", pumili ng icon para sa block at i-click ang "DONE".

Ngayon mayroon kaming isang bloke na maaaring magamit sa mga kaso kung saan kailangan naming lumipat sa isang linya.

Ang teksto ng trabaho ay nai-post nang walang mga imahe at mga formula.
Buong bersyon available ang trabaho sa tab na "Mga Work File" sa format na PDF

Lego Mindstorms EV3

Yugto ng paghahanda

Paglikha at pagkakalibrate ng programa

Konklusyon

Panitikan

1. Panimula.

Ang robotics ay isa sa ang pinakamahalagang lugar pang-agham at teknolohikal na pag-unlad, kung saan ang mga problema ng mekanika at mga bagong teknolohiya ay nakikipag-ugnayan sa mga problema ng artificial intelligence.

Sa likod mga nakaraang taon pagsulong sa robotics at mga awtomatikong sistema binago ang personal at business spheres ng ating buhay. Ang mga robot ay malawakang ginagamit sa transportasyon, paggalugad sa lupa at kalawakan, operasyon, industriya ng militar, pananaliksik sa laboratoryo, seguridad, at mass production ng mga produktong pang-industriya at consumer. Maraming mga device na gumagawa ng mga desisyon batay sa data na natanggap mula sa mga sensor ay maaari ding ituring na mga robot - tulad ng, halimbawa, mga elevator, kung wala ito ay hindi na maiisip ang ating buhay.

Iniimbitahan tayo ng taga-disenyo ng Mindstorms EV3 na pumasok sa kamangha-manghang mundo ng mga robot at isawsaw ang ating mga sarili sa masalimuot na kapaligiran ng teknolohiya ng impormasyon.

Layunin: Matutong iprograma ang robot para gumalaw sa isang tuwid na linya.

    Kilalanin ang taga-disenyo ng Mindstorms EV3 at ang kapaligiran ng programming nito.

    Sumulat ng mga programa para gumalaw ang robot sa isang tuwid na linya sa 30 cm, 1 m 30 cm at 2 m 17 cm.

    Mindstorms EV3 constructor.

Mga bahagi ng konstruksiyon - 601 pcs., servo motor - 3 pcs., color sensor, touch motion sensor, infrared sensor at touch sensor. Unit ng microprocessor EV3 ang utak Tagabuo ng LEGO Mindstorms.

Ang isang malaking servomotor ay may pananagutan para sa paggalaw ng robot, na konektado sa EV3 microcomputer at nagpapagalaw sa robot: pasulong at paatras, lumiko at magmaneho sa isang partikular na landas. Ang servomotor na ito ay may built-in na rotation sensor, na nagbibigay-daan sa iyo upang tumpak na makontrol ang paggalaw at bilis ng robot.

Maaari mong pilitin ang robot na magsagawa ng isang aksyon gamit programa sa kompyuter EV3. Ang programa ay binubuo ng iba't ibang mga bloke ng kontrol. Makikipagtulungan kami sa motion block.

Kinokontrol ng bloke ng paggalaw ang mga makina ng robot, ini-on, pinapatay, at pinapagana ito alinsunod sa mga nakatalagang gawain. Maaari mong iprograma ang kilusan sa isang tiyak na bilang ng mga rebolusyon, o antas.

    Yugto ng paghahanda.

    Paglikha ng isang teknikal na larangan.

Maglagay tayo ng mga marka sa lugar ng trabaho ng robot, gamit ang electrical tape at isang ruler upang lumikha ng tatlong linya na 30 cm ang haba - berdeng linya, 1 m 15 cm - pula at 2 m 17 cm - itim na linya.

    Mga kinakailangang kalkulasyon:

Ang diameter ng robot wheel ay 5 cm 7 mm = 5.7 cm.

Isang rebolusyon ng gulong ng robot katumbas ng haba bilog na may diameter na 5.7 cm Ang circumference ay matatagpuan gamit ang formula

Kung saan ang r ay ang radius ng gulong, ang d ay ang diameter, π = 3.14

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

Yung. Para sa isang rebolusyon ng gulong, ang robot ay naglalakbay ng 17.9 cm.

Kalkulahin natin ang bilang ng mga rebolusyon na kinakailangan upang magmaneho:

N = 30: 17.9 = 1.68.

    1 m 30 cm = 130 cm

N = 130: 17.9 = 7.26.

    2 m 17 cm = 217 cm.

N = 217: 17.9 = 12.12.

    Paglikha at pagkakalibrate ng programa.

Gagawin namin ang programa gamit ang sumusunod na algorithm:

Algorithm:

    Pumili ng bloke ng paggalaw sa programang Mindstorms EV3.

    I-on ang parehong mga motor sa ibinigay na direksyon.

    Maghintay para sa pagbabasa ng rotation sensor ng isa sa mga motor na magbago sa tinukoy na halaga.

    Patayin ang mga motor.

Nilo-load namin ang natapos na programa sa robot control unit. Inilalagay namin ang robot sa field at pinindot ang start button. Ang EV3 ay nagmamaneho sa buong field at humihinto sa dulo ng isang linya. Ngunit upang makamit ang isang tumpak na pagtatapos, kailangan mong magsagawa ng pagkakalibrate, dahil ang paggalaw ay naiimpluwensyahan ng mga panlabas na kadahilanan.

    Ang field ay naka-install sa mga mesa ng mag-aaral, kaya ang isang bahagyang pagpapalihis ng ibabaw ay posible.

    Ang ibabaw ng field ay makinis, kaya ang mahinang pagdikit ng mga gulong ng robot sa field ay posible.

    Sa pagkalkula ng bilang ng mga rebolusyon, kinailangan naming bilugan ang mga numero, at samakatuwid, sa pamamagitan ng pagbabago ng daan-daang mga rebolusyon, nakamit namin ang kinakailangang resulta.

5. Konklusyon.

Ang kakayahang mag-program ng isang robot upang lumipat sa isang tuwid na linya ay magiging kapaki-pakinabang para sa paglikha ng mas kumplikadong mga programa. Bilang isang tuntunin, sa teknikal na mga detalye robotics competitions, lahat ng dimensyon ng paggalaw ay ipinahiwatig. Kinakailangan ang mga ito upang ang programa ay hindi ma-overload sa mga lohikal na kondisyon, mga loop at iba pang kumplikadong mga bloke ng kontrol.

Sa susunod na yugto ng pagkilala sa Lego Mindstorms EV3 robot, kakailanganin mong matutunan kung paano magprogram ng mga pagliko sa isang partikular na anggulo, paggalaw sa isang bilog, at mga spiral.

Ang pakikipagtulungan sa taga-disenyo ay napaka-interesante. Sa pamamagitan ng pag-aaral ng higit pa tungkol sa mga kakayahan nito, malulutas mo ang anumang teknikal na problema. At sa hinaharap, marahil, lumikha ng iyong sariling mga kawili-wiling modelo ng Lego Mindstorms EV3 robot.

Panitikan.

    Koposov D. G. "Ang unang hakbang sa robotics para sa mga baitang 5-6." - M.: Binom. Laboratory ng Kaalaman, 2012 - 286 p.

    Filippov S. A. "Robotics para sa mga bata at magulang" - "Science" 2010

    Mga mapagkukunan sa Internet

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

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

    http://www. lego com/edukasyon/

15.01.2012, 18:51

Hanggang ngayon, sa mga artikulo tungkol sa mga algorithm na ginagamit kapag gumagalaw sa isang linya, ang isang paraan ay isinasaalang-alang kapag ang light sensor ay tila sinusubaybayan ang kaliwa o kanang hangganan nito: sa sandaling lumipat ang robot sa puting bahagi ng field, ibinalik ng controller ang robot. sa hangganan, ang sensor ay nagsimulang lumipat nang mas malalim sa itim na linya - itinuwid ito ng regulator.
Sa kabila ng katotohanan na ang larawan sa itaas ay ipinapakita para sa isang relay regulator, ang pangkalahatang prinsipyo ng paggalaw ng isang proporsyonal (P-regulator) ay magiging pareho. Tulad ng nabanggit na, ang average na bilis ng naturang paggalaw ay hindi masyadong mataas, at maraming mga pagtatangka ang ginawa upang madagdagan ito sa pamamagitan ng bahagyang kumplikadong algorithm: sa isang kaso, ginamit ang "malambot" na pagpepreno, sa isa pa, bilang karagdagan sa mga pagliko, pasulong na paggalaw ay ipinakilala.
Upang payagan ang robot na sumulong sa ilang mga lugar, ang isang makitid na lugar ay inilaan sa hanay ng mga halaga na ginawa ng light sensor, na maaaring karaniwang tinatawag na "ang sensor ay nasa hangganan ng linya."
Ang diskarte na ito ay may kaunting disbentaha - kung ang robot ay "sinusundan" ang kaliwang hangganan ng linya, pagkatapos ay sa kanan ay hindi nito agad na nakita ang kurbada ng tilapon at, bilang isang resulta, gumugugol ng mas maraming oras sa paghahanap para sa linya at pag-ikot. Bukod dito, maaari nating sabihin nang may kumpiyansa na ang mas matalas na pagliko, mas mahaba ang paghahanap na ito.
Ang sumusunod na figure ay nagpapakita na kung ang sensor ay wala sa kaliwang bahagi ng hangganan, ngunit sa kanan, kung gayon ay nakita na nito ang curvature ng trajectory at magsisimulang gumawa ng mga maniobra ng pagliko.

Samakatuwid, magandang ideya na bigyan ang robot ng dalawang sensor nang sabay-sabay, na matatagpuan sa magkabilang panig ng linya at, nang naaayon, ay makakatulong sa robot na mas mabilis na tumugon sa mga pagbabago sa direksyon ng paggalaw.
Ngayon ay kailangan nating matukoy kung paano makakaapekto ang pagbabago sa disenyo na ito sa programa. Para sa pagiging simple, dapat tayong magsimula muli sa pinakasimpleng relay controller at samakatuwid, una sa lahat, interesado tayo sa mga posibleng posisyon ng mga sensor na nauugnay sa linya:

Sa katunayan, ang isa pang katanggap-tanggap na kondisyon ay maaaring makilala - sa mga kumplikadong ruta ito ay ang intersection ng isang intersection o ilang uri ng pampalapot sa landas.
Ang iba pang mga posisyon ng mga sensor ay hindi isasaalang-alang, dahil ang mga ito ay alinman sa mga derivative ng mga ipinapakita sa itaas, o ito ang mga posisyon ng robot kapag ito ay umalis sa linya at hindi na maibabalik ang sarili dito gamit ang impormasyon mula sa mga sensor. . Bilang resulta, ang lahat ng mga probisyon sa itaas ay maaaring bawasan sa sumusunod na pag-uuri:
  • ang kaliwang sensor, tulad ng kanan, ay nasa itaas ng isang magaan na ibabaw
  • kaliwang sensor sa ibabaw ng maliwanag na ibabaw, kanang sensor sa ibabaw ng madilim
  • kaliwang sensor sa ibabaw ng madilim na ibabaw, kanang sensor sa ibabaw ng liwanag na ibabaw
  • ang parehong mga sensor ay matatagpuan sa itaas ng isang madilim na ibabaw
Kung sa isang tiyak na punto ng oras ay nakita ng program sa robot ang isa sa mga posisyong ito, kakailanganin itong tumugon nang naaayon:
    Kung ang parehong mga sensor ay nasa itaas ng puting ibabaw, ito ay isang normal na sitwasyon kung saan ang linya ay nasa pagitan ng mga sensor, kaya ang robot ay dapat na dumiretso Kung ang kaliwang sensor ay nasa itaas pa rin ng liwanag na ibabaw, at ang kanang sensor ay nasa itaas na ng madilim, pagkatapos ay hinihimok ng robot ang kanang bahagi nito papunta sa linya, na nangangahulugang kailangan niyang lumiko sa kanan upang muli ang linya sa pagitan ng mga sensor Kung ang kaliwang sensor ay nasa itaas ng isang madilim na ibabaw, at ang kanan ay hindi pa rin sa itaas ng isang ilaw, pagkatapos ay upang i-align ang robot ay kailangang lumiko sa kaliwa Kung ang parehong mga sensor ay nasa itaas ng isang madilim na ibabaw, pagkatapos pangkalahatang kaso, ang robot ay patuloy na muling gumagalaw nang diretso.

Ang diagram sa itaas ay agad na nagpapakita kung paano dapat magbago ang pag-uugali ng mga motor sa programa Ngayon, hindi dapat maging mahirap ang pagsusulat ng isang programa sa pamamagitan ng pagpili kung aling sensor ang unang susuriin. Wala ito ng malaking kahalagahan, kaya hayaan na lang. Ito ay kinakailangan upang matukoy kung ito ay nasa itaas ng liwanag o madilim na ibabaw:
Hindi ka pa pinapayagan ng pagkilos na ito na sabihin kung saang direksyon dapat pumunta ang robot. Ngunit hahatiin nito ang mga estadong nakalista sa itaas sa dalawang grupo: (I, II) para sa itaas na sangay at (III, IV) para sa mas mababa. Ang bawat grupo ay mayroon na ngayong dalawang estado, kaya kailangan mong pumili ng isa sa kanila. Kung titingnan mo nang mabuti ang unang dalawang estado I at II, naiiba sila sa posisyon ng tamang sensor - sa isang kaso ito ay nasa itaas ng isang liwanag na ibabaw, sa kabilang banda - sa itaas ng isang madilim. Ito ang magpapasiya sa pagpili kung anong aksyon ang gagawin:
Ngayon ay maaari kang magpasok ng mga bloke na tumutukoy sa pag-uugali ng mga motor ayon sa mga talahanayan sa itaas: ang itaas na sangay ng nested na kondisyon ay tumutukoy sa kumbinasyon na "parehong mga sensor sa liwanag", sa itaas - "kaliwa sa liwanag, kanan sa madilim":
Ang mas mababang sangay ng pangunahing kondisyon ay responsable para sa isa pang pangkat ng mga kondisyon III at IV. Magkaiba rin ang dalawang estado sa bawat isa sa antas ng liwanag na nakikita ng tamang sensor. Nangangahulugan ito na matutukoy nito ang pagpili ng bawat isa sa kanila:
Ang nagresultang dalawang sanga ay puno ng mga bloke ng paggalaw. Ang itaas na sangay ay responsable para sa "kaliwa sa madilim, kanan sa liwanag" na estado, at ang mas mababang sangay ay responsable para sa "parehong mga sensor sa madilim."
Dapat ito ay nabanggit na itong disenyo tinutukoy lamang nito kung paano i-on ang mga motor depende sa mga pagbabasa ng mga sensor sa isang tiyak na lugar sa field, pagkatapos ng ilang sandali, dapat suriin ng programa kung nagbago ang mga pagbabasa upang ayusin ang pag-uugali ng mga motor nang naaayon; at pagkatapos ng ilang sandali muli, muli, atbp. Samakatuwid, dapat itong ilagay sa isang loop na magbibigay ng paulit-ulit na tseke na ito:

Napaka ganda simpleng programa ay magbibigay ng medyo mataas na bilis ng paggalaw ng robot sa linya nang hindi lumilipad nang lampas sa mga limitasyon nito, kung na-configure nang tama pinakamataas na bilis kapag lumilipat sa mga estado I at IV, at nakatakda din ang pinakamahusay na paraan pagpepreno sa mga estado II at III - ang mas matarik na pagliko sa highway, ang "mas mahirap" ang pagpepreno ay dapat - ang bilis ay dapat mabawasan nang mas mabilis, at kabaligtaran - na may makinis na pagliko posible na mag-apply ng pagpepreno sa pamamagitan ng pag-off ng kapangyarihan o kahit na sa pamamagitan ng pagbawas ng bilis sa kabuuan.

Ang ilang magkakahiwalay na salita ay dapat ding sabihin tungkol sa paglalagay ng mga sensor sa robot. Malinaw, ang parehong mga rekomendasyon para sa lokasyon ng dalawang sensor na ito na nauugnay sa mga gulong ay ilalapat tulad ng para sa isang sensor, tanging ang vertex ng tatsulok ay kinuha bilang gitna ng segment na nagkokonekta sa dalawang sensor. Ang distansya sa pagitan ng mga sensor mismo ay dapat ding mapili mula sa mga katangian ng track: kung mas malapit ang mga sensor ay matatagpuan sa isa't isa, mas madalas na ang robot ay mag-level out (gumanap ng medyo mabagal na pagliko), ngunit kung ang mga sensor ay sapat na lapad. , pagkatapos ay may panganib na lumipad palabas ng track, kaya kailangan mong higit pang "mahirap" na pagliko at bawasan ang bilis sa mga tuwid na seksyon.



 


Basahin:



Accounting para sa mga settlement na may badyet

Accounting para sa mga settlement na may badyet

Ang Account 68 sa accounting ay nagsisilbi upang mangolekta ng impormasyon tungkol sa mga ipinag-uutos na pagbabayad sa badyet, na ibinawas kapwa sa gastos ng negosyo at...

Cheesecake mula sa cottage cheese sa isang kawali - mga klasikong recipe para sa malambot na cheesecake Mga cheesecake mula sa 500 g ng cottage cheese

Cheesecake mula sa cottage cheese sa isang kawali - mga klasikong recipe para sa malambot na cheesecake Mga cheesecake mula sa 500 g ng cottage cheese

Mga sangkap: (4 na servings) 500 gr. cottage cheese 1/2 tasa ng harina 1 itlog 3 tbsp. l. asukal 50 gr. mga pasas (opsyonal) kurot ng asin baking soda...

Black pearl salad na may prun Black pearl salad na may prun

Salad

Magandang araw sa lahat ng nagsusumikap para sa pagkakaiba-iba sa kanilang pang-araw-araw na pagkain. Kung ikaw ay pagod na sa mga monotonous na pagkain at gusto mong masiyahan...

Lecho na may mga recipe ng tomato paste

Lecho na may mga recipe ng tomato paste

Napakasarap na lecho na may tomato paste, tulad ng Bulgarian lecho, na inihanda para sa taglamig. Ito ay kung paano namin pinoproseso (at kumakain!) 1 bag ng mga sili sa aming pamilya. At sino ang gusto kong...

feed-image RSS