skuzoo02
Welcome to Skyzoo!

Skyzoo(空の動物園)

日本上空には、衛星がいっぱいあります。

そのなかで海外のテレビを送信している静止衛星もいっぱいあります。

それらの海外衛星テレビ受信や趣味の電子工作の備忘録や

プチ情報をまとめたサイトです。

記事内容については、自己責任の下、参考程度に!!


アマゾンでお買い物をされる時、下↓リンクを通して注文していただけると
わずかですが紹介料が入り部品代の足しになりありがたく思います。
Amazon.co.jpへ

Amazon.co.jpへ

>waves NodeMCU-32 開発ボード ESP32 ESP-WROOM-32 WiFi Bluetooth
Amazon.co.jpへ
今すぐチェック
>HDMI キャプチャーボード 1080P/60fps USB Typec 2 in 1 Lemorele
Amazon.co.jpへ
今すぐチェック
>XEAST DSO-TC3 オシロスコープ、トランジスタテスター SG 3 in 1
Amazon.co.jpへ
今すぐチェック
>ELEGOO Arduino用UNO R3スターターキット レベルアップ チュートリアル付
Amazon.co.jpへ
今すぐチェック

目次

◆CH32V/STM32

・STM32F103C8T6 を Arduino IDE で Lチカしてみた
・CH32V003J4M6 8ピンマイコンで自前のシリアル出力してみた
・CH32V003J4M6でPA2が使えない時のおまじない
・CH32V003J4M6にプログラムを書き込めなくなった時のおまじない
・CH32V003 ArduinoIDE 環境で I2C接続 OLED SSD1306 に表示させててみた
・CH32V003F4P6 で赤外線(IR)受信リモコンを作ってみた
・CH32V003F4P6 割り込み Lチカ シリアル出力 してみた
・CH32V003J4M6 32bit RISC マイコンでLチカ(ATTiny85の代わり)
何か足りないものはありませんか?
Amazon.co.jpへ

◆STM32F103C8T6を下記にて入手しましたのでLチカをしてみました。
  STM32F103C8T6



1.ピン配置
 STM32F103C8T6-PINOUT-2

 STM32F103C8T6-PINOUT

2.まずはST-Link V2のドライバインストールを行います。
 ①下記へアクセスし「最新バージョンを取得」をクリックします。

 ST-LINKV2-driver

 ②ライセンス契約を読んで「承諾します」をクリックします。
 ➂「ゲストとしてダウンロード」をクリックします。
 ④氏名、メアドを入力し「ダウンロード用のリンクを入手」をクリックします。
 ⑤メールが届いたら「Download now」をクリックします。
 *メールが届くのが若干遅いようです。2.3分待ちます。
 ⑥「en.stsw-link009.zip」を解凍します。
 en.stsw-link009

 ⑦その中の「dpinst_amd64.exe」(64bitPCの場合)を実行
 
2.

今日はここまで

◆二度目のQY-1005のカーナビが壊れたので、他機種に変更しました。
 どうもQY-1005のMicroSDは、耐性が悪く五年位で壊れます。
 で、今回は、機種をパナソニック製のCN-R300Dの中古を入手し
 乗せ換えてみました。
 CN-300R-2

1.QY-1005と同様の機能がある物を探しCN-R300Dにしました。
 元々の配線で使えたもの
 ①20Pカプラ
 ②5Pの車速等カプラ
 ➂ステアリングスイッチ
 ④GPSアンテナ
 ⑤AM/FMアンテナ
 ⑥バックカメラ(変換アダプタ使用)
 ⑦ハンズフリーの携帯電話機能(本体にマイク内蔵) 

 ◆20P,5Pのピン配置
ピンアサイン電源ハーネス-車速信号他

2.追加購入したもの
 ①純正バックカメラ用の変換アダプタ


 ◆ビデオ信号は直結でも良いですが、電源を12Vから6Vに降圧して与える
  必要があります。アダプタの電圧をテスターで測定してみましたら
  6.66V出ていました。自作も出来そうです。

 S__51036171_0

 ②地デジ用フィルムアンテナ
  *アンテナケーブルは、着いてきたのでフィルムアンテナだけ
  購入して取り付けました。

 ◆なお、アンテナケーブルは、ピラーの取り外しが一か所で済むように
  左側からのみ配線しました。
 カーナビ取付概要
 
 フィルムアンテナ

3.CN-R300Dの取付、取扱説明書は、下記でダウンロード出来ます。
 
今日はここまで


 



◆格安40円マイコンCH32V003J4M6をArduinoIDE環境で開発時、デバッグ用に
 シリアル出力を標準出力「ピン8:PD5」(SWIOと共用)で設定した場合、プログラムの
 書き込み時、都度「WCH-LinkUtility」でリセットしないと書き込みが出来ません。
 下記ブログ内記事参照
 よって、毎回リセットするのが、面倒なので「ピン1:PD6」に自前のシリアル出力して
 みました。
 ch32v-uart-1

1.接続図
 ①WCH-LinkEにシリアル出力する時
 ch32v-uart-10

 ②別途USB-シリアルアダプタにシリアル出力する時
 ch32v-uart-9

2.下記にスケッチを示します。
 ①PD6:ピン1に出力します。
 ②1ビットの送信時間を計算し、その間ウェイトします。
  9600bpsの場合、1000000/9600=104.17usですが、ch32v003のタイマー関連の数値は
  なぜか半分の値を設定しないと現状は駄目みたいです。
  エラーが出ないよう調整が必要です。
  現在51を設定しています。
 ◆・Arduino IDE 「1.8.19」
  ・CH32V003ボードバージョン 「1.0.4」

//ch32v003_uTx.ino
//V2024/03/03 by JK1VCK
//blog URL:http://gijin77.blog.jp/archives/40002191.html

#define uTx_pin PD6 //CH32V003J4M6 uart Tx Pin :PD6 ( Pin 1)

char buff [100]; //文字列用バッファ
const byte uTx_us=51;  // ch32v003 の場合1/2 104.8us 9600bps
//const byte uTx_us=25 ;  // 52.08us 19200bps たまにエラーとなるので調整必要

void setup() {
  pinMode(uTx_pin, OUTPUT);
  digitalWrite(uTx_pin, HIGH);
  delay(2000);
  uTx_str("ch32v003_uTx Start\n");
}

void loop() {
  sprintf(buff,"micros=%lu \n",micros());
  uTx_str(buff);
  delay(1000);
}
// 文字列出力
void uTx_str(const char  *str){
  while (*str) {
    uTx_byte(*str);
    str += 1;
  }
}
//1文字出力
void uTx_byte(byte ch){
  digitalWrite(uTx_pin, LOW);   // start bit
  delayMicroseconds(uTx_us);
  for (byte i=0; i < 8; i++){   // 8 data bit
    digitalWrite(uTx_pin, bitRead(ch,i));
    delayMicroseconds(uTx_us);   
  }
  digitalWrite(uTx_pin, HIGH);  // 1 stop bit
  delayMicroseconds(uTx_us);
} 

3.シリアルポートの設定
 ①デバイスマネージャーでの表示
 ch32v-uart-4

 ②書き込み時のシリアルポート(私の場合:COM4)
 ➂シリアルモニタ時のシリアルポート(私の場合:COM3)
 ch32v-uart-2

4.実際のシリアル出力時の表示
 ①ArduinoIDEのシリアルモニタの場合、書き込み時(COM4)と違う
  ポート(COM3)に切り替えて出力しています。
 ch32v-uart-5
 
 ②別途「TeraTerm:COM3」への出力は、書き込みとシリアル出力を変えること
  なく表示出来るので、効率が良いです。
 ch32v-uart-6

➂WCH-LinkEエミュレーターでのシリアル出力にエラーが多発する時は
  別途「USBシリアル変換アダプタ」を接続するとエラーが無くなります。
 ch32v-uart-7

 ch32v-uart-8
  
以上

 
 

◆格安40円マイコンCH32V003J4M6をArduinoIDE環境で開発時、
 「PA2」を出力に設定後「Lチカ」させると点滅しない事が判明しました。
 その他の「PC1,2,3,PD6」については、問題無しでした。
 このマイコンの書込み方法など、下記ブログ内記事を参照して下さい。
 
1.原因について
 下記URLに細かい事を調べておられるサイトが有りました。
 その中で、AFIO_PCFR1レジスタに「PA12_RM」ビットが初期設定で「1」に
 なっているようなので「0」にする必要が有るとの事でした。

2.スケッチでsetup()の最初(7行目)に「AFIO->PCFR1 &= 0xFFFF7FFF;」の
 おまじないの行を追加することで見事「PA2」でLチカ出来ました。
//ch32v003_PA2_TEST.ino
//v2024/03/01 by JK1VCK
//blog URL:http://gijin77.blog.jp/archives/39980681.html
// CH32V003J4M6のPA2の不具合

void setup() {
  AFIO->PCFR1 &= 0xFFFF7FFF; //AFIO_PCFR1レジスタに「PA12_RM」ビットを「0」にする
  pinMode(PD6, OUTPUT);
  pinMode(PA2, OUTPUT);
  pinMode(PC1, OUTPUT);
  pinMode(PC2, OUTPUT);
  pinMode(PC4, OUTPUT);
}

void loop() {
  digitalWrite(PD6,HIGH);
  digitalWrite(PA2,HIGH);
  digitalWrite(PC1,HIGH);
  digitalWrite(PC2,HIGH);
  digitalWrite(PC4,HIGH);
  delay(1000);

  digitalWrite(PD6,LOW);
  digitalWrite(PA2,LOW);
  digitalWrite(PC1,LOW);
  digitalWrite(PC2,LOW);
  digitalWrite(PC4,LOW);
  delay(1000);
  
}
3.動作写真
 ①PA2が点当していない時
 ch32v003_RA2_NG

 ②おまじない後の点灯している時
 ch32v003_RA2_OK

 ➂消灯時
 ch32v003_RA2

以上 めでたしめでたし
 

◆8PinのCH32V003J4M6でデバッグ用に「PD1/SWIO/TX」端子をシリアル出力に
 指定した後、WCH-LinkEにてプログラムを書き込めなくなります。
 このマイコンはピン数が少ないので、UARTのTXとSWIOのどちらか一方しか
 使えません。
 UARTに指定したあと電源OFF/ONでもUARTのままとなります。
 その時、プログラムを書き込む為にはおまじないをします。

 このマイコンの書込み方法など、下記ブログ内記事を参照して下さい。
 
1.WCH-LinkUtility.exeを起動して下記の操作をします。
 すると、再度書き込めます。
 ①「Target」をクリック
 ②プルダウンメニューの「Clear All Code Flash By Power off」をクリック
 ➂「Succeed!」が表示されてOK
 WCH_reset

以上


◆ArduinoIDE 環境で格安マイコン32ビットRISC-Vマイコン CH32V003J4M6/
 CH32V003F4P6にOLED SSD1306をI2C接続して表示させてみました。
 OLED-2
 OLED-3

 このマイコンの書込み方法など、下記ブログ内記事を参照して下さい。
 
1.まずはCH32V003で動くSSD1306用のライブラリを探します。
 ライブラリマネージャーで「SSD1306」検索するとたくさんのライブラリが
 見つかります。
 その中で、下記の二つで使える事が確認出来ました。
 ①ACROBOTIC_ssd1306は、テキストのみのライブラリで8行まで表示出来ました。
  バージョン1.0.0で動作確認
 ACROBOTIC_ssd1306
 
 ②OLED-SSD1306は、テキスト、グラフィック共に表示が確認出来ました。
  但しCH32V003のRAMが2kしかないために128x32ドットまでしかバッファが
  確保できませんでした。
  OLED-SSD1306

2.接続図を下記に示します。
 CH32V003J4M6-OLED

 CH32V003F4P6-OLED

3.スケッチと実際のデモの様子
 ①ACROBOTIC_ssd1306ライブラリ使用
  1.ライブラリのバージョン1.0.0使用でサンプル「HelloOLED.ino」が動作OK
   1.0.1では、動作NG
  2.ライブラリのバージョン1.0.0/1.01共にサンプル「DrawLogo.ino」は、
   メモリ不足の為、コンパイルエラー
 
 ②OLED-SSD1306ライブラリ使用
  1. ◆2倍速でのデモ動画です。
 

  2.スケッチを下記に示します。サンプルを多少修正したものです。
  ◆保障無しの自己責任で参考程度に
//ch32v_oled_demo.ino
//modified v2024/02/26 by JK1VCK
//blog URL:http://gijin77.blog.jp/archives/39932667.html
#include <Wire.h>
#include <Arduino.h>
#include <oled.h>
//
//SSD1306は128x64表示可能であるがch32v003のRAMが2kしかないのでバッファを1024バイト確保できない
//よって128x32に制限される 
//幅は、enum tWidth { W_96=96, W_128=128 };高さは、  enum tHeight { H_16=16, H_32=32, H_64=64 };
//コントローラは  enum tDisplayCtrl { CTRL_SSD1306, CTRL_SH1106 };と定義されている
//OLED(uint8_t sda_pin, uint8_t scl_pin, uint8_t reset_pin=NO_RESET_PIN, tWidth width=W_128, tHeight height=H_32,
//  tDisplayCtrl displayCtrl=CTRL_SSD1306, uint8_t i2c_address=0x3C);
OLED oled=OLED(PC1,PC2,NO_RESET_PIN,OLED::W_128,OLED::H_32,OLED::CTRL_SSD1306,0x3c);

static const uint8_t bitmap[] = { 
    1,2,4,8,16,32,64,128,128,128,192,192,128,128,128,64,32,16,8,4,2,1, // 最初のページ (垂直 8 ビット、22 列)
    255,255,255,255,15,15,15,15,15,15,15,15,15,15,15,15,15,15,255,255,255,255 // 2 ページ目 (垂直 8 ビット、22 列)
};

void setup(){
  delay(1000);
  oled.begin();   
}

void loop(){
  oled.clear();    // 通常のサイズでテキストを描画する
  oled.draw_string(2,0,"123456789012345678901"); //6x8フォントの為(128/6)21文字表示出来る
  for (int y=8;y<32;y+=8) {
    oled.draw_string(2,y,"CH32V003 OLED SSD1306");
  }
  oled.display();   // 外側のエッジにピクセルを描画します
  oled.draw_pixel(0,0);
  oled.draw_pixel(127,0);
  oled.draw_pixel(127,31);
  oled.draw_pixel(0,31);    
  oled.display();
  delay(1000);      // 中空の円を描く
  for (uint_least8_t radius=3; radius<62; radius+=3){ 
    delay(50);
    oled.draw_circle(64,16,radius);
    if (radius>15) {
        oled.draw_circle(64,16,radius-15,OLED::SOLID,OLED::BLACK);
    }
    oled.display();
  }
  delay(500);    // 実線の円を描く
  oled.draw_circle(36,16,14,OLED::SOLID);
  oled.display();
  delay(500);
  oled.draw_circle(36,16,7,OLED::SOLID,OLED::BLACK);
  oled.display();
  delay(500);     // 長方形を描く
  oled.draw_rectangle(64,0,98,31);    
  oled.display();
  delay(500);
  oled.draw_rectangle(69,5,93,26,OLED::SOLID);
  oled.display();
  delay(1000);    // スクロールアップする
  oled.scroll_up(32,20);
  oled.draw_string(4,2,"Hello");    // 通常のサイズでテキストを描画する
  oled.display();
  delay(1000);    // 線を引く
  oled.draw_line(4,10,34,10);
  oled.display();    
  delay(1000);    // テキストを2倍のサイズで描画する
  oled.draw_string_P(16,15,PSTR("World!"),OLED::DOUBLE_SIZE);
  oled.display();
  delay(1000);    // 十字を描く
  oled.draw_line(16,31,88,15);
  oled.draw_line(16,15,88,31);
  oled.display();
  delay(1000);    // 生のビットマップを描画する
  oled.draw_bitmap_P(100,8,22,16,bitmap);
  oled.display();
  delay(1000);    // スクロールのデモンストレーション
  oled.set_scrolling(OLED::HORIZONTAL_RIGHT);
  delay(3000);
  oled.set_scrolling(OLED::HORIZONTAL_LEFT);
  delay(3000);
  oled.set_scrolling(OLED::NO_SCROLLING);

  oled.display();   // スクロール後に再描画して元の画像を取得します
  delay(1000);      // OLEDをフラッシュする
  for (int i=0; i<10; i++) {
      oled.set_invert(true);delay(200);
      oled.set_invert(false);delay(200);
  }
  uint8_t cont[]={128,64,32,16,8,4,2,1,2,4,8,16,32,64,128,255,128};
  for(int i=0;i<17;i++) {    // コントラスト値を表示する
    contrast(cont[i]); 
  }
  delay(500);
  oled.clear();
}
void contrast(int value){
  char buffer[4];
  oled.clear();  
  oled.draw_string(0,0,"Contrast:");
  itoa(value,buffer,10);
  oled.draw_string(64,0,buffer);
  oled.draw_rectangle(0,20,value/2,31,OLED::SOLID);
  oled.display();
  oled.set_contrast(value);
  delay(500);
}
  
