<aside> ⚠️

配ってあればやってみてください

</aside>

  1. PIO HOMEのLibraiesの検索バーから、それぞれ「M5Unit-Sonic」と検索する
  2. 検索結果から「M5Unit-Sonic」を選択する
  3. プロジェクトにインストールする。platformio.iniに反映されていれば完了

M5Unit-Sonicライブラリをインストールする

#include <M5Unified.h>
#include <M5GFX.h>
#include <Unit_Sonic.h>

M5Canvas canvas(&M5.Display);
SONIC_I2C sensor;

void setup() {
    auto cfg = M5.config();
    M5.begin(cfg);

    Wire.begin();       // Sonic Unit は I2C
    sensor.begin();

    M5.Display.begin();
    canvas.setColorDepth(1);
    canvas.setFont(&fonts::Orbitron_Light_24);
    canvas.setTextSize(1);
    canvas.createSprite(M5.Display.width(), M5.Display.height());
    canvas.setPaletteColor(1, ORANGE);

    Serial.begin(115200);
}

int point      = 0;
int last_point = 0;

void loop() {
    canvas.scroll(4);

    float Distance = sensor.getDistance();
    Serial.printf("Distance: %.2fmm\r\n", Distance);

    point = map((int)Distance, 20, 4500, 10, 180);
    canvas.drawLine(0, point, 4, last_point, 1);
    last_point = point;

    canvas.fillRect(0, 190, 320, 50, BLACK);
    canvas.drawString(String(Distance) + "mm", 80, 190);

    canvas.pushSprite(0, 0);
}

image.png

画面に距離が表示されたらOK

✅紙や手で遮って距離が変わるか試そう

✅どこまで測れるでしょう。最小値と最大値を見つけよう