USB
WebUSB

WebUSBからPIC18Fをつついてみる(仮)

うっほあー、USB関連勉強した後だとめっちゃ簡単、というか、libusbそのまんまやんこれ
ベンダーIDも変更してみるか
Microsoft OS 2.0 Descriptorが自動認識の鍵になっているのはわかった。Win8.1以降から使えるらしい。

webusb.htm
<html>
Hello<br>
<script src="webusb.js"></script>
<input type="button" onClick="connectbutton()" value="接続">
</html>
webusb.js
function connectbutton()
{
    var device;
    var buf = new ArrayBuffer(1);
    var dat = new Uint8Array(buf, 0, buf.length);
    dat[0] = 0x81;

    navigator.usb.requestDevice({ filters: [{ vendorId: 0x04D8 , productId: 0x0053}] })
    .then(selectedDevice => {
       device = selectedDevice;
       return device.open(); // Begin a session.
     })
//  .then(() => device.selectConfiguration(0)) // Select configuration #1 for the device.
    .then(() => device.claimInterface(0)) // Request exclusive control over interface #2.
    .then(() => device.transferOut(1, dat)) // Waiting for 64 bytes of data from endpoint #5.
    .then(() => device.transferIn(1, 64)) // Waiting for 64 bytes of data from endpoint #5.
    .then(result => {
        for(i=0;i<result.data.byteLength;i++)
        {
            console.log('Received: ' + result.data.getInt8(i));
        }
    })
    .catch(error => { console.log(error); });
}

動作サンプル

もうちょっとマシなやつを実際に動く形で置いてみました.
Chromeの最新版をお使いの場合は、以下のページのWebUSBで確認ができます.
https://sabowl.sakura.ne.jp/gpsnmeajp/webusb/webusb.htm

参考文献

Access USB Devices on the Web
https://developers.google.com/web/updates/2016/03/access-usb-devices-on-the-web