以上

◆格安マイコンCH32V003F4P6で赤外線(IR)受信リモコンを作ってみました。
 ch32v_IR-2
 ①リモコンのフォーマットは、解析が単純なNECフォーマットのみです。
 リモコンのフォーマットについては、下記URLを参照しました。
 ②CH32V003F4P6について詳しくは、下記ブログ内記事を参照して下さい。

1.配線図を下記に示します。
 ch32v_IR_remocon

2.スケッチを、下記に示します。(保障無しの自己責任で参考程度に)
 ①割り込み間隔が、ずれる事が有り取り込みに失敗することが有ります。
  CH32Vでリモコン受信時の割り込みでPC0をL/H変化させて、そのピンをESP32で割り込みで
 処理した時のmicros()の値を調べた所、H32Vでは割り込み処理によって経過時間関数micros()の
 戻り値が途中辻褄合わせで2ms加算されています。
 約9ms前後で2ms加算されているのが分かります。
 ハード的には、ちゃんと割り込みが発生していますが、ソフト的に不具合が有るようです。
 とりあえずの対策として、2ms以上の時は、2msマイナスしています。
 *スケッチの50行目

 ◆下記表は、赤外線(IR)リモコンを受信したときのCH32V003F4P6とESP32で比較です。
 ch32v_esp32比較

//CH32V_IR_Decoder.ino
//v1 2024/02/23 
//blog URL:http://gijin77.blog.jp/archives/39900522.html
//PD7 リセットピン L=リセット

#include "Arduino.h"
#define IR_PIN    PD4
#define LED       PC0
//                           POWER     ,↑        ,↓         ,→        ,←        ,MENU
const uint32_t IR_DATA[] = { 0x61D648B7,0x61D6D827,0x61D658A7,0x61D6609F,0x61D620DF,0x61D6A05F };
const size_t   IR_CT     = (sizeof(IR_DATA) / sizeof(IR_DATA[0]));
const uint8_t  LED_PIN[] = { PD3,PC7,PC6,PC5,PC4,PC3 };//POW,↑,↓,→,←,MENU
const size_t   LED_CT= (sizeof(LED_PIN) / sizeof(LED_PIN[0]));

bool f_entry=false;  // エントリフラグ
uint32_t tt0;
uint32_t tmp_data;
uint32_t ir_data;

uint8_t  pulsecounter=0;             // 受信ビットカウンタ
uint32_t t0=0;                       // 割り込み間隔用
uint32_t ir_value=0;                 // IR コード
bool     ir_begin=false;             // 解析スタートフラグ
uint32_t t_buf[40];                  // デバッグ用バッファ
//*************************************************************************
//          I S R _ I R 
//*************************************************************************
// 信号がL->Hへ変化するたびに IR受光器から受信し割り込み。
// データの間隔は 640 または 1640 us秒です。 同期パルスは 3400 us以上です。
// 最後の 32 レベルの変更がリモコンコードです。
// 解析はNECフォーマットのみ
//*************************************************************************
void isr_IR() {
uint32_t t1, intval;       // 現在の時刻と最後の変更からの間隔
  digitalWrite(LED, LOW);
  t1=micros();             // 現在時刻を取得する
  intval=t1 - t0;          // 間隔を計算
  t0=t1;                   // 次の比較のために保存する
  if(intval > 4000) {      // コードのシーケンスを開始するか? 3500<t<5500
    pulsecounter=0;        // カウンタをリセットする
    ir_value=0;
    ir_begin=true;
    digitalWrite(LED, HIGH);
    return;
  }
  if(ir_begin==false) {
    digitalWrite(LED, HIGH);
    return;
  }
  if (intval>2000) intval=intval-2000; //CH32Vでランダムに2ms加算される時があるので調整
  t_buf[pulsecounter]=intval;     // デバッグ用に割り込み間隔を保存
  if(intval < 1000){              // ショートパルス? 400<t<750
    ir_value=(ir_value << 1) + 0; // 「0」をセットしシフトする
    pulsecounter++;               // 受信ビット数をカウントアップする
  } else if(intval > 1500){       // ロングパルス? 1400<t<1900
    ir_value=(ir_value << 1) + 1; // 「1」をセットしシフトする
    pulsecounter++;               // 受信ビット数をカウントアップする
  }
  if(pulsecounter==32){
    ir_begin=false;
    ir_data=ir_value;    //解析終了データをセーブ
  }
  digitalWrite(LED, HIGH);
}

void setup(){
  Serial.begin(115200);
  delay(3000);
  Serial.println();Serial.println("<IR Start>");
  pinMode(LED, OUTPUT);digitalWrite(LED,HIGH);
  for (size_t i = 0; i < LED_CT; i++) {
    pinMode(LED_PIN[i], OUTPUT);
    digitalWrite(LED_PIN[i], HIGH); //LED Off
  }
//CH32V003 割り込み処理 IR_PINの立上りにより割り込みを発生させ、「isr_IR」にて処理します。
//EXTI_Trigger_Falling 立下り EXTI_Trigger_Rising  立上り EXTI_Trigger_Rising_Falling 両方
  attachInterrupt(digitalPinToInterrupt(IR_PIN), GPIO_Mode_IN_FLOATING, isr_IR, EXTI_Mode_Interrupt, EXTI_Trigger_Rising);
}

void loop(){
  ir_loop();
}

void ir_loop(){
  if(f_entry == false) {tt0 = millis(); f_entry = true;}
  if((tt0 + 49 > millis()) && (tt0 <= millis())) return;   // 50ms待ちます(オーバーフローの場合は除く)
  f_entry = false;
  if(tmp_data == ir_data) return;         // 前と同じだったらリターン
  tmp_data = ir_data;
  Serial.printf("ir_dat: %X\n",ir_data ); //IRデータを表示
  for (int i=0;i<32;i++){
    if (!(i%4)) Serial.println();
    Serial.printf("i=%d %lu\n",i,t_buf[i]);
  }
  for (size_t i = 0; i < IR_CT; i++) {
    if(ir_data==IR_DATA[i]) {digitalWrite(LED_PIN[i], LOW);} //LED On
  }
  delay(500);
  for (size_t i = 0; i < LED_CT; i++) {
    digitalWrite(LED_PIN[i], HIGH); //LED Off
  }
}

3.テストの様子です。
 ◆以前作った解読器(下記ブログ内記事)でコードを比較しています。
 ・ESP32 で 赤外線リモコン解読器 を作ってみた(その2)

 ch32v_IR-1

3.現在LEDを繋いでテストしています。
 最終的には、下記HDMIモニタのキーボードとパラ接続してリモコンで
 操作できるようにする予定です。
 ・RUNTK0001ZAPN LCDパネルを M.NT68676 HDMIモニタとして再利用
 このM.NT68676搭載のLCDコントローラは、IR端子は、着いているのですが
 ファームウェアが対応していないようです。(販売店にて確認)
 対応ファームウェアと書き換え方法も合わせて検索中です。
 
以上

◆格安マイコンCH32V003F4P6でスイッチ割り込み処理でLEDのONさせ
 デバッグ用にシリアルに出力出来たので備忘録に残します。
 CH32V003F4P6

1.CH32V003F4P6の入手先
 ◆下記秋月でも有ります
 32ビットRISC-Vマイコン CH32V003F4P6 50円
 SSOP20ピン(0.65mm)・SOP20ピン(1.27mm)DIP変換基板 50円
 akizuki

 が手間を考えるとLチカ用のLEDや電源LEDもついた基板がAliexpressに
 有りましたので下記でも入手しました。
 ◆シリアルモニタを使うためにディフォルトのUTX(PD5)を使います。
  このピンとWCH-LinkEの「RX」を接続します。
 CH32V003F4P6_UART

 WCH-LinkE 基板
 3V3 ---- 3V3
 GND  ---- GND
 SWDIO ---- SWDIO
 RX   ---- PD5
       PD0---抵抗入りLED---GND
       PD4---タクトSW-------GND
        "  ---抵抗4.7kΩ-------VCC
 ch32v_test

4.スケッチの書き込み
 ①WCH-LinkEを使っての書き込み方法は、下記ブログ内記事を参照して下さい。
 ・CH32V003 J4M6 32bit RISC マイコンでLチカ(ATTiny85の代わり)

 ②割り込みに関して下記サイトを参照しました。
 小ピンマイコンの酷暑(3) CH32V003、外部端子から割り込みをかけてみる

 ➂スケッチの動作
  1.SW圧下で割り込み発生しLEDをONします。
  2.5秒毎にLEDをOFFにします。
  3.都度シリアルに出力します。

void sw_Isr() {
    digitalWrite(PD0, LOW);
    Serial.println("(LED ON)");
}

void setup() {
  Serial.begin(115200);
  Serial.println("Program Start...");
  pinMode(PD0, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(PD4), GPIO_Mode_IN_FLOATING, sw_Isr, EXTI_Mode_Interrupt, EXTI_Trigger_Falling);
}

void loop() {
  delay(5000);
  digitalWrite(PD0, HIGH);
  Serial.println("<LED Off>");
}

4.実際のシリアル出力状態
 シリアル出力

以上

◆ST-22TVが壊れたのでLCDパネルだけでも使えないかと思い
 M.NT68676搭載のLCDコントローラに繋いでみました。
 M_NT68676-4

1.パネルの写真と諸元
 ◆写真
 PANDA-RUNTK0001ZAPN-01
 PANDA-RUNTK0001ZAPN-02

 ◆パネルの諸元を確認するのに下記サイトが参考になりました。
 panelook.com

 ◆ネットで探すと似たような下記がヒットしました。

 ①型番   RUNTK0001ZAPN PANDA製
 ②サイズ  21.5インチ
 ➂解像度  1920 x 1080 
 ④接続方法 LVDS 2ch 8bit

2.LCDコントローラ
 ◆今回のパネルに対応していそうなコントローラを下記より購入
 ①HDMI VGA DVI Audio LCDコントローラ基板 M.NT68676;
 ②電源は12V 2A
 ➂対応 21.5インチ 23インチ 23.6インチ 27インチ液晶パネル
 ④解像度1920x1080 30ピン LVDS



3.組み立て
 ①壊れた基板を取り去り新しい基板を取り付けました。
 M_NT68676-1

 ②配線確認のために表・裏の写真を撮りました。
 M_NT68676-02
 M_NT68676-2

 ➂基板以外のスピーカー、キースイッチ、インバータ基板、IR受信機、LEDは
  TVの物を流用し、組み上げました。
  ◆キースイッチは、元々のTVの物とパラ接続しました。
 M_NT68676-3

 ④組み上げ後、ラズパイに接続しHDMIで1920x1080でめでたく表示出来て成功です。
 おまけにHDMI出力でちゃんと音声もスピーカーから再生出来ました。
 ラズパイ以外でも映像、音声を一本のケーブルで出力出来るようになり上出来です。
 M_NT68676-4

以上



◆以前使わなくなった端末の液晶パネルをHDMI対応のディスプレイとして
 活用していました。
 下記ブログ内記事参照

 今回別のパネルを使うためにファームウェアの書き換えをESP32を使い書き込んでみました。
 esp32-hdmi-0

  HDMI VGA 2AV 信号入力コレクタ基板 コントローラ基板 (下記を購入)
2024/02/09 現在
以前のリンクが無くなったので、現在の商品のリンクに更新しました。
基板は、同じですが解像度の確認が必要です。
但し今回みたくファームウェアの書き換えが出来れば問題ないと思われます。


 >UNTERING AT070TN90/92/94 7 インチ VGA 50pin LCD ドライバボード
 LCD TTL LVDS コントローラボード

 Amazon.co.jpへ

1.今回のパネルは、NECタブレットの1024x800の「LP101WX1」です。
 ①パネルの型番
 LP101WX1

 ②ネットで検索して解像度と接続方法を確認しました。
  「画素数:1280 X 800 接続方法:LVDS 40 pins (1 ch 6-bit)」
 LP101WX1-2

 ➂これ用のBINファイルを下記サイトよりダウンロードします。
 「PCB800099-LVDS1280x800-s6--2av1vga1hdmi-5key-ir2.bin」
 lvds1024x800__s6

2.次にボードに書き込む為に下記の配線図のように配線します。
 esp32-hdmi-2

3.最後にESP32にプログラムを書き込みます。
 ①まずはRTD266X用のライブラリを下記よりダウンロードします。

 ②解凍後、ライブラリフォルダに保存します。
 rtd266xライブラリ

 ➂ライブラリの中のinoファイルを参照してプログラムを作ります。
  ◆RTD266xから読み込むファイル名は「/FLSHSAVE.BIN」に固定
  ◆RTD266xに書き込むファイル名は「/RTDFLASH.BIN」に固定

  (保障無しの自己責任で)  esp32_rtd266x.ino

 ④「esp32_rtd266x.ino」と同じフォルダへ下記ブログ内記事の「SD_esp32.cpp」
  「SD_esp32.h」をコピペします。

 esp32_rtd266x_ino

 ⑤ここまでで「esp32_rtd266x.ino」をコンパイル実行してみます。
 下記のエラーにならずコマンドプロントまで進めば⑦へ進みます。
 esp32_rtd266x-error

 ⑥エラーが出たの場合、ライブラリの修正をします。
  ついでにコンパイル時のワーニングも修正しました。
  ◆チップが未登録の場合、調べて「rtd266x_main.cpp」に追記します。

  1.「rtd266x_main.cpp」の修正
  rtd266x_main_cpp

  2.「rtd266x_main.h」の修正
  rtd266x_main_h

  3.「i2c.cpp」の修正
  i2c_cpp

 ⑦修正後、再度コンパイル実行してみます。
  1.エラーなくコマンドプロンプトまで進んだ様子です。
  esp32_rtd266x-1

  2.「R」リードコマンドの様子
  esp32_rtd266x-R1
  esp32_rtd266x-R2

  3.「W」ライトコマンドの様子
  ◆「RTDFLASH.BIN」のファイルを書き込みます。
  rtdflash_bin
  esp32_rtd266x-W1
  esp32_rtd266x-W2

4.動作確認
 ①起動後HDMIを選択した時の写真
 hdmi-1

 hdmi-2

 ②ラズパイに接続しての写真
 hdmi-3

以上

◆ESP32でMicro-SDを読み書きしてみました。
 ①ESP32DevkitとMicroSDアダプタ
 esp32-micro_sd

 ②接続図
 esp32-micro_sd-回路図

