{"id":2074,"date":"2021-04-11T16:01:49","date_gmt":"2021-04-11T13:01:49","guid":{"rendered":"https:\/\/www.mikrobotik.com\/wp2\/?p=2074"},"modified":"2021-08-20T20:54:52","modified_gmt":"2021-08-20T17:54:52","slug":"processing_arduino_webcam_renk_ayirma","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2021\/04\/11\/processing_arduino_webcam_renk_ayirma\/","title":{"rendered":"Processing+Arduino+Webcam ile renk tan\u0131ma ve ay\u0131rma"},"content":{"rendered":"<p style=\"text-align: center;\"><strong>Processing+Arduino+WEBCAM ile g\u00f6r\u00fcnt\u00fc renk ayr\u0131m\u0131.<\/strong><\/p>\n<p>Bu proje ilk \u00f6nce \u015feffaf s\u0131v\u0131larda kamera ile i\u00e7erisindeki kirlilik tespit edilebilir mi? diye ba\u015flad\u0131. \u00d6ncelikle programlar aras\u0131ndaki <span style=\"color: #ff6600;\">kir_bul_bardakta.pde<\/span> bu ama\u00e7la yap\u0131ld\u0131. (Program\u0131n temeli ise <a href=\"https:\/\/engineeringvolkan.wordpress.com\/2015\/03\/12\/processing-girilen-renk-degerine-gore-obje-takibi\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Volkan beyin sitesinden al\u0131nd\u0131.<\/strong><\/a> ) . Sonras\u0131nda ihtiya\u00e7lar\u0131m do\u011frultusunda geli\u015ftirdim.<\/p>\n<p>Dedi\u011fim gibi s\u0131v\u0131 kirlili\u011fine bakarken, akl\u0131ma RGB sens\u00f6r ile yap\u0131lan projeler geldi. Sensorun g\u00f6r\u00fc\u015f mesafesinin k\u0131sa olmas\u0131 ve pahal\u0131 olmas\u0131 acaba kamera ile renk tespiti yapabilir miyim sorusunu akla getirdi.<\/p>\n<p><span style=\"color: #ff6600;\">Elbette yap\u0131labilirdi. Hem de uzak mesafeden ve \u00e7oklu \u00e7al\u0131\u015fma da yap\u0131labilirdi.<\/span><\/p>\n<p>Bu \u015fekilde \u00e7al\u0131\u015fmaya ba\u015flad\u0131m. Elimde sadece renk ayar\u0131 yap\u0131ld\u0131\u011f\u0131nda yakalay\u0131p \u00fczerine bir \u015fekil \u00e7izen program var. Bu program\u0131 devaml\u0131 de\u011fi\u015fen \u015fartlara g\u00f6re anl\u0131k de\u011fi\u015ftirmem gerekiyordu.<br \/>\nO zaman i\u00e7eriden yap\u0131lan t\u00fcm kontrollerin, buton, slider, drop down men\u00fc( A\u00e7\u0131labilir men\u00fc) gibi kamera ekran\u0131n\u0131n d\u0131\u015f\u0131nda olup ayarlanmas\u0131 gerekiyordu.<\/p>\n<p>Processing birden fazla ekran\u0131 desteklese bile, tek ekranda yapmam da m\u00fcmk\u00fcn oldu.<\/p>\n<p>Ekran 600&#215;600 piksel olarak ayarland\u0131. Kamera ise biz de\u011fi\u015ftirmedikten sonra 500&#215;500 gibi bir ekranda \u00e7al\u0131\u015f\u0131yordu. Kalan k\u0131sma ise bu ara\u00e7lar eklendi.<br \/>\nArt\u0131k bu gelen bilginin i\u015flenmesi gerekiyordu. Arduino ile haberle\u015ftirmem gerekiyordu. Arduino donan\u0131msal seri k\u0131sm\u0131nda seri monit\u00f6r kulland\u0131\u011f\u0131ndan, softserial k\u0131sm\u0131n\u0131 PC ile haberle\u015fme k\u0131sm\u0131na ay\u0131rd\u0131m. Bu \u015fekilde PC ile haberle\u015fecek ve gelen giden bilgileri seri monit\u00f6rden takip edecektim.<br \/>\nSoftserial k\u0131sm\u0131n\u0131 PC ile haberle\u015ftirmek i\u00e7in FT232RL USB seri \u00e7evirici kulland\u0131m. Bu \u015fekilde gelen bilgiyi ve giden bilgiyi de donan\u0131msal seri vas\u0131tas\u0131yla seri monit\u00f6rden izledim. ( Sizler bu izlemeyi yapmayacaksan\u0131z softserial yerine donan\u0131msal seri portu kullanarak daha y\u00fcksek h\u0131zlarda seri haberle\u015fme yapabilirsiniz. Gelen giden bilgileri processing ekran\u0131ndan da takip edebilirsiniz. )<\/p>\n<p>Arduino, a\u015fa\u011f\u0131daki bilgiyi ald\u0131\u011f\u0131nda Bunlar\u0131<span style=\"color: #ff6600;\"> index of<\/span> ve <span style=\"color: #ff6600;\">sub string<\/span> komutuyla <strong><span style=\"color: #ff0000;\">,<\/span> ve <span style=\"color: #ff0000;\">\u2013<\/span><\/strong> i\u015faretlerine g\u00f6re b\u00f6ler. B\u00f6l\u00fcnen de\u011ferler hala <strong>String<\/strong> \u015feklindedir. \u0130\u015flem yap\u0131labilmesi i\u00e7in<span style=\"color: #ff6600;\"> <strong>int<\/strong><\/span> de\u011fere \u00e7evrilmelidir. Bunun i\u00e7in de <span style=\"color: #ff6600;\">String to int<\/span> komutu vard\u0131r. Program i\u00e7erisinde bu ay\u0131rma i\u015flemini g\u00f6rebilirsiniz.<\/p>\n<p>OK<br \/>\n217,70,83,<strong>319<\/strong>,277-<\/p>\n<p>OK<br \/>\n211,70,102,<strong>186<\/strong>,269-<\/p>\n<p><strong>Bu bilgiler neyi g\u00f6steriyor :<\/strong><br \/>\n<span style=\"color: #ff6600;\">217,70,83,319,277-<\/span> \u00a0\u00a0\u00a0K\u0131rm\u0131z\u0131,ye\u015fil,mavi, Koordinat X, koordinat Y<\/p>\n<p>Nas\u0131l kulland\u0131m. Renk de\u011ferlerini programda kullanmad\u0131m. Fakat ilerleyen zamanlarda kullan\u0131labilme olas\u0131l\u0131\u011f\u0131 y\u00fcksektir. Mesela renklere biraz tolerans vererek do\u011fru rengin alg\u0131land\u0131\u011f\u0131n\u0131 tespit edebilirim. Processing her ne kadar ay\u0131r\u0131yor olsa da geni\u015f bir tolerans aral\u0131\u011f\u0131nda ay\u0131r\u0131yor. Arduino ise mesela 150-170 aras\u0131 k\u0131rm\u0131z\u0131 de\u011fer varsa bunu i\u015fleme koy ya da kullanma gibi bir kar\u015f\u0131la\u015ft\u0131rma yapabilir.<\/p>\n<p>Ben ise bu arduino program\u0131nda renk k\u0131sm\u0131n\u0131 kullanmad\u0131m. Nas\u0131l olsa do\u011fru bilgi gelmi\u015ftir diyerek sadece X ve Y koordinatlar\u0131n\u0131 kulland\u0131m. Yani renk se\u00e7imini processing yap\u0131yor, malzemenin ay\u0131klanma i\u015fini ise Arduino yapacakt\u0131.<br \/>\nBaz\u0131 projelerde (<span style=\"color: #ff6600;\">RGB sens\u00f6rl\u00fc<\/span>) mekanizma yapm\u0131\u015flar. Bilya veya k\u00fcpler teker teker sens\u00f6r k\u0131sm\u0131na geliyor do\u011fru kutulara g\u00f6nderilmesi sa\u011flan\u0131yor. Ben mekanizma yapmad\u0131m ama temsili olarak koordinatlara kadar giden servo motor kullan\u0131m\u0131ndan faydaland\u0131m.<\/p>\n<p><span style=\"color: #ff6600;\">Servo motor kullan\u0131m\u0131 k\u00fct\u00fcphanesiz olarak yap\u0131ld\u0131.<\/span> <a href=\"https:\/\/www.mikrobotik.com\/wp2\/2019\/03\/06\/kutuphanesiz-servo-motor-kullan\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Bu konudaki yaz\u0131m buradad\u0131r.<\/strong><\/a><\/p>\n<p>Servo orta noktada dururken malzemenin hangi koordinatta oldu\u011fu bilgisi geldi\u011finde o koordinata\u00a0 do\u011fru hamle yapar.<strong> Bu standart bir hamle de\u011fildir.<\/strong> Servo kolunun sa\u011f\u0131nda bir cisim varsa sa\u011fa do\u011fru, \u015fayet solunda bir cisim gelmi\u015fse bunun i\u00e7in sola do\u011fru hamle yapar. Bir de bunun yan\u0131 s\u0131ra cisim orta noktadan ne kadar uzaktaysa kol o kadar a\u00e7\u0131ya g\u00f6re gider. Bundan dolay\u0131 hem zaman kayb\u0131 \u00f6nlenmi\u015f olur hem de birden fazla olabilecek kollar\u0131n birbirine \u00e7arpmamas\u0131 sa\u011flanm\u0131\u015f olabilir.<\/p>\n<p>Tabii ki bu tip projeleri, <strong>RGB sens\u00f6r<\/strong> ile yapan ki\u015filer, sens\u00f6r pahal\u0131 oldu\u011fu i\u00e7in tek bir kontrol yapabiliyorlar. Fakat kamerada birden fazla g\u00f6r\u00fcnt\u00fc i\u015flemek m\u00fcmk\u00fcn oldu\u011fundan, d\u00fc\u015f\u00fcncenize g\u00f6re 3-4 cisim ayn\u0131 anda i\u015fleme konabilir. Bu da \u00e7oklu \u00e7al\u0131\u015fmay\u0131 sa\u011flayacakt\u0131r.<br \/>\n<span style=\"color: #ff6600;\">Bu \u00e7oklu \u00e7al\u0131\u015fma nas\u0131l m\u00fcmk\u00fcn olur.<\/span> Processing program\u0131nda kamera ekran\u0131nda g\u00f6r\u00fcnmez bir i\u015faretleme alan\u0131 olu\u015fturulur. Bu \u00e7izerek de\u011fil tabii ki. \u0130F komutuyla kar\u015f\u0131la\u015ft\u0131rma yaparak, i\u015faretleme alan\u0131nda olan t\u00fcm cisimler i\u00e7in koordinat belirlenir ve bu koordinat seri port ile arduinoya iletilir. Bundan dolay\u0131 birden fazla g\u00f6r\u00fcnmez alan olu\u015fturularak koordinatlar belirlenir ve arduinoya g\u00f6nderilir. <span style=\"color: #ff6600;\">Mesela g\u00f6nderirken<\/span><br \/>\n1. B\u00f6lge X,Y \u2013 2. B\u00f6lge X,Y gibi g\u00f6nderilir. O zaman arduino hangi b\u00f6lgede cisim oldu\u011funu hatta hangi b\u00f6lgede hangi renk cisim oldu\u011funu da tespit edebilir.<\/p>\n<p><span style=\"color: #ff6600;\">Do\u011fruluk pay\u0131 i\u00e7in<\/span> ise processing cismin yerini, 30 kez bulur ve ortalamas\u0131n\u0131 alarak do\u011fru koordinat\u0131 arduinoya g\u00f6nderir.<\/p>\n<p><strong>Ba\u015fka bir bak\u0131\u015f a\u00e7\u0131s\u0131.<\/strong> A\u015fa\u011f\u0131daki end\u00fcstriyel bant sistemine bak\u0131n. Burada bir bidon bant \u00fczerinde gidiyor. Bidon rengi ya da \u00fczerindeki etiket bilgisine eklenecek bir renk ile birden fazla \u00fcretimin ayn\u0131 bant \u00fczerinde gitti\u011fini d\u00fc\u015f\u00fcn\u00fcn. Burada kamera bilgiyi g\u00f6nderir ve o andaki enkoder bilgisini ve koordinat bilgisini de Arduino bilir. Sonras\u0131nda bu bant y\u00fcr\u00fcmeye devam eder. \u0130leride mavi k\u0131rm\u0131z\u0131 ye\u015fil diye 3 ayr\u0131 bant varsa Arduino enkoder durumuna g\u00f6re ilk g\u00f6rd\u00fc\u011f\u00fc mesafeden sonra hangi renk ile etiketlenmi\u015fse o bantlara bu bidonlar\u0131 iter. Bu \u015fekilde kamera ve enkoder ile end\u00fcstriyel bir sistem olu\u015fturmu\u015f olursunuz. A\u015fa\u011f\u0131daki gibi sadece cismi tespit etmez hangi renk hangi madde gibi bilgilerine g\u00f6re de tek bir bant diziliminde ay\u0131klama yap\u0131l\u0131r. Bu da hem zaman tasarrufu sa\u011flar Hem de hata pay\u0131n\u0131 \u00f6nler. Ayn\u0131 zamanda \u00fcretim say\u0131lar\u0131 da kameraya g\u00f6re hatas\u0131z say\u0131lacakt\u0131r.<br \/>\n<strong>End\u00fcstriyel bir tasar\u0131m yapsam<\/strong> kameran\u0131n da hatas\u0131 var m\u0131 diye d\u00fc\u015f\u00fcn\u00fcp bir sensor da kameraya e\u015flik edecektir. <span style=\"color: #ff6600;\">End\u00fcstri de geri bildirim \u00e7ok \u00f6nemlidir.<\/span> Kamera hata yap\u0131p alg\u0131lamasa bile, Arduino bilgi almasa bile, sensor orada bir cisim vard\u0131 derse, o zaman bu \u00fcr\u00fcn\u00fc kamera hatal\u0131 g\u00f6rd\u00fc ya da etiket tonu yanl\u0131\u015f bas\u0131lm\u0131\u015f olabilir diye d\u00fc\u015f\u00fcnerek <span style=\"color: #ff6600;\">g\u00f6z kontrole yollamak yerinde olacakt\u0131r.<\/span><br \/>\nEnd\u00fcstriyel makine ve kontrol sistemleri olu\u015fturulurken bu tip problemlerin ve di\u011fer problemlerin \u00e7\u0131kabilece\u011fi d\u00fc\u015f\u00fcn\u00fcl\u00fcp \u00f6nlem al\u0131nmas\u0131 gerekebilecektir.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/Encoder-as-a-Counting-Device.gif?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/Encoder-as-a-Counting-Device.gif?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/Counting-Application-of-Encoder.png?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/Counting-Application-of-Encoder.png?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><br \/>\n<strong>Daha \u00f6nceki yaz\u0131lar\u0131mda anlatm\u0131\u015ft\u0131m<\/strong>. Bazen ek devrelerle sistemi daha rahat kontrol edilebilecek \u015fekle d\u00f6n\u00fc\u015ft\u00fcrebiliriz. Burada da b\u00fcy\u00fck g\u00f6r\u00fcnt\u00fc i\u015fleme sistemlerinin kolayca yapabilece\u011fi i\u015fleri daha d\u00fc\u015f\u00fck maliyetle yapabiliriz. Hatta bundan dolay\u0131 birden fazla yerde kullanabiliriz<\/p>\n<p>Pahal\u0131 g\u00f6r\u00fcnt\u00fc i\u015fleme sistemleri \u015fi\u015feyi ve bidonu alg\u0131layabilir. <strong><span style=\"color: #ff0000;\">Biz ne yapabiliriz<\/span>.<\/strong> \u015ei\u015fe dip alan\u0131 belirli oldu\u011fundan bir <span style=\"color: #ff6600;\">cisim yans\u0131mal\u0131 sensor<\/span> ile dip k\u0131sm\u0131n\u0131 \u00f6l\u00e7ebiliriz. Kameraya ek olarak konulabilecek bir sensor bunu yapabilir. Ya da y\u00fckseklik sensoru konularak \u015fi\u015fe farkl\u0131l\u0131klar\u0131 da elde edilebilir. Her ne kadar kamera ile elde edilebilirse de, i\u015fin daha pratik olmas\u0131 a\u00e7\u0131s\u0131ndan bu tip sensorlarla desteklendi\u011finde, <span style=\"color: #ff6600;\">\u00e7ok noktal\u0131 \u00f6l\u00e7\u00fcm yap\u0131larak sonucun daha do\u011fru olmas\u0131 sa\u011flanabilecektir.<\/span><\/p>\n<p><span style=\"color: #ff6600;\"><strong>\u00d6nemli bir nokta ise<\/strong><\/span> yukar\u0131daki resimde bidon d\u0131\u015f ortam \u0131\u015f\u0131\u011f\u0131nda hareket etti\u011finde ortam \u0131\u015f\u0131\u011f\u0131n\u0131n g\u00fcne\u015f etkisiyle de\u011fi\u015fmesi durumunda, alg\u0131lama hatas\u0131 yapabilece\u011fini de g\u00f6z ard\u0131 edemeyiz. Bundan dolay\u0131, bant \u00fczerinde kamera sisteminin bulundu\u011fu yere bir d\u0131\u015f ortamdan yal\u0131tacak \u00f6rt\u00fc koymak yerinde olacakt\u0131r. Ya da \u00f6l\u00e7\u00fcm kutusu diyelim. Kendi \u0131\u015f\u0131\u011f\u0131na sahip olacak ve \u00f6l\u00e7\u00fcm yap\u0131l\u0131rken devaml\u0131 ayn\u0131 \u0131\u015f\u0131k ortam\u0131 sa\u011flanacakt\u0131r.<br \/>\nI\u015f\u0131k ortam\u0131 i\u00e7in \u0131\u015f\u0131k \u00f6mr\u00fcn\u00fc uzun s\u00fcre kullanabilmek i\u00e7in enkoder bilgisiyle Arduino, malzeme kutuya girmeden \u0131\u015f\u0131\u011f\u0131 a\u00e7ar ve sonras\u0131nda \u00f6l\u00e7\u00fcm bitince kapatabilir. <span style=\"color: #ff6600;\">\u00c7\u00fcnk\u00fc 24 saat yanan bir lamba, biz fark etmesek de \u0131\u015f\u0131k \u015fiddetini azar azar yitirir.<\/span> <span style=\"color: #ff6600;\">Bu sebeple farkl\u0131 renk tonlar\u0131 elde edilip hatalara sebep olabilir.<\/span><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/multikomp1.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/multikomp1.JPG?raw=true\" alt=\"\" width=\"340\" height=\"362\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 340px; --smush-placeholder-aspect-ratio: 340\/362;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/multikomp2.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/multikomp2.JPG?raw=true\" alt=\"\" width=\"351\" height=\"372\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 351px; --smush-placeholder-aspect-ratio: 351\/372;\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/multikomp3.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/multikomp3.JPG?raw=true\" alt=\"\" width=\"365\" height=\"385\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 365px; --smush-placeholder-aspect-ratio: 365\/385;\" \/><\/a><br \/>\nYukar\u0131daki resimde g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere sol taraftaki slider renk ara\u00e7lar\u0131n\u0131 kullanarak istedi\u011fimiz ton yakalan\u0131r ve bundan sonra ayn\u0131 tip tona sahip cisimler ge\u00e7er bilgisi al\u0131r. <span style=\"color: #ff6600;\">Unutmay\u0131n ki<\/span> bizim g\u00f6z\u00fcm\u00fcz mavi gibi g\u00f6rse de ve ton fark\u0131n\u0131 alg\u0131lasa bile, ton fark\u0131n\u0131 kamera daha iyi alg\u0131lay\u0131p renk ayr\u0131m\u0131 yapabilir. Bu da processing penceresinde alt tarafta renk de\u011ferlerini g\u00f6sterirken belli olacakt\u0131r. Biz ye\u015fili istemesek de slider tamamen kapansa bile, kamera o renk birle\u015fiminde ye\u015fil renk tonlar\u0131n\u0131 yakalad\u0131ysa, bunu 0-255 aras\u0131 olarak size g\u00f6sterecektir.<br \/>\nVideoda ton farkl\u0131l\u0131klar\u0131n\u0131, Excel renk kartelas\u0131 \u00fczerinde g\u00f6sterdim. Sizler de benzer testler yapabilirsiniz.<br \/>\nAyn\u0131 zamanda servo motorun malzemeyi nas\u0131l i\u015faret etti\u011fini g\u00f6rebilirsiniz. Malzeme ortaya yak\u0131n ise k\u00fc\u00e7\u00fck bir derece ile hareket eder. Di\u011fer resimde ise daha fazla dereceyle hareket etti\u011fini ayn\u0131 zamanda sa\u011fa ve sola hareketini g\u00f6rebilirsiniz.<\/p>\n<p><span style=\"color: #ff6600;\"><strong>Not:<\/strong> <\/span>Bu resimlerde koordinat bilgisini de g\u00f6rebiliyorsunuz. Bunu yukar\u0131da anlatt\u0131\u011f\u0131m g\u00f6r\u00fcnmez i\u015faretleme s\u0131n\u0131rlar\u0131 belirler. Ekran\u0131n herhangi bir yerine ayn\u0131 cisimden koysan\u0131z bile koordinat g\u00f6remezsiniz. Mutlaka i\u015faretli alanda olan cisimler de\u011ferlendirilir. Fakat ekranda birden fazla ayn\u0131 renkten cisim varsa 1 tanesine odaklan\u0131r bazen de her birine gider. Bundan dolay\u0131 ekran \u00fczerindeki, ayn\u0131 renkli cisimlerin i\u015faretli alanda olanlar\u0131n\u0131 kontrol etmemiz gerekir.<\/p>\n<p>A\u015fa\u011f\u0131daki resim ise \u015feffaf s\u0131v\u0131 i\u00e7erisinde bulunan yabanc\u0131 maddeyi g\u00f6sterir. Bu ilk program kirbul.pde dosyas\u0131na aittir.<br \/>\n<a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/kirbul.JPG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/kirbul.JPG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><br \/>\n<span style=\"color: #ff6600;\">\u00a0A\u015fa\u011f\u0131daki resim ise yapt\u0131\u011f\u0131m sistemin ba\u011flant\u0131lar\u0131n\u0131 g\u00f6sterir.<\/span><br \/>\nArduino servo motor kontrol\u00fc dijital 8 nolu pimdir. Servo motor +5V ve GND si Arduino \u00fczerinden al\u0131nm\u0131\u015ft\u0131r. Softserial ise 10 ve 11. Dijital pimlarden al\u0131n\u0131p Usb seri \u00e7eviriciye ba\u011flanm\u0131\u015ft\u0131r. USB seri \u00e7eviricinin sadece Rx,TX, GND pimleri arduinoya ba\u011flanm\u0131\u015ft\u0131r soft serial olarak.<br \/>\n<a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/P_20210410_151608.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" class=\"aligncenter lazyload\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/Processing_webcam_arduino_mikrobotik\/P_20210410_151608.jpg?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><\/p>\n<p><span style=\"color: #ff0000;\"><strong>Webcam yok diyen, ya da eski oldu\u011fu i\u00e7in sorun ya\u015fayan arkada\u015flar. <\/strong><\/span><\/p>\n<p>Usb kameran\u0131z eski ise, renk farkl\u0131l\u0131klar\u0131nda sorun yarat\u0131yorsa, android telefonunuzu da webcam gibi kullanabilirsiniz.\u00a0 \u00a0 <strong><a href=\"https:\/\/www.dev47apps.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.dev47apps.com\/<\/a><br \/>\n<\/strong>Bu adresten indirece\u011finiz ve <strong>PC nize<\/strong> kuraca\u011f\u0131n\u0131z program.<br \/>\nAyr\u0131ca, <strong>Android<\/strong> telefonunuza kuraca\u011f\u0131n\u0131z bu program ile (<strong><span style=\"color: #ff6600;\">Free olan yeterli geliyor.<\/span><\/strong> yanl\u0131\u015f se\u00e7meyin <span style=\"color: #ff6600;\">para \u00f6demeyin.<\/span> )\u00a0 \u00a0\u00a0<strong><br \/>\n<a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.dev47apps.droidcam\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/play.google.com\/store\/apps\/details?id=com.dev47apps.droidcam<\/a><\/strong><\/p>\n<p>Processing taraf\u0131ndan, wifi \u00fczerinden ba\u011fl\u0131 bir kamera olarak g\u00f6r\u00fclebiliyor. Webcam yok ise android telefonunuzla bu programlar\u0131 deneyebilirsiniz.<br \/>\nDenedi\u011fim ba\u015fka android kamera programlar\u0131 <strong>PC de tan\u0131nm\u0131yor.<\/strong> Sadece <span style=\"color: #ff6600;\">google sayfas\u0131ndan IP<\/span> \u00fczerinden g\u00f6rebiliyorsunuz.<span style=\"color: #ff6600;\"> Bunlar processing de i\u015fe yaram\u0131yor. <\/span>Fakat bu android program webcam gibi davran\u0131p t\u00fcm kamera kullanan programlarla webcam yerine kullan\u0131l\u0131yor. ( <span style=\"color: #ff6600;\">Belki benim g\u00f6rmedi\u011fim ba\u015fka programlar da vard\u0131r bilemem ama bu program\u0131 denedim oluyor.)<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><strong>T\u00dcM dosyalara <a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/Processing_webcam_arduino_mikrobotik\" target=\"_blank\" rel=\"noopener noreferrer\">buradan ula\u015fabilirsiniz.<\/a><\/strong> ( <span style=\"color: #ff6600;\">Dosyalar i\u00e7erisinde processing k\u00fct\u00fcphane linkleri de mevcuttur.<\/span> )<\/p>\n<p><strong>Processing <\/strong>sitesinden kuruluma ba\u015flayabilirsiniz<strong>. <a href=\"https:\/\/processing.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/processing.org\/<\/a><\/strong><\/p>\n<p><strong><span style=\"color: #ff6600;\">En basit \u015fekliyle yap\u0131lan program Kirbul.pde program\u0131 \u00e7al\u0131\u015fmas\u0131.<\/span><\/strong><br \/>\n<iframe title=\"YouTube video player\" data-src=\"https:\/\/www.youtube.com\/embed\/DLsmz0IkcBE\" width=\"853\" height=\"480\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p><strong><span style=\"color: #ff6600;\">Daha geli\u015ftirilmi\u015f haliyle projenin \u00e7al\u0131\u015fmas\u0131 1. video :<\/span><\/strong><iframe title=\"YouTube video player\" data-src=\"https:\/\/www.youtube.com\/embed\/8886oI-DDM4\" width=\"853\" height=\"480\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p><strong><span style=\"color: #ff6600;\">\u00c7al\u0131\u015fan sistemin nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131n a\u00e7\u0131klamas\u0131 2. video :\u00a0<\/span><\/strong><br \/>\n<iframe title=\"YouTube video player\" data-src=\"https:\/\/www.youtube.com\/embed\/k3Pd-8dkK0Q\" width=\"853\" height=\"480\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n<p><span style=\"color: #ff0000;\"><strong>Bu videoda Processing k\u00fct\u00fcphane nas\u0131l eklenir bunu bulacaks\u0131n\u0131z.<\/strong><\/span><iframe title=\"YouTube video player\" data-src=\"https:\/\/www.youtube.com\/embed\/YDn48VU0y4s\" width=\"853\" height=\"480\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Processing+Arduino+WEBCAM ile g\u00f6r\u00fcnt\u00fc renk ayr\u0131m\u0131. Bu proje ilk \u00f6nce \u015feffaf s\u0131v\u0131larda kamera ile i\u00e7erisindeki kirlilik tespit edilebilir mi? diye ba\u015flad\u0131. \u00d6ncelikle programlar aras\u0131ndaki kir_bul_bardakta.pde bu ama\u00e7la yap\u0131ld\u0131. (Program\u0131n temeli ise&#8230; <\/p>\n","protected":false},"author":1,"featured_media":2078,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38,37],"tags":[54,79,82,80,78,81,83],"class_list":["post-2074","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kamera-tanimlama","category-processing-ve-arduino","tag-arduino","tag-camera","tag-color-select","tag-kamera","tag-processing","tag-renk-ayirma","tag-renk-tanima"],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2074","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/comments?post=2074"}],"version-history":[{"count":8,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2074\/revisions"}],"predecessor-version":[{"id":2174,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/2074\/revisions\/2174"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/2078"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=2074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=2074"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=2074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}