Skocz do zawartości

ESP32 C3 i RUST


Gieneq

Pomocna odpowiedź

Przeglądając listę devkitów Espressifa trafiłem na wariant "RUST". Pierwsze myśl - czym to się różni od innych devkitów, bo trochę drogie 112zł na oficjalnym Ali. Opis sugeruje że są przykłady dla komponentów na płytce:

image.thumb.png.1f611ecb39c538978066378d4ca0ef17.png

Idąc dalej trafiam na repo ze schematem. Ciekawe, że ta płytka nie ma konwertera USB-UART tylko bezpośrednie podłączenie do USB-C. Najwyraźniej bootloader obsługuje USB. Ale to raczej nie czyni jej wyjątkowo "Rust" bo w repo wymienione są inne devkity.

image.thumb.png.1e785aad767aae9277ffc1a9b59baa6c.png

Podlinkowane są też są okazjonalne kursy. Patrząc na kolejne repo od esp-rs jest rozwijana implementajca ESP-IDF. Są narzędzia dla cargo np monitor. Jest też książka podobna do dokumentacji Rust w mdbook:

image.thumb.png.8842fc1010c80044e637e788999fb6ce.png

Z opisu wynika że są jakieś 2 gałęzie projektu, jedna zgodna z std druga nie. Książka jest niekompletna, ale widać że coś się nabudowuje. Dział na oficjalnym forum jest dość pusty (samo forum jest dość puste)

Ktoś coś robił w tym temacie i może podzielić się swoim doświadczeniem? 

 

Edytowano przez Gieneq
  • Lubię! 2
Link do komentarza
Share on other sites

Ostatnio za znacznie mniejsze pieniądze kupiłem sobie coś takiego:

https://www.aliexpress.com/item/1005004539320086.html?spm=a2g0o.order_list.order_list_main.94.38cd1802oHGMlW

 

Zakupiłem właśnie wersję bez konwertera USB-UART i bez problemu daje się ona zaprogramować w Arduino IDE. Nawet nie potrzeba sterownika. Nie posiada ona jednak tych wszystkich dodatkowych peryferii (IMU, temperatura, wilgotność, ładowarka itd.), ale trudno sobie wyobrazić pojekt sensownie wykorzystujący je wszystkie naraz.

Tak z ciekawości - jakie przewagi może mieć Rust w zastosowaniach hobbystycznych?

  • Lubię! 1
Link do komentarza
Share on other sites

Nie wiem. U mnie jest 15,24 zł.

Jak Ci tak wyskakuje, to trzeba brać -biorąc jeszcze pod uwagę, że u tego Sprzedającego większość cen zawiera już koszty wysyłki (i to dobrej).

  • Lubię! 1
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

11 minut temu, Gieneq napisał:

brak problemów z wiszącymi pointerami itp. Brak naruszania pamięci.

To jest jakaś konkretna zaleta, a reszta - no cóż.....

A jak wygląda kwestia obsługi podłączonych układów (choćby tych umieszczonych na płytce z pierwszego postu)? Są jakieś biblioteki, czy wszystko trzeba wymyślać na nowo?

Link do komentarza
Share on other sites

@jand ciężko powiedzieć, nie programowałem, nie mam doświadczenia, dlatego pytanie

22 godziny temu, Gieneq napisał:

Ktoś coś robił w tym temacie i może podzielić się swoim doświadczeniem? 

Wygląda że w repo esp-rs jest rozwijany hal, jest też rozwijany hal dla cortex m https://github.com/rust-embedded/embedded-hal

Są jakieś biblioteki zbudowane na bazie halów.

Link do komentarza
Share on other sites

(edytowany)

@Harnas tak zgadza się, język jest jak najbardziej rozwojowy. Staram się coś dowiadywać, ale jest mało wolnego czasu. Bardzo ciekawie wygląda mechanizm pożyczania, zapewnia bezpieczeństwo alokacji przy braku garbage collectora.

Widzę że Rust jest dobrym kierunkiem do WebDevu - WebAssembly. Rozumiem że stworzenie bindingu do JS, który ma zupełnie inne założenia może być trudne, ale podobno programy są całkiem wydajne. Mam w planach przerobić całkiem świeży kurs. Podobno jest też przyjazne community.

Z tematów bliżej embedded zrobiłem sobie prezent i zamówiłem w oficjalnym sklepie Espressif Rustboard i S3Box. Spróbuję coś na tym zrobić, no a czekając na dostawę która będzie jak będzie jest czas na naukę języka. Na stronie https://wokwi.com/rust można poklikać sobie w przykłady z symulatorem online, wygląda całkiem ciekawie.

W tym miejscu https://github.com/esp-rs/esp-hal/issues/19 można znaleźć aktualne pokrycie układów peryferyjnych przez HAL. Można spróbować swoich sił i dorzucić coś od siebie 🙂 

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