1.他でも使えるようにSDカードのプログラムをcppソースとヘッダーファイルを
  別ファイルとしてINOファイルと同じフォルダに入れています。
 ライブラリとすればいいのですが、まだそこまでのスキルがありません。
 また、エラーメッセージなど日本語化しました。
 esp32_sd_ide

 (保障無しの自己責任で)   

 ①「SD_esp32.h」ヘッダーファイル
  SD_esp32.h
 ②「SD_esp32.cpp」ファイル
  SD_esp32.cpp

 ➂「esp32_sd.ino」ファイル 
//esp32_sd.ino modified by JK1VCK
//http://gijin77.blog.jp/archives/39748138.html
//
//   Connect SCK, MOSI, MISO, CS -> MicroSD card
//   GPIO18->SCK GIPO23->MOSI GPIO19->MISO GPIO4->CS 3V3->3V3 GND->GND

#include "FS.h"
#include "SD.h"
#include "SPI.h"
#include "SD_esp32.h"

#define SD_CS        5         // esp32-pin connected to SD chip select

char line[LINELEN];
//char cmds[3][33] = { 0,0,0}; // 分割された文字列を格納する配列 

File dataFile;

void error(const char *str) {
  Serial.println(str);
  Serial.println(F("****************************************"));
  Serial.println(F("プログラムストップ.......  リセット又はチェック"));
  while (1);
}

void setup(void) 
{
//  while (!Serial);
  Serial.begin(115200);
  Serial.println();
  Serial.println(F("****************************************"));
  Serial.println("*** プログラムスタート Ver.2024-02-09 ***");

//SD************************************************************
  Serial.println(F("SDカードを初期化しています..."));
  // see if the card is present and can be initialized:
  if (!SD.begin(SD_CS)) {
    error("カードが故障したか、カードが存在しません");
  }
  Serial.println(F("カードが初期化されました。"));

  uint8_t cardType = SD.cardType();
  if(cardType == CARD_NONE){
    Serial.println("SDカードが接続されていません");
    return;
  }
  Serial.print("SDカードの種類: ");
  if(cardType == CARD_MMC){
    Serial.println("MMC");
  } else if(cardType == CARD_SD){
    Serial.println("SDSC");
  } else if(cardType == CARD_SDHC){
    Serial.println("SDHC");
  } else {
    Serial.println("UNKNOWN");
  }
  uint64_t cardSize = SD.cardSize() / (1024 * 1024);
  Serial.printf("SDカードのサイズ: %lluMB\n", cardSize);
  listDir(SD, "/", 0);
  Serial.println(F("----------------------------------------"));
}

void loop(void) {
  Serial.println(F("SD Card TOOL"));
  Serial.println(F("dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg")); 
  if (get_line(line)!=1) {
    String cmds[CMDSIZE] = {"\0"}; // 分割された文字列を格納する配列 
    char cmdmg[10];
    char path1[100];
    char path2[100];
    // 分割数 = 分割処理(文字列, 区切り文字, 配列) 
    int index = split((String)line, ' ',cmds,CMDSIZE);
    if (index > 0 ) {
      cmds[0].toCharArray(cmdmg,cmds[0].length()+1);
      cmds[1].toCharArray(path1,cmds[1].length()+1);
      cmds[2].toCharArray(path2,cmds[2].length()+1);      

      if ((strcmp(cmdmg,"dir") == 0)&&(index==1)) {
        listDir(SD, "/", 0);
      } else if ((strcmp(cmdmg,"dir") == 0) &&(index==2)) {
        listDir(SD, path1, 0); 
      } else if (( strcmp(cmdmg,"rd") == 0 ) &&(index==2)){
        removeDir(SD, path1);
      } else if (( strcmp(cmdmg,"md") == 0 ) &&(index==2)){
        createDir(SD, path1);
      } else if (( strcmp(cmdmg,"del") == 0 ) &&(index==2)){
        deleteFile(SD, path1);
      } else if (( strcmp(cmdmg,"ren") == 0 ) &&(index==3)){
        renameFile(SD, path1,path2);
      } else if (( strcmp(cmdmg,"cp") == 0 ) &&(index==3)){
        copyFile(SD, path1,path2);  
      } else if (( strcmp(cmdmg,"add") == 0 ) &&(index==3)){
        appendFile(SD, path1,path2);
      } else if (( strcmp(cmdmg,"cat") == 0 ) &&(index==2)){
        readFile(SD, path1);
      } else if (( strcmp(cmdmg,"new") == 0 ) &&(index==3)){
        writeFile(SD, path1,path2);
      } else {
        Serial.println(F("コマンドエラー ?????"));
      }
    } else {
      Serial.println(F("コマンドエラー ?????"));
    }
  }
  Serial.println();
}

2.操作はシリアル経由でコマンドを打って実行します。
 コマンドの種類
 ①dir        リストディレクトリ
 ②rd /path       ディレクトリの削除
 ➂md /path     ディレクトリの作成
 ④del /name           ファイルの削除
 ⑤ren /name1 /name2 ファイルの名前を変更
 ⑥cp /name1 /name2   ファイルをコピー
 ⑦apd /name msg      ファイルに追加中
 ⑧cat /name            ファイルの読み込み
 ⑨new /name msg       ファイルの書き込み

3.デモ画面
 ①リセット直後(MicroSDは空の状態)
 esp32_sd
 
 ②コマンドの実行様子のシリアルモニタ
 注意)青文字がコマンド入力 赤字が追記の注釈
****************************************
*** プログラムスタート Ver.2024-02-09 ***
SDカードを初期化しています...
カードが初期化されました。
SDカードの種類: SDHC
SDカードのサイズ: 29818MB
リストディレクトリ: /
----------------------------------------
SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>md /abc
ディレクトリの作成: /abc
ディレクトリが作成されました

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>dir
リストディレクトリ: /
  DIR : abc ←abcが作成されている

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>rd /abc
ディレクトリの削除: /abc
ディレクトリが削除されました

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>dir
リストディレクトリ: /
          ←abcが削除されている
SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>new /test.txt test1234567890
ファイルの書き込み中: /test.txt
ファイルが正常に書き込まれました

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>dir
リストディレクトリ: /
  FILE: test.txt  SIZE: 14 ←test.txtが作成されている

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>cat /test.txt
ファイルの読み込み中: /test.txt
ファイルから読み取り
test1234567890     ←test.txtの中身
ファイルから正常に読み取りました 

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>add /test.txt abcdefg
ファイルに追加中: /test.txt
メッセージが正常に追加されました

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>cat /test.txt
ファイルの読み込み中: /test.txt
ファイルから読み取り
test1234567890abcdefg        ←test.txtの中身(追加されている)
ファイルから正常に読み取りました 

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>cp /test.txt copy.txt        copy.txtに/が付いていないのでエラー
ファイルをコピー中 /test.txt から copy.txt
コピー先ファイルを作成できません
 
SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>cp /test.txt /copy.txt
ファイルをコピー中 /test.txt から /copy.txt
ファイルが正常にコピーされました

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>dir
リストディレクトリ: /
  FILE: test.txt  SIZE: 21
  FILE: copy.txt  SIZE: 21 ←同じサイズでコピーされている

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>ren /test.txt /org.txt
ファイルの名前を変更します /test.txt から /org.txt
ファイル名が正常に変更されました

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>dir
リストディレクトリ: /
  FILE: copy.txt  SIZE: 21
  FILE: org.txt  SIZE: 21 ←名前が変更されている

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>del /org.txt
ファイルの削除中: /org.txt
ファイルが正常に削除されました

SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>dir
リストディレクトリ: /
  FILE: copy.txt  SIZE: 21
                                              ←/org.txtが削除されている
SD Card TOOL
dir,rd /path,md /path,del /name,ren /name1 /name2,cp /name1 /name2,add /name msg,cat /name,new /name msg
>

以上

・格安中華トランシーバUV-K5(8)を入手したので色々遊んでみました。
 今回は、UV-K5(8)をパソコンからコントロールしてみました。
 先人の方に感謝です。
 PC_uv-k5_78_5

 ◆なお頻繁にバージョンアップされていますので最新版をダウンロードして下さい。
  下記は、バージョン0.31.5wです。コントロールソフトと対応ファームウェアは、
  バージョンNoが一致している必要が有ります。

1.まずは、パソコンとプログラムケーブルを繋ぎつつ音声を出力する為の
 接続ケーブルを下記を参照して作成します。

 2_5-3_5mm_IF
 
 ◆Aliexpressで頼んでおいた2.5/3.5mmのケーブル付きコネクタ、プラグが
  届いたので、インターフェイスケーブルを作ってみました。
 pcケーブル1

 ◆ただ、スピーカーマイクとプログラムケーブルを並列で繋ぐとパソコンから
  制御出来ませんでした。原因解明中。
 pcケーブル2

2.次にパソコン用コントロールソフト(コンパイル済み)を下記サイトより
 ダウンロードします。
 https://github.com/nicsure/QuanshengDock/releases/tag/0.31.5w

3.上記ソフトが使えるようにする為に、対応ファームウェア(コンパイル済み)を
 下記サイトよりダウンロードします。
 https://github.com/nicsure/quansheng-dock-fw/releases/tag/0.31.5w

4.ファームウェアを書き込むためのソフトを下記を参照してダウンロードして
  インストールします。
 QUANSHENG UV-K5改造方法



5.実行画面の様子
 ①FMラジオを受信している様子
 PC_uv-k5_78_5

 ②アマチュア無線帯を受信している様子
 PC_uv-k5_433

   ◆下記画面のコマンド
 コマンド

 ➂表示画面のフォントなどを設定する画面
 設定画面

 ④スペクトラムアナライザを表示している画面
 スペクトラムアナライザ

 ⑤チャンネルエデッタを表示している画面
 チャンネル編集

 ⑥XVFOモードの画面
 XVFO

以上



◆2024年01月14日(日) アクセス累計110026回 祝110000回突破
2024-01-14

◆2023年11月05日(土) アクセス累計100012回 祝100000回突破
2023-11-05

◆2023年08月05日(土) アクセス累計90012回 祝90000回突破
2023-08-05

◆2023年06月18日(日) 投稿件数300件 突破
2023-06-18-300

◆2023年05月06日(土) アクセス累計80092回 祝80000回突破
20230506

◆2023年02月13日(木) アクセス累計70169回 祝70000回突破
2023-02-13


◆2022年12月1日(木) アクセス累計60152回 祝60000回突破
2022-12-01

◆2022年10月11日(火) 投稿件数250件 突破
20221011

◆2022年9月11日(日) アクセス累計50028回 祝50000回突破
20220911

◆2022年9月2日 7時51分時点 ブログアクセスカウンター不良でしたので
 記録に残して置きます。
20220902blogNG

◆2022年5月28日 アクセス累計40043回 祝40000回突破
20220528


◆2022年5月27日 アクセス累計39958回
20220527

◆2022年5月23日 投稿件数200件 突破
20220524

◆2022年4月25日 IoTアクセスランキング5位 最高位
20220425-05

◆2022年4月24日 アクセス  PV:902回 UU:731回 最高アクセス数 
20220424

◆2022年4月22日 IoTアクセスランキング14位
20220422-14

◆2022年3月3日 アクセス累計30130回 祝30000回突破
20220303

◆2022年3月2日 IoTアクセスランキング12位
20220302-12

◆2022年2月12日 IoTアクセスランキング12位
20220212-12

◆2022年2月11日 IoTアクセスランキング11位
20220212-12

◆2021年11月15日 投稿件数150件 突破
20211115


◆2021年9月8日 投稿件数100件 突破
20210908


◆2020年1月23日 投稿件数51件 突破
20200123


◆2019年4月27日 投稿件数10件 突破
20190427


◆2019年4月6日 投稿開始 ここから 履歴開始
◆ブログをはじめた日 2018月03月24日

◆秋月 2024年福箱に入っていたInstrustarISDS220Aを使ってみました。
 こちらもCDは、使いませんでした。
 メーカーサイトより「マルチ VirAnalyzer」をダウンロードして動くように
 なりましたので備忘録で残して置きます。
 ISDS220A-1

 ◆概要
 ISDS220A-0

1.下記INSTRUSTAR社サイトより対応のソフトをダウンロードします。 

 ①表示を日本語に翻訳して「V3.13.12.0 英語版のダウンロード」をクリックします。
 ダウンロードサイト

 ②ダウンロードした「English Version(3.13.12.0).zip」を解凍します。
 ➂解凍後「English Version(3.13.12.0).exe」を実行します。
  指示に従ってインストールします。
 ISDS220A-2

2.ディスクトップのアイコンをクリックしてソフトを実行してみます。
  あとは、テスト用出力にプローブを繋いで、1KHzの矩形波を表示してみました。
 ISDS220A


 以上

◆秋月 2024年福箱に入っていたPicoScope3204を使ってみました。
 最初CDよりインストールしてみましたが、ソフトは動きましたが、
 ドライバが不明なデバイスとなり、CDを探しても見つかりませんでした。
 色々検索して、動くようになりましたので備忘録で残して置きます。
 CDは、使わずにインストール出来ました。
 p3204

1.下記ピコテクノロジー社サイトより対応のソフトをダウンロードします。 

 ①表示を日本語に翻訳して「ダウンロード」をクリックします。
 pico_url
 
 ②次に「生産終了品」->「ピコスコープ3204」->「ソフトウェア」->
  「PicoScope7.1.13(64ビット)」を選択し、ダウンロードします。
 pico_url-2

 ➂ダウンロードした「PicoScope_7.1.13.17054_TandM_Stable.exe」を実行します。
  指示に従ってインストールします。
 picosoft

 ④実行したらデバイスマネージャーにちゃんと登録されました。
 デバイスマネージャーpico3000

2.ではディスクトップのアイコンをクリックしてソフトを実行してみます。
 すんなり、日本語で表示されました。
 あとは、Ext出力にプローブを繋いで、1KHzの矩形波を視ながらプローブの
 なまりを添付のドライバで調整します。
 picoscope3204

以上 手こずるかと思いましたが意外と簡単に使えるようになりました。

◆今年初めて秋月電子 八潮店の福箱をゲットしました。
 昨日(1/4)朝5時起きでお店に8時半頃到着、40人ほど並んでいました。
 10時半に販売開始、3つ並べて有ってその中の一つを選べるようになっていました。
 重さを確認して、真ん中のを選びました。
 またお楽しみ袋も3つ買ってしまいました。

 ①販売開始直後の様子
 福BOX-2

 ②10時20分頃の様子(駐車場いっぱい)
 福BOX

 持ち歩くのが大変なので、近くのヤマト運輸で自宅へ送りました。
 そこで重さが6.5kgで有ることが分かりました。
 本日、福箱が届きました。

