{"id":5679,"date":"2021-05-14T19:53:17","date_gmt":"2021-05-14T10:53:17","guid":{"rendered":"https:\/\/kats-eye.net\/info\/?p=5679"},"modified":"2021-05-14T19:57:27","modified_gmt":"2021-05-14T10:57:27","slug":"raspi-julius-3","status":"publish","type":"post","link":"https:\/\/kats-eye.net\/info\/2021\/05\/14\/raspi-julius-3\/","title":{"rendered":"\u30e9\u30ba\u30d1\u30a4\uff14  \u30b3\u30ca\u30f3\u52c9\u5f37\u3057\u306a\u3055\u3044\uff08JULIUS\u5229\u7528 \u97f3\u58f0\u6307\u793a\uff09"},"content":{"rendered":"\n<h2>\u6982\u8981<\/h2>\n\n\n\n<p>\u3000Julius \u3067\u7279\u5b9a\u30d5\u30ec\u30fc\u30ba\u8a8d\u8b58\u6642\u306b\u3001python \u3067\u5404\u30d5\u30ec\u30fc\u30ba\u306b\u5bfe\u5fdc\u3059\u308b\u51e6\u7406\u3092\u884c\u3046\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002\u72ec\u81ea\u8f9e\u66f8\u3067\u30d5\u30ec\u30fc\u30ba\u3092\u5b9a\u7fa9\u30fb\u8d77\u52d5\u5f8c\u3001python \u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u97f3\u58f0\u8a8d\u8b58\u7d50\u679c\u306b\u5fdc\u3058\u305f\u51e6\u7406\u3092\u3057\u307e\u3059\u3002<br>\u3000\u4eca\u56de\u306f\u3001\u30e2\u30fc\u30bf\u30fc\u8ef8\u4e0a\u306e\u30b3\u30ca\u30f3\u30d5\u30a3\u30ae\u30e5\u30a2\u3092\u56de\u8ee2\u3055\u305b\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/05\/konan_command.mp4\"><\/video><figcaption>Julius\u3092\u4f7f\u7528\u3057\u30b3\u30ca\u30f3\u306b\u547d\u4ee4\u3057\u3066\u3044\u308b\u72b6\u6cc1\uff08\uff12\u500d\u901f\u518d\u751f\uff09<\/figcaption><\/figure>\n\n\n\n<p><br><br>\u3000\u52d5\u753b\u3067\u306f\u3001\u30b3\u30ca\u30f3\u5f8c\u308d\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u306b\u97f3\u58f0\u8a8d\u8b58\u7d50\u679c\u304c\u51fa\u529b\u3055\u308c\u3001\u30b3\u30ca\u30f3\u306f\u3053\u306e\u7d50\u679c\u306b\u5bfe\u5fdc\u3059\u308b\u56de\u8ee2\u52d5\u4f5c\u3092\u5b9f\u884c\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3000\u767a\u58f0\u30d5\u30ec\u30fc\u30ba\u3068\u56de\u8ee2\u52d5\u4f5c\u306e\u5185\u5bb9\u306f\u6b21\u8868\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter\"><table><tbody><tr><td><span class=\"has-inline-color has-green-color\"><strong>\u767a\u58f0\u30d5\u30ec\u30fc\u30ba<\/strong><\/span><\/td><td><strong><span class=\"has-inline-color has-green-color\">\u56de\u8ee2\u52d5\u4f5c\u5185\u5bb9<\/span><\/strong><\/td><\/tr><tr><td>\u307f\u304e\u3080\u3051\u307f\u304e<\/td><td>\u53f3\u306b\uff19\uff10\u5ea6\u56de\u8ee2<\/td><\/tr><tr><td>\u3072\u3060\u308a\u3080\u3051\u3072\u3060\u308a<\/td><td>\u5de6\u306b\uff19\uff10\u5ea6\u56de\u8ee2<\/td><\/tr><tr><td>\u307e\u308f\u308c\u307f\u304e<\/td><td>\u53f3\u306b\uff11\uff18\uff10\u5ea6\u56de\u8ee2<\/td><\/tr><tr><td>\u3082\u3068\u306b\u3082\u3069\u308c<\/td><td>\u6b63\u9762\u65b9\u5411\u306b\u623b\u308b<\/td><\/tr><tr><td>\u3079\u3093\u304d\u3087\u3046\u3057\u306a\u3055\u3044<\/td><td>\u52d5\u63fa\u3057\u3066\u3001\u7d04\uff13\u56de\u8ee2\u3057\u3066\u304b\u3089\u3001<br>\u6b63\u9762\u65b9\u5411\u306b\u623b\u308b<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<h2>Julius \u72ec\u81ea\u8f9e\u66f8\u4f5c\u6210\u3068\u8d77\u52d5<\/h2>\n\n\n\n<h5>\u2460  \u72ec\u81ea\u8f9e\u66f8\u4f5c\u6210<\/h5>\n\n\n\n<p>\u3000\u300c~\/julius\/dic_konan_cmd\u300d\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u305d\u306e\u76f4\u4e0b\u306b\u5148\u56de\u6295\u7a3f\u3068\u540c\u69d8\u3001\uff14\u3064\u306e\u300cyomi\u300d\u300cphone\u300d\u300cgrammer\u300d\u300cvoca\u300d\u3092\u4f5c\u6210\u5f8c\u3001\u300cdfa\u300d\u300cdict\u300d\u300cterm\u300d\u3092\u5909\u63db\uff08\uff1f\uff09\u30fb\u5f62\u6210\u3057\u307e\u3059\u3002<br>\u3000\u4eca\u56de\u3001\u4f5c\u6210\u3057\u305f\uff14\u3064\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u6b21\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\" data-file=\"KonanCmd.yomi\"><code>\u3053\u306a\u3093 \u3053\u306a\u3093\n\u307f\u304e\u3080\u3051\u307f\u304e \u307f\u304e\u3080\u3051\u307f\u304e\n\u3072\u3060\u308a\u3080\u3051\u3072\u3060\u308a \u3072\u3060\u308a\u3080\u3051\u3072\u3060\u308a\n\u307e\u308f\u308c\u307f\u304e \u307e\u308f\u308c\u307f\u304e\n\u3082\u3068\u306b\u3082\u3069\u308c \u3082\u3068\u306b\u3082\u3069\u308c\n\u3079\u3093\u304d\u3087\u3046\u3057\u306a\u3055\u3044 \u3079\u3093\u304d\u3087\u3046\u3057\u306a\u3055\u3044<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\" data-file=\"KonanCmd.phone\"><code>\u3053\u306a\u3093 k o n a N\n\u307f\u304e\u3080\u3051\u307f\u304e m i g i m u k e m i g i\n\u3072\u3060\u308a\u3080\u3051\u3072\u3060\u308a h i d a r i m u k e h i d a r i\n\u307e\u308f\u308c\u307f\u304e m a w a r e m i g i\n\u3082\u3068\u306b\u3082\u3069\u308c m o t o n i m o d o r e\n\u3079\u3093\u304d\u3087\u3046\u3057\u306a\u3055\u3044 b e N ky o u sh i n a s a i<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\" data-file=\"KonanCmd.grammar\"><code>S:NS_B KONAM NS_E\nKONAM : KONAN\nKONAM : MIGIMUKEMIGI\nKONAM : HIDARIMUKEHIDARI\nKONAM : MAWAREMIGI\nKONAM : MOTONIMODORE\nKONAM : BENKYOUSHINASAI<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\" data-file=\"KonanCmd.voca\"><code>% KONAN\n\u3053\u306a\u3093\tk o n a N\n% MIGIMUKEMIGI\n\u307f\u304e\u3080\u3051\u307f\u304e m i g i m u k e m i g i\n% HIDARIMUKEHIDARI\n\u3072\u3060\u308a\u3080\u3051\u3072\u3060\u308a h i d a r i m u k e h i d a r i\n% MAWAREMIGI\n\u307e\u308f\u308c\u307f\u304e m a w a r e m i g i\n% MOTONIMODORE\n\u3082\u3068\u306b\u3082\u3069\u308c m o t o n i m o d o r e\n% BENKYOUSHINASAI\n\u3079\u3093\u304d\u3087\u3046\u3057\u306a\u3055\u3044 b e N ky o u sh i n a s a i\n% NS_B\n[s] silB\n% NS_E\n[\/s] silE<\/code><\/pre><\/div>\n\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<h5>\u2461  Julius \u8d77\u52d5<\/h5>\n\n\n\n<p>\u3000\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u4e0b\u8a18\u30b3\u30de\u30f3\u30c9\u306b\u3088\u308a\u3001Julius \u3092\u8d77\u52d5\u3057\u307e\u3059\u30fb<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>julius -C ~\/julius\/julius-kit\/dictation-kit-v4.4\/am-gmm.jconf -nostrip -gram ~\/julius\/dic_konan_cmd\/KonanCmd -input mic -module<\/code><\/pre><\/div>\n\n\n\n<p>\u3000\u3000\u3000\u3000\u3000\u3000<\/p>\n\n\n\n<h2>python \u30d7\u30ed\u30b0\u30e9\u30e0<\/h2>\n\n\n\n<p>\u3000\u69cb\u6210\u306f\u3001\u30b9\u30c6\u30c3\u30d4\u30f3\u30b0\u30e2\u30fc\u30bf\u30fc\uff08\uff0bL6470\uff09\u3092\u63a5\u7d9a\u3057\u3066\u3044\u307e\u3059\u3002\u30e9\u30ba\u30d1\u30a4\u3068L6470\u63a5\u7d9a\u306f\u904e\u53bb\u6295\u7a3f\u3067\u8a18\u8f09\u3057\u3066\u3044\u307e\u3059\u306e\u3067\u7701\u7565\u3057\u307e\u3059\u3002<br>\u3000\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u5148\u56de\u6295\u7a3f\u306eJulius\u97f3\u58f0\u8a8d\u8b58\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u30d9\u30fc\u30b9\u306b\u3001\u884c\u756a15\u301c120 \u3042\u305f\u308a\u306b  L6470\u5236\u5fa1\u306b\u95a2\u9023\u3059\u308b\u95a2\u6570\u3001\u884c\u756a187\u301c220 \u3042\u305f\u308a\u306b\u97f3\u58f0\u8a8d\u8b58\u7d50\u679c\u306b\u5bfe\u5fdc\u3059\u308b\u52d5\u4f5c\u30b9\u30c6\u30c3\u30d7\u6570\u8a2d\u5b9a\u30fb\u5b9f\u884c\u51e6\u7406\u3092\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=\"20210509_julius_L6470_003.py\" data-lang=\"Python\"><code>import socket\nimport time\nimport sys\n\nimport wiringpi as wp                   \nimport RPi.GPIO as GPIO\nimport struct\nimport time\n\nHOST = &#39;raspberrypi&#39;                                    # julius\u30b5\u30fc\u30d0\u30fc\u30db\u30b9\u30c8(IP\u30a2\u30c9\u30ec\u30b9)\nPORT = 10500                                            # julius\u30b5\u30fc\u30d0\u30fc\u306e\u5f85\u3061\u53d7\u3051\u30dd\u30fc\u30c8\nDATESIZE = 1024                                         # \u53d7\u4fe1\u30c7\u30fc\u30bf\u30d0\u30a4\u30c8\u6570\ns_Word =[&#39;WORD&#39; , &#39;CLASSID&#39; , &#39;PHONE&#39; , &#39;CM&#39;]           # \u691c\u7d22\u30ef\u30fc\u30c9\n\nSPI_CH = 0                                              # SPI \u30c1\u30e3\u30f3\u30cd\u30eb\nSPI_HZ = 1000000                                        # SPI \u901a\u4fe1\u901f\u5ea6\n\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\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,0xff])                          # 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    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# \u505c\u6b62\u6307\u4ee4\ndef L6470_STOP():\n    spi_send([0xB0])                    # SOFT STOP\n    time.sleep(0.2)\n    spi_send([0xA8])                    # Hard HiZ\n    time.sleep(0.2)\n\n# \u539f\u70b9\u8a2d\u5b9a\ndef L6470_SET_ORIGIN():\n    spi_send([0xD8])                    # Reset Position\n    time.sleep(0.5)\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# \u73fe\u5728\u4f4d\u7f6e\u304b\u3089\u539f\u70b9\u4f4d\u7f6e\u307e\u3067\u306e\u6700\u77ed\u30b9\u30c6\u30c3\u30d7\u6570\ndef calc_step(pos):\n    stp_mod =  cur_pos % 1600\n    if stp_mod &gt; 800 :\n        mv_stp = 1600 - stp_mod\n    else :\n        mv_stp = - 1 * stp_mod\n\n    return mv_stp\n\n\n##################################\n# \u30e1\u30a4\u30f3\u30d7\u30ed\u30b0\u30e9\u30e0\n##################################\n\nwp.wiringPiSPISetup(SPI_CH,SPI_HZ)           # SPI \u63a5\u7d9a\nINIT_L6470()                                                        # L6470\u521d\u671f\u8a2d\u5b9a\nL6470_SET_ORIGIN()                                         # \u539f\u70b9\u4f4d\u7f6e\u8a2d\u5b9a(0)\ncur_pos = 0                                                           # \u73fe\u5728\u4f4d\u7f6e\u521d\u671f\u5316\ntry:\n    # socket\u901a\u4fe1\u3067julius\u30b5\u30fc\u30d0\u30fc\u63a5\u7d9a\n    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n    sock.connect((HOST, PORT))\n\n    gData = &quot;&quot;                                                       # \u30b5\u30fc\u30d0\u30fc\u304b\u3089\u53d6\u5f97\u3057\u305f\u5168\u30c7\u30fc\u30bf\n    \n    # \u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\n    while True:\n                    \n        if &#39;&lt;\/RECOGOUT&gt;\\n&#39; in gData :             # \u30c7\u30fc\u30bf\u533a\u5207\uff08\u6700\u7d42\uff09\u5224\u5b9a &gt;&gt;&gt; \u53d6\u5f97\u30c7\u30fc\u30bf\u89e3\u6790\n            gWord = &quot;&quot;                                              # \u53d6\u5f97\u3057\u305f\u8a00\u8449\u3092\u683c\u7d0d\n            g_CM = &quot;&quot;                                                # \u5358\u8a9e\u4fe1\u983c\u5ea6\n            gCM_Ary = []                                          # \u5358\u8a9e\u4fe1\u983c\u5ea6\u683c\u7d0d\u914d\u5217\n            g_Score = &#39;&#39;                                             # \u5bfe\u6570\u5c24\u5ea6\uff08\u97f3\u97ff\u30b9\u30b3\u30a2\uff0b\u8a00\u8a9e\u30b9\u30b3\u30a2\uff09\n\n            # \u53d6\u5f97\u30c7\u30fc\u30bf\u3092\u4e00\u884c\u3065\u3064\u5206\u6790\n            for gLine in gData.split(&#39;\\n&#39;) :              # \u53d6\u5f97\u30c7\u30fc\u30bf\u3092\u6539\u884c\u30b3\u30fc\u30c9\u3067\u5206\u5272\n                gWrd_Inf = []                                       # \u4e00\u6642\u30c7\u30fc\u30bf\u683c\u7d0d\u7528\u914d\u5217\n\n                if gLine.find(&#39;&lt;WHYPO &#39;) != -1:       # \u5206\u5272\u884c\u5358\u4f4d\u3067\u30c7\u30fc\u30bf\u8a55\u4fa1\n                    for s_wrd in s_Word :                      # &#39;WORD&#39;,&#39;CLASSID&#39;,&#39;PHONE&#39;,&#39;CM&#39; \u306e\u30c7\u30fc\u30bf\u691c\u7d22\uff08\u30eb\u30fc\u30d7\u51e6\u7406\uff09\n                        wTmp=&quot;&quot;\n                        index = gLine.find( s_wrd + &#39;=&quot;&#39; )          # \u5bfe\u8c61\u30c7\u30fc\u30bf\u6709\u7121\u78ba\u8a8d\n\n                        if index != -1:\n                            idx_s = index + len(s_wrd + &#39;=&quot;&#39; )      # \u5bfe\u8c61\u30c7\u30fc\u30bf\u5148\u982d\u4f4d\u7f6e\u78ba\u8a8d\n                            idx_e = gLine.find(&#39;&quot;&#39; , idx_s )              # \u5bfe\u8c61\u30c7\u30fc\u30bf\u6700\u7d42\u4f4d\u7f6e\u78ba\u8a8d\n                            wTmp =  gLine[ idx_s : idx_e ]             # \u5bfe\u8c61\u30c7\u30fc\u30bf\u62bd\u51fa\n\n                        gWrd_Inf.append(wTmp)                           # \u4e00\u6642\u30c7\u30fc\u30bf\u683c\u7d0d\u7528\u914d\u5217\u30c7\u30fc\u30bf\u8ffd\u52a0\n    \n                    # \u7121\u97f3\u30e2\u30c7\u30eb\u975e\u8868\u793a\uff08silB:\u6587\u982d\uff0csilE\uff1a\u6587\u672b\uff0csp\uff1a\u5358\u8a9e\u9593\uff09 \n                    if gWrd_Inf[2] != &quot;silB&quot; and gWrd_Inf[2] != &quot;silE&quot; and gWrd_Inf[2] != &quot;sp&quot; :\n                        gWord = gWord + gWrd_Inf[0]\n                        gCM_Ary.append(float(gWrd_Inf[3]))\n                        \n                        g_CM = g_CM + gWrd_Inf[3] + &quot; &quot;\n                        # print(gWrd_Inf[0]+&quot;,&quot;+gWrd_Inf[1]+&quot;,&quot;+gWrd_Inf[2]+&quot;,&quot;+gWrd_Inf[3]+&quot;,&quot;+gLine)      # \u30c7\u30fc\u30bf\u78ba\u8a8d\u6642\u306b\u30b3\u30e1\u30f3\u30c8\u89e3\u9664\n\n                    elif gWrd_Inf[2] == &quot;sp&quot; :\n                        gWord = gWord + &quot; &quot;\n\n                elif gLine.find(&#39;&lt;SHYPO &#39;) != -1 :\n                    s_tmp = &#39;SCORE=&quot;&#39; \n                    index = gLine.find( s_tmp )                    # \u5bfe\u8c61\u30c7\u30fc\u30bf\u6709\u7121\u78ba\u8a8d\n                    if index != -1:\n                        idx_s = index + len(s_tmp)                # \u5bfe\u8c61\u30c7\u30fc\u30bf\u5148\u982d\u4f4d\u7f6e\u78ba\u8a8d\n                        idx_e = gLine.find(&#39;&quot;&#39; , idx_s )            # \u5bfe\u8c61\u30c7\u30fc\u30bf\u6700\u7d42\u4f4d\u7f6e\u78ba\u8a8d\n                        gScore =  gLine[ idx_s : idx_e ]         # \u5bfe\u8c61\u30c7\u30fc\u30bf\u62bd\u51fa\n                        \n\n            # \u30c7\u30fc\u30bf\u5206\u6790\u7d50\u679c\u8868\u793a\uff08\u6709\u52b9\u30c7\u30fc\u30bf\u672a\u78ba\u8a8d\u6642\u3001\u8868\u793a\u3057\u306a\u3044\uff09\n            if gWord.strip() != &quot;&quot; and len(gCM_Ary) &gt; 0 and gScore != &quot;&quot; :\n                gCM_Ave = round(sum(gCM_Ary) \/ len(gCM_Ary) , 3 )   # \u78ba\u4fe1\u5ea6\u306e\u5e73\u5747\u5024\u8a08\u7b97\n\n                # \u8a8d\u8b58\u7d50\u679c\u6700\u7d42\u5224\u5b9a\n                if gCM_Ave == 1 and min(gCM_Ary) == 1 and float(gScore) &lt; - 3000 :\n                    time.sleep(0.02)\n\n                    # \u52d5\u4f5c\u3057\u3066\u3044\u306a\u3044\u6642\u306b\u3001\u547d\u4ee4\u306b\u5bfe\u5fdc\u3059\u308b\u30b9\u30c6\u30c3\u30d7\u6570\u8a08\u7b97\n                    if GPIO.input(GPIO_Nbr) == GPIO.HIGH :\n                        act_f = 2\n                        rst_p = False\n                        mv_step = 0\n                        \n                        if gWord == &quot;\u307e\u308f\u308c\u307f\u304e&quot; :\n                            mv_step = - 800\n                            \n                        elif gWord == &quot;\u307f\u304e\u3080\u3051\u307f\u304e&quot; :\n                            mv_step = - 400\n                            \n                        elif gWord == &quot;\u3072\u3060\u308a\u3080\u3051\u3072\u3060\u308a&quot; :\n                            mv_step = 400\n\n                        elif gWord == &quot;\u3082\u3068\u306b\u3082\u3069\u308c&quot; :\n                            rst_p = True\n                            mv_step = calc_step(cur_pos) \n\n                        elif gWord == &quot;\u3079\u3093\u304d\u3087\u3046\u3057\u306a\u3055\u3044&quot; :\n                            rst_p = True\n                            mv_step = calc_step(cur_pos) + 4800\n \n                        else :\n                            act_f = 0\n                            \n\n                        if mv_step != 0:\n                            L6470_POSITIONING(mv_step)              # \u79fb\u52d5\u547d\u4ee4\n                            cur_pos = cur_pos + mv_step             # \u73fe\u5728\u4f4d\u7f6e\n\n                        if act_f &gt; 0 :\n                            print(&quot;[data] &quot; + gWord + &quot;     &lt;scr&gt;&quot; + gScore + &quot; &lt;ave&gt;&quot; + str(gCM_Ave))\n\n                        if rst_p :\n                            cur_pos = 0\n                            \n                    else :\n                        print(&quot;[BUSY]&quot;)\n\n            gData = &quot;&quot;                                              # \u53d7\u4fe1\u30c7\u30fc\u30bf\u521d\u671f\u5316\n            \n        else :\n            gData = gData + sock.recv(DATESIZE).decode(&#39;utf-8&#39;)     # \u30c7\u30fc\u30bf\u533a\u5207\uff08\u6700\u7d42\uff09\u691c\u51fa\u307e\u3067\u3001\u30c7\u30fc\u30bf\u8ffd\u52a0\u53d7\u4fe1\n        \n\n# \u30b5\u30fc\u30d0\u30fc\u63a5\u7d9a\u5931\u6557\nexcept socket.error :\n    print(&quot;Error : Server Connection Failed&quot;)\n    sys.exit()\n\n# \u7d42\u4e86\u51e6\u7406\nexcept KeyboardInterrupt :\n    print(&quot;Program End&quot;)\n    print(&quot;&quot;)\n    sock.send(&quot;DIE&quot;.encode(&#39;utf-8&#39;))\n    sock.close()<\/code><\/pre><\/div>\n\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<p>\u3000\u3000\u3000\u3000<\/p>\n\n\n\n<h2>\u307e\u3068\u3081<\/h2>\n\n\n\n<p>\u3000\u6700\u521d\u3001\u201c\u30b3\u30ca\u30f3\u201d \u3068\u547c\u3073\u639b\u3051\u305f\u5f8c\u306b\u6307\u793a\u3059\u308b\u3064\u3082\u308a\u3067\u3057\u305f\u304c\u3001\u304a\u305d\u3089\u304f \u300cvoca\u300d\u300cgrammer\u300d\u306e\u5b9a\u7fa9\u304c\u60aa\u3044\u306e\u3060\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u547c\u3073\u639b\u3051\u30fb\u6307\u793a  \u3092\u4e00\u9023\u306e\u30d5\u30ec\u30fc\u30ba\u3068\u8a8d\u8b58\u3057\u3066\u304f\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002<br>\u3000\u7d50\u679c\u7684\u306b\u306f\u3001\u96d1\u97f3\u3092 \u201c\u30b3\u30ca\u30f3\u201d \u3068\u8aa4\u8a8d\u8b58\u3057\u3001python \u3067\u9664\u53bb\u3067\u304d\u308b\u306e\u3067\u96d1\u97f3\u5bfe\u7b56\u306b\u306a\u308b\u3068\u3001\u90fd\u5408\u826f\u304f\u89e3\u91c8\u3057\u3066\u3044\u307e\u3059\u3002<br><br><br><br>\u3000<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6982\u8981 \u3000Julius \u3067\u7279\u5b9a\u30d5\u30ec\u30fc\u30ba\u8a8d\u8b58\u6642\u306b\u3001python \u3067\u5404\u30d5\u30ec\u30fc\u30ba\u306b\u5bfe\u5fdc\u3059\u308b\u51e6\u7406\u3092\u884c\u3046\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002\u72ec\u81ea\u8f9e\u66f8\u3067\u30d5\u30ec\u30fc\u30ba\u3092\u5b9a\u7fa9\u30fb\u8d77\u52d5\u5f8c\u3001python \u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u97f3\u58f0\u8a8d\u8b58\u7d50\u679c\u306b\u5fdc\u3058\u305f\u51e6\u7406\u3092\u3057\u307e\u3059\u3002\u3000\u4eca\u56de\u306f &hellip; <a href=\"https:\/\/kats-eye.net\/info\/2021\/05\/14\/raspi-julius-3\/\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">\u30e9\u30ba\u30d1\u30a4\uff14  \u30b3\u30ca\u30f3\u52c9\u5f37\u3057\u306a\u3055\u3044\uff08JULIUS\u5229\u7528 \u97f3\u58f0\u6307\u793a\uff09<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":5686,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[110],"tags":[163,74,116,111],"_links":{"self":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts\/5679"}],"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=5679"}],"version-history":[{"count":27,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts\/5679\/revisions"}],"predecessor-version":[{"id":5714,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts\/5679\/revisions\/5714"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/media\/5686"}],"wp:attachment":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/media?parent=5679"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/categories?post=5679"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/tags?post=5679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}