bahay - Drywall
Lego ev3 na sumusunod sa itim na linya. Lego EV3. Paggalaw sa kahabaan ng itim na linya. Color Sensor - Mode ng Ambient Light Intensity


Upang gawing maayos ang paggalaw ng robot kasama ang itim na linya, kailangan mong pilitin 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 hangganan ng puti at itim - at gagamitin namin ito upang kalkulahin ang bilis ng paggalaw.

Una, ipinakilala namin 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 ideal na punto ay isang conditional point na humigit-kumulang sa gitna ng puti at itim na mga kulay, kasunod kung saan lilipat ang robot sa itim na linya.

Dito, sa prinsipyo, ang lokasyon ng punto ay nasa pagitan ng puti at itim. Hindi posible na tanungin ito nang eksakto sa puti o itim para sa mga kadahilanang pangmatematika, kung bakit - magiging malinaw ito 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 ang isang paglihis ay nangyari sa anumang direksyon, ang robot ay dapat bumalik sa puntong ito.

Mag-compose tayo matematikal na paglalarawan ng problema.

Paunang data.

Perpektong punto.

Ang 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 puti.

Sa kasong ito, dapat taasan ng robot ang rotational power ng motor B at bawasan ang power 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.

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

Sa wika ng matematika, ito ay isusulat na ganito:

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

Hbase - isang tiyak na pangunahing kapangyarihan 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.

I id - kinakalkula ang perpektong punto.

k - koepisyent ng proporsyonalidad, ay pinili sa eksperimento.

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

Ang gawaing ito ay klasiko, simple sa konsepto, maaari itong malutas nang maraming beses, at sa bawat oras na makatuklas ka ng bago para sa iyong sarili.

Mayroong maraming mga diskarte sa paglutas ng line-following problem. 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 sa bawat isa.

Sa aming halimbawa, susuriin namin ang tatlong halimbawa ng isang robot batay sa pangunahing modelo ng pagsasanay na Robot Educator.

Upang magsimula, nag-assemble kami ng isang pangunahing modelo ng robot ng pagsasanay na Robot Educator, para dito maaari mong gamitin ang mga tagubilin sa MINDSTORMS EV3 software.

Gayundin, para sa mga halimbawa kailangan 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 ambient light. Para sa sensor na ito, sa mga programa ay gagamitin namin ang reflected light mode, kung saan tinatantya ang dami ng reflected light ng 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.

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 controller.

· Dalawang sensor.

Halimbawa 1. Isang sensor, na may P controller.

Disenyo

Ang light sensor ay naka-mount 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 backlight beam na may isang itim na linya, ang mga pagbabasa na ibinalik ng sensor ay nag-iiba sa isang gradient. Pinapanatili ng robot ang posisyon ng light sensor sa hangganan ng itim na linya. Sa pamamagitan ng pag-convert ng input data mula sa light sensor, ang control system ay bumubuo ng isang halaga para sa bilis ng pag-ikot ng robot.


Dahil sa isang tunay na tilapon ang sensor ay bumubuo ng mga halaga sa buong hanay ng pagtatrabaho nito (0-100), kung gayon ang halaga kung saan ang robot ay nagsusumikap ay 50. Sa kasong ito, ang mga halaga ng ipinadala na mga pag-andar ng pag-ikot ay nabuo sa 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 hanggang -75 - 75.

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

Isang halimbawa kung paano gumagana ang algorithm

Halimbawa 2. Isang sensor, na may PC controller.

Ang halimbawang ito ay nagtatayo sa parehong konstruksiyon.

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

Sa aming proporsyonal na controller, nagdaragdag din kami ng simpleng cube controller na magdaragdag ng flex sa function ng controller. Ito ay magbabawas sa pag-alog ng robot malapit sa nais na hangganan ng tilapon, pati na rin ang paggawa ng mas malakas na jerks sa isang malaking distansya mula dito.

Ganito nakikita ng isang tao ang linya:

