{"id":7840,"date":"2024-12-14T17:36:56","date_gmt":"2024-12-14T08:36:56","guid":{"rendered":"https:\/\/akibabara.com\/blog\/?p=7840"},"modified":"2024-12-15T08:34:43","modified_gmt":"2024-12-14T23:34:43","slug":"1%e3%83%9c%e3%82%bf%e3%83%b3%e3%81%a0%e3%81%91%e3%81%ae%e3%83%af%e3%82%a4%e3%83%a4%e3%83%ac%e3%82%b9%e3%82%ad%e3%83%bc%e3%83%9c%e3%83%bc%e3%83%89%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf-3","status":"publish","type":"post","link":"https:\/\/akibabara.com\/blog\/7840.html","title":{"rendered":"1\u30dc\u30bf\u30f3\u3060\u3051\u306e\u30ef\u30a4\u30e4\u30ec\u30b9\u30ad\u30fc\u30dc\u30fc\u30c9\u3092\u4f5c\u3063\u3066\u307f\u305f(3) \u30d5\u30a1\u30fc\u30e0\u30a6\u30a7\u30a2\u306e\u4f5c\u6210\u7de8"},"content":{"rendered":"\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a09f41405c64&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a09f41405c64\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/xn_IMG_8814-wide-1024x512.webp\" alt=\"\" class=\"wp-image-7804\" srcset=\"https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/xn_IMG_8814-wide-1024x512.webp 1024w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/xn_IMG_8814-wide-300x150.webp 300w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/xn_IMG_8814-wide-768x384.webp 768w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/xn_IMG_8814-wide-1536x768.webp 1536w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/xn_IMG_8814-wide.webp 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u30b7\u30ea\u30fc\u30ba\u300e1\u30dc\u30bf\u30f3\u3060\u3051\u306e\u30ef\u30a4\u30e4\u30ec\u30b9\u30ad\u30fc\u30dc\u30fc\u30c9\u300f\u3001\u6b21\u306f\u30d5\u30a1\u30fc\u30e0\u30a6\u30a7\u30a2\u306b\u3064\u3044\u3066\u66f8\u3044\u3066\u3044\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1\u30dc\u30bf\u30f3\u3060\u3051\u306e\u30ef\u30a4\u30e4\u30ec\u30b9\u30ad\u30fc\u30dc\u30fc\u30c9<\/strong><br>(1) <a href=\"https:\/\/akibabara.com\/blog\/7749.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u6e96\u5099\u7de8<\/a><br>(2) <a href=\"https:\/\/akibabara.com\/blog\/7761.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u30d7\u30ea\u30f3\u30c8\u57fa\u677f\u306e\u88fd\u4f5c\u7de8<\/a><br>(3) \u30d5\u30a1\u30fc\u30e0\u30a6\u30a7\u30a2\u306e\u4f5c\u6210\u7de8\u3000<strong>\u2190\u3044\u307e\u3053\u3053<\/strong><br>(4) <a href=\"https:\/\/akibabara.com\/blog\/7809.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u30b1\u30fc\u30b9\u3068\u30ad\u30fc\u30ad\u30e3\u30c3\u30d7\u306e\u88fd\u4f5c\u7de8<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30de\u30a4\u30b3\u30f3\u306e\u9078\u5b9a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">1\u30dc\u30bf\u30f3\u3060\u3051\u306e\u30ef\u30a4\u30e4\u30ec\u30b9\u30ad\u30fc\u30dc\u30fc\u30c9\u3092\u4f5c\u308b\u306b\u3042\u305f\u3063\u3066\u3001\u30de\u30a4\u30b3\u30f3\u3092\u4f55\u306b\u3059\u308b\u304b\u306f\u91cd\u8981\u3067\u3059\u3002\u79c1\u304c\u3088\u304f\u4f7f\u3063\u3066\u3044\u308bM5Stack\u88fd\u54c1\u306fESP32\u30b7\u30ea\u30fc\u30ba\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u304c\u3001ESP32\u306f\u6d88\u8cbb\u96fb\u529b\u304c\u5927\u304d\u304f\u3001\u30b3\u30a4\u30f3\u96fb\u6c60\u3067\u9577\u671f\u9593\u4f5c\u52d5\u3055\u305b\u308b\u306b\u306f\u4e0d\u5411\u304d\u3067\u3059\u3002\u305d\u3053\u3067Raspberry Pi Pico W\u3067\u4f5c\u308c\u306a\u3044\u304b\u3068\u8003\u3048\u307e\u3057\u305f\u3002RP2040\u304c\u4e57\u3063\u305f\u30c7\u30d0\u30a4\u30b9\u3092\u8abf\u3079\u3066\u307f\u308b\u3068\u3001Seeed Studio\u306e<a href=\"https:\/\/www.seeedstudio.com\/test-for-xiao.html\" target=\"_blank\" rel=\"noreferrer noopener\">XIAO\u30b7\u30ea\u30fc\u30ba<\/a>\u304c\u76ee\u306b\u7559\u307e\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a09f41406318&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a09f41406318\" class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"710\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/fdb2aa6d8ba7ec24628f9374140eae4c-1024x710.webp\" alt=\"\" class=\"wp-image-7842\" style=\"width:480px\" srcset=\"https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/fdb2aa6d8ba7ec24628f9374140eae4c-1024x710.webp 1024w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/fdb2aa6d8ba7ec24628f9374140eae4c-300x208.webp 300w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/fdb2aa6d8ba7ec24628f9374140eae4c-768x533.webp 768w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/fdb2aa6d8ba7ec24628f9374140eae4c-1536x1066.webp 1536w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/fdb2aa6d8ba7ec24628f9374140eae4c.webp 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5207\u624b\u5927\u306e\u30b5\u30a4\u30ba\u3067\u3001\u3053\u308c\u306a\u3089\u30b3\u30f3\u30d1\u30af\u30c8\u306b\u4f5c\u308c\u305d\u3046\u3067\u3059\u3002\u3055\u3063\u305d\u304f\u6ce8\u6587\u3057\u3066\u5c4a\u3044\u305f\u5546\u54c1\u3092\u898b\u305f\u3068\u3053\u308d\u3001RP2040\u3067\u306f\u306a\u304fnRF52840\u306e\u65b9\u3092\u9593\u9055\u3048\u3066\u8cb7\u3063\u3066\u3057\u307e\u3063\u305f\u3053\u3068\u306b\u6c17\u3065\u304d\u307e\u3057\u305f\u3002nRF52840\u3001\u521d\u3081\u3066\u805e\u304f\u30de\u30a4\u30b3\u30f3\u3060\u306a\u3002\u3069\u3093\u306a\u3082\u306e\u304b\u3068\u6c17\u306b\u306a\u3063\u3066\u8abf\u3079\u308b\u3068\u3001\u975e\u5e38\u306b\u7701\u96fb\u529b\u3067BLE\u306b\u5bfe\u5fdc\u3057\u305f\u30de\u30a4\u30b3\u30f3\u3060\u3068\u3044\u3046\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a09f4140686d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a09f4140686d\" class=\"wp-block-image size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"701\" height=\"871\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/2c73a5415eff4964d521e820df70ea1e.jpg\" alt=\"\" class=\"wp-image-7843\" style=\"width:240px\" srcset=\"https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/2c73a5415eff4964d521e820df70ea1e.jpg 701w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/2c73a5415eff4964d521e820df70ea1e-241x300.jpg 241w\" sizes=\"auto, (max-width: 701px) 100vw, 701px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a09f41407e49&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a09f41407e49\" class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"856\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/683219cb1885389cb9a45cc80e998638-856x1024.webp\" alt=\"\" class=\"wp-image-7844\" style=\"width:240px\" srcset=\"https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/683219cb1885389cb9a45cc80e998638-856x1024.webp 856w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/683219cb1885389cb9a45cc80e998638-251x300.webp 251w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/683219cb1885389cb9a45cc80e998638-768x919.webp 768w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/683219cb1885389cb9a45cc80e998638.webp 1003w\" sizes=\"auto, (max-width: 856px) 100vw, 856px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f53\u521d\u306e\u4e88\u5b9a\u3068\u306f\u9055\u3044\u307e\u3057\u305f\u304c\u4eca\u56de\u306e\u76ee\u7684\u306b\u306f\u6700\u9069\u3067\u3059\u3002\u4eca\u56de\u306fnRF52840\u3067\u958b\u767a\u3092\u9032\u3081\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30af\u30bb\u304c\u5f37\u3044<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u666e\u6bb5M5Stack\u3070\u304b\u308a\u4f7f\u3063\u3066\u3044\u305f\u306e\u3067\u3001\u3061\u3087\u3063\u3068\u6238\u60d1\u3046\u3053\u3068\u3082\u3042\u308a\u307e\u3057\u305f\u3002\u66f8\u304d\u8fbc\u3080\u3068\u304d\u306fUSB\u30b3\u30cd\u30af\u30bf\u306e\u6a2a\u306b\u3042\u308b\u6975\u5c0f\u306e\u30dc\u30bf\u30f3\u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u3067\u3059\u304c\u3001\u305d\u3046\u3059\u308b\u3068Arduino IDE\u5074\u3067\u8a8d\u8b58\u3055\u308c\u308bUSB\u30dd\u30fc\u30c8\u304c\u5909\u308f\u308b\u306e\u3067\u3001USB\u30dd\u30fc\u30c8\u3092\u5909\u66f4\u3057\u3066\u304b\u3089\u66f8\u304d\u8fbc\u307e\u306a\u304f\u3066\u306f\u3044\u3051\u307e\u305b\u3093\u3002\u307e\u305f\u30b7\u30ea\u30a2\u30eb\u51fa\u529b\u3092\u898b\u305f\u3044\u5834\u5408\u306fAdafruit_TinyUSB.h\u3092include\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3088\u3046\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u52d5\u4f5c\u306e\u6d41\u308c<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>(1) \u96fb\u6e90\u6295\u5165\u3059\u308b\u306830\u79d2\u9593\u30a2\u30c9\u30d0\u30bf\u30a4\u30ba\u3059\u308b\uff08\u9ad8\u901f10\u79d2\uff0b\u4f4e\u901f20\u79d2\uff09<\/li>\n\n\n\n<li>(2) \u30da\u30a2\u30ea\u30f3\u30b0\u304a\u3088\u3073\u63a5\u7d9a\u304c\u884c\u308f\u308c\u308b\u3068HID\u30ad\u30fc\u30dc\u30fc\u30c9\u3068\u3057\u3066\u52d5\u4f5c\u3059\u308b\u3002\u63a5\u7d9a\u3055\u308c\u306a\u3044\u307e\u307e30\u79d2\u904e\u304e\u308b\u3068\u96fb\u6e90\u30aa\u30d5(deep sleep)<\/li>\n\n\n\n<li>(3) \u30a2\u30a4\u30c9\u30eb\u72b6\u614b\u304c30\u5206\u7d9a\u304f\u3068\u5207\u65ad\u3057\u3066\u96fb\u6e90\u30aa\u30d5(deep sleep)<\/li>\n\n\n\n<li>(4) deep sleep\u4e2d\u306b\u30ad\u30fc\u3092\u62bc\u3059\u3068\u5fa9\u5e30<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f4\u3064\u306e\u30ad\u30fc\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001\u5b9f\u969b\u306b\u306fD0\u306b\u7e4b\u304c\u3063\u305f\u30ad\u30fc\u306e\u307f\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002deep sleep\u304b\u3089\u306e\u5fa9\u5e30\u3082\u3053\u306e\u30ad\u30fc\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u56de\u4f5c\u6210\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u3001\u4ee5\u4e0b\u306eGitHub\u306e\u30da\u30fc\u30b8\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3059\u3002<br><a href=\"https:\/\/github.com\/kaz-mac\/xiao_1key_blekey\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/kaz-mac\/xiao_1key_blekey<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u3064\u3044\u3066<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u8a73\u7d30\u306fGitHub\u306e\u30bd\u30fc\u30b9\u3092\u898b\u3066\u3044\u305f\u3060\u304f\u3068\u3057\u3066\u3001\u3053\u3053\u3067\u306f\u7d30\u304b\u3044\u90e8\u5206\u306b\u3064\u3044\u3066\u66f8\u3044\u3066\u3044\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30b7\u30ea\u30a2\u30eb\u30dd\u30fc\u30c8\u306e\u30cf\u30de\u308a\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>  if (DEBUG_USB) {\n    while (!Serial) { \/\/ \u3053\u308c\u3092\u3084\u308b\u3068\u30d0\u30c3\u30c6\u30ea\u30fc\u99c6\u52d5\u6642\u306b\u9032\u307e\u306a\u304f\u306a\u308b\u306e\u3067USB\u63a5\u7d9a\u5fc5\u9808\n      delay(100);   \n      if (millis() &gt; 5000) break;\n    }\n  }<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">USB\u30dd\u30fc\u30c8\u306b\u7e4b\u3044\u3067\u30c7\u30d0\u30c3\u30b0\u3057\u3066\u3044\u308b\u3068\u304d\u3001\u8d77\u52d5\u76f4\u5f8c\u306eSerial.print()\u306e\u5185\u5bb9\u304c\u51fa\u3066\u3053\u306a\u3044\u3053\u3068\u306b\u6c17\u3065\u304d\u307e\u3057\u305f\u3002while (!Serial)\u3067\u30b7\u30ea\u30a2\u30eb\u304c\u6709\u52b9\u306b\u306a\u308b\u307e\u3067\u5f85\u6a5f\u3059\u308c\u3070\u89e3\u6c7a\u3057\u307e\u3059\u3002\u3068\u3053\u308d\u304cUSB\u30dd\u30fc\u30c8\u306b\u63a5\u7d9a\u3057\u306a\u3044\u72b6\u614b\u3067\u30d0\u30c3\u30c6\u30ea\u30fc\u3067\u8d77\u52d5\u3057\u305f\u5834\u5408\u3001\u3053\u3053\u304b\u3089\u9032\u307e\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3046\u306e\u3067\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">LED\u306eHigh\/Low\u304c\u9006\u306a\u70b9\u306b\u6ce8\u610f<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>digitalWrite(LED_RED, LOW);    \/\/ \u70b9\u706f\ndigitalWrite(LED_RED, HIGH);   \/\/ \u6d88\u706f<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u57fa\u677f\u4e0a\u306b\u4ed8\u3044\u3066\u3044\u308bLED\u306f\u4ed6\u306eArduino\u30dc\u30fc\u30c9\u3068\u306f\u9055\u3063\u3066\u3001LOW\u3067\u70b9\u706f\u3057\u3001HIGH\u3067\u6d88\u706f\u3057\u307e\u3059\u3002\u666e\u901a\u3068\u306f\u9006\u306a\u306e\u3067\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30dc\u30bf\u30f3CLASS<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>#include &quot;AnyButton.h&quot;\nAnyButton btn1, btn2, btn3, btn4; \n\n  pinMode(GPIO_BTN1, INPUT_PULLDOWN);\n  btn1.configButton(AnyButton::TypePush, AnyButton::ModeDirect, AnyButton::SpanEver);<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u30dc\u30bf\u30f3\u306e\u72b6\u614b\u53d6\u5f97\u306b\u306f\u30aa\u30ea\u30b8\u30ca\u30eb\u306e\u30dc\u30bf\u30f3\u30af\u30e9\u30b9\u3092\u5229\u7528\u3057\u307e\u3057\u305f\u3002\u3053\u308c\u306f\u4ee5\u524d<a href=\"https:\/\/akibabara.com\/blog\/7165.html\" target=\"_blank\" rel=\"noreferrer noopener\">ETS2\u7528\u306eH\u30b7\u30d5\u30bf\u30fc<\/a>\u3092\u4f5c\u3063\u305f\u3068\u304d\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u305d\u306e\u307e\u307e\u6d41\u7528\u3057\u307e\u3057\u305f\u3002\u3053\u306e\u30dc\u30bf\u30f3\u30af\u30e9\u30b9\u306f\u30d7\u30c3\u30b7\u30e5\u30dc\u30bf\u30f3\u3092\u30c8\u30b0\u30eb\u30b9\u30a4\u30c3\u30c1\u306e\u3088\u3046\u306a\u632f\u308b\u821e\u3044\u306b\u898b\u305b\u305f\u308a\u3001\u30dc\u30bf\u30f3\u306e\u72b6\u614b\u5909\u5316\u3092\u6349\u3048\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u7701\u96fb\u529b\u5316\u306e\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>\/\/ \u5916\u90e8QSPI Flash Memory\uff08\u7701\u96fb\u529b\u5316\u306e\u305f\u3081\u306b\u4f7f\u7528\uff09\n#include &lt;Adafruit_SPIFlash.h&gt;\nAdafruit_FlashTransport_QSPI flashTransport;\nAdafruit_SPIFlash flash(&flashTransport);\n\n  \/\/ \u30aa\u30f3\u30dc\u30fc\u30c9QSPI Flash Memory\u3092Deep Power-down\u30e2\u30fc\u30c9\u306b\u3057\u3066\u7701\u96fb\u529b\u5316\u3059\u308b\n  flashTransport.begin();\n  flashTransport.runCommand(0xB9);\n  delayMicroseconds(5);\n  flashTransport.end();<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u306f\u4ee5\u524d\u300e<a href=\"https:\/\/akibabara.com\/blog\/7539.html\" target=\"_blank\" rel=\"noreferrer noopener\">XIAO BLE nRF52840\u3067\u4f55\u3092\u3059\u308b\u3068\u3069\u3046\u6d88\u8cbb\u96fb\u6d41\u304c\u5909\u308f\u308b\u306e\u304b\u8abf\u3079\u3066\u307f\u305f<\/a>\u300f\u3067\u3084\u3063\u305f\u7701\u96fb\u529b\u5bfe\u7b56\u3067\u3001\u30aa\u30f3\u30dc\u30fc\u30c9QSPI Flash Memory\u3092Deep Sleep\u30e2\u30fc\u30c9\u306b\u3059\u308b\u3068\u3044\u3046\u3082\u306e\u3067\u3059\u3002\u4f7f\u7528\u3057\u3066\u3044\u306a\u3044\u306a\u3089\u6b62\u3081\u3066\u3082\u554f\u984c\u306a\u3044\u3067\u3059\u306d\u3002\u3053\u308c\u3067deep sleep\u6642\u306f2\uff5e4uA\u304f\u3089\u3044\u307e\u3067\u843d\u3068\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u6050\u308b\u3079\u3057nRF52840\u306e\u7701\u96fb\u529b\u6027\uff01<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30d0\u30c3\u30c6\u30ea\u30fc\u96fb\u5727\u306e\u6e2c\u5b9a<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>  \/\/ \u30d0\u30c3\u30c6\u30ea\u30fc\u96fb\u5727\u6e2c\u5b9a\u306e\u6e96\u5099\n  analogReference(AR_INTERNAL_2_4); \/\/ VREF = 2.4V\n  analogReadResolution(10);         \/\/ 10bit A\/D\n  pinMode(VBAT_ENABLE, OUTPUT);\n  digitalWrite(VBAT_ENABLE, LOW);   \/\/ VBAT_ENABLE\u3092LOW\u306b\u3059\u308b\u3068\u6e2c\u5b9a\u3067\u304d\u308b<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>    uint16_t vbatRaw = analogRead(PIN_VBAT);\n    mv = vbatRaw * 2400 \/ 1023; \/\/ VREF = 2.4V, 10bit A\/D\n    mv = mv * 1510 \/ 510;       \/\/ 1M + 510k \/ 510k<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">BAT+ BAT- \u306b\u63a5\u7d9a\u3057\u305f\u30b3\u30a4\u30f3\u96fb\u6c60\u306e\u96fb\u5727\u3092\u6e2c\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u3053\u3067\u6e2c\u5b9a\u3057\u305f\u96fb\u5727\u304b\u3089\u6b8b\u91cf\u3092\u63a8\u6e2c\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30d0\u30c3\u30c6\u30ea\u30fc\u6b8b\u91cf\u306e\u63a8\u6e2c<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>  \/\/ \u30d0\u30c3\u30c6\u30ea\u30fc\u6b8b\u91cf%\u3092\u63a8\u5b9a\u3059\u308b\n  #ifdef BATTERY_CR2032\n  \/\/ CR2032\u653e\u96fb\u7279\u6027\u30c6\u30fc\u30d6\u30eb\n  mv = constrain(mv, 1700, 3000);\n  uint16_t tableMv[]  = { 3000, 2700, 2600, 2500, 2400, 2300, 2250, 2200 };\n  uint16_t tablePer[] = {  100,   98,   42,   22,   12,    4,    2,    0 };\n  size_t tableNum = sizeof(tableMv) \/ sizeof(tableMv[0]);\n  for (int i=0; i&lt;tableNum-1; i++) {\n    if (mv &lt;= tableMv[i] && mv &gt; tableMv[i+1]) {\n      per = map(mv, tableMv[i+1], tableMv[i], tablePer[i+1], tablePer[i]);\n      break;\n    }\n  }\n  #endif<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">BLE\u3067\u306f\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u30d0\u30c3\u30c6\u30ea\u30fc\u306e\u60c5\u5831\u3082\u901a\u77e5\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u30020\uff5e100\u306e%\u3067\u4e0e\u3048\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u305f\u3081\u3001\u6b8b\u308a\u4f55%\u304b\u3092\u6c42\u3081\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002\u30d0\u30c3\u30c6\u30ea\u30fc\u306e\u653e\u96fb\u7279\u6027\u306f\u30ab\u30fc\u30d6\u3092\u63cf\u3044\u3066\u3044\u308b\u306e\u3067\u3001\u307e\u305a\u306f\u653e\u96fb\u7279\u6027\u3092\u8abf\u3079\u307e\u3057\u305f\u3002\u3053\u306e\u3068\u304d\u306b\u4f7f\u7528\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u300e<a href=\"https:\/\/akibabara.com\/blog\/7789.html\" target=\"_blank\" rel=\"noreferrer noopener\">XIAO BLE nRF52840\u3067BLE\u30a2\u30c9\u30d0\u30bf\u30a4\u30ba\u306e\u591a\u6bb5\u4e2d\u7d99\u5668\u3092\u4f5c\u3063\u3066\u307f\u305f<\/a>\u300f\u3067\u4f5c\u6210\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a09f41409128&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a09f41409128\" class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"679\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/90996c15a0feadb9c5d3db466c1e4d21-1024x679.webp\" alt=\"\" class=\"wp-image-7849\" style=\"width:480px\" srcset=\"https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/90996c15a0feadb9c5d3db466c1e4d21-1024x679.webp 1024w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/90996c15a0feadb9c5d3db466c1e4d21-300x199.webp 300w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/90996c15a0feadb9c5d3db466c1e4d21-768x509.webp 768w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/90996c15a0feadb9c5d3db466c1e4d21-1536x1019.webp 1536w, https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/90996c15a0feadb9c5d3db466c1e4d21.webp 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u9752\u304c\u5b9f\u969b\u306b\u6e2c\u5b9a\u3057\u305f\u7d50\u679c\u3001\u30aa\u30ec\u30f3\u30b8\u304c\u8fd1\u4f3c\u66f2\u7dda\u3067\u3059\u3002\u6240\u3005\u3053\u3053\u308d\u304c\u3074\u3087\u3093\u3074\u3087\u3093\u3057\u3066\u3044\u308b\u3068\u3053\u308d\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u3053\u308c\u306f\u5ba4\u6e29\u304c\u539f\u56e0\u3060\u3068\u63a8\u6e2c\u3055\u308c\u307e\u3059\u3002\u4e0a\u304c\u3063\u3066\u3044\u308b\u30bf\u30a4\u30df\u30f3\u30b0\u306f\u671d\u30a8\u30a2\u30b3\u30f3\u3092\u4ed8\u3051\u305f\u6642\u9593\u3067\u3059\u3002\u3053\u3093\u306a\u5982\u5b9f\u306b\u8868\u308c\u308b\u3093\u3067\u3059\u306d\u3002\u3053\u306e\u30c7\u30fc\u30bf\u3092\u5143\u306b\u8fd1\u4f3c\u66f2\u7dda\u3092\u4f5c\u308a\u3001\u96fb\u5727\u304b\u3089\u6b8b\u91cf(%)\u3092\u8a08\u7b97\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u306a\u304a\u3001\u3053\u306e\u30c7\u30fc\u30bf\u306f\u3061\u3087\u3063\u3068\u7d0d\u5f97\u3067\u304d\u3066\u3044\u306a\u304f\u3066\u3001\u3053\u306e\u30d6\u30ed\u30b0\u3092\u66f8\u3044\u3066\u3044\u308b\u73fe\u5728\u3001\u518d\u6e2c\u5b9a\u4e2d\u3067\u3059\u3002\u5b9a\u96fb\u6d411mA\u306b\u3064\u3044\u3066\u306f\u3001\u6b63\u78ba\u306b\u306f3V\u306e\u3068\u304d1mA\u3068\u3044\u3046\u610f\u5473\u3067\u3059\u30023K\u03a9\u306e\u62b5\u6297\u3092\u4e26\u5217\u306b\u5165\u308c\u3066\u96fb\u5727\u306e\u5909\u5316\u3092\u8abf\u3079\u3066\u3044\u307e\u3059\u3002\u4f55\u304c\u7d0d\u5f97\u3067\u304d\u3066\u3044\u306a\u3044\u304b\u3068\u3044\u3046\u3068\u3001\u8a08\u7b97\u3059\u308b\u3068\u5bb9\u91cf\u304c108mAh\u3057\u304b\u306a\u304b\u3063\u305f\u306e\u3067\u3059\u3002CR2032\u306e\u516c\u8a3c\u5bb9\u91cf\u306f220mAh\u3067\u3059\u3002\u3044\u304f\u3089\u30c0\u30a4\u30bd\u30fc\u306e\u3060\u304b\u3089\u3068\u3044\u3063\u3066\u5c11\u306a\u3059\u304e\u307e\u3059\u3057\u3001\u4ed6\u306e\u4eba\u304c\u6e2c\u5b9a\u3057\u305f\u7d50\u679c\u3068\u3082\u5408\u3044\u307e\u305b\u3093\u3002\u4f55\u304b\u6e2c\u5b9a\u65b9\u6cd5\u3092\u9593\u9055\u3048\u3066\u3044\u308b\u306e\u3067\u3057\u3087\u3046\u304b\u2026\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">LED\u306e\u70b9\u6ec5<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u73fe\u5728\u96fb\u6e90\u304c\u5165\u3063\u3066\u3044\u308b\u306e\u304b\u3001\u30da\u30a2\u30ea\u30f3\u30b0\u5f85\u3061\u306a\u306e\u304b\u3001\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u3001LED\u3067\u72b6\u614b\u3092\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002\u3057\u304b\u3057LED\u306f\u7d50\u69cb\u6d88\u8cbb\u96fb\u529b\u304c\u5927\u304d\u3044\u306e\u3067\uff08<a href=\"https:\/\/akibabara.com\/blog\/7539.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u53c2\u8003\u2192XIAO nRF52840\u3067\u306e\u8abf\u67fb\u7d50\u679c<\/a>\uff09\u3001\u30b3\u30a4\u30f3\u96fb\u6c60\u3067\u904b\u7528\u3059\u308b\u969b\u306f\u306a\u308b\u3079\u304f\u4f7f\u3044\u305f\u304f\u3042\u308a\u307e\u305b\u3093\u3002\u305d\u3053\u3067\u4eca\u56de\u306f\u77ac\u9593\u7684\u306b\u5149\u3089\u305b\u308b\u3053\u3068\u3067\u3001\u6d88\u8cbb\u96fb\u529b\u3092\u6291\u3048\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>\/\/ \u30bf\u30a4\u30de\u30fc\u51e6\u7406\u3000LED\u30aa\u30f3\nvoid timerLedOn(TimerHandle_t xTimer) {\n  TimerData* data = (TimerData*)pvTimerGetTimerID(xTimer);\n  ledOn(data-&gt;color);\n  if (timer2 != NULL) xTimerStart(timer2, 0);\n}\n\n\/\/ \u30bf\u30a4\u30de\u30fc\u51e6\u7406\u3000LED\u30aa\u30d5\nvoid timerLedOff(TimerHandle_t xTimer) {\n  TimerData* data = (TimerData*)pvTimerGetTimerID(xTimer);\n  ledOff(data-&gt;color);\n}\n\n\/\/ LED\u3092\u70b9\u6ec5\u3059\u308b\nvoid blinkLED(uint8_t color, uint16_t timeOn, uint16_t timeCycle) {\n  timerData.color = color;\n  stopBlink();    \/\/ \u65e2\u5b58\u306e\u30bf\u30a4\u30de\u30fc\u3092\u89e3\u9664\n  timer1 = xTimerCreate(  \/\/ timer1 LED\u3092\u70b9\u706f\u3059\u308b\u30bf\u30a4\u30de\u30fc\n    &quot;timerLedOn&quot;,\n    pdMS_TO_TICKS(timeCycle),\n    pdTRUE,   \/\/ \u7e70\u308a\u8fd4\u3059\n    (void*)&timerData,\n    timerLedOn\n  );\n  timer2 = xTimerCreate(  \/\/ timer2 LED\u3092\u6d88\u706f\u3059\u308b\u30bf\u30a4\u30de\u30fc\n    &quot;timerLedOff&quot;,\n    pdMS_TO_TICKS(timeOn),\n    pdFALSE,   \/\/ \u4e00\u5ea6\u304d\u308a\n    (void*)&timerData,\n    timerLedOff\n  );\n  if (timer1 != NULL && timer2 != NULL) {\n    timerLedOn(timer1);\n    xTimerStart(timer1, 0);\n  }\n}<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">LED\u304c\u70b9\u706f\u3057\u305f\u5f8c\u306b\u300c\u30aa\u30d5\u306b\u3059\u308b\u305f\u3081\u300d\u306e\u30bf\u30a4\u30de\u30fc\u3068\u3001\u6d88\u3057\u305f\u5f8c\u306b\u518d\u3073\u300c\u30aa\u30f3\u306b\u3059\u308b\u300d\u30bf\u30a4\u30de\u30fc\u306e\u30012\u3064\u306e\u30bf\u30a4\u30de\u30fc\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002ESP32\u3068\u304b\u3060\u3068Ticker\u3092\u4f7f\u3063\u3066\u7c21\u5358\u306b\u30bf\u30a4\u30de\u30fc\u304c\u4f5c\u308c\u3061\u3083\u3046\u3093\u3067\u3059\u304c\u3001nRF52840\u306f\u7121\u3044\u3088\u3046\u3067(?)\u3001\u3061\u3087\u3063\u3068\u96e3\u3057\u3044\u3084\u308a\u65b9\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4fee\u98fe\u30ad\u30fc\u304c\u62bc\u3055\u308c\u305f\u51e6\u7406<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>  \/\/ \u30dc\u30bf\u30f31\u304c\u62bc\u3055\u308c\u305f\u5834\u5408\u306e\u51e6\u7406 CTRL\u30ad\u30fc\n  hid_keyboard_report_t report;\n  state = (btn1.getStateChanged());\n  if (state == 2) {   \/\/ \u62bc\u3055\u308c\u305f\n    report = { KEYBOARD_MODIFIER_LEFTCTRL, 0, {0} };  \/\/ CTRL\u62bc\u3057\u3063\u3071\u306a\u3057\n    blehid.keyboardReport(&report);\n    active = true;\n  } else if (state == 1) {    \/\/ \u96e2\u3057\u305f\n    blehid.keyRelease();\n    active = true;\n  }<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u4f5c\u3063\u3066\u308b\u306e\u306fCTRL\u30ad\u30fc\u306e\u307f\u306e\u30ad\u30fc\u30dc\u30fc\u30c9\u3067\u3059\u3002\u62bc\u3057\u3066\u308b\u9593\u3060\u3051\u62bc\u3057\u3066\u308b\u72b6\u614b\u306b\u3057\u3066\u3001\u96e2\u3057\u305f\u3089\u96e2\u3057\u305f\u72b6\u614b\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306ereport\u3068\u3044\u3046\u69cb\u9020\u4f53\u306b\u306f\u8907\u6570\u306e\u62bc\u3057\u305f\u30ad\u30fc\u3092\u6307\u5b9a\u3067\u304d\u308b\u306e\u3067\u3059\u304c\u3001\u3053\u3053\u3067\u306fCTRL\u30ad\u30fc\u306e\u307f\u3092\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u3067 blehid.keyboardReport(&amp;report); \u30671\u56de\u9001\u4fe1\u3059\u308c\u3070\u3001\u62bc\u3057\u3063\u3071\u306a\u3057\u306e\u72b6\u614b\u306b\u3067\u304d\u307e\u3059\u3002\u30dc\u30bf\u30f3\u3092\u96e2\u3057\u305f\u3053\u3068\u3092\u691c\u77e5\u3057\u305f\u3089blehid.keyRelease(); \u3067\u30ad\u30fc\u306e\u72b6\u614b\u3092\u623b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30de\u30af\u30ed\u64cd\u4f5c<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>\/\/ \u30ad\u30fc\u5165\u529b\u3000\u8907\u6570\nvoid keyPushModifer(uint8_t key, uint8_t modifier, uint32_t wait=20) {\n  hid_keyboard_report_t report = {0};\n  report.modifier = modifier;\n  report.keycode[0] = key;\n  blehid.keyboardReport(&report);\n  delay(wait);\n  blehid.keyRelease();\n  delay(wait);\n}\n\n  \/\/ \u30dc\u30bf\u30f32\u304c\u62bc\u3055\u308c\u305f\u5834\u5408\u306e\u51e6\u7406 CTRL+C\n  if ((btn2.getStateChanged()) == 2) {\n    keyPushModifer(HID_KEY_C, KEYBOARD_MODIFIER_LEFTCTRL);\n  }<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u56de\u306f1\u30dc\u30bf\u30f3\u3057\u304b\u30ad\u30fc\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u304c\u3001\u5b9f\u306f\u30d7\u30ed\u30b0\u30e9\u30e0\u4e0a\u3067\u306f\u4ed6\u306e\u30ad\u30fc\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5b9f\u9a13\u3057\u305f\u3068\u304d\u306e\u304c\u305d\u306e\u307e\u307e\u6b8b\u3063\u3066\u3044\u308b\u3060\u3051\u3067\u3059\u304c\u2026\u3002\u3053\u308c\u306f2\u756a\u76ee\u306e\u30ad\u30fc\u3092\u62bc\u3059\u3068\u3001CTRL+C\u3092\u9001\u4fe1\u3057\u3066\u3044\u307e\u3059\u3002\u5148\u307b\u3069\u3068\u306f\u9055\u3044\u30011\u56de\u62bc\u3057\u305f\u3089\u5b9f\u969b\u306b\u306f\u62bc\u3057\u3066\u2192\u96e2\u3059\u306e\u4e00\u9023\u306e\u52d5\u4f5c\u3092\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u3061\u306a\u307f\u306b3\u756a\u76ee\u306e\u30ad\u30fc\u306fCTRL+V\u3067\u3059\u3002\u3053\u306e2\u3064\u306e\u30ad\u30fc\u3067\u30b3\u30d4\u30da\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>  if ((btn4.getStateChanged()) == 2) {\n    String str = &quot;Battery &quot;+String(batt.mv)+&quot;mV &quot;+String(batt.per)+&quot;%\\n&quot;;\n    blehid.keySequence(str.c_str(), 10);\n  }<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u2191\u3053\u308c\u306f4\u756a\u76ee\u306e\u30ad\u30fc\u3092\u62bc\u3057\u305f\u3068\u304d\u306b\u3001\u30d0\u30c3\u30c6\u30ea\u30fc\u306e\u60c5\u5831\u3092\u6587\u5b57\u5217\u306b\u3057\u305f\u3082\u306e\u3092\u3001\u30ad\u30fc\u5165\u529b\u3068\u3057\u3066\u4e0e\u3048\u308b\u3082\u306e\u3067\u3059\u3002Bluefruit\u30e9\u30a4\u30d6\u30e9\u30ea\u3063\u3066\u3053\u3093\u306a\u3053\u3068\u3082\u3067\u304d\u308b\u3093\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>    keyPushModifer(HID_KEY_GRAVE, KEYBOARD_MODIFIER_LEFTALT);\n    blehid.keySequence(&quot;qawsedrftgyhujikolp\\n&quot;, 10);\n    keyPushModifer(HID_KEY_GRAVE, KEYBOARD_MODIFIER_LEFTALT);<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u308c\u3067\u306f\u2191\u3053\u308c\u306f\u3069\u3046\u306a\u308b\u3067\u3057\u3087\u3046\uff1f\u305c\u3072\u8a66\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Watch Dog Timer<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>  \/\/ WDT\u306e\u8a2d\u5b9a\n  NRF_WDT-&gt;CONFIG         = 0x01;     \/\/ Configure WDT to run when CPU is asleep\n  NRF_WDT-&gt;CRV            = 1+32768*120;    \/\/ CRV = timeout * 32768 + 1\n  NRF_WDT-&gt;RREN           = 0x01;     \/\/ Enable the RR[0] reload register\n  NRF_WDT-&gt;TASKS_START    = 1;        \/\/ Start WDT       \n\n  \/\/ WDT Update\n  NRF_WDT-&gt;RR[0] = WDT_RR_RR_Reload;<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u56de\u306f\u5fc5\u8981\u6027\u304c\u7121\u304b\u3063\u305f\u306e\u3067\u30b3\u30e1\u30f3\u30c8\u306b\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u3053\u3093\u306a\u611f\u3058\u3067WDT\u306e\u8a2d\u5b9a\u304c\u3067\u304d\u307e\u3059\u3002\u3053\u308c\u306f120\u79d2\u306e\u4f8b\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Deep Sleep<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>\/\/ deep sleep\u30e2\u30fc\u30c9\u306b\u5165\u308b\uff08\u5fa9\u5e30\u306f\u30ea\u30b9\u30bf\u30fc\u30c8\u306b\u306a\u308b\uff09\nvoid enterDeepSleep() {\n  nrf_gpio_cfg_sense_set(NRF_GPIO_PIN_MAP(0,2), NRF_GPIO_PIN_SENSE_HIGH);  \/\/ P0.02 = D0\u30d4\u30f3\u3067deep sleep\u304b\u3089\u5fa9\u5e30\n  sd_power_system_off();\n  \/\/ NRF_POWER-&gt;SYSTEMOFF = 1;\n}<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u306fnRF52840\u3092Deep Sleep\u30e2\u30fc\u30c9\u306b\u79fb\u884c\u3059\u308b\u4f8b\u3067\u3059\u3002Deep Sleep\u306b\u5165\u308b\u3068\u96fb\u6d41\u5024\u304c2\uff5e4uA\u307b\u3069\u307e\u3067\u4e0b\u304c\u308b\u306e\u3067\u3001\u30b3\u30a4\u30f3\u96fb\u6c60\u3067\u904b\u7528\u3057\u3066\u3044\u308b\u6642\u306b\u4fbf\u5229\u3067\u3059\u3002NRF_GPIO_PIN_MAP(0,2)\u3068\u3044\u3046\u306e\u306f\u5fa9\u5e30\u3059\u308b\u305f\u3081\u306e\u30d4\u30f3\u306e\u8a2d\u5b9a\u3067\u3001P0.02\u30d4\u30f3\u3068\u3044\u3046\u306e\u306fXIAO nRF52840\u3067\u306fD0\u30d4\u30f3\u306b\u76f8\u5f53\u3057\u307e\u3059\u3002\u3053\u306eP\u3067\u59cb\u307e\u308b\u30d4\u30f3\u306f\u3001XIAO nRF52840\u306e\u30d4\u30f3\u30a2\u30b5\u30a4\u30f3\u8868\u306b\u66f8\u3044\u3066\u3042\u308a\u307e\u3059\u3002\u4ed6\u306e\u30d4\u30f3\u3067\u3082\u3044\u304f\u3064\u304b\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\u304c\u3001\u6b63\u5e38\u306b\u5fa9\u5e30\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\u3002\u5fa9\u5e30\u306f\u518d\u8d77\u52d5\u3068\u306a\u308a\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5148\u982d\u304b\u3089\u958b\u59cb\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NRF_GPIO_PIN_SENSE_HIGH\u306fLOW\u2192HIGH\u306b\u306a\u3063\u305f\u3089\u5fa9\u5e30\u3092\u3059\u308b\u8a2d\u5b9a\u3067\u3059\u3002\u30ad\u30fc\u306f\u62bc\u3059\u3068VCC\u306b\u7e4b\u304c\u308b\u914d\u7dda\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u62bc\u3055\u308c\u305f\u3089\u96fb\u6e90\u30aa\u30f3\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u307e\u3068\u3081<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u3068\u3044\u3046\u3053\u3068\u3067\u4eca\u56de\u306f\u3058\u3081\u3066nRF52840\u3068\u3044\u3046\u30de\u30a4\u30b3\u30f3\u3092\u89e6\u308a\u307e\u3057\u305f\u304c\u3001\u306a\u304b\u306a\u304b\u9762\u767d\u3044\u30c7\u30d0\u30a4\u30b9\u3060\u3068\u601d\u3044\u307e\u3057\u305f\u3002\u4f55\u3088\u308a\u4f4e\u6d88\u8cbb\u96fb\u529b\u306a\u3068\u3053\u308d\u304c\u7d20\u6674\u3089\u3057\u3044\u3067\u3059\u306d\u3002Bluefruit\u30e9\u30a4\u30d6\u30e9\u30ea\u3082\u5145\u5b9f\u3057\u3066\u3044\u3066\u3001\u7c21\u5358\u306bBLE\u30c7\u30d0\u30a4\u30b9\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002XIAO nRF52840\u306f\u5916\u90e8\u306b\u51fa\u3066\u308b\u30d4\u30f3\u6570\u3082\u591a\u3044\u306e\u3067\u3001\u81ea\u4f5c\u30ad\u30fc\u30dc\u30fc\u30c9\u3092\u4f5c\u308b\u306b\u306f\u3082\u3063\u3066\u3053\u3044\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3055\u3066\u3001\u6b21\u56de\u306f\u30b7\u30ea\u30fc\u30ba\u306e\u6700\u5f8c\u3001\u30b1\u30fc\u30b9\u3068\u30ad\u30fc\u30ad\u30e3\u30c3\u30d7\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1\u30dc\u30bf\u30f3\u3060\u3051\u306e\u30ef\u30a4\u30e4\u30ec\u30b9\u30ad\u30fc\u30dc\u30fc\u30c9<\/strong><br>(1) <a href=\"https:\/\/akibabara.com\/blog\/7749.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u6e96\u5099\u7de8<\/a><br>(2) <a href=\"https:\/\/akibabara.com\/blog\/7761.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u30d7\u30ea\u30f3\u30c8\u57fa\u677f\u306e\u88fd\u4f5c\u7de8<\/a><br>(3) \u30d5\u30a1\u30fc\u30e0\u30a6\u30a7\u30a2\u306e\u4f5c\u6210\u7de8\u3000<strong>\u2190\u3044\u307e\u3053\u3053<\/strong><br>(4) <a href=\"https:\/\/akibabara.com\/blog\/7809.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u30b1\u30fc\u30b9\u3068\u30ad\u30fc\u30ad\u30e3\u30c3\u30d7\u306e\u88fd\u4f5c\u7de8<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30b7\u30ea\u30fc\u30ba\u300e1\u30dc\u30bf\u30f3\u3060\u3051\u306e\u30ef\u30a4\u30e4\u30ec\u30b9\u30ad\u30fc\u30dc\u30fc\u30c9\u300f\u3001\u6b21\u306f\u30d5\u30a1\u30fc\u30e0\u30a6\u30a7\u30a2\u306b\u3064\u3044\u3066\u66f8\u3044\u3066\u3044\u304d\u305f\u3044\u3068\u601d\u2026<\/p>\n","protected":false},"author":1,"featured_media":7842,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[130,141,142,143],"class_list":{"0":"post-7840","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-other-topic","8":"tag-arduino","9":"tag-nrf52840","10":"tag-xiao","11":"tag-1ble","12":"three-column","13":"ar-three-column","14":"au-three-column"},"jetpack_featured_media_url":"https:\/\/akibabara.com\/blog\/wp-content\/uploads\/2024\/12\/fdb2aa6d8ba7ec24628f9374140eae4c.webp","jetpack_shortlink":"https:\/\/wp.me\/pavCgQ-22s","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/akibabara.com\/blog\/wp-json\/wp\/v2\/posts\/7840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/akibabara.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/akibabara.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/akibabara.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/akibabara.com\/blog\/wp-json\/wp\/v2\/comments?post=7840"}],"version-history":[{"count":18,"href":"https:\/\/akibabara.com\/blog\/wp-json\/wp\/v2\/posts\/7840\/revisions"}],"predecessor-version":[{"id":7879,"href":"https:\/\/akibabara.com\/blog\/wp-json\/wp\/v2\/posts\/7840\/revisions\/7879"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/akibabara.com\/blog\/wp-json\/wp\/v2\/media\/7842"}],"wp:attachment":[{"href":"https:\/\/akibabara.com\/blog\/wp-json\/wp\/v2\/media?parent=7840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/akibabara.com\/blog\/wp-json\/wp\/v2\/categories?post=7840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/akibabara.com\/blog\/wp-json\/wp\/v2\/tags?post=7840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}