Vol.937 27.Feb.2026

コンパクトキーボード&マウス(ワイヤレス) M5A)_ENV_Vユニットで環境測定 windows11で回復ドライブを作成

K コンパクトキーボード&マウス(ワイヤレス)

by fjk

 ディスク廻りの作業スペースが狭いので、フルキーボードをコンパクトキーボードに変更しようと思い、ロジクールの「MK250 Compact Bluetooth Wireless Combo」(テンキー + マウス付、Bluetooth、幅369.9mm、@3,500)を購入した(参考:フルキーの幅は約440mm)。
 早速、手持ちのBTドングル(BT2.1)をパソコンに差し込んで、K250とM196の接続をサポートページの「ソフトウェアおよびサポート/開始する」を参考に、windowsで「スタート/設定/Bluetoothとデバイス/デバイス」と接続を試みるが、キーボードやマウスが認識されない。そこで、ロジクールのサポートページで更に調べて見ると、「Bluetooth Low Energy(BT4.0 以降)」を確認するようとある。
 そこで、K電気で「NanoUSBアダプタ(BT5.3)」(TP-Link、@1,233)を購入し、パソコンに差し込むと、今度はチャンとキーボードとマウスが認識され、使用できるようになりました。


MK250(キーボード幅:370mm)

Bluetoothの設定

 ロジクールのキーボードは、ファンクションキーの「F機能」が標準となっており、漢字変換でファンクションキーを押しても正常には動作しない。この様な場合、「Fn」キーを押しながらファンクションキーを押すと通常にファンクションキーの動作になるが、「Fn」+「Esc」(Fnキーロック)で「通常キー」と「F機能」の切替ができる。ただ、現在どちらのモードになっているのかが判らないのがチョット不満。
 K250にはPrintScreenボタンが無いが、F5 (通常モード時はFnF5)または Windows+shift+S でSnippingToolを起動できる。ロジクールのLogiOption+を使えばPrintScreenをボタンに割り当て可能だが、LogiOption+はMK250に対応していない。LogiOption+が使用できるロジクール製品であれば、K780+M750/M650がお薦め(M750は2つのコンピュータ間でコピー&ペーストができるLogicoolFlow機能が使える)。
 通常のファンクションモード時は、「Fn」+「F5」を押すとSnippingToolが起動。「切り取り領域」で範囲を選ぶと全画面やウインドウ等のキャプチャーができる。
 どうしてもコンパクトキーボード(テンキー付)+マウスでPrintScreenボタンが必要なら、SKB-WL31SETBK(サンワサプライ、2.4GHz、充電式、@4,355)があり、PrtScキーの機能は、

PrtSc のみ:
SnippingToolが起動
 
ShiftPrtSc
全画面キャプチャー
 
AltPrtSc
選択ウィンドウキャプチャー

SnippingToolのメニュー


M M5_Atomシリーズ(3) 〜ENV_Vユニットで環境測定

by fjk

 前報(abc936)で、M5_AtomLiteにOLED表示器を追加し、文字などの表示が出来るようになったので、環境センサーのENV_VユニットをAtomのGrove端子に接続し、温湿度などを測定・表示した
【ハード】


AtomLiteとENV-V

Env-Vの仕様

【ソフト】   abc936と同様に、VSCode上のplatformIOで、以下の6つのライブラリーを追加した。

  • M5Atom
  • FastLED
  • M5Unit-ENV (Env-U,V,Wに対応)
  • Adafruit_BusIO
  • Adafruit_GFX_Library
  • Adafruit_SSD1306
 

pratformio.ini

☆ Libraiesを選び、「M5Unit」で検索すると、M5で使えるunitのライブラリが表示される。
☆ ライブラリの詳細は「プロジェクト/.pio/libdeps/m5stack-atom/src」の各ファイル参照
☆ ENV_Vの使用例は、「プロジェクト/.pio/libdeps/m5stack-atom/examples/ENV_V」参照
 
<トラブル>
・当初、サンプルプログラムをそのままコピーしコンパイル。警告が幾つか出るが、一応SUCCESS。
・ENV_VのみをAtomのgrove端子に接続し、プログラムを書込む。SUCCESS
・しかし、ターミナルに何も表示されなかったので、ソースを確認し、以下を修正。
   @ ターミナルのボーレートが9600 −> platformio.iniに「monitor_speed = 115200」を追加。
   A ENV_VのI2Cのピンが(21、23)となっており −> Grove端子の(26,32)に修正。
 
<プログラムのポイント>
・ENVのI2Cは wire(26,32)、OLEDのI2Cは wire1(21,25) で宣言。
・OLEDの表示縦ドット数が64の場合は、 #define SCREEN_HEIGHT 64 に変更。
・測定は1秒おきで、センサーデータの変更がなくてもデータを表示しています(手抜き)
・固定文字列に「F( )マクロ」や「PSTR( )マクロ」を使うと、文字列はフラッシュメモリ領域に格納される。
・初期設定エラー時の無限ループは、 while(1) ; より for(;;); が推奨されている。

Atom_Env3.cpp(zip)

/***************************************(Atom_Env3.cpp)*******
 * 	Atom + Env-V test
 **************************************************************/

