Opracowany przez zespół byłych pracowników Google, język Toit to w rzeczywistości kompletna platforma Internetu Rzeczy (IoT) ze zdalnym zarządzaniem, aktualizacjami oprogramowania sprzętowego dla flot urządzeń o funkcjach podobnych do tych oferowanych przez rozwiązania takie jak balena, Microsoft Azure czy platforma Particle edge-to-cloud.
Toit obecnie pracuje na mikrokontrolerach ESP32 przy użyciu lekkich kontenerów. Po przetestowaniu istniejących języków wysokiego poziomu - MicroPythona i Javascriptu - zespół nie były wystarczająco zadowolony z oferowanych przez nie prędkości działania na platformach z małymi mikrokontrolerami. Opracował w związku z tym Toit - [racę zaczęły się w 2018 roku i właśnie zakończyły się wydaniem open-source z wydaniem kompilatora, maszyny wirtualnej i standardowych biblioteki. Wszystko dostępne jest w repozytorium na Github na licencji LGPL-2.1.
"Jednym z głównych powodów przejścia z języka MicroPython na język Toit jest to, że Twoja aplikacja jest ograniczona wydajnością lub korzystasz z ESP32 z baterii, ponieważ Toit zapewnia do 30x wyższą wydajność z Toit na ESP32. Przysiedliśmy do pracy i kilka miesięcy później mieliśmy pierwsze wyniki. Wykonywaliśmy kod ponad 30 razy szybciej niż w MicroPythonie na ESP32 z językiem wysokiego poziomu, który oddziela alokację pamięci i którego programista Pythona może się nauczyć w ciągu kilku godzin: język Toit".
Warto przyjrzeć się temu językowi dokładniej, wypróbowując go np. w Ubuntu 20.04. Maszyna wirtualna jest oparta na forku ESP-IDF z niestandardową implementacją malloc, poprawkami alokacji dla UART i poprawkami LWIP. Oto, co musimy najpierw zainstalować:
Teraz instalujemy narzędzia dla ESP32:
i już możemy zbudować środowisko Toit jak i przykładowe programy do uruchamiania na testowej maszynie:
Teraz można odtworzyć pierwszy przykład (Hello World):
Ab go uruchomić wpisujemy:
A jak zbudować ten przykład do wersji, kórą można zaimplementować na ESP32? To proste:
Stworzy to plik z firmware Toit (toit.bin) z załadowanym przykładem. Można go wgrać do układu za pomocą esptool:
Drugi przykład jest bardziej złożony. Poniższy skrypt (http.toit) wykorzystuje m.in. Wi-Fi:
Ten krótki przykład pobiera stronę główną Google i raportuje ile bajtów pobrał... czegoś w nim jednak brakuje - gdzie definiowane są dane do logowania do sieci Wi-Fi? To można zrobić na etapie budowy skryptu:
albo skonfigurować to w domyślnym programie tak, aby pobierał SSID i hasło z Makefile:
Jedną z możliwości, jakie oferuje Toit jest funkcja aktualizacji bezprzewodowej (OTA), co oznacza, ze po wgraniu szkicu po raz pierwszym firmware można aktualizować korzystając z narzędzi Toit.
Kompletną platformę Toit można używać za darmo dla maksymalnie do 10 urządzeń, a oprócz strony Github, można również znaleźć dodatkowe informacje na stronie z dokumentacją nie tylko na temat oprogramowania układowego i języka Toit, ale także Cloud API i Platformy Toit jako całości.
Źródło: https://www.cnx-software.com/2021/11/28/toit-open-source-language-claims-to-be-30x-faster-than-micropython-on-esp32/
Toit obecnie pracuje na mikrokontrolerach ESP32 przy użyciu lekkich kontenerów. Po przetestowaniu istniejących języków wysokiego poziomu - MicroPythona i Javascriptu - zespół nie były wystarczająco zadowolony z oferowanych przez nie prędkości działania na platformach z małymi mikrokontrolerami. Opracował w związku z tym Toit - [racę zaczęły się w 2018 roku i właśnie zakończyły się wydaniem open-source z wydaniem kompilatora, maszyny wirtualnej i standardowych biblioteki. Wszystko dostępne jest w repozytorium na Github na licencji LGPL-2.1.
"Jednym z głównych powodów przejścia z języka MicroPython na język Toit jest to, że Twoja aplikacja jest ograniczona wydajnością lub korzystasz z ESP32 z baterii, ponieważ Toit zapewnia do 30x wyższą wydajność z Toit na ESP32. Przysiedliśmy do pracy i kilka miesięcy później mieliśmy pierwsze wyniki. Wykonywaliśmy kod ponad 30 razy szybciej niż w MicroPythonie na ESP32 z językiem wysokiego poziomu, który oddziela alokację pamięci i którego programista Pythona może się nauczyć w ciągu kilku godzin: język Toit".
Warto przyjrzeć się temu językowi dokładniej, wypróbowując go np. w Ubuntu 20.04. Maszyna wirtualna jest oparta na forku ESP-IDF z niestandardową implementacją malloc, poprawkami alokacji dla UART i poprawkami LWIP. Oto, co musimy najpierw zainstalować:
Code: bash
Teraz instalujemy narzędzia dla ESP32:
Code: bash
i już możemy zbudować środowisko Toit jak i przykładowe programy do uruchamiania na testowej maszynie:
Code: bash
Teraz można odtworzyć pierwszy przykład (Hello World):
Code: python
Ab go uruchomić wpisujemy:
Code: bash
A jak zbudować ten przykład do wersji, kórą można zaimplementować na ESP32? To proste:
Code: bash
Stworzy to plik z firmware Toit (toit.bin) z załadowanym przykładem. Można go wgrać do układu za pomocą esptool:
Code: bash
Drugi przykład jest bardziej złożony. Poniższy skrypt (http.toit) wykorzystuje m.in. Wi-Fi:
Code: python
Ten krótki przykład pobiera stronę główną Google i raportuje ile bajtów pobrał... czegoś w nim jednak brakuje - gdzie definiowane są dane do logowania do sieci Wi-Fi? To można zrobić na etapie budowy skryptu:
Code: bash
albo skonfigurować to w domyślnym programie tak, aby pobierał SSID i hasło z Makefile:
Code: bash
Jedną z możliwości, jakie oferuje Toit jest funkcja aktualizacji bezprzewodowej (OTA), co oznacza, ze po wgraniu szkicu po raz pierwszym firmware można aktualizować korzystając z narzędzi Toit.
Kompletną platformę Toit można używać za darmo dla maksymalnie do 10 urządzeń, a oprócz strony Github, można również znaleźć dodatkowe informacje na stronie z dokumentacją nie tylko na temat oprogramowania układowego i języka Toit, ale także Cloud API i Platformy Toit jako całości.
Źródło: https://www.cnx-software.com/2021/11/28/toit-open-source-language-claims-to-be-30x-faster-than-micropython-on-esp32/
Code: actionscript
Cool? Ranking DIY