Skocz do zawartości

Czy warto inwestować więcej czasu w arduino?


dejmieno

Pomocna odpowiedź

Cześć,

Mam do was pytanie, czy opłaca się w robotyce amatorskiej, przejść z arduino po ogarnięciu podstaw na czyste AVRy?

Arduino jest bardzo fajne i na początku super się przy tym bawiłem, mogłem praktycznie natychmiast zacząć działać z elektroniką i mikrokontrolerami. Jednak aktualnie wydaje mi się trochę mało ambitne i robi się trochę nudno. Nauka nowych rzeczy do arduino to praktycznie nauka wykorzystywania bibliotek. Po prostu nie czuję, że znam mikrokontrolery. Dodatkowo na co dzień pracuję w Javie i dla mnie takie arduino jest słabą odskocznią. No i chciałem również podszkolić się w C, ale po programowaniu arduino jakoś nie czuję żeby moje umiejętności C wzrosły znacząco.

Jednak z drugiej strony obawiam się ilości czasu jaki trzeba poświęcić żeby coś zrobić na czystym AVR. Czy ta inwestycja czasu jest opłacalna w robotyce amatorskiej? Czy to jest naprawdę taki duży przeskok w ilości kodu żeby np. napisać obsługę nadajnika RF? W arduino jest to zaledwie kilka linijek a w czystym AVR to pewnie z 100 linijek więcej 😉.

Czy da się na początku tworzyć roboty w oparciu o wbudowany zegar 1MHZ? Czy konieczny okaże się zewnętrzny oscylator? Pytam bo kiedyś próbowałem podpiąć pod Atmegę 328P oscylator 16MHZ no i miałem z tym duże problemy.

pozdrawiam,

Link do komentarza
Share on other sites

Wydaje mi się, że niepotrzebnie wprowadzasz tutaj dylemat. To nie jest decyzja z gatunku "albo albo". Przecież nikt ci nie zabrania nadal używać Arduino, a jednocześnie stopniowo poznawać inne środowiska. Ba! W samym Arduino możesz nawet mieszać wykorzystanie bibliotek i funkcji arduinowych z niskopoziomowym programowaniem AVR. To doskonały sposób na start, bo nie musisz się wszystkiego uczyć od razu — ja tak zaczynałem.

Co do zegarów, to wszystko się da, tylko po co, skoro możesz używać tych samych gotowych płytek?

Link do komentarza
Share on other sites

Ja miałem dokładnie takie odczucia, jak dejmieno. Dlatego teraz męczę się ( i Was 😉) jak napisać cuś w C. Ale nie ma się czego bać, kupujesz atmege (ja bym radził 8, 16, 32, albo 328) i programator jakiś ( z najtańszych to usbasp) jak chcesz to możesz też wykorzystać arduino jako programator. Ja osobiście wolałem dać 20 zł i mieć małą, wygodną płytkę, z niż targać arduino i wiecznie się zastanawiać gdzie on ma jaką linię programatora (Choć trzeba przyznać, że arduino programuje zdecydowanie szybciej niż usbasp) kupujeś jakąś płytkę stykową, kabelki do niej, instalujesz avr studio i jedziesz 🙂 kwarc to nie jest żaden problem, kupujesz kwarc, dwa kondensatory i ustawiasz fusebity w avrdude ( program obsługujący usbasp. Jest on w terminalu więc są na niego GUI ja polecam od siebie sinaprog) można bez kwarca migać diodą, ale jakikolwiek uart czy inne protokoły komunikacji to już raczej wymagają kwarca.

Link do komentarza
Share on other sites

Ja traktuje Arduino jako platformę testową. Składam na niej cały układ i dopiero jak rozwiąże wszystkie problemy zaczynam kombinować z układem dedykowanym. Fakt że wymusza to wygląd projektowanego układu, ale jest wygodne. Co do języka to większość i tak programuje w Arduino IDE (ewentualnie w jakimś kompilatorze z dodatkami) , sporo to ułatwia. Pojawiają się jakieś wstawki w C, ale bardziej skomplikowane funkcje jednak robię wykorzystując biblioteki do Arduino. Nie powiem że umiem C (nie to że słabo, ale że w ogóle, podobno im więcej faktycznie umiesz tym wydaje się że mniej wiesz), w dużym stopniu to ułatwia prace i później ją przyspiesza. Jeżeli myślisz o nauce C to możesz tak jak wcześniej już było powiedziane pisać cały kod w „czystym” C nawet dla Arduino.

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

Uwaga, niepopularna opinia: Moim zdaniem AVR to ślepa uliczka, lepiej uczyć się od razu STM32, najpierw przez biblioteki Arduino, potem HAL.

STM32 mają wielokrotnie wyższą moc, są 32-bitowe, mają tony świetnych peryferiów, 10/10.

Oczywiście C++ trzeba się nauczyć zupełnie niezależnie od platformy.

Link do komentarza
Share on other sites

Wydaje mi się, że tu jest jakieś nieporozumienie, trzeba rozróżniać trzy różne rzeczy:

1. Programowanie w "języku arduino" vs. "czystym C" — oczywiście można to robić zarówno na "gołych" mikrokontrolerach jak i z płytką arduino, używając albo Arduino IDE albo narzędzi z linii poleceń czy na przykład plugina do Eclipse. Można nawet "mieszać" i część swojego programu napisać w C a część z wykorzystaniem bibliotek Arduino. W ten sposób można stopniowo się wszystkiego nauczyć.

2. Programowanie płytki Arduino vs. programowanie "gołego" mikrokontrolera — tutaj także jest zupełna dowolność, można go programować w C, można w Arduino, można przez programator, można wypalić bootloader i przez serial, można używać Arduino IDE albo innego edytora, etc. Można też program napisać i testować na gotowych płytkach, a potem go wypalić na zrobionej samemu.

3. Programowanie przez port szeregowy vs. programowanie przez ISP — tutaj także pełna dowolność, można to robić z płytkami Arduino, można z "gołymi" czipami albo własnymi płytkami, można używać Arduino IDE, można używać czegoś innego, można to robić w C, można w Arduino, etc.

I teraz nie do końca wiadomo którą z tych trzech rzeczy miał na myśli kolega pisząc o "czystych AVR", ale w każdym przypadku nie jest to żaden dylemat — nie jest to coś na co trzeba się zdecydować i nie da się już wrócić. Każdej z tych rzeczy da się nauczyć stopniowo.

Link do komentarza
Share on other sites

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...

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.