{"id":5533,"date":"2021-05-01T18:02:15","date_gmt":"2021-05-01T09:02:15","guid":{"rendered":"https:\/\/kats-eye.net\/info\/?p=5533"},"modified":"2021-05-04T20:08:52","modified_gmt":"2021-05-04T11:08:52","slug":"l6470_anal","status":"publish","type":"post","link":"https:\/\/kats-eye.net\/info\/2021\/05\/01\/l6470_anal\/","title":{"rendered":"\u30e9\u30ba\u30d1\u30a4\uff14\u3000\u79d2\u91dd\u89e3\u6790\u30fb\u30e2\u30fc\u30bf\u30fc\u4f4d\u7f6e\u6c7a\u3081\u4e26\u884c\u51e6\u7406"},"content":{"rendered":"\n<h2>\u6982\u8981<\/h2>\n\n\n\n<p>\u3000\u5148\u3005\u56de\u306e\u79d2\u91dd\u89e3\u6790\u51e6\u7406\u3068 \u5148\u56de\u306eL6470\u5229\u7528 \u30b9\u30c6\u30c3\u30d7\u30e2\u30fc\u30bf\u30fc\u99c6\u52d5\u306e\u5185\u5bb9\u3092\u30e9\u30ba\u30d1\u30a4\uff14\u3067\u4e26\u884c\u51e6\u7406\u3059\u308b\u691c\u8a0e\u3092\u3057\u307e\u3057\u305f\u3002\u6b21\u306e\u52d5\u753b\uff08\uff18\u500d\u901f\u518d\u751f\uff09\u306e\u901a\u308a\u3001\u5de6\u5074\u6642\u8a08\u79d2\u91dd\u3068\u30b9\u30c6\u30c3\u30d7\u30e2\u30fc\u30bf\u30fc\u306e\u77e2\u5370\u306f\u3001\u540c\u3058\u901f\u3055\u3067\u52d5\u3044\u3066\u3044\u307e\u3059\u3002<br>\u3000\u5b9f\u969b\u306b\u306f\u30b9\u30c6\u30c3\u30d7\u30e2\u30fc\u30bf\u30fc\u79fb\u52d5\u306f\u3001\u79d2\u91dd\u89e3\u6790\u7d50\u679c\u3092\u53cd\u6620\u3057\u3066\u3044\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u30e9\u30ba\u30d1\u30a4\u5074\u6642\u8a08\u306e\u7d4c\u904e\u6642\u9593\u3092\u7d76\u5bfe\u4f4d\u7f6e\u306b\u5909\u63db\u3057\u3066\u3001\u4f4d\u7f6e\u6c7a\u3081\u3092\u884c\u3063\u3066\u3044\u307e\u3059\u3002<br>\u3000\u4f4d\u7f6e\u6c7a\u3081\u306f\u3001\u79d2\u91dd\u89e3\u6790\u306e\u5909\u5316\uff08\u4f8b\uff1a\uff11\uff11 \u2192\uff11\uff12\u79d2\uff09\u3092\u30c8\u30ea\u30ac\u30fc\u306b\u3057\u3066\u3044\u307e\u3059\u3002\u3064\u307e\u308a\u3001\u4f55\u3089\u304b\u306e\u7406\u7531\u3067\u30b9\u30c6\u30c3\u30d7\u30e2\u30fc\u30bf\u30fc\u304c  \u201cBUSY\u201d \u72b6\u614b\u306b\u3042\u308b\u5834\u5408\u3092\u9664\u304d\u3001\uff11\u79d2\u306b\uff11\u56de\u306e\u983b\u5ea6\u3067\u7d4c\u904e\u6642\u9593\u306b\u76f8\u5f53\u3059\u308b\u7d76\u5bfe\u4f4d\u7f6e\u306e\u8a08\u7b97\u3068\u4f4d\u7f6e\u6c7a\u3081\u52d5\u4f5c\u3092\u7e70\u308a\u8fd4\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video controls src=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/05\/20210501_L6470_sync.mp4\"><\/video><figcaption>\u30e9\u30ba\u30d1\u30a4\uff14\u3000\u79d2\u91dd\u89e3\u6790\u3068\u30b9\u30c6\u30c3\u30d7\u30e2\u30fc\u30bf\u30fc\u4f4d\u7f6e\u6c7a\u3081\u306e\u4e26\u884c\u51e6\u7406\uff08\uff18\u500d\u901f\u518d\u751f\uff09<br><br><br><\/figcaption><\/figure>\n\n\n\n<p>\u3000\u63a5\u7d9a\u306f\u5148\u56de\u306eL6470\u5229\u7528 \u30b9\u30c6\u30c3\u30d7\u30e2\u30fc\u30bf\u30fc\u99c6\u52d5\u306e\u63a5\u7d9a\u306bWEB\u30ab\u30e1\u30e9\uff08USB\u63a5\u7d9a\uff09\u3092\u8ffd\u52a0\u3057\u305f\u72b6\u614b\u3067\u3059\u3002<\/p>\n\n\n\n<h2>\u30d7\u30ed\u30b0\u30e9\u30e0<\/h2>\n\n\n\n<p>\u3000\u3000\u5148\u3005\u56de\u306e\u79d2\u91dd\u89e3\u6790\u51e6\u7406\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u30d9\u30fc\u30b9\u306b\u3001\u5148\u56de\u306eL6470\u5229\u7528 \u30b9\u30c6\u30c3\u30d7\u30e2\u30fc\u30bf\u30fc\u99c6\u52d5\u51e6\u7406\u306e\u5185\u5bb9\u3092\u90e8\u5206\u7684\u306b\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-file=\"L6470_Hough_Circles_Lines_02.py\" data-lang=\"Python\"><code>import cv2\nimport math\nimport numpy as np\nimport time\n\n# L6470 \u5229\u7528\u5bfe\u5fdc\nimport wiringpi as wp                   \nimport RPi.GPIO as GPIO\nimport struct\nimport sys\n\n# \u79d2\u91dd\u691c\u51fa\u5909\u6570\u521d\u671f\u5316 \nx3 = 0              \t\t\t# \u79d2\u91dd\u4e2d\u5fc3\u5ea7\u6a19\uff08\uff58\uff09\ny3 = 0              \t\t\t# \u79d2\u91dd\u4e2d\u5fc3\u5ea7\u6a19\uff08\uff59\uff09\nsec_trs=0           \t\t\t# \u7d4c\u904e\u6642\u9593\nang_pin=0           \t\t\t# \u79d2\u91dd\u89d2\u5ea6\nang_hsi=0           \t\t\t# \u88dc\u6b63\u89d2\u5ea6\npic_cnt=0           \t\t\t# \u753b\u50cf\u4fdd\u5b58\u679a\u6570\n\n# L6470 SPI\u30c1\u30e3\u30f3\u30cd\u30eb\u8a2d\u5b9a\u30fbGPIO\u8a2d\u5b9a\nSPI_CH = 0                              # SPI \u30c1\u30e3\u30f3\u30cd\u30eb\nSPI_HZ = 1000000                        # SPI \u901a\u4fe1\u901f\u5ea6\nGPIO_Nbr = 25                           # GPIO-NO\nGPIO.setmode(GPIO.BCM)                  # GPIO-NO \u6307\u5b9a\nGPIO.setup(GPIO_Nbr,GPIO.IN)            # GPIO INPUT \u6307\u5b9a\n\n# L6470\u521d\u671f\u8a2d\u5b9a    \ndef INIT_L6470():\n    spi_send([0x00,0x00,0x00,0xc0])     # Reset Device\n    spi_send([0x05,0x00,0x0e])          # Acceleration (12)\n    spi_send([0x06,0x00,0x0e])          # Deceleration (12)\n    spi_send([0x07,0x00,0x0e])          # Maximum speed (10)\n    spi_send([0x08,0x00,0x01])          # Minimum speed (13)\n    spi_send([0x15,0x03,0xFF])          # Full-step speed (10)\n    spi_send([0x16,0x03])               # Micro Step (8)\n    spi_send([0x09,0x50])               # Holding Kval (8)\n    spi_send([0x0A,0x50])               # Constant Speed Kval (8)\n    spi_send([0x0B,0x50])               # Acceleration starting Kval (8)\n    spi_send([0x0C,0x50])               # Deceleration starting Kbal (8)\n\n# SPI \u30c7\u30fc\u30bf\u9001\u4fe1\ndef spi_send(spi_dat_ary):\n    for itm in spi_dat_ary:\n        tmp=struct.pack(&quot;B&quot;,itm)\n        wp.wiringPiSPIDataRW(SPI_CH, tmp)\n        \n# JOG (SPEED\u6307\u5b9a : 0---30000)\ndef L6470_run(run_spd):\n    # \u65b9\u5411\u691c\u51fa\n    if (run_spd &gt; 0):\n        dir = 0x50\n        spd = run_spd\n    else:\n        dir = 0x51\n        spd = -1 * run_spd\n        \n    L6470_SEND_MOVE_CMD( dir , spd )\n\n# \u79fb\u52d5\u91cf\u6307\u5b9a\u79fb\u52d5\ndef L6470_POSITIONING(MV_DIST):\n    # \u65b9\u5411\u691c\u51fa\n    if (MV_DIST &gt; 0):\n        dir = 0x40\n    else:\n        dir = 0x41\n        MV_DIST = -1 * MV_DIST\n        \n    L6470_SEND_MOVE_CMD( dir , MV_DIST )\n\n# \u7d76\u5bfe\u4f4d\u7f6e\u6307\u5b9a\u79fb\u52d5\ndef L6470_MOVE_ABS(MV_DIST):\n    dir = 0x60\n    #dir = 0x69\n    if (MV_DIST &lt; 0):\n        MV_DIST = -1 * MV_DIST\n        \n    L6470_SEND_MOVE_CMD( dir , MV_DIST )\n        \n# \u30c7\u30fc\u30bf\u52a0\u5de5\u30fb\u9001\u4fe1\uff08\u5171\u901a\uff09\ndef L6470_SEND_MOVE_CMD( cmd , DAT ):\n    tmp=[]\n    tmp.append(cmd)\n    tmp.append((0x0F0000 & DAT) &gt;&gt; 16)\n    tmp.append((0x00FF00 & DAT) &gt;&gt; 8)\n    tmp.append((0x00FF & DAT))\n    spi_send(tmp)\n        \n\n# \u539f\u70b9\u8a2d\u5b9a\ndef L6470_SET_ORIGIN():\n    time.sleep(0.1)\n    spi_send([0xD8])                    # Reset Position\n    time.sleep(0.3)\n\n# \u539f\u70b9\u79fb\u52d5\ndef L6470_MOVE_ORIGIN():\n    spi_send([0x70])                    # Go Home\n    time.sleep(0.5)\n\n# \u30c9\u30e9\u30a4\u30d0\u30fcBUSY\u89e3\u9664\u5f85\u3061\ndef wait_until_not_busy():\n    while True:\n        time.sleep(0.2)\n        mtr_sts = GPIO.input(GPIO_Nbr)\n        #print(mtr_sts)\n        \n        if GPIO.input(GPIO_Nbr) == GPIO.HIGH :\n            print(&quot;L6470 NOT BUSY&quot;)\n            break    \n    time.sleep(0.2)\n\n\n\n##############################\ncapture = cv2.VideoCapture(0)\nif capture.isOpened() is False:\n  raise IOError\n\nwp.wiringPiSPISetup(SPI_CH,SPI_HZ)  \t# SPI \u63a5\u7d9a\nINIT_L6470()                        \t# L6470\u521d\u671f\u8a2d\u5b9a\nL6470_SET_ORIGIN()                  \t# \u539f\u70b9\u4f4d\u7f6e\u8a2d\u5b9a(0)\nwait_until_not_busy()               \t# \u30c9\u30e9\u30a4\u30d0\u30fcBUSY\u89e3\u9664\u5f85\u3061\n\nstart_time = time.time()\npassed_time_bef = 0\nloop_cn = 0\n\n# \u30eb\u30fc\u30d7\u51e6\u7406\nwhile(True):\n  try:\n    ret, frame = capture.read()\n    if ret is False:\n      raise IOError\n\n    frame = cv2.rotate(frame,cv2.ROTATE_180)\n    frm_h , frm_w , frm_ch = frame.shape[:3]\n    frm_tgt = frame[ 0:frm_h , 0:math.floor(frm_w\/2) ]\n    \n    img_gray = cv2.cvtColor(frm_tgt,cv2.COLOR_BGR2GRAY) \t# \u30b0\u30ec\u30a4\u5909\u63db\n    edges = cv2.Canny(img_gray,10,220,apertureSize=3)       \t# \u30a8\u30c3\u30b8\u691c\u51fa\n\n    # \u30cf\u30d5\u5909\u63db\u3067\u6642\u8a08\u90e8\u5186\u691c\u51fa \uff08\u534a\u5f84\u7b49\u6761\u4ef6\u8a2d\u5b9a\u306b\u3088\u308a\u3001\u6642\u8a08\u90e8\u306e\u307f\u691c\u51fa\u3059\u308b\u69d8\u306b\u3057\u3066\u3044\u308b\uff09\n    circles=cv2.HoughCircles(img_gray,cv2.HOUGH_GRADIENT,1,30,param1=70,param2=30,minRadius=80,maxRadius=110)\n    cnt_cntr=0\n    if circles is not None:\n      for cx,cy,r in circles.squeeze(axis=0).astype(int):\n        cv2.circle(frame,(cx,cy),r,(0,255,0),2)\n        cv2.circle(frame,(cx,cy),1,(0,0,255),3)\n        x3_tmp = cx\n        y3_tmp = cy\n        cnt_cntr = cnt_cntr + 1\n\n    if cnt_cntr==1:\n      x3 = x3_tmp\n      y3 = y3_tmp\n\n    if x3 &gt; 0 and y3 &gt; 0 :\n      # \u30cf\u30d5\u5909\u63db\u3067\u76f4\u7dda\u62bd\u51fa   \n      lines = cv2.HoughLinesP(edges, rho=1, theta=np.pi\/180, threshold=90,minLineLength=20,maxLineGap=5)\n      ang_hsi =0\n      \n      if lines is not None:  \n        for line in lines:\n          x1 , y1 , x2 , y2 = line[0]                       \t# \u691c\u51fa\u76f4\u7dda\u59cb\u70b9\u30fb\u7d42\u70b9\u5ea7\u6a19\u53d6\u5f97\n\n          # \u5186\u4e2d\u5fc3\u3068\u691c\u51fa\u3057\u305f\u76f4\u7dda\u306e\u8ddd\u96e2\u8a08\u7b97\n          u = np.array([ x2-x1 , y2-y1 ])\n          v = np.array([ x3-x1 , y3-y1 ])\n          D_CTR = math.floor(abs(np.cross(u,v) \/ np.linalg.norm(u))) \n          \n          D_P1 = math.sqrt((x1-x3)**2+(y1-y3)**2)           \t# \u5186\u4e2d\u5fc3\u3068\u76f4\u7dda\u59cb\u70b9\u306e\u8ddd\u96e2\u8a08\u7b97\n          D_P2 = math.sqrt((x2-x3)**2+(y2-y3)**2)           \t# \u5186\u4e2d\u5fc3\u3068\u76f4\u7dda\u7d42\u70b9\u306e\u8ddd\u96e2\u8a08\u7b97\n\n          # \u8ddd\u96e2\u304c\u77ed\u3044\u70b9\u3092\u59cb\u70b9\u3068\u3057\u3066\u89d2\u5ea6\u8a08\u7b97(\u30e9\u30b8\u30a2\u30f3)\n          if D_P1 &gt; D_P2 and D_CTR &lt; 10:\n            rslt_rad = math.atan2( y1-y2 , x1-x2 )\n          else :\n            rslt_rad = math.atan2( y2-y1 , x2-x1 ) \n            \n          rslt_ang = math.degrees(rslt_rad)                 \t# \u30e9\u30b8\u30a2\u30f3\u304b\u3089\u89d2\u5ea6\u5909\u63db\n\n          # \uff10\u79d2=\uff10\u5ea6\u3068\u3057\u3066\u3001\u89d2\u5ea6\u5909\u63db\n          if rslt_ang &gt; -90 :\n            rslt_ang_360 = rslt_ang + 90\n          else :\n            rslt_ang_360 = rslt_ang + 450\n\n          dsp_ang = str(math.floor(rslt_ang_360))\n  \n          if D_CTR &lt; 10:\n            # \u5186\u4e2d\u5fc3\u304b\u3089\u306e\u8ddd\u96e2\u304c\uff11\uff10\u4ee5\u4e0b \u2192 \u79d2\u91dd\u3068\u5224\u5b9a\n            cv2.putText(frame,dsp_ang,(x2,y2),cv2.FONT_HERSHEY_PLAIN,2,(255,0,255),1,cv2.LINE_AA)\n            cv2.line(frame,(x1,y1),(x2,y2),(255,0,255),3)   \t# \u79d2\u91dd\u63cf\u753b\uff08\u30d4\u30f3\u30af\uff09\n            ang_pin = rslt_ang_360\n      \n          else:\n            # \u79d2\u91dd\u4ee5\u5916\u306b\u691c\u51fa\u3057\u305f\u76f4\u7dda\n            if rslt_ang &lt; 15 and rslt_ang &gt; -15 and D_CTR &gt; 150 and D_CTR &lt; 220 and y1 &lt; y3 and y2 &lt; y3 :\n              # \u30b9\u30af\u30ea\u30fc\u30f3\u4e0a\u5074\u306e\u6c34\u5e73\u65b9\u5411\u76f4\u7dda\uff08\u50be\u304d\uff11\uff10\u5ea6\u4ee5\u5185 + \u4ed6\u6761\u4ef6\uff09\n              cv2.putText(frame,str(math.floor(rslt_ang))+&quot;,D&quot; + str(D_CTR),(x1,y1+30),cv2.FONT_HERSHEY_PLAIN,1,(255,125,0),1,cv2.LINE_AA)\n              cv2.line(frame,(x1,y1),(x2,y2),(255,255,0),3) \t# \u30b9\u30af\u30ea\u30fc\u30f3\u4e0a\u5074\u6c34\u5e73\u65b9\u5411\u76f4\u7dda\uff08\u6c34\u8272\uff09\n              ang_hsi = rslt_ang                            \t# \u88dc\u6b63\u89d2\u5ea6\u8a18\u61b6\n              \n            else:\n              # \u305d\u306e\u4ed6\u306e\u691c\u51fa\u3057\u305f\u76f4\u7dda\n              #cv2.putText(frame,str(math.floor(rslt_ang))+&quot;,D&quot; + str(D_CTR),(x1,y1-10),cv2.FONT_HERSHEY_PLAIN,1,(0,0,255),1,cv2.LINE_AA)\n              cv2.line(frame,(x1,y1),(x2,y2),(0,0,255),2)  \t# \u8d64\u8272\u76f4\u7dda\n           \n        \n  except KeyboardInterrupt:\n    cv2.putText(frame,&quot;Error&quot;,(25,25),cv2.FONT_HERSHEY_PLAIN,2,(0,0,255),1,cv2.LINE_AA)\n\n  # \u7d4c\u904e\u6642\u9593\u304b\u3089\u79fb\u52d5\u91cf\u8a08\u7b97\n  passed_time = math.floor(time.time() - start_time)\n  if loop_cn == 0 :\n    passed_time_bef = passed_time\n    loop_cn = loop_cn + 1\n\n  if passed_time_bef != passed_time :\n    if GPIO.input(GPIO_Nbr) == GPIO.HIGH :\n      PASSED_STEP = math.floor(passed_time * 1600 \/ 60)\t\t# \u79fb\u52d5\u5ea7\u6a19\u8a08\u7b97\n      L6470_MOVE_ABS(PASSED_STEP)               \t\t# \u79fb\u52d5\u91cf\u6307\u5b9a\u79fb\u52d5\n      \n      #cv2.putText(frame,&quot;TIME : &quot;+str(passed_time-passed_time_bef)+&quot;sec&quot;,(15,90),cv2.FONT_HERSHEY_PLAIN,3,(255,255,0),1,cv2.LINE_AA)\n      passed_time_bef = passed_time\n  \n\n  # \u89d2\u5ea6\u304b\u3089\u79d2\u306b\u5909\u63db\uff08\u79d2\u91dd\u50be\u304d\u3068\u88dc\u6b63\u89d2\u5ea6\u8003\u616e\uff09\n  sec_trs = math.floor( 60 * (ang_pin - ang_hsi) \/ 360 )\n  if sec_trs&lt;=0:\n    sec_trs = 60+sec_trs\n  if sec_trs&gt;=60:\n    sec_trs = sec_trs-60  \n\n  # \u7d4c\u904e\u6642\u9593\u30fb\u6642\u8a08\u90e8\u4e2d\u5fc3\u5ea7\u6a19\u7b49\u3001\u8868\u793a\u8ffd\u52a0\n  cv2.putText(frame,&quot;TIME : &quot;+str(sec_trs)+&quot;sec&quot;,(15,45),cv2.FONT_HERSHEY_PLAIN,3,(255,255,0),1,cv2.LINE_AA)\n  cv2.putText(frame,&quot;( Center Of Circle : &quot;+str(x3)+&quot; , &quot;+str(y3) + &quot; )&quot;,(350,25),cv2.FONT_HERSHEY_PLAIN,1,(0,255,255),1,cv2.LINE_AA)\n\n\n  edges_rgb=cv2.cvtColor(edges,cv2.COLOR_GRAY2RGB)        \t# \u753b\u50cf\u5408\u6210\u7528\u306b\u5909\u63db\n  cv2.putText(edges_rgb,&quot;Canny Edge Detection&quot;,(15,45),cv2.FONT_HERSHEY_PLAIN,3,(0,0,255),1,cv2.LINE_AA)\n\n  cv2.imshow(&#39;frame&#39;,frame)\n\n  time.sleep(0.09)\n  \n  # ESC\u3067\u51e6\u7406\u4e2d\u65ad\n  k = cv2.waitKey(1)\n  if k==27:\n    break\n\ncapture.release()\ncv2.destroyAllWindows()<\/code><\/pre><\/div>\n\n\n\n<h2>\u307e\u3068\u3081<\/h2>\n\n\n\n<p>\u3000\u753b\u50cf\u51e6\u7406\u3057\u306a\u304c\u3089\u30b9\u30c6\u30c3\u30d7\u30e2\u30fc\u30bf\u30fc\u5236\u5fa1\u3067\u304d\u308b\u304b\u3001\u5c11\u3057\u7591\u554f\u306b\u611f\u3058\u305f\u306e\u3067\u3001\u904e\u53bb\uff12\u56de\u306e\u5185\u5bb9\u3092\u5229\u7528\u3057\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\u3002\u51e6\u7406\u306e\u9045\u5ef6\u7b49\u306a\u304f\u3001\u30e9\u30ba\u30d1\u30a4\u3067\u3082\u3053\u306e\u69d8\u306a\u3053\u3068\u304c\u51fa\u6765\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002<br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6982\u8981 \u3000\u5148\u3005\u56de\u306e\u79d2\u91dd\u89e3\u6790\u51e6\u7406\u3068 \u5148\u56de\u306eL6470\u5229\u7528 \u30b9\u30c6\u30c3\u30d7\u30e2\u30fc\u30bf\u30fc\u99c6\u52d5\u306e\u5185\u5bb9\u3092\u30e9\u30ba\u30d1\u30a4\uff14\u3067\u4e26\u884c\u51e6\u7406\u3059\u308b\u691c\u8a0e\u3092\u3057\u307e\u3057\u305f\u3002\u6b21\u306e\u52d5\u753b\uff08\uff18\u500d\u901f\u518d\u751f\uff09\u306e\u901a\u308a\u3001\u5de6\u5074\u6642\u8a08\u79d2\u91dd\u3068\u30b9\u30c6\u30c3\u30d7\u30e2\u30fc\u30bf\u30fc\u306e\u77e2\u5370\u306f\u3001\u540c\u3058\u901f\u3055\u3067\u52d5\u3044\u3066\u3044\u307e\u3059\u3002\u3000\u5b9f &hellip; <a href=\"https:\/\/kats-eye.net\/info\/2021\/05\/01\/l6470_anal\/\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">\u30e9\u30ba\u30d1\u30a4\uff14\u3000\u79d2\u91dd\u89e3\u6790\u30fb\u30e2\u30fc\u30bf\u30fc\u4f4d\u7f6e\u6c7a\u3081\u4e26\u884c\u51e6\u7406<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":5536,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[110],"tags":[159,74,119,116,111],"_links":{"self":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts\/5533"}],"collection":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/comments?post=5533"}],"version-history":[{"count":13,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts\/5533\/revisions"}],"predecessor-version":[{"id":5552,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts\/5533\/revisions\/5552"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/media\/5536"}],"wp:attachment":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/media?parent=5533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/categories?post=5533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/tags?post=5533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}