Ganito siya nakikita ng robot:


Ito ang tampok na ito na gagamitin namin kapag nagdidisenyo at nagprograma ng isang robot para sa kategorya ng kumpetisyon na "Trajectory".

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

Nais kong sabihin sa iyo ang tungkol sa isang paraan ng programming na kahit na ang mga bata ng 2-3 grado ay 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 isang mahirap na gawain para sa kanila. Ngunit ang pamamaraang ito ay magpapahintulot sa bata na i-program ang robot para sa anumang ruta ng track sa loob ng 15-30 minuto (isinasaalang-alang ang sunud-sunod na pag-verify at pagsasaayos ng ilan sa 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. Sa parehong lugar, naging kumbinsido ako na ang paksang ito ay napakahalaga para sa maraming mga koponan.

Well, simulan na natin.

Bilang paghahanda para sa ganitong uri ng kompetisyon, ang programming ay bahagi lamang ng solusyon sa problema. Kailangan mong magsimula sa pamamagitan ng pagdidisenyo ng isang robot para sa isang partikular na track. Sa susunod na artikulo, ipapakita ko sa iyo kung paano ito gagawin. Well, dahil ang paggalaw sa isang linya ay karaniwan, magsisimula ako sa programming.

Isaalang-alang natin ang isang variant ng isang robot na may dalawang light sensor, dahil mas nauunawaan ito para sa 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 nakahanay sa mga gilid ng linya (subukang mag-eksperimento sa mga sensor sa iba't ibang distansya mula sa isa't isa at sa iba't ibang taas).
Isang mahalagang punto. Para sa mas mahusay na operasyon ng naturang circuit, ipinapayong pumili ng isang pares ng mga sensor ayon sa mga parameter. Kung hindi, kakailanganing magpasok ng isang bloke para sa pagwawasto ng mga halaga ng sensor.
Pag-install ng mga sensor sa chassis ayon sa klasikong pamamaraan (tatsulok), humigit-kumulang tulad ng sa figure.

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


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

Dalawang motor ang ginagamit upang kontrolin ang robot. Ang kapasidad ng bawat isa ay 100 units. 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 nagmamaneho sa isang tuwid na linya ay magiging katumbas ng 50 mga yunit. Kapag lumihis mula sa tuwid na linya, ang lakas ng mga motor ay tataas o bababa nang proporsyonal, depende sa anggulo ng pagpapalihis.

Ngayon alamin natin kung paano ikonekta ang lahat ng mga bloke, i-set up ang programa at kung ano ang mangyayari dito.
Mag-set up tayo ng dalawang light sensor at magtalaga sa kanila ng port 2 at 3.
Kunin ang math block at piliin ang Subtraction.
Ikonekta natin ang mga light sensor mula sa "Intensity" na mga output na may mga bus patungo sa mathematics block sa "A" at "B" na mga input.
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, nakuha 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 ratio, kailangan mong sukatin ang mga antas ng "puti" at "itim" gamit ang yunit ng NXT.
Ipagpalagay na ang puti ay -70, ang itim ay -50.
Pagkatapos ay binibilang 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 itinatama ang 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.
Ikonekta ang "Result" na output ng nakaraang "Subtraction" math block sa "B" input ng "Multiplication" math block.
Susunod ang isang pares - isang bloke ng matematika (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.
Susunod, ang singaw ay isang bloke ng matematika (Pagbabawas) at motor C.
Pagse-set up ng math block:
Ang input na "A" ay nakatakda sa 50.
Ang input na "B" ay konektado ng isang bus na may output na "Resulta" ng "Multiplication" math 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, matatanggap mo ang sumusunod na programa:

Dahil ang lahat ng ito ay gagana sa isang loop, nagdagdag kami ng isang "Loop", piliin ito at ilipat ang lahat ng ito sa isang "Loop".

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


Habang ang robot ay naglalakbay sa isang tuwid na linya, ang mga halaga ng sensor ay nagtutugma, na nangangahulugan na ang output ng bloke ng pagbabawas ay magkakaroon ng halaga na 0. Ang output ng bloke ng Multiplikasyon ay nagbibigay din ng halaga na 0. Ang halagang ito ay pinapakain sa parallel sa motor control pair. 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 tumatakbo sa parehong kapangyarihan ng 50, at ang robot ay gumulong sa isang tuwid na linya.

Ipagpalagay na ang track ay lumiko o ang robot ay lumihis mula sa 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, dahil ito ay gumagalaw sa isang puting field, at ang pag-iilaw ng sensor 3 ay bumababa. Ipagpalagay 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 isumite ito sa bloke ng pagwawasto (pagpaparami ng isang kadahilanan (10 * 2.5 = 25)) at pagkatapos ay sa mga control unit
mga motor.
Sa bloke ng matematika (Addition) kontrol ng motor B sa halaga ng average na bilis 50
25 ay idaragdag at ang power value na 75 ay ibibigay sa motor B.
Sa math block (Subtraction) ng motor C control, ang 25 ay ibabawas mula sa average na speed value na 50 at ang power value na 25 ay ibibigay sa motor C.
Kaya, ang paglihis mula sa tuwid na linya ay itatama.

Kung ang track ay lumiko nang husto sa gilid at ang sensor 2 ay nasa puti, at ang sensor 3 ay nasa itim. Ang mga halaga ng pag-iilaw ng mga sensor na ito ay nagiging: sensor 2 - 70 unit, at sensor 3 - 50 unit.
Ang bloke na "Pagbabawas" ay tutukuyin ang pagkakaiba sa pagitan ng mga halaga ng dalawang sensor (20) at isumite ito sa bloke ng pagwawasto (20 * 2.5 = 50) at pagkatapos ay sa mga yunit ng kontrol ng motor.
Ngayon, sa mathematics block (Addition) ng motor B control, ang power value na 50 +50 = 100 ay ipapakain sa motor B.
Sa mathematics block (Subtraction) ng motor C control, ang power value na 50 - 50 = 0 ay ipapakain 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 itugma ang mga sensor na may parehong mga halaga.

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

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

Mayroon na kaming block na magagamit sa mga kaso kung saan kailangan namin ng paggalaw ng linya.

Ang teksto ng trabaho ay inilalagay nang walang mga imahe at mga formula.
Available ang buong bersyon ng trabaho sa tab na "Mga file sa trabaho" sa format na PDF

Set ng konstruksiyon ng Lego Mindstorms EV3

Yugto ng paghahanda

Paglikha at pag-calibrate ng isang programa

Konklusyon

Panitikan

1. Panimula.

Ang robotics ay isa sa mga pinakamahalagang lugar ng pag-unlad ng siyensya at teknolohikal, kung saan ang mga problema ng mekanika at mga bagong teknolohiya ay nakikipag-ugnay sa mga problema ng artipisyal na katalinuhan.

Sa nakalipas na mga taon, ang mga pag-unlad sa robotics at mga automated na sistema ay nagbago sa personal at negosyo na mga lugar ng ating buhay. Ang mga robot ay malawakang ginagamit sa transportasyon, sa Earth at paggalugad sa kalawakan, sa operasyon, sa industriya ng militar, sa pananaliksik sa laboratoryo, sa larangan ng seguridad, sa mass production ng mga pang-industriya na kalakal at mga consumer goods. 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 nito, halimbawa, mga elevator, kung wala ito ay hindi na maiisip ang ating buhay.

Iniimbitahan tayo ng Mindstorms EV3 Constructor na pasukin ang kaakit-akit na mundo ng mga robot, sumabak sa masalimuot na kapaligiran ng teknolohiya ng impormasyon.

Layunin: Matutong magprogram ng paggalaw ng robot sa isang tuwid na linya.

    Kilalanin ang Mindstorms EV3 constructor at ang programming environment nito.

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

    Mindstorms EV3 Constructor.

Mga bahagi ng construction set - 601 pcs., Servo motor - 3 pcs., Color sensor, touch motion sensor, infrared sensor at touch sensor. Ang EV3 microprocessor block ay ang utak ng LEGO Mindstorms constructor.

Ang isang malaking servo motor ay may pananagutan para sa paggalaw ng robot, na konektado sa EV3 microcomputer at ginagawang gumalaw ang robot: pasulong at paatras, lumiko at magmaneho sa isang partikular na tilapon. Ang servo motor na ito ay may built-in na rotation sensor, na nagbibigay-daan sa napaka-tumpak na kontrol sa paggalaw ng robot at sa bilis nito.

Magagamit mo ang EV3 computer software para gawin ang iyong robot ng isang aksyon. Ang programa ay binubuo ng iba't ibang mga control unit. Makikipagtulungan kami sa isang motion block.

Kinokontrol ng bloke ng paggalaw ang mga motor ng robot, i-on ito, i-off ito, ginagawa itong gumagana ayon sa mga gawain. Maaari mong i-program ang kilusan para sa isang tiyak na bilang ng mga rebolusyon, o degree.

    Yugto ng paghahanda.

    Paglikha ng isang teknikal na larangan.

Sa larangan ng trabaho ng robot, maglalapat kami ng pagmamarka, gamit ang electrical tape at isang ruler, lumikha ng tatlong linya na 30 cm ang haba - isang berdeng linya, 1 m 15 cm - isang pulang linya at 2 m 17 cm - isang itim na linya .

    Mga kinakailangang kalkulasyon:

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

Ang isang rebolusyon ng gulong ng robot ay katumbas ng circumference na may diameter na 5.7 cm. Ang circumference ay matatagpuan sa pamamagitan ng 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. 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 ayon sa sumusunod na algorithm:

Algorithm:

    Pumili ng motion block sa Mindstorms EV3 software.

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

    Maghintay para sa pagbabago sa halaga ng sensor ng pag-ikot ng isa sa mga motor sa tinukoy na halaga.

    Patayin ang mga motor.

Nilo-load namin ang natapos na programa sa control unit ng robot. Inilagay namin ang robot sa field at pindutin ang start button. Ang EV3 ay nagmamaneho sa buong field at humihinto sa dulo ng nakatakdang linya. Ngunit upang makamit ang isang tumpak na pagtatapos, kinakailangan upang i-calibrate, dahil ang mga panlabas na kadahilanan ay nakakaimpluwensya sa paggalaw.

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

    Ang ibabaw ng field ay makinis, samakatuwid, ang mahinang pagdirikit ng mga gulong ng robot sa field ay posible.

    Sa pagkalkula ng bilang ng mga rebolusyon, kinailangan naming i-round off ang mga numero, at samakatuwid, sa pamamagitan ng pagpapalit ng sandaang bahagi ng mga rebolusyon, nakamit namin ang kinakailangang resulta.

5. Konklusyon.

Ang pag-aaral kung paano i-program ang robot upang lumipat sa isang tuwid na linya ay magiging kapaki-pakinabang para sa paglikha ng mas kumplikadong mga programa. Bilang isang tuntunin, ang lahat ng laki ng paggalaw ay ipinahiwatig sa mga tuntunin ng sanggunian para sa mga kumpetisyon sa robotics. Kinakailangan ang mga ito upang ang programa ay hindi ma-overload ng mga kondisyon ng lohika, mga cycle at iba pang kumplikadong mga bloke ng kontrol.

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

Napaka-interesante na magtrabaho kasama ang tagabuo. 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.

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

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

    Mga mapagkukunan ng 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 sumusunod sa 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 nagsisimulang lumipat nang mas malalim sa mga itim na linya - itinuwid ito ng regulator pabalik.
Sa kabila ng katotohanan na ang larawan sa itaas ay para sa isang relay controller, ang pangkalahatang prinsipyo ng paggalaw ng proporsyonal (P-controller) 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 dahil sa isang bahagyang komplikasyon ng algorithm: sa isang kaso, ginamit ang "malambot" na pagpepreno, sa kabilang banda, bilang karagdagan sa mga pagliko. , ipinakilala ang pasulong na paggalaw.
Upang payagan ang robot na sumulong sa ilang mga lugar, ang isang makitid na lugar ay inilaan sa hanay ng mga halaga na ibinigay ng light sensor, na maaaring tawaging tradisyonal na "ang sensor ay nasa hangganan ng linya".
Ang diskarte na ito ay may isang maliit na disbentaha - kung ang robot ay "sumusunod" sa kaliwang hangganan ng linya, pagkatapos ay sa kanan ay lumiliko 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, ligtas na sabihin na ang mas matarik na pagliko, mas matagal ang paghahanap na ito.
Ang susunod na figure ay nagpapakita na kung ang sensor ay wala sa kaliwang bahagi ng hangganan, ngunit sa kanan, pagkatapos 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.
Ang susunod na hakbang ay upang matukoy kung paano makakaapekto ang pagbabago sa disenyo na ito sa programa. Para sa pagiging simple, dapat kang magsimula muli sa pinakasimpleng controller ng relay at samakatuwid, una sa lahat, interesado ka sa mga posibleng posisyon ng mga sensor na nauugnay sa linya:

Sa katunayan, ang isa pang pinahihintulutang estado ay maaaring makilala - sa mahirap na mga ruta ito ay magiging intersection ng isang intersection o ilang uri ng pampalapot sa daan.
Ang iba pang mga posisyon ng mga sensor ay hindi isasaalang-alang, dahil sila ay nagmula sa mga ipinapakita sa itaas, o ito ang mga posisyon ng robot kapag umalis ito 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 klasipikasyon:
  • ang kaliwang sensor, pati na rin ang kanan - sa itaas ng liwanag na ibabaw
  • kaliwang sensor sa itaas ng liwanag na ibabaw, kanang sensor sa itaas ng madilim
  • kaliwang sensor sa itaas ng madilim na ibabaw, kanang sensor sa itaas ng liwanag
  • ang parehong mga sensor ay matatagpuan sa itaas ng isang madilim na ibabaw
Kung sa isang tiyak na sandali 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 na ibabaw, pagkatapos ay itinulak ng robot ang kanang bahagi nito papunta sa linya. at nangangahulugan iyon na kailangan niyang lumiko sa kanan upang muli ang linya sa pagitan ng mga sensor. Kung ang kaliwang sensor ay nasa itaas ng madilim na ibabaw, at ang kanan ay nasa itaas pa rin ng ilaw, pagkatapos ay upang ihanay ang robot ay kailangang lumiko pakaliwa. Kung ang parehong mga sensor ay nasa itaas ng madilim na ibabaw, sa pangkalahatan, ang robot ay muling patuloy na gumagalaw nang diretso.

Ang diagram sa itaas ay agad na nagpapakita kung paano eksaktong magbago ang pag-uugali ng mga motor sa programa. Ngayon, ang pagsulat ng programa ay hindi dapat maging mahirap. Dapat kang magsimula sa pamamagitan ng pagpili kung aling sensor ang unang susuriin. Hindi naman talaga mahalaga, kaya itago natin ito sa kaliwa. Ito ay kinakailangan upang matukoy kung ito ay nasa itaas ng isang liwanag o sa itaas ng isang 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 mababang isa. Ang bawat isa sa mga pangkat 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", ang tuktok - "kaliwa sa liwanag, kanan sa madilim":
Ang mas mababang sangay ng pangunahing kondisyon ay responsable para sa isa pang pangkat ng mga estado III at IV. Magkaiba rin ang dalawang kundisyong ito sa isa't isa sa antas ng pag-iilaw na nakukuha ng tamang sensor. Samakatuwid, 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 sa ibaba - para sa "parehong mga sensor sa madilim".
Dapat pansinin na ang disenyo na ito ay tumutukoy lamang kung paano i-on ang mga motor depende sa mga pagbabasa ng mga sensor sa isang tiyak na lugar sa field, natural pagkatapos ng ilang sandali ang programa ay dapat suriin kung ang mga pagbabasa ay nagbago upang itama ang pag-uugali ng ang mga motor, at pagkaraan ng ilang sandali ay muli, muli, at iba pa. .d. Samakatuwid, dapat itong ilagay sa isang loop na magbibigay ng iterative check na ito:

Ang ganitong medyo simpleng programa ay magbibigay ng medyo mataas na bilis ng paggalaw ng robot sa linya nang hindi lumilipad sa labas ng mga limitasyon nito, kung tama mong itinakda ang maximum na bilis kapag nagmamaneho sa mga estado I at IV, at itinakda din ang pinakamainam na paraan ng pagpepreno sa states II at III - mas matarik ang mga pagliko sa track , ang "mas mahirap" ang pagpepreno ay dapat - ang bilis ay dapat bumaba nang mas mabilis, at vice versa - na may makinis na mga pagliko ay lubos na posible na ilapat ang pagpepreno sa pamamagitan ng power off o kahit na sa pangkalahatan sa pamamagitan ng isang bahagyang pagbaba sa bilis.

Ang ilang hiwalay na salita ay dapat ding sabihin tungkol sa paglalagay ng mga sensor sa robot. Malinaw, para sa lokasyon ng dalawang sensor na ito na nauugnay sa mga gulong, ang parehong mga rekomendasyon ay ilalapat tulad ng para sa isang sensor, para lamang sa tuktok ng tatsulok, sa kasong ito, ang gitna ng segment na nagkokonekta sa dalawang sensor ay kinuha. Ang parehong distansya sa pagitan ng mga sensor ay dapat ding mapili mula sa mga katangian ng track: mas malapit ang mga sensor ay matatagpuan sa isa't isa, mas madalas na ang robot ay mag-align (gumanap ng medyo mabagal na pagliko), ngunit kung ang mga sensor ay kumakalat nang malawak. , may panganib na lumipad palabas ng track, kaya kailangan mong magsagawa ng mas mahigpit na pagliko at mas mabagal na bilis ng paglalakbay sa mga tuwid na seksyon.



 


Basahin:



Pagsusuri ng Nikon D5500

Pagsusuri ng Nikon D5500

Hoy! Ito ang huling bahagi ng pagsusuri ng bagong Nikon D5500 DSLR camera, na isinasagawa namin sa format na "Isang linggo kasama ang isang eksperto". Ngayong araw sa...

Ballroom Dance Skirts DIY Ballroom Dance Skirt

Ballroom Dance Skirts DIY Ballroom Dance Skirt

Kapag nagsimulang sumayaw ang isang batang babae, mahalaga para sa mga magulang na pumili ng palda ng sayaw. Ang parehong mga modelo ay hindi maaaring ilapat sa iba't ibang ...

Paano pumili ng isang smartphone na may pinakamahusay na camera Rating ng mga smartphone na may pinakamahusay na camera blind test

Paano pumili ng isang smartphone na may pinakamahusay na camera Rating ng mga smartphone na may pinakamahusay na camera blind test

Ang DxOMark studio ay nagsasagawa ng isang detalyadong pagsusuri sa kalidad ng mga larawang kinunan sa iba't ibang mga smartphone. Ang ilan ay inaakusahan siya ng bias, ngunit sa ...

Ano ang ginawa ng mga Nazi sa kampong piitan ng Stutthof

Ano ang ginawa ng mga Nazi sa kampong piitan ng Stutthof

Walang tao sa mundo ngayon ang hindi nakakaalam kung ano ang kampo ng konsentrasyon. Sa panahon ng Ikalawang Digmaang Pandaigdig, ang mga institusyong ito, na nilikha para sa ...

feed-image Rss