1.下記が、私の選んだ福箱の中身です。
 測定器が多かったです。

 ◆全部の中身
 福箱ALL
 ◆値札有り(合計すると13万円以上)
 福箱値札有り
 ◆値札無し
 値札無し

 ①USBオシロスコープPicoScope3204(8ビット2ch50Msps)
 ¥47,800(秋月)

  ◆この機種の類似品
  ◆ソフトをインストールして使えるようになりました。
   下記ブログ内記事を参照して下さい。

  ・USBオシロスコープ PicoScope 3204 を使ってみた

 ②Instrustar ISDS220A USBポータブルデジタルオシロスコープ  ¥15,027(Aliexpress)
  ◆ソフトをインストールして使えるようになりました。
   下記ブログ内記事を参照して下さい。

  ・USBオシロスコープ Instrustar ISDS220A を使ってみた

 ➂Maker hart Just Mixer 5  ¥8,690(2nd STREET)

 ④Dr.DAQ(パラレル接続パソコン計測アダプター) PH電極無し ¥5,100(秋月)

 ⑤USBデータロガーUSB-ADC-11/12+ターミナルボード付  ¥18,700(秋月)
  ◆ADC-11 ソフトウェア開発キット 1.0.0

 ⑥BM3548 デジタル絶縁抵抗計/AC DC/DMM機能付250V~1000V  ¥8,026(Aliexpress)

 ⑦ドーム型カラーカメラ 1/4インチ26万画素CCD ¥4,500(秋月))
  ◆この機種の類似品

 ⑧電流データロガー EL-USB-ACT (交流電流) ¥13,480(秋月)
   ◆EL-USB-ACTは、消費電力量を表示できる交流電流データロガーです。

 ⑨EL-21CFR-2-LCD 温度・湿度ロガー ¥11,7000(秋月)
  ◆データーシート

 ➉Touch Board ¥2,480(秋月)
   ◆販売元ページ:Touch Board

 ⑪STM32F0DISCOVERY ¥1,250(秋月)
   ◆データーシート

 ⑫◆グラフィックLCDパーツセット(AE-GraphicLCD-M) 下記の部品が有り
  PICマイコン PIC16F877A-I/P ¥1,000(秋月)
   LCDグラフィック・ディスプレイモジュール(122x32ドット)
  バックライト付 ¥1,000(秋月)


 ⑬Linino ONE 有線LAN・USBホスト機能拡張キット ¥3,575(スイッチサイエンス)

 ⑭ソケット変換アダプタ★0.65/28P★ [CNV-28-0.65-01A] 類似品  ¥2,145(aitendo)

 ⑮Smart Connect Board APKダウンロード先  ¥6,800(秋月)

 ⑯LED Ribbon Strip 「1500mm  45RGB 5050 LED 12V IP68」

 ⑰メジャコン(AM-1) 株式会社アダム商会

 ⑱電解コンデンサ 400V 390uF

 ⑲お楽しみ袋1000円相当

2.下記がお楽しみ袋3つと福箱に入っていた一つ、合計4つの中身です。
 ①お楽しみ袋 合計4つ
 お楽しみ袋-1_4

 ②お楽しみ袋1,2の小物
 お楽しみ袋-12-1
 
 ➂お楽しみ袋1,2の小物以外
 お楽しみ袋-12-2

 ④お楽しみ袋3,4の小物
 お楽しみ袋-34-1

 ➂お楽しみ袋3,4の小物以外
 お楽しみ袋-34-2

以上

◆今年もaitendo 2024 お楽しみ福BOXをゲット出来ました。
 入っていた中身の写真と分かる範囲のaitendoの部品のURLを
 調べてみました。

 ①福BOX-1
 BOX-2

 ⑱★TYPE-C ★USBコネクタ x4
 ⑲Dサブ9P メス―メス コネクタ x2
 ⑳部品袋
 21.各種キット用基板 27枚

 ②福BOX-2
 BOX-1

 ⑫3mm 5mm 各種 各色 LED 約200個

以上

◆現在のNano VNA H4 のバージョンが0.5.0の為、最新の1.2.14に
 バージョンアップしました。
 そのやり方をメモとして残して置きます。

  下記の「NanoVNA User Guide」を参照しながらバージョンアップします。
 *Windows11では、少し違っていました。
 *ファームウェアの更新方法 dfu-util を使った書きこみ (Windows 10)


 ver050

1.まず、下記より最新のバージョンをダウンロードします。
  https://github.com/hugen79/NanoVNA-H/releases/tag/1.2.14
 NanoVNA_H4_1_2_14

 ①この中で、ダウンロードするファイルは、手持ちのNanoVNA H4で
  使われている5351のメーカーにより「SI」か「MS」を選択します。
 「NanoVNA-H4-SI_20220831.dfu」
 「NanoVNA-H4-MS_20220831.dfu」

 ②Si5351かMS5351の確認方法は、裏面のHW versionで判断します。
  HW version4.3    の場合、Si5351 (私のはこちら)
 Si5351

  HW version4.3_MS の場合、MS5351
 MS5351

2.次にPCから書き込むためのソフトを用意します。
  ◆私の場合は、Windows11用
 ①下記から「dfu-util-0.9-win64.zip」ファイルををダウンロードします。
 dfu_util-09

 ②ダウンロードしたら(例)「"C:\dfu-util-0.9-win64"」に解凍します。
 ➂1でダウンロードしたファームウェアファイルの .dfuファイルを
  「C:\dfu-util-0.9-win64」のフォルダにコピーします。
 ④「C:\dfu-util-0.9-win64」フォルダに移動し、アドレスバーに「cmd」と入力し、
  ENTERを押す。これで、そのフォルダをカレントディレクトリとした
  コマンドプロンプトが起動します。
 cmd

 ⑤「dir」で解凍されたファイル名をみてみます。
 ⑥「dfu-util.exe --version」でバージョンを表示してみます。
 cmdexe

 ⑦Windows の場合、DFU モードの NanoVNA を接続すると自動的にデバイスドライバの
  インストールが行われますが、このデバイスドライバでは dfu-util を利用できません。
  ですので下記より「Zadig」をダウンロードします。
  Zadig

 Zadig28

3.いよいよNanoVNA H4に書き込みます。
 ①「C:\dfu-util-0.9-win64」フォルダに移動し、アドレスバーに「cmd」と入力し、
  ENTERを押す。これで、そのフォルダをカレントディレクトリとした
  コマンドプロンプトが起動します。
 cmd
 ②NanoVNAをUSBケーブルでPCに接続します。
 ➂NanoVNAをDFU モードにします。以下のいずれかの方法で DFU モードになります。
  A.レバースイッチを押しながら電源を入れる。画面が真っ黒になりますが正常です。
  B.CONFIG →DFU RESET AND ENTER DFU を選択する
 ◆私の場合は、Aの方法

 ④デバイスマネージャーに「STM32 BOOTLOADER」が表示されました。
 デバイスマネージャー

 ⑤DFU モードにした NanoVNA を接続した状態で Zadig を起動し、以下のように
  STM32 BOOTLOADER に対して WinUSB をドライバとして利用するようにします。
 zaidig-1

 ⑥「dfu-util.exe -a 0 -D NanoVNA-H4-SI_20220831.dfu」を実行して書き込みます。
 ◆ここで何度か失敗しました。
  (書き込み途中でドライバが消えてしまいました。➂⑤⑥を繰り返していましたら
   最後にめでたく書き込みに成功しました。)
 ×失敗例
 dfu_NG
 ●めでたく成功
 dfu_OK

4.再起動後のバージョン表示で「1.2.14」を確認出来ました。
 ver1214

以上 めでたしめでたし

◆8LED 周波数カウンター 0.1MHz-2.4GHzを入手したので使いやすく100均の
 ケースに入れ、ついでにバッテリー駆動としました。
 また、入力もSMAコネクタに替えました。
 なかなかいい出来になり、自己満足しています。
 fc-3-2

 この商品の詳しい解説は、下記URLが参考となります。感謝です。
1.バッテリー駆動
 ①186501個のモバイルバッテリーから配線を出しDCDCコンバーターで9Vに昇圧し
  周波数カウンターに接続しました。
 ◆バッテリーケースは、下記Aliexpressにて入手したものです。
  1 × 18650 usbモバイルパワーバンクバッテリー充電器ケース


 fc-1-1

 fc-1-1-2

 ②当然充電も出来るようにサイドに大きめの穴を開けました。
 fc-1-2
 
 ➂底面にも穴を開け、充放電のLED窓としました。
 fc-1-3

 ④完成
 fc-1-4

2.入力端子の変更
 ①ケーブル入力だったので端子を外しSMAコネクタを取り付けました。
 fc-2

3.以前作った信号発生器に繋いで測定してみました。
  ◆信号発生器については、下記ブログ内記事を参照して下さい。

 精度は、どちらが正しいか分かりませんが上位5桁位は一致しました。
 ①2.345678MHz
 fc-3-1
 
 ②12.345678MHz
 fc-3-2

以上


◆ESP32とAD9850とタッチ付き2.8インチ320x240LCDによるHF帯のアンテナアナライザーを
 作ってみました。
 esp_aa-1

 諸先輩方のネットでの記事を参照しました。
 基本は、K6BEZ,DG7EAO,JA2GOPさんのハードとソフトを流用させてもらいました。
 感謝です。

 変更点は、
 ◆ハード的には、
  ①MCUをESP32に変更(表示速度が向上)
  ②検出回路のブリッジ回路をトロイダルコイルを使った物に変更
  ➂操作を全てタッチ操作に変更(各SW不要)
 ◆ソフト的には 
  ④バンド設定をアマチュア無線の各バンドと自由に設定できるUIを追加
  ⑤SWR表示後の画面をタッチすることで任意の周波数のSWRを表示確認

1.ハードの製作
 ①蛇の目基板にブリッジ回路とESP32,AD9850を組み、その上にLCDを配置。
 ②GPIOの割り当てを配置に合わせて左右に分割
 esp_aa_0

 ➂回路図
 ESP32_DDS_JK1VCK回路図V3

2.ソフトの構築
  ①OS:win11 pro x64 23H2
  ②IDE:1.8.19
  ➂日本語表示の為に、efontのライブラリを使用
   ◆ライブラリマネージャーで「efont」を検索してインストールします。
   「v1.0.9で確認しています。」
  ④タッチパネルとLCD表示にTFT_eSPIのライブラリを使用
   ◆ライブラリマネージャーで「TFT_eSPI」を検索してインストールします。
   「v2.5.34で確認しています。」
  ◆TFT_eSPI User Setup.h内で設定
  *下記を追加又は編集
  #define TFT_MOSI 23
  #define TFT_MISO 19
  #define TFT_SCLK 18
  #define TFT_CS    5  // Chip select control pin
  #define TFT_DC   17  // Data Command control pin
  #define TFT_RST  16  // Reset pin (could connect to RST pin)
  #define TOUCH_CS  4     // Chip select pin (T_CS) of touch screen

  *下記をコメントアウト
  //#define TFT_MISO  PIN_D6  // Automatically assigned with ESP8266 if not defined
  //#define TFT_MOSI  PIN_D7  // Automatically assigned with ESP8266 if not defined
  //#define TFT_SCLK  PIN_D5  // Automatically assigned with ESP8266 if not defined

  //#define TFT_CS    PIN_D8  // Chip select control pin D8
  //#define TFT_DC    PIN_D3  // Data Command control pin
  //#define TFT_RST   PIN_D4  // Reset pin (could connect to NodeMCU RST, see next line)

3.スケッチは下記にて
 (保障無しの自己責任で)  esp32_aa_v01.ino

4.操作画面
 ①立ち上げ時
 esp_aa-2

 ②ALLバンド設定画面
 esp_aa-3

 ➂7MHz帯バンド設定画面
 esp_aa-4

 ④フリー選択画面
 *中心周波数とバンド幅をテンキーで指定する。
 esp_aa-5

 ⑤SWR表示画面
 *設定後、最下行「SCAN」タッチにてSWR測定
 esp_aa-6
 
 ⑥SWR表示後、任意の周波数をタッチするとその周波数とSWRを表示する。
 ◆黄色のバーチカルラインで表示(SWR:2.10 周波数:14.417MHz)
 esp_aa-7

 ◆黄色のバーチカルラインで表示(SWR:1.67 周波数:12.250MHz)
 esp_aa-8

5.今後の課題
 ①純抵抗の50Ω負荷でSWRが一定でなく周波数により変動するので
  原因を究明したいです。
 ②AD9850の発生周波数の制限でアマチュアバンドのHF帯のみなので
  発振器をsi5351に替えて144MHz帯まで対応させたいです。
 ➂現在「MENU」は、バージョン表示のみですが、今後
  *信号発生器
  *校正項目
  などを追加するつもりです。
  ④ケースに入れてバッテリー駆動出来るようにしたいです。

以上

◆ATU-100をアンテナ直下型にすべくM5STAMP Picoと接続し
 スマホ又はPCとWiFi接続でWeb上で遠隔操作出来るようにしてみました。
 (適当なESP32の載ったM5STAMP S3 等でも使えます。)
 今回使ったATU-100は、2台目のキットです。

 *M5STAMP Picoについては、下記サイトが参考になります。

 *ATU-100については、下記ブログ内記事を参照して下さい。
  ・ATU-100 オートアンテナチューナーのキットを作ってみた
  ・ATU-100-0A のバージョンアップとQRP仕様に変更してみた
  ・ATU-100 オートアンテナチューナー EEPROMのアドレスと値の意味

1.ATU-100とM5STAMP Picoとの動作概要です。
 atu-100-cont-pico

 ①ATU-100からデータをシリアル通信(9600BPS)で受信
 ②受信したデータを解析し、Web上に表示します。
 ➂ATU-100のSW入力「TUNE/BYPAS,AUTO,BYPAS」用にWeb上の釦より入力します。
 ④釦入力をGPIOにてATU-100のSW入力をLOW/HIGH出力します。
  1.TUNE時は、「TUNE/RESET」を長押し(1000ms)LOWにします。
  2.RESET時は、「TUNE/RESET」を短押し(300ms)LOWにします。
  3.AUTO時は、「AUTO」を短押し(300ms)LOWにします。
  4.BYPAS時は、「BYPAS」を短押し(300ms)LOWにします。

2.ATU-100にシリアル出力させるためにソースファイルを編集します。
 ①ソースファイルフォルダ内「cross_compiler.h」を下記のように編集します。
  191行 //////#define UART のコメント取ります。
 UART-ORG

  191行 #define UART
 UART-MOD

 ②次にコンパイルし、書き込みます。
 ◆ソースの元やコンパイル、ATU-100への書込方法などは、
  下記ブログ内記事を参照して下さい。

3.次は、ATU-100とM5STAMP Picoを下記のように接続します。
 m5pico_atu-100接続図

 ①M5STAMP Picoは、3.3V動作ですので5V-3.3Vのレベル変換モジュール
  を使ってレベル変換しています。
 レベル変換器回路図

 ②電源の5Vは、ATU-100からもらっています。
  (私のATU-100は、800mAの三端子レギュレータでしたのでそのまま
  使いましたが、78L05などでしたら、12Vからの三端子レギュレータで
  別電源にした方がが良いと思います。)
  
4.アンテナ直下に設置する為、
  「未来工業 ウオルボックス ハイグレードタイプ・屋根一体型・タテ型
    WB-1DHM」を使いました。
  ①ケースに組み込んだ様子
 atu-100-pico
 ケース内atu-100-2
 
5.M5STAMP Picoのソースファイル
 (保障無しの自己責任で)  M5_Pico_ATU.ino

6.スマホでの操作画面
 ①ノーマル時
 atu-nom

 ②オートモード時
 atu-auto

 ➂バイパスモード時
 atu-bypas

今日はここまで
 
以上

◆基板に半田付けする時のスタンドクリップを格安で作ってみました。
 今まで、色々使ってきましたが、ちょっとしたはんだ付けする時、
 手軽に使えるものを作りました。
 スタンド
 
1.材料ですが、写真のようなものになります。
 スタンド-1

 ①一番重要なのが、フレキシブルに動く腕部分です。
  ●リサイクルショップで手に入れたUSB扇風機
 ②基板等を固定するクリップ
  ●100均の目玉クリップ
 ➂上記①②を固定するもの
  ●100均の強力な冷蔵庫用マグネットクリップ
 ④上記➂を安定に固定するもの
  ●100均のマグネットトレー

2.製作
 ①まず1-①のモーター部分をとり、そこに1-②の目玉クリップを
  電線で括り付けます。
 腕-1
 ②その上から半田付けし固定します。
 腕-2
 ➂その上にビニールテープで巻きます。(突起で怪我しないように)
 腕-3

 これで完成です。

3.使う時
 ①鉄製の机など場合は、1-➂に2を挟んで磁石でくっ付けて使用出来ます。
 ②上①が出来ない場合、重しとして1-④を使います。
 スタンド-4

 ◆参考 今まで使っていたもの
 スタンド-2
 
以上 安価で使い勝手のよいスタンドクリップが出来ました。




◆ATU-100のソースファイルをMPLAB X IDE 6.15でコンパイルする手順を示します。

◆MPLAB X IDEの詳しい説明は、下記で確認できます。
 mplabx_ide

