Ta strona używa ciasteczek (cookies), dzięki którym możliwe jest między innymi poprawne wyświetlanie elementów strony, zapamiętywanie sesji użytkowników. Dodatkowo na stronie znajduje się skrypt Google Analytics oraz PIWIK (statystyki oglądalności). Znajdują się również skrypty przycisków serwisów społecznościowych Facebook, Twitter i Google+ oraz YouTube, które również mogą zapisywać ciasteczka.

Postanowienie Noworoczne ;)

Ocena użytkowników: 0 / 5

Gwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywna
 

Mamy początek nowego roku. Jest to czas gdy wiele osób czyni postanowienia noworoczne :) Wiadomo, odchudzanie, rzucanie palenia, więcej sportu, nauka języka, gry na instrumencie itp. Wśród tych podejmowanych noworocznych wyzwań, być może po raz kolejny tych samych co w roku minionym, może się znaleźć chęć nauczenia się programowania mikrokontrolerów, a dodatkowym bodźcem jest znaleziona książka pod choinką o tej tematyce.

Jeżeli jednak jest postanowienie a nie ma książki, to warto zainteresować się pozycją "Mikrokontrolery AVR - podstawy programowania" p.Mirosława Kardasia. Moim zdaniem, nie znajdzie się na chwilę obecną lepszej która by w prosty i przejrzysty sposób pomogła posiąść "tajemną" wiedzę i umiejętność programowania mikrokontrolerów. Piszę to w oparciu o własne doświadczenie. To właśnie dzięki tej książce w końcu pojąłem podstawy języka C. Wszystkie  książki które czytałem wcześniej bazowały na jakichś abstrakcyjnych przykładach, które nijak do mnie nie przemawiały. Nie wiem, może powodem wcześniejszych niepowodzeń jest mój zbyt mały rozumek, a Pan Mirosław po prostu znalazł sposób jak dotrzeć do tak ograniczonej przestrzeni ;). Niemniej książka jest warta polecenia dla kogoś kto nigdy nie miał do czynienia z programowaniem  w C, a powziął postanowienie że się tego C nauczy.

Skoro więc książka i zapał są, to czas zacząć pochłaniać jej rozdziały. I tu ważna rzecz, czytać należy po kolei rozdział za rozdziałem. Jeśli  któryś okazał się zbyt trudny, należy go przeczytać raz jeszcze, i jeszcze raz, aż w końcu temat w nim poruszany będzie w miarę zrozumiały. Jest to ważne dlatego że z każdym rozdziałem zagłębiamy się w tajniki języka C, a nie zrozumienie wcześniejszego rozdziału może sprawić że w następnym to już kompletnie nic się nie zrozumie. A to niestety może okazać się powodem do zarzucenia swojego noworocznego postanowienia ;). Na bazie własnego doświadczenia z tą książką, mogę napisać że dobre efekty przynosi również przeczytanie jej całej części teoretycznej kilka razy.

Tak więc, jeżeli zapał nie osłabł a nauka trwa dalej, w końcu dochodzi się do upragnionej części praktycznej. No i tu znowu pojawia się pokusa porzucenia postanowienia. Wiąże się ona głównie z tym że trzeba wyłożyć trochę gotówki aby móc zacząć przekładać teorię w praktykę. Zaczyna się więc szukanie po forach w internecie co kupić. Co odważniejsi zadadzą pytanie na forum w stylu: "Jestem początkujący, strasznie mnie kręci programowanie mikrokontrolerów ale nie wiem co muszę zakupić aby zacząć ćwiczenia praktyczne, a nie chcę sam kompletować części bo coś źle wybiorę i będę musiał płacić za kolejne wysyłki. Proszę o pomoc." Najczęściej w takim przypadku pojawia się odpowiedź: "kup zestaw uruchomieniowy/startowy firmy X". No i w wielu przypadkach w tym momencie zapał zanika. Okazuje się bowiem że nagle trzeba wyłożyć przynajmniej 300 zł na taki zestaw. Mało tego, pojawiają się kolejni doradcy którzy piszą żeby dołożyć jeszcze 100 zł albo i więcej, bo dzięki temu zestaw będzie przyszłościowy. Oczywiście, dla osoby majętnej to pikuś. Nawet jak się okaże że programowanie mikrokontrolerów nie wciągnęło, to sprzedaż za połowę ceny nie będzie tragedią. Jednak dla kogoś mniej zamożnego może być to powodem zniechęcenia, a jak jeszcze poczyta w internecie że próba nauki na stykówce będzie drogą przez mękę, to już w ogóle się odechciewa dalszej nauki.

W tym miejscu zakończę ten długi wstęp i przejdę do sedna tego co chcę w tym artykule napisać, a mianowicie jak tanio i bez męki rozpocząć programowanie mikrokontrolerów. Będzie to oparte na moim doświadczeniu w tej materii.

Podstawowe elementy które potrzebujemy to: mikrokontroler, dioda LED, rezystor, programator i płytka stykowa. Jest to niezbędne minimum aby móc zacząć w praktyce przygodę z programowaniem i sprawdzić czy programowanie mikrokontrolerów jest tym czym chcemy się zajmować. Nie ważne czy w ramach hobby czy też chcemy uczynić z tego źródło dochodu.

