Wstęp do programowania

Do kogo skierowany jest ten kurs?

Kurs pisany jest z myślą o osobach które nigdy nie miały styczności z programowaniem, ale znają podstawy elektroniki (opanowały materiał z pierwszych 15 lekcji z kursu elektroniki) i zapoznały się z informacjami dot. systemów liczbowych.

Po co mam się uczyć programowania?

W zasadzie operacje, które wykonuje zaprogramowany mikrokontroler, mogą z powodzeniem wykonać układy logiczne o których mówiliśmy już na kursie elektroniki (lekcja 12, 13, 14). To prawda, ale problemy będą się pojawiać, gdy będziemy chcieli zbudować nawet średnio zaawansowane urządzenie. Może się wtedy okazać, że będziemy musieli połączyć ze sobą wiele układów logicznych. W takiej sytuacji musielibyśmy zmierzyć się z licznymi problemami: od znacznej złożoności takiego obwodu, przez problemy z odpowiednim połączeniem ze sobą wszystkich układów logicznych, kończąc na dużych rozmiarach takiego obwodu i sporym zużyciu prądu. Nawet jeśli zwycięsko przejdziemy przez te wszystkie trudności może się okazać, że nasz obwód z różnych powodów chcemy poddać nawet niewielkiej modyfikacji. Co wtedy? Ingerowanie w misternie połączoną sieć układów logicznych na pewno byłoby trudne i pracochłonne.

Z tego powodu umiejętność programowania, oprócz tego że obecnie bardzo modna i poszukiwana na rynku pracy, otworzy przed Wami możliwość tworzenia nawet bardzo skomplikowanych urządzeń zajmujących stosunkowo niewiele miejsca, a poza tym dokonywanie ewentualnych modyfikacji będzie stosunkowo proste.

Czym jest ten mikrokontroler, który będziemy uczyli się programować?

Mikrokontroler (µC) jest to pojedynczy układ scalony zawierający w swojej budowie jednostkę arytmetyczno-logiczną (ALU), pamięć danych (RAM), pamięć programu, porty wejścia-wyjścia oraz inne dodatkowe elementy jak interfejsy, przetworniki, timery.

W dużym uproszczeniu możemy powiedzieć, że jest to jakby mini-komputer sterujący pracą naszego urządzenia.

W ramach tego kursu będziemy pracować na 8 bitowym układzie z rodziny AVR, mikrokontrolerze ATmega8. Zgodnie z notą katalogową jest on wyposażony m.in. w:

  • 8kB pamięci Flash – pamięć trwała, dane w niej zapisane nie znikają po wyłączeniu urządzenia, można ją przeprogramować poprzez skasowanie i ponowne nadpisanie danych (ok. 10000 razy), zapisujemy w niej przede wszystkim kod programu i wartości stałe;
  • 512B pamięci EEPROM – dane w niej zapisane nie znikają po wyłączeniu urządzenia, można je zapisywać ok. 100000 razy;
  • 1kB pamięci SRAM – przechowuje dane do momentu wyłączenia urządzenia;
  • jednostka arytmetyczno-logiczna ALU wykonująca obliczenia;
  • 23 linie wejścia/wyjścia służące wprowadzania i wyprowadzania danych do i z µC.

Zwróćcie uwagę na to, że wielkość pamięci jest raczej niewielka. W związku z tym istotne jest zwracanie szczególnej uwagi na to, by pisany program nie był zbyt zbyt długi. To raczej uwaga na przyszłość, ponieważ zaczniemy od bardzo prostych i krótkich programów :)

Którego języka programowania najlepiej zacząć się uczyć?

Istnieje kilka różnych języków programowania mikrokontrolerów (i jak to zwykle w życiu bywa każdy z nich ma swoje plusy i minusy, a zalety jednego są jednocześnie wadami kolejnego i na odwrót), oto najpopularniejsze z nich:

Najprostszy jest język basic. Z jego pomocą można stosunkowo szybko uzyskać widoczne efekty, co tym bardziej zachęca osoby początkujące. Niestety program napisany w tym języku zajmuje sporo miejsca i jest dość wolny, dlatego nie jest on używany w szeroko rozumianym przemyśle, używają go raczej hobbyści i amatorzy.

