{"id":1631,"date":"2023-02-04T11:31:35","date_gmt":"2023-02-04T08:31:35","guid":{"rendered":"https:\/\/www.aydiner.gen.tr\/?p=1631"},"modified":"2023-02-04T11:52:40","modified_gmt":"2023-02-04T08:52:40","slug":"cizgi-izleyen-robotlar","status":"publish","type":"post","link":"https:\/\/www.aydiner.gen.tr\/index.php\/2023\/02\/04\/cizgi-izleyen-robotlar\/","title":{"rendered":"\u00c7izgi izleyen robotlar"},"content":{"rendered":"<p><a href=\"https:\/\/www.aydiner.gen.tr\/wp-content\/uploads\/2023\/02\/2e9772e3-12b5-48c3-890e-0e7efd10225f.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1632\" src=\"https:\/\/www.aydiner.gen.tr\/wp-content\/uploads\/2023\/02\/2e9772e3-12b5-48c3-890e-0e7efd10225f-300x169.jpg\" alt=\"\" width=\"300\" height=\"169\" srcset=\"https:\/\/www.aydiner.gen.tr\/wp-content\/uploads\/2023\/02\/2e9772e3-12b5-48c3-890e-0e7efd10225f-300x169.jpg 300w, https:\/\/www.aydiner.gen.tr\/wp-content\/uploads\/2023\/02\/2e9772e3-12b5-48c3-890e-0e7efd10225f-1024x576.jpg 1024w, https:\/\/www.aydiner.gen.tr\/wp-content\/uploads\/2023\/02\/2e9772e3-12b5-48c3-890e-0e7efd10225f-768x432.jpg 768w, https:\/\/www.aydiner.gen.tr\/wp-content\/uploads\/2023\/02\/2e9772e3-12b5-48c3-890e-0e7efd10225f-1536x864.jpg 1536w, https:\/\/www.aydiner.gen.tr\/wp-content\/uploads\/2023\/02\/2e9772e3-12b5-48c3-890e-0e7efd10225f.jpg 1599w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u00c7izgi izleyen robotlar, belirli bir \u00e7izgi \u00fczerinde hareket eden ve bu \u00e7izgiyi takip eden robotlard\u0131r. Bunlar genellikle optik sens\u00f6rler veya kamera gibi sens\u00f6rler kullanarak \u00e7izginin pozisyonunu alg\u0131lar ve bu bilgiye g\u00f6re hareket ederler. Bu robotlar genellikle kalibrasyon, h\u0131z ve yol takibi gibi konularda programlanabilirler ve end\u00fcstriyel otomasyon, e\u011fitim veya e\u011flence ama\u00e7l\u0131 kullan\u0131labilirler.<\/p>\n<p>Arduino, \u00e7izgi izleyen robotlar\u0131n yap\u0131m\u0131 i\u00e7in pop\u00fcler bir platformdur. Arduino, kolayca kullan\u0131labilen bir kodlama dili ve uygun fiyatl\u0131 bir donan\u0131m platformu sunmas\u0131 nedeniyle, \u00f6\u011frenciler ve hobbyistler taraf\u0131ndan s\u0131kl\u0131kla kullan\u0131l\u0131r. \u00c7izgi izleyen robotlar\u0131n yap\u0131m\u0131 i\u00e7in optik sens\u00f6rler, fotoresist\u00f6rler veya IR sens\u00f6rler kullan\u0131labilir ve bunlar Arduino \u00fczerinde programlanarak \u00e7izginin takibini sa\u011flayabilir.<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\nconst int leftSensor = A0;\r\nconst int rightSensor = A1;\r\nconst int leftMotor = 3;\r\nconst int rightMotor = 4;\r\n\r\nvoid setup() {\r\npinMode(leftSensor, INPUT);\r\npinMode(rightSensor, INPUT);\r\npinMode(leftMotor, OUTPUT);\r\npinMode(rightMotor, OUTPUT);\r\n}\r\n\r\nvoid loop() {\r\nint leftValue = analogRead(leftSensor);\r\nint rightValue = analogRead(rightSensor);\r\n\r\nif (leftValue &amp;gt; rightValue) {\r\ndigitalWrite(leftMotor, HIGH);\r\ndigitalWrite(rightMotor, LOW);\r\n} else {\r\ndigitalWrite(leftMotor, LOW);\r\ndigitalWrite(rightMotor, HIGH);\r\n}\r\n}\r\n\r\n<\/pre>\n<p>Bu kod, iki fotoresist\u00f6r kullanarak \u00e7izginin pozisyonunu okur ve bu pozisyona g\u00f6re iki motorun a\u00e7\u0131p kapatmas\u0131n\u0131 sa\u011flar. E\u011fer sol sens\u00f6r\u00fcn okuma de\u011feri sa\u011f sens\u00f6r\u00fcn okuma de\u011ferinden daha y\u00fcksekse, sol motor a\u00e7\u0131k ve sa\u011f motor kapal\u0131 kal\u0131r, aksi takdirde sa\u011f motor a\u00e7\u0131k ve sol motor kapal\u0131 kal\u0131r. Ancak, bu kod sadece bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r ve kullan\u0131lan sens\u00f6rler, motorlar ve di\u011fer elemanlar gibi fakt\u00f6rlere g\u00f6re de\u011fi\u015febilir.<\/p>\n<p>Ayr\u0131ca;<\/p>\n<p><a href=\"https:\/\/www.aydiner.gen.tr\/wp-content\/uploads\/2023\/02\/8a.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1637\" src=\"https:\/\/www.aydiner.gen.tr\/wp-content\/uploads\/2023\/02\/8a-300x124.jpg\" alt=\"\" width=\"300\" height=\"124\" srcset=\"https:\/\/www.aydiner.gen.tr\/wp-content\/uploads\/2023\/02\/8a-300x124.jpg 300w, https:\/\/www.aydiner.gen.tr\/wp-content\/uploads\/2023\/02\/8a-768x317.jpg 768w, https:\/\/www.aydiner.gen.tr\/wp-content\/uploads\/2023\/02\/8a.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Pololu QTR-8A, bir IR sens\u00f6r mod\u00fcl\u00fcd\u00fcr ve \u00e7izgi izleyen robotlar i\u00e7in kullan\u0131labilir. Bu sens\u00f6r, 8 adet IR verici ve al\u0131c\u0131 d\u00fczeni ile tasarland\u0131 ve \u00e7izginin pozisyonunu okumak i\u00e7in kullan\u0131labilir. Sens\u00f6r, bir IR verici taraf\u0131ndan yay\u0131lan IR \u0131\u015f\u0131\u011f\u0131n\u0131 al\u0131c\u0131 taraf\u0131ndan alg\u0131lanmas\u0131na dayan\u0131r ve bu alg\u0131lanma de\u011ferlerine g\u00f6re \u00e7izginin pozisyonunu hesaplar. Pololu QTR-8A, kolayca kullan\u0131labilir ve ba\u015fka bir devre gerekmeden direk olarak Arduinoya ba\u011flanabilir. Ayr\u0131ca, sens\u00f6r\u00fcn hassasiyeti ve do\u011frulu\u011fu i\u00e7in kalibrasyon i\u015flemi yap\u0131labilir.<\/p>\n<p>Pololu QTR-8A ve Arduino ile \u00e7izgi izleyen bir robot yapmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar takip edilmelidir:<\/p>\n<p>Malzemelerin toplanmas\u0131: Pololu QTR-8A sens\u00f6r, Arduino plakas\u0131, DC motorlar, motor s\u00fcr\u00fcc\u00fc devresi, hari\u00e7\/i\u00e7 pil ve ba\u011flant\u0131 kablolar\u0131 gerekli malzemelerdir.<\/p>\n<p>Sens\u00f6r\u00fcn ba\u011flanmas\u0131: Pololu QTR-8A sens\u00f6r\u00fc, Arduinonun analog giri\u015f pini olan A0-A7 pini ile ba\u011flan\u0131r. Ba\u011flant\u0131 \u015femas\u0131 Pololu&#8217;nun web sitesinde bulunabilir.<\/p>\n<p>Motorlar\u0131n ba\u011flanmas\u0131: DC motorlar, motor s\u00fcr\u00fcc\u00fc devresi yard\u0131m\u0131 ile Arduinoya ba\u011flan\u0131r. Motor s\u00fcr\u00fcc\u00fc devresi, motorlar\u0131n h\u0131z\u0131n\u0131 ve y\u00f6n\u00fcn\u00fc kontrol etmek i\u00e7in gereklidir.<\/p>\n<p>Kodun yaz\u0131lmas\u0131: \u00c7izgi izleyen bir robot yapmak i\u00e7in gereken kod, Pololu QTR-8A sens\u00f6r verilerini okuyarak \u00e7izginin pozisyonunu hesaplamak ve bunu motorlar\u0131n h\u0131z\u0131 ve y\u00f6n\u00fcne uygulamak i\u00e7in yaz\u0131l\u0131r.<\/p>\n<p>Test etme: Kod yaz\u0131ld\u0131ktan sonra, robotun do\u011fru bir \u015fekilde \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131 test edilir.<\/p>\n<p>Bu ad\u0131mlar genel olarak \u00e7izgi izleyen bir robot yapmak i\u00e7in nas\u0131l yap\u0131laca\u011f\u0131n\u0131 g\u00f6sterir. Ancak, detayl\u0131 bilgi ve \u00f6rnek kodlar i\u00e7in Pololu&#8217;nun web sitesi veya ba\u015fka kaynaklar incelenebilir.<\/p>\n<p>A\u015fa\u011f\u0131daki kod, Pololu QTR-8A sens\u00f6r\u00fc ve Arduino ile \u00e7izgi izleyen bir robot yapmak i\u00e7in \u00f6rnek bir koddur:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\r\n#include &lt;QTRSensors.h&gt;\r\n\r\n\/\/ Sens\u00f6r pin tan\u0131mlar\u0131\r\n#define NUM_SENSORS 8\r\n#define NUM_LEDS 8\r\n#define QTR_EMITTERS_ON 1\r\n#define QTR_EMITTERS_OFF 0\r\n#define TIMEOUT 2500\r\n#define EMITTER_PIN QTR_NO_EMITTER_PIN\r\n\r\nQTRSensorsAnalog qtr((unsigned char&#x5B;]) {0, 1, 2, 3, 4, 5, 6, 7},\r\nNUM_SENSORS, TIMEOUT, EMITTER_PIN);\r\nunsigned int sensorValues&#x5B;NUM_SENSORS];\r\n\r\nvoid setup()\r\n{\r\n\/\/ Sens\u00f6r kalibrasyon\r\nqtr.calibrate();\r\nSerial.begin(9600);\r\n}\r\n\r\nvoid loop()\r\n{\r\n\/\/ Sens\u00f6r verilerini oku\r\nunsigned int sensors&#x5B;NUM_SENSORS];\r\nqtr.read(sensors);\r\n\r\n\/\/ En sol ve en sa\u011f sens\u00f6r verilerini kullanarak \u00e7izginin pozisyonunu hesapla\r\nint position = qtr.readLine(sensorValues);\r\n\r\n\/\/ \u00c7izginin pozisyonuna g\u00f6re motorlar\u0131n h\u0131z\u0131n\u0131 ve y\u00f6n\u00fcn\u00fc ayarla\r\nif (position &lt; 0) {\r\n\/\/ \u00c7izgi sa\u011f taraf\u0131nda\r\n\/\/ Motorlar\u0131n h\u0131z\u0131n\u0131 ve y\u00f6n\u00fcn\u00fc ayarla\r\n}\r\nelse if (position &gt; 0) {\r\n\/\/ \u00c7izgi sol taraf\u0131nda\r\n\/\/ Motorlar\u0131n h\u0131z\u0131n\u0131 ve y\u00f6n\u00fcn\u00fc ayarla\r\n}\r\nelse {\r\n\/\/ \u00c7izginin ortas\u0131nda\r\n\/\/ Motorlar\u0131n h\u0131z\u0131n\u0131 ve y\u00f6n\u00fcn\u00fc ayarla\r\n}\r\n\r\n\/\/ Verileri seri porttan g\u00f6r\u00fcnt\u00fcle\r\nfor (int i = 0; i &lt; NUM_SENSORS; i++) {\r\nSerial.print(sensorValues&#x5B;i]);\r\nSerial.print(&quot;\\t&quot;);\r\n}\r\nSerial.println();\r\ndelay(100);\r\n}\r\n\r\n<\/pre>\n<p>Bu kod, Pololu QTR-8A sens\u00f6r\u00fcnden \u00e7izginin pozisyonunu okuyarak motorlar\u0131n h\u0131z\u0131n\u0131 ve y\u00f6n\u00fcn\u00fc ayarlar. Sens\u00f6r verileri serial porttan g\u00f6r\u00fcnt\u00fclenir. Kod, sens\u00f6r kalibrasyonu, \u00e7izginin pozisyonunun okunmas\u0131 ve motorlar\u0131n h\u0131z\u0131n\u0131 ve y\u00f6n\u00fcn\u00fcn ayarlanmas\u0131 gibi temel i\u015flevleri i\u00e7erir ve \u00e7izgi izleyen bir robot yapmak i\u00e7in g\u00fcncellenebilir ve geli\u015ftirilebilir.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>cizgi-izleyen-robotlar meb \u00e7izgi izleyen robot yar\u0131\u015fmas\u0131 \u00e7izgi izleyen robot nedir? \u00e7izgi izleyen robot yap\u0131m\u0131 <\/p>\n","protected":false},"author":1,"featured_media":1632,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[123,124,121,122],"class_list":["post-1631","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-genel","tag-cizgi-izleyen-robot-nedir","tag-cizgi-izleyen-robot-yapimi","tag-cizgi-izleyen-robotlar","tag-meb-cizgi-izleyen-robot-yarismasi"],"_links":{"self":[{"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/posts\/1631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/comments?post=1631"}],"version-history":[{"count":0,"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/posts\/1631\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/media\/1632"}],"wp:attachment":[{"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/media?parent=1631"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/categories?post=1631"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/tags?post=1631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}