1.まず、MPLAB X IDE 6.15をダウンロードしインストールします。
 ①書き込み用ソフトを下記よりダウンロードします。
 
 mplabx-3

 ②ダウンロードした「MPLABX-v6.15-windows-installer.exe」を実行しインストールします。
  ダウンロードしたインストーラを起動すると、Setup画面が表示されるので、画面の指示に
  従いながら「Next」をクリックしていく。
 mplabx-3-2

2.次にC言語でプログラムを開発するためにコンパイラをインストールします。
 ①下記のURLからMPLAB XC Compilerのサイトを開き、「Download an XC8 Compiler」を
  クリックします。

 xc8-1

 ②「MPLAB XC8 Compiler Downloads」でWindows版をダウンロードします。
 xc8-2

 ➂ダウンロードしたインストーラを起動し、インストールします。
 xc8-3

3.ATU-100のソースファイルを入手します。
 ①N7DDCさんオリジナルのソースは、MPLAB X IDEで、コンパイル出来ませんでしたので、
  ネットで探したら、「WA1RCT」さんの作成されたものがMPLAB X IDEで使用出来ました。
  それを下記よりダウンロードしました。
 ②ダウンロードしたファイルを解凍します。
 1938_EXT_MPLAB_sources_V_3.2
 
 ➂その中のソースファイルフォルダ「1938_EXT_MPLAB_sources_V_3.2」を適当なフォルダに
  コピーして、フォルダ名をNを付けて「1938_EXT_MPLAB_sources_V_3.2N」にリネーム
  しました。
 1938_EXT_MPLAB_sources_V_3.2N

4.実際に「MPLAB IDE v6.15」でソースファイルをコンパイルしてみます。
 ①「MPLAB IDE v6.15」を起動します。
 mplabx_ide
 
 ②MPLAB X IDEでXC8が使えるよう設定します。
  1.「Tools」->「Options」->「Embedded」->「Build Tools」とクリックします。
 ide-4-2-1

  2.「Build Tools」の「toolchain」に「XC8」が無かったら「Add」をクリックし
  「XC8」がインストールされたフォルダを探します。
 ide-4-2-2
  
  3.「Browse」をクリックし、「C:\Program Files\Microchip\xc8\v2.41\bin」を
   選択し、「開く」をクリックします。
 ide-4-2-3

  4.「Base Directory」を確認し「OK」をクリックします。
 ide-4-2-4

  5.「toolchain」に「XC8」が登録されたことを確認し「OK」をクリックします。
 ide-4-2-5

 ➂プロジェクトをオープンします。
  1. 3-➂で作成したフォルダを選択します。
 ide-4-3-1
  
  2.「1938_EXT_MPLAB_sources_V_3.2N」を選択し「Open Project」をクリックします。
 ide-4-3-2

 ④「Files」「Projects」の欄の「atu」をクリックするとソースファイルが表示されます。
 ide-4-4

 ⑤「Build Project(atu)」をクリックするとコンパイルが実行されます。
 ide-4-5

 ⑥先ほどのフォルダを確認すると「HEXファイル」作成されています。
 "C:\00WK\atu-100-ext\1938_EXT_MPLAB_sources_V_3.2N\
  dist\default\production\1938_EXT_MPLAB_sources_V_3.2N.production.hex" 
 ide-4-6
  
5.これでATU-100のソースからHEXファイルを作成出来ます。

 ◆ATU-100に書き込むには、下記ブログ内記事を参照して下さい。
以上 ATU-100の機能追加などソースをカスタマイズ出来ます。


◆オートアンテナチューナーATU-100の機能を変更したりするために、MPLAB IPE v6.15を
 使ってHEXファイルを書き込む手順を備忘録として残して置きます。
 mplabx-3-3

 ①書き込み用ソフトを下記よりダウンロードします。
 mplabx-3

 ②ダウンロードした「MPLABX-v6.15-windows-installer.exe」を実行しインストールします。
 mplabx-3-2

 ➂「MPLAB IPE v6.15」を起動します。
 mplabx-3-3

 ④マイコンチップを「PIC16F1938」を選択します。
 mplabx-3-4
 
 ⑤マイコンのVDDをPICKit3より供給する為に、アドバンスモードにします。
  「Settings」->「Advanced Mode」をクリックします。
 mplabx-3-5

 ⑥Passwordを聞いてきますので「microchip」と入力し、「login」をクリックします。
  いきなりフルスクリーンなりますので適当に縮小します。
 mplabx-3-6  

 ⑦ATU-100とPICKit3を繋ぎます。
 ◆完成品との接続(変換アダプタ経由)
 atu-100-pickit3

 ◆キットとの接続(延長ピンヘッダー経由)
 atu-100-25

  ◆ここで、プルダウンメニューで「PICkit3」を選択します。
  二回目の接続では、一回選択してあれば、自動で選択されます。
  ◆各人の環境に応じて選択します。
 mplabx-3-7
  
 ⑧「Power」をクリックし「Voltage options」の「Voltage Level」を
  プルダウンから「4.75」を選択します。
  mplabx-3-8
  次に「Power target circuit from PICkit3」のチェックボックスを
  チェック「レ」します。
  これは、PICkit3からATU-100へ電源を供給しますので外部電源は「OFF」に
  しておきます。
  mplabx-3-8-2
 
 ⑨「Operate」をクリックしATU-100とPICKit3をコネクトします。
 mplabx-3-9
 
 ➉ポップアップが出ますので「OK」をクリックします。
 mplabx-3-10

  ◆ここでエラーが出た場合、⑧に戻って「Voltage Level」を
   確認し、違っていたら「4.75」に設定します。
 mplabx-3-10-err

 ⑪するとメッセージエリアに
 「Target device PIC16F1938 found.
  Device Revision ID = 3」
  と繋がった表示がされます。
 mplabx-3-11

 ⑫バックアップの為、現状のFM を「read」します。
  「Read」をクリックします。しばらくして「Read complete」が表示されます。
 mplabx-3-12

 ⑬そのFMをパソコンにエクスポートします。
  「File」->「Export」->「Hex」とクリックします。
 mplabx-3-13
 ⑭適当な名前を付けて保存します。
  保存されたメッセージが表示されます。
  「Hex File successfully created at C:/00WK/PIC16F1938_ATU-100-2.hex」
 mplabx-3-14

 ⑮ここで「EEPROM」のデータを表示してみます。
 「Window」->「Target Memory Views」->「EE Data Memory」と選択します。
 mplabx-3-15

 ⑯すると「EEPROM」のデータがメッセージエリアに別タブに表示されます。
  後で参考になります。また書き込む前に編集して機能の変更が出来ます。
  ◆EEPROMの内容については、下記ブログ内記事を参照して下さい。

 mplabx-3-16

 ⑰次に書き込むFMのHEXファイルをインポートします。
  「File」->「Inport」->「Hex」とクリックします。
 mplabx-3-17
 
 ⑱フォルダを指定して該当のFMを選択し、「開く」をクリックします。
  ロードされたメッセージが表示されます。
  「Loading code from C:\00WK\atu_100_fw_EXT_32.hex...」
 mplabx-3-18
 
 ⑲次にATU-100に書き込みます。
 「Program」をクリックします。
 しばらくすると「Programming complete」と表示され終了します。
 mplabx-3-19
 
 ⑳最後にATU-100とディスコネクトして終わります。
 mplabx-3-20

 その後、PICkit3を取り外し、OLEDへ繋ぎ変え動作確認します。

 ◆ATU-100にソースファイルから書き込むには、下記ブログ内記事を参照して下さい。
 ・ATU-100のソースファイルをMPLAB X IDE 6.15でコンパイルする手順

 ◆ATU-100関連のブログ内記事は下記を参照してみてください。
 ・ATU-100-0A のバージョンアップとQRP仕様に変更してみた
 ・ATU-100 オートアンテナチューナーのキットを作ってみた

 以上でATU-100へHEXファイルを書き込むことが出来ました。

◆今まで小さいマイコンとしてATTiny85を使ってきましたが、最近高価
 だったり入手が困難なので購入を控えていました。
 そんな中、秋月で40円のSOP8ピン32bitRISCマイコンが有りArduino IDE
 でも使えるとの事でATTiny85の代わりになりそうなので早速購入して
 Lチカしてみました。
 Lチカ接続写真
購入リスト(秋月電子通商)
  1F 16 売場 キャビネット上段  100円 x1 =100円
 ②32ビットRISC-Vマイコン CH32V003J4M6
  1F 13 売場 キャビネット下段 40 x5 =200円
  1F 13 売場 キャビネットの上 750円

 CH32V003J4M6-WL

 ◆SOPをDIP化する変換ボードを使ったのですが、普通のピンヘッダしか持って
  いなくてピンの穴が細くて無理やり穴を拡大し何とか半田付け出来ました。
  結構、苦労しました。
  調べたら、細ピンヘッダ 1×4も売っていますね。知らなかったです。
 dip化前

◆ATTiny85とCH32V003J4M6の仕様を比較してみました。
 かなり32bit RISC マイコンの方がコスパがよさそうです。
 attiny85比較表-2

◆詳しくは、下記で

1.まずArduino IDEにボード情報を追加します。。

 ①「ファイル」->「環境設定」->「追加のボードマネージャー URL」フィールドに
 下記のリンクを追加します。

 「https://github.com/openwch/board_manager_files/raw/main/package_ch32v_index.json」

 ②次に、「ツール」->「ボード」->「ボードマネージャー」で
 「ch32」を検索し、インストールパッケージを見つけてインストールします。
 インストール後の画面
 ch32-1-2_CH32ボード
 
 ➂インストール出来たら、
 「ツール」->「ボード」->「CH32V EVT Boards Support」->「CH32V00x」を選択します。 
 ch32-1-3_ボードマネージャーCH32

 ④「ツール」->「ボード」で「CH32V003F4 EVT」が選択されています。
 ch32-1-4_v00x

2.環境が整ったらコンパイルしてみます。
 ①「ファイル」->「新規ファイル」をクリックします。
 
 ②「レ」アイコンをクリックします。
 下記に示しますようエラー無くコンパイル出来ました。
 ch32-2-2_コンパイル状況

3.CH32V003J4M6に書き込むためのハードを用意します。
 これは、WCH-LinkEエミュレーターを使用します。
 秋月で750円で有りましたのでマイコンチップと一緒に購入しました。

 ①WCH-LinkEでCH32V003が書き込めるように設定する必要がありますので、
 以下のサイトからWCH-LinkUtility.ZIPをダウンロードして展開します。
 WCH-LinkUtility.ZIP

 WCH-LinkE_URL

 ②WCH-LinkEをPCに挿入します。
  自動でドライバがインストールされます。
  私の場合(win11 x64 Pro 22H2)

 ➂展開したフォルダの中にあるWCH-LinkUtility.exeを実行します。
 WCH-LinkE_EXE

  *環境によってはエラーが出ないかも知れません。
  1.エラーが発生しました。「OK」を押して次に進みます。
 WCH-Linke-3-2

  2.ファイルを展開中みたいでしたが、しばらくたっても終わらないので
  「Close」を押して、次に進みました。
 WCH-Linke-3-3
  *何回か実行していたらエラーが無くなりました。

 ④表示される画面の下のあたりにあるActive WCH-Link Mode: のGetボタンを押します。
 WCH-Linke-3-4

 ⑤すると現在のWCH-LinkEのモードが表示されます。
  最初は「WCH-LinkDAP-WINUSB」になっていると思います。
  *WCH-LinkEをPCに挿していなかったら「空欄」でした。
 WCH-Linke-3-5

 ⑥このプルダウンメニューから「WCH-LinkRV」を選択してSetを押しますと、
  自動でドライバがインストールされ、WCH-LinkEのモードがCH32V用に
  切り替わります。
 WCH-Linke-3-6
 
4.WCH-LinkEとCH32V003J4M6との接続図
 Lチカ接続図

 ◆ピンアサイン
 CH32V003J4M6

5.開発環境が整いましたので、Lチカのプログラムを書き込んでみます。
 ①WCH-LinkEとCH32V003J4M6を接続しPCのUSBに差し込みます。
 ②するとCOMポートが表示されますので選択します。
  私の場合「COM4」でした。
 ch32-5-2_com4

 ➂「Lチカ」のプログラムを書きます。

void setup() {
  pinMode(PD6, OUTPUT);
}

void loop() {
  digitalWrite(PD6, HIGH);
  delay(1000);
  digitalWrite(PD6, LOW);
  delay(1000);
}

 ④「→」アイコンをクリックし、コンパイル&書き込みします。
  *エラー無く書き込めたら、LEDが点滅し始めます。
 ch32-5-3_blink_OK

 Lチカ接続写真

以上でATTiny85の代わりのマイコンで遊べそうです。

◆ATU-100を使うにあたってEEPOMの値を変更する事によって挙動をかえる
 事が出来ます。
 その説明をGoogle先生に翻訳してもらい自分に分かりやすく修正しました。
 *間違いがあるかもですので正確には、元の英語表記で確認して下さい。
 ATU-100_EEPROM

00-接続されたディスプレイの12Cアドレス設定セル。
 ・デフォルト値は4E
 ・OLEDディスプレイのアドレスは通常78または7Aです。
 ・1602用のポート拡張ボードには、7E

01-接続されているディスプレイのタイプを示すセル。
 ・値00 接続された2色のLEDに対応します。
 ・値01 〜1602ポート拡張カードを備えたLCD。
 ・値02 OLED ディスプレイ 128x32
 ・値03 OLED ディスプレイ 128x32 上下反転
 ・値04 OLED ディスプレイ 128x64
 ・値05 OLED ディスプレイ 128x64 上下反転
 【注意】上記以外のディスプレイでは考慮されていません。

02-自動アクティブ化セル。
  追加のボタンなしでデバイスを使用する予定の場合は、
 ・値01 自動モードを有効にできます。
 ・値00  デフォルト値は00です。
      ボタンからモードをアクティブにすると、プロセッサは値01をこのセルに書き込みます。
      したがって、ユーザーの選択が記憶されます。

03-リレーをアクティブ化または解放する信号を与えた後のタイムアウトセル。
 ・値15  デフォルト値は15です。
  この時間には、リレーが指定された位置に確立された後、RF検出器の出力で電圧を
  確立するのに必要な時間も含まれます。ミリ秒単位で指定され、デフォルト値は15です。
  時間が短すぎると、チューニング プロセス中に誤動作が発生する可能性があります。

04-自動モードのしきい値設定を設定するセル。
 ・値13  デフォルト値は13です。
    これは次の形式で記録されます。最初の数値はSWR整数部分、2番目の数値は10の位です。
  つまり、自動モードが有効になっている場合、SWRが1.3を超えたとき、および
    SWRが(1.3-1)に変化したときにチューニング プロセスがトリガーされます。

05-セットアップを開始するために必要な最小電源セル。
 ・値05  デフォルト値は05です。
  ◆この値を01に設定すると1ワットのQRPでもチューニングさせる事が出来ます。
     次の形式で記録されます:最初の数値-数十ワット、2番目の数値はワット
  つまり、チューニングは入力電力でのみ機能します。
     少なくとも5ワット以上。値が低すぎると、微調整が不十分になる可能性があります。
     ハイパワー測定モード(セル30がアクティブ)では、セル値は10倍に設定されます。
     つまり、値05は50ワット、12〜120ワットに相当します。

06-安全なチューニングのための最大出力用のセル。
 ・値00  デフォルト値は00です。
  ◆QRPモードでは、この値を40に設定すると40ワット以上調整は実行されません
  入力電力がこの値を超える場合、調整は実行されず、デバイスはユーザーが設定する
  電力レベルを待機します。
     値が0の場合、最大電力チェックは実行されません。デフォルト値は0です。
  ハイパワー測定モード(セル30がアクティブ)では、セル値は10倍に設定されます。
  つまり、値10は 100ワット、25〜250ワットに相当します。
