Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Podobne prezentacje


Prezentacja na temat: "Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska"— Zapis prezentacji:

1 Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
AMiW ATmega i Arduino Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

2 Mikrokontrolery AVR AVR – ang. Advanced Virtual RISC
Twórcami są Alf Egil Bogen, Vegard Wollan RISC Architektura AVR została opracowana przez dwóch studentów w Norweskim Instytucie Technologii (NTH) a następnie dopracowana i rozwinięta w Atmel Norway, siostrzanej firmie Atmel Podział architektur RISC (ang. Reduced Instruction Set Computer) CISC (ang. Complex Instruction Set Computer) AVR mikrokontroler – architektura RISC – złożone instrukcje realizowane są przy pomocy zestawu prostych Pojedynczy cykl zewnętrznego zegara dla podstawowych instrukcji 32 rejestry robocze – wszystkie rejestry są bezpośrednio połączone z ALU Zygmunt Kubiak

3 Mikrokontrolery AVR Architektura AVR RISC
Pojedynczy cykl instrukcji: 8 MHz = 8 MIPS Duża liczba rejestrów ogólnego przeznaczenia (32) Każdy rejestr akumulatorem 3 pary rejestrów indeksowych Rejestry i IO są mapowane w pamięci SRAM Zygmunt Kubiak

4 Mikrokontrolery AVR The AVR is a Harvard architecture CPU
Architektura Harwardzka (ang. Harvard Architecture) Architektura komputerowa, która fizycznie wykorzystuje oddzielne magistrale dla instrukcji i danych CPU może czytać instrukcje i dane w tym samym czasie i tym samym przyspiesza operacje wykonywania kodu Architektura von Neumanna (ang. Von Neumann Architecture) CPU może czytać z pamięci instrukcje lub dane sekwencyjnie - wspólna magistrala Zygmunt Kubiak

5 Mikrokontrolery AVR Architektura Harwardzka Zygmunt Kubiak

6 Mikrokontrolery AVR On Chip Debugger Two Wire Interface 01-2014
Zygmunt Kubiak

7 Mikrokontrolery AVR Port Zygmunt Kubiak

8 Konfiguracja wejścia Mikrokontrolery AVR DDRx = 0 PINx 01-2014
Zygmunt Kubiak

9 Konfiguracja wejścia z pullup
Mikrokontrolery AVR Konfiguracja wejścia z pullup DDRx = 0 ATmega328 VZ= +5V PORTx=1 Arduino: digitalWrite(SW, HIGH); pinMode(SW, INPUT_PULLUP); PINx Zygmunt Kubiak

10 Konfiguracja wyjścia Mikrokontrolery AVR DDRx = 1 PORTx 01-2014
Zygmunt Kubiak

11 PWM - ang. Pulse With Modulation
Mikrokontrolery AVR PWM - ang. Pulse With Modulation Zygmunt Kubiak

12 Mikrokontrolery AVR Arduino
Powstało w 2005 r. w Instytucie Projektowania Interakcji we włoskim mieście Ivrea – projekt stworzyli Massimo Banzi z instytutu w Ivrea oraz David Cuartielles z uniwersytetu wMalmö w Szwecji Opracowali mikrosterownik z myślą o projektach studentów sztuki i projektowania. Główne założenia to niska cena i łatwa w użyciu platforma David Mellis, student profesora Banziego, stworzył oprogramowanie Nazwa Arduino – na pamiątkę lokalnego baru w Ivrea, chętnie odwiedzanego przez kadrę i studentów instytutu Zygmunt Kubiak

13 Mikrokontrolery AVR Arduino
Jedna z pierwszych wersji – Arduino Diecimila („dzięsięć tysięcy” po włosku) Zygmunt Kubiak

14 Mikrokontrolery AVR Arduino
Nowsza wersja, jedna z najbardziej popularnych – Arduino Duemilanove („dwa tysiące dziewięć” po włosku) Oferuje automatyczne przełączanie źródła zasilania pomiędzy portem USB a zasilaniem zewnętrznym 13 „pinów” cyfrowych wejść/ wyjść, w tym 6 PWM dla realizacji analogowych wyjść 6 „pinów” wejść analogowych Interfejs USB – realizacja transmisji asynchronicznej oraz ładowanie i uruchamianie programu Do lutego 2009 r. mikrokontroler ATmega168, później ATmega328 16 kB lub 32 kB dla programu oraz 1 kB lub 2 kB dla danych Arduino bootloader Zygmunt Kubiak

15 Mikrokontrolery AVR Arduino
Nowsza wersja, jedna z najbardziej popularnych – Arduino Duemilanove („dwa tysiące dziewięć” po włosku) Zygmunt Kubiak

16 Mikrokontrolery AVR Arduino Arduino Lily Zygmunt Kubiak

17 Mikrokontrolery AVR Arduino Arduino Mega Zygmunt Kubiak

18 Mikrokontrolery AVR Arduino Arduino Nano Zygmunt Kubiak

19 Mikrokontrolery AVR Arduino Arduino Mini Zygmunt Kubiak

20 Mikrokontrolery AVR Arduino Arduino Due Zygmunt Kubiak

21 Mikrokontrolery AVR Arduino
Aktualnie, najbardziej popularna wersja – Arduino Uno („jeden” po włosku) Zygmunt Kubiak

22 Mikrokontrolery AVR Arduino
Aktualnie, najbardziej popularna wersja – Arduino Uno („jeden” po włosku) Zygmunt Kubiak

23 Mikrokontrolery AVR Arduino Arduino Uno z nakładką Ethernet 01-2014
Zygmunt Kubiak

