Web USB APIã«ãããŠã§ãã¢ããªããã®çŽæ¥ããŒããŠã§ã¢ã¢ã¯ã»ã¹ãæ¢æ±ããåŸæ¥ã®ããã€ã¹ãã©ã€ããŒå®è£ ãšæ¯èŒãå©ç¹ãå¶éãäžçç驿°ã®å¯èœæ§ã解説ããŸãã
Web USB APIïŒçŽæ¥ããŒããŠã§ã¢ã¢ã¯ã»ã¹ vs. ããã€ã¹ãã©ã€ããŒå®è£
ãŠã§ãéçºã®ç¶æ³ã¯åžžã«é²åããŠããããã©ãŠã¶ãšããå¶çŽã®äžã§å¯èœãªããšã®éçãæŒãåºããŠããŸããé·å¹ŽããŠã§ãã¯ç©ççãªäžçãã倧ããåãé¢ããããæ å ±æ€çŽ¢ãšã€ã³ã¿ã©ã¯ãã£ããªã³ã³ãã³ãã®é åã§ãããããããWeb USBã®ãããªAPIã®ç»å Žã«ããããã®ãã©ãã€ã ã¯åçã«å€åãããŠã§ãã¢ããªã±ãŒã·ã§ã³ãããŒããŠã§ã¢ããã€ã¹ãšçŽæ¥å¯Ÿè©±ã§ããããã«ãªããŸããããã®å€åã¯ãã¢ãã®ã€ã³ã¿ãŒãããïŒIoTïŒããç§åŠç ç©¶ãç£æ¥ãªãŒãã¡ãŒã·ã§ã³ã«è³ããŸã§ãããŸããŸãªæ¥çã«å€å€§ãªåœ±é¿ãäžããŸãããããããã®çŽæ¥çãªããŒããŠã§ã¢ã¢ã¯ã»ã¹ã¯ãåŸæ¥ã®ããã€ã¹ãã©ã€ããŒå®è£ ãšããæ¹æ³ãšæ¯ã¹ãŠã©ããªã®ã§ããããïŒãã®èšäºã§ã¯ãWeb USB APIã®è©³çްãæãäžããããã€ã¹ãã©ã€ããŒéçºãšæ¯èŒããªãããã°ããŒãã«ã«ã€ãªããæªæ¥ãžã®å¯èœæ§ãæããã«ããŸãã
åŸæ¥ã®æ¹åŒãçè§£ããïŒããã€ã¹ãã©ã€ããŒ
Web USB APIãæ¢æ±ããåã«ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãããŒããŠã§ã¢ãšéä¿¡ããããã®ç¢ºç«ãããæ¹æ³ã§ããããã€ã¹ãã©ã€ããŒãçè§£ããããšãéèŠã§ãã
ããã€ã¹ãã©ã€ããŒãšã¯ïŒ
ããã€ã¹ãã©ã€ããŒãšã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒOSïŒãç¹å®ã®ããŒããŠã§ã¢ããã€ã¹ãšéä¿¡ã§ããããã«ããããã®ãœãããŠã§ã¢ã§ãã翻蚳è ã ãšèããŠãã ãããã¢ããªã±ãŒã·ã§ã³ãããªã³ã¿ãŒãã°ã©ãã£ãã¯ã«ãŒããUSBããŠã¹ãªã©ãšå¯Ÿè©±ããå¿ èŠãããå ŽåãããŒããŠã§ã¢ã«çŽæ¥è©±ããããããã§ã¯ãããŸããã代ããã«ãOSã«ã³ãã³ããéä¿¡ããOSã¯é©åãªããã€ã¹ãã©ã€ããŒã䜿çšããŠãããã®ã³ãã³ããããŒããŠã§ã¢ãçè§£ã§ããèšèªã«ç¿»èš³ããŸãããŸãããã©ã€ããŒã¯ããŒããŠã§ã¢ããã®å¿çãOSãšã¢ããªã±ãŒã·ã§ã³ãçè§£ã§ãã圢åŒã«ç¿»èš³ãçŽããŸãã
ãã©ã€ããŒéçºã®è€éã
ããã€ã¹ãã©ã€ããŒã®éçºã¯ãé«åºŠã«å°éçã§è€éãªäœæ¥ã§ãã
- ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãžã®äŸåïŒ ãã©ã€ããŒã¯éåžžãç¹å®ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒWindowsãmacOSãLinuxïŒåãã«æžãããŸããWindowsçšã®ãã©ã€ããŒã¯macOSã§ã¯åäœããããã®éãåæ§ã§ãããã®æçåã«ãããéçºè ã¯å¹ åºãäºææ§ã確ä¿ããããã«è€æ°ã®ããŒãžã§ã³ã®ãã©ã€ããŒãäœæããç¶æããå¿ èŠããããŸãã
- äœã¬ãã«ããã°ã©ãã³ã°ïŒ ãã©ã€ããŒéçºã«ã¯ãCãC++ã®ãããªäœã¬ãã«ããã°ã©ãã³ã°èšèªãé¢ããããšãå€ããããŒããŠã§ã¢ã¢ãŒããã¯ãã£ãã¡ã¢ãªç®¡çãã«ãŒãã«æäœã«é¢ããæ·±ãç¥èãå¿ èŠã§ãã
- ã»ãã¥ãªãã£ãªã¹ã¯ïŒ ããã€ã¹ãã©ã€ããŒã®ãã°ã¯èŽåœçã«ãªãå¯èœæ§ããããŸãããã©ã€ããŒã¯OSå ã§ç¹æš©ã¬ãã«ã§åäœãããããæ¬ é¥ã®ãããã©ã€ããŒã¯ã·ã¹ãã ã®äžå®å®åãã¯ã©ãã·ã¥ïŒãã«ãŒã¹ã¯ãªãŒã³ïŒãé倧ãªã»ãã¥ãªãã£è匱æ§ã«ã€ãªããå¯èœæ§ããããŸããæªæã®ããæ»æè ã¯ããã©ã€ããŒã®åŒ±ç¹ãæªçšããŠã·ã¹ãã ãžã®äžæ£ã¢ã¯ã»ã¹ãåŸãããšãã§ããŸãã
- ããŒããŠã§ã¢ã®ç¹ç°æ§ïŒ åãã©ã€ããŒã¯ç¹å®ã®ããŒããŠã§ã¢ã¢ãã«ãŸãã¯ãã¡ããªãŒã«åãããŠèª¿æŽãããŠããŸããããŒããŠã§ã¢ã¡ãŒã«ãŒãããã€ã¹ãæŽæ°ããããæ°ããããã€ã¹ãå°å ¥ããããããšãæ°ãããã©ã€ããŒïŒãŸãã¯æ¢åã®ãã©ã€ããŒã®æŽæ°ïŒãéçºããé åžããå¿ èŠããããŸãã
- é åžãšæŽæ°ïŒ ãšã³ããŠãŒã¶ãŒãžã®ãã©ã€ããŒã®é åžã¯å°é£ãªå ŽåããããŸãããŠãŒã¶ãŒã¯å€ãã®å Žåãæåã§ãã©ã€ããŒãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããããOSã®æŽæ°ã¡ã«ããºã ã«é Œãå¿ èŠããããŸãããããã¯ããŒããŠã§ã¢ã®ãªãªãŒã¹ã«é ããããšããããŸãã倿§ãªãŠãŒã¶ãŒããŒã¹å šäœã§ãã©ã€ããŒã®æŽæ°ã管çããããšã¯ãç¶ç¶çãªèª²é¡ã§ãã
- ã¯ãã¹ãã©ãããã©ãŒã ã®èª²é¡ïŒ ç°ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã éã§äžè²«ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãå®çŸããããšã¯ã倧ããªããŒãã«ã§ããããŒããŠã§ã¢ããã€ã¹ã¯ãããOSã§ã¯å®ç§ã«æ©èœãããããããŸãããããã©ã€ããŒã®éãã«ãããå¥ã®OSã§ã¯æ©èœãå¶éãããããããã©ãŒãã³ã¹ãäœäžãããããããšããããŸãã
åŸæ¥ã®ããŒããŠã§ã¢å¯Ÿè©±ã«ãããUSBã®åœ¹å²
ãŠãããŒãµã«ã»ã·ãªã¢ã«ã»ãã¹ïŒUSBïŒã¯ãæ°å幎ã«ãããåšèŸºæ©åšãã³ã³ãã¥ãŒã¿ã«æ¥ç¶ããããã®äž»èŠãªæšæºèŠæ Œã§ããããã®ãã©ã°ã¢ã³ããã¬ã€æ©èœã¯ããšã³ããŠãŒã¶ãŒã«ãšã£ãŠããŒããŠã§ã¢æ¥ç¶ãå€§å¹ ã«ç°¡çŽ åããŸããããããããã®è£ã§ã¯ãOSã¯äŸç¶ãšããŠããŒããŒããããŠã¹ãå€éšã¹ãã¬ãŒãžãå°éçãªç§åŠæ©åšãªã©ã®USBããã€ã¹ããã®ããŒã¿ã¹ããªãŒã ãè§£éããããã«ãç¹å®ã®USBããã€ã¹ãã©ã€ããŒã«äŸåããŠããŸãã
Web USB APIã®ç޹ä»
Web USB APIã¯ãäºææ§ã®ãããŠã§ããã©ãŠã¶ã§å®è¡ããããŠã§ãã¢ããªã±ãŒã·ã§ã³ãããŠãŒã¶ãŒã®ã³ã³ãã¥ãŒã¿ã«æ¥ç¶ãããUSBããã€ã¹ãšçŽæ¥éä¿¡ã§ããããã«ããææ°ã®ãŠã§ãæšæºã§ããããã«ãããã«ã¹ã¿ã ã®ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ããã©ãŠã¶ãã©ã°ã€ã³ãäžèŠã«ãªãããŠã§ãéçºè ãšãŠãŒã¶ãŒåæ¹ã«ãšã£ãŠããŒããŠã§ã¢ãšã®å¯Ÿè©±ããã身è¿ãªãã®ã«ãªããŸãã
Web USBã®ä»çµã¿
Web USB APIã¯ãUSBéä¿¡ã¬ã€ã€ãŒããã©ãŠã¶ã§å®è¡ãããJavaScriptã«å ¬éããŸããããã¯ãŠãŒã¶ãŒã®åæã¢ãã«ã«åºã¥ããŠåäœãããŠã§ãããŒãžãç¹å®ã®USBããã€ã¹ã«ã¢ã¯ã»ã¹ããããã«ã¯ããŠãŒã¶ãŒãæç€ºçã«èš±å¯ãäžããå¿ èŠããããŸããããã¯éèŠãªã»ãã¥ãªãã£æ©èœã§ãã
äžè¬çãªã¯ãŒã¯ãããŒã¯æ¬¡ã®éãã§ãã
- ããã€ã¹ã¢ã¯ã»ã¹ã®èŠæ±ïŒ ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã¯JavaScriptã䜿çšããŠãå©çšå¯èœãªããã€ã¹ã®ãªã¹ãããUSBããã€ã¹ãéžæãããããŠãŒã¶ãŒã«ä¿ããŸãã
- æ¥ç¶ã®ç¢ºç«ïŒ ãŠãŒã¶ãŒãèš±å¯ãäžãããšããŠã§ãã¢ããªã¯éžæãããããã€ã¹ãšã®æ¥ç¶ã確ç«ããŸãã
- ããŒã¿ã®éåä¿¡ïŒ ãã®åŸããŠã§ãã¢ããªã±ãŒã·ã§ã³ã¯ããŸããŸãªUSB転éã¿ã€ãïŒã³ã³ãããŒã«ããã«ã¯ãã€ã³ã¿ã©ããïŒã䜿çšããŠãUSBããã€ã¹ãšã®éã§ããŒã¿ãéåä¿¡ã§ããŸãã
- æ¥ç¶ã®çµäºïŒ 察話ãå®äºãããšãæ¥ç¶ã¯éããããŸãã
Web USBã®äž»ãªæ©èœãšå©ç¹
Web USB APIã«ã¯ãããã€ãã®é åçãªå©ç¹ããããŸãã
- ã¯ãã¹ãã©ãããã©ãŒã äºææ§ïŒ åäžã®ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã§ããã©ãŠã¶ãWeb USB APIããµããŒãããŠããéããç°ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒWindowsãmacOSãLinuxïŒããã©ãŠã¶ç°å¢ãè¶ããŠUSBããã€ã¹ãšå¯Ÿè©±ã§ããå¯èœæ§ããããŸããããã«ãããéçºå·¥æ°ãå€§å¹ ã«åæžããããªãŒããåºãããŸãã
- ãã€ãã£ãã€ã³ã¹ããŒã«ã®äžèŠïŒ ãŠãŒã¶ãŒã¯åå¥ã®ããã€ã¹ãã©ã€ããŒãã¢ããªã±ãŒã·ã§ã³ãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããå¿ èŠããããŸãããããŒããŠã§ã¢ãžã®ã¢ã¯ã»ã¹ã¯ãŠã§ããã©ãŠã¶ãéããŠæäŸãããå±éãšæŽæ°ãç°¡çŽ åãããŸãã
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®åäžïŒ ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãWeb USB APIã¯ããã·ãŒã ã¬ã¹ã§çŽæçãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããŸããæ°ããã¹ããŒãããŒã ããã€ã¹ãèšå®ããããç§åŠæ©åšã調æŽãããããéã«ãè€éãªãœãããŠã§ã¢ãããŠã³ããŒãããããšãªããŠã§ãã€ã³ã¿ãŒãã§ãŒã¹ããçŽæ¥è¡ããããšãæ³åããŠã¿ãŠãã ããã
- IoTãšçµã¿èŸŒã¿ã·ã¹ãã ã®é©æ°ïŒ Web USBã¯ãIoTããã€ã¹ããã€ã¯ãã³ã³ãããŒã©ãŒãçµã¿èŸŒã¿ã·ã¹ãã ãšãŠã§ããã©ãŠã¶ããçŽæ¥å¯Ÿè©±ããããã®æ°ããªå¯èœæ§ãéããŸããããã«ããããããã¿ã€ãã³ã°ãå éããããã€ã¹ç®¡çãç°¡çŽ åããããããªãããªãŠã§ãããŒã¹ã®å¶åŸ¡ã€ã³ã¿ãŒãã§ãŒã¹ãäœæã§ããŸãã
- ãŠã§ãããŒã¹ã®ããŒã«ãšèšºæïŒ éçºè ãæè¡è ã¯ãèšå®ããã¡ãŒã ãŠã§ã¢ã®æŽæ°ããã©ãã«ã·ã¥ãŒãã£ã³ã°ã®ããã«ããŒããŠã§ã¢ãšçŽæ¥å¯Ÿè©±ãããŠã§ãããŒã¹ã®èšºæããŒã«ãäœæã§ããŸãã
- ã¢ã¯ã»ã·ããªãã£ïŒ ããŒããŠã§ã¢ãšã®å¯Ÿè©±ããŠã§ãã«ç§»è¡ããããšã§ããŠã§ãã¢ããªã±ãŒã·ã§ã³èªäœãã¢ã¯ã»ã·ããªãã£ã念é ã«çœ®ããŠèšèšãããŠããã°ãããå€ãã®äººã ã«ãšã£ãŠã¢ã¯ã»ã¹ãããããªãå¯èœæ§ããããŸãã
çŽæ¥ããŒããŠã§ã¢ã¢ã¯ã»ã¹ vs. ããã€ã¹ãã©ã€ããŒå®è£ ïŒæ¯èŒåæ
ã©ã¡ãã®ã¢ãããŒããããŒããŠã§ã¢ãšã®å¯Ÿè©±ãä¿é²ããããšãç®çãšããŠããŸããããã®æ¹æ³è«ãç¯å²ã圱é¿ã«ãããŠæ ¹æ¬çã«ç°ãªããŸãã
ã¢ã¯ã»ã¹ã®ç¯å²
- ããã€ã¹ãã©ã€ããŒïŒ ããŒããŠã§ã¢ãžã®æ·±ããäœã¬ãã«ã®ã¢ã¯ã»ã¹ãæäŸããŸããããã€ã¹ã®ã»ãŒãã¹ãŠã®åŽé¢ãå¶åŸ¡ã§ããåºæ¬çãªããŒããŠã§ã¢æäœïŒäŸïŒèµ·åãã°ã©ãã£ãã¯ã¹ã¬ã³ããªã³ã°ïŒã«äžå¯æ¬ ã§ããOSã«ãŒãã«å ã§åäœããŸãã
- Web USB APIïŒ ããæœè±¡åããããé«ã¬ãã«ã®ã¢ã¯ã»ã¹ãæäŸããŸããç¹å®ã®USBãšã³ããã€ã³ããä»ããããŒã¿äº€æãšå¶åŸ¡ã¯å¯èœã§ããããã€ãã£ããã©ã€ããŒãæäŸãããããªè©³çްãªå¶åŸ¡ã¯ã§ããŸããããã©ãŠã¶ã®ãµã³ãããã¯ã¹å ã§åäœãããããæ¬è³ªçã«ã»ãã¥ãªãã£ãšãã©ã€ãã·ãŒã®å¶éã課ããããŸãã
è€éããšéçºå·¥æ°
- ããã€ã¹ãã©ã€ããŒïŒ éçºã¯éåžžã«è€éã§æéãããããŸããå°éçãªã¹ãã«ãOSå éšã®ç¥èãåºç¯ãªãã¹ããå¿ èŠã§ãã
- Web USB APIïŒ ãŠã§ãéçºè ã«ãšã£ãŠã¯ããã«ç°¡åã§ããæ¢åã®JavaScriptã¹ãã«ã掻çšããéçºè ã¯å°ãªããªãŒããŒãããã§ããŒããŠã§ã¢æ©èœããŠã§ãã¢ããªã±ãŒã·ã§ã³ã«çµ±åã§ããŸããAPIã¯OSãšããŒããŠã§ã¢ã®è€éãã®å€ããæœè±¡åããŸãã
ãã©ãããã©ãŒã ãžã®äŸå
- ããã€ã¹ãã©ã€ããŒïŒ ãã©ãããã©ãŒã ãžã®äŸå床ãéåžžã«é«ãã§ãã察象ãšãªãåOSçšã«ãã©ã€ããŒãäœæããç¶æããå¿ èŠããããŸãã
- Web USB APIïŒ ã»ãšãã©ãã©ãããã©ãŒã ã«äŸåããŸããããŠã§ãã¢ããªã±ãŒã·ã§ã³ã¯ãå¿ èŠãªãã©ãŠã¶ã®èš±å¯ãäžããããã°ãWeb USBããµããŒãããã©ã®OSãšãã©ãŠã¶ã§ãåäœããŸãã
ã»ãã¥ãªãã£ãšãã©ã€ãã·ãŒ
- ããã€ã¹ãã©ã€ããŒïŒ æŽå²çã«ããã®ç¹æš©çãªã¢ã¯ã»ã¹ã®ããã«ã»ãã¥ãªãã£è匱æ§ã®å€§ããªåå ãšãªã£ãŠããŸãããçŸä»£ã®OSã»ãã¥ãªãã£ã¯åäžããŸãããããã©ã€ããŒã®ãã°ã¯äŸç¶ãšããŠãªã¹ã¯ã§ãã
- Web USB APIïŒ ã»ãã¥ãªãã£ãšãã©ã€ãã·ãŒã念é ã«çœ®ããŠèšèšãããŠããŸããæç€ºçãªãŠãŒã¶ãŒåæã¢ãã«ã«ããããŠãŒã¶ãŒãããã€ã¹ã¢ã¯ã»ã¹ãèªèããæ¿èªããããšãä¿èšŒãããŸãããã©ãŠã¶ã®ãµã³ãããã¯ã¹ã¯ããŠã§ãã¢ããªã±ãŒã·ã§ã³ãã§ããããšãå¶éããæ©å¯æ§ã®é«ãã·ã¹ãã ãªãœãŒã¹ãžã®äžæ£ã¢ã¯ã»ã¹ãé²ããŸãã
ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãšé åž
- ããã€ã¹ãã©ã€ããŒïŒ å€ãã®å Žåãæåã§ã®ã€ã³ã¹ããŒã«ãšç®¡çãå¿ èŠã§ããŠãŒã¶ãŒã®äžæºãäºææ§ã®åé¡ã«ã€ãªããå¯èœæ§ããããŸãã
- Web USB APIïŒ URLãéããŠçŽæ¥ã¢ã¯ã»ã¹ã§ãããåçåãããã€ã³ã¹ããŒã«äžèŠã®ãšã¯ã¹ããªãšã³ã¹ãæäŸããŸããããã«ããããŠãŒã¶ãŒã®ãªã³ããŒãã£ã³ã°ãšã¢ã¯ã»ã¹ãå€§å¹ ã«ç°¡çŽ åãããŸãã
ããŒããŠã§ã¢ã®äºææ§ãšãµããŒã
- ããã€ã¹ãã©ã€ããŒïŒ ã¡ãŒã«ãŒã¯ãèªç€Ÿããã€ã¹çšã®ãã©ã€ããŒãéçºããé åžãã責任ãè² ããŸããå€ãã®å ŽåãOSããšã«è¡ãããŸãã
- Web USB APIïŒ Web USB APIã察話ã§ããæšæºã€ã³ã¿ãŒãã§ãŒã¹ãUSBããã€ã¹ãå ¬éããŠããããšã«äŸåããŸããå¹ åºãUSBããã€ã¹ãšå¯Ÿè©±ã§ããŸããããŠã§ãã¢ããªåŽã§ã®ã«ã¹ã¿ã JavaScriptããžãã¯ãªãã§ã¯ãé«åºŠã«å°éçãŸãã¯ç¬èªã®éä¿¡ãããã³ã«ããµããŒãã§ããªãå ŽåããããŸããå€ãã®ããã€ã¹ã«ã¯ãWeb USBãæŽ»çšã§ããUSBã€ã³ã¿ãŒãã§ãŒã¹ããã§ã«åãã£ãŠããŸããããè€éãªããã€ã¹ã®å Žåããã®ç¹å®ã®ãããã³ã«ãWeb USBãã¬ã³ããªãŒãªã€ã³ã¿ãŒãã§ãŒã¹ã«æ©æž¡ãããããã«ãããã€ã¹äžã®ã³ã³ãããªã³ãã¡ãŒã ãŠã§ã¢ãå¿ èŠã«ãªãããšããããŸãã
ãŠãŒã¹ã±ãŒã¹ãšå ·äœäŸ
Web USB APIã¯ãã¹ãŠã®ããã€ã¹ãã©ã€ããŒã®ä»£æ¿åã§ã¯ãããŸããããç°¡çŽ åããããã¯ãã¹ãã©ãããã©ãŒã ã§ããŠãŒã¶ãŒãã¬ã³ããªãŒãªããŒããŠã§ã¢å¯Ÿè©±ãæãŸããç¹å®ã®ã·ããªãªã§åªããŠããŸãã
1. IoTããã€ã¹ã®ç®¡çãšèšå®
ã·ããªãªïŒ ãŠãŒã¶ãŒãæ°ããã¹ããŒãããŒã ã»ã³ãµãŒãDIYãããžã§ã¯ãçšã®Wi-Fi察å¿ãã€ã¯ãã³ã³ãããŒã©ãŒãè³Œå ¥ãããšããŸããåŸæ¥ããã®ãããã¯ãŒã¯èšå®ãè¡ã£ãããã«ã¹ã¿ã ãã¡ãŒã ãŠã§ã¢ãã¢ããããŒããããããã«ã¯ãå°çšã®ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãã³ãã³ãã©ã€ã³ããŒã«ãå¿ èŠã§ããã
Web USBãœãªã¥ãŒã·ã§ã³ïŒ ã¡ãŒã«ãŒã¯ãåæèšå®æã«ããã€ã¹ã«æ¥ç¶ããããã«Web USBã䜿çšãããŠã§ãããŒãžããã¹ãã§ããŸãããŠã§ãããŒãžã¯ãUSBçµç±ã§ããã€ã¹ãæ¥ç¶ãããããŠãŒã¶ãŒãã¬ã€ãããWi-Fiã®èªèšŒæ å ±ãå°ããããèšå®ãã¡ã€ã«ãã¢ããããŒãããããããããšãã§ããŸããããã«ããããŠãŒã¶ãŒãåå¥ã®ãœãããŠã§ã¢ãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããå¿ èŠããªããªããç¹ã«æè¡ã«è©³ãããªãäžçäžã®ãŠãŒã¶ãŒã«ãšã£ãŠãèšå®ããã»ã¹ãå€§å¹ ã«ã¢ã¯ã»ã¹ãããããªããŸãã
ã°ããŒãã«ãªäŸïŒ ããäŒæ¥ãæ°ããæè²çšãããããããã®ã©ã€ã³ããããçºå£²ãããšæ³åããŠãã ããããŠãŒã¶ãŒã«åãªãã¬ãŒãã£ã³ã°ã·ã¹ãã çšã®ç¹å®ã®IDEãããŠã³ããŒãããã代ããã«ãURLçµç±ã§ã¢ã¯ã»ã¹ã§ãããŠã§ãããŒã¹ã®ã€ã³ã¿ãŒãã§ãŒã¹ãæäŸã§ããŸããåŠçã¯USBçµç±ã§ãããããæ¥ç¶ãããŠã§ãã¢ããªããã©ãã°ã¢ã³ãããããã«ããããã°ã©ãã³ã°ããã¡ãŒã ãŠã§ã¢ã®æŽæ°ããªã¢ã«ã¿ã€ã ã®ã»ã³ãµãŒããŒã¿å¯èŠåãªã©ãããã¹ãŠãã©ãŠã¶å ã§å¯èœã«ããŸãã
2. ç§åŠã»ããŒã¿åéæ©åš
ã·ããªãªïŒ ç 究宀ã®ç ç©¶è ã¯ãããŒã¿åéãšåæã«å°çšãœãããŠã§ã¢ãå¿ èŠãšããå°éçãªUSBããŒã¹ã®æ©åšïŒäŸïŒãªã·ãã¹ã³ãŒããåå èšãpHã¡ãŒã¿ãŒïŒããã䜿çšããŸãã
Web USBãœãªã¥ãŒã·ã§ã³ïŒ Web USBã䜿çšãããšããããã®æ©åšçšã®ãŠã§ãããŒã¹ã®ããã·ã¥ããŒããäœæã§ããŸããç ç©¶è ã¯ããŠã§ããã©ãŠã¶ããçŽæ¥ãæ©åšã®å¶åŸ¡ãããŒã¿ãã®ã³ã°ã«ã¢ã¯ã»ã¹ã§ããå Žåã«ãã£ãŠã¯ã©ããããã¯ãŒã¯äžã®ã©ã®ããã€ã¹ããã§ãããããã¯é éå°ããã§ãïŒé©åãªãããã¯ãŒã¯èšå®ãããã°ïŒã¢ã¯ã»ã¹å¯èœã§ããããã«ãããå ±åäœæ¥ãšã¢ã¯ã»ã·ããªãã£ãä¿é²ãããè€æ°ã®ãŠãŒã¶ãŒãåã¯ãŒã¯ã¹ããŒã·ã§ã³ã«ãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããããšãªããå®éšãç£èŠãããããŒã¿ãåæãããã§ããŸãã
ã°ããŒãã«ãªäŸïŒ ãšãŒãããã®ãã倧åŠã倧æ°ç§åŠéšéã®ããã«ãŠã§ãã¢ããªã±ãŒã·ã§ã³ãéçºããäžçäžã®åŠçããã£ã³ãã¹ã«ããUSBæ°è±¡èŠ³æž¬æã«æ¥ç¶ã§ããããã«ãããšããŸããåŠçã¯ãããŒã¿ãã®ã³ã°ã®ééãé éã§èšå®ããããæž¬å®ãéå§ããããå±¥æŽããŒã¿ãèªåã®ããŒã«ã«ãã·ã³ã«çŽæ¥ããŠã³ããŒãããŠåæãããããããšãããã¹ãŠãŠã§ãã€ã³ã¿ãŒãã§ãŒã¹ãéããŠå¯èœã«ãªããŸãã
3. ã«ã¹ã¿ã åšèŸºæ©åšãšéçºããŒã
ã·ããªãªïŒ ArduinoãRaspberry Pi PicoããŸãã¯ããŸããŸãªã«ã¹ã¿ã USB-ã·ãªã¢ã«ã¢ããã¿ãŒãªã©ã®ãã©ãããã©ãŒã ã§äœæ¥ããããã€ã¹ããéçºè ã¯ããã°ãã°ã³ãŒããã¢ããããŒããããã³ãã³ããéä¿¡ãããããå¿ èŠããããŸãã
Web USBãœãªã¥ãŒã·ã§ã³ïŒ Web USBã䜿çšããŠããŠã§ãããŒã¹ã®IDEãèšå®ããŒã«ãæ§ç¯ã§ããŸããããã«ããããŠãŒã¶ãŒã¯åãã€ã¯ãã³ã³ãããŒã©ãŒçšã®ç¹å®ã®IDEããã©ã€ããŒãã€ã³ã¹ããŒã«ããããšãªãããã©ãŠã¶ããçŽæ¥ãã¡ãŒã ãŠã§ã¢ãæžã蟌ãããšãã§ããŸããããã¯ãç¹ã«è¿ éãªãããã¿ã€ãã³ã°ããéçºç°å¢ã®ç°¡çŽ åãæéèŠã§ããæè²ç®çã§éåžžã«æçšã§ãã
ã°ããŒãã«ãªäŸïŒ ãããªãŒãã³ãœãŒã¹ããŒããŠã§ã¢ã³ãã¥ããã£ãã人æ°ã®ããéçºããŒãçšã®ãŠã§ãIDEãéçºãããšããŸãããã®IDEã¯å®å šã«ãã©ãŠã¶å ã§å®è¡ãããWeb USBçµç±ã§ããŒãã«æ¥ç¶ããŠã³ãŒããã³ã³ãã€ã«ããã¢ããããŒãããŸããããã«ãããææ°ã®ãã©ãŠã¶ãšããŒãããããã°ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãäºåã®ãœãããŠã§ã¢ã€ã³ã¹ããŒã«ã®çµéšã«é¢ä¿ãªãã誰ã§ããã©ãããã©ãŒã ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
4. ç£æ¥å¶åŸ¡ãšèšºæ
ã·ããªãªïŒ è£œé æ¥ãç£æ¥çŸå Žã§ã¯ãæè¡è ã¯ãã°ãã°é äžãªã©ãããããã䜿çšããŠæ©æ¢°ã«æ¥ç¶ãã蚺æãèšå®ããŸãã¯ãã¡ãŒã ãŠã§ã¢ã®æŽæ°ãè¡ããŸããããã«ã¯ãç¬èªã®ãœãããŠã§ã¢ãç¹å®ã®ãã©ã€ããŒã®ã€ã³ã¹ããŒã«ã䌎ãããšããããããŸãã
Web USBãœãªã¥ãŒã·ã§ã³ïŒ ãŠã§ãããŒã¹ã®èšºæããŒã«ãããŒã«ã«ãããã¯ãŒã¯ã«å±éã§ããŸããæè¡è ã¯ããã©ãŠã¶ã§ç¹å®ã®URLã«ã¢ã¯ã»ã¹ãã蚺æçšã®ã¿ãã¬ãããã©ããããããUSBçµç±ã§æ©æ¢°ã«æ¥ç¶ããã ãã§ããŠã§ãã€ã³ã¿ãŒãã§ãŒã¹ãéããŠå¿ èŠãªãã§ãã¯ãæŽæ°ãå®è¡ã§ããŸããããã«ãããããŒã«ãã§ãŒã³ãç°¡çŽ åãããç°ãªãæ©æ¢°ã¢ãã«éã§ããæšæºåããã蚺æãå¯èœã«ãªãå¯èœæ§ããããŸãã
å¶éãšèæ ®äºé
ãã®å°æ¥æ§ã«ãããããããWeb USB APIã¯äžèœãªè§£æ±ºçã§ã¯ãªããç¬èªã®å¶éäºé ããããŸãã
- ãã©ãŠã¶ã®ãµããŒãïŒ Web USBã®ãµããŒãã¯ãŸã ãã¹ãŠã®ãã©ãŠã¶ã§æ®éçã§ã¯ãããŸãããChromeãšEdgeã¯è¯å¥œãªãµããŒããæäŸããŠããŸãããFirefoxãšSafariã¯æŽå²çã«ãµããŒããéå®çãŸãã¯çç¡ã§ããïŒãã ããç¶æ³ã¯å€åããŠããŸãïŒãéçºè ã¯ãã©ãŠã¶ã®äºææ§ãããªãã¯ã¹ã確èªããå¿ èŠããããŸãã
- ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æš©éïŒ ãŠãŒã¶ãŒã®åæãåŸãããã«èšèšãããŠããŸãããåºç€ãšãªãOSã圹å²ãæãããŸããäžéšã®OSèšå®ãã»ãã¥ãªãã£ããªã·ãŒãWeb USBã¢ã¯ã»ã¹ãå¶éããå ŽåããããŸãã
- ããã€ã¹ã®åæãšãã£ã«ã¿ãªã³ã°ïŒ æ£ããUSBããã€ã¹ãç¹å®ããŠéžæããããã»ã¹ã¯ãç¹ã«è€æ°ã®é¡äŒŒããããã€ã¹ãæ¥ç¶ãããŠããå Žåã«å°é£ãªããšããããŸãã
- USBæšæºãšãããã³ã«ïŒ Web USBã¯äž»ã«æšæºã®USBãããã³ã«ãšå¯Ÿè©±ããŸããéåžžã«ç¬èªæ§ã®é«ãããŸãã¯è€éãªéä¿¡ãããã³ã«ãæã€ããã€ã¹ã®å Žåãããããäºææ§ã®ãããã®ã«ããããã«ãããã€ã¹åŽã§å€§å¹ ãªã«ã¹ã¿ã JavaScriptããžãã¯ããã¡ãŒã ãŠã§ã¢ã®å€æŽãå¿ èŠã«ãªãå ŽåããããŸãã
- ç¹å®ã®USBã¯ã©ã¹ãžã®ã¢ã¯ã»ã¹äžå¯ïŒ ããŒããŒããããŠã¹çšã®ãã¥ãŒãã³ã€ã³ã¿ãŒãã§ãŒã¹ããã€ã¹ïŒHIDïŒãªã©ãäžéšã®éèŠãªUSBããã€ã¹ã¯ã©ã¹ã¯ãã»ãã¥ãªãã£äžã®çç±ããæå³çã«Web USBããé€å€ãããŠããŸãããŠã§ãããŒãžãããããå¶åŸ¡ã§ãããšãæ·±å»ãªã»ãã¥ãªãã£ãªã¹ã¯ïŒäŸïŒããŒã¹ãããŒã¯ã€ã³ãžã§ã¯ã·ã§ã³ïŒã«ã€ãªããå¯èœæ§ãããããã§ããHIDããã€ã¹ã«ã¯ãWebHID APIãå¥ã®é¢é£æšæºãšããŠååšããŸãã
- ã»ãã¥ãªãã£ã¢ãã«ïŒ ãŠãŒã¶ãŒã®åæã¯åŒ·åãªã»ãã¥ãªãã£å¯Ÿçã§ãããéçºè ã¯äŸç¶ãšããŠå ç¢ãªãšã©ãŒãã³ããªã³ã°ãšå ¥åæ€èšŒãå®è£ ããŠãæœåšçãªæªçšãé²ãå¿ èŠããããŸããç¹ã«ããŠã§ãã¢ããªã±ãŒã·ã§ã³ãã·ã¹ãã ã®ç¶æ ãèšå®ã倿Žã§ããããã€ã¹ãšå¯Ÿè©±ããå Žåã¯æ³šæãå¿ èŠã§ãã
- éå®çãªäœã¬ãã«å¶åŸ¡ïŒ ãã€ãã£ããã©ã€ããŒãšæ¯èŒããŠãWeb USBã¯ããŒããŠã§ã¢ã«å¯Ÿãã詳现ãªå¶åŸ¡ãæäŸããŸããããã€ã¬ã¯ãã¡ã¢ãªã¢ã¯ã»ã¹ãã«ãŒãã«ã¬ãã«ã®æäœãå¿ èŠãšããã¿ã¹ã¯ã«ã¯é©ããŠããŸããã
ãŠã§ãããŒã¹ã®ããŒããŠã§ã¢å¯Ÿè©±ã®æªæ¥
Web USB APIã¯ãWeb SerialãWeb BluetoothãWebHIDãªã©ã®é¢é£æšæºãšãšãã«ãããæ¥ç¶ããçµ±åããããŠã§ããžã®å€§ããªäžæ©ã衚ããŠããŸãããããã®APIã¯ãããžã¿ã«äžçãšç©çäžçã®éã®åŸæ¥ã®éå£ãæã¡ç Žã£ãŠããŸãã
ã°ããŒãã«ãªåœ±é¿ïŒ äžçäžã®ãªãŒãã£ãšã³ã¹ã«ãšã£ãŠããããã®APIã¯ä»¥äžãæäŸããŸãã
- ã¢ã¯ã»ã¹ã®æ°äž»åïŒ OSãéçºç°å¢ã«é¢ä¿ãªããäžçäžã®ããåºç¯ãªéçºè ãããŒããŠã§ã¢éçºãšå¯Ÿè©±ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
- æçåã®è»œæžïŒ åäžã®ãŠã§ãã¢ããªã±ãŒã·ã§ã³ããå€ãã®ç°ãªãåœããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ãŠãŒã¶ãŒã«ãµãŒãã¹ãæäŸã§ãããããããŒã«ãªãŒãŒã·ã§ã³ããã©ãããã©ãŒã åºæã®éçºã®è² æ ã軜æžãããŸãã
- ã€ãããŒã·ã§ã³ã®å éïŒ ãŠã§ãããã®ããç°¡åãªããŒããŠã§ã¢ã¢ã¯ã»ã¹ã¯ãåºç¯ãªãã€ãã£ãã¢ããªã±ãŒã·ã§ã³éçºã®ãªãœãŒã¹ãæããªãå¯èœæ§ã®ããæè²ãåžæ°ç§åŠãããŒã«ã©ã€ãºãããIoTãœãªã¥ãŒã·ã§ã³ãªã©ã®åéã§ã€ãããŒã·ã§ã³ãä¿é²ããããšãã§ããŸãã
- ãŠãŒã¶ãŒãªã³ããŒãã£ã³ã°ã®åçåïŒ ã°ããŒãã«åžå Žãã¿ãŒã²ãããšããããŒããŠã§ã¢ã¡ãŒã«ãŒã«ãšã£ãŠããŠã§ããã©ãŠã¶ãä»ããŠåæèšå®ãšå¯Ÿè©±ããã»ã¹ãç°¡çŽ åããããšã¯ã顧客æºè¶³åºŠãåçã«åäžããããµããŒãã®ãªãŒããŒããããåæžããããšãã§ããŸãã
ãã©ãŠã¶ãã³ããŒããµããŒããæ¡å€§ãç¶ããéçºè ããããã®åŒ·åãªAPIã«æ £ã芪ããã«ã€ããŠãçŽæ¥çãªããŒããŠã§ã¢ã¢ã¯ã»ã¹ã掻çšãã驿°çãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ãççºçã«å¢å ããããšãæåŸ ãããŸãããã®åŸåã¯ããŠã§ããåãªãæ å ±ãžã®çªã§ã¯ãªããç§ãã¡ã®åšãã®ç©çäžçãå¶åŸ¡ãã察話ããããã®åŒ·åãªã€ã³ã¿ãŒãã§ãŒã¹ãšãªãæªæ¥ã瀺ããŠããŸãã
çµè«
Web USB APIã¯ãå€ãã®ãŠãŒã¹ã±ãŒã¹ã«ãããŠãåŸæ¥ã®ããã€ã¹ãã©ã€ããŒå®è£ ã«ä»£ããé åçãªéžæè¢ãæäŸããŸããããŒããŠã§ã¢æ©èœãçµ±åããããŠã§ãéçºè ã®åå ¥éå£ãåçã«äžããã¯ãã¹ãã©ãããã©ãŒã ã®äºææ§ãä¿é²ãããœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«ãäžèŠã«ããããšã§ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããŸããããã€ã¹ãã©ã€ããŒã¯äœã¬ãã«ã®ã·ã¹ãã æäœãé«åºŠã«å°éåãããããŒããŠã§ã¢å¶åŸ¡ã«ãšã£ãŠäžå¯æ¬ ã§ããç¶ããŸãããWeb USB APIã¯ãŠã§ãããŒã¹ã®ããŒããŠã§ã¢å¯Ÿè©±ã®ããã®éèŠãªããããåãéããŠããŸãããã®ãŠãŒã¶ãŒäžå¿ã®ã»ãã¥ãªãã£ã¢ãã«ãšåºæã®ã¢ã¯ã»ã·ããªãã£ã¯ãã€ãããŒã·ã§ã³ã®ããã®åŒ·åãªããŒã«ãšãªããã€ãªããã®ããã°ããŒãã«ãªããžã¿ã«ã©ã³ãã¹ã±ãŒãã®æªæ¥ã圢äœãäžã§éèŠãªåœ¹å²ãæããã§ãããã