Nieco trudniejszy jest język C, aby go opanować musimy zdobyć większą wiedzę dot. chociażby budowy mikrokontrolera, a efekty pracy będą widoczne nieco później. W zamian za włożony trud program będzie działał szybciej niż ten napisany w basicu. Niemniej jednak jego największą zaletą jest uniwersalność – to właśnie w tym języku głównie programuje się mikrokontrolery, więc jego znajomość na pewno doceni Wasz ewentualny pracodawca.

Najtrudniejszy z wymienionych tu języków z pewnością jest asembler, wymaga on bardzo dużej wiedzy dot. budowy mikrokontrolera i sporej cierpliwości w oczekiwaniu na widoczne efekty programowania. Główną zaletą tego języka jest duża szybkość wykonywania operacji.

W ramach tego kursu skupimy się na języku C, choć niekiedy prawdopodobnie będziemy się odwoływać także do asemblera.

Co jest niezbędne aby zaprogramować mikrokontroler?

1. Komputer z zainstalowanym kompilatorem oraz środowiskiem programistycznym AVR Studio.

Kompilator to po prostu program umożliwiający użytkownikowi pisanie programów w języku źródłowym (w naszym przypadku będzie to język C), a także umiejący przetłumaczyć go na język wynikowy, maszynowy – zrozumiały dla mikrokontrolera.

Istnieje wiele różnych kompilatorów, jednak my podczas tego kursu będziemy używać w pełni darmowego kompilatora AVR-GCC stworzonego do programowania mikrokontrolerów z rodziny Atmega. Aby go zainstalować wystarczy kliknąć poniższy link:

http://sourceforge.net/projects/winavr/files/

lub ściągnąć  tu.

Kolejnym etapem będzie zainstalowanie środowiska programistycznego AVR Studio wersji 4. Można jej poszukać na stronie www.atmel.com lub pobrać tu

2. Programator

Jest to urządzenie, które fizycznie połączy Wasz komputer (najczęściej przez złącze USB) z programowanym mikrokontrolerem. Jeśli kupiłeś programator w internetowym sklepie elektronicznym CELTOR osobno lub w zestawie do nauki programowania, poniżej przedstawiam krok po kroku co trzeba zrobić:

a) Podłącz programator do PC i poczekaj na zainstalowanie automatyczne sterownika. Jeżeli sterowniki do programatora nie zainstalują się automatycznie to wykonaj poniższe kroki:

- Pobierz sterowniki  tu:

- Rozpakuj sterowniki

- Wejdź do panelu sterowania > menadżer urządzeń – na liście powinieneś mieć USBasp z wykrzyknikiem (oznacza to niepowodzenie podczas instalacji)

- Kliknij właściwości USBasp i zrób aktualizuj sterownik, następnie wskaż ścieżkę dostępu do sterownika z poprzednio rozpakowanych sterowników (libusb_0.1.12.1)

- Jeżeli w tym momencie windows mówi że sterownik nie jest podpisany cyfrowo to należy przejść do kolejnego kroku i wyłączyć na czas instalacji wymagany pod windowsem podpis. Sposób jak to wykonać pod win8 jest tu.

- Po wyłączeniu pod windowsem opcji wymaganego podpisu cyfrowego przeprowadź ponownie instalację sterownika

- Od tego momentu powinien działać programator.

b) Ściągnij program do obsługi programatora, np: Sina Prog dostępny tutaj i zainstaluj na swoim PC.

3. Mikrokontroler

W swoim kursie będę pracować na Zestawie do nauki programowania, który w swojej ofercie ma internetowy sklep elektroniczny CELTOR. Jest on dostępny w dwóch wersjach: podstawowej i rozszerzonej, która dodatkowo zawiera wyświetlacz. Na początku wystarczy nam podstawowa wersja, niemniej jednak w późniejszych etapach kursu z pewnością będziemy wykorzystywać wyświetlacz.

2 myśli nt. „Wstęp do programowania

Dodaj komentarz