24 Mikrokontrolery AVR Arduino Najnowsze opracowanie Uno – Arduino Uno R3
Zygmunt Kubiak

25 Mikrokontrolery AVR Arduino Najnowsze opracowanie Uno – Arduino Uno R3
Zygmunt Kubiak

26 Mikrokontrolery AVR Arduino Uno Mikrokontroler Atmega328
14 cyfrowych wejść / wyjść 6 wyjść może być używanych jako wyjścia PWM 6 wejść analogowych Rezonator kwarcowy 16 MHz W Uno, zamiast FTDI (interfejs USB stosowany we wcześniejszych wersjach Arduino) zastosowano mikrokontroler ATmega16U2 (w wersji R2 ATmega8U2) R2 zawiera rezystor podciągający linię HBW (ATmega8U2) do masy co ułatwia tryb DFU (ang. Device Firmware Update – spec. prot. USB) Zygmunt Kubiak

27 Mikrokontrolery AVR Arduino Uno Najnowsze opracowanie – Arduino Uno R3
R3 – dodano piny SDA i SCL, które są blisko AREF i dwa nowe piny umieszczone blisko IOREF co upraszcza ekranowanie sygnałów magistrali. W umożliwi to współpracę z nakładkami zasilanymi z 5V i 3,3V R3 – sprawniejszy RESET R3 – powrót do ATmega16U2 jako interfejsu USB R3 – zalecane napięcie zasilania 7 – 12 V (limit 6 – 20 V) Pamięć Flash – 32 KB (0,5 KB) Pamięć SRAM – 2 KB Pamięć EEPROM – 1 KB Zygmunt Kubiak

28 Mikrokontrolery AVR Arduino Uno ATmega 168/328 Zygmunt Kubiak

29 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Język referencyjny Programy Arduino można podzielić na trzy główne części: struktury, wartości (zmienne i stałe) oraz funkcje Struktura setup () loop () Struktury sterowania if if … else for switch case while do … while break continue return goto Zygmunt Kubiak

30 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Struktura Dalsza składnia ; (średnik) {} (nawiasy klamrowe) // (komentarz w jednej linii) /*/ (komentarz wieloliniowy) #define #include Operatory arytmetyczne = (operator przypisania) + (dodawanie) - (odejmowanie) * (mnożenie) / (dzielenie) % (modulo) Zygmunt Kubiak

31 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Struktura Operatory porównania == (równy) != (różny) < (mniejszy) > (mnożenie) <= (mniejszy lub równy) >= (większy lub równy) Operatory logiczne && (i) || (lub) ! (nie) Operatory wskaźnikowe * (operator adresowania pośredniego (wyłuskania – ang. dereference operator)) & (operator adresu (odniesienia- ang. reference operator)) Zygmunt Kubiak

32 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Struktura Operatory bitowe & (bitowe i) | (bitowe lub) ^ (bitowe XOR) ~ (bitowe nie) << (przesunięcie bitów w lewo) >> (przesunięcie bitów w prawo) Operatory złożone ++ (inkrementacja) -- (dekrementacja) += (złożone przypisanie) -= (złożone przypisanie) *= (złożone przypisanie) /= (złożone przypisanie) &= (złożone przypisanie bitowe) |= (złożone przypisanie bitowe) Zygmunt Kubiak

33 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Zmienne Stałe HIGH | LOW INPUT | OUTPUT | INPUT_PULLUP LED_BUILTIN true | false integer constants floating point constants Typy danych void boolean char unsigned char byte int unsigned int word long unsigned long short float double string - (char array) String - (object) array Zygmunt Kubiak

34 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Zmienne Konwersje char() byte() int() word() long() float() Zakres zmiennych i kwalifikatory Variable scope static volatile const Narzędzia sizeof() Zygmunt Kubiak

35 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Funkcje Cyfrowe we/wy pinMode() digitalWrite() digitalRead() Analogowe we/wy analogReference() analogRead() analogWrite() - (PWM) Tylko Due analogReadResolution() analogWriteResolution() Zaawansowane we/wy tone() noTone() shiftOut() shiftIn() pulseIn() Zygmunt Kubiak

36 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Funkcje Czasowe millis() micros() delay() delayMicroseconds() Matematyczne min() max() abs() constrain() map() pow() sqrt() Trygonometryczne sin() cos() tan() Zygmunt Kubiak

37 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Funkcje Liczby pseudolosowe randomSeed() random() Bity i Bajty lowByte() highByte() bitRead() bitWrite() bitSet() bitClear() bit() Przerwania zewnętrzne interrupts() noInterrupts() Zygmunt Kubiak

38 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Funkcje Komunikacja Serial Stream USB (tylko Due i Leonardo) Keyboard Mouse Przerwania zewnętrzne interrupts() noInterrupts() Więcej? Zygmunt Kubiak

39 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Środowisko Zygmunt Kubiak

40 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Ładowanie szkicu Zygmunt Kubiak

41 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Wybór modułu Zygmunt Kubiak

42 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Wybór portu Zygmunt Kubiak

43 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Aplikacja Blink Zygmunt Kubiak

44 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Aplikacja Blink Zygmunt Kubiak

45 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Aplikacja Blink Zygmunt Kubiak

46 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Aplikacja Blink - modyfikacja Zygmunt Kubiak

47 Arduino programowanie
Mikrokontrolery AVR Arduino programowanie Aplikacja Blink - modyfikacja Zygmunt Kubiak

48 Mikrokontrolery AVR Arduino narzędzia Fritzing
Zygmunt Kubiak

49 Dziękuję Zygmunt Kubiak


Pobierz ppt "Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska"

Podobne prezentacje


Reklamy Google