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

Podobne dokumenty
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

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

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

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

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

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

Silnik prądu stałego. Sterowanie silnika prądu stałego

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

MCAR Robot mobilny z procesorem AVR Atmega32

Projektowanie urządzeń mikroprocesorowych cz. 2 Wykład 4

KAmduino UNO. Rev Źródło:

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

Moduł prototypowy X3-DIL64 z procesorem ATxmega128A3U-AU

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

Wejścia logiczne w regulatorach, sterownikach przemysłowych

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

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

StrK Sterownik bipolarnego silnika krokowego

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

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Wyniki (prawie)końcowe - Elektroniczne warcaby

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

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

Proste układy wykonawcze

Tematyka zajęć. Przypomnienie: Prawo Ohma. Przypomnienie: I prawo Kirchhoffa. Jak płynie prąd? Jak płynie prąd?

Zestaw Startowy EvB. Więcej informacji na stronie:

SDD287 - wysokoprądowy, podwójny driver silnika DC

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

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

Przypomnienie: Prawo Ohma. Przypomnienie: I prawo Kirchhoffa. Warunki zaliczenia. Jak płynie prąd? Tematyka zajęć. Warunki zaliczenia laboratorium:

SDD287 - wysokoprądowy, podwójny driver silnika DC

Rafał Staszewski Maciej Trzebiński, Dominik Derendarz

INSTRUKCJA OBSŁUGI.

Arduino Power Shield. Moduł Arduino do sterowania silnikami dużej mocy i pomiaru prądu

Zmierzyć się z żywiołami, czyli jak zbudować własną stację badawczą! Zaczynamy! Pole komunikatów programu. Nawigacja w programie Arduino

Płytka uruchomieniowa AVR oparta o układ ATMega16/ATMega32. Instrukcja Obsługi. SKN Chip Kacper Cyrocki Page 1

Technika Mikroprocesorowa

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

HC541 8-bitowy bufor jednokierunkowy HC245 8-bitowy bufor dwukierunkowy HC244 dwa 4-bitowe bufory jednokierunkowe

ISP ADAPTER. Instrukcja obsługi rev.1.1. Copyright 2009 SIBIT

Mikrokontrolery AVR techniczne aspekty programowania

Płytka uruchomieniowa XM64

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)

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

SCL > Pin 21 SDA > Pin 20 VCC > 5V GND > GND

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

Programator mikrokontrolerów AVR

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

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

MOD Xmega explore z ATXmega256A3BU. sklep.modulowo.pl akademia.modulowo.pl zestawy.modulowo.pl app.modulowo.pl blog.modulowo.

Zrób to sam : generowanie ruchu, światła i dźwięku za pomocą Arduino i Raspberry Pi / Simon Monk. Gliwice, Spis treści

VamsterL. Opis sterownika. wersja 1.0

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

MikloBit ul. Cyprysowa 7/ Jaworzno. rev MB-AVR-ISP programator

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

MOD Xmega explore z ATXmega256A3BU. sklep.modulowo.pl akademia.modulowo.pl zestawy.modulowo.pl app.modulowo.pl blog.modulowo.

Schemat blokowy architektury AVR

Systemy wbudowane Arduino, AVR

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

4 Adres procesora Zworkami A0, A1 i A2 umieszczonymi pod złączem Z7 ustalamy adres (numer) procesora. Na rysunku powyżej przedstawiono układ zworek dl

Płytka ewaluacyjna z ATmega16/ATmega32 ARE0021/ARE0024

W semestrze letnim studenci kierunku Aplikacje Internetu Rzeczy podczas ćwiczeń z programowania CAD/CAM

Płytka laboratoryjna do współpracy z mikrokontrolerem MC68332

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

AP3.8.4 Adapter portu LPT

Uniwersalny sterownik silnika krokowego z portem szeregowym RS232 z procesorem AT90S2313 na płycie E200. Zestaw do samodzielnego montażu.

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym cd...

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

Wyjścia analogowe w sterownikach, regulatorach

Układy zegarowe w systemie mikroprocesorowym

Sterowanie urządzeniami elektronicznymi przy użyciu portu LPT

MOD STM32 explorem0 z STM32F051C8T6. sklep.modulowo.pl akademia.modulowo.pl zestawy.modulowo.pl app.modulowo.pl blog.modulowo.

MODUŁ UNIWERSALNY UNIV 3

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

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

2.1 Porównanie procesorów

Moduł uruchomieniowy AVR ATMEGA-16 wersja 2

