Skocz do zawartości

Mikrokontroler do mini sumo


Gall Anonim

Pomocna odpowiedź

Chcę zbudować nowego mini sumo i zastanawiam się jaki mikrokontroler zastosować większość robotów ma Atmege 32 i chciałem się zapytać czy jest sens wstawiać do MS coś szybszego?

Znalazłem 2 mikrokontrolery nad, którymi się zastanawiam AT89C55WD i ATXMEGA 32D4 i w związku z nimi mam pytania:

1 Ile kanałów PWM ma pierwszy (w specyfikacji Atmela nie ma nic na temat pwm)?

2 Gdzie można dostać "nazwę" (nie wiem jak to się poprawnie nazywa 😳 ) dyrektywy $regfile, tak jak np. dla attiny2313 jest "attiny2313.dat"?

Link do komentarza
Share on other sites

Ten at89... to mikrokontroler z rodziny 8051 jeśli się nie mylę, więc musisz użyć bascoma 8051 (jeśli tak bardzo chcesz w nim pisać). Do XMeg z kolei potrzebujesz odpowiedni programator (no i do tej 51 też). Nie myślałeś, żeby użyć jakiegoś taniego ARMa? Coś z rdzeniem cortex m0 spokojnie dostaniesz poniżej dyszki (LPC111x, tylko obudowa w rastrze 0,5mm), i odpada potrzeba stosowania drogich programatorów, można sobie poradzić tylko przejściówką UART-RS232 lub UART-USB, bo mają bootloadery.

Link do komentarza
Share on other sites

I chyba najdrożej 😋 Na dobry początek to bym odradził w ogóle bascoma, uzależnia gnida mocno, a potem problematyczna jest przesiadka na inną rodzinę uC (choćby po to, żeby było taniej, o większych możliwościach nie wspominając, 32bit ARM Cortex-M0, 32K Flash, 8K RAM, LQFP48, 50MHz za 9,89 - lpc1114).

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

Pytanie tylko ile robotów budujesz. Jak jednego to jaka jest różnica czy mikrokontroler kosztuje 5zł czy 15zł? A tam gdzie masz więcej tutoriali, dostęp do kodu itd. zaoszczędzisz godziny przy pracy nad oprogramowaniem.

LPC1114 to jak najbardziej dobry wybór, ale z pewnością nie jedyny słuszny 😉 Procesor nie ma znaczenia zbytniego - do pierwszego robota najlepiej weź taki procesor z którym ktoś znajomy może Tobie pomóc. Zaoszczędzi to Tobie wielu problemów.

Link do komentarza
Share on other sites

Oczywiście, że nie jest to jedyny słuszny wybór, ale podałem go m.in z tego względu, że jest na forum kurs programowania ARMów, z czego jeden cykl oparty jest właśnie o ten tani, przyjemny uC.

Link do komentarza
Share on other sites

A więc TAk, po kolei.

Sugerując po pytaniu nr.2, kolega chce programować w BASCOM, a wiec tak pierwszy procesor (AT89C55) koledze odradzam, nie dla tego że to 8051, ale dla tego że trzeba do jego zaprogramowania programator równoległy, a ten najtańszy nie jest. Nawiązując jeszcze do tego AT89C55 to nie ma żadnych kanałów PWM, trzeba by go realizować programowo, czego też nie polecam.

ATXMEGA - przerost formy nad treścią, mało opisane w naszej literaturze, i nie wiem czy w BASCOM AVR go ruszysz. Ogóle CPU które jakoś w naszym kraju nie robi furrory jak ATMegi, swego czasu.

Co bym polecił ?

Widzę że chcesz sporo portów I/O to właściwie tu kwalifikują się dla BASCOM AVR 2 CPU, mianowicie:

ATMega324 - 32KB FLASH, 2KB RAM i 1KB EEPROM, do tego 6 kanałów PWM, 32 kanały PCINT

zegar do 20MHz..

ATMega32 - podobne parametry pamięciowe, tylko że ma 4 kanały PWM, brak PCINT i zegar standardowo do 16MHz.

Ale wybór zależy od tego co chcesz podpiąć pod CPU, 4 kanały PWM to w sumie 4 silniki da radę pociągnąć.

Link do komentarza
Share on other sites

To może ja troszkę sprostuję o co chodzi. Jestem uczniem liceum, do tej pory popełniłem 5 minisumo każdy był sterowany gotową elektroniką od simsa ponieważ startowałem w walkach robotów na UTP w Bydgoszczy, gdzie uczelnia chce się promować robiąc konkurs walk robotów dla szkół, dając im elektronikę, czujniki oraz ewentualną pomoc "wiedzową". Chciałbym w te wakacje zrobić nowego robota już z własną elektroniką i programem w bascomie, a nie w C jak proponuje uniwersytet. Robiąc samemu płytkę chciałbym wstawić tam coś szybszego niż ATmega 32, z której do tej pory korzystałem. Nie wiem czy to właściwa droga, ale szukałem czegoś o większej częstości taktowania dlatego podałem te procki. Planuję zrobić jednego, ewentualnie 2 roboty, a koszty częściowo i tak pokrywa szkoła więc nie jest to największy problem. Posiadam programator USB ASP czy wystarczyłby on do tamtych procków? Czy coś innego oprócz tych ARM'ów byłoby warte zakupu?

