• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Fatal Python error
#1
Hej,
zakupiłem płytkę WEMOS D1, wybrana płytka z poziomu Arduino Ide: Generic ESP8266 Module.
Podczas samej kompilacji najprostszego programu otrzymuję taki błąd:

Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00000b74 (most recent call first):
exit status 0xc0000409
Compilation error: exit status 0xc0000409
 
Jest to problem na komputerze- na innym działa.
Czy ktoś miał taki problem? jak go rozwiązać?
 
Odpowiedź
#2
Zainstaluj inną wersję, włącz pełne komunikaty podczas kompilacji i wgrywania, gdzieś w tamtych okolicach znajdziesz katalog gdzie Arduino ściąga paczki core w ZIP, dla pewności możesz ją skasować, jak inna wersja zaczęła działać to możesz próbować wrócić do tej wersji, może coś się źle ściągnęło.
Niestety takiego błędu nigdy nie widziałem, jedyne co mi przychodzi do głowy to próba ponownej instalacji.
Jak masz płytkę WEMOS to taką wybierz z menu, ale to nie będzie miało raczej związku z tym konkretnym błędem, czasami są jakieś definicje pinów dla Wemos, gdzie jest LED ta wbudowana, generic tego nie zawiera.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
(25-11-2023, 14:33)kaczakat napisał(a): Zainstaluj inną wersję, włącz pełne komunikaty podczas kompilacji i wgrywania, gdzieś w tamtych okolicach znajdziesz katalog gdzie Arduino ściąga paczki core w ZIP, dla pewności możesz ją skasować, jak inna wersja zaczęła działać to możesz próbować wrócić do tej wersji, może coś się źle ściągnęło.
Niestety takiego błędu nigdy nie widziałem, jedyne co mi przychodzi do głowy to próba ponownej instalacji.
Jak masz płytkę WEMOS to taką wybierz z menu, ale to nie będzie miało raczej związku z tym konkretnym błędem, czasami są jakieś definicje pinów dla Wemos, gdzie jest LED ta wbudowana, generic tego nie zawiera.

Masz na myśli inną wersję Arduino Ide?

W tym błędzie właśnie rodzaj wybranej płytki generuje ten problem, samo kompilowanie (bez uploadu) pokazuje błąd. Po przełączeniu się na oryginalny UNO, wszystko działa normalnie.
Odinstalowałem i zainstalowałem ponownie IDE ale problem pozostał bez zmian.
 
Odpowiedź
#4
To może napisz jaki to jest ten najprostszy szkic, z którym masz problem.
Nie ma płytek ESP8266 w Arduino, trzeba dodać core ESP8266, czasami coś pójdzie nie tak i trzeba ponowić instalację, ale jak nie skasujesz tego co ściągnęło, to użyje ściągniętego z błędem, jak użyjesz innej wersji, np. starszej, to musi ją ściągnąć na nowo, bo ściąga tylko jedną wersję.
Nie wystarczy dać odinstaluj i zainstalować tego samego jak masz dziwne błędy, których nie powinno być dla przykładów dołączonych do danej płytki.
Nie wiem po co ruszałeś Arduino IDE, przecież musiałeś instalować core, wejść w preferencje, podać link do płytek alternatywnych, a przynajmniej wykonać ostatni krok - wejść w managera płytek, wyszukać ESP8266 i zainstalować ten core, w wybranej wersji, domyślnie najnowszej.
Poza tym może być też wina antywirusa, że jest nadgorliwy.
Niektóre projekt napisane dla UNO nie zadziałają z ESP, jeśli w kodzie są odwołania niskopoziomowe do zasobów sprzętowych występujących tylko w AVR to nie skompiluje tego dla ESP. Arduino jest uniwersalne, większość kodu zadziała na różnych platformach, bo Arduino tworzy warstwę pośrednią i tłumaczy każdemu uC co ma robić tak napisanymi funkcjami. Ty sobie używasz print(cośtam), a to jest inny print w UNO, inny w ESP, ale Ciebie to nie obchodzi, Ty masz umieć używać print, i to jest właśnie w core.
Jednak warstwa pośrednia może spowalniać, jak komuś zależy na szybkości to może zrobić projekt na rejestrach, wykorzystując bufory i przerwania występujące tylko w tym konkretnym uC i to już nie jest projekt, który można skompilować tak samo dla UNO jak i dla WEMOS.
Są funkcje uniwersalne jak print, są takie dedykowane dla danego core, UNO nie zrozumie żadnej funkcji odwołującej się do WIFI napisanej konkretnie dla ESP .
Tak samo dodane biblioteki do Arduino nie muszą być kompatybilne z każdym core.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości