(ESP32でMPR121を使ってみた

  今回はmpr121という静電容量を読み取るセンサーを使ってみたいと思います。

電極にはITOフィルムを用います。

 

■配線

■コード

#include <Wire.h>
#include <Adafruit_MPR121.h>

Adafruit_MPR121 cap = Adafruit_MPR121();

void setup() {
  Serial.begin(115200);

  Wire.begin(23, 22);

  if (!cap.begin(0x5A)) {
    Serial.println("MPR121 NG");
    while (1);
  }

  cap.setAutoconfig(true);   // ←追加

  Serial.println("MPR121 OK");
}

void loop() {
  uint16_t touched = cap.touched();

  for (int i = 0; i < 12; i++) {
    if (touched & (1 << i)) {
      Serial.print("Touch ");
      Serial.println(i);
    }
  }

  delay(100);
}

       (arduinoで美咲フォント使えるようにしてみた。

  今回はarduinoで美咲フォントを使えるようにします。

美咲フォントは 8×8 ドットの日本語ビットマップフォントで、8*8のLEDマトリクスに文字を表示したいときに使うのに適しています。

 

■ArduinoIDEにインストールする。

1、ギットハブのこのリンクzipファイルをダウンロードする。

2、ダウンロードしたzipをarduinoIDEのメニューから

  スケッチ>ライブラリをインクルード>.zip形式のライブラリをインストールを

  選択しダウンロードしたzipを選択。

3、ファイル>スケッチ例>misakiUTF16があったらインストール成功。

 

■まとめ

今回は美咲フォントを使えるようにしてみました。

時間があるときに8*8LEDマトリクスに表示してみます。

         (USBメモリをパソコンに同期する。

  最近USBメモリ内のデーターが壊れて危うく、大切なデーターを失いかけたので、USBメモリ内のデーターをパソコンに自動でバックアップできるようしたいと思います。

 

同期にはwindowsにもともとある機能のみを用います。

 

■バックアップできるようにする。

1、cドライブに「Backup」>  「USB」という名前のフォルダーを作成

2、バッチファイルの作成

  メモ帳を立ち上げ下記の内容をコピペしUSBメモリのラベル名.bat形式で

  保存。

@echo off

robocopy E:\ C:\Backup\USB /E /FFT /R:1 /W:1

pause

3、バッチファイルを実行。

・ダブルクリックで実行すると、自動で全ファイルがUSBメモリからPCに作ったバックアップフォルダーに保存されます。

 

■バックアップを自動化する。

1、windowsのスタートメニューから「タスクスケジューラー」を実行。

2、右側の「タスクの作成」をクリック。

  すると下図のようになります。

3、名前を適当に決めて最上位の権限で実行するにチェックを入れます。

4、次にトリガーを下図の設定にします。

  イベントIDやソースはこのURLを参考に確認してください。

URL:USBを抜き差しした時のログ(接続履歴)を確認する方法 – Windows11 | 情シスの自由帳

5、続いて新しい操作を下図の設定にします。プログラム/スクリプトの欄は

  作ったバッチファイルの全パスを入力します。

6、条件と設定に関しては、変更する必要はありません。

7、動作確認

  USBメモリに何かファイルを入れてドラックアンドドロップすると、

  次回差し込んだ時にコマンドが立ち上がりコピーが実行されます。

  重複してあるコピーはしないため時間もリソースも食いません。

 

■まとめ

今回はUSBメモリを自動でバックアップするシステムを作ってみました。

またwindowsの機能について体系的に学ぶことができました。そしていろいろな作業を効率化できるノウハウも身についたと思います。便利なので、USBメモリに重要なデーターを入れている人はぜひ試してみてください。そもそも重要なデーターはUSBメモリに保存するものではないと思いますが。

 

参考サイト↓

 

            (6軸IMUセンサーを使ってみた。

  今回は秋月で購入した。AE-LSM6DSV16X搭載の6軸IMUセンサーモジュールを使っていきます。簡単な動作確認をした後8*8LEDマトリクスのドットをIMUの傾けた方向へ移動させることが目標に進めていきます。

 

まず、6軸IMUセンサーは、3軸加速度センサーと3軸ジャイロセンサーを一つにまとめたセンサーです。センサーの中には小さなおもりが入っており重力によってわずかに動くことで、どの方向に重力がかかっているかを知ることができます。

 

■動作確認

まずは、秋月電子の公式サンプルプログラムを使用して動作確認を行います。

注意点として、このセンサーモジュールは3.3V系のマイコン向けです。
5Vでの使用はできません。

ただし、手元のArduinoでも動作確認を行ったところ、問題なく使用することができました。

 

公式ページからコードをダウンロードして書き込みます。

 

ピンアサイン

黒 : GND

赤 : 3.3V (5V不可)

青 : SDA

黄 : SCL

■まとめ

今回は、8×8 LEDマトリクスまで完成させる予定でしたが、時間の都合でそこまでは進めることができませんでした。

毎日投稿を目標にしているため、今回はここまでで投稿します

        (HT16K33を使ってLEDマトリクスを制御する)

 今回はHT16K33を使ってLEDマトリクスを制御します。

前回8*8LEDマトリクスを使ったときは、ダイナミック点灯をloop処理で書いていました。

ですが、HT16K33は座標を指定することで、任意の場所を簡単に光らせることができます。

 

■HT16K33とLEDマトリクスの配線。

LEDマトリクスのピン配列は過去のブログを参照してください。

8×8 LEDマトリクス 使い方 | unbachiのブログ

HT16K33 ROW0 → LED 9
HT16K33 ROW1 → LED14
HT16K33 ROW2 → LED 8
HT16K33 ROW3 → LED12
HT16K33 ROW4 → LED 1
HT16K33 ROW5 → LED 7
HT16K33 ROW6 → LED 2
HT16K33 ROW7 → LED 5


HT16K33 COL0 → LED13
HT16K33 COL1 → LED 3
HT16K33 COL2 → LED 4
HT16K33 COL3 → LED10
HT16K33 COL4 → LED 6
HT16K33 COL5 → LED11
HT16K33 COL6 → LED15
HT16K33 COL7 → LED16

 

■HT16K33とESP32の接続

HT16K33 GND→ESP32_GND

HT16K33 VDD→ESP32_5V

HT16K33 SDA→ESP32_21PIN

HT16K33 SCL→ESP32_22PIN

■座標の確認&LEDを点灯

HT16K33は座標を指定することで、LEDマトリクスを制御します。

まずは基準となる座標(0,0)がLEDマトリクスのどの位置になるか確認します。

以下のプログラムは(0,0)を光らせて座標を確認するためのコードです。

動作確認も兼ねています。

 

・二つのライブラリをインストールしてください。

 →Adafruit GFX Library
 →Adafruit LED Backpack

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_LEDBackpack.h>

Adafruit_8x8matrix matrix = Adafruit_8x8matrix();

void setup() {
  Wire.begin(21, 22);
  matrix.begin(0x70);
  matrix.setBrightness(10);

  matrix.clear();

  // 座標 (0,0) を点灯
  matrix.drawPixel(0, 0, LED_ON);

  matrix.writeDisplay();
}

void loop() {
}

■まとめ

今回はHT16K33を使って8*8ドットマトリクスLEDを座標指定で光らすことができました。しかし、配線が複雑でピン配置などを確認しながらの作業に時間がかかりました。次回は砂時計制作に向けて加速度センサーを使って実験したいと思います。

 

参考:I2C接続のLEDマトリクスコントローラ HT16K33 の使い方