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

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

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

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

Programowanie mikrokontrolerów AVR

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

Schemat blokowy architektury AVR

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

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Systemy wbudowane. Paweł Pełczyński

Systemy Wbudowane. Arduino dołączanie urządzeń Wersja Arduino więcej portów I/O. Układy serii 74. Układy serii 74xx a seria 40xx

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

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)

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

MIKROKONTROLERY I MIKROPROCESORY

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Szkolenia specjalistyczne

Systemy Wbudowane. Arduino rozszerzanie Wersja Plan. Biblioteka EPROM Arduino bez płytki Arduino. Czyli... Co musimy mieć, aby uruchomić chip?

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Wstęp Architektura... 13

Mikroprocesory i Mikrosterowniki

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

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

2. Architektura mikrokontrolerów PIC16F8x... 13

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

KAmduino UNO. Rev Źródło:

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

E-TRONIX Sterownik Uniwersalny SU 1.2

KAmduino UNO. Płytka rozwojowa z mikrokontrolerem ATmega328P, kompatybilna z Arduino UNO

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

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

Systemy Wbudowane. Arduino dołączanie urządzeń Wersja Arduino bez płytki Arduino. Czyli... Eliminowanie modułu z projektu. Na płytce...

Mikrokontroler AVR ATmega32 - wykład 9

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

Mikroprocesory i Mikrosterowniki

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Techniki mikroprocesorowe i systemy wbudowane

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

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

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

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

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

Systemy wbudowane Mikrokontrolery

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

Embedded Solutions Automaticon Efektywne pomiary i sterowanie przy użyciu systemu wbudowanego MicroDAQ

WPROWADZENIE Mikrosterownik mikrokontrolery

Elementy składoweµc - przypomnienie

Systemy wbudowane. Wprowadzenie. Struktura. Mikrokontrolery AVR. Wprowadzenie do programowania w C

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Systemy mikroprocesorowe. Literatura podręcznikowa. Przedmioty związane. Przykłady systemów wbudowanych. Pojęcie systemu wbudowanego embedded system

1.1 Co to jest USBasp? Parametry techniczne Obsługiwane procesory Zawartość zestawu... 4

Moduł prototypowy X3-DIL64 z procesorem ATxmega128A3U-AU

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

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

PMiK Programowanie Mikrokontrolera 8051

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

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

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

Rok akademicki: 2013/2014 Kod: EEL s Punkty ECTS: 2. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

High Speed USB 2.0 Development Board

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

Mikroprocesory i mikrosterowniki

Wyjścia analogowe w sterownikach, regulatorach

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

Porty wejścia/wyjścia w układach mikroprocesorowych i w mikrokontrolerach

MCAR Robot mobilny z procesorem AVR Atmega32

2. Code Composer Studio v4 zintegrowane środowisko projektowe... 41

Płyta uruchomieniowa EBX51

Instytut Teleinformatyki

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Wejścia logiczne w regulatorach, sterownikach przemysłowych

Mikrokontroler Wykład 5

PROGRAMOWANIE I ARDUINO W SZKOLE

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515


NX700 PLC

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

dokument DOK wersja 1.0

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Kurs programowania mikrokontrolerów ARM z rodziny Cortex-M3

Systemy uruchomieniowe

Politechnika Białostocka

Programator AVR USBasp

Wbudowane układy peryferyjne cz. 3 Wykład 9

Moduł prototypowy.. Leon Instruments. wersja 1.0

Programowanie mikroprocesorów w systemie Arduino. Instrukcja do ćwiczenia laboratoryjnego

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Komunikacja w mikrokontrolerach. Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski

Elementy składowe systemu komputerowego

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

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

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Warsztaty szkoleniowe. Technologia SafetyLon w systemach związanych z bezpieczeństwem funkcjonalnym Narzędzia SafetyLon Moduł 4.5.

Zestaw Startowy EvB. Więcej informacji na stronie:

2. Budowa układów procesorowych rodziny TMS320C

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Charakterystyka mikrokontrolerów

Kurs Elektroniki. Zastosowanie elektroniki w robotyce cz

Transkrypt:

