投稿

ESP32 開発備忘録

イメージ
 割り込みのテスト /************************************************  * ESP32 interrupt minimum test  * Wemos D1 mini ESP32 v1.0  * 2024/3/27  * *********************************************/ #define LED_PIN 2 // 1. タイマー宣言 hw_timer_t * timer = NULL ; hw_timer_t * timer1 = NULL ; volatile int interruptCounter = 0 ; int totalInterruptCounter = 0 ; portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED; // 6. タイマー呼び出しされるコールバック関数 void IRAM_ATTR onTimer () {   portENTER_CRITICAL_ISR ( & timerMux);   digitalWrite (LED_PIN, ! digitalRead (LED_PIN));   portEXIT_CRITICAL_ISR ( & timerMux); } // タイマー1呼び出しされるコールバック関数 void IRAM_ATTR onTimer1 () {   portENTER_CRITICAL_ISR ( & timerMux);   interruptCounter ++ ;   portEXIT_CRITICAL_ISR ( & timerMux); } void setup () {   Serial . begin ( 9600 );   pinMode (LED_PIN, OUTPUT);   // 2. タイマー作成。0番のタイマーを80クロックで1カウント、カウントアップ   timer = timerBegin ( 0 , 80 , true );   // 3. 割り込みの設定。第一引数は設定するタイマー、第二引数は割り込み関数   timerAttachInterrupt (timer,

Git 備忘録

イメージ
  .gitignoreが反映されない時(現在これをやってもダメ~) # ファイル名を指定してインデックスから削除 git rm --cached < ファイル名 > # または、すべてのファイルをインデックスから削除(ファイルが複数ある場合はこれでもOK) git rm -r --cached . # あらためて add git add . # コミット git commit -m "除外設定を変更"

LoRaモジュールのテスト

イメージ
 EBYTE E220-900T22D EBYTEの設定プログラムでハードウェア設定を確認 Model: E220-900T22S/D Version: 7259-11-2 FrequencyStr: 873.125MHz Parameter:  0xc0 0x00 0x08 0x00 0x00 0x60 0x00 0x17 0x03 0x00 0x00 E220のピン配置 E220接続 E220の電源は3.3V~5V。5Vの方が電源効率がよい。 E220 Get Config 設定読込 M0/M1をVCC(今回3.3V)に接続。 RX/TXの4.7Kの プルアップをつけるとスケッチのアップロード不可 SoftwareSerialでもe220ttlでもどちらでも動作 //******** Works both ways ************** // LoRa_E220 e220ttl(D7, D8); // Config without connect AUX and M0 M1 #include <SoftwareSerial.h> SoftwareSerial mySerial ( D7 , D8 ); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX LoRa_E220 e220ttl ( & mySerial ); // no AUX M0 M1 //LoRa_E220 e220ttl(&mySerial, D5, D7, D6); // AUX M0 M1 M0/M1/AUXを接続してテストもOK プルアップは3つ全て取り付けず #include <SoftwareSerial.h> SoftwareSerial mySerial ( D7 , D8 ); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX // LoRa_E220 e220ttl(&mySerial); // no AUX M0 M1 LoRa_E220 e220ttl ( & mySerial , D3 , D5 , D6 ); // AUX M0 M1 // -----------

8266EX(WeMOS D1 mini) でGPSモジュールのテスト

イメージ
GPS モジュール GY-NEO6MV2 TinyGPSPlusを使ったテストプログラム GPSモジュールとWemos D1をシリアルで繋ぎテスト。 ソースコード  (Wemos_GPS_Serial2) TinyGPSPlusライブラリー Google Mapに緯度、経度を貼り付けてみると、隣の家(5mくらい離れてる)を指します。このモジュールだとこのくらいの精度なのかな?時間はUTCなので時差9時間。 NMEA 0183フォーマット $GPRMC 単語例 説明 意味 085120.307 協定世界時(UTC)での時刻。日本標準時は協定世界時より9時間進んでいる。hhmmss.ss UTC時刻:08時51分20秒307 A ステータス。V = 警告、A = 有効 ステータス:有効 3541.1493 緯度。dddmm.mmmm 60分で1度なので、分数を60で割ると度数になります。Googleマップ等で用いられる ddd.dddd度表記は、(度数 + 分数/60) で得ることができます。 緯度:35度41.1493分 N 北緯か南緯か。N = 北緯、South = 南緯 北緯 13945.3994 経度。dddmm.mmmm 60分で1度なので、分数を60で割ると度数になります。Googleマップ等で用いられる ddd.dddd度表記は、(度数 + 分数/60) で得ることができます。 経度;139度45.3994分 E 東経か西経か。E = 東経、West = 西経 東経 000.0 地表における移動の速度。000.0~999.9[knot] 移動の速度:000.0[knot] 240.3 地表における移動の真方位。000.0~359.9度 移動の真方位:240.3度 181211 協定世界時(UTC)での日付。ddmmyy UTC日付:2011年12月18日 磁北と真北の間の角度の差。000.0~359.9度 磁北と真北の間の角度の差の方向。E = 東、W = 西 A モード, N = データなし, A = Autonomous(自律方式), D = Differential(干渉測位方式), E = Estimated(推定) モード:自律方式 *6A チェックサム チェックサム値:6A $GPGSV,2,1,08,16,44,274,30,17,,,25,

OLEDを接続したときの備忘録(8266EX:NodeMCU,Wemos D1 mini)

イメージ
Lolin NodeMCU V3 に OLEDを接続 サンプルプログラムを改造して動作確認。 (ソース) 1)i2Cのアドレス。 NodeMCUのi2CピンはD1/D2                               2)OLEDのi2Cアドレスは基板の裏を見て抵抗の位置が"0x78" プログラムでは"0x3C"を指定する。 oled . begin ( SSD1306_SWITCHCAPVCC, 0x 3C ) ; NodeMCUのPINアサインは以下のファイルに書いてある。 C:\Users\xxxx\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\variants\nodemcu\pins_arduino.h #ifndef Pins_Arduino_h #define Pins_Arduino_h #define PIN_WIRE_SDA (4) #define PIN_WIRE_SCL (5) static const uint8_t SDA = PIN_WIRE_SDA; static const uint8_t SCL = PIN_WIRE_SCL; #ifndef LED_BUILTIN #define LED_BUILTIN 2 #endif #define LED_BUILTIN_AUX 16 static const uint8_t D0   = 16; static const uint8_t D1   = 5; static const uint8_t D2   = 4; static const uint8_t D3   = 0; static const uint8_t D4   = 2; static const uint8_t D5   = 14; static const uint8_t D6   = 12; static const uint8_t D7   = 13; static const uint8_t D8   = 15; static const uint8_t D9   = 3; static const uint8_t D10  = 1; #include "../gene

Lolin NodeMCU v3 (EXP8266EX ESP-12E) のWebサーバ’iPhoneの通信) 備忘録

イメージ
①SSIDtpパスワードは8桁以上設定する必要あり。そうでないとデフォルトのSSID,パスワードなしとなる。   // make your password atleast 8 character long. It will work. const char ssid[] = "GPS-Tracker" ; const char pass[] = "123456789" ; IPAddress ip ( 192 , 168 , 10 , 1 ) ; IPAddress subnet ( 255 , 255 , 255 , 0 ) ;

Savage Bobber 修理

 胴枠(Formaer)作成 北零 1.6mm ベニア     400mm/min, 85%