#include <M5Atom.h>                 // Arduino.h/Wire.h/FastLED.h含む
#include <Adafruit_GFX.h>           // Adafruitグラフィックライブラリ
#include <Adafruit_SSD1306.h>       //「Adafruit BusIO」が必要
#include "M5UnitENV.h"

// OLED設定
#define SCREEN_WIDTH 128            // OLED 幅指定
#define SCREEN_HEIGHT 32            // OLED 高さ指定
#define OLED_RESET -1               // リセット端子(未使用-1)

// I2Cに接続されたSSD1306用「display」の宣言
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,&Wire1, OLED_RESET);

SHT3X       sht3x;
QMP6988     qmp;

void setup() {
    M5.begin(true, true, true);

    Wire.begin(26, 32);             // ENV-V用にGrove端子をI2C設定
    Wire1.begin(21, 25);            // OLED用に背面端子をI2C設定(SDA,SDL)

    Serial.begin(115200);
    
    // OLED初期設定
    if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
        Serial.println(F("SSD1306:0 allocation failed"));
        for (;;);                   // エラーなら無限ループ
    }
    // OLED表示設定
    display.clearDisplay();
    display.setTextColor(SSD1306_WHITE);  //文字色
    
    //QMP6988初期化
    if (!qmp.begin(&Wire, QMP6988_SLAVE_ADDRESS_L, 26, 32, 400000U)){
        Serial.println("Couldn't find QMP6988");
    	  for (;;);                 // エラーなら無限ループ
    }
    //SHT初期化
    if (!sht3x.begin(&Wire, SHT3X_I2C_ADDR, 26, 32, 400000U)) {
        Serial.println("Couldn't find SHT3X");
        for (;;);                   // エラーなら無限ループ
    }
}

void loop() {
    if (sht3x.update()) {
        Serial.println("-----SHT3X-----");
        Serial.print("Temperature: ");
        Serial.print(sht3x.cTemp);
        Serial.println(" degrees C");
        Serial.print("Humidity: ");
        Serial.print(sht3x.humidity);
        Serial.println("% rH");
        Serial.println("-------------\r\n");
        // OLEDにデータ描画
        display.clearDisplay();
        display.setCursor(0,0);
        display.setTextSize(2);
        display.printf("%5.1f",sht3x.cTemp);
        display.setCursor(60,8);
        display.setTextSize(1);
        display.print(" c");
        display.setCursor(92,0);
        display.setTextSize(2);
        display.printf("%.0f",sht3x.humidity);
        display.setTextSize(1);
        display.setCursor(116,8);
        display.print(" %");
    }

    if (qmp.update()) {
        Serial.println("-----QMP6988-----");
        Serial.print(F("Temperature: "));
        Serial.print(qmp.cTemp);
        Serial.println(" *C");
        Serial.print(F("Pressure: "));
        Serial.print(qmp.pressure/100);
        Serial.println(" hPa");
        Serial.print(F("Approx altitude: "));
        Serial.print(qmp.altitude);
        Serial.println(" m");
        Serial.println("-------------\r\n");
        //  OLEDにデータ描画
        display.setTextSize(1);
        display.setCursor(4,24);
        display.printf(" %6.1f hPa",qmp.pressure/100); 
        display.setCursor(80,24);
        display.printf("  %4.0f m",qmp.altitude); 
    }
    // OLED LINE 描画
    display.drawLine(0,19,128,19,WHITE);
    display.drawFastVLine(76,0,32,WHITE);
    // OLED表示実行
    display.display();
    // 測定は1秒置き
    delay(1000);
}

 ☆USBシリアルモニタを使うには、VSCode下部のSerialMonitor(プラグ)アイコンをクリック。


Atom+EnvVで環境測定しOLEDに表示

SerialMoitor表示例

 ★ 高度の表示は、単に気圧から計算しているので必ずしも正しくない。

【参考】 M5GFXライブラリー


W Upgradeしたwindows11で回復ドライブを作成

by fjk

 Windows10からWindows11にUpgradeしたマシンで、システムが起動しなくなったときなどに対応するため、「回復ドライブ」を作製した。Upgradeしたマシンで作製したドライブは下記のようにWindows11に復元する回復ドライブが作製されます。

  【 参考

  • 回復ドライブの作成には、32GB以上のUSBメモリーが必要です。64GB以上の容量のUSBメモリーは、回復ドライブを作成したときに約32GBの容量のみ使用されます。残りの容量は使用できません。
  • 回復ドライブ作成時に、USBフラッシュメモリー内のデータがすべて削除されますので、必要なデータは事前にバックアップしてください。
  • FAT32形式で領域が作成されます。
  • セキュリティ機能付やハードウェア暗号化機能付など、一部のUSBメモリの中には、Windows 11の回復ドライブの作成に対応していないものがあります。
  • Windows 10がプレインストールされたパソコンを、Windows 11にアップグレードした場合は、Windows 11に復元する回復ドライブが作成されます。
  • Windows 10に復元する回復ドライブを作成したい場合は、Windows 11にアップグレードする前に作成してください

回復ドライブ作成画面

作製USBメモリの選択


※プログラムのリストをハイライト付きのスタイルで見る場合はここをクリック


※ 本レポートの参考・利用は、あくまでも自己責任でお願いします。


コンパクトキーボード&マウス(ワイヤレス) M5A)_ENV_Vユニットで環境測定 windows11で回復ドライブを作成