Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska



Podobne dokumenty
Język programowania. KURS Kurs Arduino (1)

6 ARDUINO DLA POCZĄTKUJĄCYCH. PODSTAWY I SZKICE

Systemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C:

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Materiały. Języki programowania II (Java+AVR-GCC) Literatura

Programowanie obiektowe

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Schemat blokowy architektury AVR

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Systemy Wbudowane. Arduino, AVR (wersja 2019) Arduino. Arduino. Oprogramowanie. Rys historyczny. Mikrokontroler

Podstawy programowania w języku C i C++

Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści

Systemy Wbudowane. Arduino, AVR (wersja 2018) Arduino. Arduino. Oprogramowanie. Rys historyczny. Mikrokontroler

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Podstawy Techniki Mikroprocesorowej

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Systemy Wbudowane. Arduino, AVR (wersja ) Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

Podstawy programowania w języku C

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Mikrokontroler AVR ATmega32 - wykład 9

MIKROKONTROLERY AVR JĘZYK C WYDAWNICTWO ATNEL PODSTAWY PROGRAMOWANIA. Miros aw Kardaś. Szczecin Mojej Żonie Kasi

ZASTOSOWANIE PLATFORM CYFROWYCH ARDUINO I RASPBERRY PI W NAUCZANIU STEROWANIA OBIEKTEM PNEUMATYCZNYM

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

Szkolenia specjalistyczne

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Język ludzki kod maszynowy

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Programowanie mikrokontrolerów AVR

Podstawy i języki programowania

1 Podstawy c++ w pigułce.

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Architektura mikroprocesorów TEO 2009/2010

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Programowanie strukturalne i obiektowe

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

2 Przygotował: mgr inż. Maciej Lasota

Mikroprocesory i Mikrosterowniki

MIKROKONTROLERY I MIKROPROCESORY

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

dr inż. Jarosław Forenc

Mikrokontroler ATmega32. Język symboliczny

Mikroprocesory i mikrosterowniki

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Mikroprocesory i Mikrosterowniki

Instrukcje sterujące. Programowanie Proceduralne 1

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0.

Spis treści. Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Schemat blokowy procesora rdzeniowego ATmega16. Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu.

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Systemy wbudowane. Paweł Pełczyński

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Microsoft IT Academy kurs programowania

Część 4 życie programu

Wstęp do programowania. Różne różności

Zestaw Startowy EvB. Więcej informacji na stronie:

Przyrząd do grania bluesa Projekt zaliczeniowy z przedmiotu Programowanie Mikrokontrolerów

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft );

MATERIAŁY DO ZAJĘĆ II

( wykł. dr Marek Piasecki )

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

1 Podstawy c++ w pigułce.

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Elementy składowe systemu komputerowego

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

Wykład 2. Mikrokontrolery z rdzeniami ARM

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Podstawy programowania skrót z wykładów:

Pomiar odległości z Arduino czujniki, schematy, przykładowe kody

Tworzenie aplikacji w języku Java

Wykład Mikroprocesory i kontrolery

KOTLIN. Język programowania dla Androida

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

MCAR Robot mobilny z procesorem AVR Atmega32

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32)

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

PROGRAMOWANIE w C prolog

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Transkrypt:

Instytut Informatyki Politechnika Poznańska

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 01-2014 2

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 01-2014 3

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 01-2014 4

Architektura Harwardzka 01-2014 5

On Chip Debugger Two Wire Interface 01-2014 6

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 01-2014 7

Arduino Jedna z pierwszych wersji Arduino Diecimila ( dzięsięć tysięcy po włosku) 01-2014 8

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 01-2014 9

Arduino Nowsza wersja, jedna z najbardziej popularnych Arduino Duemilanove ( dwa tysiące dziewięć po włosku) 01-2014 10

Arduino Arduino Lily 01-2014 11

Arduino Arduino Mega 01-2014 12

Arduino Arduino Nano 01-2014 13

Arduino Arduino Mini 01-2014 14

Arduino Arduino Due 01-2014 15

Arduino Aktualnie, najbardziej popularna wersja Arduino Uno ( jeden po włosku) 01-2014 16

Arduino Aktualnie, najbardziej popularna wersja Arduino Uno ( jeden po włosku) 01-2014 17

Arduino Arduino Uno z nakładką Ethernet 01-2014 18

Arduino Najnowsze opracowanie Uno Arduino Uno R3 01-2014 19

Arduino Najnowsze opracowanie Uno Arduino Uno R3 01-2014 20

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) 01-2014 21

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 01-2014 22

Arduino Uno ATmega 168/328 01-2014 23

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 01-2014 24

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) 01-2014 25

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)) 01-2014 26

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) 01-2014 27

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 01-2014 28

Arduino programowanie Zmienne Konwersje char() byte() int() word() long() float() Zakres zmiennych i kwalifikatory Variable scope static volatile const Narzędzia sizeof() 01-2014 29

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() 01-2014 30

Arduino programowanie Funkcje Czasowe millis() micros() delay() delaymicroseconds() Matematyczne min() max() abs() constrain() map() pow() sqrt() Trygonometryczne sin() cos() tan() 01-2014 31

Arduino programowanie Funkcje Liczby pseudolosowe randomseed() random() Bity i Bajty lowbyte() highbyte() bitread() bitwrite() bitset() bitclear() bit() Przerwania zewnętrzne interrupts() nointerrupts() 01-2014 32

Arduino programowanie Funkcje Komunikacja Serial Stream USB (tylko Due i Leonardo) Keyboard Mouse Przerwania zewnętrzne interrupts() nointerrupts() Więcej? http://arduino.cc/en/reference/libraries 01-2014 33

Arduino programowanie Środowisko 01-2014 34

Arduino programowanie Ładowanie szkicu 01-2014 35

Arduino programowanie Wybór modułu 01-2014 36

Arduino programowanie Wybór portu 01-2014 37

Arduino programowanie Aplikacja Blink 01-2014 38

Arduino programowanie Aplikacja Blink 01-2014 39

Arduino programowanie Aplikacja Blink 01-2014 40

Arduino programowanie Aplikacja Blink - modyfikacja 01-2014 41

Arduino programowanie Aplikacja Blink - modyfikacja 01-2014 42

Arduino narzędzia Fritzing http://fritzing.org/download/ 01-2014 43

Dziękuję 44 09-2006