Kod produktu: MP01611

Niektóre piny mogą pełnić różne role, zależnie od aktualnej wartości sygnałów sterujących.

Instrukcja obsługi AP3.8.4 Adapter portu LPT

SWITCH & Fmeter. Fmax 210MHz. opr. Piotrek SP2DMB. Aktualizacja

Aoi Ryuu. v2.0 moduł z mikroprocesorem Atmega169 dla makiety dydaktycznej Akai Kaba

Instrukcja obsługi. SQCA244 instrukcja obsługi

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

Konstrukcja mostka mocy typu "H" opartego o układ HIP4081A Robert Szlawski

Płyta uruchomieniowa EBX51

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

ZL8AVR. Płyta bazowa dla modułów dipavr

Kurs Elektroniki. Zastosowanie elektroniki w robotyce cz

Pilot RF 4-kanałowy + odbiornik XY-DJM-5V umożliwia zdalne sterowanie do czterech urządzeń. Nadajnik pilot MX804. Odbiornik XY-DJM.

Płytka uruchomieniowa XM32

E-TRONIX Sterownik Uniwersalny SU 1.2

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019)

Moduł prototypowy.. Leon Instruments. wersja 1.0

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

Sterowniki Programowalne Sem. V, AiR

Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.

Transkrypt:

Plan 1. EPROM 2. Arduino na samym mikrokontrolerze budowa własnych urządzeń. 3. Więcej portów w Arduino, 4. Sterowanie urządzeniami, 5. Sterowanie z komputera Systemy Wbudowane Arduino rozszerzanie Wersja 2017 mgr inż. Marek Wilkus Wydział Inżynierii Metali i Informatyki Przemysłowej AGH Kraków http://home.agh.edu.pl/~mwilkus 1 Biblioteka EPROM Arduino bez płytki Arduino void setup() Serial.begin(9600); void loop() v=eeprom.read(a); if (poprzednie!=v) Serial.println(v); poprzednie=v; int a=0; int v; int poprzednie=0; #include <EEPROM.h> 2 Kompletne Arduino Uno jest 3-4x droższe od samego mikrokontrolera, Do danego układu niekoniecznie potrzebne są wszystkie oferowane przez moduł Arduino Uno urządzenia, np. Port szeregowy przez USB Słabe stabilizatory zasilania Słaby stabilizator 3.3V void serialevent() if (Serial.available()>0) int k=serial.parseint(); EEPROM.write(a,k); Rozwiązanie: Użycie samego chipu ATMega328 (lub ATMega8 8kB na program, chip jeszcze tańszy) we własnym układzie 3 4 Czyli... Co musimy mieć, aby uruchomić chip? Chip Zasilanie +5V, Źródło częstotliwości taktowania (16MHz, względnie 8MHz), Podciągnięcie pinu RESET do stanu wysokiego, Kondensator odsprzęgający. 5 6

Na płytce... Eliminowanie modułu z projektu Zapisujemy do Arduino końcową wersję programu, Po skończonym testowaniu z modułem wykonujemy i testujemy podstawowy układ bez modułu: Podstawa: Zapewnienie zasilania, taktowania, rezystora i kondensatorów, Tłumaczenie pinów Arduino na piny ATMega, odpowiednie podłączenia, Próba na płytce stykowej z układem usuniętym z Arduino, Wykonanie końcowej wersji układu. 7 8 A co z Arduino? Najprostszy programator: bsd Programowanie nowego, czystego układu AVR jako Arduino przy użyciu istniejącego modułu Arduino ze szkicem ArduinoISP: Działa przy użyciu portu równoległego, Bardzo prosta budowa, Działa niezależnie od Arduino przyjmuje pliki HEX bootloadera oraz fuse bity, Program avrdude działa dla każdej platformy (w Linuksie niezbędne uprawnienia administratora). 9 Programator bsd ATMega LPT Vcc 2+3+4+5 /RESET 7 SCK 8 MOSI 9 MISO 10 GND 18 10 Plik.hex? Fusebity? Plik hardware/arduino/avr/boards.txt w instalacji Arduino: Użytkowanie przy pomocy programu avrdude: Czyścimy układ: uno.name=arduino/genuino Uno avrdude -p m328p -c bsd -e uno.vid.0=0x2341 uno.pid.0=0x0043 uno.vid.1=0x2341 uno.pid.1=0x0001 uno.vid.2=0x2a03 uno.pid.2=0x0043 uno.vid.3=0x2341 uno.pid.3=0x0243 Wgrywamy plik HEX: avrdude -p m328p -c bsd -U flash:w:cpu.hex Ustawiamy fuse bity: avrdude -p m328p -c bsd -u -U lfuse:w:0xff:m -U hfuse:w:0xc9:m Od tej pory układ nie będzie widoczny dla programatora dopóki nie dostarczymy źródła częstotliwości! 11 uno.bootloader.tool=avrdude uno.bootloader.low_fuses=0xff uno.bootloader.high_fuses=0xde uno.bootloader.extended_fuses=0x05 uno.bootloader.unlock_bits=0x3f uno.bootloader.lock_bits=0x0f uno.bootloader.file=optiboot/optiboot_ atmega328.hex uno.build.mcu=atmega328p uno.upload.tool=avrdude uno.build.f_cpu=16000000l uno.upload.protocol=arduino uno.build.board=avr_uno uno.upload.maximum_size=32256 uno.upload.maximum_data_size=2048uno.build.core=arduino uno.build.variant=standard uno.upload.speed=115200 12