Mikrokontroler Platforma Systemy Wbudowane IDE:, AVR mgr inż. Marek Wilkus Wydział Inżynierii Metali i Informatyki Przemysłowej AGH Kraków Mikrokontroler AVR Uno Środowisko Terminal Uruchamianie http://home.agh.edu.pl/~mwilkus 1 C: i inne urządzenia: Podstawowe techniki programowania mikrokontrolerów, Budowa programu, Sterowanie wyjściami, Wejścia/wyjścia cyfrowe podłączenie urządzeń zewnętrznych, Urządzenia wewnętrzne, Komunikacja, Przerwania. Rozszerzanie wejść/wyjść, Sterowanie urządzeniami, Multipleksowanie, Port szeregowy, Konwersja protokołów. 3 Oprogramowanie Mikrokontroler IDE: System mikroprocesorowy w postaci jednego układu scalonego. Zintegrowane: http://www.arduino.cc Fritzing: http://fritzing.org KiCAD: http://www.kicad-pcb.org WinAVR: http://winavr.sourceforge.net/ CPU RAM Pamięć programu Urządzenia I/O Dodatkowe urządzenia Użycie jednego układu: oszczędność miejsca, energii, łatwa rozbudowa i programowanie systemu. UnoArduSim: 4 https://www.sites.google.com/site/unoardusim/ 5 6

1970... Uniwersalne bloki sterujące. Jeden moduł, cechy późniejszych mikrokontrolerów. 1971 Texas Instruments TMS1000 Pierwszy mikrokontroler Wewnętrzne źródło częstotliwości Programowanie: Mask-ROM Bardzo wysokie ceny 1976 Intel 8048 (MCS-48): Programowanie jak EPROM 1kB ROM 18B RAM Początek serii MCS-48 Programowanie: lub Mask-ROM. i późniejszych 51. 7 1975-85 PIC: Układ hybrydowy, Łatwe programowanie, także in-system, Programowanie w BASIC. Wciąż produkowane. Programowanie jak EPROM, 1993 Pamięć EEPROM. Różnorodność modeli. Programowanie: Assembler C Komercyjne narzędzia. Wciąż rozwijane. 9 Platforma programistyczna dla systemów wbudowanych. Open Hardware (z wyjątkami). Pojedynczy moduł. Mikrokontroler AVR. Wbudowany interfejs mikrokontroler-komputer. Programowanie: Głównie C. Środowisko: IDE. Duża pamięć programu (4-51kB) Wiele urządzeń wewnętrznych Różnorodność modeli: od ATTiny do AVR3 Pamięć Flash dla programu Pamięć Flash dla użytkownika Niska cena Łatwe programowanie: 10 1995-97 Atmel AVR: 8 198x - BASIC Stamp miniaturyzacja, niska cena, łatwe zastosowania hobbystyczne. Assembler Assembler Basic (BASCOM) C Obecność platform np.. Otwarte narzędzia deweloperskie. Wciąż rozwijane. 11 1

Uno AVR Mikrokontroler: AVR ATMega38 16MHz. 3kB pamięci Flash na program (31kB dostępne - bootloader) kb RAM 1kB EEPROM GPIO: 14 pinów (6 PWM) 6 wejść analogowych Interfejs : USB-RS3. Programowanie przez USB. Zasilanie: 5V, własna stabilizacja. 8-bitowy, jednoukładowy mikrokontroler RISC. Pamięć programu: Flash, Pamięć operacyjna: Statyczny RAM, Dodatkowa pamięć Flash dla programów użytkownika, Wyprowadzenia wielofunkcyjne, Wbudowane interfejsy i przetworniki, BOR, WDT, Możliwość pracy z wewnętrznym oscylatorem, Programowanie ISP (In-System Programming), 13 14 AVR: Co otrzymujemy? 1 6 6 AVR: Co możemy podłączyć? timery 8-bitowe timer 16-bitowy liczniki kanałów PWM kanałów ADC, 10-bitowe przerwania z GPIO 3 8-bitowe porty GPIO, 6 kanałów PWM, USART, także z własnym timingiem, Wejścia ADC, Wejścia zliczające, Wejścia komparatora analogowego, SPI, IC, JTAG debugowanie. 15 16 C Informacje Noty katalogowe i instrukcje: Eliminuje konieczność ustawiania wbudowanych urządzeń przez konfigurację rejestrów sterujących. Ułatwia budowę programu. Znacznie przyspiesza testowanie i prototypowanie. Zabezpiecza przed problemami z konfiguracją wstępną (Fuse-bity). http://www.atmel.com http://www.atmel.com/devices/atmega38.aspx : http://www.arduino.cc/ http://arduino.cc/en/reference/ http://ep.com.pl - Kurs (PL) Niższa niż w przypadku czystego C wydajność i większy rozmiar kodu. Toleruje techniki marnujące pamięć operacyjną. Podręczniki: 17 Monk S. - dla początkujących Podstawy i szkice Helion 014. Evans B. - Beginning programming - Apress 011. 18

