Dobra, bawiłem się wystarczająco dobrze z Arduino, że czuję się z tym całkiem dobrze. Wszystko, co zrobiono teraz, bardziej uczy się elektroniki niż jej strony w Arduino.
Jaki jest następny etap mojej nauki? Arduino to połączony programator / kontroler, więc prawdopodobnie muszę przerwać to łącze i zacząć pracę z układem kontrolera oddzielnym od kontrolera, tak myślę? Czy ktoś może skierować mnie we właściwym kierunku?
Odpowiedzi:
Oto kilka wskazówek dotyczących pracy z AVR i C.
Zacznij od wbudowanego C z ATmega32 (seria ATmega AVR)
źródło
Zgadzam się z Joby - Arduino jest świetne, ale zawsze czuję się przytłoczony ramami, którymi mnie otaczają. Chciałbym przejść do używania prostego C na twoim Arduino i zbudować wiele funkcji biblioteki, które one zapewniły od zera. Generalnie wolę głębię przed szerokością - nie zaczynaj od innej rodziny mikrokontrolerów, używając więcej dostarczonych frameworków. Dowiedz się więcej o tym, jak samodzielnie wdrożyć niektóre z tych funkcji.
Zacznij od działającego programu i zamień wywołania biblioteki Arduino na własne wersje, jedna funkcja na raz. Dowiesz się wiele na temat rejestrów kontrolnych, synchronizacji, operacji bitowych itp., Jeśli jeszcze tego nie zrobiłeś. Przeczytaj dogłębnie arkusz danych ATMega328 - wszystko, czego potrzebujesz, znajduje się w środku.
Wypróbuj inne IDE, takie jak AVR Studio lub Code :: Blocks. Poznaj zestaw narzędzi GCC. Wypróbuj bardziej zaawansowane techniki kodowania - testy jednostkowe, pokrycie, profilowanie, sprawdzanie kłaczków / szyn. Umieść RTOS na Arduino.
Połączony programator / kontroler nie jest oznaką słabości - to tylko wybór projektu. Jedyną „słabością”, która może z tego wynikać, jest brak debugowania w obwodzie. Kup smoka AVR, a będziesz go lizał za 50 USD.
źródło
Myślę, że to, czego należy się nauczyć, zależy od tego, co chcesz zrobić, czego Arduino nie może zrobić. Oznacza to, że nie widzę sensu w programowaniu podobnego układu do robienia tych samych rzeczy, ale trudniejszymi środkami.
Oto kilka słabości Arduino:
Mogę sobie wyobrazić dwa kierunki:
Mogę dodać więcej szczegółów, jeśli skomentujesz, który kierunek jest bardziej atrakcyjny. (Drugi jest zdecydowanie tańszy.)
źródło
Naucz się I2C, SPI, 1wire i spróbuj połączyć czujniki z takimi interfejsami. Przeczytaj wiele arkuszy danych takich czujników i spróbuj zrozumieć wszystko w nich. Zadawaj pytania, gdy utkniesz. Naucz się MODBUS (RTU / ASCII / TCP) lub podobnego protokołu, który może otworzyć twoje urządzenie na świat po osadzeniu go w urządzeniu. Naucz się ogólnej elektroniki i spróbuj połączyć przekaźniki, triaki, co jest podnoszone i rozwijane, co jest pozyskiwaniem i tonięciem, jak rysować schematy i podłączać podstawowe sterowniki do MCU.
źródło
Na początek możesz chcieć przejść z Arduino jako platformy do AVR jako platformy. To znaczy, naucz się programować / używać dziewiczego mikrokontrolera AVR dla swoich projektów zamiast Arduino. W ten sposób nie będziesz musiał kupować kolejnej tablicy Arduino dla każdego projektu, który wykonujesz, ani do robienia projektów z przyjaciółmi. Jest to dość prosty krok (Arduino to zwykły mikrokontroler AVR Atmel, ale ze specjalną płytką i bootloaderem), ale jest duży do sprzedaży / przekazywania projektów znajomym. Zestaw narzędzi jest podobny: używasz avr-gcc lub avr-g ++ z make w połączeniu z narzędziem programistycznym do zainstalowania programu.
źródło