Help us understand the problem. What is going on with this article?

ラズパイのフロントエンドでマイコン制御するライブラリのラッパーを書いてみた

More than 1 year has passed since last update.

Chirimen for raspberry Pi とは

ライブラリを読み込むことで、navigator にrequestI2CAccessやrequestGPIOAccessを拡張する、ラズパイのIoT支援ライブラリとでも言いましょうか?

本題であるラッパー

chirimeneckと言います。
それほど難しいことはしていません。
chirimen上でのrequest...Accessは二重の呼び出しができないので、別の定数に返却されるオブジェクトを閉じ込めただけです。
chirimenenck上の関数呼び出しだけで、chirimen上の構文をそのまま使えます。

  <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>
//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);
  while (true) {
    let value = await adt7410.read();
    // do somthing
    await sleep(1000);
  }
})();

(async function () {
  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);
    }
  }
})();

ネジのような部品

プログラミングで最も必要なものは、大きな大枠の問題を解決するための、小さな部品です。しかし、絆創膏的なコードを書くという意味ではありません。
問題となる具象を包み込んで、いかなる抽象化を施すかで、ソースコードの質は抜群に上がります。
今回は、自分の勉強のためにも書いてみたようなものですが、皆様のためにもなればと思います。

johnny-shaman
稚拙ですが、関数型プログラミングをするためのライブラリを公開しています。 https://www.npmjs.com/package/cte https://www.npmjs.com/package/dsand 日曜プログラミングのお供にでもいかがですか?(笑) プログラミングカフェ 札幌 主催
https://join.slack.com/t/p-cafe-sapporo/shared_invite/enQtNDc1MzEyNDcxNjIyLWI1ZDY1NWRhZjIxMzlkN2I1Mzg4ODBhODg2NjNlOGYwNDk2M2FjZWE2YTFmYjFjNTBiNGY5YTBjYWM2ZDc5NzM
qiitadon
Qiitadon(β)から生まれた Qiita ユーザー・コミュニティです。
https://qiitadon.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away