Czy wskazane jest pozostanie przy Arduino IDE?

24

Czy lepiej jest przejść do studia AVR (lub innej lepszej alternatywy?) Za pomocą Arduino IDE. Czujesz, że to takie proste i dziecinne. Muszę poznać pomysł i wybór ekspertów.

Anubis
źródło
1
Dlaczego po prostu nie wypróbujesz studia AVR? Tylko Ty możesz zdecydować, czy odpowiada Twoim potrzebom i co jest dla Ciebie szybsze / łatwiejsze .
PetPaulsen
3
@PetPaulsen tak, wiem, że to najlepszy sposób. Zrobię to wkrótce (prawdopodobnie jutro). Ale chciałem tylko wiedzieć, jak widzą to inni. W ten sposób możesz nauczyć się o wiele więcej rzeczy
Anubis,
Arduino Visual Studio Pro plugin został niedawno zaktualizowany, by obsługiwać Atmel Studio 6.1 . Instalacja trwa mniej niż 10 minut, każdy szkic Arduino można otworzyć, edytować, kompilować, przesyłać i wiele innych funkcji, takich jak monitory szeregowe, eksplorator przykładów i opcjonalny debuger Arduino USB
Visual Micro

Odpowiedzi:

19

Ogromną zaletą korzystania np. Z AVR Studio jest możliwość korzystania ze wszystkich bibliotek stworzonych dla ATmega168 / 328 przed powstaniem Arduino. Biblioteki FFT, biblioteki do korzystania z niektórych zakupionych przez Ciebie niejasnych układów scalonych, podstawowe filtry cyfrowe i wiele innych można znaleźć na AVRfreaks i setkach innych stron z hobby.

Możesz także napisać bardziej wydajny kod, jeśli nauczysz się korzystać ze standardowych bibliotek AVR i zapoznasz się z arkuszem danych mikrokontrolera (lub samouczkami). W przypadku prostych aplikacji kod arduino jest łatwy do napisania i debugowania. Czasami jednak chcesz lepiej kontrolować czas. AnalogRead()potrzebuje 100µs do wykonania. Odpowiada to 10 ksps (tysiące próbek na sekundę). Możesz łatwo pompować to do 70ksps, jeśli uzyskasz dostęp do kodu niskiego poziomu dla ATmega168 / 328. Możesz to wszystko zrobić w Arduino IDE, oczywiście, ale w pewnym momencie twoje projekty mogą stać się zbyt złożone i będziesz chciał pisać własne biblioteki z szybszymi funkcjami. AVR Studio może być bardziej odpowiedni do tego.

Ponadto, jeśli kiedykolwiek chcesz zaprogramować dowolny układ AVR inny niż oferowany przez Arduino, potrzebujesz programatora i innego IDE. Małe projekty wykorzystujące 1kB kodu można wykonać na ATtiny. Możesz kupić kilkanaście z nich za cenę jednego ATmega328. Te układy są tanie i mają większość możliwości Arduino: I2C, SPI, ADC. Możesz nawet znaleźć biblioteki, które dodają interfejs USB HID! Żadnych sterowników szeregowych ani nic!

Osobiście najpierw piszę kod w Arduino IDE, bez optymalizacji kodu. Jeśli to działa, kod ten można łatwo przepisać do standardowych bibliotek C ++ i zwiększyć wydajność.

Jonny B. Dobrze
źródło
26

Jest to proste, ponieważ musi być dostępne dla wszystkich i to działa: każdy i jego młodsza siostra mogą programować Arduino.

Jeśli uważasz, że możesz poradzić sobie z czymś takim, jak programowanie rzeczywiste , na pewno bym to zrobił. Będziesz musiał napisać więcej kodu, ale także będziesz mieć większą kontrolę. Ważna kwestia: biblioteka Arduino jest strasznie nieefektywna: działa jak DigitalWritei DigitalReadmoże być wykonana nawet 50 razy szybciej .

stevenvh
źródło
Wow, nigdy nie zdawałem sobie sprawy, że to było tak nieskuteczne. Wiedziałem, że były narzuty, ale ... wow.
Wielomian
2
Dzięki za wiadomości o DigitalRead/Write. Nigdy tego nie wiedziałem ...
Anubis
7
@Anubis - dopiero niedawno odkryłem JeeLabs. Mają jeden z najlepszych blogów , jakie kiedykolwiek widziałem. Zdecydowanie polecana lektura.
stevenvh
2
Jakiś czas temu pojawiło się pytanie dotyczące przyspieszenia cyfrowego IO Arduino: electronics.stackexchange.com/questions/22585/...
Jon L
12

Większość odpowiedzi dotyczyła użycia tablicy Arduino jako standardowej płyty AVR. Ale możesz także użyć bardziej zaawansowanego IDE i nadal korzystać z prostoty kodowania Arduino i wbudowanych bibliotek (wraz z wyżej wymienionymi wadami). EngBlaze właśnie zrobił tutorial na ten temat: Tutorial: Korzystanie z Atmel Studio 6 z projektami Arduino

ViennaMike
źródło
3

Arduino IDE handluje wydajnością kodu dla wygody i szybkości rozwoju małych projektów. Ponieważ eksperci mają również terminy , całkowicie dopuszczalne jest użycie Arduino IDE do szybkiego sprawdzenia koncepcji lub pomocy w debugowaniu innego projektu.

Jeśli chcesz specjalizować się w tworzeniu oprogramowania wbudowanego, musisz mieć możliwość korzystania z bardziej zaawansowanych narzędzi programistycznych, takich jak AVR Studio lub avr-gcc i preferowane IDE.

Wykraczanie poza opanowanie narzędzi programistycznych, poznanie wewnętrznych zasad działania mikrokontrolera i znajomość pewnego zestawu jest zdecydowanie zaletą, jeśli zamierzasz pracować na systemach z małą pamięcią i / lub niskim zapotrzebowaniem na moc i / lub wysoką wydajnością.

Sylvain
źródło
Dzięki za szczegółową odpowiedź, wolę to. Z pewnością się z tym zgadzam, szczególnie w ostatnim punkcie. Chociaż jestem nowy w procesorach Atmel, wiem trochę więcej na temat wewnętrznej organizacji PIC i nie mogę soskomplikować kodów asemblera. Choć wydaje się to trochę trudne, możesz dowiedzieć się, jak dokładnie zachowuje się mikrokontroler. Myślę, że wielu uzna tę odpowiedź za przydatną. Mam nadzieję, że dostaniesz więcej głosów: D .. (i to jest twoja pierwsza odpowiedź, co?).
Anubis,
2
W dzisiejszych czasach nie ma prawie żadnej sytuacji, w której płynna w asemblerze (możliwość kodowania bez ciągłego przeglądania dokumentacji) jest w ogóle przydatna. Opanowanie kompilatora , znajomość jego załamań i dobrych opcji jest o wiele bardziej przydatne. Powodzenia.
Sylvain,