Płytka stykowa. Czytając czasami wpisy na forach odnoszę wrażenie że strasznie znienawidzona i używającym jej przysparzająca mnóstwa problemów. Generalnie osobom początkującym nie polecana. Hmm... Oczywiście ma swoje wady, ale gdy jest się świadomym tych wad można uniknąć wielu problemów. Moim zdaniem podstawową rzeczą na którą należy zwrócić uwagę przy pracy ze stykówką, jest grubość przewodów jakich używa się do połączeń pomiędzy poszczególnymi polami. Nie mogą być ani za cienkie ani za grube. Nie napiszę jakiej mają być dokładnie grubości, bo stykówki robi wiele różnych firm i ciężko określić czy wszyscy trzymają jakiś określony standard. Generalnie lepiej jest użyć przewodu cieńszego niż od razu wciskać taki o przekroju 1mm. Na początek powinny wystarczyć przewody z tak zwanej skrętki. Nawet jeśli się okaże że są za cienkie, to można końcówkę pogrubić poprzez złożenie jej na pół. Jeżeli jednak zdecydujemy się na grubsze przewody lub goldpiny, to trzeba mieć świadomość tego, że blaszki w polach stykówki w których były one używane rozszerzą się, co będzie skutkowało problemami z połączeniami w sytuacji, gdy włożymy w takie pole element którego wyprowadzenia będą mniejszego przekroju niż wcześniej użyte przewody. Kolejną sprawą na którą warto zwrócić uwagę, to sposób łączenia poszczególnych pól stykówki. Osobiście unikam jak tylko się da sytuacji, że przewody połączeniowe wiszą nad całą płytką stykową. Raczej staram się je tak przycinać i układać, aby leżały na powierzchni płytki stykowej. Dzięki temu są bardziej stabilnie zamontowane w gniazdach i unika się przypadkowego wypięcia przewodu. Ostatnia rzecz na którą warto zwrócić uwagę to zasilanie na stykówce. Niestety prąd na niej lubi błądzić, a dokładniej to zanikać. Dlatego oprócz korzystania z linii sygnałowych stykówki, przy większych projektach zasilanie również doprowadzam bezpośrednio pod piny zasilające danego mikrokontrolera, układu. Co prawda mikrokontrolerom w prostych projektach, delikatne wachania napięcia nie będą przeszkadzały, wszak pracować mogą one w dość szerokim zakresie napięć, o tyle już w bardziej rozbudowanym projekcie lepiej jest zadbać o właściwe zasilanie. Jako ciekawostkę napiszę że swojego pierwszego robota, zrobiłem właśnie na dwóch płytkach stykowych. Tutaj można znaleźć schemat na podstawie którego go robiłem. Możecie sobie wyobrazić jaka była to plątanina przewodów, a mimo to robot jeździł i omijał przeszkody, pomimo tego że był zmontowany na czymś takim  jak stykówka.

Stykówkę mamy, czas na programator. Najbardziej popularne są programatory typu USBAsp. Firm je produkujących jest niezliczona chyba ilość. Raczej odradzam zakup na zagranicznych portalach, a to z tej przyczyny że można tam trafić na programator który ma wgraną starą wersję firmware, co może skutkować tym że będą problemy z programowaniem mikrokontrolera przy niskich wartościach taktowania. No a próba wymiany takiego programatora pociągnie za sobą dodatkowe koszty, o ile w ogóle będzie możliwa. Najlepiej jest więc zaopatrzyć się w programator w jednym z rodzimych sklepów internetowych, upewniając się wcześniej że możliwy będzie zwrot w razie nieprawidłowego działania programatora. Osobiście zakupiłem programator firmy "Propox" po tym jak naczytałem się w internecie o problemach z programatorami firmy "LC coś tam". Mając więcej gotówki można skusić się na programator firmy Atnel. Jego wysoka cena bierze się z tego że jest on sprzedawany wraz z oprogramowaniem, które jednak pod macOS jest kompletnie nieprzydatne. Niemniej samo urządzenie jest solidne i posiada rozwiązania, których na chwilę obecną próżno szukać w innych dostępnych na rynku programatorach.

O rezystorze i diodzie to chyba nie ma co za dużo pisać. Oczywistą sprawą jest aby nie były to elementy typu SMD, lecz do montażu powierzchniowego THT. W zależności od tego jaki wybierze się kolor diody, należy dobrać właściwej oporności rezystor. Właściwy rezystor można wyliczyć korzystając z dostępnych kalkulatorów internetowych czy też korzystając z mojego programu "AVR Tool". Na początku zasilanie będzie i tak doprowadzane z programatora więc nie będą to jakieś znaczne rezystancje.

Na koniec zostaje wybór mikrokontrolera. Tutaj sprawa jest o tyle prostsza że jeśli nauka będzie opierała się na książce p.Kardasia to należy zakupić mikrokontroler ATmega32, bo na nim właśnie opierają się przykłady w części praktycznej książki. Gdy korzysta się z innych materiałów do nauki języka C, należy dobrać taki jaki jest używany w przykładach które mamy zamiar przerabiać.