Arduino więcej portów I/O Układy serii 74 Realizują proste funkcje logiczne: bramki, liczniki, rejestry. Poziomy TTL Są cegiełkami do budowy bardziej złożonych układów Bezpośrednio podłączane Podciągnięte wejścia Wyjścia normalne i z otwartym kolektorem Szeroko dostępne w różnych wykonaniach Użycie pinów analogowych Liczniki Multipleksery Rejestr przesuwny Zatrzaski Drugi uc 8255 Komercyjne ekspandery 13 14 74LS00 Układy serii 74 Układy serii 74xx a seria 40xx Poziomy CMOS, Podobne funkcje, inne wyprowadzenia, Zasilanie do 15V, Mogą je uszkodzić wyładowania elektrostatyczne (szczególnie starsze układy), Do połączenia z 74 wymagają rezystora podciągającego do poziomu wysokiego CMOS. Kompatybilne z TTL i CMOS: 74HCT... 15 Seria 74 do czego służy układ? Nota katalogowa Tablica prawdy Schemat logiczny http://www.globalspec.com/reference/4290/348308/appendix-3-pinconfiguration-of-74-series-integrated-circuits 16 Użycie wyprowadzeń analogowych + Nie są potrzebne dodatkowe biblioteki, + Nie jest potrzebny dodatkowy sprzęt, + Samo programowanie, Zastosowania Eksperymenty - Brak PWM, - Kosztem ADC, - Tylko 6 pinów 74LS74 17 18

Licznik Multiplekser + Rozszerzanie wyjść, + Tanie i dostępne układy + Dużo wyjść (np. 74HC590 8szt) + Linia OE. + Zarówno wejścia jak i wyjścia + Możliwy przesył szeregowy danych z kilku pinów. + Możliwe przełączanie przełączanych sygnałów łączenie kaskadowe. - Tylko wyjścia, - Potrzebny czas na wyklikanie stanu, - Dodatkowy układ. - Szybkość działania, - Wysoka cena układów o dużej szybkości. 19 20 Rejestr przesuwny Rejestr przesuwny void shiftout(byte mydataout) int i=0; byte pinstate; pinmode(pin_clk, OUTPUT); pinmode(pin_data, OUTPUT); digitalwrite(pin_clk, 0); digitalwrite(pin_data, 0); + Możliwość znacznego rozszerzania wyjść, + Serial input - parallel output, + Niska cena. for (i=7; i>=0; i--) digitalwrite(pin_clk, 0); if ( mydataout & (1<<i) ) pinstate= 1; else pinstate= 0; - Tylko wyjścia - Konieczność załadowania stanu. - Dodatkowy układ (można je łączyć w kaskadę). digitalwrite(pin_data, pinstate); digitalwrite(pin_clk, 1); digitalwrite(pin_data, 0); digitalwrite(pin_clk, 0); 21 Przełączniki digitalwrite (PIN_LATCH,LOW); for (byte k=0;k<3;k++) shiftout(datatoshift[k]); digitalwrite (PIN_LATCH,HIGH); 22 Zatrzaski + Proste przełączanie dużej ilości wyprowadzeń, + Możliwy wybór kierunku, + Szybkie przełączanie wyprowadzeń + Multipleksowanie - Skomplikowane sterowanie - Możliwość uszkodzenia - Tylko jeden kierunek - Wyższa cena układów, - Mniejsza popularność, - Konsekwencje w przypadku uszkodzenia 23 24

