アナログジャイロセンサーについて(その7)

モニタ表示があれば、センサーの値を使ったプログラムのデバッグが容易になる。
I2C接続のモニタだと結線も容易にできる。
f:id:ohguma:20190112110313p:plain



アナログジャイロセンサ

動画で使っているOLEDはこちら。ドライバICがSSD1306のもので、AdafruitのArduino用SSD1306ライブラリを使うことで簡単に利用できる。


loop()内では、毎周ではなく、適当な周回(動画では50周ごと)で画面を更新し、三角関数を使い図形を作成している。

      int x1_, y1_, x2_, y2_, x3_, y3_;
      float x1, y1, x2, y2, x3, y3;
      float sn, cs;
      sn = sin(- 3.14 * mydeg / 180);
      cs = cos(- 3.14 * mydeg / 180);
      x1 = 0;
      y1 = 15;
      x2 = -4;
      y2 = -15;
      x3 = 4;
      y3 = -15;
      x1_ = (int)(x1 * cs - y1 * sn) + 16;
      y1_ = (int)(x1 * sn + y1 * cs) + 16;
      x2_ = (int)(x2 * cs - y2 * sn) + 16;
      y2_ = (int)(x2 * sn + y2 * cs) + 16;
      x3_ = (int)(x3 * cs - y3 * sn) + 16;
      y3_ = (int)(x3 * sn + y3 * cs) + 16;
      display.drawLine(x1_, y1_, x2_, y2_, WHITE);
      display.drawLine(x2_, y2_, x3_, y3_, WHITE);
      display.drawLine(x3_, y3_, x1_, y1_, WHITE);


三角関数が理解できれば、プログラムの幅も広がるので、良くわからない方には以下をオススメ。


一連のブレッドボードのイメージはFritzingで作成した。
Fritzingでは独自のパーツも作成できる。

(ProMicroのMicroUSBコネクタがもげたので、おわり)