07-OLEDディスプレイの行を下方向にオフセット(垂直方向に移動)を設定するセル。
 ・値01  デフォルト値は01です。
    多分一部のディスプレイには必要です。

08-OLEDディスプレイの左へのオフセット行を設定する(水平方向に移動する)セル。
 ・値02  デフォルト値は02です。
  ディスプレイによっては必要な場合があります。
   
09-チューニングが行われるときに最大の初期SWR値を設定するセル。
 ・値00  デフォルト値は00です。
  値は次の形式で指定します。最初の数値はSWR整数部分、2番目の数値は10分の1です。
  値が00の場合、チェックは実行されず、チューニングは常に機能します。

0A-インストールされるインダクタンスの数を設定するセル。
 ・値07  デフォルト値は07です。
  05、06、または7にすることができます。
 
0B-インダクタンス線のピッチが直線の場合、セルに01を入力する必要があります。
   ・値00  デフォルト値は00です。
   
0C-取り付けられる静電容量の数を設定するセル。
  ・値07  デフォルト値は07です。
  05、06、または7にすることができます。

0D-容量線のピッチが直線の場合、セルに01を入力する必要があります。
    ・値00  デフォルト値は00です。
   
0E-ダイオードのRF検出器の非直線性のソフトウェア補正を有効にします。
    ・値01  デフォルト値は01(有効)です。 
  回路にハードウェア修正がある場合は無効になります。

OF-逆インダクタンス制御。
    ・値00  デフォルト値は00(無効)です。
  インダクタンスの切り替えに常開接点のリレーを使用する場合はONする必要があります。
 
10- アドレス10からは、実装されているインダクタンスの値が表示されます。
  インダクタンス1個あたり2つのセルを使います。
  最小のインダクタンスから順に値が使用されます。
    インダクタンスはナノ単位で表記されます。
    たとえば、4uHは4,000nHです。セルに4000を書き込みます。
  110nHは、0110を書き込みます。
    取り付けられたインダクタンス毎に2つずつ、合計14個のセルが使用されます。

20- アドレス20からは実装されているコンデンサの値です。
     すべての値はピコファラド単位です。
  たとえば、82pFは082と表記されます。1.2nFは1200と表記されます。
  取り付けられた各コンデンサ毎に2つずつ、合計14個のセルが使用されます。

30-最大9999 ワットのセル設置電力測定機能。
  適切に動作させるには、適切な回転比のタンデムマッチを使用する必要があります。
  値01でアクティブ化されます。デフォルトでは無効になっており、値0です。

31-測定されたパワーの上限に依存するタンデムマッチの巻数比を設定するためのセル。
  デフォルト値は10で、これは測定された最大電力約150ワットに相当します。
  最大1500ワットの電力を測定できるようにするには、高電力表示モードと1対32の比率の
  タンデムマッチを使用する必要があります。
  電力が40ワットを超えない場合は、タンデムマッチを使用するのが合理的です。
  回転比率は1:5で、最パワー1〜5でより効果的に動作します。
  他の電力値の場合、最大電力時のマイクロプロセッサの測定入力の電圧が
  PIC16F1938 プロセッサの場合は、4.096ボルト、PIC18F2520の場合は5.0ボルトを
  超えないように巻数比を計算する必要があります。

32-グロー表示またはバックライトの時間を秒単位で設定するためのセル。
  いずれかのボタンを押している間、およびRF電力が入力されると、
  バックライトが点灯します。
  デフォルトでは無効になっており、値は0です。
  この機能は、消費電力が重要な QRP セットアップで使用できます。
   
33-追加の表示モードを設定するためのセル、値0ーLおよびCのみを表示します。
  値01-入力電力が正しいSWR測定に十分な場合に、アンテナに供給される電力と送信機と
  送信機の効率を示します。
  デフォルトでは有効、値は01です。
   警告!!!デバイスはそれ自体の効率を考慮していません。
   
34-フィーダの電力損失率を設定するためのセル
  最初の数値ーデシベルの整数部分、2番目の数値ーデシベルの10の位の部分。
  デフォルトの値1.2(セルには12が書き込まれます)。この値は、アンテナに供給される
  電力をカウントするために使用されます。
  損失値は、使用するケーブルの参照データで確認するか、測定することができます。
  正確な値は自分自身で決めてください。
  フィーダ損失を考慮する必要がない場合は、セルに値00を書き込む必要があります。
  そうすれば、計算はミスマッチ損失のみに対応します。

35- タイマー表示とともにすべてのリレーを無効にする新機能(V3.2)
  01 でリレーオフ機能を有効にします。

以上

目次

◆アマチュア無線(JK1VCK)

・UV-K5(8)をパソコンからコントロールしてみた
・NanoVNA H4 のバージョンアップをしてみた
・ESP32 AD9850 LCD タッチ操作によるアンテナアナライザーの自作
・ATU-100 スマホで遠隔操作 アンテナ直下型としてみた
・ATU-100のソースファイルをMPLAB X IDE 6.15でコンパイルする手順
・ATU-100 へ MPLAB IPE v6.15 で HEXファイル の 書き込み手順
・ATU-100 オートアンテナチューナー EEPROMのアドレスと値の意味
・園芸ポール使用 マルチバンド デルタループアンテナの自作(その2)
・格安 園芸ポール使用 マルチバンド デルタループアンテナの自作
・28MHz ヘリカルアンテナ を自作してみた
・コの字形 7MHz ダイポールアンテナ を 自作 してみた
・アマチュア無線局 CQゾーン 世界のコールサイン グリッドロケーター 
・IC-705 FT8 運用について
・IC-705 FT8 WSJT-X 2.6.1 サウンド入力エラーについて
・デユープレクサー 「MX-62M」を使ってみた
・144/430MHz帯デュアルバンド GPアンテナ(HYS-FB22UV)を使ってみた
・㊗アマチュア無線局(JK1VCK)開局 (申請記録)
・ATU-100 オートアンテナチューナーのキットを作ってみた
・ATU-100-0A のバージョンアップとQRP仕様に変更してみた
・リレーを使った四回路のアンテナ切替器を作ってみた
・NanoVNA H4 でアンテナのSWRを測定してみた


何か足りないものはありませんか?
Amazon.co.jpへ

◆前回ポールがしなりすぎてうまくなかったので、ポールの下部に太い園芸ポールを
 使って作り直してみました。今回はほどほどのしなりで良好でした。
 デルタループアンテナOK

 デルタループアンテナOK2
 下記サイトを参考に敷地の制約から全長13mの物としました。
 *マルチバンドデルタループ - jh3mhi ページ

1.ポールの材料として100均の園芸用ポール11mmΦ/16mmΦと
  ホームセンターの園芸用ポール20mmΦを使い、繋いで製作しました。
 ①材料
  1.園芸ポール  11mm x 1.8m 2本(100均)
  2.園芸ポール  16mm x 2.2m 2本(100均)
  3.園芸ポール  20mm x 2.4m 1本(半分にして使用)(ホームセンター)
 ②接続方法
  1.前回の1段目と2段目をそのまま使用
  2.20mmΦ2.4mのポールを半分にカット
 ポール20-1
  
  3.前回の1段目16mmΦを20mmΦに差し込みます。
   ちょっと太さが小さかったのでテープを二重巻きにして太さを調整して
   約20cm差し込みました。
 ポール20-2

  4.抜け防止のために4か所の接続部にタッピングビスで止めました。
 ポール接続部抜け防止ビス
  
2.デールタループの直下で共振周波数を測定しました。
 ①23.880MHzで共振している様子
 23_880共振
 
 ②理想の周波数23.080MHzでの様子
  もう少し線を追加して共振周波数を下げれば良いのですが
  現状ATU-100を使うのでこのままにしています。
 28_080でのSWR

3.感想としてATU-100を使ってマルチバンド運用できるようになりました。
 ①3.5MHz帯と50MHz帯は、ちょっと無理みたいでした。
 ②7,10,14,18,21,24,28MHz帯は運用出来ました。
 ➂ATU-100をアンテナ直下(50cm)にしても、6mのケーブルで部屋に引き込んで
  使用してもあんまり変わりは感じられませんでした。
  今は、部屋に置いて運用中です。
以上

◆ポールとして、釣り竿も検討したのですが、出来るだけ予算をかけずに園芸ポールを使い
 マルチバンドに対応したデルタループアンテナを作ってみました。
 
 デルタループアンテナNG
 下記サイトを参考に敷地の制約から全長13mの物としました。
 *マルチバンドデルタループ - jh3mhi ページ

1.ポールの材料を探していて、何となく行けそうと思い100均の園芸用ポールと
  ホームセンターのプラポールを繋いで、試してみました。
 ①材料
  1.園芸ポール  16mmΦ x 2.2m 2本
  2.園芸ポール  11mmΦ x 1.8m 2本
  3.プラポール 5.5mmΦ x 2.4m 1本(半分にして使用)
  4.1.25sqのビニール電線13.5m

 ②ポールの接続方法
  1.写真のように16mmΦのポールの中心にドリルで穴を開けリーマで
   11mmΦまで拡張します。
 ポール16-1

 ◆穴が開いたら、約20cm差し込みます。
 ポール16-2

  2.同様に11mmのポールの中心に5.5mmΦのドリルで穴を開けます。
 ポール11-1

 ◆穴が開いたら、約20cm差し込みます。    
 ポール11-2
 
 以上で全長4.8mのポールが完成しました。
 ◆実際にビニール電線繋いで立ててみましたら下記写真のように先端がしなりすぎて
 思った通り出来ずに失敗に終わりました。
 デルタループアンテナNG

 でも、ATU-100を使いある程度各バンドでSWRが下がりました。
 試した結果、
初めて18MHz帯のFT8で交信出来ました。
 T2C_18M_2023-10-23 164553

以上 続く

◆格安にて28M帯のヘリカルアンテナを作りました。
 28M-ヘリカルアンテナ

1.材料は、100均ダイソーの竹製釣竿2本(2mx2)にビニール電線(2.5mx2)を巻き付けて
 28Mに同調するようにしました。
 ①竹製釣竿2本(約1mを2段して約2m)を2組
 100均竹釣り竿

 ②中央部は塩ビ管VP13のT型接手に5cm位のVP13のパイプを温めて竹竿を押し込みました。
 28M接続部

2.バランは、3線式の強制バランやフロート・バラン(ソーターバラン)が
 有るようですが今回は3線式の強制バランを作りました。
 下記を参考に作ってみました。

 ①コアに巻いた状態
 強制バラン-1
  
 ②出来た強制バランに50Ω(100Ωx2並列)のダミーを付けてのSWR特性
  50Mまでは使えそうです。
 強制バランのSWR特性

 ➂100均のケースに組み込みました。
 強制バラン-2

3.最終的なSWR特性
 28M-SWR

4.このアンテナでFT8 28.074MHz 10Wにて海外とも結構QSO出来ました。
 下記はインドネシアとの交信記録です。
 インドネシア

以上

◆免許が下りたので7MHzのダイポールアンテナを自作しました。
 敷地の関係で、20m直線で敷設出来ないので家を取り巻くように
 コの字形に敷設しました。
 7MDP-2

1.バランは、3線式の強制バランやフロート・バラン(ソーターバラン)が
 有るようですが手始めに簡単なフロートバランとし、手持ちのコアに巻いてみました。
 下記を参考に作ってみました。

2.エレメントは、近くのホームセンターで手に入る1.25SQの2線の並行ビニール電線(10m)を
 割いて10m2本としました。先端にはVP13の塩ビ接手を使いました。
 7MDP-1

3.エレメント長を調整して、下記のようなSWRとなりました。
 ①6M~30Mまでの測定(7M帯と21M帯で使えそうです。)
 7M-21M-SWR
 ②7M帯
 7M-SWR
 ➂21M帯
 21M-SWR
4.このアンテナでFT8 7.041MHz 10Wにて1日目で国内0~9の全エリアでQSO出来ました。
 その後、FT8 7.074MHz 10Wアメリカなど海外ともQSO出来ました。
 フルサイズのダイポールは、変形でもそれなりに飛ぶようです。

以上

◆CQゾーン
  CQゾーン

◆世界のコールサイン
  世界のコールサイン

◆ グリッド・ロケーターとは (下図は←より抜粋:JARLより)

  フィールド区分
  
  スクエア区分(日本周辺)

◆日本のエリア番号
  日本のエリア番号


  

◆IC-705でFT8を運用してみたので設定等備忘録に残して置きます。
 IC-705=FT8
◆FT8の周波数表
 FT8周波数

1.まずIC-705の設定
 ①「MENU」->➋->「PRESET」をクリック
 FT8設定-1
 ②2.FT8をクリック
 FT8設定-2
 ➂プリセットメモリを読み込み-->「はい」をクリック
 FT8設定-3
 ④FT8モードになります。
  FT8を解除するにはもう一度クリックする。
  又は「通常」を選択クリックする。
 FT8設定-4
2.IC-705とパソコンをUSB Micro-Bケーブルで繋ぎます。
  すると自動的に、COMa,bの2つのポートが認識されました。
  (windows 11 x64 Pro 22H2)
  (私の場合は、COM6,7でした。デバイスマネージャーで確認)
 COM6-7

3.使ったソフトはWSJT-X v2.6.1です。
 下記からダウンロードしインストールします。

4.WSJT-Xを起動し、設定をします。以下設定画面
 ◆正しいかは、分かりませんが以下の設定でQSO出来ていますので
  今は良しとします。
  
 ①一般
 *自局コールサインと場所を記載
 設定1-一般

 ②無線機
  左下「CATをテスト」、「PTTテスト」が出来ます。
 設定2-無線機

 ➂オーディオ
 設定3-オーディオ

 ④Txマクロ
 設定4-Txマクロ

 ⑤レポート
 設定5-レポート

 ⑥周波数
 *FT8 7.041の国内用周波数に変更しました。
  適当なmodeをダブルクリックしFT8に変更し、周波数を変更しました。
 *変更ではなく追加する方法もあるみたいです。
 設定6-周波数

 ⑦色
 *自局コールを含むメッセージの色を替えました。
 設定7-色
 
 ⑧詳細
 設定8-詳細

5.QSOの様子
 ①メイン画面
 WSJT-Xv2_6_1画面

 ②QSOが終了すると下図ポップアップ画面が出ますので追記が有れば追記し
  OKをクリックします。すると自動的に、ログに記録されます。
 FT8-log-QSO
 
 ➂ログファイルを見てみます。
 ログファイル2023-09-20

◆最初、送信する時にサウンド入力エラーが発生して送信出来ませんでした。
 そのような場合は、下記ブログ内記事を参照してみて下さい。

以上


◆「SnippingTool」を使って画面を保存する時、ファイル形式をJPEGにすると
 下記のようなエラーが表示され0バイトのファイルができます。
 ファイル形式がPNGだと正常に保存されます。
 前は、問題なくJPEGで保存できていたのですが、最近この症状が出て困っています。
 snippingtool_NG

1.色々ネットで調べたのですが似たような症状の事例が見つかりませんでした。
2.SnippingToolをアンインストールし、再度インストールしましたが改善されませんでした。
3.試しにレジストリを修復してみましたら治りました。ああ良かった。
 ◆やった事。
 ①SnippingToolをアンインストール
 ②コマンドプロンプトを右クリックし、「管理者として実行」
 ➂コマンドプロンプト内で 「sfc /scannow」を実行
  (これは、壊れたレジストリを修復するコマンドです)
 ④SnippingToolを再インストール
 
 下記は、「sfc /scannow」実行の様子で「SnippingTool」を使ってJPEGで保存した画像です。
 snippingtool_OK

 ◆参考にしたサイト
以上

◆やっと「JK1VCK」の免許がおりてIC-705でWSJT-X 2.6.1を使いFT8を始めようと
 した所、「サウンド入力エラー」が発生して送信状態でフリーズしてしまいました。
 色々と悩んだ末、マイク、スピーカーのレベルを下げた所うまくいきました。
 