W ten oto sposób mamy skompletowany cały sprzęt potrzebny do rozpoczęcia wykorzystywania języka C w praktyce, za około 50 zł. Wiem że dla wielu osób może to wydać się śmieszne. Czego można nauczyć się mając tylko jedną diodę? A można i to bardzo wiele. Począwszy od nauki obsługi portów mikrokontrolera w trybie włącz/wyłącz, poprzez korzystanie z wypełnienia PWM do sterowania jasnością diody a na załączaniu diody przyciskiem kończąc. Ktoś zapyta: "Jakim przyciskiem? Nic takiego nie kupiłem". Owszem nie kupiłeś, ale masz przewody połączeniowe. Nic nie stoi na przeszkodzie aby ich użyć do symulowania przycisku. No tak, tylko co mi da że nauczę się ściemniać i rozjaśniać diodę, albo załączać ją przyciskiem? Wyobraź więc sobie teraz że ta podłączona dioda jest silnikiem, którego prędkość regulujesz poprzez PWM, albo przekaźnikiem który załącza inne urządzenie. A Twój przewód jest krańcówką która włącza światło w szafie, pokoju czy gdzie tam jeszcze sobie wymyślisz. Sam więc widzisz że zwykła dioda może symulować wiele różnych urządzeń docelowych, a jeśli dodać do tego że tych diod będziesz miał 10, bo rzadko kto sprzedaje po jednej, to już w ogóle można robić cuda. Najważniejsze w tym wszystkim jest to, że nie wydało się fortuny aby się przekonać czy programowanie mikrokontrolerów nas wciągnęło czy też jednak nie. Jeśli się okaże że nuda i tragedia, to straty finansowe nie wielkie. Jeśli natomiast programowanie wciągnie, to można zacząć rozważać zakup zestawu startowego oraz innych podzespołów elektronicznych, aby tworzyć bardziej zaawansowane projekty.

Jak już wspominałem, głównym powodem napisania artykułu jest chęć pokazania że nie trzeba wcale wiele aby rozpocząć programowanie mikrokontrolerów. Skłoniły mnie też do tego wpisy "doradców" na forach, gdzie osoba dopiero zaczynająca przygodę z programowaniem mikrokontrolerów zadaje pytanie "Co kupić?" i otrzymuje porady w stylu "kup taki, lub inny zestaw startowy", "ze stykówkami się nie męcz bo się zniechęcisz, kup zestaw startowy", albo podaje się jej wręcz listę z już wybranymi elementami, tak jakby miała zaraz budować i oprogramować super urządzenia. Ręce opadają. Owszem zestaw startowy ma swoje zalety, ale z mojego punktu widzenia kupno takiego zestawu przez osobę która dopiero szuka sobie hobby, powołania, mija się z celem. Nie dość że może ją zniechęcić kwota jaką trzeba wydać na zestaw startowy, to jeszcze w przypadku nie załapania bakcyla programowania poniesie dość konkretne straty finansowe. Ponadto uważam że stykówka ma tą przewagę nad zestawem startowym, że uczy łączenia ze sobą różnych elementów elektronicznych. Początkujący dzięki temu szybciej ogarnie czym jest katoda i anoda w diodzie, a co za tym idzie czy steruje się zerem czy jedynką. Jak działa tranzystor, jak podłączyć kondensator, czujnik temperatury, przekaźnik. Dla starych wyjadaczy sprawy błache, dla początkujących powód do rwania włosów z głowy ;).

Wszystko co powyżej napisałem jest moim spojrzeniem na kwestię rozpoczęcia nauki programowania mikrokontrolerów. Sam przeszedłem tą drogę. Na zestaw startowy nie było mnie stać, a i po dzień dzisiejszy takowego nie posiadam. Natomiast doświadczenie jakie zdobyłem pracując na stykówce pozwoliło mi już zbudować kilka urządzeń elektronicznych. Na chwilę obecną mam  pobudowane płytki prototypowe z mikrokontrolerem, które wpinam w stykówkę i mam od razu całą filtrację zasilania dla mikrokontrolera zapewnioną wraz ze wszystkimi wyprowadzeniami portów mikrokontrolera.

No właśnie, filtracja zasilania mikrokontrolera. Jak widać na mojej liście zakupowej nie znalazły się żadne kondensatory. A to dlatego że do zabaw z diodą nie trzeba mieć super filtracji zasilania. I proszę mnie źle nie zrozumieć, filtracja zasilania mikrokontrolera jest bardzo ważna, ale na początku, przy jednej diodzie, można ją sobie darować. Oczywiście zakup dwóch, trzech kondensatorów potrzebnych do filtracji nie jest wielkim kosztem, i jak ktoś chce może sobie takie dokupić. Nie podniesie to w żaden znaczący sposób kosztów.

To chyba wszystko co chciałem napisać. Mam nadzieję że komuś to pomoże w dotrzymaniu noworocznego postanowienia ;).

Dodaj komentarz

Kod antyspamowy
Odśwież