1. johnny-shaman

    No comment

    johnny-shaman
Changes in body
Source | HTML | Preview
@@ -1,60 +1,60 @@
#Chirimen for raspberry Pi とは
ライブラリを読み込むことで、navigator にrequestI2CAccessやrequestGPIOAccessを拡張する、ラズパイのIoT支援ライブラリとでも言いましょうか?
#本題であるラッパー
[chirimeneck](https://github.com/johnny-shaman/chirimeneck)と言います。
それほど難しいことはしていません。
chirimen上でのrequest...Accessは二重の呼び出しができないので、別の定数に返却されるオブジェクトを閉じ込めただけです。
chirimenenck上の関数呼び出しだけで、chirimen上の構文をそのまま使えます。
~~~html
<script src="../../polyfill/polyfill.js"></script>
<!-- load driver as you like -->
<script src="../../drivers/i2c-ADT7410.js"></script>
<!-- load driver as you like -->
<script src="../../chirimeneck/gpio.js"></script>
<script src="../../chirimeneck/i2c.js"></script>
~~~
~~~javascript
//GPIO
(async function () {
const gpio5 = await GPIO(5, "in");
const gpio26 = await GPIO(26, "out");
let v = 0
gpio5.onchange = function (e) {
v ^= v
await gpio26.write(v);
};
})();
///I2C
(async function () {
- const adt7410 = await i2cloadDriver(ADT7410, 0x48);
+ const adt7410 = await i2cLoadDriver(ADT7410, 0x48);
while (true) {
let value = await adt7410.read();
// do somthing
await sleep(1000);
}
})();
(async function () {
- const groveLight = await i2cloadDriver(GROVELIGHT, 0x29);
+ const groveLight = await i2cLoadDriver(GROVELIGHT, 0x29);
while (true) {
try {
var value = await groveLight.read();
// console.log('value:', value);
head.innerHTML = value ? value : head.innerHTML;
await sleep(200);
} catch (error) {
console.log(" Error : ", error);
}
}
})();
~~~
#ネジのような部品
プログラミングで最も必要なものは、大きな大枠の問題を解決するための、小さな部品です。しかし、絆創膏的なコードを書くという意味ではありません。
問題となる具象を包み込んで、いかなる抽象化を施すかで、ソースコードの質は抜群に上がります。
今回は、自分の勉強のためにも書いてみたようなものですが、皆様のためにもなればと思います。