1.エラー画面
 サウンド入力エラー

2.サウンド設定画面
 ◆出力、入力共にボリュームが「90」位だったのを「16」に設定
 サウンド設定

◆追記 2023/09/23
 7MHzアンテナの同軸ケーブルを替えた所、SWRが悪くなったら再度入力エラーが
 発生し始めました。
 SWRを下げれば良いのですが、その前にIC-705とPCを繋いでいるUSBケーブルを
 交換してみましたらエラーが無くなりました。

◆追記 2023/09/24
 7MHzのアンテナ調整をして、SWRを下げたのですが、その後また入力エラーが発生。
 今は、オーディオレベルを入力、出力共に100にしたらエラーが無くなりました。
 もう何が何だか分からなくなって来ました。根本的な解決方法が分かりません。

◆追記 2023/09/24
 再度入力エラーが発生。(送信制御エラー)
 ネットで色々調べてみるとIC-705で同様なエラーで悩んでおられる様子ですね。
 私だけでは、無いみたいですね。
 結論から言うと回り込みなどによるIC-705の不具合の発生が濃厚のように思われます。
 下記サイトでもそのように結論づけされているようでした。
 IC−705の回り込み対策について
 FT8での回り込み対策
 デジタルモード(FT8)での回り込み対策について

 *今日やった事
 ①USBケーブルにパッチンコアの取り付け
 ②アンテナ線のルート変更
 とりあえず上記に2点で7M,28Mで今日の所は、エラーが無くなりました。
 今までやった事は、気まぐれでしかなかったのでしょうか。

以上

◆ヤフオクで「MX-62M」を入手し使ってみました。
 IC-705でリレー式のアンテナ切替器でHF帯とV/UHF帯を切替えていましたが
 430M帯で切替器を通すとSWRが3以上に悪くなるのが分かり直接接続していました。
 それでデユープレクサーとかアンテナ切替器を探していました。
 今回手に入れたのは、第一電波工業製 ダイヤモンド デュープレクサー MX-62M
 MX-62M
 
 MX-62M-L
 
1.仕様
 ●外形寸法:W86×H25×D64mm
 ●重量:360g
 ●通過帯域:LPF:1.6〜56MHz/HPF:76〜470MHz
 (但し76〜120MHzは受信のみ)
 ●通過電力:600W(PEP)
 ●挿入損失:LPF:0.2dB以下/140〜470MHz:0.3dB以下
 ●端子間アイソレーション:50dB以上
 ●特性インピーダンス:50Ω
 ●SWR:1.2以下
 ●同軸ケーブル:5D-2VS(35cm)

2.SWR測定
 ①430Mでの測定(下記アンテナにて)
 ・144/430MHz帯デュアルバンド GPアンテナ(HYS-FB22UV)を入手
 ●直結時
 430M-D

 ●挿入後(SWRが悪くなりました)
 430M-MX
  
 ②7Mでの測定(ダイポールアンテナ)
 ●直結時
 7M-MX

 ●挿入後(どういうわけか少しだけSWRが良くなりました。) 
 7M-D 

3.MX-62M 取説
 MX-62M-UM


以上

◆ヤフオクで標記アンテナの未使用品が出ていたので落札しました。
 アマゾンの半額程度でした。
 設置状況を記録として残して置きます。

1.設置写真
 HYS-FB22UV
2.内容品
 tc-fb22uv
 tc-fb22uv_um

3.ケーブルは、アマゾンで購入(5D-FB 10m)
 5D-FB

4.仕様は下記の通り
 周波数:144/430MHz
 全長      :220CM(アンテナのみ)
 ラジアル長:約52CM 
 重量      :約1.2kg 
 利得      :5.5dBi(144MHz)8.5dBi(430MHz)
 接栓      :M-J 
 耐入力    :200W 
 VSWR      :1.5以下 
 空中線型式:単一型 
 インピーダンス    :50Ω 
 適合マスト径(mm):φ30〜φ62

5.NanoVNAによるSWR測定
 ①144MHz
 swr_145

 ②433MHz(440MHzに同調しているみたい)
 swr_435
 
6.IC-705でのSWR測定
 ①GP+10mの5D-FBケーブル時(SWRが悪い)
 *SWRが悪いので下げるために色々やってみましたが最終的に元に戻しました。
 1.現在ラジアルが52cm3本だったのを17cm3本を追加しましたが変化なし
 2.ネットでアンテナ本体とポールを絶縁すると良いような事を見ましたのでやってみましたが
  変化なし
 3.アンテナ高を1m下げてみました所若干下がる所もありましたが、感度が悪くなったので元に
  戻しました。
 4.給電点近くの同軸にパッチンコアを2個付けてみましたけど変化なし

 GP_SWR_NG
 
 ②上記SWRが悪いので705側に50cmの変換ケーブルを繋いだ所
  SWRが下がりました。これで良しとしました。
 1.変換ケーブル
 50cmケーブル追加

 2.SWR試験時
 GP_SWR_OK
 3.10W出力時のSWR
 GP_10W

以上

◆アマチュア無線局の開局申請から、免許状が届くまで記録です。
 アマチュア無線免許状JK1VCK


 ◆開局の申請は、電波利用 電子申請・届出システム Liteを使って行いました。
 以下、申請から免許状が届くまでの流れです。
 申請履歴一覧

2023/08/11(金) 電波利用 電子申請・届け出システムLiteのアカウントID申請
2023/08/17(木) 郵送にてユーザID通知書が到着
 ユーザーID通知書

2023/08/17(木) 無線局開設申請事前チェック依頼
2023/08/17(木) 無線局開設申請事前チェック依頼完了メール着
2023/08/17(木) 無線局開設申請 提出
2023/08/17(木) 無線局開設申請 取下げ願い  (FT8も同時にと思い)
       このおかげで1週間無駄な時間となりました。
2023/08/17(木) 無線局開設申請 備考欄のPC接続の記載して提出
2023/08/17(木) 無線局開設申請 申請・届出 到達のお知らせメール着
2023/08/23(水) 無線局開設申請 申請・届出 補正依頼のお知らせメール着
********************************************************************************
     不備理由
     ご提出いただきました開局申請の審査中に、以下の事項を確認したため、
     大変恐縮ですが申請をお戻しさせていただきました。
     修正の上、再度のお手続きをお願いいたします。
     
     開局と同時にPCを接続する場合は、送信機の技適が外れる扱いとなるため、
     保証機関による保証が必要となります。
     一方で免許を受けていただいた後にPCを接続する場合は届出となりますので、
     保証は不要となります。
     
     開局と同時にPCを接続するのであれば、保証を受けられた後、保証書を添付
     の上電子申請を行っていただきますようお願いいたします。
     
     保証不要のお手続きをご希望の場合は、開局時はPC接続を行わない形で
     (備考欄のPC接続の記載は削除して)申請をしていただき、免許後に変更の
     届出をしていただきますようお願いいたします。
*********************************************************************************
2023/08/23(水) 無線局開設申請 備考欄のPC接続の記載は削除して、「補正」申請
2023/08/23(水) 無線局開設申請 申請・届出 到達のお知らせ
2023/08/31(木) 申請手数料 電子納付手続のお知らせメール着
2023/08/31(木) 手数料2900円を楽天銀行より電子納付完了
2023/09/01(金) 無線局開設再申請 Lite上審査終了
2023/09/04(月) 無線局開設再申請 申請 審査終了のお知らせメール着
2023/09/05(火) 免許状受け取る●「送料受取人払いによる受取」を選択しました。
 アマチュア無線免許状送付
 アマチュア無線家のみなさん。これからよろしくお願いします

2023/09/06(水) 無線局 変更申請(届出) 備考欄のPC接続を記載して提出
2023/09/06(水) 無線局 変更申請(届出) 到達
2023/09/08(金) 無線局 変更申請(届出) 受付処理中9/15現在も受付処理中)
2023/09/19(金) 無線局 変更申請(届出) 審査中
2023/09/22(金) 無線局 変更申請(届出) 審査終了
 変更届⑤_審査終了2023-09-22
◆9/25法改正になりますのでどういう連絡が来るか楽しみです。(9/23現在)
2023/09/25(月)  無線局 変更申請(届出) 審査終了のお知らせメール着
◆9/26 FT8運用のための変更申請について
 9/6届出し、9/22に審査終了となりました。
 しかし9/25に法改正で必要なくなったので、9/26 関東総合通信局
 電子申請関連(アマチュア局)担当に電話して確認しました。
 免許状としては、備考欄にPCなんたらの記載はなく左下の印刷日が変わるだけという事でした。
 よって返信用封筒は、送らず何にもしないことになりました。

2023/09/11(月)郵送にて電波利用料関係書類が到着
2023/09/11(月)利用量1500円を楽天銀行より電子納付完了
 電波利用料関係省

以上

◆先日ATU-100-0Aの完成品を購入して色々遊んでみました。
 その際、開発環境などが構築できたため今度はキットを購入し
 組み上げてみました。
 ソースレベルでの開発も出来そうなので弄りがいが有りそうです。
 atu-100-43

1.キット内容
 ①箱の中身
 atu-100-11
 
 ②部品別写真
 atu-100-12
 ➂部品リスト
 atu-100-13
 ④回路図
 ATU-100-14回路図
2.仮組み立て&試験
 ①まず電源関連の部品(ダイオード、三端子レギュレータ、電解コンデンサ)を
  半田付けし動くことを確認しました。
 ②起動時OLED画面(Ver 3.2)
 atu-100-22
 ➂起動後のOLED画面
 atu-100-23
 
 ④pickit 3での開発準備
 atu-100-24
 ⑤pickit 3でのソースコードのコンパイル&書き込み
 atu-100-25
 ⑥ソースコードを編集しバージョンを(Ver3.2N)としてみた
  ちゃんとコンパイル及び書き込みが出来ていた。
 ◆コンパイル及びHEXファイルの書き込み手順等は、下記ブログ内記事を
  参照して下さい。

 ・ATU-100のソースファイルをMPLAB X IDE 6.15でコンパイルする手順
 ・ATU-100 へ MPLAB IPE v6.15 で HEXファイル の 書き込み手順
 ・ATU-100 オートアンテナチューナー EEPROMのアドレスと値の意味


 atu-100-26
 
3.組み立て
 ①組み立て前の基板裏面
 atu-100-31

 ②スイッチ取り出し等(B2,B3,A6,A7)のランドの拡大
 atu-100-32
 
 ➂リレーの取り付け
 (先人のアドバイスでコイルを付ける前にリレーを付けた方が良いとの事)
 atu-100-33
 
 ④コイルの作成
  1.コイルの巻き回数等
 atu-100-34-1
 
  2.コイル作成後
 atu-100-34-2
 ⑤コイルの取り付け後の動作試験
 atu-100-35
 
4.ケースへの組み込み
 ◆ケースは、100均の透明アクリルケースを使いました。
  押し釦SW(TUNE,AUTO,BYPS)と電源SWを付けました。
 ①組み込み後の起動画面
 atu-100-41
 ②上面写真
 atu-100-42
 ➂前面写真(テプラで印刷してみました)
 atu-100-43
 ④後面写真
 atu-100-44
 
以上
 

◆ATU-100-0A なるオートアンテナチューナーを入手しました。
 モービルでの運用も視野に入れてバッテリーが付いていた方良さそうなのでこれを選びました。
 ただ、商品説明で気になる事が有りました。
 ①使用するアンテナ帯域を選択し、周波数変調モードで20〜30Wの電力を使用し、
  無線PTTを押して、ATUアンテナチューナーのPWRとSWRを観察します。 
 ②チューニングを開始するために必要な最小電力:5W

◆実物が届き、確認したら
 ①電源を入れてバージョンを見ましたらV3.1を表示しました。
  *最新バージョンを確認したらV3.2と分かりました。
  *上が元の状態、下がバージョンアップした後の起動画面。
 ATU-100_Ver_UP

 ②IC-705に繋いでチューニングを開始したのですが、案の定動作しませんでした。
 ➂商品の説明では、1800mAhとなっていましたが、中を開けてみたら1500mAhでした。 
 atu-100_内部

◆上記に理由で、バージョンアップと低電力でもチューニング出来るように
 ファームウェアを書き換える事としました。
 
1.まず蓋を開けて中を確認
 ①マイコンの型番(PIC16F1938)を確認
 atu-100_PIC16F1938

 ②PICKit3により書き込みする為にMCLRを追加配線
 ◆ネットでみた基板の多くは、ちゃんとMCLR端子が出ているのに、今回入手した
  基板には出ていませんでした。
  なので、1番ピンに線を半田付けしてMCLR取り出しました。
  それとOLED用の4ピンのコネクタを合わせてPICKit3に合う5ピンのアダプタを
  作りました。
  ◆2023/11/10(金)再度分解して確認しましたらちゃんと有りました。
   下記⑤に追記しました。


 スクリーンショット 2023-08-29 170644

 atu-100_MCLR-1
 atu-100-pickit3

 ➂PIC16F1938のピン配置
 PIC16F1938ピン配置

 ④PICKit3の使い方は、下記を参照


 ⑤2023/11/10(金)追記
  1.AUTOスイッチ追加の為、再度分解しました。
 atu-100-分解

 2.先日は、MCLRが配線されていないと判断しましたが、分解後
  裏面をみましたら、MCLRがありました。基板もキットのものと
  同じ様でした。
  atu-100-MCLR

 3.AUTO/BYPS用SW追加の為の配線を半田付けしました。
 atu-100-AUTO-SW

 4.前面は、基板構成の為、後面にAUTO/BYPS用SWを付けました。
 atu-100-AUTO-SW2

2.V3.2のHEXファイルを下記より入手

 ①ダウローとしたファイルを解凍します。
 ②その中の「N7DDC-ATU-100-mini-and-extended-boards-master\ATU_100_EXT_board\
  FirmWare_PIC16F1938\atu_100_fw_EXT_32.zip」を解凍します。
 ➂「atu_100_fw_EXT_32.hex」がV3.2のHEXファイルとなります。

3.V3.2のHEXファイルをPICKit3にて書き込みします。
 ◆2023/11/11追記
 ◆下記ブログ内別記事として詳しく説明しましたので参照して下さい。
 
4.動作確認
 ①PICKit3を外し、OLEDに繋ぎ変え電源をいれます。
 
 ②めでたくV3.2になっていればOKですが無表示でした。
  ちょっと壊してしまったかと焦りました。
 
5.不良となった原因調査
 ◆気を取り直して調査しました。
 ①EEPROMの確認した所OLEDのI2Cアドレス違いました。(4E->78)
 ② 他変更後(6項参照)再度プログラミングしました。
 ➂めでたくV3.2になりました。

6.QRPモードにするためのEEPROの変更箇所とI2Cアドレス関連変更
 QRPmode

7ATU-100のEEPROM内容について詳しくは、下記ブログ内記事を参照して下さい。
 ・ATU-100 オートアンテナチューナー EEPROMのアドレスと値の意味

以上
 
 

◆アマチュア無線を始めるらあたって複数バンドで運用できるように
 アンテナ切替器を作りました。
 アンテナ切替器-3

 先々のことと、屋外設置を視野に入れリモートコントロール出来るよう
 リレーを使った物にしました。
 全部自作するのは、大変なのでAliExpressで見つけたキットを使いました。
 下記より購入

1.内容物とコネクタの取り付け及び半田付け
 ①内容物
 アンテナ切替器-組立前
 
 ②コネクタを基板に取り付け
 アンテナ切替器-組立前-1

 ➂コネクタの半田付け
 ◆この後コネクタのセンター部を基板に半田付けしました。
 アンテナ切替器-組立前-2
 
2.動作試験とケースに入れ
 ①電源の12Vを入れ動作試験
 アンテナ切替器-1

 ②ケースに入れた状態
  ケースは、100均のプラスチックの透明ケースにしました。
 アンテナ切替器-2
 
 ➂アンテナを繋いでの試験
 アンテナ切替器-3

