Skocz do zawartości

Rozbudowa Interfejsu OBDII na M5Stack o Screen-Capture dla eNiro MY2020.


99teki

Pomocna odpowiedź

- za ciepło na budowę skomplikowanych projektów.

- Rozbudowa interfejsu OBDII do eNiro MY2020 bazującego na M5Stack-core o możliwość nagrywania ekranu LCD na kartę SD  podczas jazdy to w sam raz.

- Program Screen-Capture używałem już wcześniej dla zrzutów ekranu w samochodzie Gullietta na tym samym interfejsie BT.

- Program autora screen-capture można znależć pod tym linkiem https://github.com/electricidea/M5Stack-Screen-Capture.

- interfejs OBDII bazuje na Vgate iCAR Pro BT 4.0.

- poniżej kilka zrzutów z uruchomienia na stole.

M5Stack-Core.thumb.png.d8dbb90fa4a398588e8719dab20f0ac0.png  eNiro1.thumb.png.2cef66dfd3aaa7f74679c9ed1a6aaaf3.pngeNiro2.thumb.png.7f9e864894f4309b669a1803a0b35314.pngeniro3.thumb.png.a5c98ef1b23dea533b9fce35b5e1ad5b.pngeniro4.thumb.png.93cd301a8c76fffc7bcebe4283a3444e.pngeniro5.thumb.png.ecd49a1f52e449db5f720f15b9b0abbd.pngeNiro6.thumb.png.885bc162439bfad196902b7e3bc072b5.png

 

Edytowano przez 99teki
  • Lubię! 1
Link do komentarza
Share on other sites

(edytowany)

- kilka zrzutów z jazdy.

- wersja robocza oprogramowania, wersja 0.9

- Screen Capture zrobione na rdzeniu 1, odczyt co 5sekund , nagrywanie na karte SD trwa od 1.500 do 3000 msek.

- dołączone pliki binarne do Flash Downolads Tolls 3.94 i wyższe.

- widać jak na postoju akumulator z 14.7 V dostaje 12.4 V kiedy przestaje działać przetwornica DC/DC.

ekran0.thumb.png.4c0503dcd3b42f5b878b15d7031b7b58.pngekran1.thumb.png.811760aaeb05ac41934179380e5722a9.pngparking.thumb.png.cbbd1c709c973ae355d6bffac9394fab.png

 

 

 

enirodashboard.9.zip

flash-00.png

Edytowano przez 99teki
Link do komentarza
Share on other sites

(edytowany)

- poprzednia wersja miała taką wadę, że czas zapisu całego ekranu wynosił do 3500 mili sekund.

- dlatego postanowiłem zapisywać ekran bezpośrednio z pamięci DRAM tam gdzie jest zrobiony sprite ekranu (320x240 x 8 bit).

- czas zapisu to maksymalnie 1500 mili sekund, plik jest trzy krotnie mniejszy i ma 75 KB, poprzednio miał 250 KB.

- ale zaczął się buntować serwer BLE i się zawiesza na operacji Register Callback, czyli brakuje mu pamięci.

- w esp32 biblioteka SD ma taki begin(SD, )

 //bool begin(uint8_t ssPin=SS, SPIClass &spi=SPI, uint32_t frequency=4000000, const char * mountpoint="/sd", uint8_t max_files=5, bool format_if_empty=false);

- wstawiłem taki begin i ruszyło.

if(!SD.begin(SDCARD_CS, SPI, 40000000, "/sd", 1) )
  {
      Serial.println("Card Mount Failed");
      return;
  }	

- gdzie można zwiększyć tą pamieć.

- może trzeba sprita aktywować jak już BLE serwer się połączy ?

SC30x21.thumb.png.cdc544b4478b88ba9c869809a62496b9.png

 

 

Edytowano przez 99teki
Link do komentarza
Share on other sites

(edytowany)

- strona autora programu ScreenShotSample

https://www.team-rh.com/screenshot-sample-m5stack-arduino-8bit-color-only/

- testuje ten program ale co chwilę dostaje Guru meditation Error

...
Booting device...
Reading settings from eeprom.
Loaded settings ver.: 3
Mute speaker for m5stack
Init this->tft display
	xtask code running on core 1
Start BLE with PIN auth
Setup BLE scan
Device setup completed
 _834_ 	free heap: 18260  min heap: 18260 zajetosc modulu: 18260 
 _615_ 	free heap: 18260  min heap: 18260 zajetosc modulu: 0 
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.

Core  1 register dump:
PC      : 0x400ddcb9  PS      : 0x00060130  A0      : 0x800ddd5c  A1      : 0x3ffcffa0  
A2      : 0x00000000  A3      : 0x00000000  A4      : 0x00000140  A5      : 0x00012ac0  
A6      : 0x00000000  A7      : 0x80000001  A8      : 0x00012ac0  A9      : 0x3ffcff80  
A10     : 0x0000041c  A11     : 0x3ffc5a8c  A12     : 0x0000041c  A13     : 0x3f4046dd  
A14     : 0x00000000  A15     : 0x3ffcff5c  SAR     : 0x00000019  EXCCAUSE: 0x0000001c  
EXCVADDR: 0x00012ac0  LBEG    : 0x40091e8c  LEND    : 0x40091e97  LCOUNT  : 0x00000000  

Backtrace: 0x400ddcbb:0x3ffcf3d0 0x400ddd69:0x3ffcf410

Decoding stack results
0x400ddcb6: Create_BMP_8(char*, unsigned char*, int, int) at E:\eDash2.2/eDash2.2.ino line 588
0x400ddd59: codeForCapturetask(void*)                     at E:\eDash2.2/eDash2.2.ino line 616

	//Data Write
[586]  for(int i=0;i<ysize;i++)														// ysize 240
[587]  {
[588]		for(int j=0;j<xsize;j++)													// xsize 320 error Exception was unhandled.
[589]			CB_buffer[j] = b_data[xsize*(ysize-1-i)+j];			// 320x240 == 76kB
[590]		if(SD_FILE.write(CB_buffer,xsize) == -1) {SD_FILE.close();	return;	};
		}

- jeśli dobrze odczytuję log to wywołanie z linii 616 kieruje do programu z linii 588. (w programie autora to linia 44)

- w linii 588 jest zwykła pętla i chyba Guru med jest w linii 599 a raczej w b_data[].

- z opisu rejestru EXCVADDR wynika ze jeśli wartość tego rejestru jest około adresu zerowego (0x00012AC0) to jest blisko struktury ale wskażnik do struktury jest NULL.

- gdyby dane były nie zainicjowane lub uszkodzone to wtedy adres byłby zawarty w zakresie 0x3Fxxxxxx .. 0x6xxxxxxx.

- jak teraz wyświetlić wskażnik wskazujący dane.

Edytowano przez 99teki
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

(edytowany)

- problem rozwiązany, czy tylko dla M5Stack Core nie wiem.

- wystarczy tylko w programie autora wstawić poniższą linię (no i troche poprawić wyświetlanie ?)

[44] for(int i=0;i<ysize - 1;i++)	// 239  Data Write 320x239 == 0x12AC0 

- guru Meditation error znika.

- poniżej zrzut z ładowania samochodu ze stacji  70kW.

 

ladowanie.thumb.png.36f320b8cd9256f3265f23e8f7dced69.png

Edytowano przez 99teki
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.