Arduino Polska Forum

Pełna wersja: Co PO arduino?
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Hejka

Czy istnieje jakaś platforma zbliżona kosztowo do Arduino gdzie program nie działa 
w pętli jak na Adruino ale w systemie operacyjnym, ew. w inny sposób z "wielozadaniowością"?
Czyli piszę funkcje obsługujące poszczególne aspekty aplikacji, wszystko co robię to przydzielam
im priorytet, a resztą zajmuje się jakiś "system". 
No i najważn niestety żeby były dostępne biblioteki do najpopularniejszych modułów..
A najważniejszy DEBUGER!

Chcę zabrać się za system sterowania łodzi wędkarskiej - pełnowymiarowej, nie modelu Wink
Silnik elektryczny jako napęd + ster, albo dwa silniki bez steru - utrzymywanie pozycji jak
na kotwicy, pływanie zdefiniowaną trasą, powrót do portu etc. Czyli obsługa GPS, kompasu,
karty SD, wyświetlacze, sterowanie PWM silnikami itd itp.

Wiem, że da się to zrobić również na Arduino, ale głównie powstrzymuje mnie brak debugera.
Nie robiłem jeszcze nic z GPS i przewiduje masę problemów na początek Wink

Jakub
STM hall i cube...
Jeśli zamiast Arduino IDE zainstalujesz ATMEL STUDIO + wtyczkę Arduino to możesz korzystać i z bibliotek Arduino i debuggera. Najtańszy MPLAB SNAP koszt ze 4 dychy (do niektórych trybów wymaga podmiany rezystora, ale jest to proste), są też robione na bazie Atmega32u4 z Arduino MICRO - 3$, Atmel ICE od 200 zł. Pin w Arduino AVR do debuggowania to RST, więc trzeba rozpiąć kondensator do autoresetu.
STM to mega tanie płytki prototypowe i debuggery, ale nie ma takiej bazy "gotowców" (biblioteki, projekty, tutoriale) jak dla Arduino AVR.
(05-05-2020, 13:43)PierwszyWolnyLogin napisał(a): [ -> ]Czy istnieje jakaś platforma zbliżona kosztowo do Arduino gdzie program nie działa 
w pętli jak na Adruino ale w systemie operacyjnym, ew. w inny sposób z "wielozadaniowością"?

W systemie operacyjnym za to zadania (obiekty systemowe) działają w pętli. Mają jedynie przydzielone priorytety żeby system wiedział, że gdy zgłoszą się dwa lub więcej zadań do obsługi, które pierwsze uruchomić.Musisz poczytać o pewnych aspektach RTOS, mutexach, semaforach, o współdzieleniu zasobów, dynamicznej zmianie priorytetów itp. a spokojnie RTOSa postawisz na Arduino.
RTOS i AVR to nieporozumienie.
Aby sensownie wykorzystać możliwości RTOS potrzeba dużych buforów na UART, SPI itd a AVR poza mega1284 ma niewiele RAM. Sam RTOS też potrzebuje sporo RAM na stosy. Każde zadanie to min 400bajtów na stos a jak coś większego to i kilka kB. Nawet gdy uwzględniamy 400bajtów to ile zadań da się uruchomić na np mega2561? 20 zajmie całą RAM. Powiedzmy 10, nieźle ale to proste programy no i niewiele zostało na bufory. Rtos potrzebuje timera, których AVR maja niewiele np mega1284 tylko 4. Od razy zaznaczę, że użycie watchdoga do oprzełączania zadań to zły pomysł.
Inna sprawa to cena. Ile kosztuje taka mega2561 i ile za ta kasę kupisz setki razy lepsze STM32? Odpowiem, kilka a nawet kilkanaście. Weźmy do porównania np STM32F401RBT6 - niecałe 15zł, mega1281 (aby wielkość flash się zgadzała) prawie 30zł. 1281 ma 4kB RAM, F401 64! Tylko 16 razy więcej za połowę ceny! Nawet mega1284 nie podskoczy ze swoją 4 razy mniejszą ilością RAM. Dalej (liczba SPI, I2C, timerów itd) tylko na DUŻĄ niekorzyść AVR. Szybkość pracy? F401 84MHz co odpowiada AVRkowi 500-600MHz, więc AVR jest wolniejszy tak 35 razy!
Kompilator GCC-AVR ma spore ograniczenia, sprintf, sscanf << do 16-bit, GCC-ARm 32-bit.
Tyle powodów chyba wystarczy aby zniechęcić się do AVR a jest ich więcej, jak choćby DMA, autobaud UART, wykrywanie końca ramki, sprzętowe sterowanie kierunkiem RS485 czy przepływem RS232C. Sprzętowe sterowniki kolorowych LCD. O tym wszystkim AVR mogą pomarzyć. Nawet jak kiedyś będą miały takie funkcje to cena odstrasza.
OK, to jaką płytkę do nauki kupić. Może być bez żadnych dodatków typu kompas etc -
co analogicznego do Arduino Mega etc...

Jakub
Próbowałem jakiś czas temu - nawet to działało, ale przerosło mnie.
Na początek prędkość pracy funkcji spadała z czasem, nie mam pojęcia czemu
i nie potrafiłem tego ogarnąć, a później okazało się, że co chwila coś nie działa - 
a to obsługa karty SD kłóciła się Z RTS a to coś tam. 
Przysiadłem, napisałem w pętli i działa Wink

Niby wszystko można w loop zrobić, ale wkurza mnie konieczność kombinowania
jak tu podzielić czas pracy, żeby wszystko działało. Chciałbym, żeby załatwiał
to kompilator, czy zewnętrzne oprogramowanie... 

Jakub
(10-05-2020, 13:10)PierwszyWolnyLogin napisał(a): [ -> ]OK, to jaką płytkę do nauki kupić. Może być bez żadnych dodatków typu kompas etc -
co analogicznego do Arduino Mega etc...
Discovery STM32. Ceny od 50zł i taka spokojnie wystarczy. Taniej chyba nie będzie https://kamami.pl/zestawy-uruchomieniowe...results=10 a masz 512 flash i co ważne dużo ram bo 128kB. Na czymś takim uruchomienie RTOS jest łatwe. Jest też w zestawie z książką (e-book) za 70zł a samo książka to 56zł.