Skocz do zawartości

Wybór języka po raz kolejny


Pomocna odpowiedź

Są różne produkty takie jak Arduino Uno czy Arduino Duemilanove. Jakie są między nimi różnice?
Jedyną znaczącą różnicą pomiędzy Uno a Duemillanove i jego klonami (np DFrduino w moim sklepie), jest sposób komunikacji przez USB. UNO może być hostem USB, co oznacza, że można do niego podłączyć mysz, klawiaturę, pendrive, cokolwiek. Nie są to jednak rzeczy, od których będziesz zaczynał. UNO ma też o ile dobrze pamiętam większą wydajność prądową wyjścia 3,3V.
  • 1 miesiąc później...

Witam, mam do Was pytanko:

Mianowicie jestem po technikum elektronicznym i miałem już do czynienia z micro kontrolerem 8051 (nie mylić z 'opanowałem') programowaliśmy go assemblerem. Z tego co wyczytałem we wcześniejszych postach jest to bardzo dobry język na rozpoczęcie przygody z programowaniem i pozwala on dobrze poznać architekturę micro klocka, ale na dłuższą metę jest zły. Na studiach liznąłem troszkę C.

I zastanawiam się teraz jakich klocków używać przy moich przyszłych zabawach z robotami i w jakim języku je programować??

Słyszałem, że 8051 to przeżytek i warto się przerzucić na coś lepszego.

Oczywiście chce się rozwijać i nie chciałbym aby technika mnie wyprzedziła.

Widzę, że dużą popularnością cieszą się klocuszki z rodziny AVR dlatego myślę, aby właśnie ich używać i programować je w C. Czy to dobry pomysł? I jakie konkretne AVR mi polecicie? Dobrze by było, gdyby w budowie były dość podobne do 8051

Z góry dziękuję za odowiedź

AVR'y - atmega8, 16, 32 a w zasadzie wszystkie, różnią się tylko parametrami np. ilość pamięci różnego typu ilość we/wy, pwmy, adc itd. programuje się wszystkie tak samo,

polecam C, ja sam od niego zacząłem i uważam to za najlepszy wybór, daje większą kontrolę niż bascom a jest łatwiejszy do pisania niż asm

jak masz dużo kasy to możesz wskoczyć od razu na ARM'y

Każdy poleci Coś innego 🙂 AVRy są proste, ARM7 są trochę trudniejsze (ale trochę), Cortex są jeszcze trudniejsze. Cenowo to nie jest takie oczywiste. Zestaw Discovery dla STM32 (cortex) z programatorem to koszt 50zł, płytka z jtagiem i lpc13xx (Cortex) to koszt 90zł, płytka z LPC2103 to 100zł (ARM7)(programowanie po RS232).

A do AVRów:

- programator: 30-40zł jeśli się nie ma LPT

- płytka z samym tylko prockiem atmega16: 60zł i jeszcze ją trzeba podłączać

Ew. Arduino za 100zł (ale to już coś nieco innego)

Jak widać koszt wszędzie jest podobny. Koszty samych procesorów też są zbliżone.

Co innego jeśli się samemu robi - czyli posiada się dostęp do drukarki laserowej. Wtedy kosztem czasu można zrobic pod AVRy dość tanio i do tego się nauczyć projektowania płytek PCB.

Osobiście polecam procki z rodziny Cortex-M3 a dokładnie ten układ http://kamami.pl/index.php?ukey=product&productID=136174. Za niecałe 100zł dostajesz układ procesora razem z programatorem. Płytka jest bardzo sprytnie pomyślana, możesz odczepić od niej programator, a płytkę wykorzystać w robocie. Ma wyprowadzenia dipowe, co ułatwi lutowanie.

W podobnej cenie możesz kupić w miarę mocnego AVRa z programatorem LPT, albo ISP. Ale na pokazanej wyżej płytce masz pełnego JTAGa, czyli możliwość debugowania. A wiadomo że mając debugera dużo łatwiej nauczysz się procka. AVRa niestety nie podebagujesz, bo jtagi do AVRów są bardzo drogie.

Dodatkowo Cortex jest procesorem znacznie mocniejszym od AVR. Jeżeli miałbyś iść w AVR to powinieneś wybrać coś z serii XMega, które są dość drogie. W ogóle AVR od jakiegoś czasu mocno podrożały, przekraczając cenę słabszych ARM-7 czy cortexów. Jest to dla mnie dziwna sytuacja, ale nie wnikam.

Kolejnym plusem na rzecz Cortexów jest napięcie zasilania wynoszące w ich przypadku 3,3V. ATMega do pracy na pełnej prędkości potrzebuje 5V. Projektowanie układów z 3,3V prockiem uczy poprawnych nawyków, bo wszystkie nowoczesne procesory pracują na takim napięciu (lub niższym). Większość nowych układów np. pamięci flash pracuje na 3,3V lub niższych. Mając 5V procka pojawia się dodatkowy problem.

Jeżeli chodzi o zastosowania komercyjne to oczywiście popularniejsze są procki ARMowe. U przyszłego pracodawcy wiedza na temat procków 32-bitowych będzie bardziej ceniona, niż wiedza na temat 8-16 bitowych hybryd jakimi są ATMegi (choć w specyficznych sytuacjach mogę się mylić).

Trochę tendencyjnie się rozpisałem, ale naprawdę nie widzę żadnej linii obrony dla układów ATMega. Nie wiem jak jest z XMega, pewnie lepiej. Mimo wszystko w przyszłym projekcie (jeżeli będzie) zamierzam zastosować jakiegoś cortexa.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...