Oto kolejna, prawdopodobnie najważniejsza część kursu elektroniki. Oczywiście nie ostatnia :)
Dowiesz się stąd w jaki sposób podłączyć i wykorzystać prosty mikrokontroler. W dalszej części tekstu będę korzystał ze skrótu uC. ( u - oznaczenie micro, C - pierwsza litera słowa Controller)
1. Czym jest mikrokontroler?
uC jest nazywany inaczej komputerem jednoukładowym. Dlaczego tak?
Wyobraź sobie komputer/ tablet/ telefon , przed którym właśnie siedzisz czytając ten artykuł. Z czego się składa? Więc po kolei:
- procesor z super szybką pamięcią cache
- RAM
- dysk twardy
- ekran
- karta graficzna
- karta dźwiękowa (zintegrowana zazwyczaj z płytą główną)
- porty pozwalające urządzeniu komunikować się z innym sprzętem (USB, stacja CD, czytnik kart SD itd.)
- klawiatura i myszka pozwalające człowiekowi sterować działaniem maszyny
Tak to wygląda w skrócie. Zadaj sobie teraz proste pytanie. Jakiej funkcjonalności potrzebuje robot pracujący w fabryce?
- musi przechować swój program
- musi dawać możliwość modyfikacji programu
- powinien posiadać możliwość komunikowania się z dodatkowym sprzętem (spawarką, szczypcami itd.)
- musi być w stanie poruszać się w swojej strefie pracy
- powinien informować człowieka o swoich działaniach
- człowiek musi w pewnym stopniu kontrolować jego działanie (wyłącznik zwykły, awaryjny, zmiana trybów pracy bez uciążliwego modyfikowania programu itd.)
Więc jakie podzespoły znane ze zwykłego komputera będą takiemu robotowi potrzebne?
- Procesor z niezbędną otoczką sprzętową
- RAM
- trwała pamięć nieulotna (w przypadku uC jest to pamięć flash)
- lampki lub ekran sygnalizujące pracę
- przyciski, klawiatury lub inne sposoby kontrolowania pracy maszyny
Mikrokontroler zawiera w sobie procesor, pamięć RAM i pamięć flash. Jest to więc samodzielny komputer, który można zaprogramować i wykorzystać do sterowania skomplikowanymi układami.
Jesteś tam jeszcze?
Tak?
To idziemy dalej.
Jest bardzo wiele rodzin mikrokontrolerów produkowanych przez różne firmy. Różnią się od siebie praktycznie wszystkim poza podstawowymi funkcjami i zasadą działania.
Rodzina mikrokontrolerów, którą zajmiemy się na tym kursie to AVR AtMega. Jest to popularna rodzina ośmiobitowych uC produkowanych przez firmę Atmel. Znajdują zastosowanie w wielu amatorskich konstrukcjach, ponieważ są wyjątkowo przyjazne dla początkujących, a to dzięki następującym cechom:
- podstawowy model - AtMega8a dostępny jest w cenie 5-6 zł
- w internecie jest ogrom materiałów dotyczących tej rodziny mikrokontrolerów
- specyfikacje udostępnione przez Atmel są przejrzyste i zrozumiałe nawet dla początkujących
- dostępne są środowiska pozwalające programować AVR w wielu językach ( C, Pascal, BASCOM, asembler)
- AVR posiadają bardzo wiele przydatnych i prostych w obsłudze funkcji
- programatory do tej rodziny uC można dostać w cenie 10-35zł lub złożyć samemu ,,na kolanie" z kilku oporników i kabelków, dostępne są programatory dla portów LPT, USB i RS.
Tak wygląda interesujący nas kontroler:
Jak widać jest to blok czarnego tworzywa wypakowany po brzegi elektroniką. Najbardziej interesująca nas część to wystające z niego ,,nóżki". Ten konkretny model posiada 28 wyprowadzeń. O funkcji pełnionej przez każde z nich dowiadujemy się z takiego oto schematu:
Czarna magia?
Teraz odczytamy podstawowe oznaczenia i wszystko się rozjaśni.
Mikrokontrolery zasilane są prądem stałym. W przypadku rodziny AVR jest to +5V (są modele zasilanie napięciami niższymi, ale nie będziemy się nimi teraz zajmować) .
VCC - jest to wyprowadzenie zasilania uC, podłączamy tu +5V
GND - masa, czyli inaczej uziemienie; podłączamy tu 0V
AREF - jest to wyprowadzenie związane z przetwornikami analogowo-cyfrowymi (ADC) , zazwyczaj podpinamy przez kondensator 100nF do masy
AVCC - kolejne wyprowadzenie powiązane z przetwornikami (o nich później), musimy podpiąć tu dobrze filtrowane +5V, do filtrowania używamy kondensatora 100nF i dławika 10uH (dławik to mały element indukcyjny służący do filtrowania napięcia)
RESET - na tym wejściu musimy utrzymywać stan wysoki, pojawienie się stanu niskiego spowoduje reset uC
OCxx ( OC1A, OC1B, OC2) - są to wyjścia timerów mikrokontrolera, timery to układy posiadające olbrzymią ilość funkcji, podstawowy cel do jakiego będziemy ich używać to sterowanie wypełnieniem, czyli inaczej utrzymywanie stanów 0 i 1 w odpowiednim stosunku do siebie, na przykład 75% czasu stan wysoki a 25% to niski. Można w ten sposób kontrolować na przykład prędkość z jaką kręci się silnik. Można nimi również generować sygnały o określonej częstotliwości, na przykład 36kHz wykorzystywaną między innymi w pilotach do TV.
XTALx - wyprowadzenia te służą do podpięcia zewnętrznego źródła taktowania (na przykład rezonatora kwarcowego), pozwala to nawet podwoić szybkość przetwarzania uC. AtMega posiada również wewnętrzne źródło taktowania o częstotliwości do 8 MHz, zewnętrzny kwarc może mieć do 16MHz.
ADCx - wyprowadzenia te to 10-bitowe przetworniki analogowo-cyfrowe, oznacza to że pozwalają zmierzyć i odczytać podawane na nie napięcie. Wynik zwracają w zakresie od 0 do 1024. Można ustawić je w tryb 8-bitowy i wówczas jest to 0-255. Są to jedne z najbardziej przydatnych wyprowadzeń stosowanych w robotyce amatorskiej.
SCK,MISO,MOSI - są to trzy wyprowadzenia służące do programowania uC; pracują w standardzie ISP (In System Programming), oznacza to, że nie musimy wyjmować mikrokontrolera z układu aby go zaprogramować, wystarczy wpiąć wtyczkę i wgrać program.
Tyle chwilowo wystarczy. Do zobaczenia w kolejnej części kursu!
Brak komentarzy:
Prześlij komentarz