Informacje Manual Co jest niezbędne? Uno Parametry układu: Czy układ będzie spełniał zadanie w projekcie? Warunki pracy układu: Zasilanie. Moc wyjściowa. Warunki środowiskowe. Wydajność. Czy parametry używanych urządzeń są wystarczające? Programowanie: Mapa rejestrów i praca z urządzeniami. 19 0 Projekt na IDE programowanie. 1. Jakie urządzenia mają być obsługiwane? Wejście Wyjście Debug Sprawdzenie kodu. Czy urządzenia wymagają specjalnego sterowania? Jakiego? (: max 0mA/pin) 3. Projekt konstrukcji. 4. 5. 6. 7. Załadowanie do Monitor portu terminal Nowy plik Nie stosować danych binarnych!! Otwórz/zapisz Założenia programu, podstawowe parametry I/O, urządzeń, definicje I/O. Konstrukcja. Program weryfikujący konstrukcję. Właściwy program. Testowanie, poprawki. Informacje kompilatora 1 Użyty wirtualny port szeregowy Podstawowe techniki Podstawowe techniki Dyrektywa preprocesora #define: volatile nie buforuje zmiennej w rejestrach: volatile int stan; #define nazwa wartość Podczas kompilacji wystąpienia nazwy zostaną zastąpione wartością. Np. Zamieni występowanie ledpin na 13. W przypadku zmiany konstrukcji zmiana jednej linii kodu. 3 Gdy zmienna ta zostanie zmieniona poza programem (np. w trakcje procedury przerwania) zostanie użyta jej aktualna wartość. 4

Podstawowe typy danych Budowa programu boolean wartość logiczna (prawda/fałsz), zajmuje 1 bajt danych. char, unsigned char = byte (0..55). int, unsigned int = word (0..^16-1). Zmiennoprzecinkowe: float (4B), double (8B). string jako tablica char'ów. #define ledpin 13 5 6 Budowa programu #define ledpin LED Wymagany rezystor obniżający prąd. Vcc=5V Typowy LED 3mm: IF=0mA, VF=V 13 void main() setup(); while(1) loop(); serialevent(); R= Vcc-VF IF (5-) / 0.0 = 150 Ω 7 8 Zmienne i funkcje Zmienne i funkcje, wejścia unsigned int #define resetpin 11 unsigned int k = 0; if (!digitalread(resetpin)) delay(100); 9 30

Zmienne i funkcje, wejścia #define resetpin 11 if (!digitalread(resetpin)) delay(100); unsigned int k = 0; #define resetpin 11 unsigned int k = 0; Zmienne i funkcje, wejścia HIGH LOW if (!digitalread(resetpin)) delay(100); 31 3 Przerwania #define resetpin volatile unsigned int void reset() Przerwania #define resetpin volatile unsigned int void reset() attachinterrupt(0,reset,low); attachinterrupt(0,reset,low); Przerwanie Pin 0 1 3 delay(); Serial.Read()...! 33 34 Port szeregowy komunikacja Port szeregowy komunikacja Serial.begin(9600); Serial.begin(9600); Serial.print("TO JEST TEST\n"); Serial.print("TO JEST TEST\n"); unsigned int k = 111; unsigned int k = 111; Serial.println(k); Serial.println(k,DEC); Serial.println(k,HEX); Serial.println(k,BIN); Serial.Write(k); Serial.println(k); Serial.println(k,DEC); Serial.println(k,HEX); Serial.println(k,BIN); TO JEST TEST 111 111 6F 11001111 O Koniec. Serial.Write(k); Serial.println( /nkoniec. ); 35 Serial.println( /nkoniec. ); 36

Port szeregowy komunikacja Odbieranie danych: Port szeregowy komunikacja Odbieranie danych: Tryb automatyczny: char bajt=0; if (Serial.available() > 0) bajt = Serial.read(); Serial.print("Bajt: "); Serial.println(bajt, DEC); char bajt=0; if (Serial.available() > 0) bajt = Serial.read(); Serial.print("Bajt: "); Serial.println(bajt, DEC); void serialevent()... 37 Dziękuję. 39 Tryb automatyczny: void serialevent()... To NIE jest przerwanie!!! 38