{"id":21899,"date":"2026-01-14T13:49:57","date_gmt":"2026-01-14T04:49:57","guid":{"rendered":"http:\/\/kassan.www2.jp\/?p=21899"},"modified":"2026-01-14T14:19:47","modified_gmt":"2026-01-14T05:19:47","slug":"%e4%ba%8c%e8%b6%b3%e6%ad%a9%e8%a1%8c%e3%83%ad%e3%83%9c%e3%83%83%e3%83%88%e3%80%8cotto%e3%80%8d%e3%81%9d%e3%81%ae%ef%bc%91","status":"publish","type":"post","link":"http:\/\/kassan.www2.jp\/?p=21899","title":{"rendered":"\u4e8c\u8db3\u6b69\u884c\u30ed\u30dc\u30c3\u30c8\u300cOTTO\u300d\u305d\u306e\uff11"},"content":{"rendered":"\n<p>\u30b5\u30fc\u30dc\u30e2\u30fc\u30bf\uff14\u3064\u3060\u3051\u3067\u7c21\u5358\u306a\u4e8c\u8db3\u6b69\u884c\u3059\u308b\u30ed\u30dc\u30c3\u30c8\u300cOTTO\u300d\uff12\uff10\uff12\uff15\u5e74\u5ea6\u306f\u3001\u3053\u308c\u3092\u69d8\u3005\u306a\u30de\u30a4\u30b3\u30f3\u3067\u52d5\u4f5c\u3055\u305b\u3066\u307f\u305f\u306e\u3067\u305d\u306e\u8a18\u9332\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1920\" height=\"1080\" src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-1.jpg\" alt=\"\" class=\"wp-image-21900\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-1.jpg 1920w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-1-300x169.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-1-640x360.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-1-768x432.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-1-1536x864.jpg 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n\n<p>OTTO\u306f\u30ad\u30c3\u30c8\u3082\uff15\uff10\uff10\uff10\u5186\u7a0b\u5ea6\u3067\u58f2\u3063\u3066\u306f\u3044\u308b\u304c\u3001\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u3067\u7b50\u4f53\u306e\uff13D\u30c7\u30fc\u30bf\u3082\u516c\u5f0f\u30b5\u30a4\u30c8\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u308b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1920\" height=\"1080\" src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-2.jpg\" alt=\"\" class=\"wp-image-21901\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-2.jpg 1920w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-2-300x169.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-2-640x360.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-2-768x432.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-2-1536x864.jpg 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n\n<p>\u3053\u308c\u306f\u300cNinjya\u300d\u30d0\u30fc\u30b8\u30e7\u30f3\u3000\u30d0\u30f3\u30d6\u30fc\u30e9\u30dc\u3067Gcode\u5316\u3057\u3066\uff13D\u30d7\u30ea\u30f3\u30c8<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1920\" height=\"1080\" src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-3.jpg\" alt=\"\" class=\"wp-image-21902\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-3.jpg 1920w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-3-300x169.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-3-640x360.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-3-768x432.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/otto-3-1536x864.jpg 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n\n<p>\u7b50\u4f53\u3068\u90e8\u54c1\u4e00\u5f0f\u3002\u76ee\u306e\u90e8\u5206\u306f\u8ddd\u96e2\u30bb\u30f3\u30b5\u3067\u306f\u306a\u304f\u5927\u578b\u306eLED\u3092\u4f7f\u7528\u3057\u3066\u4fa1\u683c\u3092\u6291\u3048\u305f\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"4032\" height=\"3024\" src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316.jpg\" alt=\"\" class=\"wp-image-21905\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316.jpg 4032w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316-300x225.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316-640x480.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316-768x576.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316-1536x1152.jpg 1536w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316-2048x1536.jpg 2048w\" sizes=\"(max-width: 4032px) 100vw, 4032px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"923\" height=\"602\" src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/4fc5300c28c6d8ed2faf6c6899e4a9a7.jpg\" alt=\"\" class=\"wp-image-21916\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/4fc5300c28c6d8ed2faf6c6899e4a9a7.jpg 923w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/4fc5300c28c6d8ed2faf6c6899e4a9a7-300x196.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/4fc5300c28c6d8ed2faf6c6899e4a9a7-640x417.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/4fc5300c28c6d8ed2faf6c6899e4a9a7-768x501.jpg 768w\" sizes=\"(max-width: 923px) 100vw, 923px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-file\"><object class=\"wp-block-file__embed\" data=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/3a87e710eb562e90c762250f0ea54500.pdf\" type=\"application\/pdf\" style=\"width:100%;height:600px\" aria-label=\"\u88fd\u4f5c\u30de\u30cb\u30e5\u30a2\u30eb\u306e\u57cb\u3081\u8fbc\u307f\u3002\"><\/object><a id=\"wp-block-file--media-20e87ee7-e81f-4307-9841-e9acf941e628\" href=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/3a87e710eb562e90c762250f0ea54500.pdf\" class=\"mtli_attachment mtli_pdf\">\u88fd\u4f5c\u30de\u30cb\u30e5\u30a2\u30eb<\/a><a href=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/3a87e710eb562e90c762250f0ea54500.pdf\" class=\"mtli_attachment mtli_pdf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-20e87ee7-e81f-4307-9841-e9acf941e628\">\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/a><\/div>\n\n\n\n<p>\u56de\u8def\u56f3\u3000\u30de\u30a4\u30b3\u30f3\u306f\u30aa\u30ea\u30b8\u30ca\u30eb\u306eAruduino Nano\u304b\u3089 RP-2040-Zero \u306b\u63db\u88c5\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"552\" height=\"480\" src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/dedfb2b3292663640c88b7b6440d4955-552x480.jpg\" alt=\"\" class=\"wp-image-21913\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/dedfb2b3292663640c88b7b6440d4955-552x480.jpg 552w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/dedfb2b3292663640c88b7b6440d4955-300x261.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/dedfb2b3292663640c88b7b6440d4955-768x668.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/dedfb2b3292663640c88b7b6440d4955.jpg 947w\" sizes=\"(max-width: 552px) 100vw, 552px\" \/><\/figure>\n\n\n\n<p>\u982d\u90e8\u306b\u53ce\u3081\u308b\u3088\u3046\u306b\uff15\uff15\uff4d\uff4d\u30b5\u30a4\u30ba\u306e\u57fa\u677f\u3092\u52a0\u5de5<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1920\" height=\"1080\" src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/588250246eb10620987879d9352412ab.jpg\" alt=\"\" class=\"wp-image-21914\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/588250246eb10620987879d9352412ab.jpg 1920w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/588250246eb10620987879d9352412ab-300x169.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/588250246eb10620987879d9352412ab-640x360.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/588250246eb10620987879d9352412ab-768x432.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/588250246eb10620987879d9352412ab-1536x864.jpg 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n\n<p>\u88fd\u4f5c\u30de\u30cb\u30e5\u30a2\u30eb<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"654\" height=\"915\" src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/302ba7ded488311649043ed2464881de.jpg\" alt=\"\" class=\"wp-image-21915\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/302ba7ded488311649043ed2464881de.jpg 654w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/302ba7ded488311649043ed2464881de-214x300.jpg 214w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/302ba7ded488311649043ed2464881de-343x480.jpg 343w\" sizes=\"(max-width: 654px) 100vw, 654px\" \/><\/figure>\n\n\n\n<p>\u88fd\u4f5c\u306e\u69d8\u5b50\uff08\u4f53\u9a13\u5165\u5b66\uff09<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"480\" data-id=\"21904\"  src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8310-640x480.jpg\" alt=\"\" class=\"wp-image-21904\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8310-640x480.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8310-300x225.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8310-768x576.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8310-1536x1152.jpg 1536w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8310-2048x1536.jpg 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"480\" data-id=\"21905\"  src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316-640x480.jpg\" alt=\"\" class=\"wp-image-21905\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316-640x480.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316-300x225.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316-768x576.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316-1536x1152.jpg 1536w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8316-2048x1536.jpg 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"360\" height=\"480\" data-id=\"21906\"  src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8323-360x480.jpg\" alt=\"\" class=\"wp-image-21906\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8323-360x480.jpg 360w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8323-225x300.jpg 225w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8323-768x1024.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8323-1152x1536.jpg 1152w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8323-1536x2048.jpg 1536w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"480\" data-id=\"21907\"  src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8338-640x480.jpg\" alt=\"\" class=\"wp-image-21907\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8338-640x480.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8338-300x225.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8338-768x576.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8338-1536x1152.jpg 1536w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8338-2048x1536.jpg 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"480\" data-id=\"21908\"  src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8345-640x480.jpg\" alt=\"\" class=\"wp-image-21908\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8345-640x480.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8345-300x225.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8345-768x576.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8345-1536x1152.jpg 1536w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8345-2048x1536.jpg 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"480\" data-id=\"21909\"  src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8349-640x480.jpg\" alt=\"\" class=\"wp-image-21909\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8349-640x480.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8349-300x225.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8349-768x576.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8349-1536x1152.jpg 1536w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8349-2048x1536.jpg 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"480\" data-id=\"21910\"  src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8352-640x480.jpg\" alt=\"\" class=\"wp-image-21910\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8352-640x480.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8352-300x225.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8352-768x576.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8352-1536x1152.jpg 1536w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8352-2048x1536.jpg 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"480\" data-id=\"21911\"  src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8353-640x480.jpg\" alt=\"\" class=\"wp-image-21911\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8353-640x480.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8353-300x225.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8353-768x576.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8353-1536x1152.jpg 1536w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8353-2048x1536.jpg 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"640\" height=\"480\" data-id=\"21912\"  src=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8358-640x480.jpg\" alt=\"\" class=\"wp-image-21912\" srcset=\"http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8358-640x480.jpg 640w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8358-300x225.jpg 300w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8358-768x576.jpg 768w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8358-1536x1152.jpg 1536w, http:\/\/kassan.www2.jp\/wp-content\/uploads\/2026\/01\/IMG_8358-2048x1536.jpg 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>\u96fb\u6e90\u30b9\u30a4\u30c3\u30c1\u3092\u30aa\u30f3\u30aa\u30d5\u3059\u308b\u305f\u3073\u306b\u3001\u6b69\u884c\u30d1\u30bf\u30fc\u30f3\u304c\u5909\u5316\u3059\u308b\u3088\u3046\u306b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3057\u305f<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-pale-cyan-blue-background-color has-background\">from machine import Pin, PWM\r\nfrom time import sleep\r\nimport sys,os\r\n\r\nLL = PWM(Pin(2))\t# \u30ec\u30d5\u30c8\u30ec\u30c3\u30b0\r\nRL = PWM(Pin(3))\t# \u30e9\u30a4\u30c8\u30ec\u30c3\u30b0\r\nLF = PWM(Pin(4))\t# \u30ec\u30d5\u30c8\u30d5\u30c3\u30c8\r\nRF = PWM(Pin(5))\t# \u30e9\u30a4\u30c8\u30d5\u30c3\u30c8\r\n\r\nLED_RIGHT = Pin(26,Pin.OUT)\r\nLED_LEFT  = Pin(15,Pin.OUT)\r\n\r\nSP = PWM(Pin(14))  \t# GP14 \u306b PWM \u51fa\u529b\r\n\r\nLL.freq(50)  # \u30b5\u30fc\u30dc\u30e2\u30fc\u30bf\u30fc\u306f50Hz\u3067\u5236\u5fa1\r\nRL.freq(50)  \r\nLF.freq(50)  \r\nRF.freq(50)  \r\n\r\n#V1\r\n#LLS = 96\t# \u30ec\u30d5\u30c8\u30ec\u30c3\u30b0\u3000\u76f4\u7acb\u6642\u306e\u89d2\u5ea6\r\n#RLS = 92\t# \u30e9\u30a4\u30c8\u30ec\u30c3\u30b0\r\n#LFS = 97\t# \u30ec\u30d5\u30c8\u30d5\u30c3\u30c8\r\n#RFS = 80\t# \u30e9\u30a4\u30c8\u30d5\u30c3\u30c8\r\n\r\n#V2\r\nLLS = 102\t# \u30ec\u30d5\u30c8\u30ec\u30c3\u30b0\u3000\u76f4\u7acb\u6642\u306e\u89d2\u5ea6\r\nRLS = 92\t# \u30e9\u30a4\u30c8\u30ec\u30c3\u30b0\r\nLFS = 97\t# \u30ec\u30d5\u30c8\u30d5\u30c3\u30c8\r\nRFS = 80\t# \u30e9\u30a4\u30c8\u30d5\u30c3\u30c8\r\n\r\nLLN = LLS\t# \u30ec\u30d5\u30c8\u30ec\u30c3\u30b0\u3000\u73fe\u5728\u306e\u89d2\u5ea6\r\nRLN = RLS\t# \u30e9\u30a4\u30c8\u30ec\u30c3\u30b0\r\nLFN = LFS\t# \u30ec\u30d5\u30c8\u30d5\u30c3\u30c8\r\nRFN = RFS\t# \u30e9\u30a4\u30c8\u30d5\u30c3\u30c8\r\n\r\nMIN_DUTY = 500 * 65535 \/\/ 20000  # 500\u03bcs\u309216\u30d3\u30c3\u30c8\u30b9\u30b1\u30fc\u30eb\u3067\r\nMAX_DUTY = 2400 * 65535 \/\/ 20000  # 2400\u03bcs\u309216\u30d3\u30c3\u30c8\u30b9\u30b1\u30fc\u30eb\u3067\r\nDUTY_RANGE = MAX_DUTY - MIN_DUTY  # \u5dee\u5206\u3092\u5b9a\u6570\u3068\u3057\u3066\u8a08\u7b97\r\n\r\n\r\ndef angle_to_duty(angle):\t\t\t# \u89d2\u5ea6\u3092\u30c7\u30e5\u30fc\u30c6\u30a3\u30fc\u6bd4\u306b\u5909\u63db\u3059\u308b\u95a2\u6570\r\n    #angle = angle + 90\r\n    return int(MIN_DUTY + DUTY_RANGE * angle \/\/ 180)\r\n\r\ndef angle_to_angle(servo1,s_angle1,e_angle1,servo2,s_angle2,e_angle2,ms):\r\n    if s_angle1 &lt; e_angle1 :\r\n        as1 = 1\r\n    else:\r\n        as1 = -1\r\n        \r\n    if s_angle2 &lt; e_angle2 :\r\n        as2 = 1\r\n    else:\r\n        as2 = -1\r\n\r\n    angle1 = s_angle1\r\n    angle2 = s_angle2\r\n    \r\n    f1=0\r\n    f2=0\r\n    while True:\r\n        if angle1 != e_angle1 :\r\n            angle1 += as1\r\n            servo1.duty_u16(angle_to_duty(angle1))\r\n        else:\r\n            f1=1\r\n            \r\n        if angle2 != e_angle2 :\r\n            angle2 += as2\r\n            servo2.duty_u16(angle_to_duty(angle2))\r\n        else:\r\n            f2=1\r\n        sleep(ms)\r\n        if f1==1 and f2==1 :\r\n            break;\r\n\r\ndef sw():\r\n    sleep(0.01)\r\n    \r\ndef upright():\r\n    LL.duty_u16(angle_to_duty(LLS))\r\n    RL.duty_u16(angle_to_duty(RLS))\r\n    LF.duty_u16(angle_to_duty(LFS))\r\n    RF.duty_u16(angle_to_duty(RFS))\r\n\r\ndef forward_walk(step_time,ms):\r\n    RF.duty_u16(angle_to_duty(RFS -30))\r\n    LF.duty_u16(angle_to_duty(LFS -15))\r\n    sleep(step_time)\r\n\r\n    LL.duty_u16(angle_to_duty(LLS +25))\r\n    RL.duty_u16(angle_to_duty(RLS +25))\r\n    sleep(step_time)\r\n \r\n    LF.duty_u16(angle_to_duty(LFS +30))\r\n    RF.duty_u16(angle_to_duty(RFS +15))\r\n    sleep(step_time)\r\n     \r\n    LL.duty_u16(angle_to_duty(LLS -25))\r\n    RL.duty_u16(angle_to_duty(RLS -25))\r\n    sleep(step_time)\r\n\r\ndef forward_walk2(step_time,ms):\r\n    global LLN,RLN,LFN,RFN\r\n    angle_to_angle(RF,RFN,RFS-30,LF,LFN,LFS-15,ms)\r\n    RFN = RFS-30\r\n    LFN = LFS-15\r\n    sleep(step_time)\r\n\r\n    angle_to_angle(LL,LLN,LLS+25,RL,RLN,RLS+25,ms)\r\n    LLN = LLS+25\r\n    RLN = RLS+25\r\n    sleep(step_time)\r\n \r\n    angle_to_angle(LF,LFN,LFS+30,RF,RFN,RFS+15,ms)\r\n    LFN = LFS+30\r\n    RFN = RFS+15\r\n    sleep(step_time)\r\n     \r\n    angle_to_angle(LL,LLN,LLS-25,RL,RLN,RLS-25,ms)\r\n    LLN = LLS-25\r\n    RLN = RLS-25\r\n    sleep(step_time)\r\n    \r\ndef turn_left_walk(step_time,ms):\r\n    global LLN,RLN,LFN,RFN\r\n    angle_to_angle(RF,RFN,RFS-30,LF,LFN,LFS-15,ms)\r\n    RFN = RFS-30\r\n    LFN = LFS-15\r\n    sleep(step_time)\r\n\r\n    angle_to_angle(LL,LLN,LLS+25,RL,RLN,RLS+5,ms)\r\n    LLN = LLS+25\r\n    RLN = RLS+5\r\n    sleep(step_time)\r\n \r\n    angle_to_angle(LF,LFN,LFS+30,RF,RFN,RFS+15,ms)\r\n    LFN = LFS+30\r\n    RFN = RFS+15\r\n    sleep(step_time)\r\n     \r\n    angle_to_angle(LL,LLN,LLS-25,RL,RLN,RLS-5,ms)\r\n    LLN = LLS-25\r\n    RLN = RLS-5\r\n    sleep(step_time)\r\n\r\ndef turn_right_walk(step_time,ms):\r\n    global LLN,RLN,LFN,RFN\r\n    angle_to_angle(RF,RFN,RFS-30,LF,LFN,LFS-15,ms)\r\n    RFN = RFS-30\r\n    LFN = LFS-15\r\n    sleep(step_time)\r\n\r\n    angle_to_angle(LL,LLN,LLS+5,RL,RLN,RLS+25,ms)\r\n    LLN = LLS+5\r\n    RLN = RLS+25\r\n    sleep(step_time)\r\n \r\n    angle_to_angle(LF,LFN,LFS+30,RF,RFN,RFS+15,ms)\r\n    LFN = LFS+30\r\n    RFN = RFS+15\r\n    sleep(step_time)\r\n     \r\n    angle_to_angle(LL,LLN,LLS-5,RL,RLN,RLS-25,ms)\r\n    LLN = LLS-5\r\n    RLN = RLS-25\r\n    sleep(step_time)\r\n\r\ndef backward_walk2(step_time,ms):\r\n    global LLN,RLN,LFN,RFN\r\n    angle_to_angle(RF,RFN,RFS-30,LF,LFN,LFS-15,ms)\r\n    RFN = RFS-30\r\n    LFN = LFS-15\r\n    sleep(step_time)\r\n\r\n    angle_to_angle(LL,LLN,LLS-25,RL,RLN,RLS-25,ms)\r\n    LLN = LLS-25\r\n    RLN = RLS-25\r\n    sleep(step_time)\r\n \r\n    angle_to_angle(LF,LFN,LFS+30,RF,RFN,RFS+15,ms)\r\n    LFN = LFS+30\r\n    RFN = RFS+15\r\n    sleep(step_time)\r\n     \r\n    angle_to_angle(LL,LLN,LLS+25,RL,RLN,RLS+25,ms)\r\n    LLN = LLS+25\r\n    RLN = RLS+25\r\n    sleep(step_time)\r\n\r\ndef kani_walk_right(step_time,ms):\r\n    global LLN,RLN,LFN,RFN\r\n    angle_to_angle(RF,RFN,RFN-35,LF,LFN,LFN,ms)\r\n    RFN = RFN-35\r\n    LFN = LFN\r\n    sleep(step_time)\r\n\r\n    angle_to_angle(RF,RFN,RFN,LF,LFN,LFN-35,ms)\r\n    RFN = RFN\r\n    LFN = LFS-35\r\n    sleep(step_time)\r\n    \r\n    angle_to_angle(RF,RFN,RFS,LF,LFN,LFN,ms)\r\n    RFN = RFS\r\n    LFN = LFN\r\n    sleep(step_time)\r\n\r\n    angle_to_angle(RF,RFN,RFS,LF,LFN,LFS,ms)\r\n    RFN = RFS\r\n    LFN = LFS\r\n    sleep(step_time)\r\n\r\ndef kani_walk_left(step_time,ms):\r\n    global LLN,RLN,LFN,RFN\r\n    angle_to_angle(RF,RFN,RFN,LF,LFN,LFN+35,ms)\r\n    RFN = RFN\r\n    LFN = LFN+35\r\n    sleep(step_time)\r\n\r\n    angle_to_angle(RF,RFN,RFN+35,LF,LFN,LFN,ms)\r\n    RFN = RFN+35\r\n    LFN = LFN\r\n    sleep(step_time)\r\n    \r\n    angle_to_angle(RF,RFN,RFN,LF,LFN,LFS,ms)\r\n    RFN = RFN\r\n    LFN = LFS\r\n    sleep(step_time)\r\n\r\n    angle_to_angle(RF,RFN,RFS,LF,LFN,LFN,ms)\r\n    RFN = RFS\r\n    LFN = LFN\r\n    sleep(step_time)\r\n\r\n\r\ndef dance1(step_time,ms):\r\n    global LLN,RLN,LFN,RFN\r\n    angle_to_angle(RF,RFN,RFS+30,LF,LFN,LFS+30,ms)\r\n    RFN = RFS+30\r\n    LFN = LFS+30\r\n    sleep(step_time)\r\n\r\n    angle_to_angle(RF,RFN,RFS-30,LF,LFN,LFS-30,ms)\r\n    RFN = RFS-30\r\n    LFN = LFS-30\r\n    sleep(step_time)\r\n\r\ndef moon_walk_left(step_time,ms):\r\n    global LLN,RLN,LFN,RFN\r\n    angle_to_angle(RF,RFN,RFN-50,LF,LFN,LFN,ms)\r\n    RFN = RFN-50\r\n    LFN = LFN\r\n    sleep(step_time)\r\n\r\n    angle_to_angle(RF,RFN,RFS,LF,LFN,LFN+50,ms)\r\n    RFN = RFS\r\n    LFN = LFN+50\r\n    sleep(step_time)\r\n    \r\n    angle_to_angle(RF,RFN,RFN,LF,LFN,LFS,ms)\r\n    RFN = RFN\r\n    LFN = LFS\r\n    sleep(step_time)\r\n\r\ndef moon_walk_right(step_time,ms):\r\n    global LLN,RLN,LFN,RFN\r\n    angle_to_angle(RF,RFN,RFN,LF,LFN,LFN+50,ms)\r\n    RFN = RFN\r\n    LFN = LFN+50\r\n    sleep(step_time)\r\n\r\n    angle_to_angle(RF,RFN,RFN-50,LF,LFN,LFS,ms)\r\n    RFN = RFN-50\r\n    LFN = LFS\r\n    sleep(step_time)\r\n    \r\n    angle_to_angle(RF,RFN,RFS,LF,LFN,LFN,ms)\r\n    RFN = RFS\r\n    LFN = LFN\r\n    sleep(step_time)\r\n\r\ndef save_mode(n):\r\n    with open(\"mode.txt\", \"w\") as f:\r\n        f.write(str(n))  # \u6570\u5b57\u3092\u6587\u5b57\u3068\u3057\u3066\u4fdd\u5b58\r\n\r\ndef load_mode():\r\n    try:\r\n        with open(\"mode.txt\", \"r\") as f:\r\n            mode = f.read().strip()  # \u6539\u884c\u306a\u3069\u3092\u9664\u53bb\r\n            return int(mode)\r\n    except:\r\n        return 0  # \u30a8\u30e9\u30fc\u6642\u306f 0 \u3092\u8fd4\u3059\uff08\u521d\u671f\u5024\uff09\r\n\r\ndef beep(f,t,c):\r\n    SP.freq(f)  \t\t# PWM \u5468\u6ce2\u6570\u3092 f Hz\u306b\u8a2d\u5b9a\r\n    for i in range(0,c):\r\n        SP.duty_u16(32767)  # duty\u6bd4 50%\r\n        LED_RIGHT.value(1)\r\n        LED_LEFT.value(1)\r\n        sleep(t)\r\n        SP.duty_u16(0)  # duty\u6bd4 0%\r\n        LED_RIGHT.value(0)\r\n        LED_LEFT.value(0)\r\n        sleep(t)\r\n\r\n\r\ntry:\r\n    #save_mode(0)\r\n    #sleep(2)\r\n    #sys.exit()\r\n    \r\n    upright()\r\n    mode = load_mode()  # \u8aad\u307f\u8fbc\u307f\r\n    print(\"\u4fdd\u5b58\u3055\u308c\u305f\u5024\uff1a\", mode)  \r\n    sleep(1)\r\n    if mode>=7 :\r\n        save_mode(0)  # \u4fdd\u5b58\r\n    else:\r\n        save_mode(mode+1)  # \u4fdd\u5b58\r\n    sleep(1)\r\n    \r\n    beep(440,0.5\/(mode+1),mode+1)\r\n    \r\n    LED_RIGHT.value(1)\r\n    LED_LEFT.value(1)\r\n    #mode = 7\r\n    \r\n    while True:\r\n        if mode == 0 :\r\n            forward_walk2(0.1,0.005)\t\t# \u524d\u6b69\u304d\r\n        if mode == 1 :\r\n            backward_walk2(0.1,0.005)\t\t# \u5f8c\u308d\u6b69\u304d\r\n        if mode == 2 :            \r\n            for i in range(0,5,1):\t\t\t# \u524d\u30785\u6b69\r\n                forward_walk2(0.1,0.005)\r\n            for i in range(0,5,1) :         # \u5f8c\u308d\u3078\uff15\u6b69\r\n                backward_walk2(0.1,0.005)\r\n        if mode == 3 :\r\n            for i in range(0,6,1):\r\n                kani_walk_left(0.01,0.006)\r\n            for i in range(0,6,1) :           \r\n                kani_walk_right(0.01,0.006)\r\n        if mode == 4 :\r\n            for i in range(0,4,1):\r\n                moon_walk_left(0.01, 0.005)\r\n            for i in range(0,4,1) :           \r\n                moon_walk_right(0.01,0.005)\r\n        if mode == 5 :\r\n            for i in range(0,5,1):\r\n                 dance1(0.01, 0.005)\r\n            sleep(1)\r\n        if mode == 6 :\r\n            turn_left_walk(0.1,0.005)\t\t# \u524d\u6b69\u304d\r\n        if mode == 7 :\r\n            turn_right_walk(0.1,0.005)\t\t# \u524d\u6b69\u304d\r\n\r\n\r\n\r\nexcept KeyboardInterrupt:\t\t# \u7d42\u4e86\u524d\u306b\u30b5\u30fc\u30dc\u3092\u521d\u671f\u4f4d\u7f6e\u306b\u623b\u3059\r\n    print(\"\u30b5\u30fc\u30dc\u3092\u521d\u671f\u4f4d\u7f6e\uff080\u5ea6\uff09\u306b\u623b\u3057\u3066\u3044\u307e\u3059...\")\r\n    upright()\r\n    LED_RIGHT.value(0)\r\n    LED_LEFT.value(0)\r\n    sleep(2)  # \u5c11\u3057\u5f85\u6a5f\r\n    LL.deinit()\t\t# \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3059\u308b\u969b\u306bPWM\u3092\u7121\u52b9\u5316\r\n    RL.deinit()\t\t# \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3059\u308b\u969b\u306bPWM\u3092\u7121\u52b9\u5316\r\n    LF.deinit()\t\t# \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3059\u308b\u969b\u306bPWM\u3092\u7121\u52b9\u5316\r\n    RF.deinit()\t\t# \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3059\u308b\u969b\u306bPWM\u3092\u7121\u52b9\u5316\r\n    \r\n    print(\"\u30b5\u30fc\u30dc\u5236\u5fa1\u3092\u7d42\u4e86\u3057\u307e\u3057\u305f\u3002\")\r\n\r\n    \r\n    #sys.exit()\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u30b5\u30fc\u30dc\u30e2\u30fc\u30bf\uff14\u3064\u3060\u3051\u3067\u7c21\u5358\u306a\u4e8c\u8db3\u6b69\u884c\u3059\u308b\u30ed\u30dc\u30c3\u30c8\u300cOTTO\u300d\uff12\uff10\uff12\uff15\u5e74\u5ea6\u306f\u3001\u3053\u308c\u3092\u69d8\u3005\u306a\u30de\u30a4\u30b3\u30f3\u3067\u52d5\u4f5c\u3055\u305b\u3066\u307f\u305f\u306e\u3067\u305d\u306e\u8a18\u9332\u3002 OTTO\u306f\u30ad\u30c3\u30c8\u3082\uff15\uff10\uff10\uff10\u5186\u7a0b\u5ea6\u3067\u58f2\u3063\u3066\u306f\u3044\u308b\u304c\u3001\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u3067\u7b50\u4f53\u306e\uff13D\u30c7\u30fc\u30bf\u3082\u516c\u5f0f\u30b5\u30a4 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":21904,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[13,12],"tags":[],"_links":{"self":[{"href":"http:\/\/kassan.www2.jp\/index.php?rest_route=\/wp\/v2\/posts\/21899"}],"collection":[{"href":"http:\/\/kassan.www2.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/kassan.www2.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/kassan.www2.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/kassan.www2.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=21899"}],"version-history":[{"count":7,"href":"http:\/\/kassan.www2.jp\/index.php?rest_route=\/wp\/v2\/posts\/21899\/revisions"}],"predecessor-version":[{"id":21923,"href":"http:\/\/kassan.www2.jp\/index.php?rest_route=\/wp\/v2\/posts\/21899\/revisions\/21923"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/kassan.www2.jp\/index.php?rest_route=\/wp\/v2\/media\/21904"}],"wp:attachment":[{"href":"http:\/\/kassan.www2.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/kassan.www2.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21899"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/kassan.www2.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}