Link do komentarza
Share on other sites

Jeśli miałeś styczność z C i jakoś sobie radziłeś, to nie zaczynaj z Bascomem - raczej nie warto 😉

Po Co CI szybszy uC niż Atmega32, 16Mhz Ci nie wystarczało? Czy chcesz szybszy "bo tak"?

Link do komentarza
Share on other sites

Tak na prawdę to od programowania w zespole mam kolegę, C mieliśmy w szkole i na warsztatach i jakoś sobie nie radziłem (orłem z informatyki to ja nie jestem), natomiast bascom jest dla mnie bardziej prosty i zrozumiały, ale ostatecznie to i tak nie ja będę pisać program wiec to inna sprawa, natomiast co do procka zdarzało się wiele razy, że robot się przycinał albo reagował z bardzo dużym opóźnieniem. Z tego co nam powiedziano było to spowodowane przez zbyt rozbudowany program w C (zbyt rozbudowany język z dużą ilością bibliotek jak na mikrokontroler) i że można by było zrobić to prościej np w bascomie poza tym jeżeli chodzi o bascoma to ma nam kto ewentualnie pomóc w razie jakiś problemów z programem. Wracając do procka, chcemy uzyskać coś lepszego i sprawniejszego od poprzednich wersji naszego robota, a przy okazji zrobić to od 0 mogąc się wykazać jakąś wiedzą. Po prostu skoro już robić całą elektronikę samemu to chyba warto zrobić coś innego niż dotychczas, a przy okazji może coś nawet podkręcić czy poprawić.

Link do komentarza
Share on other sites

Bez oglądania Waszych robotów zaryzykuję połowę piw jakie postawili mi użytkownicy na Diodzie, że te przycinki to była jednak wina złego softu 😉 Zresztą jeśli Bascom to nic innego nie znajdziecie, możecie wybrać np Atmege128, ale to da Wam tylko więcej I/O - moc obliczeniowa będzie podobna. Są jeszcze Xmegi, ale o tym to pewnie dużo nie słyszeliście 😉 Ale to już skrajność, Bascom zaczyna je ledwo co obsługiwać, więc za dużo się o tym nie dowiecie, a możliwości zdecydowanie za duże.

Zobacz jak zbudowane są najlepsze roboty minisumo z Diody:

https://www.forbot.pl/forum/robots_list.php?sort=s_rate_desc&tag=Minisumo

Tam w cale nie siedzą wielkie potwory chłodzone ciekłym azotem 😉

Link do komentarza
Share on other sites

Wiem, na analizie wszystkich botów z diody i nie tylko spędziłem niemało czasu, po prostu piszę to co mi powiedziano. Odnośnie xmegi przeczytałem prospekt atmela i najróżniejsze opisy tych procków, chciałem je zastosować, ale nie wiem jak by je bascom obsłużył.

Link do komentarza
Share on other sites

Tzn. przycinanie się robotów, to tak jak mówi Traker to na 95% wina źle napisanego oprogramowania. Ja raczej nigdy na AVRach nie przekraczałem 8MHz, a pisałem nawet program na CPU taktowanym 128KHz. Wzrost mocy obliczeniowej po prostu niewiele wam/tobie da, jak nie umiecie optymalizować kodu, a w szczególności wykorzystywać ile się da Hardweru (sprzętowa modulacja PWM, czy nośnej dla czujników IR).

Zresztą w BASCOMie trudno mówić o optymalizacji kodu, jest ona co prawda w pewnym stopniu możliwa, ale wymaga sporo wiedzy i kombinowania jak to zrobić nie mając tego, tamtego, i będąc ograniczonym przez specyfikę tego języka tu i tam.

Jeżeli jednak już potrzebujecie mocnego CPU to polecił bym wam jednak tą ATMege324, możecie ją bez obaw puścić na 20MHz, a i przetakt do 24MHz pewnie by wytrzymała.

No chyba że nie boicie się innych rodzin procesorów to wspomniane tu ARMy z Cortex-M0, lub dsPIC30F4011 - który jest 16bitowym procesorem z 40bitowym kooprocesorem DSP, i może być taktowany do 120MHz przez PLL co daje 30MIPS.

Ale należy pamiętać że PICi są w naszym kraju niestety mało lubiane, a co za tym idzie wsparcie dla nich jest liche, no i programowanie tylko w C. Nie ma żadnego odpowiednika BASCOMa dla nich.

Link do komentarza
Share on other sites

Dziękuję za pomoc. Jeszcze tylko mam 3 pytania:

1. Czy ARM'y mogą być programowane w bascomie?

2. Czy można do ich programowania użyć programatora USB ASP?

3. Który z nich mam wybrać (Atmega 324, Atmega 88, Atmega 168, ARM lpc 1114)?

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.