Od pewnego czasu uczę się Rusta, ale jak do tej pory tylko na PC. Język jest naprawdę interesujący. Koncepcja właściciela instancji obiektu i wypożyczania jej jest moim zdaniem rewelacyjna. Bardzo rozbudowane makra, niezwykle silnie sprzężone z samym językiem. Bardzo wymagający kompilator, ale jednocześnie udzielający podpowiedzi. Kompilator wiele się "domyśla", ale wnioskuje, a nie zgaduje. Brak domyślnych konwersji. Możliwe bardzo proste dodanie do własnych typów takich cech jak serializacja czy klonowanie - to tylko jedna linia kodu, a właściwie deklaracja. Moim zdaniem syntaktyka znacznie bardziej przejrzysta niż C++, choć semantyka bardziej wymagająca. Itd... itp... Jestem naprawdę pod wrażeniem.

Jeśli ktoś woli materiały po polsku, to z czystym sumieniem mogę polecić Programowanie w języku Rust. Wydajność i bezpieczeństwo. Wydanie II Autorzy:     Jim Blandy, Jason Orendorff, Leonora F. S. Tindall   Wydanie I jest nieco uboższe.

@Gieneq Spodobał mi się Twój ostatni post. Może nawet odważę się do prób na jakimś "mikro", ale w tej chwili wolałbym coś mniej egzotycznego. Podobno jest jakiś sposób użycia tego na RaspberryPi pico. Mam kilka "w szufladzie" więc jak poczuję się trochę pewniej w samym języku (do tej pory mam za sobą tylko program rozwiązujący sudoku) to rozglądnę się za materiałami. Nie boję się programowania, ale z elektroniką i mikro kontrolerami jestem mocno na bakier.

  • Lubię! 2
Link do komentarza
Share on other sites

@bjrk o super, że też jesteś w temacie 🙂 

Dnia 21.01.2023 o 14:23, bjrk napisał:

Jeśli ktoś woli materiały po polsku, to z czystym sumieniem mogę polecić Programowanie w języku Rust. Wydajność i bezpieczeństwo. Wydanie II Autorzy:     Jim Blandy, Jason Orendorff, Leonora F. S. Tindall   Wydanie I jest nieco uboższe.

To dla testu można przejrzeć wersję angielską ale z jakiegoś powodu dostępną za darmo, 1282 strony. Wydawnictowo PACKT niedawno miało promocja na wszystkie  ebooki za 5$ nawet 2022 rok, może się powtórzy. Warto zwrócić uwagę na tematy wielowątkowości w tym funkcje asynchroniczne i idąc dalej webasembly. Rozglądałem się ostatnio za biblioteką graficzną - pisanie gier to IMO najlepsza metoda nauki i trafiłem na macroquad. Ciekawe że biblioteka ma target dla webasembly i można poklikać w przykłady na przeglądarce: https://macroquad.rs/examples/

Z materiałów częściowo po Polsku przydatna może być strona refactoring guru - wzorce projektowe w Rust. https://refactoring.guru/pl/design-patterns/rust

Dnia 21.01.2023 o 14:23, bjrk napisał:

Kompilator wiele się "domyśla", ale wnioskuje, a nie zgaduje.

Tak to jest super. Np clippy potrafi podpowiedzieć jak coś jeszcze udoskonalić. Tu przykład. Można w rust-analizerze dla VSC podmienić w ustawieniach domyślną komendę check na clippy i podkreśli sugestie:

image.thumb.png.081af971ca6ffdc019fcc00b07dd935d.png

image.thumb.png.e2f1525d451c909c9f0e5639d669e37a.png

  • Lubię! 1
Link do komentarza
Share on other sites

@Gieneq Popraw proszę odsyłacz wersja angielska bo coś Ci się dokleiło.

Po angielsku jest naprawdę świetna dokumentacja on line i nie tylko. Gieneq podał sporo, a z konkretnymi pytaniami wyszukiwarka poda jeszcze więcej.

Nigdy nie napisałem gry. Zupełnie nie czuję jak bym miał to robić. Wg mnie, podczas nauki programowania w jakimś nowym języku należy wybrać algorytm który się bardzo dobrze rozumie i zaimplementować go. Oczywiście jeśli dla kogoś to jest gra, to OK. W moim odczuciu aby napisać jakąś grę trzeba najpierw napisać i opanować jakiś silnik, potem sporo rysowania (tu jetem "noga") i dopiero na końcu można się zabrać za pisanie kodu. Dlatego nigdy nie próbowałem czegoś takiego. Jeśli widzisz to inaczej, chętnie poznam Twoją opinię.

Edytowano przez bjrk
"uciekł" mi nim skończyłem :-)
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.