以上 手元スイッチでアンテナを切り替える事が出来ました。

◆最近のアマチュア無線では、FT8やD-STARなどのデジタル通信が
 流行っていることを聞き、40年ぶりにアマチュア無線に興味を持ち初めました。
 今、再開局に向け免許申請及びアンテナ設置など準備中です。
 その中で、アンテナの調整に役に立つNanoVNAを入手しました。
◆このNanoVNAを使いアンテナのSWRを測定してみました。
 詳しい取説は、下記を参照して下さい。

1.開封
 ①開封時の内容物
  ・本体(LiPoバッテリ1950mAh内蔵)
  ・校正アダプタ SMAオスOpen 金色(中のピンが無いもの)
  ・校正アダプタ SMAオスShort 金色
  ・校正アダプタ SMAオスLoad  銀色(テスターで測定50Ω)
  ・SMA メスメスアダプタ
  ・SMAケーブル15cm 2本
  ・USB-Cケーブル
  ・USB-C Type-Aケーブル
  ・ストラップ(簡易スタイラス付き)
  ・スタイラスペン
  ・クイックリファレンス(英文)
 nanovnah4-0
 
 ②最初の起動画面
 nanovnah4-1

1.まずはキャリプレートが必要
 ①
 ②
 ➂
 ④
 
2.アンテナアナライザーとして設定
 ①
 ②
 ➂
 ④
 
3.SWR測定
 ①市販144/430Mのアンテナ
 144-430Mアンテナ
 swr-144-430M

 ②自作7Mのアンテナ
 バラン-7M-DP
 
 swr-7M


 きょうは、ここまで
 


◆アマゾンで販売している格安学習リモコンを購入して実際使ってみました。
 英語版の取説が付いてきましたが、良く分からなかったので
 実際学習させてみたので備忘録として残して置きます。
 学習リモコン
  
1.ラーニング リモコンを設定する手順。
 学習出来る釦は6個です。 

 ①学習モードにするには、LEDが点滅するまで「POWER」と「CH^」を同時に長押しする

 ②学習させるキーを押すとLEDが点灯する

 ➂登録するリモコンの釦をLEDが遅い点滅から早い点滅するまで押し続ける

 ④LEDが滅灯するまで「POWER」と「CH^」を同時に押す

 ⑤他のボタンを学習するには、すべての学習が終了するまでステップ①から④を繰り返します。
  
以上 

◆先人のサイトよりweb radioをダウンロードしてM5Stavk Basicに
 インストールしてみました。
 M5Stack_Basic_WebRadio

 詳しくは、下記サイトを参照して下さい。

 音の出力は、PCM5102 audio decoding moduleを使いました。
 下記で購入
 
以上

◆先般にATTiny85を使ってワンボタンのNECフォーマットの赤外線リモコンを
 作りました。
 下記ブログ内記事参照

 今回は、釦数を追加して4釦構成にして、物は壊れた扇風機のリモコンを
 再利用してみました。
 元のマイコンチップを取り去り、ATTiny85で制御しました。
 attiny85_ir-4tx-0

1.まず、登録するリモコンコードを解析します。
 解析には、以前作っていたリモコン解読器を使いました。
 結果、
 ①照明 NECフォーマットの「0x594220DF」(先般解読済)
 ②扇風機電源 symphonyフォーマット「0xC5A」
 ➂扇風機風量 symphonyフォーマット「0xC20」
 ④扇風機首振 symphonyフォーマット「0xC46」
 ◆扇風機のフォーマットは、下記の解読器でシリアル出力された
  生のデータからタイミング幅を解析しました。
  実物は、同じデータを6回送っていますが、スケッチでは2回
  しか送っていませんが、ちゃんと認識しています。
  下記は、見やすいように改行を挿入しています。
 扇風機リモコンSKJ-K310WFR
  
Maker : SYMPHONY
Code : 0xC5A
Bits : 12
ON/OFF Data : rawData[143] = {
	1326, 374, 1298, 404, 434, 1244, 436, 1244, 476, 1202, 1338, 370, 430, 1244, 1292, 400, 1292, 410, 438, 1242, 1382, 312, 398, 8132,
	1322, 396, 1258, 438, 446, 1210, 390, 1290, 436, 1254, 1234, 456, 468, 1206, 1288, 408, 1326, 370, 390, 1290, 1326, 374, 428, 8084,
	1382, 324, 1290, 404, 388, 1286, 440, 1242, 434, 1246, 1292, 404, 468, 1204, 1298, 406, 1242, 460, 384, 1286, 1292, 408, 470, 8050,
	1246, 448, 1248, 452, 438, 1238, 394, 1288, 480, 1198, 1244, 460, 434, 1234, 1294, 408, 1286, 410, 438, 1238, 1248, 450, 440, 8080,
	1294, 408, 1332, 360, 394, 1282, 526, 1156, 394, 1286, 1246, 456, 438, 1234, 1298, 400, 1290, 408, 442, 1234, 1322, 378, 470, 8052,
	1374, 324, 1324, 366, 440, 1248, 434, 1236, 394, 1286, 1326, 374, 428, 1248, 1244, 448, 1248, 456, 438, 1234, 1292, 404, 446, }
Data : 0xC5A

 リモコン解読器については、下記ブログ内記事を参照して下さい。

2.4つのリモコンコードが分かったのでATTiny85を使って改造しました。
 ①接続図
 attiny85_ir_4tx接続図

 ②組込前のテスト時の状態
 attiny85_ir-4tx-1
 
 ➂改造過程の状態
 attiny85_ir-4tx-20
 ④改造後のケースに入れた状態
 attiny85_ir-4tx-3

 ⑤完成後の状態
 attiny85_ir-4tx-0
 
3.続いてスケッチを作ります。
 下記先人の記事を参考にしながら作りました。(先人に感謝です)
 ①照明と扇風機の4種類のリモコンコードを送信する。
 ②抵抗分圧とA/Dコンバータを使って、押されているキーを識別する。
 ➂ピンチェンジ割込みでパワーダウンスリープから復帰する。
 ④Arduinoのライブラリを一切リンクしない。
 ⑤アイドルスリープも使ってみる。

 下記にスケッチを示します。保障無しの参考にして下さい。
 (保障無しの自己責任で)  ATTiny85_IR_4TX.ino
 
以上 満足のいくリモコンが完成しました。

◆照明のリモコンが時々不具合で使えない時が有るのでバックアップとして
 ATTiny85でワンボタンのリモコンを作ってみました。
 attiny85_ir-1

1.まず、照明のリモコンコードを解析します。
 解析には、以前作っていたリモコン解読器を使いました。
 結果、NECフォーマットの「0x594220DF」が判明しました。(↑写真)
 リモコン解読器については、下記ブログ内記事を参照して下さい。

2.照明のリモコンコードが分かったので送信部をATTiny85で作ります。
 ①接続図
 attiny85_ir_tx接続図

3.続いてスケッチを作ります。
 ◆ATTiny85の書き込みなどについては、下記ブログ内を参照して下さい。
 ◆Arduino 目次

 下記先人の記事を参考にしながら作りました。(先人に感謝です)
 ・赤外線リモコン(NECフォーマット)

 ◆スケッチの概要
 ①PWMで38kHzの赤外線リモコン用波形を作ります。
  ・赤外線LEDを38kHzで点灯させるピン(PB1:6番ピン)
  ・確認用LEDのピン(PB4:3番ピン)
 ②NECフォーマットで「0x594220DF」のコードを送信します。
 ➂通常は、スリープしていて釦を押した時だけ起動し送信後またスリープします。
  ・wakeUpPin(PB2:7番ピン)
 ④コンパイル時のクロック設定は「Clock Souce "1M internal"」
 ⑤FUSEビットは、出荷時設定とする。これでないと38kHzがうまく出ないかも!!
  「出荷時のFUSE内容(E:FF, H:DF, L:62)CLKDIV8は有効」

 下記にスケッチを示します。保障無しの参考程度にして下さい。
 ◆ATTiny85_IR_TX.ino
//ATTiny85_IR_TX.ino V20230802 by yh
//http://gijin77.blog.jp/archives/37720136.html
#include <Arduino.h>
#include <avr/wdt.h> // wdt_disable()を使うため
#include <avr/sleep.h>

#define OUTPUT_PIN  (_BV(4) | _BV(1)) // 4:インジケータ、1:赤外線LED (PWM)

// 外部割り込みを受け取るピン 
const uint8_t wakeUpPin = 2; //リモコン用 

// 赤外線LEDを38kHzで点灯させる(1番ピン)
//コンパイル時の設定
//Clock Souce "1M internal"
//FUSEビット出荷時のFUSE内容(E:FF, H:DF, L:62)CLKDIV8は有効。
void pwm_out(int microseconds) {
  PORTB |= _BV(4); // インジケータ点灯:digitalWrite(4, HIGH)と同じ
  // タイマー(TC0)を設定
  OCR0A = 25;  // TOP value :  38kHz --> 26.3us.
  OCR0B = 6;  //  H period  : 6.4us.
  TCCR0A = B00100011; // COM0A: 00, COM0B: 10, WGM01-00: 11
  TCCR0B = B00001001; // FOC:00, WGM02:1, CS02-01: 001 (system clock x1)
  TCNT0 = OCR0A;
  delayMicroseconds(microseconds); // 指定マイクロ秒だけ点灯
  // タイマー(TC0)をリセット
  TCCR0A = 0; // タイマー(TC0)リセット
  TCCR0B = 0; // タイマー(TC0)リセット
  PORTB &= ~_BV(4); // インジケータ消灯:digitalWrite(4, LOW)と同じ
}

void setup() {
// 初期化
  cli();             // noInterrupts();の中身(割り込み停止)
  DDRB = OUTPUT_PIN; // B010010000 pinMode(PB1, OUTPUT),pinMode(PB4, OUTPUT)
  PORTB = 0;         // B00000000 PB1もPB4もLOW
  ACSR |= 0x80;      // アナログコンパレータ禁止
  ADCSRA &= 0x7f;    // disable ADC
  wdt_disable();     // ウォッチドッグタイマを停止
  TIMSK = 0;         // disable Timer0/1 overflow interrupt.
  sei();             // Interrupts();の中身(割り込み許可)
  pinMode(wakeUpPin, INPUT_PULLUP); // 外部割り込みを受け取るピンを入力モードに設定
  delayMS(1000); // 1秒待つ処理)
  attachInterrupt(digitalPinToInterrupt(wakeUpPin), wakeUp, LOW); // 外部割り込みを有効にする
  set_sleep_mode(SLEEP_MODE_PWR_DOWN); // スリープモードをPWR_DOWNに設定
  sleep_enable(); // スリープモードを有効にする
  sleep_mode();   // スリープモードに入る
}

void loop(){ //何もしない
}

void wakeUp() {  // 外部割り込みがトリガーされたときの処理をここに書きます
  noInterrupts();
  send_nec(0x594220DF);
  interrupts();
  sleep_enable(); // スリープモードを有効にする
  sleep_mode();   // スリープモードに入る
}

void delayMS(uint16_t ms){
  for (int i = 0; i < ms; i++) { // msミリ秒待つ処理)
    delayMicroseconds(1000); // 1ミリ秒待つ
  }  
}

void send_nec(uint32_t irdata){ //NECフォーマット用 38kHz
 pwm_out(9000);                //  リーダーコード ON:9000us OFF:4500us
 delayMicroseconds(4500); 
 for(int i=0;i<32;i++) {
    if (irdata & 0x80000000){   //データ1   ON:560us OFF:1690us
      pwm_out(560);
      delayMicroseconds(1690);
    }else{                     //データ0   ON:560us OFF:565us
      pwm_out(560);
      delayMicroseconds(565);
    }
    irdata=irdata<<1;
 }
 pwm_out(560);                //ストップビット ON:560us 
 delayMicroseconds(9000*2);   // 赤外線OFF 18000us
}

4.オシロを繋いで波形を確認してみました。
 ①38kHzの赤外線リモコン用波形です。
  実際は25.8uS、38.7kHzが出ていました。
 attiny85_ir-12
 ②「0x594220DF」のコードがちゃんと出力されていました。
 attiny85_ir-10
 
5.スリープ時と動作時の電流測定
 ①スリープ時ですが、2mAレンジで値「0.00」なので
  このテスターでは、測定出来ないほどのuAオーダーでした。
 attiny85_ir-2
  
 ②ボタンを押した時、20mAレンジで値「5.39」なので5.39mAでした。
  今回は、赤外線確認用のLEDも同時に点灯させています。
  実運用時は、赤外線LEDのみなので2mA位となります。
 attiny85_ir-3

以上 NECフォーマットの赤外線リモコンが出来ました。

・マルチワイヤーストリッパー PAW-01 を入手し使ってみた

◆電子工作をやっていて色々な線の被覆を剥くのに今まで単線用の
 工具を使っていました。
 今回複線(フラットケーブル)でも剥ける工具を入手しましたので
 使ってみました。使用感は良好でした。

1.外観とパッケージ
 ①表
 マルチワイヤーストリッパー表
 ②裏
 マルチワイヤーストリッパー裏
 ➂保証書
 マルチワイヤーストリッパー保証書
 ④単線用YS2(参考)
 YS2


2.実際フラットケーブルで被覆を剥いた状態
 フラットケーブル例

◆これからこれを使うことで、作業が捗りそうです。
 私は、ヨドバシで購入しましたが、アマゾンの方が安いようです。


以上

◆ESP32でBME280,AHT10,HW390,CDSのセンサーを使って
 温度、湿度、気圧、明るさ、土壌、雨滴のデータをAmbientに送り、
 グラフ化してみました。

 IoTクラウドサービス「Ambient」など下記ブログ内記事も参照してみてください。
 
 w_m_esp32
 
1.センサー類
 ①BME-280 (屋内)温度、湿度、気圧 
 ②AHT-10  (屋外)温度、湿度
 ➂HW-390 (屋外)土壌、雨滴
 ④CDS   (屋外)明るさ
 ◆雨センサーについて詳しくは、下記ブログ内記事も参照して下さい。
  ・HW-390 静電容量式土壌センサーモジュールを使ってみた

2.接続図と写真
 ①接続図(現状)
 (屋内と屋外をLANケーブルで繋いでいます。ケーブル長はi2cの許容範囲の
  5mとしました。)
  実験データは、下記参照
  I2C回路の失敗例:配線長を伸ばしすぎるとどうなる?
 気象モニターV2接続図

 ①-2 現状の接続図の経緯と改良について
  1.初期の頃、屋外はCDSのみの単独でした。
  2.次に屋外に温湿度センサーとアナログ式(スリット式)土壌、雨滴センサー
   を使い、3.3Vのみの単一電源でした。
  3.最近土壌、雨滴センサーを静電容量式に替えた時、3.3Vの負荷が増え3V以下
   に電圧降下したので、別途5Vを追加しました。
  4.最初から作るのでしたら下図のように電源は5V一本で送り屋外にて三端子
   レギュレータで3.3Vを作り、CDSもLANケーブルの余りの端子に繋ぐと
   スッキリすると思います。
 気象モニターV3接続図

 ②ESP32とBME280
 w_m_esp32

 ➂雨滴センサー(少しでも早く雨滴が乾くよう斜めに取付けてあります。)
 雨滴センサー

 ④土壌センサー
 土壌センサー

 ⑤明るさセンサー
 明るさセンサー


3.スケッチ
 (保障無しの自己責任で)  weather_monitor_3F.ino

  ◆スケッチの中のssid,password,channelID,writekeyは、それぞれご自分の
  物に修正して下さい。
 your_ssid_pw

4.IoTクラウドサービス「Ambient」を使用するには下記でユーザー登録します。

5.グラフ表示の様子(6月の数日間)
 ambient気象データ6月

以上

↑このページのトップヘ