{"id":3197,"date":"2026-08-14T15:45:27","date_gmt":"2026-08-14T12:45:27","guid":{"rendered":"https:\/\/www.mikrobotik.com\/wp2\/?p=3197"},"modified":"2026-08-14T15:45:27","modified_gmt":"2026-08-14T12:45:27","slug":"esp32-ve-fabgl-ile-cift-cekirdegin-sinirlarinda-vga-ekranli-3-eksenli-endustriyel-step-motor-kontrolu","status":"publish","type":"post","link":"https:\/\/www.mikrobotik.com\/wp2\/2026\/08\/14\/esp32-ve-fabgl-ile-cift-cekirdegin-sinirlarinda-vga-ekranli-3-eksenli-endustriyel-step-motor-kontrolu\/","title":{"rendered":"ESP32 ve FabGL ile \u00c7ift \u00c7ekirde\u011fin S\u0131n\u0131rlar\u0131nda: VGA Ekranl\u0131 3 Eksenli, End\u00fcstriyel STEP MOTOR Kontrol\u00fc"},"content":{"rendered":"<p data-path-to-node=\"5\">Hobi projelerinden end\u00fcstriyel otomasyona uzanan yolda en b\u00fcy\u00fck zorluklardan biri; kullan\u0131c\u0131 aray\u00fcz\u00fc (GUI) ile zaman a\u00e7\u0131s\u0131ndan kritik donan\u0131m kontrol\u00fcn\u00fc ayn\u0131 mikrokontrolc\u00fc \u00fczerinde \u00e7ak\u0131\u015fmadan \u00e7al\u0131\u015ft\u0131rabilmektir.<\/p>\n<p data-path-to-node=\"6\">Bu projede harici bir bilgisayar veya pahal\u0131 bir dokunmatik ekran donan\u0131m\u0131 kullanmadan; yaln\u0131zca bir <b data-path-to-node=\"6\" data-index-in-node=\"101\">ESP32<\/b>, <b data-path-to-node=\"6\" data-index-in-node=\"108\">FabGL k\u00fct\u00fcphanesi<\/b> ve yard\u0131mc\u0131 bir motor s\u00fcr\u00fcc\u00fc kart\u0131 (Arduino) ile 3 eksenli end\u00fcstriyel ad\u0131m motor sistemini canl\u0131 VGA ekranda nas\u0131l y\u00f6netebilece\u011finizi anlat\u0131yorum.<\/p>\n<h3 data-path-to-node=\"8\">Projenin Kalbi: FabGL K\u00fct\u00fcphanesi Ne Anlama Geliyor?<br \/>\n<a href=\"https:\/\/github.com\/fdivitto\/FabGL\" target=\"_blank\" rel=\"noopener\">K\u00fct\u00fcphaneye buradan ula\u015fabilirsiniz.\u00a0<\/a><\/h3>\n<p>Ayr\u0131ca buradan da <a href=\"http:\/\/www.fabglib.org\/index.html\" target=\"_blank\" rel=\"noopener\">FABGL k\u00fct\u00fcphane sayfas\u0131na ula\u015fabilirsiniz.\u00a0<\/a><\/p>\n<p data-path-to-node=\"9\">Bu sistemin mimar\u0131 hi\u00e7 \u015f\u00fcphesiz <b data-path-to-node=\"9\" data-index-in-node=\"32\">FabGL<\/b> k\u00fct\u00fcphanesidir. FabGL; ESP32&#8217;nin d\u00e2hili donan\u0131m imk\u00e2nlar\u0131n\u0131 (\u00f6zellikle DMA ve I2S birimlerini) kullanarak, ekstra hi\u00e7bir grafik i\u015flemciye ihtiya\u00e7 duymadan <b data-path-to-node=\"9\" data-index-in-node=\"193\">VGA ekran \u00e7\u0131k\u0131\u015f\u0131 (400&#215;300)<\/b> veren, ayn\u0131 zamanda <b data-path-to-node=\"9\" data-index-in-node=\"240\">PS\/2 Mouse ve PS\/2 Klavye<\/b> protokollerini do\u011frudan mikrodenetleyici seviyesinde \u00e7\u00f6zen muazzam bir k\u00fct\u00fcphanedir.<\/p>\n<p data-path-to-node=\"10\">Bizim projemizde bunun anlam\u0131 \u015fudur:<\/p>\n<ul data-path-to-node=\"11\">\n<li>\n<p data-path-to-node=\"11,0,0\"><b data-path-to-node=\"11,0,0\" data-index-in-node=\"0\">S\u0131f\u0131r Ekran Kart\u0131 Maliyeti:<\/b> ESP32, eski bir CRT veya LCD monit\u00f6r\u00fc do\u011frudan bir grafik aray\u00fcze d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. <i data-path-to-node=\"11,0,0\" data-index-in-node=\"106\">(Not: <span style=\"color: #ff6600;\">Baz\u0131 modern LCD monit\u00f6rler 400&#215;300 \u00e7\u00f6z\u00fcn\u00fcrl\u00fc\u011f\u00fc eski buldu\u011fu i\u00e7in desteklemeyebilir.<\/span>)<\/i><\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"11,1,0\"><b data-path-to-node=\"11,1,0\" data-index-in-node=\"0\">Tam Kontrol:<\/b> PS\/2 fare ve klavye takarak, t\u0131pk\u0131 bir PC i\u015fletim sisteminde gezinir gibi canl\u0131 X, Y, Z koordinat takibi, program ba\u015flatma\/durdurma ve JOG hareketleri yapabiliyoruz.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"11,2,0\"><b data-path-to-node=\"11,2,0\" data-index-in-node=\"0\">\u0130\u015f Y\u00fck\u00fc Da\u011f\u0131l\u0131m\u0131 (Dual-Core):<\/b> ESP32&#8217;nin <b data-path-to-node=\"11,2,0\" data-index-in-node=\"40\">Core 0<\/b> \u00e7ekirde\u011fini seri haberle\u015fme ve FabGL aray\u00fcz yenilemelerine (<code data-path-to-node=\"11,2,0\" data-index-in-node=\"107\">repaint<\/code>), <b data-path-to-node=\"11,2,0\" data-index-in-node=\"117\">Core 1<\/b> \u00e7ekirde\u011fini ise hassas motor zamanlamalar\u0131na ay\u0131rarak ekran \u00e7izimlerinin motor ad\u0131mlar\u0131nda olu\u015fturabilece\u011fi titre\u015fimi en aza indirdik.<\/p>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"13\">Geli\u015ftirme S\u00fcrecinde Ya\u015fanan Deneyimler ve Dikkat Edilecek Noktalar<\/h3>\n<p data-path-to-node=\"14\">Sistemi s\u0131f\u0131rdan kurarken kar\u015f\u0131la\u015ft\u0131\u011f\u0131m sorunlar ve elde etti\u011fim tecr\u00fcbeler, bu projeyi yapacak amat\u00f6r arkada\u015flar i\u00e7in yol haritas\u0131 olacakt\u0131r:<\/p>\n<h4 data-path-to-node=\"15\">1. PS\/2 Mouse Yoklu\u011fu ve Bluetooth \/ BLE Tecr\u00fcbesi<\/h4>\n<p data-path-to-node=\"16\">Geli\u015ftirme a\u015famas\u0131nda elimde fiziksel bir PS\/2 fare yoktu. Bunun yerine MIT App Inventor ile 2 butonlu bir Touchpad uygulamas\u0131 yap\u0131p Bluetooth \u00fczerinden ESP32&#8217;ye ba\u011flanmay\u0131 denedim. Ancak ESP32&#8217;nin d\u00e2hili <b data-path-to-node=\"16\" data-index-in-node=\"205\">BLE (Bluetooth Low Energy)<\/b> mod\u00fcl\u00fcn\u00fc \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131mda haf\u0131za yap\u0131s\u0131nda ciddi sorunlar olu\u015ftu.<\/p>\n<p data-path-to-node=\"17\">ESP32 bir yandan VGA ekran\u0131 yenileyip komutlar\u0131 i\u015flerken, BLE mod\u00fcl\u00fcn\u00fcn gerektirdi\u011fi y\u00fcksek RAM kullan\u0131m\u0131 ve i\u015flemci zaman\u0131 sistemin kilitlenmesine yol a\u00e7t\u0131. Ben de \u00e7\u00f6z\u00fcm\u00fc ESP32&#8217;nin d\u00e2hili BLE mod\u00fcl\u00fcn\u00fc kapat\u0131p, donan\u0131msal seri portlar\u0131ndan birine <b data-path-to-node=\"17\" data-index-in-node=\"247\">HC-05 Bluetooth mod\u00fcl\u00fc<\/b> ba\u011flamakta buldum. B\u00f6ylece i\u015flemci y\u00fck\u00fcn\u00fc s\u0131f\u0131rlayarak sorunu \u00e7\u00f6zd\u00fcm.<br \/>\n<i data-path-to-node=\"17\" data-index-in-node=\"340\">(Yaz\u0131l\u0131m\u0131n eski versiyonlar\u0131nda HC-05 kullanan bu Bluetooth mouse uygulamas\u0131n\u0131 bulabilirsiniz. Ayr\u0131ca TXD2 ve RXD2 kullan\u0131ld\u0131. 16. ve 17. pin. Program ismi:<strong>vgadene4_mouse_10_butoons_ok_son.ino<\/strong> )<\/i><\/p>\n<h4 data-path-to-node=\"18\">2. PS\/2 Seviye D\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc (Level Shifter) Problemi<\/h4>\n<p data-path-to-node=\"19\">PS\/2 klavye ve fareler <b data-path-to-node=\"19\" data-index-in-node=\"23\">5V<\/b> ile, ESP32 ise <b data-path-to-node=\"19\" data-index-in-node=\"41\">3.3V<\/b> lojik seviyesiyle \u00e7al\u0131\u015f\u0131r. Bu t\u00fcr durumlarda genelde transist\u00f6rl\u00fc seviye d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fcler kullan\u0131l\u0131r. Ancak I2C hatlar\u0131nda sorunsuz \u00e7al\u0131\u015fan transist\u00f6rl\u00fc devreler burada \u00e7al\u0131\u015fmad\u0131.<\/p>\n<p data-path-to-node=\"20\">\u00c7\u00fcnk\u00fc PS\/2 hatt\u0131 <b data-path-to-node=\"20\" data-index-in-node=\"17\">Open-Collector (A\u00e7\u0131k Kollekt\u00f6r)<\/b> yap\u0131da \u00e7al\u0131\u015f\u0131r. Aradaki transist\u00f6rler sinyalin kare dalga formunu bozarak ileti\u015fim hatas\u0131na sebep oldu. \u00c7\u00f6z\u00fcm olarak aktif transist\u00f6rler yerine pasif diren\u00e7li koruma\/pull-up devresini kulland\u0131k.<\/p>\n<h4 data-path-to-node=\"21\">3. G\u00fc\u00e7 Da\u011f\u0131t\u0131m\u0131 ve Ortak GND ZORUNLULU\u011eU<\/h4>\n<p data-path-to-node=\"22\">Sistemde hem 5V hem 3.3V hem de \u00e7ok say\u0131da GND hatt\u0131 oldu\u011fu i\u00e7in \u00f6zel bir <b data-path-to-node=\"22\" data-index-in-node=\"74\">G\u00fc\u00e7 Da\u011f\u0131t\u0131c\u0131 PCB<\/b> tasarlad\u0131m. Bu kart \u00fczerinde giri\u015f ve \u00e7\u0131k\u0131\u015flar\u0131 hem erkek hem di\u015fi pinlerle olu\u015fturdum; b\u00f6ylece jumper kablo karma\u015fas\u0131 bitti.<\/p>\n<p data-path-to-node=\"23\">Ayr\u0131ca kart \u00fczerine <b data-path-to-node=\"23\" data-index-in-node=\"20\">AMS1117 3.3V (0.7A)<\/b> reg\u00fclat\u00f6r mod\u00fcl\u00fc yerle\u015ftirdim. <b data-path-to-node=\"23\" data-index-in-node=\"71\">Amat\u00f6r arkada\u015flara tavsiyem:<\/b> \u00c7ok mecbur kalmad\u0131k\u00e7a Arduino veya ESP32 mod\u00fcllerinin d\u00e2hili 3.3V \u00e7\u0131k\u0131\u015f\u0131ndan y\u00fcksek ak\u0131m \u00e7ekmeyin. Harici bir reg\u00fclat\u00f6r kullanmak mod\u00fcl\u00fcn\u00fcz\u00fc korur.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/IMG_20260811_204038.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\/ESP32_VGA_AUTOMATION\/picture\/IMG_20260811_204038.jpg?raw=true\" alt=\"\" width=\"291\" height=\"218\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 291px; --smush-placeholder-aspect-ratio: 291\/218;\" \/><\/a><\/p>\n<h3 data-path-to-node=\"25\">Amat\u00f6r Geli\u015ftiricilere ve Yap\u0131mc\u0131lara (Maker) Tavsiyeler<\/h3>\n<ul data-path-to-node=\"26\">\n<li>\n<p data-path-to-node=\"26,0,0\"><b data-path-to-node=\"26,0,0\" data-index-in-node=\"0\">Seri Port Haberle\u015fme Protokol\u00fcn\u00fcz\u00fc Basit Tutun:<\/b> Karma\u015f\u0131k JSON yap\u0131lar\u0131 yerine <code data-path-to-node=\"26,0,0\" data-index-in-node=\"78\">STAT,BUSY,x,y,z,line<\/code> veya <code data-path-to-node=\"26,0,0\" data-index-in-node=\"104\">INF,PARKED,x,y,z<\/code> gibi virg\u00fclle ayr\u0131lm\u0131\u015f (CSV) k\u0131sa paketler tercih edin. C++ i\u00e7erisindeki <code data-path-to-node=\"26,0,0\" data-index-in-node=\"194\">sscanf<\/code> fonksiyonu bu paketleri bellek harcamadan \u00e7ok h\u0131zl\u0131 i\u015fler. Hatta komut format\u0131n\u0131n ayn\u0131 \u015fekilde olmas\u0131, bu komutlar\u0131 ve geri bildirimleri par\u00e7alarken farkl\u0131 par\u00e7alama sat\u0131rlar\u0131ndan kurtar\u0131r.\u00a0 ( <span style=\"color: #ff6600;\">\u0130sterseniz kendi geli\u015ftirmenizi yaparken <strong>GCODE<\/strong> kodlamas\u0131n\u0131 kullanabilirsiniz. Bunu \u00c7\u00f6z\u00fcp eksen bilgilerini almak i\u00e7in Arduino Gcode k\u00fct\u00fcphanesini kullanabiliesiniz. )<\/span><\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"26,1,0\"><b data-path-to-node=\"26,1,0\" data-index-in-node=\"0\">Mikrodenetleyici \u00c7ekirdeklerini B\u00f6l\u00fcn:<\/b> RTOS kullan\u0131yorsan\u0131z ekran ve aray\u00fcz (UI) i\u015flemlerini bir \u00e7ekirde\u011fe, ad\u0131m motor ad\u0131m sinyallerini ise gecikmesiz \u00e7al\u0131\u015fmas\u0131 i\u00e7in di\u011fer \u00e7ekirde\u011fe atay\u0131n.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"26,2,0\"><b data-path-to-node=\"26,2,0\" data-index-in-node=\"0\">G\u00fcvenlik Sens\u00f6rlerini \u015earta Ba\u011flay\u0131n:<\/b> LM35 ile s\u0131cakl\u0131k kontrol\u00fc veya switch&#8217;ler \u00fczerinden limit kontrol\u00fc yap\u0131lmadan (<code data-path-to-node=\"26,2,0\" data-index-in-node=\"118\">isControlOK<\/code>) motorlar\u0131n hareket etmesine yaz\u0131l\u0131msal olarak izin vermeyin.<\/p>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"28\">\u0130lk Defa ESP32 Kullanacaklar \u0130\u00e7in Kurulum Ad\u0131mlar\u0131<\/h3>\n<p data-path-to-node=\"29\">Daha \u00f6nce sadece Arduino kulland\u0131ysan\u0131z, bilgisayar\u0131n\u0131zda CH340 s\u00fcr\u00fcc\u00fcs\u00fc y\u00fckl\u00fcd\u00fcr. Fakat ESP32 geli\u015ftirme kartlar\u0131nda genellikle <b data-path-to-node=\"29\" data-index-in-node=\"129\">CP2102<\/b> s\u00fcr\u00fcc\u00fcs\u00fc bulunur.<\/p>\n<ol start=\"1\" data-path-to-node=\"30\">\n<li>\n<p data-path-to-node=\"30,0,0\"><b data-path-to-node=\"30,0,0\" data-index-in-node=\"0\">S\u00fcr\u00fcc\u00fc Kurulumu:<\/b> Silicon Labs sitesinden <b data-path-to-node=\"30,0,0\" data-index-in-node=\"41\">CP210x Windows Drivers<\/b> paketini <strong><a href=\"https:\/\/www.silabs.com\/software-and-tools\/usb-to-uart-bridge-vcp-drivers?tab=downloads\" target=\"_blank\" rel=\"noopener\">indirip kurun<\/a><\/strong>.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"30,1,0\"><b data-path-to-node=\"30,1,0\" data-index-in-node=\"0\">Arduino IDE Kart Ekleme:<\/b> IDE \u00fczerinde <i data-path-to-node=\"30,1,0\" data-index-in-node=\"38\">Dosya &gt; Tercihler<\/i> men\u00fcs\u00fcn\u00fc a\u00e7\u0131n. &#8220;Ek Devre Kartlar\u0131 Y\u00f6neticisi URL&#8217;leri&#8221; k\u0131sm\u0131na \u015fu g\u00fcncel adresi ekleyin:<\/p>\n<p data-path-to-node=\"30,1,0\"><code data-path-to-node=\"30,1,0\" data-index-in-node=\"145\">[https:\/\/dl.espressif.com\/dl\/package_esp32_index.json](https:\/\/dl.espressif.com\/dl\/package_esp32_index.json)<\/code><\/p>\n<p data-path-to-node=\"30,1,0\"><i data-path-to-node=\"30,1,0\" data-index-in-node=\"254\">(Alternatif adres: <code data-path-to-node=\"30,1,0\" data-index-in-node=\"273\">[https:\/\/espressif.github.io\/arduino-esp32\/package_esp32_index.json](https:\/\/espressif.github.io\/arduino-esp32\/package_esp32_index.json)<\/code>)<\/i><\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"30,2,0\"><b data-path-to-node=\"30,2,0\" data-index-in-node=\"0\">Kart ve Haf\u0131za Ayar\u0131:<\/b> <i data-path-to-node=\"30,2,0\" data-index-in-node=\"22\">Ara\u00e7lar &gt; Kart &gt; ESP32 Arduino<\/i> alt\u0131ndan kart\u0131n\u0131z\u0131 se\u00e7in. <b data-path-to-node=\"30,2,0\" data-index-in-node=\"79\">\u00c7ok \u00d6NEML\u0130:<\/b> FabGL k\u00fct\u00fcphanesinin s\u0131\u011fabilmesi i\u00e7in <b data-path-to-node=\"30,2,0\" data-index-in-node=\"129\">Partition Scheme<\/b> se\u00e7ene\u011fini mutlaka <b data-path-to-node=\"30,2,0\" data-index-in-node=\"165\">HUGE APP (3MB No OTA\/1MB SPIFFS)<\/b> olarak ayarlay\u0131n.<\/p>\n<\/li>\n<\/ol>\n<blockquote data-path-to-node=\"31\">\n<p data-path-to-node=\"31,0\"><b data-path-to-node=\"31,0\" data-index-in-node=\"0\">\u0130pucu (COM Port De\u011fi\u015ftirme):<\/b> ESP32&#8217;yi USB ile ba\u011flad\u0131\u011f\u0131n\u0131zda Ayg\u0131t Y\u00f6neticisi&#8217;nde y\u00fcksek bir COM port numaras\u0131 (\u00f6rne\u011fin COM13) atanabilir. Proteus gibi sim\u00fclasyon programlar\u0131 genelde COM1-COM4 aras\u0131n\u0131 destekler. Ayg\u0131t Y\u00f6neticisi&#8217;nden <i data-path-to-node=\"31,0\" data-index-in-node=\"234\">Ba\u011flant\u0131 Noktas\u0131 Ayarlar\u0131 &gt; Geli\u015fmi\u015f<\/i> ad\u0131mlar\u0131n\u0131 izleyerek port numaras\u0131n\u0131 COM1-COM4 aras\u0131na \u00e7ekebilir ve bilgisayar\u0131 yeniden ba\u015flatabilirsiniz. ( <span style=\"color: #ff6600;\">Ekran g\u00f6r\u00fcnt\u00fcleri i\u00e7in t\u00fcm programlar\u0131 ald\u0131\u011f\u0131n\u0131z yerdeki resimlere bak\u0131n<\/span> )<\/p>\n<\/blockquote>\n<h3 data-path-to-node=\"33\">Donan\u0131m ve Ekran Aray\u00fcz\u00fcn\u00fcn \u00c7al\u0131\u015fma Mant\u0131\u011f\u0131<\/h3>\n<p data-path-to-node=\"34\">Projede kulland\u0131\u011f\u0131m mod\u00fcl <b data-path-to-node=\"34\" data-index-in-node=\"26\">ESP32-WROOM-32U (4MB)<\/b> versiyonudur.<\/p>\n<ol start=\"1\" data-path-to-node=\"35\">\n<li>\n<p data-path-to-node=\"35,0,0\"><b data-path-to-node=\"35,0,0\" data-index-in-node=\"0\">Aray\u00fcz Kontrol\u00fc:<\/b> VGA ekran a\u00e7\u0131ld\u0131\u011f\u0131nda PS2 Mouse ba\u011fl\u0131ysa ekranda <b data-path-to-node=\"35,0,0\" data-index-in-node=\"66\">beyaz<\/b> imle\u00e7 g\u00f6r\u00fcn\u00fcr. E\u011fer imle\u00e7 <b data-path-to-node=\"35,0,0\" data-index-in-node=\"98\">siyah<\/b> ise FabGL fareyi alg\u0131lamam\u0131\u015f demektir. Klavyenin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 ise ESP32&#8217;ye reset att\u0131\u011f\u0131n\u0131zda klavye LED&#8217;lerinin (NumLock\/CapsLock) anl\u0131k yan\u0131p s\u00f6nmesinden ve <code data-path-to-node=\"35,0,0\" data-index-in-node=\"271\">CapsLock<\/code> tu\u015funa bast\u0131\u011f\u0131n\u0131zda LED&#8217;in durum de\u011fi\u015ftirmesinden anlayabilirsiniz.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"35,1,0\"><b data-path-to-node=\"35,1,0\" data-index-in-node=\"0\">Ekran Kontrol\u00fc:<\/b> Ekranda X, Y, Z koordinat kutular\u0131 ve JOG (art\u0131\/eksi) butonlar\u0131 yer al\u0131r. Kutular aras\u0131nda gezmek i\u00e7in <code data-path-to-node=\"35,1,0\" data-index-in-node=\"119\">TAB<\/code> ve <code data-path-to-node=\"35,1,0\" data-index-in-node=\"126\">SHIFT + TAB<\/code> tu\u015flar\u0131n\u0131 ve PS2 mouse kullanabilirsiniz. Se\u00e7ili kutu <span style=\"color: #ff6600;\"><b data-path-to-node=\"35,1,0\" data-index-in-node=\"179\">sar\u0131<\/b><\/span> renge d\u00f6ner.<\/p>\n<\/li>\n<\/ol>\n<div class=\"code-block ng-tns-c2065955761-888 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\" data-hveid=\"0\" data-ved=\"0CAAQhtANahgKEwj1x7DZzZmWAxUAAAAAHQAAAAAQmAs\">\n<div class=\"formatted-code-block-internal-container ng-tns-c2065955761-888\">\n<div class=\"animated-opacity ng-tns-c2065955761-888\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/IMG_20260811_204442.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\/ESP32_VGA_AUTOMATION\/picture\/IMG_20260811_204442.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><\/div>\n<\/div>\n<\/div>\n<ol start=\"3\" data-path-to-node=\"37\">\n<li>\n<p data-path-to-node=\"37,0,0\"><b data-path-to-node=\"37,0,0\" data-index-in-node=\"0\">Arduino ile Haberle\u015fme:<\/b> ESP32 aray\u00fczden ald\u0131\u011f\u0131 komutlar\u0131 Seri Port \u00fczerinden motorlar\u0131 s\u00fcren <b data-path-to-node=\"37,0,0\" data-index-in-node=\"93\">Arduino UNO<\/b>&#8216;ya g\u00f6nderir. Arduino i\u015flemi tamamlay\u0131nca durum bilgisini (<code data-path-to-node=\"37,0,0\" data-index-in-node=\"163\">STATUS<\/code>) ESP32&#8217;ye geri bildirir ve ekrandaki kutular g\u00fcncellenir.<\/p>\n<\/li>\n<\/ol>\n<h3 data-path-to-node=\"39\">Sistemin \u00c7al\u0131\u015fma Ad\u0131mlar\u0131 ve \u0130\u015f Ak\u0131\u015f\u0131<\/h3>\n<ul data-path-to-node=\"40\">\n<li>\n<p data-path-to-node=\"40,0,0\"><b data-path-to-node=\"40,0,0\" data-index-in-node=\"0\">Kontrol (G\u00fcvenlik):<\/b> Kullan\u0131c\u0131 ekrandaki <b data-path-to-node=\"40,0,0\" data-index-in-node=\"40\">KONTROL<\/b> butonuna basar. Arduino t\u00fcm limit switch&#8217;leri ve s\u0131cakl\u0131k sens\u00f6r\u00fcn\u00fc kontrol eder. \u015eartlar uygunsa ekrana <code data-path-to-node=\"40,0,0\" data-index-in-node=\"153\">CHECK OK<\/code> bilgisi d\u00f6ner.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"40,1,0\"><b data-path-to-node=\"40,1,0\" data-index-in-node=\"0\">HOME (S\u0131f\u0131rlama):<\/b> \u0130lk a\u00e7\u0131l\u0131\u015fta motorlar\u0131n konumu bilinmedi\u011fi i\u00e7in <b data-path-to-node=\"40,1,0\" data-index-in-node=\"66\">HOME<\/b> butonuna bas\u0131l\u0131r. Eksenler s\u0131f\u0131r noktas\u0131na \u00e7ekilir ve bu andan itibaren yap\u0131lan t\u00fcm ad\u0131mlar say\u0131l\u0131r.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"40,2,0\"><b data-path-to-node=\"40,2,0\" data-index-in-node=\"0\">SD Karttan Program Okuma:<\/b> <b data-path-to-node=\"40,2,0\" data-index-in-node=\"26\">SDKART OKU<\/b> butonuna bas\u0131ld\u0131\u011f\u0131nda, Arduino SD kart i\u00e7indeki <code data-path-to-node=\"40,2,0\" data-index-in-node=\"85\">.PRG<\/code> uzant\u0131l\u0131 (8.3 dosya format\u0131ndaki) program isimlerini liste olarak ESP32 ekran\u0131na g\u00f6nderir.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"40,3,0\"><b data-path-to-node=\"40,3,0\" data-index-in-node=\"0\">Program \u00c7al\u0131\u015ft\u0131rma ve PARK Pozisyonu:<\/b> Kullan\u0131c\u0131 bir program se\u00e7ip <b data-path-to-node=\"40,3,0\" data-index-in-node=\"66\">START<\/b> der. \u0130\u015flem bitti\u011finde program\u0131n son sat\u0131r\u0131nda buluna\u00a0 P harfini g\u00f6rd\u00fc\u011f\u00fcnde, sistem <b data-path-to-node=\"40,3,0\" data-index-in-node=\"101\">PARK (P)<\/b> pozisyonuna ge\u00e7er. Motorlar\u0131 her seferinde en ba\u015fa (HOME noktas\u0131na) g\u00f6ndermek mekanik a\u015f\u0131nmaya sebep olaca\u011f\u0131 i\u00e7in, program\u0131n ilk sat\u0131r\u0131ndaki koordinat PARK pozisyonu olarak tutulur. 2. kez START butonuna bas\u0131ld\u0131\u011f\u0131nda PARK pozisyonu ilk sat\u0131r koordinat\u0131 oldu\u011fundan 1. sat\u0131rda motorlar hareket etmeden i\u015fi yapar.<\/p>\n<\/li>\n<\/ul>\n<p data-path-to-node=\"41\"><i data-path-to-node=\"41\" data-index-in-node=\"0\">(<strong>Not:<\/strong> <span style=\"color: #ff6600;\">Bu projede sim\u00fclasyon ve anlat\u0131m basit tutulmu\u015ftur. Ger\u00e7ek end\u00fcstriyel sistemlerde motorun ad\u0131m\u0131 ka\u00e7\u0131rmad\u0131\u011f\u0131ndan emin olmak i\u00e7in optik enkoderler veya zaman a\u015f\u0131m\u0131 [timeout] kontrolleri eklenmelidir.<\/span>)<\/i><\/p>\n<p><strong>Sistemin t\u00fcm i\u015fleyi\u015fine bir de bu \u015fekilde bak\u0131n.<\/strong><\/p>\n<p><span style=\"color: #ff0000;\"><strong>Sistemin \u00c7Al\u0131\u015fmas\u0131:<\/strong><\/span><\/p>\n<p>\u00d6ncelikle kullan\u0131c\u0131 t\u00fcm switch ve s\u0131cakl\u0131k sens\u00f6r\u00fcn\u00fc kontrol etmek i\u00e7in ekrandaki <strong>KONTROL buton<\/strong>una basar. Bu istek Arduinoya gitti\u011finde t\u00fcm switchler do\u011fru konumdaysa ve S\u0131cakl\u0131k g\u00f6stergesi do\u011fru aral\u0131ktaysa <strong>INF,CHECK_OK,0,0,0<\/strong> bilgisi d\u00f6ner.<\/p>\n<p>Sonras\u0131nda ise Motorlar\u0131n nerede oldu\u011funu bizde bilmiyoruz Arduinoda bilmiyor.<br \/>\nBundan dolay\u0131 HOME butonuna basarak s\u0131f\u0131r noktas\u0131na \u00e7ekilir ve bundan sonraki hareketler kay\u0131t alt\u0131na al\u0131n\u0131r. Bu \u015fekilde motorlar\u0131n nerede oldu\u011funu arduino bilir. Ekrana da yazar. HOME i\u015flemi bitti\u011finde INF,HOMED,0,0,0 bilgisi ekrana gelir.<\/p>\n<p>S\u0131f\u0131rlama i\u015fleminden sonra ESP32 SDCARD ba\u011flant\u0131s\u0131 yoktur. Bu i\u015fi de Arduino \u00fcstlenmi\u015ftir. Ekrandan SDKART OKU\u00a0 \u00a0butonuna basa\u0131l\u0131r. Bu bu buton arduinoya GETFILES komutunu verir.\u00a0 Arduino sdcard okur ve hata yoksa ekran\u0131n sol taraf\u0131ndaki kutu i\u00e7ine arduinonun sdcard i\u00e7inden okudu\u011fu program isimleri gelir. Bu program isimleri 8 karakter isim, 3 karakter uzant\u0131 olacak \u015fekilde verilir. Ayr\u0131ca mutlaka uzant\u0131 k\u0131sm\u0131 PRG olmas\u0131 gerekir. Bu \u015fekilde t\u00fcm prgler listelenir.<\/p>\n<p>Ekrandan kullan\u0131c\u0131 programlardan birini se\u00e7ip START butonuna bast\u0131\u011f\u0131nda program \u00e7al\u0131\u015fmaya ba\u015flar. Start butonuna bast\u0131\u011f\u0131nda\u00a0 CMD,START,prog1.prg,0,0\u00a0 komutu gider. Arduino program sat\u0131rlar\u0131n\u0131 i\u015flemeye ba\u015flar. Her program sat\u0131r\u0131 i\u015flendikten sonra Arduino STAT komutu yollarken toplam ad\u0131mlar\u0131 g\u00f6sterir.\u00a0 STAT,BUSY,10,10,0,2 gibi 2. sat\u0131rdan sonra son durum demektir.<br \/>\n1. sat\u0131rda 10 ad\u0131m gittiyse stat, busy 10 g\u00f6r\u00fcn\u00fcrken 2. sat\u0131rda 5 ad\u0131m gittiyse stat,busy,15 olarak g\u00f6r\u00fcn\u00fcr. Bunu da arduino ESP32 ye g\u00f6nderir bu da ekranda X,Y,Z kutular\u0131n\u0131n i\u00e7ine yaz\u0131l\u0131r.<\/p>\n<p>Buraya kadar program y\u00fcr\u00fct\u00fcl\u00fcr. Sonras\u0131nda program\u0131n sonunda olan <span style=\"color: #ff6600;\"><strong>P harfi<\/strong> <strong>Park pozisyonu<\/strong> <\/span>demektir. \u0130lk defa program\u0131 \u00e7al\u0131\u015ft\u0131r\u0131p HOME yapt\u0131ysan\u0131z, motorlar s\u0131f\u0131r noktas\u0131ndad\u0131r. Fakat program 1 kere \u00e7al\u0131\u015ft\u0131ktan sonra program\u0131n<span style=\"color: #ff6600;\"> ilk sat\u0131r koordinat\u0131 PARK pozisyonu olarak belirlenir.<\/span><br \/>\nSebebi ise <span style=\"color: #ff6600;\">Program bitti\u011finde motorlar\u0131 s\u0131f\u0131ra g\u00f6ndermek ve tekrar ba\u015flad\u0131\u011f\u0131nda s\u0131f\u0131rdan geri getirmek mekanik olarak her programda fazladan a\u015f\u0131nma demektir.<\/span> Bundan dolay\u0131 program\u0131n ilk sat\u0131r\u0131n\u0131 PARK pozisyonuna verirsek program tekrar ba\u015flad\u0131\u011f\u0131nda ilk sat\u0131r i\u00e7in hareket etmesine gerek kalmadan i\u015flem yap\u0131l\u0131r.<\/p>\n<p><span style=\"color: #ff6600;\">\u00d6nemli:<\/span><br \/>\nBu program ve preoteus sim\u00fclat\u00f6r basit tutuldu. Motora git komutunu verdi\u011finizde, motor gerilimi belki de kesik olacak. Bundan dolay\u0131 gidemeyecek. Ger\u00e7ek devrede bunu kontrol edilerek timeout mesaj\u0131 verdirebilirsiniz. Ya da motor do\u011fru yere gittimi diye bir enkoder ile kontrol edebilirsiniz. Bu enkoder piyasada sat\u0131lan enkodere bir di\u015fli ba\u011flay\u0131p kontrol edilebilece\u011fi gibi di\u015fli kay\u0131\u015f\u0131n\u0131n optik olarak okunmas\u0131yla ya da delikli bir enkoder ile ka\u00e7 d\u00f6n\u00fc\u015f yapt\u0131\u011f\u0131n\u0131 kontrolm edebilirsiniz.<br \/>\nBenim program\u0131m bir zaman gecikmesi verip, ad\u0131m bilgilerini arka arkaya g\u00f6nderiyor. Ger\u00e7ek sistemde bu kontroll\u00fc yollan\u0131r\u00a0 ve motor do\u011fru yere gittikten sonra arkas\u0131ndan di\u011fer program sat\u0131r\u0131 i\u015flenir.\u00a0 Ayr\u0131ca T\u00fcm eksenlerde HOME switch ve Her iki y\u00f6nde de L\u0130M\u0130T switchler koyabilirsiniz. <span style=\"color: #ff6600;\">Ben bunlar\u0131 basit tuttum. Sizler geli\u015ftirebilirsiniz.<\/span><\/p>\n<p>Ben sadece size VGA ekran ile end\u00fcstriyel bir eksen sistemini nas\u0131l kolayl\u0131kla yapabilece\u011finizi g\u00f6sterdim. Fakat sizler bunu daha da geli\u015ftirebilirsiniz.<\/p>\n<p>Yukar\u0131daki bilgilerde sizler i\u00e7in \u00f6nemli notlar var. bunlar\u0131 dikkate al\u0131n ayn\u0131 hatalar\u0131 yapmay\u0131n. Ben programlama esnas\u0131nda deneme ile \u00f6\u011frendim. Sizler ise bu hatalar\u0131 yapmazsan\u0131z zaman kaybetmezsiniz.<\/p>\n<h3 data-path-to-node=\"43\">Donan\u0131m Ba\u011flant\u0131lar\u0131 ve VGA Devresi<\/h3>\n<p data-path-to-node=\"44\"><span style=\"color: #ff6600;\">Devreyi kurarken dikkat edilecek ba\u011flant\u0131 \u015femalar\u0131 \u015funlard\u0131r:<\/span><\/p>\n<ul data-path-to-node=\"45\">\n<li>\n<p data-path-to-node=\"45,0,0\"><b data-path-to-node=\"45,0,0\" data-index-in-node=\"0\">PS\/2 Ba\u011flant\u0131s\u0131:<\/b> FabGL \u015femas\u0131 ile benim uygulad\u0131\u011f\u0131m \u015fema aras\u0131nda <span class=\"math-inline\" data-math=\"120\\,\\Omega\" data-index-in-node=\"66\">120R<\/span> diren\u00e7lerin konumu a\u00e7\u0131s\u0131ndan ufak bir fark vard\u0131r. Her iki \u015fema da sorunsuz \u00e7al\u0131\u015fmaktad\u0131r.<\/p>\n<\/li>\n<\/ul>\n<div class=\"code-block ng-tns-c2065955761-889 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\" data-hveid=\"0\" data-ved=\"0CAAQhtANahgKEwj1x7DZzZmWAxUAAAAAHQAAAAAQmQs\">\n<div class=\"formatted-code-block-internal-container ng-tns-c2065955761-889\">\n<div class=\"animated-opacity ng-tns-c2065955761-889\">\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/PS2_KEYB_MOUSE.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\/ESP32_VGA_AUTOMATION\/picture\/PS2_KEYB_MOUSE.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><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/ps2_devre.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\/ESP32_VGA_AUTOMATION\/picture\/ps2_devre.PNG?raw=true\" alt=\"\" width=\"327\" height=\"326\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 327px; --smush-placeholder-aspect-ratio: 327\/326;\" \/><\/a><\/p>\n<figure style=\"width: 223px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/6-pin-female-mini-din-connector.jpg?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/6-pin-female-mini-din-connector.jpg?raw=true\" alt=\"\" width=\"223\" height=\"220\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 223px; --smush-placeholder-aspect-ratio: 223\/220;\" \/><\/a><figcaption class=\"wp-caption-text\"><span style=\"color: #ff6600;\">Buradan sat\u0131n alabilirsiniz<\/span> https:\/\/www.motorobit.com\/6-pin-disi-mini-din-konnektor-panel-tipi?srsltid=AfmBOooRFxmHMWMFh6Jz_3q8D4boINR4gXDgLyymtfJCsH5DOr1aFEs2HYE<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<ul data-path-to-node=\"47\">\n<li>\n<p data-path-to-node=\"47,0,0\"><b data-path-to-node=\"47,0,0\" data-index-in-node=\"0\">VGA Soket Ba\u011flant\u0131s\u0131:<\/b> ESP32&#8217;nin 3.3V olan renk \u00e7\u0131k\u0131\u015flar\u0131, VGA standard\u0131 olan 0-1V seviyesine d\u00fc\u015f\u00fcr\u00fclmek i\u00e7in gerilim b\u00f6l\u00fcc\u00fc diren\u00e7lerle VGA soketine ba\u011flan\u0131r. HSYNC ve VSYNC hatlar\u0131nda ise k\u0131sa devre korumas\u0131 i\u00e7in seri <span class=\"math-inline\" data-math=\"100\\,\\Omega\" data-index-in-node=\"219\">100R<\/span> diren\u00e7 kullan\u0131lm\u0131\u015ft\u0131r.<\/p>\n<\/li>\n<\/ul>\n<div class=\"code-block ng-tns-c2065955761-890 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\" data-hveid=\"0\" data-ved=\"0CAAQhtANahgKEwj1x7DZzZmWAxUAAAAAHQAAAAAQmgs\">\n<div class=\"formatted-code-block-internal-container ng-tns-c2065955761-890\">\n<div class=\"animated-opacity ng-tns-c2065955761-890\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/vga_resistors1.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\/ESP32_VGA_AUTOMATION\/picture\/vga_resistors1.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><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/vga_resistors2.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\/ESP32_VGA_AUTOMATION\/picture\/vga_resistors2.PNG?raw=true\" alt=\"\" width=\"571\" height=\"150\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 571px; --smush-placeholder-aspect-ratio: 571\/150;\" \/><\/a><\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h3 data-path-to-node=\"50\"><span style=\"color: #ff6600;\">Ek Teknik Bilgi:<\/span> ESP32&#8217;de SPI Pinleri ve HSPI \/ VSPI Mant\u0131\u011f\u0131,<br \/>\nBu programlamada SPI kullan\u0131lmasa da, Ben de yeni \u00f6\u011frendim size bilgi vermek istedim.<\/h3>\n<p data-path-to-node=\"51\">ESP32 \u015femalar\u0131na bakt\u0131\u011f\u0131n\u0131zda do\u011frudan &#8220;MOSI&#8221; veya &#8220;MISO&#8221; etiketlerini g\u00f6rmeyebilirsiniz. Benim de bu projede \u00f6\u011frendi\u011fim bu yap\u0131y\u0131 \u015f\u00f6yle \u00f6zetleyebiliriz:<\/p>\n<p data-path-to-node=\"52\">ESP32 \u00e7ipinde toplam <b data-path-to-node=\"52\" data-index-in-node=\"21\">4 adet donan\u0131msal SPI birimi<\/b> bulunur:<\/p>\n<ul data-path-to-node=\"53\">\n<li>\n<p data-path-to-node=\"53,0,0\"><b data-path-to-node=\"53,0,0\" data-index-in-node=\"0\">SPI0 ve SPI1:<\/b> \u00c7ipin kendi d\u00e2hili Flash belle\u011fi ve PSRAM i\u00e7in ayr\u0131lm\u0131\u015ft\u0131r, <span style=\"color: #ff6600;\">kullan\u0131lmaz.<\/span><\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"53,1,0\"><b data-path-to-node=\"53,1,0\" data-index-in-node=\"0\">SPI2 (HSPI) ve SPI3 (VSPI):<\/b> Biz geli\u015ftiricilerin kullan\u0131m\u0131na a\u00e7\u0131k donan\u0131msal SPI portlar\u0131d\u0131r.<\/p>\n<\/li>\n<\/ul>\n<h4 data-path-to-node=\"54\">Neden Pin Haritas\u0131nda MOSI\/MISO Yazm\u0131yor?<\/h4>\n<ol start=\"1\" data-path-to-node=\"55\">\n<li>\n<p data-path-to-node=\"55,0,0\"><b data-path-to-node=\"55,0,0\" data-index-in-node=\"0\">GPIO Matrix \u00d6zelli\u011fi:<\/b> ESP32&#8217;de SPI pinleri sabit de\u011fildir. Yaz\u0131l\u0131msal olarak hemen hemen istenen her GPIO pinine y\u00f6nlendirilebilir.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"55,1,0\"><b data-path-to-node=\"55,1,0\" data-index-in-node=\"0\">\u0130simlendirme Fark\u0131:<\/b> Espressif dok\u00fcmanlar\u0131nda MOSI yerine <code data-path-to-node=\"55,1,0\" data-index-in-node=\"57\">D<\/code> \/ <code data-path-to-node=\"55,1,0\" data-index-in-node=\"61\">SDO<\/code>, MISO yerine ise <code data-path-to-node=\"55,1,0\" data-index-in-node=\"82\">Q<\/code> \/ <code data-path-to-node=\"55,1,0\" data-index-in-node=\"86\">SDI<\/code> ifadeleri kullan\u0131labilir.<\/p>\n<\/li>\n<\/ol>\n<h4 data-path-to-node=\"56\">HSPI Varsay\u0131lan Donan\u0131m Pin Haritas\u0131:<\/h4>\n<table data-path-to-node=\"57\">\n<thead>\n<tr>\n<td><strong>Sinyal Ad\u0131<\/strong><\/td>\n<td><strong>\u0130\u015flevi<\/strong><\/td>\n<td><strong>Standart \u0130sim<\/strong><\/td>\n<td><strong>Varsay\u0131lan ESP32 Pini<\/strong><\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><span data-path-to-node=\"57,1,0,0\"><b data-path-to-node=\"57,1,0,0\" data-index-in-node=\"0\">HSPI_MOSI<\/b><\/span><\/td>\n<td><span data-path-to-node=\"57,1,1,0\">Veri \u00c7\u0131k\u0131\u015f\u0131<\/span><\/td>\n<td><span data-path-to-node=\"57,1,2,0\">MOSI<\/span><\/td>\n<td><span data-path-to-node=\"57,1,3,0\"><b data-path-to-node=\"57,1,3,0\" data-index-in-node=\"0\">GPIO 13<\/b><\/span><\/td>\n<\/tr>\n<tr>\n<td><span data-path-to-node=\"57,2,0,0\"><b data-path-to-node=\"57,2,0,0\" data-index-in-node=\"0\">HSPI_MISO<\/b><\/span><\/td>\n<td><span data-path-to-node=\"57,2,1,0\">Veri Giri\u015fi<\/span><\/td>\n<td><span data-path-to-node=\"57,2,2,0\">MISO<\/span><\/td>\n<td><span data-path-to-node=\"57,2,3,0\"><b data-path-to-node=\"57,2,3,0\" data-index-in-node=\"0\">GPIO 12<\/b><\/span><\/td>\n<\/tr>\n<tr>\n<td><span data-path-to-node=\"57,3,0,0\"><b data-path-to-node=\"57,3,0,0\" data-index-in-node=\"0\">HSPI_CLK<\/b><\/span><\/td>\n<td><span data-path-to-node=\"57,3,1,0\">Saat Sinyali<\/span><\/td>\n<td><span data-path-to-node=\"57,3,2,0\">SCK \/ SCLK<\/span><\/td>\n<td><span data-path-to-node=\"57,3,3,0\"><b data-path-to-node=\"57,3,3,0\" data-index-in-node=\"0\">GPIO 14<\/b><\/span><\/td>\n<\/tr>\n<tr>\n<td><span data-path-to-node=\"57,4,0,0\"><b data-path-to-node=\"57,4,0,0\" data-index-in-node=\"0\">HSPI_CS<\/b><\/span><\/td>\n<td><span data-path-to-node=\"57,4,1,0\">Chip Select<\/span><\/td>\n<td><span data-path-to-node=\"57,4,2,0\">SS \/ CS<\/span><\/td>\n<td><span data-path-to-node=\"57,4,3,0\"><b data-path-to-node=\"57,4,3,0\" data-index-in-node=\"0\">GPIO 15<\/b><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-path-to-node=\"58\"><i data-path-to-node=\"58\" data-index-in-node=\"0\">(Kod taraf\u0131nda <code data-path-to-node=\"58\" data-index-in-node=\"15\">SPI.begin(14, 12, 13, 15);<\/code> komutu ile bu pinleri istedi\u011finiz gibi de\u011fi\u015ftirebilirsiniz.)<\/i><\/p>\n<p>&nbsp;<\/p>\n<figure style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/proteus_son.PNG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/proteus_son.PNG?raw=true\" alt=\"\" width=\"500\" height=\"333\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 500px; --smush-placeholder-aspect-ratio: 500\/333;\" \/><\/a><figcaption class=\"wp-caption-text\"><span style=\"color: #ff0000;\">Bu resmin ayr\u0131nt\u0131l\u0131 olan\u0131 program deposundaki <strong>motorkontrol3.pdf<\/strong> dosyas\u0131ndad\u0131r. <\/span><\/figcaption><\/figure>\n<p data-path-to-node=\"60\">Proteus \u00e7iziminde Arduino pinlerinden de tasarruf etmek i\u00e7in L297 ve L293 entegrelerini birlikte kulland\u0131m. Sadece L293 kullansayd\u0131m daha fazla Arduino pimine ihtiya\u00e7 duyulacakt\u0131. Fakat L297 kulland\u0131\u011f\u0131mda her eksen i\u00e7in iki\u015fer tane pim kullanarak 3 ekseni kontrol ettim. Ayr\u0131ca SDCARD arduinoda kald\u0131 hem programlar\u0131 daha \u00e7abuk okuyor ve gere\u011fini yap\u0131yor diye. Hem de bir zorunluluktu. \u00c7\u00fcnk\u00fc ESP32 \u00e7al\u0131\u015fma yo\u011funlu\u011fundan dolay\u0131 i\u00e7indeki program\u0131 okuyup arduinoya iletmek i\u00e7in zaman kaybedecekti. Bu da VGA ekran\u0131n yenilenmesinde sorun olu\u015fturaca\u011f\u0131 i\u00e7in ekranda titremeler olacakt\u0131.<br \/>\nBununla birlikte bir de sim\u00fclat\u00f6r kullan\u0131rken <span style=\"color: #ff6600;\">proteusun gecikmesini g\u00f6receksiniz.<\/span> Prog1.prg gibi k\u0131sa ad\u0131ml\u0131 programlarda step motorlar hata yapm\u0131yor. Fakat ad\u0131m say\u0131s\u0131 \u00e7o\u011fald\u0131k\u00e7a sim\u00fclat\u00f6r ger\u00e7ek zaman i\u00e7inde step motorlar\u0131 d\u00f6nd\u00fcremedi\u011finden motorlar\u0131n alt\u0131ndaki referanslar kaymaktad\u0131r. Bunun sebebi sadece proteusun bu y\u00fck\u00fc kald\u0131ramamas\u0131d\u0131r. Ger\u00e7ek devrede zaten gerekli \u00f6nlemler al\u0131nacakt\u0131r. enkoder ya da optik \u00f6l\u00e7\u00fcm sens\u00f6rleriyle. Bu hata ger\u00e7ek devrede olmamas\u0131 i\u00e7in step motorlara komut zaman payla\u015f\u0131ml\u0131 de\u011fil motor gidece\u011fi yere vard\u0131\u011f\u0131nda sens\u00f6r bilgisiyle motora bir sonraki ad\u0131m say\u0131s\u0131 verilirse bu gecikme ya da referans kaymas\u0131 ya\u015fanmaz.<\/p>\n<p>A\u015fa\u011f\u0131da, <span style=\"color: #ff6600;\">KULLANILAN KOMUT S\u0130STEM\u0130<\/span> bulunmaktad\u0131r. Bu komutlar\u0131 Seri port \u00fczerinden verdi\u011finizde proteus gerekli \u00e7al\u0131\u015fmalar\u0131 yapacakt\u0131r.<\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/komut1.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\/ESP32_VGA_AUTOMATION\/picture\/komut1.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><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/komut2.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\/ESP32_VGA_AUTOMATION\/picture\/komut2.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><\/p>\n<p><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/komut3.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\/ESP32_VGA_AUTOMATION\/picture\/komut3.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><\/p>\n<figure style=\"width: 214px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/program.PNG?raw=true\" target=\"_blank\" rel=\"lightbox noopener noreferrer\"><img decoding=\"async\" data-src=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/blob\/main\/ESP32_VGA_AUTOMATION\/picture\/program.PNG?raw=true\" alt=\"\" width=\"214\" height=\"325\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 214px; --smush-placeholder-aspect-ratio: 214\/325;\" \/><\/a><figcaption class=\"wp-caption-text\"><span style=\"color: #ff6600;\">\u00d6rnek Program kodudur. C \u00e7al\u0131\u015ft\u0131r. B: Bypass ge\u00e7 , P ise park pozisyonudur. Mutlaka P park pozisyonu ile bitmek zorundad\u0131r. <\/span><\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p data-path-to-node=\"60\"><span style=\"color: #ff0000;\"><strong>NOT:<\/strong> <\/span>Proteus program\u0131n\u0131 test etmek istedi\u011finizde illaki ESP32 mod\u00fcl\u00fcn\u00fc ba\u011flaman\u0131za gerek yok. Bunun yerine VSPE program\u0131n\u0131 kullanarak (Virtual serial port emulator) Sanal bir com port \u00fcretip Proteus ile bir terminal program\u0131 ki ben REALTERM program\u0131n\u0131 kullan\u0131yorum Proteus ve realterm program\u0131n\u0131 ayn\u0131 sanal port olarak ayarlad\u0131\u011f\u0131n\u0131zda burada bulunankomutlar\u0131 seri porttan ESP32 g\u00f6ndermi\u015f gibi g\u00f6nderdi\u011finizde Proyeus ve Arduino UNO program\u0131n\u0131 test edebilirsiniz. VSPE program\u0131n\u0131 buradan alabilirsiniz deneme s\u00fcr\u00fcm\u00fc olsa da yine de sanal com port olu\u015fturacakt\u0131r. <a href=\"https:\/\/eterlogic.com\/Downloads.html\" target=\"_blank\" rel=\"noopener\">https:\/\/eterlogic.com\/Downloads.html<\/a><\/p>\n<p data-path-to-node=\"60\">Proteus i\u00e7inde SDCARD kullan\u0131m\u0131 var. Bunun i\u00e7in <span style=\"color: #ff6600;\">IMA(image) dosyas\u0131 haz\u0131rlaman\u0131z gerekir<\/span>. Bunu ise <span style=\"color: #ff6600;\">WINIMAGE<\/span> program\u0131 le yapabilirsiniz. Benim verdi\u011fim \u00f6rnek dosyay\u0131 bu program ile a\u00e7\u0131p kendi yapaca\u011f\u0131n\u0131z deneme program\u0131n\u0131 s\u00fcr\u00fckle b\u0131rak olarak bu image dosyas\u0131na yazabilirsiniz. Bu \u015fekilde Proteus SDCARD image i\u00e7erisindeki dosyalar\u0131 ger\u00e7ek sdcard gibi kullanabilecektir.<span style=\"color: #ff6600;\">Fakat PROGRAM uzant\u0131lar\u0131 mutlaka PRG olmak zorundad\u0131r.\u00a0<\/span><br \/>\n<span style=\"color: #ff6600;\"><strong><span style=\"color: #ff0000;\">Nas\u0131l yap\u0131ld\u0131\u011f\u0131n\u0131<\/span><\/strong> \u00f6\u011frenmek istiyorsan\u0131z videonun <span style=\"color: #000000;\"><strong>00:33:26.<\/strong><\/span> saniyesine giderseniz g\u00f6rebilirsiniz.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3 data-path-to-node=\"60\"><strong><span style=\"color: #ff0000;\">T\u00fcm Programlara <\/span><a href=\"https:\/\/github.com\/safaka123\/Mikrobotik_yazilarim\/tree\/main\/ESP32_VGA_AUTOMATION\" target=\"_blank\" rel=\"noopener\">buradan eri\u015febilirsiniz.<\/a><\/strong><\/h3>\n<p>&nbsp;<\/p>\n<h3 data-path-to-node=\"60\"><strong><span style=\"color: #ff0000;\">Program isimleri ve a\u00e7\u0131klamalar\u0131.<\/span><\/strong><\/h3>\n<p data-path-to-node=\"60\"><strong>vgadene4_mouse_10_butoons_ok_son.ino :<\/strong> Bu program PS2 mouse olmadan \u00f6nce MIT APP INVENTOR ile yapt\u0131\u011f\u0131m Bluetooth Touchpad kullan\u0131r. Bunun i\u00e7in ESP32 ye HC-05 bluetooth mod\u00fcl\u00fcn\u00fc 16.ve 17. pinlerine ba\u011flad\u0131m. Bu seri port giri\u015finden ald\u0131\u011f\u0131 bilgiyi direkt olarak ekranda mouse hareketine d\u00f6n\u00fc\u015ft\u00fcren esp32 dir.<\/p>\n<p><strong>vgadene4_mouse_17_ps2_keyb_mouse_OK.ino :<\/strong> Bu program esp32 program\u0131n\u0131n son versiyonudur. Burada PS2 mouse ve PS2 klavye kullan\u0131ld\u0131. ( videoda g\u00f6rece\u011finiz gibi klavye USB ama ps2 adapt\u00f6rle kullan\u0131ld\u0131) T\u00fcm son de\u011fi\u015fiklikler de bu programda yap\u0131ld\u0131.<\/p>\n<p><strong>xyz_motor_11.ino :<\/strong> Bu program Arduino UNO program\u0131d\u0131r Proteus \u00fczerinde sim\u00fcle ederken kullan\u0131lm\u0131\u015ft\u0131r.<\/p>\n<p><strong>progs.rar :<\/strong> Bu t\u00fcm programlar\u0131n bulundu\u011fu progs.IMA dosyas\u0131n\u0131n s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f halidir. A\u00e7\u0131ld\u0131ktan sonra proteusun bulundu\u011fu dizine konulur.<\/p>\n<p><strong>motorkontrol_3.pdsprj :<\/strong> Proteus 8.6 versiyonla haz\u0131rlanm\u0131\u015f proteus dosyas\u0131d\u0131r. Proteus 8.6 veya yukar\u0131 versiyonla \u00e7al\u0131\u015ft\u0131r\u0131labilir.<\/p>\n<p>&nbsp;<\/p>\n<p data-path-to-node=\"60\"><span style=\"color: #ff0000;\"><strong>Not:<\/strong><\/span> <span style=\"color: #ff6600;\">PROGS.IMA<\/span> dosyas\u0131 b\u00fcy\u00fck oldu\u011fu i\u00e7in programlar i\u00e7inde Z\u0130P olarak s\u0131k\u0131\u015ft\u0131r\u0131lan <span style=\"color: #ff6600;\">progs.zip<\/span> dosyas\u0131n\u0131 a\u00e7arsan\u0131z <span style=\"color: #ff6600;\">progs.IMA<\/span> dosyas\u0131na ula\u015f\u0131rs\u0131n\u0131z.<\/p>\n<p data-path-to-node=\"60\"><span style=\"color: #ff0000;\"><strong>NOT:<\/strong><\/span> Yaz\u0131da anlat\u0131lan baz\u0131 ayarlarla ilgili resim ekran g\u00f6r\u00fcnt\u00fcleri t\u00fcm programlar\u0131n aras\u0131ndad\u0131r. tak\u0131ld\u0131\u011f\u0131n\u0131z yerde bu resimlere bakarak yaz\u0131lan ayarlar\u0131 yapabilirsiniz. Her ayar i\u00e7in ekrana resim koymak istemedim yaz\u0131yla alakas\u0131 yok diye.<\/p>\n<p>&nbsp;<\/p>\n<p data-path-to-node=\"60\"><strong>Bu \u00e7al\u0131\u015fmayla,<\/strong><br \/>\nESP32 ve VGA entegrasyonunun end\u00fcstriyel sistemlerde ne kadar pratik bir \u015fekilde kullan\u0131labilece\u011fini g\u00f6stermi\u015f oldum. Sizler daha da geli\u015ftirebilirsiniz.<br \/>\nTak\u0131ld\u0131\u011f\u0131n\u0131z noktalar\u0131 yorumlarda sorabilirsiniz. Hepinize kolay gelsin!<\/p>\n<p>&nbsp;<\/p>\n<p data-path-to-node=\"60\">Video<\/p>\n<p><iframe title=\"ESP32 VGA 3 EKSEN OTOMASYON.\" data-src=\"https:\/\/www.youtube.com\/embed\/FGddcyljRtE\" width=\"1012\" height=\"539\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" src=\"about:blank\" class=\"lazyload\" data-load-mode=\"0\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hobi projelerinden end\u00fcstriyel otomasyona uzanan yolda en b\u00fcy\u00fck zorluklardan biri; kullan\u0131c\u0131 aray\u00fcz\u00fc (GUI) ile zaman a\u00e7\u0131s\u0131ndan kritik donan\u0131m kontrol\u00fcn\u00fc ayn\u0131 mikrokontrolc\u00fc \u00fczerinde \u00e7ak\u0131\u015fmadan \u00e7al\u0131\u015ft\u0131rabilmektir. Bu projede harici bir bilgisayar veya pahal\u0131 bir dokunmatik ekran donan\u0131m\u0131 kullanmadan; yaln\u0131zca bir ESP32, FabGL k\u00fct\u00fcphanesi ve yard\u0131mc\u0131 bir motor s\u00fcr\u00fcc\u00fc kart\u0131 (Arduino) ile 3 eksenli end\u00fcstriyel ad\u0131m motor sistemini [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3223,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33,112,24,21],"tags":[],"class_list":["post-3197","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino_pic_digerleri","category-esp32-proje","category-mit-app-inventor-2","category-proteus"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/3197","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=3197"}],"version-history":[{"count":3,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/3197\/revisions"}],"predecessor-version":[{"id":3232,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/posts\/3197\/revisions\/3232"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media\/3223"}],"wp:attachment":[{"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/media?parent=3197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/categories?post=3197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mikrobotik.com\/wp2\/wp-json\/wp\/v2\/tags?post=3197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}