Drugi uc 8255 i podobne + Łatwość użycia + Biblioteki + Wejście/wyjście, ADC, PWM. + Wejście i wyjście, + Programowanie przez zapis wartości + 24 piny I/O - Wymaga oprogramowania - Cena - Niższa szybkość. - Wymagania mikroprocesorowe, nie dla mikrokontrolera (konieczność emulacji sygnałów), - Niska prędkość, - Wyższa cena układów 25 26 Programowalny sterownik Komercyjne ekspandery + Dodatkowe funkcje (np. PWM), + Łatwiejsze programowanie, + Najczęściej tylko jeden układ. + + + + - Często niska wydajność prądowa - Wysoka cena - Specjalizowany układ - Problemy z przyszłą dostępnością. Łatwość programowania Gotowe biblioteki Łatwe podłączenie Dodatkowe interfejsy - Bardzo wysokie ceny - Wewnątrz jest któreś z omawianych rozwiązań. 27 Jak użyć mniej pinów? - Klawiatura 29 28 Klawiatura: Lepsze rozwiązanie 30

Klawiatura: Ekstremalne rozwiązanie (RC) Klawiatura: Pin analogowy KEY2 KEY1 Do Arduino ANALOG IN (Eizo F980 schematic) 31 Wyjścia: Multipleksowanie wyjść 32 Urządzenia wyjścia Zamiast 4x8=32 wyjść użyte 8+4=12. Możliwość dalszego zmniejszania wyjść: Przekaźnik, odbiorniki do ok. mocy tranzystora: np. wejścia wyświetlaczy (4) zapis na 2 bitach, użycie dekodera. uc http://hackyourmind.org 9 8 7 6 5 4 3 2 1 0 1N4001 BC547 4K7 33 Urządzenia wyjścia 34 Silniki krokowe Możliwe jest przestawienie o ustalony kąt, Moment jest (w przedziale roboczym) odwrotnie proporcjonalny do prędkości, Wymagają znacznych prądów (więc i sterowników), Łatwa dostępność z odzysku drukarki, napędy CD/FDD, skanery, Biblioteki do ich obsługi są w Arduino, a sterowniki są proste w budowie. Poruszane są przez doprowadzenie prądu do odpowiednich uzwojeń w prawidłowej kolejności, silniki takie mają 2..6 uzwojeń. Układy Darlingtona: Sterowanie silnikiem krokowym: np. ULN2803. Sterowanie Zasilanie silnika 35 36

Jak to działa? Rodzaje silników krokowych Wał jest namagnesowany w odpowiedni sposób, Bipolarne Uaktywniane są kolejne elektromagnesy, Magnes na wale jest przyciągany przez jeden elektromagnes, a odpychany przez inny co powoduje obrót o jeden krok. 4 wyprowadzenia 6 wyprowadzeń Możliwa praca wyłącznie na przyciąganie - mniejszy moment, łatwiejsze sterowanie. Unipolarne 4, 8, 5 wyprowadzeń Źródło: Wikimedia comons 37 38 Sterownik silnika Sterownik silnika Silniki unipolarne: Silniki bipolarne: Układ L293D: Żródło: Dokumentacja Arduino https://www.arduino.cc/en/reference/stepper 39 40 Sekwencja sterowania Dla 4 pinów: * Step C0 C1 C2 C3 * 1 1 0 1 0 * 2 0 1 1 0 * 3 0 1 0 1 * 4 1 0 0 1 Biblioteka stepper Zauważmy, że zawsze: #include <Stepper.h> C0!= C 1 C2!= C 3 Stepper mystepper(200, 8, 9, 10, 11); Możemy więc użyć tylko 2 pinów! Piny, do których podłączono sterownik (2, 4 lub 5 pinów) Ilość kroków/obrót Inwerter: void setup() mystepper.setspeed(60); Prędkość (~obr/min) void loop()...lub układ 74LS04 (6x inwerter) mystepper.step(1); delay(20); 41 Ilość kroków (może być ujemna) Źródło: CNC Router Source 42

Urządzenia wyjścia Separacja galwaniczna: Tyrystor/triak sterowanie prądem zmiennym: Transoptor (DC), Optotriak (AC) Podłączenie: Jak LED (separacja wyjścia) Jak łącznik (separacja wejścia) uc 9 8 7 6 5 4 3 2 1 0 Używane do zabezpieczenia przed: Wysokim napięciem Uszkodzeniem portu Pętlą masy SEPARACJA GALWANICZNA Pamiętamy o ograniczeniu prądu! 43 Dziękuję za uwagę 45 44