44
Kurs Wprowadzający Daniel Wlazło, Mikołaj Marcinkiewicz

Kurs 1 – mikrokontrolery

Embed Size (px)

Citation preview

Page 1: Kurs 1 – mikrokontrolery

Kurs WprowadzającyDaniel Wlazło, Mikołaj Marcinkiewicz

Page 2: Kurs 1 – mikrokontrolery

O nas

Daniel Wlazło*Zwycięzca zawodów robotycznych

m.in.: Istrobot (Bratysława), Roboxxy (Gdańsk)

*Finalista konkursu Project Management Challenge

*Alumn projektu Young Innovators

Mikołaj Marcinkiewicz*Finalista Olimpiady Wiedzy Technicznej*Finalista Olimpiady Wiedzy Elektrycznej

i Elektronicznej*Zwycięzca konkursu StartUp Sprint

SilverTsunami*Polski Finalista konkursu Microsoft

ImagineCup 2015

Page 3: Kurs 1 – mikrokontrolery

Projekty

Page 4: Kurs 1 – mikrokontrolery

Cykl powstawania projektuGenerowanie

pomysłów

Weryfikacja wykonalności

rozwiązań

Wybór najlepszego rozwiązania

Projektowanie i prototypowanie

Badania prototypu

Powstanie konstrukcji finalnej

Ocena projektu

Page 5: Kurs 1 – mikrokontrolery

Generowanie pomysłów

vs.

Page 6: Kurs 1 – mikrokontrolery

Prototypy

Page 7: Kurs 1 – mikrokontrolery

Badania prototypów

Page 8: Kurs 1 – mikrokontrolery

Powstawanie wersji finalnej

Page 9: Kurs 1 – mikrokontrolery

Ocena projektu

Page 10: Kurs 1 – mikrokontrolery

Dobre rady

Page 11: Kurs 1 – mikrokontrolery

1. Nie poddawaj się, początki zawsze bywają trudne.

Page 12: Kurs 1 – mikrokontrolery

2. Pamiętaj, że czas nie jest z gumy

Page 13: Kurs 1 – mikrokontrolery

3. Dobieraj zespół

Page 14: Kurs 1 – mikrokontrolery

4. Szukaj nowych zastosowań dla swoich rozwiązań.

Page 15: Kurs 1 – mikrokontrolery

5. Dziel produkt na moduły, to znacznie upraszcza projektowanie oraz pracę…

Page 16: Kurs 1 – mikrokontrolery

6. … ale projektując poszczególne moduły nie zapominaj o całości

Page 17: Kurs 1 – mikrokontrolery

Ciekawe stronyhttp://mfiles.pl/pl/ - Encyklopedia Zarządzania (wszystko w miarę przejrzyście napisane)

https://grabcad.com/workbench - Środowisko do zarządzania projektami mechaniczymi

https://github.com/ - Zarządzanie kodem (subwersjonowanie)

https://pl.todoist.com/ - Lista i manager zadań

https://coggle.it/ - Tworzenie map myśli

https://www.draw.io/ - Tworzenie współdzielonych schematów

http://gantter.com/ - Narzędzie on-line do tworzenia wykresów Gantta

Page 18: Kurs 1 – mikrokontrolery

Propozycje projektówM – mechanika; E – elektronika; P – programowanie.

Uniwersalna bramka do pomiaru czasu dla MM i LF{E/M/P]

Katarynka na AVR[E/P]

Komora dla drukarek (termometry i drzwiczki)[E/M/P]

Pilot do modułowych BT [E/P]

Aplikacja do OMNI z Joystickiem [P]

Zaprogramowanie sterownika silnika na STM32 [P]

Zbudowanie toru dla robotów LF [M]

Page 19: Kurs 1 – mikrokontrolery

Propozycje projektówUruchomienie manipulatora 3D [E/P]

Prosty robot kroczący [M/E/P]

Miernik do Lipoli [E/P]

Piła do płytek [M]

Page 20: Kurs 1 – mikrokontrolery

Roboty

Page 21: Kurs 1 – mikrokontrolery

Robot – co to właściwie jest?Wg Maji Mataric:

jest to autonomiczna maszyna która ma możliwość detekcji otoczenia i działania na nim, aby osiągnąć pewne cele.

Page 22: Kurs 1 – mikrokontrolery

Koncepcje budowy robotówMODUŁOWA

Konstrukcja jest podzielona na moduły.

Łatwość dodawania komponentów

Łatwość modyfikacji

Szybka naprawa usterek

ZINTEGROWANA

Konstrukcja stanowi niepodzielną całość.

Oszczędność miejsca

Mniejsze koszty

Łatwość projektowania

Page 23: Kurs 1 – mikrokontrolery

Koncepcje budowy robotówMODUŁOWA ZINTEGROWANA

Page 24: Kurs 1 – mikrokontrolery

Ciekawe stronyhttp://www.asimo.pl/

http://fabryka-robotow.pl/

http://forbot.pl/

http://www.intechopen.com/subjects/robotics/

http://www.par.pl/

http://www.robotyka.com/teoria_spis.php/

Page 25: Kurs 1 – mikrokontrolery

Procesor

Page 26: Kurs 1 – mikrokontrolery

Procesor

