Vol.931 21.Nov.2025

充電式エアーコンプレッサ Edgeで閲覧履歴を削除 MCP25625_BreakOut基板

A 充電式エアーコンプレッサ

by fjk

 サイクリング中など、電源の無い屋外でタイヤに空気を入れたいことがあります。そこで、デジタルランドの「充電式エアーコンプレッサ」(3,960円)を入手した。
 使用時の音は結構大きいが、用途毎にアイコンを選択し、空気圧(最大10.3bar)を設定できるので便利です(前回使用空気圧を記憶させることも可能)。5個の付属アタッチメントは、自転車(米、英、仏)の他、車、バイク、ボール、浮き輪などに利用出来る(連続使用時間は10分が目安)。
 また、充電はUSB_type-Cで、LEDライトやモバイルバッテリーとしても使えるので、外出時にはコンパクトなので必携かな。


エアーコンプレッサの概要

自転車タイヤにエアーを(15秒弱で)充填


E Edgeで閲覧履歴を削除(Windows11)

by fjk

● Webデータを更新したのに、閲覧履歴のせいで更新データが正しく表示されないことがあります。こんな時は閲覧履歴の削除を実行します。

  1. edgeの右上のメニュ(...)、「設定」をクリック
  2. 「プライバシー/検索/サービス」を選ぶ。
  3. 上部の「閲覧データをクリア」をクリック[H24の場合]
     もし、クリアデータを選択したい場合は、
      ・「閲覧データクリア/クリアするデータの選択」
      ・ 削除したい履歴を選び、「今すぐクリア」、またはブラウザを再起動
    <参考> Windows 11のMicrosoft Edgeで閲覧履歴を削除する方法

● 個人のファイル使用情報が見えるので、エクスプローラの履歴の削除は、

  1. エクスプローラの「メニュー(...)/オプション」をクリック
  2. 「全般」タブの「最近使用したファイルを表示する」のチェックを外す[H24の場合]
    <参考> エクスプローラーの履歴を削除する方法


P PICでCAN通信(5) 〜PIC12F1840+MCP25625BreakOut

by fjk

 スイッチサイエンスで、MCP25625を使ったCAN_BUS通信に必要最低限である11ピンSIPのbreakout基板(@1,800)を入手した。
 ミニブレッドボードに、8ピンのPIC12F1840とMCP25625-breakoutを合わせた回路(ノード7)を作成し、以下の仕様で、CAN通信のテストを行った。

● 受 信: id = 0x149でデータを受け取ると、データのビット0の値で赤(L)/緑(H)のLEDを点灯。
● 送 信: SW3(RA3)を押すと、id = 0x131で”OK“の2文字をCANバスに送信。

【ハード】

  • RA5出力1本で2つのLED(赤・緑)の点灯を制御(電流制限抵抗は使用LEDに合わせて下さい)。
  • (今回不使用の)割込を使う場合、INTをRA3に接続出来るが、ICSP(接続)使用時は配線を外すこと!(端子に12Vが印加される)。
  • Resetスイッチはなくても良い(ソフトでリセットしています)。

ノード7(PIC12F1840+MCP15625BO)回路図

BB(ブレッドボード)配線例

【ソフト】

  • CSのポート番号をRA4に変更: #define MCP25XX_SPI_CS LATAbits.LATA4  (mcp_can_dfs.h)
  • 上記のmcp_can_dfs.hのCS宣言以外、myProject.h、sKMCP25xx.c/h、はabc930と同じ。
  • ノード6から「S0」/「S1」コマンド(またはスイッチ)でデータをCAN送信してノード7を制御

PIN Module (RA3は汎用入力に、割込は使用しない)

SYSTEM Module(16MHz)

MSSP Module

【テスト】 ノード5*、ノード6、ノード7*[*は120Ω終端抵抗付き]


