{"id":341,"date":"2015-02-06T10:54:00","date_gmt":"2015-02-06T03:54:00","guid":{"rendered":"http:\/\/ulfi.dara.bagus.my.id\/?p=341"},"modified":"2015-02-06T10:54:37","modified_gmt":"2015-02-06T03:54:37","slug":"interfacing-sensor-posisi-as5311-dengan-mikrokontroler","status":"publish","type":"post","link":"https:\/\/ulfi.dara.bagus.my.id\/?p=341","title":{"rendered":"Interfacing Sensor Posisi AS5311 dengan Mikrokontroler"},"content":{"rendered":"<p align=\"justify\">Seperti yang telah dijelaskan pada artikel terdahulu mengenai pemilihan sensor posisi dan mengenai sensor posisi AS5311 dari Austrian Microsystem (AMS), sensor posisi AS5311 merupakan sensor posisi yang paling menjanjikan untuk digunakan pada proyek ini. Selain harganya relatif murah dibanding sensor posisi sejenis (i.e. LVDT, Capacitive Sensor), penggunaannya sangat mudah. <\/p>\n<p align=\"justify\">Pada artikel sebelumnya, rel CNC yang akan digunakan sebagai rel kamera mampu mencapai resolusi pergerakan linear sebesar 1,25um untuk setiap step motor. Untuk memanfaatkan hal ini, diperlukan sensor posisi yang memiliki resolusi lebih kecil dibanding resolusi pergerakan linear rel tersebut. Sensor posisi AS5311 ini memiliki resolusi sebesar 488nm (hampir setengah resolusi minimum pergerakan rel). Hal ini tentu sangat menjanjikan.<\/p>\n<p align=\"justify\">Sebagai tahap awal prototyping, saya menggunakan Arduino Uno (ATmega328) dan AS5311-AB (Adapter Board). Apabila prototyping memuaskan, maka desain PCB akan dilakukan dengan menyesuaikan dimensi sistem yang ada. Berikut ini adalah AS5311-AB yang digunakan.<\/p>\n<p align=\"justify\"><a href=\"http:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image10.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"image\" src=\"https:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image_thumb10.png\" width=\"299\" height=\"381\"><\/a><\/p>\n<p align=\"center\">AS5311 Adapter Board<\/p>\n<p align=\"justify\">Sebelum melangkah lebih jauh, mari kita lihat bagaimana indahnya AS5311 ini. <\/p>\n<p align=\"justify\"><a href=\"http:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image11.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"image\" src=\"https:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image_thumb11.png\" width=\"700\" height=\"470\"><\/a><\/p>\n<p align=\"center\">AS5311 Block Diagram<\/p>\n<p align=\"justify\">Seperti yang terlihat pada diagram blok, AS5311 memiliki sensor magnet hall effect yang terintegrasi di dalamnya dengan Digital Signal Processing yang juga terintegrasi di dalamnya. AS5311 memiliki tiga buah interface yang dapat digunakan yaitu PWM (Pulse-Width Modulation) Interface, Absolute Interface berupa Synchronous Serial Interface, dan Incremental Interface berupa counter. <\/p>\n<p align=\"justify\"><a href=\"http:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image12.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"image\" src=\"https:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image_thumb12.png\" width=\"700\" height=\"465\"><\/a><\/p>\n<p align=\"center\">AS5311 Timing Diagram untuk PWM (Pulse Width Modulation) Interface<\/p>\n<p align=\"justify\"><a href=\"http:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image13.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"image\" src=\"https:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image_thumb13.png\" width=\"700\" height=\"314\"><\/a><\/p>\n<p align=\"center\">AS5311 Timing Diagram untuk Incremental Output Interface<\/p>\n<p align=\"justify\">Pada kesempatan ini, kita akan menggunakan Synchronous Serial Interface yang kemudian dihubungkan ke interface SPI (Serial Peripheral Interface) pada ATmega di Arduino. SPI merupakan interface yang paling mudah digunakan pada AS5311. Pembacaan sinyal PWM akan lebih sulit dilakukan sedangkan pembacaan incremental output memerlukan counter khusus yang juga akan lebih rumit dilakukan. Timing diagram untuk interface SPI adalah sebagai berikut. Kemampuan kecepatan SPI AS5311 ini adalah 1 MHz.<\/p>\n<p align=\"justify\">1. Mode 0<\/p>\n<p align=\"justify\"><a href=\"http:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image14.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"https:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image_thumb14.png\" width=\"700\" height=\"268\"><\/a><\/p>\n<p align=\"justify\">2. Mode 1<\/p>\n<p align=\"justify\"><a href=\"http:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image15.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"https:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image_thumb15.png\" width=\"700\" height=\"288\"><\/a><\/p>\n<p align=\"justify\">Perbedaan Mode 0 dan Mode 1 adalah dari data yang dikirimkan.<\/p>\n<p align=\"justify\">Mode 0<\/p>\n<p align=\"justify\">D11&#8230;D0 : Nilai posisi absolut (0\u20264095) sensor AS5311 terhadap sepasang pole magnet (2 mm).<br \/>OCF : Offset Compensation Finished. D11\u2026D0 valid apabila OCF bernilai 1.<br \/>COF: CORDIC Overflow. D11\u2026D0 akan invalid apabila COF bernilai 1.<br \/>LIN: Linearity Indicator. LIN bernilai HIGH menandakan ada masalah pada posisi magnet yang menyebabkan pembacaan berpotensi tidak linear. D11\u2026D0 kemungkinan invalid.<br \/>MagINC: Magnetic Increase, mendeteksi perubahan medan magnet yang mendekat ke sensor.<br \/>MagDEC: Magnetic Decrease, mendeteksi perubahan medan magnet yang menjauh dari sensor.<br \/>EvenPAR: Even Parity, untuk melakukan error detection pada transmisi.<\/p>\n<p align=\"justify\">Mode 1<\/p>\n<p align=\"justify\">M11&#8230;M0 : Nilai kekuatan absolut (0\u20264095) medan magnet terhadap sensor. Nilai 0 atau dekat dengan 0 menandakan magnet tidak tersedia. Hanya M11\u2026M4 yang digunakan.<br \/>OCF : Offset Compensation Finished. M11\u2026M0 valid apabila OCF bernilai 1.<br \/>COF: CORDIC Overflow. D11\u2026D0 akan invalid apabila COF bernilai 1.<br \/>LIN: Linearity Indicator. LIN bernilai HIGH menandakan ada masalah pada posisi magnet yang menyebabkan pembacaan berpotensi tidak linear. M11\u2026M0 kemungkinan invalid.<br \/>MagINC: Magnetic Increase, mendeteksi perubahan medan magnet yang mendekat ke sensor.<br \/>MagDEC: Magnetic Decrease, mendeteksi perubahan medan magnet yang menjauh dari sensor.<br \/>EvenPAR: Even Parity, untuk melakukan error detection pada transmisi.<\/p>\n<p align=\"justify\">&nbsp;<\/p>\n<p align=\"justify\">Untuk mengubah Mode transmisi dilakukan hal berikut.<\/p>\n<p align=\"justify\">Untuk Mode 0, Clock pada SCK harus bernilai HIGH saat CSn (Enable) berubah dari HIGH ke LOW.<br \/>Untuk Mode 1, Clock pada SCK harus bernilai LOW saat CSn (Enable) berubah dari LOW ke HIGH.<\/p>\n<p align=\"justify\">Data hanya valid bila memenuhi kondisi berikut ini.<br \/><a href=\"http:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image16.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"https:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image_thumb16.png\" width=\"700\" height=\"143\"><\/a><\/p>\n<p align=\"justify\">Informasi yang tergantung pada M11\u2026M4 dapat dikombinasikan dengan informasi yang terdapat pada MagINC dan MagDEC untuk mengukur kekuatan medan magnet.<\/p>\n<p align=\"justify\"><a href=\"http:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image17.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"https:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image_thumb17.png\" width=\"700\" height=\"332\"><\/a><\/p>\n<p align=\"justify\">&nbsp;<\/p>\n<p align=\"justify\">Sekarang saatnya kita melakukan interfacing AS5311 dengan ATMega. Setelah beberapa percobaan, diperoleh timing diagram pengiriman data SPI yang tidak terambil sempurna. Setiap siklus pembacaan data dari SPI diperlukan pembacaan 3 byte data. Struktur pembacaan ketiga byte data tersebut diberikan sebagai berikut. (X = Data Sampah \/ Junk data)<\/p>\n<p align=\"justify\">Byte-0 : X \u2013 D11 \u2013 D10 \u2013 D9 \u2013 D8 \u2013 D7 \u2013 D6 \u2013 D5&nbsp;&nbsp;&nbsp; atau&nbsp; X \u2013 M11 \u2013 M10 \u2013 M9 \u2013 M8 \u2013 M7 \u2013 M6 \u2013 M5&nbsp;&nbsp;&nbsp; <br \/>Byte-1 : D4 \u2013 D3 \u2013 D2 \u2013 D1 \u2013 D0 \u2013 OCF \u2013 COF \u2013 LIN atau M4 \u2013 M3 \u2013 M2 \u2013 M1 \u2013 M0 \u2013 OCF \u2013 COF \u2013 LIN<br \/>Byte-2 : MagINC \u2013 MagDEC \u2013 EvenPAR \u2013 X \u2013 X \u2013 X \u2013 X \u2013 X <\/p>\n<p align=\"justify\">Clock SPI harus diset maksimum 1 MHz. Sedangkan mode data pada SPI adalah MSB First. Selain itu, Clock Polarity dan Clock Edge diatur sebagai berikut.<br \/>Untuk Data Mode 0 : SPI MODE 3 (CPOL=1, CPHA = 1)<br \/>Untuk Data Mode 1 : SPI MODE 1 (CPOL=0, CPHA = 1)<\/p>\n<p align=\"justify\">Berikut ini adalah kode Arduino untuk pembacaan AS5311<\/p>\n<blockquote>\n<p>#include &lt;SPI.h&gt;<br \/>#define MOSI 11 \/\/ MOSI<br \/>#define MISO 12 \/\/ MISO<br \/>#define SCK 13 \/\/SCK<br \/>#define SS 10 \/\/ SS<\/p>\n<p>int SPI_FirstByte;<br \/>int SPI_SecondByte;<br \/>int SPI_ThirdByte;<br \/>int POSITION_LOW;<br \/>int POSITION_HIGH;<br \/>int POSITION;<br \/>int MAGNITUDE_LOW;<br \/>int MAGNITUDE_HIGH;<br \/>int MAGNITUDE;<br \/>int OCF;<br \/>int COF;<br \/>int LIN;<br \/>int MagINC;<br \/>int MagDEC;<br \/>int EvenPAR;<\/p>\n<p>void setup()<br \/>{<br \/>&nbsp; Serial.begin(9600);<br \/>&nbsp; pinMode(SS, OUTPUT);<br \/>&nbsp; digitalWrite(SS,HIGH);<br \/>&nbsp; SPI.begin();<br \/>&nbsp; SPI.setBitOrder(MSBFIRST);<br \/>&nbsp; SPI.setDataMode(SPI_MODE2);<br \/>&nbsp; SPI.setClockDivider(SPI_CLOCK_DIV16);<br \/>}<br \/>&nbsp; <br \/>&nbsp; <br \/>void loop()<br \/>{<br \/>&nbsp;&nbsp;&nbsp; \/\/ Acquiring Mode 0<br \/>&nbsp;&nbsp;&nbsp; SPI.setDataMode(SPI_MODE3);<br \/>&nbsp;&nbsp;&nbsp; digitalWrite(SS,LOW);<br \/>&nbsp;&nbsp;&nbsp; SPI_FirstByte=SPI.transfer(0xEF);<br \/>&nbsp;&nbsp;&nbsp; SPI_SecondByte=SPI.transfer(0xFE);<br \/>&nbsp;&nbsp;&nbsp; SPI_ThirdByte=SPI.transfer(0xFF);<br \/>&nbsp;&nbsp;&nbsp; digitalWrite(SS,HIGH);<br \/>&nbsp;&nbsp;&nbsp; POSITION_HIGH = SPI_FirstByte;<br \/>&nbsp;&nbsp;&nbsp; POSITION_LOW = (SPI_SecondByte&gt;&gt;3)&amp;(0x1F);<br \/>&nbsp;&nbsp;&nbsp; POSITION = (POSITION_HIGH&lt;&lt;5) | POSITION_LOW;<br \/>&nbsp;&nbsp;&nbsp; OCF = (SPI_SecondByte &amp; 0x04) &gt;&gt; 2;<br \/>&nbsp;&nbsp;&nbsp; COF = (SPI_SecondByte &amp; 0x02) &gt;&gt; 1;<br \/>&nbsp;&nbsp;&nbsp; LIN = (SPI_SecondByte &amp; 0x01);<br \/>&nbsp;&nbsp;&nbsp; MagINC = (SPI_ThirdByte &amp; 0x80) &gt;&gt;7;<br \/>&nbsp;&nbsp;&nbsp; MagDEC = (SPI_ThirdByte &amp; 0x40) &gt;&gt;6;<br \/>&nbsp;&nbsp;&nbsp; EvenPAR = (SPI_ThirdByte &amp; 0x20) &gt;&gt;5;<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;Position: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(POSITION,DEC);<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;OCF: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(OCF,BIN);<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;COF: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(COF,BIN);<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;LIN: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(LIN,BIN);<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;MagINC: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(MagINC,BIN);<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;MagDEC: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(MagDEC,BIN);<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;EvenPAR: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(EvenPAR,BIN);<br \/>&nbsp;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;&nbsp; \/\/ Acquiring Mode 1<br \/>&nbsp;&nbsp;&nbsp; SPI.setDataMode(SPI_MODE0);<br \/>&nbsp;&nbsp;&nbsp; digitalWrite(SS,LOW);<br \/>&nbsp;&nbsp;&nbsp; SPI_FirstByte=SPI.transfer(0xEF);<br \/>&nbsp;&nbsp;&nbsp; SPI_SecondByte=SPI.transfer(0xFE);<br \/>&nbsp;&nbsp;&nbsp; SPI_ThirdByte=SPI.transfer(0xFF);<br \/>&nbsp;&nbsp;&nbsp; digitalWrite(SS,HIGH);<br \/>&nbsp;&nbsp;&nbsp; MAGNITUDE_HIGH = SPI_FirstByte;<br \/>&nbsp;&nbsp;&nbsp; MAGNITUDE_LOW = (SPI_SecondByte&gt;&gt;3)&amp;(0x1F);<br \/>&nbsp;&nbsp;&nbsp; MAGNITUDE = ((MAGNITUDE_HIGH&lt;&lt;5) | MAGNITUDE_LOW)&gt;&gt;4;<br \/>&nbsp;&nbsp;&nbsp; OCF = (SPI_SecondByte &amp; 0x04) &gt;&gt; 2;<br \/>&nbsp;&nbsp;&nbsp; COF = (SPI_SecondByte &amp; 0x02) &gt;&gt; 1;<br \/>&nbsp;&nbsp;&nbsp; LIN = (SPI_SecondByte &amp; 0x01);<br \/>&nbsp;&nbsp;&nbsp; MagINC = (SPI_ThirdByte &amp; 0x80) &gt;&gt;7;<br \/>&nbsp;&nbsp;&nbsp; MagDEC = (SPI_ThirdByte &amp; 0x40) &gt;&gt;6;<br \/>&nbsp;&nbsp;&nbsp; EvenPAR = (SPI_ThirdByte &amp; 0x20) &gt;&gt;5;<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;Magnitude: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(MAGNITUDE,HEX);<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;OCF: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(OCF,BIN);<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;COF: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(COF,BIN);<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;LIN: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(LIN,BIN);<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;MagINC: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(MagINC,BIN);<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;MagDEC: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(MagDEC,BIN);<br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;EvenPAR: &#8220;);<br \/>&nbsp;&nbsp;&nbsp; Serial.println(EvenPAR,BIN);<br \/>&nbsp;&nbsp;&nbsp; <br \/>&nbsp;&nbsp;&nbsp; Serial.print(&#8220;\\n&#8221;);<br \/>&nbsp;&nbsp;&nbsp; delay(500);<br \/>}<\/p>\n<\/blockquote>\n<p align=\"justify\">Hasil pembacaan sensor tersebut sebagai berikut.<\/p>\n<p align=\"justify\"><a href=\"http:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image18.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"https:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/image_thumb18.png\" width=\"691\" height=\"677\"><\/a><\/p>\n<p align=\"justify\">Sementara, pengamatan di osiloskop.<\/p>\n<p align=\"justify\"><a href=\"http:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/DS0006.png\"><img loading=\"lazy\" decoding=\"async\" title=\"DS0006\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"DS0006\" src=\"https:\/\/ulfi.dara.bagus.my.id\/wp-content\/uploads\/2015\/02\/DS0006_thumb.png\" width=\"700\" height=\"514\"><\/a><\/p>\n<p>&nbsp;<\/p>\n<p align=\"justify\">Dari pengamatan tersebut kita dapat menyimpulkan sensor bekerja dengan baik dan cukup stabil. Pembacaan valid ditunjukkan oleh bit-bit status OCF, COF, LIN, MAGInc, MAGDec, dan MAG yang baik dan sesuai dengan spesifikasi.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Seperti yang telah dijelaskan pada artikel terdahulu mengenai pemilihan sensor posisi dan mengenai sensor posisi AS5311 dari Austrian Microsystem (AMS), sensor posisi AS5311 merupakan sensor posisi yang paling menjanjikan untuk digunakan pada proyek ini. Selain harganya relatif murah dibanding sensor posisi sejenis (i.e. LVDT, Capacitive Sensor), penggunaannya sangat mudah. Pada artikel sebelumnya, rel CNC yang [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[19],"tags":[],"_links":{"self":[{"href":"https:\/\/ulfi.dara.bagus.my.id\/index.php?rest_route=\/wp\/v2\/posts\/341"}],"collection":[{"href":"https:\/\/ulfi.dara.bagus.my.id\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ulfi.dara.bagus.my.id\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ulfi.dara.bagus.my.id\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ulfi.dara.bagus.my.id\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=341"}],"version-history":[{"count":1,"href":"https:\/\/ulfi.dara.bagus.my.id\/index.php?rest_route=\/wp\/v2\/posts\/341\/revisions"}],"predecessor-version":[{"id":342,"href":"https:\/\/ulfi.dara.bagus.my.id\/index.php?rest_route=\/wp\/v2\/posts\/341\/revisions\/342"}],"wp:attachment":[{"href":"https:\/\/ulfi.dara.bagus.my.id\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ulfi.dara.bagus.my.id\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ulfi.dara.bagus.my.id\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}