Post on 10-Mar-2020
1
Systemy wbudowaneArduino, AVR
Mgr inż. Marek Wilkus http://home.agh.edu.pl/~mwilkusWydział Inżynierii Metali i Informatyki PrzemysłowejAGH Kraków
Wersja 2019.02
2
Tematyka zajęć
• Podstawy elektroniki,
• Układy cyfrowe,• Mikrokontrolery AVR, Arduino,• Programowanie Arduino,
• Interfejsy użytkownika dla własnych urządzeń,
• Rozwiązywanie problemów,• Uzyskiwanie informacji z czujników zewnętrznych,
• Sterowanie różnymi urządzeniami z własnego systemu,
• Raspberry Pi – wykorzystanie możliwości cyfrowych• Raspberry Pi – wykorzystanie możliwości komputera,
• Raspberry Pi – wejście/wyjście,
• Projektowanie układów elektronicznych,• Budowa układów elektronicznych.
3
Przypomnienie:Prawo Ohma
Źródło: Katalog ELFA
Moc [W]
Rezystancja [Ω]
Napięcie [V]
Natężenie [A]
4
Przypomnienie:I prawo Kirchhoffa
5
Jak płynie prąd?
Zasilacz12V/2A
Żarówka12V/21WR=U2/P=144/21=~6.85Ω...co i tak się zmienia...
I=P/U=21/12=1.75A
6
Jak płynie prąd?
Zasilacz12V/2A
Żarówka12V/21WZwarcie - R minimalne
Prąd płynie po linii najmniejszego oporu
I maksymalne – wyczerpanie zdolności zasilacza
7
Jak czytać schematy?
• Połączenie przewodów
• Skrzyżowanie przewodów
• Magistrala (seria połączeń):
8
Jak czytać schematy?
• Vcc, GND – zasilanie, masa• Vaa, Vbb, Vcc, … - różne
napięcia zasilania
9
Elementy elektroniczne: Rezystor
• Ogranicza prąd w obwodzie,• Spadek napięcia na nim jest zależny
liniowo od prądu przezeń płynącego,
• Istotna wielkość: Opór elektryczny R, [Ω] (Ohm),
• Najczęściej wartość zapisana jest w postaci kodu barwnego
• Szeregowe łączenie:R = R1+R2+R3+...
• Równoległe łączenie:
10
Szeregi wartości E
• Każda następna wartość jest o tyle samo % większa od poprzedniej, zaokrąglając do całkowitej w górę,
• Najczęściej można dobrać bliską żądanej wartość w zadanej tolerancji (np. E12 – 10%)
• Elementy o wartościach z szeregu są znacznie tańsze niż o wartościach na zamówienie.
Szereg E12
11
Elementy elektroniczne: Kondensator
• Pojemność elektryczna [F]• Dla prądu stałego - „magazyn” energii
(szczególnie kondensatory wysokiej pojemności)
• Dla prądu zmiennego – stanowi opór (tym mniejszy im większa pojemność lub f)– Stąd ochrona przed zakłóceniami,
usuwanie składowej stałej z sygnałów np. audio, filtrowanie przebiegów
• Istotna wartość: Pojemność (C) [F]– Dla elektrolitycznych również
rezystancja zastępcza (ESR).
• Łączenie równoległe: C=C1+C2+C3+…
• Łączenie szeregowe:12
Elementy elektroniczne: Źródła częstotliwości
• Rezonator kwarcowy – źródło częstotliwości,
• Generatory scalone – większa dokładność wyższa cena,
• TCXO (Thermally-Coupled Crystal Oscillator) – najwyższa dokładność, jednak jeszcze wyższa cena,
• Istotne parametry:– Częstotliwość [Hz]– Dokładność [ppm]
• Istotne prawidłowe podłączenie:– Kondensatory,– Jak najkrótsze ścieżki do układu!
13
Elementy elektroniczne: Dioda
• Przewodzi prąd w jednym kierunku bardziej niż w przeciwnym,
• Używane jako prostowniki, separatory, stabilizatory (dioda zenera),
• Sprawne źródła światła (LED),
• Dioda Schottkyego – szybsze działanie,mniejsza oporność w przód,
• Dioda Zenera – przebicie w ściśle ustalonymnapięciu wstecznym,
• Istotne parametry:– Napięcie maksymalne w przód i wstecz,– Maksymalne natężenie prądu w przód,
• Najczęściej stosowane: 1N4148 1N4001, ...02 …07
14
Elementy elektroniczne: Tranzystory
• Wzmacnianie, sterowanie lub przełączanie sygnałów,
• Działanie:
• Istotne parametry:– Maksymalny prąd C-E– Maksymalne napięcie C-E– Prąd B-E dla pełnego otwarcia– Wzmocnienie (β)
Źródło wykresu:http://www.antonine-education.co.uk/Pages/ELectronics_1/Electronic_Components/Transistors/intro_page_6.htm
IB
~β*IB
IBIBIBIBIBIB
IB
!β*IB
15
Elementy elektroniczne: Układy scalone
• Różnorodne zastosowania,
• Różnorodne obudowy,• Istotne parametry: w nocie katalogowej
układu...– ...mniej istotne również.
• Przykładowo:– Atmega328 – mikrokontroler, jednostka
centralna Arduino,
– 7805 – stabilizator 5V DC,
– DHT11 – czujnik temperatury i wilgotności,
– ULN2803 – Zestaw tranzystorów do sterowania,
– 74LS00, 74LS04 itp. - układy realizujące funkcje logiczne…
• Warto używać podstawek (niska odporność na ciepło) 16
Scalone układy cyfrowe
• Najczęściej obudowa DIP (14, 16 pin, rzadziej 18, max 24) lub odpowiednik,
• Realizują podstawowe funkcje logiczne, bramki, inwertery, liczniki, bufory, przerzutniki, rejestry itp.
• Najczęściej występujące serie: 74xx (technologia TTL) lub 40xx (technologia CMOS),
• Możliwe składanie układów realizujących dowolne funkcje logiczne.
17
Układy cyfrowe
Źródło grafiki:http://hackaday.com/2015/08/03/how-cmos-works/
● Jeżeli stosowane są na raz układy technologii CMOS i TTL, często niezbędna jest konwersja poziomów:
W przypadku CMOS->TTL należy użyć bufora (np. 4096) względnie użyć sygnału z kilku wyjść.
!!!
1
1
18
Czego NIE mogą układy cyfrowe?
• Wyjścia układów cyfrowych, w tym mikrokontrolerów AVR i Arduino, posiadają bardzo niską wydajność prądową (dla układów TTL ok. 1mA w stanie wysokim i 15-20mA w niskim, przy mikrokontrolerach AVR – 20-40mA).
• NIE mogą bezpośrednio zasilać silników, LEDów mocy, żarówek, tym bardziej pompy czy grzałki.
• Niezbędne jest w tym wypadku użycie tranzystora.• Jeżeli mocny tranzystor nie wystarczy, należy użyć
tranzystora i przekaźnika.
19
Złącza
• Dla sygnałów i niskich prądów: Goldpin/IDC/”Złącze ML”/SIL, DIL...
• Większe prądy: Grubsze złącza SIL
• Na zewnątrz obudowy: Złącza DB/DE „szufladowe”, Jack
• Wysokie częstotliwości: Złącza koncentryczne, BNC,
• Istotne parametry:– Dopuszczalny prąd– Maksymalne napięcie– Warunki pracy
20
Zworki i przełączniki konfiguracyjne
• Służą do wprowadzenia sprzętowej konfiguracji układu,
• Niska wytrzymałość prądowa!• Niewielka liczba cykli użycia (w
łącznikach DIP),• Podczas projektowania należy
pamiętać o bezpieczeństwie układu.
21
Płytka stykowa
• Szybkie wykonanie prototypu,
• Łączenie pól kabelkami z tzw. „goldpin”,• Możliwość łatwej rekonfiguracji,
• Nie nadaje się do wysokich prądów
22
Pomiary
• Napięcie w układzie: Woltomierz równolegle do źródła napięcia
• Pobierany prąd: Amperomierz szeregowo wraz z obciążeniem,• Pomiary oporności rezystorów, pojemności kondensatorów:
Element do zacisków miernika
23
Metoda Muntza
• Istnieje bardzo duża różnica techniczna pomiędzy tym jak układ POWINIEN być zrobiony a tym jak MOŻE być zrobiony,
• Ta różnica w eksploatacji jest marginalna.
• Jeżeli znane są punkty pracy układu, można go optymalizować.
• Wiele elementów jest w typowych zastosowaniach zbędne i układ może działać bez nich („Muntzing”).
• Łącząc aplikacje różnych układów często włączamy nadmiarowe elementy, które można bezpiecznie usunąć.
24
Mikroelektronika
• Prawo Moore'a: Liczba tranzystorów w układzie podwaja się co ok (18..24) miesięcy.
196x: 6 T/układ 198x: 10 000 T/układMiniaturyzacja 199x: >milion T/układ
200x: >100 milionów T/układWiększa miniaturyzacja
25
Na przykład...
26
Gdzie szukać informacji?
• Literatura o elektronice, np.:– Nuhrman D. - „Elektronika łatwiejsza niż przypuszczasz”– Horowitz P., Hill W. - „Sztuka Elektroniki”
• Rozdziały teoretyczne w katalogach• Darmowe kursy, np.:
– Talking Electronics: • http://www.talkingelectronics.com/pay/TEI-Index-Full.html
– Play-Hookey – kurs elektroniki cyfrowej• http://www.play-hookey.com/
– Elportal• http://elportal.pl/podstawy-elektroniki/
• Noty katalogowe układów, • Gotowe projekty w sieci,• Badanie istniejących urządzeń,
27
Konstrukcja urządzenia (1)
1. Specyfikacja problemu– np. Zbieranie i przechowywanie informacji o dostarczonych produktach
2. Jakie urządzenia wejścia i wyjścia są potrzebne?– np. Wejście: Czytnik kodów kreskowych, klawiatura,– Wyjście: Karta SD, wyświetlacz, beeper, LEDy
Czytnik kodów
Klawiatura
LCD
LEDy
Karta SD
28
Konstrukcja urządzenia (2)
3. Czy któreś z tych urządzeń wymaga sterowników?– Odpowiednio dobrany sterownik oszczędza porty I/O– Zasilanie urządzeń – czy potrzebujemy dodatkowych źródeł
zasilania?
Czytnik kodów
Klawiatura
LCD
LEDy
Karta SD
rs232
Dzielnik napięcia
Stabilizatory
29
Konstrukcja urządzenia (3)
3. Wybór platformy systemu, ocena wydajności, możliwości rozbudowy i dostosowywania.
UNO
Czytnik kodów
Klawiatura
LCD
LEDy
Karta SD
rs232
Dzielnik napięcia
Stabilizatory
30
Konstrukcja urządzenia (4)
4. Szkielet programu: Definicje, Ustalenie ról wejść/wyjść, założenia programu, podstawowe procedury (+ „zaślepki” funkcji)
0,1 – RS232 for Scanner
A0 – keyboard in
A1..A5 – LED out
2..5, 6, 7 - LCD
10..13 – SD Card I/O
#define KEYBOARD A0#define LED1 A1 …
void store_number() {…setup { pinMode……loop {...
31
Konstrukcja urządzenia (5)
5. Przedprototyp (płytka stykowa), testowanie, dopełnianie i udoskonalanie programu korzystając z połączenia USB do Arduino. Rysowanie i poprawki schematów częściowych (sterowników poszczególnych urządzeń).
32
Konstrukcja urządzenia (6)
7. Końcowe rozwiązanie kwestii zasilania gotowego urządzenia
8. Projektowanie końcowego schematu. Zaprojektowanie i wykonanie płytki drukowanej łączącej mikrokontroler i niezbędne interfejsy. Końcowe testy i poprawki, umieszczenie układu w obudowie.
33
Co więc możemy zrobić...
Pisząc program dla mikrokontrolera możemy:– Sterować stanem: wysoki (ok. 5V) / niski (ok. 0-.5V) na
dowolnym wyjściu ( digitalWrite(PIN,stan) stan = HIGH, LOW ),
– Sprawdzić stan na dowolnym wejściu ( digitalRead(PIN) ),– Zamienić pin (wyprowadzenie) z wejścia na wyjście i
odwrotnie ( pinMode(PIN,stan) stan = INPUT, OUTPUT, INPUT_PULLUP )
– Wykorzystać szczególne właściwości wejść/wyjść.
• Na platformie Arduino wykonujemy to z poziomu języka podobnego do C/C++
34
Dziękuję za uwagę