CANテスト風景全体(緑LED点灯[S1受信時])
  • ノード5は、(白)スイッチを押して、アスキー表示モードに。
     
  • ノード6は、青(RA3)スイッチ(Tコマンド)で温度データのCAN送信を止め、
    白(RA0)スイッチ(S0/S1コマンド)でデータをCAN送信。
    [スイッチ使用はabc930のおまけ2が必要]
     
  • ノード7は、電源を投入すると、赤LEDが1秒間点灯し、その後、緑LEDが点灯。
    (もし緑LEDが点灯しないか、点滅する場合はMCP25625の初期設定エラー)

赤LED点灯[S0受信時]
 
ID=0x131受信例("OK"受信)


≪≪ ノード7 ≫≫   ▼abc931-1240.c(zip)

/***********************************(abc931-1240.c)******
 *      CAN test (MCP25625BO)     <ノード7>          *
 ********************************************************/
#include "myProject.h"
#include "mcp_can_dfs.h"
#include "skMCP25xx.h"

// 共通変数の宣言
unsigned char R_len     = 0;    // CAN受信文字数
unsigned char RcvBuf[8];        // CAN受信データ

/********************************************************
 *      CAN送受信                                       *
 *------------------------------------------------------*/
//--- CAN受信処理
void CAN_Receive(void){
    unsigned long id ;
    while (CAN_MSGAVAIL == mcp_checkReceive()) {
        // 受信したメッセージを読み込む,
        mcp_readMsgBuf(&R_len, (uint8_t *)RcvBuf);
        // データフレームなら処理する
        if (mcp_isRemoteRequest() == 0) {
            id = mcp_getCanId() ;
            switch (id) {
                case 0x149 :    
                    if(RcvBuf[0] & 1)   IO_RA5_SetHigh();
                     else               IO_RA5_SetLow();
                    break ;
            }
        }
    }
}

/*---- CAN送信実施(標準、フレーム送信済み待ち)
 *  uint32_t id:    11ビット識別子
 *  uint8_t  *bf:   送信するデータ列アドレス
 *  uint8_t  n:     送信するバイト数            */ 
void CAN_Send(uint32_t id, uint8_t *bf, uint8_t n){
    uint8_t res;
    if(n == 0)
       res = mcp_sendMsgBuf(id,CAN_STDID,CAN_RMTFRM,0,bf,1);
    else
       res = mcp_sendMsgBuf(id,CAN_STDID,CAN_DTFRM,n,bf,1);
}

/********************************************************
 *      Main application                                *
 ********************************************************/
void main(void){
    uint8_t bf[8];

    // initialize the device
    SYSTEM_Initialize();
    SSP1CON1bits.SSPEN = 1;

    //INTERRUPT_GlobalInterruptEnable();
    //INTERRUPT_PeripheralInterruptEnable();

    IO_RA5_SetLow(); 
    __delay_ms(1000); 

    // MCP25625BOによるCAN通信の初期化
    // CANバス通信速度=100Kbps  MCP25625のクロック=16MHz
    while (CAN_OK != mcp_begin(CAN_100KBPS,MCP_16MHz)) {
        __delay_ms(500);
        IO_RA5_Toggle();                // エラーならLED点滅
    }
    IO_RA5_SetHigh() ;

    // MASK0->Filter0->RXB0(オーバフローでRXB1)のみ使用
    mcp_init_Mask(0, 0, 0x3ff) ;        // 全て受付る
    mcp_init_Filt(0, 0, 0x149) ;        // ID:0x149のみ受け取る

    while (1) {
        // CAN受信有りなら
        if(mcp_checkReceive()==CAN_MSGAVAIL){
            CAN_Receive();              // データの取得と処理
        }
        // SWが押されていたら
        if(IO_RA3_GetValue()==0){
            bf[0]= 0x4F; bf[1]= 0x4B;   // 'OK'を送る
            CAN_Send(0x131, bf, 2);     // id=0x131で送信
            while(IO_RA3_GetValue()==0); // 離れるまで待つ
            __delay_ms(100);
        }
    }
}

/*************** End of File **********************/

【その他のプログラム】

mcp_can_dfs.h(zip)
skMCP25xx.c/h(zip)
myProject.h(zip)

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


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


充電式エアーコンプレッサ Edgeで閲覧履歴を削除 MCP25625BreakOut基板