Page 27: Kurs 1 – mikrokontrolery

Procesor – definicja„Procesor – sekwencyjne urządzenie cyfrowe, które pobiera dane z pamięci, interpretuje je i

wykonuje jako rozkazy.”

PROCESORSYGNAŁ

WEJŚCIOWY

ZASILA

NIE

SYGNAŁ WYJŚCIOWY

PROGRAM

Wikipedia

Page 28: Kurs 1 – mikrokontrolery

Procesor - zasada działania Jego działanie polega na wykonywaniu wielu naprawdę prostych czynności − każde, nawet najbardziej skomplikowane zadanie można przedstawić jako złożenie pewnej liczby bardzo prostych kroków.

Programowanie polega na zapisaniu ciągu prostych instrukcji, budujących często złożone algorytmy, które ma wykonać procesor – wszystkie operacje muszą być finalnie przetworzone na zrozumiały dla niego język.

Procesor operuje na sygnałach napięciowych, tak jak mózg!

Page 29: Kurs 1 – mikrokontrolery

Rodziny Mikrokontrolerów - AVR

ATmega

ATtiny ATXmega

Page 30: Kurs 1 – mikrokontrolery

Rodziny Mikrokontrolerów - ARM

stm.com

Page 31: Kurs 1 – mikrokontrolery

ZegarOdpowiada obowiązkom „bębniarza” na smoczych łodziach – wyznacza „rytm” pracy

Swoim regularnym “tykaniem” wyznacza on początki okresów czasu, które są przeznaczone do wykonania określonych operacji.

Im większa częstotliwość pracy zegara, tym więcej jest wykonywanych instrukcji na sekundę (MIPS), ale za to pobiera więcej prądu.

Page 32: Kurs 1 – mikrokontrolery

Zegar cd.Sygnał zegarowy może być generowant w samym mikroprocesorze, jest to cecha większości mikrokontrolerów.

Można jednak podłączyć do układu zewnętrzny sygnał zegarowy (LSE lub HSE), który ma zdecydowanie większą dokładność.

Na rysunku pokazano trzy typowe sposoby podłączeń oscylatorów do mikrokontrolera.

Page 33: Kurs 1 – mikrokontrolery

PamięćNIEULOTNA

Nie tracimy jej zawartości po utracie zasilania

Na ogół dostęp do niej jest wolniejszy

W niej zapisywany jest program

Np. Flash, EEPROM

ULOTNA

Przechowuje dane tak długo, jak długo włączone jest zasilanie

Szybsza

Jest wykorzystywana do przechowywania danych tymczasowych „mielonych przez program”

Np. RAM

Page 34: Kurs 1 – mikrokontrolery

Języki programowaniaC (EMBEDDED C)

Mniejszy plik wynikowy

Uniwersalny język

Dostępność większej ilości bibliotek

Większa przejrzystość kodu – widać co jest w środku

BASCOM

Prostszy od C

Tylko do procesorów 8051 oraz AVR

ASEMBLER

Język niskiego poziomu

Jedna istrukcja to jeden cykl maszynowy

Można w nim pisać najbardziej optymalne programy

Skomplikowany

Page 35: Kurs 1 – mikrokontrolery

Sposoby programowania - ISP

Page 36: Kurs 1 – mikrokontrolery

Sposoby programowania – JTAG

Page 37: Kurs 1 – mikrokontrolery

Sposoby programowania – SWD

Page 38: Kurs 1 – mikrokontrolery

Sposoby programowania – TPI/TDI

Page 39: Kurs 1 – mikrokontrolery

Arduino i Nucleo

Platforma oparta na prostym projekcie Open Hardware przeznaczonym dla mikrokontrolerów montowanych w pojedynczym obwodzie drukowanym, z wbudowaną obsługą wejścia/wyjścia oraz standaryzowanym językiem programowania.

Język programowania Arduino oparty na języku C/C++.

Na pokładzie siedzi Atmel AVR

Mikrokontroler z rodziny STM32 z niezbędnymi komponentami

Wbudowany programator ST-Link

Złącza pozwalają wykorzystywać shieldy kompatybilne z Arduino

Page 40: Kurs 1 – mikrokontrolery

Układy We/Wy

Page 41: Kurs 1 – mikrokontrolery

Sygnał analogowy a cyfrowy

Page 42: Kurs 1 – mikrokontrolery

Ograniczenia prądowe i napięciowe portów

Mikrokontroler Zakres napięć WE [V] Max prąd WY [mA]

ATmega16 4,5-5,5 20mA

ATmega16L 2,7-5,5 20mA

ATtiny4 1,8-5,5 40mA

STM32F7 1,7-3,6 25mA

STM32L4 1,7-3,6 20mA

STM8L 1,65-3,6 25mA

Page 43: Kurs 1 – mikrokontrolery

Przetwornik A/C Służy do zamiany sygnału analogowego na reprezentację cyfrową.

Proces zamiany polega na uproszczeniu sygnału analogowego do postaci dyskretnej - zastąpieniu wartości zmieniających się płynnie do wartości zmieniających się skokowo w odpowiedniej skali.

Przetwarzanie A/C tworzą 3 etapy: próbkowanie, kwantyzacja i kodowanie.

Page 44: Kurs 1 – mikrokontrolery

Pytania?