Tematyka architektury RISC-V pojawiła się już na elektroda.pl, zestaw SiPEED MAiX DOCK w cenie $19.90, oparty jest o moduł SiPEED M1W zawierający dwurdzeniowy CPU K210 w architekturze RISC-V, KPU (wsparcie dla sztucznych sieci neuronowych) oraz łączność WiFi 2.4GHz (poprzednia wersja M1 potrzebowała zewnętrznego modułu do WiFi np. ESP8266). W zestawie znajdziemy płytkę z M1W, mikrofonem, LED, złączem dla karty micro SD, kamerą, wyświetlaczem TFT, anteną WiFi oraz przejściówką USB micro do USB C. Liczne interfejsy dostępne są na złączach goldpin możliwych do wlutowania w PCB. Płytka posiada wyjście sygnału audio oraz wzmacniacz PAM8403. USB pozwala na zasilanie modułu, oraz komunikację UART (CH340).
Elastyczne taśmy łączące wyświetlacz i kamerę są dość delikatne, warto zadbać o zamocowanie ciężkiego wyświetlacza aby nie uszkodzić elastycznej magistrali podczas testów.
Zasilamy urządzenie i na wyświetlaczu pojawia się napis witamy w MAiXPy:
Wchodzimy na stronę producenta https://www.sipeed.com niestety okazuje się, że w zakładce produkty większość linków prowadzi do nieistniejącej strony i dostajemy błąd 404...
Więcej informacji znajdziemy na stronie seeedstudio.com
https://www.seeedstudio.com/Artificial-Intell...-RV64-AI-board-for-Edge-Computing-p-3207.html
oraz w opisie czym jest MAiXPy.
Na początek uaktualniamy oprogramowanie modułu zgodnie z opisem na stronie:
https://maixpy.sipeed.com/en/get_started/upgrade_firmware.html#update-maixpy-firmware
Pobieramy oprogramowanie do aktualizacji:
https://github.com/sipeed/kflash_gui/releases
oraz firmware:
https://github.com/sipeed/MaixPy/releases
wybrałem firmware:
maixpy_v0.3.2_full.bin
oraz model rozpoznawania twarzy do wgrania pod adres 0x300000:
face_model_at_0x300000.kfpkg
Otwieramy konsolę UART w np. PuTTY (w menadżerze urządzeń znajdziemy numer wirtualnego portu COM tworzonego po podłączeniu modułu). Wprowadzamy numer portu oraz szybkość transmisji 115200.
Gdy zrestartujemy płytkę, komunikaty potwierdzą wersję firmware:
Możemy wykonywać kod w python linia po linii, lub korzystając z ctrl-E ctrl-D wykonujemy wklejony blok kodu.
Korzystamy z zasobów github https://github.com/sipeed/MaixPy_scripts i na początek sprawdzamy czy obraz rejestrowany przez kamerę poprawnie wyświetli się na wyświetlaczu:
Moduł podczas wykonywania programu pobiera ~1.4W.
Aby uzyskać dobrą ostrość należy oddalić obiekty od miniaturowej kamery na min. 20cm.
Dla modułu dostępne jest IDE ułatwiające dalsze eksperymenty:
http://dl.sipeed.com/MAIX/MaixPy/ide/v0.2.2/
Wybieramy nasz model płytki:
W lewym dolnym rogu możemy włączyć lub wyłączyć połączenie z modułem, oraz zatrzymać lub uruchomić kod w python.
Na poniższym zrzucie ekranu widzicie eksperymenty z kodem wyświetlającym obraz z kamery, odświeżanie ~15FPS:
Warto przetestować więcej przykładowego kodu:
https://github.com/sipeed/MaixPy_scripts
Przykład z FFT i obsługą mikrofonu na PCB:
https://github.com/sipeed/MaixPy_scripts/tree/master/hardware
Wykrywanie twarzy działa, jednak z różną skutecznością
https://github.com/sipeed/MaixPy_scripts/tree/master/machine_vision
Podobnie kody QR, powolnie lecz poprawnie:
Poprzez IDE łatwo ustawimy określony plik py w "autostarcie", dzięki czemu po resecie modułu wybrany kod będzie uruchamiał się automatycznie.
Warto zajrzeć do przykładu komunikacji sieciowej:
https://github.com/sipeed/MaixPy_scripts/blob/master/network/demo_send_pic.py
i serwera w python odbierającego zdjęcia:
https://github.com/sipeed/MaixPy_scripts/blob/master/tools_on_PC/network/pic_server.py
Po podłączeniu karty microSD przydadzą się przykłady z odczytem i zapisem multimediów:
https://github.com/sipeed/MaixPy_scripts/tree/master/multimedia
Nie sprawdzałem komunikacji WiFi i obsługi karty mikroSD, rozpoznawanie obiektów w obrazie było znacznie bardziej interesujące do przetestowania
Dostępny jest wstępny (mogący zawierać wiele błędów) przykład z rozpoznawaniem w obrazie predefiniowanych 20 obiektów (samolot, rower, ptak, łódź, butelka, autobus, samochód, kot, krowa, stół, pies, koń, motor, osoba, roślina doniczkowa, owca, sofa, pociąg, monitor/telewizor).
Plik do pobrania dostępny tutaj:
http://blog.sipeed.com/p/677.html
do modułu wgrywamy:
plik maixpy_20class.bin
oraz
20class.kmodel pod adresem 0x500000
następnie otwieramy konsolę szeregową poprzez np. putty i korzystając z ctrl-e ctrl-d umieszczamy i uruchamiamy kod 20class.py
Efekty działania kodu:
Jednym z możliwych zastosowań jest budowa urządzenia dla najmłodszych, które będzie rozpoznawało pokazane do kamery obrazy.
Rozpoznawane mogą być zarówno zdjęcia, ale także rysunki. Jest szansa, że po kilku próbach uda się narysować obiekt, który zostanie prawidłowo rozpoznany przez urządzenie.
Na koniec krótki film przedstawiający rozpoznawanie różnych obiektów a nawet "dziesięciosekundowych" rysunków markerem na kartce
Producent przygotował wsparcie dla Arduino:
https://maixduino.sipeed.com/en/get_started/install.html
Wygląda na to, że oprogramowanie modułu jest na etapie rozwojowym. Python pozwala na dość wysokopoziomową eksplorację platformy i szybkie przygotowanie testowych kodów. Łatwo rozpocząć próby i prowadzić eksperymenty z przetwarzaniem dźwięku i obrazu, ale np. nie udało mi się ustalić jak przygotować własny model rozpoznawania określonego obiektu. Niska cena oraz niski pobór mocy, łączność WiFi a także obsługiwany wysokopoziomowy język programowania to zalety modułu MAiX DOCK w zestawie z wyświetlaczem i kamerą. Rozwój oprogramowania i dokumentacji oraz rozwinięcie społeczności to szansa na spopularyzowanie tej platformy.
Jakie macie pomysły na wykorzystanie zestawu MAiX DOCK z modułem SiPEED M1W?
Elastyczne taśmy łączące wyświetlacz i kamerę są dość delikatne, warto zadbać o zamocowanie ciężkiego wyświetlacza aby nie uszkodzić elastycznej magistrali podczas testów.
Zasilamy urządzenie i na wyświetlaczu pojawia się napis witamy w MAiXPy:
Wchodzimy na stronę producenta https://www.sipeed.com niestety okazuje się, że w zakładce produkty większość linków prowadzi do nieistniejącej strony i dostajemy błąd 404...
Więcej informacji znajdziemy na stronie seeedstudio.com
https://www.seeedstudio.com/Artificial-Intell...-RV64-AI-board-for-Edge-Computing-p-3207.html
oraz w opisie czym jest MAiXPy.
Na początek uaktualniamy oprogramowanie modułu zgodnie z opisem na stronie:
https://maixpy.sipeed.com/en/get_started/upgrade_firmware.html#update-maixpy-firmware
Pobieramy oprogramowanie do aktualizacji:
https://github.com/sipeed/kflash_gui/releases
oraz firmware:
https://github.com/sipeed/MaixPy/releases
wybrałem firmware:
maixpy_v0.3.2_full.bin
oraz model rozpoznawania twarzy do wgrania pod adres 0x300000:
face_model_at_0x300000.kfpkg
Otwieramy konsolę UART w np. PuTTY (w menadżerze urządzeń znajdziemy numer wirtualnego portu COM tworzonego po podłączeniu modułu). Wprowadzamy numer portu oraz szybkość transmisji 115200.
Gdy zrestartujemy płytkę, komunikaty potwierdzą wersję firmware:
Kod: Text
Możemy wykonywać kod w python linia po linii, lub korzystając z ctrl-E ctrl-D wykonujemy wklejony blok kodu.
Korzystamy z zasobów github https://github.com/sipeed/MaixPy_scripts i na początek sprawdzamy czy obraz rejestrowany przez kamerę poprawnie wyświetli się na wyświetlaczu:
Kod: Python
Moduł podczas wykonywania programu pobiera ~1.4W.
Aby uzyskać dobrą ostrość należy oddalić obiekty od miniaturowej kamery na min. 20cm.
Dla modułu dostępne jest IDE ułatwiające dalsze eksperymenty:
http://dl.sipeed.com/MAIX/MaixPy/ide/v0.2.2/
Wybieramy nasz model płytki:
W lewym dolnym rogu możemy włączyć lub wyłączyć połączenie z modułem, oraz zatrzymać lub uruchomić kod w python.
Na poniższym zrzucie ekranu widzicie eksperymenty z kodem wyświetlającym obraz z kamery, odświeżanie ~15FPS:
Warto przetestować więcej przykładowego kodu:
https://github.com/sipeed/MaixPy_scripts
Przykład z FFT i obsługą mikrofonu na PCB:
https://github.com/sipeed/MaixPy_scripts/tree/master/hardware
Wykrywanie twarzy działa, jednak z różną skutecznością
https://github.com/sipeed/MaixPy_scripts/tree/master/machine_vision
Podobnie kody QR, powolnie lecz poprawnie:
Poprzez IDE łatwo ustawimy określony plik py w "autostarcie", dzięki czemu po resecie modułu wybrany kod będzie uruchamiał się automatycznie.
Warto zajrzeć do przykładu komunikacji sieciowej:
https://github.com/sipeed/MaixPy_scripts/blob/master/network/demo_send_pic.py
i serwera w python odbierającego zdjęcia:
https://github.com/sipeed/MaixPy_scripts/blob/master/tools_on_PC/network/pic_server.py
Po podłączeniu karty microSD przydadzą się przykłady z odczytem i zapisem multimediów:
https://github.com/sipeed/MaixPy_scripts/tree/master/multimedia
Nie sprawdzałem komunikacji WiFi i obsługi karty mikroSD, rozpoznawanie obiektów w obrazie było znacznie bardziej interesujące do przetestowania
Dostępny jest wstępny (mogący zawierać wiele błędów) przykład z rozpoznawaniem w obrazie predefiniowanych 20 obiektów (samolot, rower, ptak, łódź, butelka, autobus, samochód, kot, krowa, stół, pies, koń, motor, osoba, roślina doniczkowa, owca, sofa, pociąg, monitor/telewizor).
Plik do pobrania dostępny tutaj:
http://blog.sipeed.com/p/677.html
do modułu wgrywamy:
plik maixpy_20class.bin
oraz
20class.kmodel pod adresem 0x500000
następnie otwieramy konsolę szeregową poprzez np. putty i korzystając z ctrl-e ctrl-d umieszczamy i uruchamiamy kod 20class.py
Efekty działania kodu:
Jednym z możliwych zastosowań jest budowa urządzenia dla najmłodszych, które będzie rozpoznawało pokazane do kamery obrazy.
Rozpoznawane mogą być zarówno zdjęcia, ale także rysunki. Jest szansa, że po kilku próbach uda się narysować obiekt, który zostanie prawidłowo rozpoznany przez urządzenie.
Na koniec krótki film przedstawiający rozpoznawanie różnych obiektów a nawet "dziesięciosekundowych" rysunków markerem na kartce
Producent przygotował wsparcie dla Arduino:
https://maixduino.sipeed.com/en/get_started/install.html
Wygląda na to, że oprogramowanie modułu jest na etapie rozwojowym. Python pozwala na dość wysokopoziomową eksplorację platformy i szybkie przygotowanie testowych kodów. Łatwo rozpocząć próby i prowadzić eksperymenty z przetwarzaniem dźwięku i obrazu, ale np. nie udało mi się ustalić jak przygotować własny model rozpoznawania określonego obiektu. Niska cena oraz niski pobór mocy, łączność WiFi a także obsługiwany wysokopoziomowy język programowania to zalety modułu MAiX DOCK w zestawie z wyświetlaczem i kamerą. Rozwój oprogramowania i dokumentacji oraz rozwinięcie społeczności to szansa na spopularyzowanie tej platformy.
Jakie macie pomysły na wykorzystanie zestawu MAiX DOCK z modułem SiPEED M1W?
Fajne? Ranking DIY
