Programowanie systemów autonomicznych
|
|
- Michał Witek
- 7 lat temu
- Przeglądów:
Transkrypt
1 Programowanie systemów autonomicznych Blok obieralny: Inteligentne Systemy Autonomiczne Instytut Informatyki Stosowanej Stefanowskiego 18/22 al. Politechniki 11 Tomasz Jaworski Piotr Duch
2 Programowanie systemów autonomicznych Wprowadzenie do programowania Arduino 2
3 Komputer (PC) + urządzenia wejścia/wyjścia 3
4 Komputer (Arduino) + urządzenia wejścia/wyjścia 4
5 Różnice? Podobieństwa? 5
6 Charakterystyka Arduino DUE Mikrokontroler: Atmel AT91SAM3X8E Architektura: 32 bitowy ARM Taktowanie: 82 MHz Wielkość pamięci RAM: 96 kb Wielkość pamięci Flash (pamięci programu): 512 kb Napięcie zasilania (zalecane): 7-12 V (napięcie stałe) Napięcie zasilania (limit): 6-16 V (napięcie stałe) Napięcie wewnętrzne: 3,3 V Liczba wejść/wyjść cyfrowych: 54 w tym 12 ma możliwość działania jako wyjścia PWM. Liczba wejść analogowych (ADC): 12 Liczba wyjść analogowych (DAC): 2 Brak RTC Obciążalność prądowa pojedynczego wyjścia logicznego: 6-9 ma (zależnie od wejścia) Obciążalność prądowa całkowita: 150 ma - suma prądów pobieranych z wszystkich wyjść Arduino nie może przekroczyć tej wartości. 6
7 Arduino Due - omówienie interfejsów I/O 7
8 Środowisko programisty Arduino IDE jest to rozbudowane środowisko programistyczne, przeznaczone do pisania kodu na różne wersje jednoukładowego komputera Arduino. Systemy operacyjne: Windows, Mac OS oraz Linux. Wbudowany kompilator architektury ARM - gcc, g++ (arm binutils) Używany język: C z elementami C++ głównie metody na rzecz obiektów, brak wyjątków (-fno-exceptions) dostępne malloc/free, new/delete 8
9 Własna instalacja - konfiguracja środowiska Arduino IDE nie obsługuje natywnie wersji DUE, należy ją zainstalować: Menedżer płytek (Narzędzia -> Płytka -> Menedżer płytek), wybrać i zainstalować Arduino SAM Boards. 9
10 Własna instalacja - połączenie środowiska z modułem DUE Zainstalowany dodatek do Arudino Due należu uaktywnić: Narzędzia -> Płytka, wybrać Arduino Due (Programming Port). następnie Z Narzędzia -> Port należy wybrać port USB, do którego podłączono Arduino DUE. (system sam wykryje listę portów, łącznie z Arduino) 10
11 Pierwsze uruchomienie 11
12 Przydatne narzędzia Pasek narzędzi: Kompiluj/weryfikuj Wgraj i uruchom Nowy Otwórz Zapisz Monitor portu szeregowego Przydatne ustawienia (Plik -> Ustawienia): Numerowanie linii Zwijanie kodu (code folding) 12
13 Arduino API 13
14 Arduino API - typy danych int, unsigned int 16 bitów (2 bajty) - Arduino UNO 32 bity (4 bajty) - Arduino DUE long, unsigned long 32 bity (4 bajty) - niezależnie od platformy float 32 bity (4 bajty) E E+38 (pojedyncza precyzja) double 64 bity (8 bajtów) E E+308 (podwójna precyzja) 14
15 Arduino API - typy danych Ciągi znaków, identycznie z językiem C char Str1[15]; char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'; char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'; char Str4[ ] = "arduino"; char Str5[8] = "arduino"; char Str6[15] = "arduino"; 15
16 Arduino API - typy danych Klasa String ( void loop() { // here's a String with empty spaces at the end (called white space): String stringone = "Hello! "; Serial.print(stringOne); Serial.print("<--- end of string. Length: "); Serial.println(stringOne.length()); // trim the white space off the string: stringone.trim(); Serial.print(stringOne); Serial.print("<--- end of trimmed string. Length: "); Serial.println(stringOne.length()); // do nothing while true: while (true); 16
17 Arduino API - typy danych Tablice, jak w języku C: int myints[6]; int mypins[] = {2, 4, 8, 3, 6; int mysensvals[6] = {2, 4, -8, 3, 2; char message[6] = "hello"; 17
18 Arduino API - budowa programu Szkic (sketch) Wymaga napisania dwóch funkcji: void setup(void) - wykonywana raz, po restarcie/podłączeniu zasilania void loop(void) - wykonywana w pętli; zakończenie funkcji loop powoduje jej restart Odniesienie do klasycznego schematu z języka C: void main(void) { setup(); while(1) loop(); 18
19 Arduino API - budowa programu -- różnice? int licznik; void setup(void) { licznik = 0; Serial.begin(9600); void loop(void) { Serial.write(licznik); licznik++; void setup(void) { Serial.begin(9600); void loop(void) { static int licznik = 0; Serial.write(licznik); licznik++; int licznik = 0; void setup(void) { Serial.begin(9600); while(1) { Serial.write(licznik); licznik++; void loop(void) { 19
20 Arduino API - funkcje/procedury 20
21 Arduino API - obiekt LiquidCrystal - wyświetlacz LCD 21
22 Arduino API - obiekt LiquidCrystal - wyświetlacz LCD Biblioteka LiquidCrystal (jeśli nie ma, to trzeba dodać: Sketch -> Include Library) Plik nagłówkowy: #include <LiquidCrystal.h> Konstruktor (notacja C++) LiquidCrystal lcd(26, 28, 29, 30, 31, 32); // sygnały: RS, E, D4, D5, D6, D7 Konfiguracja: void setup() { lcd.begin(16,2); 22
23 Arduino API - obiekt LiquidCrystal - wyświetlacz LCD Dostępne metody ( begin(cols, rows) - inicjuj wyświetlacz (wejście: liczba wierszy i kolumn) clear() - czyść wyświetlacz home() - ustaw kursor w lewym górnym rogu (0, 0) setcursor(x, y) - ustaw kursor na współrzędnych x i y (licząc od 0) print(val [, format]) - wyświetl wartość (liczbę, tekst, znak) z formatowaniem write(ch) - wyświetl znak ch nocursor() - ukryj kursor cursor() - pokaż kursor blink() - włącz miganie kursora noblink() - wyłącz miganie kursora createchar(ch, bmap) - utwórz własny znak ch z bitmapy bmap (5x8) 23
24 Arduino API - obiekt LiquidCrystal - wyświetlacz LCD #include <LiquidCrystal.h> LiquidCrystal lcd(26, 28, 29, 30, 31, 32); void setup() { lcd.begin(16,2); lcd.setcursor(0,0); lcd.print("hello, World!"); void loop() { static int i = 0; lcd.setcursor(0,1); lcd.print("i="); lcd.print(i++); delay(250); 24
25 Arduino API - obiekt LiquidCrystal - wyświetlacz LCD #include <LiquidCrystal.h> LiquidCrystal lcd(26, 28, 29, 30, 31, 32); void setup() { lcd.begin(16,2); void loop() { delay(1000); lcd.setcursor(0,0); lcd.print("programowanie "); delay(3000); lcd.setcursor(0,1); lcd.print("urzadzen Arduino"); delay(3000); lcd.setcursor(0,0); lcd.print("urzadzen Arduino"); lcd.setcursor(0,1); lcd.print("jest BANALNIE ;)"); delay(3000); lcd.setcursor(0,0); lcd.print("jest BANALNIE ;)"); lcd.setcursor(0,1); lcd.print("proste. "); delay(3000); lcd.clear(); 25
26 26
27 Arduino API - obiekt Serial - komunikacja/konsola Port szeregowy: Dostępne metody: begin(speed) - uruchom port szeregowy z prędkością speed begin(speed, config) - j/w + dodatkowa konfiguracja print(val [, format]) - wyślij wartość (tekst, liczbę, znak) do odbiornika println(val [, format]) - wyślij wartość + znak nowej linii do odbiornika int available() - pobierz liczbę danych w buforze wejściowym int read() - wczytaj i zwróć wartość bajta z bufora wejściowego lub -1 String readstring() - pobierz dane z bufora jako tekst (String) String readstringuntil(char) - wczytuj dane z bufora aż do napotkania char lub przekroczenia czasu settimeout(ms) - ustaw limit czasu oczekiwania na dane [ms] 27
28 Arduino API - obiekt Serial - komunikacja/konsola void setup() { Serial.begin(9600); void loop() { static int licznik = 0; Serial.print("Licznik wynosi: "); Serial.println(licznik++); delay(500); 28
29 Arduino API - obiekt Serial - komunikacja/konsola void setup() { Serial.begin(9600); void loop() { static int licznik = 0; Serial.print("Licznik wynosi: "); Serial.println(licznik++, HEX); delay(500); 29
30 Arduino API - obiekt Serial - komunikacja/konsola void setup() { Serial.begin(9600); void loop() { if (Serial.available() > 0) { byte b = Serial.read(); Serial.print("Bajt: "); Serial.println(b, HEX); 30
31 Arduino API - obiekt Serial - komunikacja/konsola void setup() { Serial.begin(9600); void loop() { int data = Serial.read(); Serial.print(data); Serial.println(); delay(100); 31
32 Arduino API - obiekt Serial - komunikacja/konsola void setup() { Serial.begin(9600); void loop() { String text = Serial.readStringUntil('\n'); Serial.print("Tekst: "); Serial.print(text); Serial.print("(dlugosc="); Serial.print(text.length()); Serial.println(")"); 32
33 Arduino API - obiekt Serial - komunikacja/konsola void setup() { Serial.begin(9600); Serial.setTimeout(-1); void loop() { String text = Serial.readStringUntil('\n'); Serial.print("Tekst: "); Serial.print(text); Serial.print("(dlugosc="); Serial.print(text.length()); Serial.println(")"); 33
34 Arduino API - Funkcje do obsługi czasu Opóźnienie czasowe: void delay(unsigned long ms); void delaymicroseconds(unsigned int mc); Wstrzymuje działanie programu na ms milisekund lub mc mikrosekund. 1 sekunda = 1,000 ms = 1,000,000 us Punkt czasowy: unsigned long millis(void); unsigned long micros(void); Pobiera wartość czasu od startu/restartu urządzenia (brak RTC!) 34
35 Arduino API - Funkcje matematyczne Arduino/hardware/tools/avr/avr/include/math.h Makra: min(a, b), max(a, b), abs(x), constraint(x, low, high) Funkcje: float/float: sqrtf double/double: pow, sqrt, sin, cos, tan, floor, ceil, exp, log, log10 int/float: isnan, isinf long/long: map(value, slow, shigh, dlow, dhigh) 35
36 Arduino API - Funkcje matematyczne Makra - uwaga na efekty uboczne int a = 10, b = 20; int z = min(a++, b++); a =?, b =?, z =? int a = 10, b = 20; int z = (a++) > (b++)? (a++) : (b++) a =?, b =?, z =? 36
37 Arduino API - Generator liczb pseudolosowych Losuj wartość z zakresu 0 - high: long random(long high); Losuj wartość z zakresu low - high: long random(long low, long high); Ustaw wartość początkową generatora: void randomseed(unsigned long); Odpowiedniki w CRT: rand(), srand(). 37
38 Arduino API - Generator liczb pseudolosowych void setup(void) { randomseed(0); Serial.begin(9600); void loop(void) { Serial.print(random(100)); void setup(void) { long seed = 0; for (int i = 0; i < 12; i++) seed += analogread(i); randomseed(seed); Serial.begin(9600); void loop(void) { Serial.println(random(100)); 38
39 Arduino API - operacje na bitach (makra!) Odczytaj wartość bitu (x=0/1): x = bitread(number, bit); Ustaw bit: bitset(number, bit); Zeruj bit: bitclear(number, bit); Zapisz nową wartość bitu: bitwrite(number, bit, newvalue); 39
40 Arduino API - IO Wejście/wyjście cyfrowe (binarne) Wyjście: Pozwala na wystawienie wartości logicznej (sygnału cyfrowego), do wykorzystania przez inne urządzenia (np. włącz/wyłącz silnik). Wejście: Pozwala na pobranie wartości logicznej od zewnętrznego urządzenia (czujnik: czy okno zamknięte?) Możliwe stany logiczne: 0 (LOW, fałsz) oraz 1 (HIGH, prawda) Wartości napięciowe sygnałów: Arduino DUE: LOW = 0V, HIGH = 3V3 Arduino UNO: LOW = 0V, HIGH = 5V Uwaga na wydajność prądową wyjść cyfrowych! 40
41 Arduino API - IO - wejścia/wyjścia binarne Ustawienie kierunku przepływu informacji dla danego pinu: pinmode(pin, mode) pin - numer pinu 0-53 mode - tryb: INPUT, OUTPUT, INPUT_PULLUP Pobranie stanu logicznego (wartości sygnału) danego pinu: bool digitalread(pin) Ustawienie stanu logicznego (wartości sygnału) danego pinu: void digitalwrite(pin, value) value - wartość logiczne: LOW, HIGH 41
42 Arduino API - IO - wejścia/wyjścia binarne Obciążalność prądowa pinów Arduino DUE Prąd Kierunek=WYJŚCIE; Numer pinu - parametr pin w funkcji pinmode 3 ma 0 15 ma Prąd Kierunek=WEJŚCIE; Numer pinu - parametr pin w funkcji pinmode 6 ma 9 ma
43 Arduino API - IO - Przykład int ledpin = 5; void setup() { pinmode(ledpin, OUTPUT); void loop() { digitalwrite(ledpin, HIGH); delay(1000); digitalwrite(ledpin, LOW); delay(1000); 43
44 Arduino API - IO - Przykład void setup() { pinmode(2, OUTPUT); pinmode(3, OUTPUT); pinmode(4, OUTPUT); void loop() { digitalwrite(2, 1); digitalwrite(3, 1); digitalwrite(4, 1); delaymicroseconds(20); digitalwrite(4, 0); delaymicroseconds(60); digitalwrite(3, 0); delaymicroseconds(150); digitalwrite(2, 0); delaymicroseconds(770); 44
45 Arduino API - IO - Przykład void setup() { for (int i = 0; i < 8; i++) pinmode(2 + i, OUTPUT); void loop() { static byte value = 0; for (int i = 0; i < 8; i++) digitalwrite(2 + i, bitread( value, i)); Podpowiedź (podłączenie diod): PIN 2 = LED 8 PIN 3 = LED 7 PIN 4 = LED 6 PIN 5 = LED 5 PIN 6 = LED 4 PIN 7 = LED 3 PIN 8 = LED 2 PIN 9 = LED 1 value++; delay(100); 45
46 Arduino API - IO Wejście/wyjście analogowe Wyjście: Pozwala na wygenerowanie sygnału napięciowego, do wykorzystania przez inne urządzenia (np. sterowanie poziomem gazu w samochodzie) Wejście: Pozwala na zmierzenie wartości napięcia, podanego na wejście przez urządzenie zewnętrzne (czujnik jasności). Możliwy zakres wartości: (10 bitów) lub 4095 (12 bitów) Liczba wejść: 12 (A0-A11), wyjść: 2 (DAC0, DAC1) Wyjścia i wejścia to różne piny Wartości napięciowe sygnałów w Arduino DUE: 0 = 0V; 512 = 1,65V; 1023 = 3,3V (dla 10 bitów) 0 = 0V; 2048 = 1,65V; 4095 = 3,3V (dla 12 bitów) 46
47 Arduino API - wejście analogowe Odczytanie wartości napięcia w jednostkach przetwornika: int analogread(int pin); Ustawienie liczby bitów przetwornika (10 lub 12) int analogreadresolution(int bits); bits = 10 -> max=1024; 12 -> max=4096 Dostępne wejścia analogowe (piny): A0 - A11 (12 pinów) Przykład: int value = analogread(a3); float voltage = 3.3f * (float)value / f; 47
48 Arduino API - wejście analogowe (napięciowe) void setup() { Serial.begin(9600); void loop() { int int int int x1 y1 x2 y2 = = = = analogread(a1); analogread(a0); analogread(a11); analogread(a10); Serial.print(x1); Serial.print('/'); Serial.print(y1); Serial.print(' '); Serial.print(x2); Serial.print('/'); Serial.print(y2); Serial.print('\n'); 48
49 Arduino API - wyjście analogowe Ustawienie wartości analogowej val na pinie : int analogwrite(int pin, int value); Dostępne wyjścia analogowe: 0 (DAC0), 1 (DAC1) - wyjścia napięciowe, max = generatory PWM, max = 255, fpwm = 1k Hz 49
50 Arduino API - wyjście analogowe (PWM) void setup() pinmode(2, pinmode(3, pinmode(4, { OUTPUT); OUTPUT); OUTPUT); analogwrite(4, 5); analogwrite(3, 20); analogwrite(2, 59); void setup() { pinmode(2, OUTPUT); pinmode(3, OUTPUT); pinmode(4, OUTPUT); void loop() { digitalwrite(2, 1); digitalwrite(3, 1); digitalwrite(4, 1); delaymicroseconds(20); digitalwrite(4, 0); void loop() { delaymicroseconds(60); digitalwrite(3, 0); delaymicroseconds(150); digitalwrite(2, 0); delaymicroseconds(770); 50
51 Arduino API - Przerwania Wystąpienie przerwania powoduje wstrzymanie aktualnie wykonywanego kodu oraz wykonanie procedury obsługi przerwania (ISR - Interrupt Service Routine). Podstawowe źródła przerwań: Wejściowe piny cyfrowe Timery/liczniki Przerwania są domyślnie aktywne. Przerwania nie są od wykonywania długich operacji (np. mnożenie wartości typu double) a jedynie do zmiany stanu programu. Pamiętaj o volatile! 51
52 Arduino API - Przerwania Aktywacja/deaktywacja interrupts(); Aktywuje kontroler przerwań nointerrupts(); Deaktywuje kontroler przerwań. Niektóre funkcje (np. komunikacja) może przestać działać. Przykład: nointerrupts(); // tutaj kod, który nie może być przerwany, precyzyjny pomiar czasu, itd interrupts(); 52
53 Arduino API - Przerwania WE/WY Dodanie obsługi przerwania attachinterrupt(intno, ISR, mode); Ustaw funkcję obsługi ISR przerwania o wektorze intno. Funkcja ISR będzie uruchamiana w zależności od trybu mode. Wektor przerwania na podstawie numeru pinu: digitalpintointerrupt(pin) Wykorzystanie: attachinterrupt(digitalpintointerrupt(pin), ISR, mode); Konwerter digitalpintointerrupt nie jest wymagany dla DUE ale zalecany, ze względu na możliwe problemy z kompatybilnością. 53
54 Arduino API - Przerwania WE/WY Dostępne wartości parametru mode: LOW - gdy pin jest w stanie niskim (LOW, 0) HIGH - gdy pin jest w stanie wysokim (HIGH, 1) CHANGE - gdy na pinie wykryto zmianę stanu (0->1 lub 1->) RISING - gdy wykryto zbocze narastające (0->1) FALLING - gdy wykryto zbocze opadające (1->0) 54
55 Arduino API - Przerwania WE/WY Usunięcie obsługi przerwania detachinterrupt(intno); Wyłącz obsługę przerwania o wektorze intno. Wektor przerwania na podstawie numeru pinu: digitalpintointerrupt(pin) Wykorzystanie: detachinterrupt(digitalpintointerrupt(pin)); 55
56 Arduino API - Przerwania WE/WY void setup() { Serial.begin(9600); for (int i = 46; i <= 49; i++) pinmode(i, INPUT); attachinterrupt(digitalpintointerrupt(46), key_right, FALLING); attachinterrupt(digitalpintointerrupt(47), key_up, FALLING); attachinterrupt(digitalpintointerrupt(48), key_left, FALLING); attachinterrupt(digitalpintointerrupt(49), key_down, FALLING); void loop() { void key_right(void) { Serial.println("right"); void key_up(void) { Serial.println("up"); void key_left(void) { Serial.println("left"); void key_down(void) { Serial.println("down"); 56
57 Arduino API - Przerwania WE/WY volatile byte state = 0; void blink(void); void setup(void) { pinmode(47, INPUT); // strzałka w górę pinmode(3, OUTPUT); // dioda LED attachinterrupt(digitalpintointerrupt(47), blink, CHANGE); void loop(void) { digitalwrite(3, state); void blink(void) { state =!state; A czy digitalwrite można użyć w blink? 57
58 Arduino API - Przerwania WE/WY - Problem z przyciskami Źródła: drganie mechaniczne zestyków, zaburzenie parametrów elektrycznych podczas ruchu powierzchni kontaktowych 58
59 Arduino API - Przerwania timerów - biblioteka DueTimer GitHub: Instalacja biblioteki DueTimer: 1. Sketch -> Include Library -> Manage libraries 2. Sketch -> Include Library -> DueTimer Wynik: #include <DueTimer.h> 59
60 Arduino API - DueTimer Biblioteka zewnętrzna, dedykowana wyłącznie dla Arduino DUE (nieportowalna ze względu na sprzęt) Na starcie udostępnia 9 timerów: Timer0 Timer8, będących obiektami klasy DueTimer W przypadku korzystania z biblioteki Servo, niedostępne są timery 0-5 (należy aktywować dyrektywę #define USING_SERVO_LIB true w pliku nagłówkowym DueTimer.h) Wszystkie metody klasy DueTimer zwracają DueTimer& (za wyjątkiem getfrequency i getperiod) Podobnie jak dla przerwań WE/WY, timery mogą mieć tylko jedną funkcję ISR 60
61 Arduino API - DueTimer Metody klasy DueTimer: DueTimer& getavailable() - Zwraca ref. do pierwszego wolnego timera attachinterrupt(void (*isr)()) - Podłącza obsługę isr przerwania detachinterrupt() - Usuwa obsługę przerwania start(long microseconds = -1) - Uruchom timer; opcjonalnie ustaw okres w mikrosekundach. stop() - Zatrzymaj timer setfrequency(double frequency) - Ustaw częstotliwość timera [Hz] double getfrequency() - Pobierz częstotliwość timera setperiod(long microseconds) - Ustaw okres timera [us] long getperiod() - Pobierz okres timera [us] 61
62 Arduino API - DueTimer #include <DueTimer.h> void setup() { Serial.begin(9600); Timer4.attachInterrupt(handler).start(); void loop() { void handler(void) { Serial.print("test"); #include <DueTimer.h> void setup() { Serial.begin(9600); Timer4.attachInterrupt(handler); Timer4.setFrequency(1); Timer4.start(); void loop() { void handler(void) { Serial.print("test"); 62
63 Płytka edukacyjna - dostępne zasoby 1/2 Diody LED (L): L8=p2, L7=p3, L6=p4, L5=p5, L4=p6, L3=p7, L2=p8, L1=p9 Serwonapędy (S): S1=p10, S2=p11, S3=p12, S4=p13 Dźwięk: Brzęczyk=p24, Audio=dac0 Joysticki: J1X=a11, J1Y=a10, J2X=a1, J2Y=a0 Potencjometr POT=a9 Klawiatura - strzałki: Prawo=p46, Góra=p47, Lewo=p48, Dół=p49 Przełączniki konfiguracyjne SW1=p50, SW2=p51, SW3=p52, SW4=p53 Czujnik ultradźwiękowy: Ping=p45, Echo=p44 63
64 Płytka edukacyjna - dostępne zasoby 2/2 Czujnik ultradźwiękowy: Ping=p45, Echo=p44 Wyświetlacz 7SEG: Dane=p38, Zegar=p39, Strob1=p33, Strob2=p34, Strob3=p35, Strob4=p36, OE=p37 Wyświetlacz alfanumeryczny LCD (2x16): RS=p26, E=p28, D4=p29, D5=p30, D6=p31, D7=p32 Klawiatura 4x4: Zegar=p41, DaneWe=p42, Zatrzask=p40 Wyświetlacz matrycowy 8x8: CS=43, standardowy interfejs SPI 64
65 Wyświetlacz OLED Rozdzielczość: 128x64 (8192 punkty) Technologia: OLED Sterowanie z Arduino: klasa SH1106_SPI_FB Biblioteka: 65
66 Obsługa OLED - Klasa SH1106_SPI_FB #include <SH1106_SPI.h> void loop() { oled.clear(); SH1106_SPI_FB oled; oled.gotoxy(0, 1); oled.print("processing..."); void setup(void) { oled.renderall(); oled.begin(); for (int i = 0; i <= 100; i++) { oled.print("start"); oled.gotoxy(4, 2); oled.renderall(); oled.print(i); oled.print("% "); delay(1000); oled.renderall(); delay(100); delay(1000); oled.clear(); oled.gotoxy(10, 3); oled.print("ready!"); oled.renderall(); delay(1000); 66
67 Obsługa OLED - Klasa SH1106_SPI_FB #include <SH1106_SPI.h> void loop() { oled.clear(); SH1106_SPI_FB oled; oled.gotoxy(0, 1); oled.print("processing..."); void setup(void) { oled.renderall(); oled.begin(); for (int i = 0; i <= 100; i++) { oled.print("start"); oled.gotoxy(4, 2); oled.renderall(); oled.print(i); oled.print("% "); delay(1000); oled.renderall(); delay(100); delay(1000); oled.clear(); oled.gotoxy(10, 3); oled.print("ready!"); oled.renderall(); delay(1000); film 67
68 Obsługa OLED - Klasa SH1106_SPI_FB #include <SH1106_SPI.h> SH1106_SPI_FB oled; void setup(void) { oled.begin(); film void loop() { for (int x = 0; x < 128; x++) for (int y = 0; y < 64; y++) oled.setpixel(x, y, random(2)); oled.renderall(); 68
69 Obsługa OLED - Klasa SH1106_SPI_FB #include <SH1106_SPI.h> SH1106_SPI_FB oled; int y[128] = {, dx = 0; void setup(void) { oled.begin(); void draw(bool s) { for (int i = 0; i < 128; i++) oled.setpixel(i, 32 + y[i], s); void loop() { draw(false); for (int i = 0; i < 128; i++) y[i] = 30*sin((float)(i+dx) / 10.0f); dx++; draw(true); oled.renderall(); film 69
70 Obsługa OLED - Klasa SH1106_SPI_FB Dostępne API: begin() - Inicjuje wyświetlacz (automatyczne czyszczenie zawartości) write(data) - Wyświetla znak na podstawie kodu data; znaki nie-ascii nie są wyświetlane. clear() - Czyści zawartość ekranu. gotoxy(cx,cy) - Ustawia pozycję wyświetlania tekstu na pozycję x,y. Uwaga! cx i cy to nie współrzędne pikselowe, tylko znakowe. setpixel(x, y, v) - Ustawia piksel (x, y) wartością v. writeline(x1, y1, x2, y2) - Rysuje linię (tylko pionowe/poziome) writerect(x, y, w, h, fill) - rysuje/wypełnia prostokąt print(value) - wyświetla wartość (tekst, liczbę, itd) w aktualnej pozycji println(value) - działa jak print(); znak \n nie jest obsługiwany 70
71 Płytka edukacyjna - zasoby sprzętowe Definicje słowne w języku C (#define): 71
72 Dziękuję za uwagę 72
Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe
Arduino C - stałe Systemy Wbudowane Arduino C Wersja 2018 Unikać redefiniowania istniejących stałych. Stosowane dla polepszenia zrozumiałości kodu. Lepiej HIGH niż 0x01 Lepiej INPUT_PULLUP niż 0x2 Uwzględniają
Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0.
Podstawowe funkcje sterowania pinami cyfrowymi pinmode(8, OUTPUT); //ustawienie końcówki jako wyjście pinmode(8, INPUT); // ustawienie końcówki jako wejście pinmode(8, INPUT_PULLUP); // ustawienie końcówki
Wprowadzenie do programowania urządzeń Arduino (Arduino dla Informatyków)
Wprowadzenie do programowania urządzeń Arduino (Arduino dla Informatyków) Zajęcia pilotażowe z Arduino Podstawy Programowania 2 / Systemy Operacyjne 2 Autor: Piotr Duch, Tomasz Jaworski Instytut Informatyki
Schemat blokowy architektury AVR
Schemat blokowy architektury AVR Rejestry procesora AVR dostępne programowo Rejestry procesora AVR związane z pobraniem i wykonaniem rozkazu Schemat blokowy procesora ATMega 2560 ATMEL ATMEGA328P MEMORY
Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD
Wymagania: V, GND Zasilanie LED podswietlenia (opcjonalne) Regulacja kontrastu (potencjometr) Enable Register Select R/W (LOW) bity szyny danych Systemy Wbudowane Arduino - rozszerzanie mgr inż. Marek
Wprowadzenie do programowania urządzeń Arduino (Arduino dla Informatyków)
Wprowadzenie do programowania urządzeń Arduino (Arduino dla Informatyków) Zbiór zadań dla bloku obieralnego Inteligentne Systemy Autonomiczne Autor: Piotr Duch, Tomasz Jaworski Instytut Informatyki Stosowanej
Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe
Arduino C - stałe Systemy Wbudowane Arduino C Wersja 2019 Unikać redefiniowania istniejących stałych. Stosowane dla polepszenia zrozumiałości kodu. Lepiej HIGH niż 0x01 Lepiej INPUT_PULLUP niż 0x2 Uwzględniają
Systemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C:
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
Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.
Nazwa implementacji: Termometr cyfrowy - pomiar temperatury z wizualizacją pomiaru na wyświetlaczu LCD Autor: Krzysztof Bytow Opis implementacji: Wizualizacja działania elementu zestawu modułu-interfejsu
LABORATORIUM - ELEKTRONIKI Układy mikroprocesorowe cz.2
LABORATORIUM - ELEKTRONIKI Układy mikroprocesorowe cz.2 PRZEBIEG ĆWICZENIA 1. Wybrać z dostarczonych przez prowadzącego następujące elementy Układ Arduino Mega Płytka prototypowa Wyświetlacz 2X16 Potencjometr
Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307
Język C Wykład 9: Mikrokontrolery cz.2 Łukasz Gaweł Chemia C pokój 307 lukasz.gawel@pg.edu.pl Pierwszy program- powtórka Częstotliwość zegara procesora μc (należy sprawdzić z kartą techniczną μc) Dodaje
Klawiatura matrycowa
Klawiatura matrycowa Budowa matrycy klawiatury. Nieodzownym elementem każdego systemu mikroprocesorowego jest klawiatura. Umożliwia ona wpływ użytkownika na wykonywany przez niego program. Jednak teoretycznie
Szkolenia specjalistyczne
Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com
LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2
LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2 1. Cel ćwiczenia Celem ćwiczenia jest pokazanie budowy systemów opartych na układach Arduino. W tej części nauczymy się podłączać różne czujników,
Pomiar odległości z Arduino czujniki, schematy, przykładowe kody
Pomiar odległości z Arduino czujniki, schematy, przykładowe kody W robotyce, mechatronice czy modelarstwie do rozwiązania jest problem pomiaru odległości do czegoś, na przykład do ściany lub do kogoś idącego
1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33
Spis treści 3 1. Wprowadzenie...11 1.1. Wstęp...12 1.2. Mikrokontrolery rodziny ARM...13 1.3. Architektura rdzenia ARM Cortex-M3...15 1.3.1. Najważniejsze cechy architektury Cortex-M3... 15 1.3.2. Rejestry
Poradnik programowania procesorów AVR na przykładzie ATMEGA8
Poradnik programowania procesorów AVR na przykładzie ATMEGA8 Wersja 1.0 Tomasz Pachołek 2017-13-03 Opracowanie zawiera opis podstawowych procedur, funkcji, operatorów w języku C dla mikrokontrolerów AVR
Rafał Staszewski Maciej Trzebiński, Dominik Derendarz
R Staszewski Rafał Staszewski Maciej Trzebiński, Dominik Derendarz Henryk Niewodniczański Institute of Nuclear Physics Polish Academy of Sciences (IFJ PAN Cracow) Zagraj w Naukę 27 października 2014 1
Systemy Wbudowane. Arduino, AVR (wersja ) Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler
Mikrokontroler Platforma Systemy Wbudowane IDE:, AVR (wersja 016-0) mgr inż. Marek Wilkus http://home.agh.edu.pl/~mwilkus Wydział Inżynierii Metali i Informatyki Przemysłowej AGH Kraków Mikrokontroler
Systemy Wbudowane. Arduino, AVR (wersja 2018) Arduino. Arduino. Oprogramowanie. Rys historyczny. Mikrokontroler
Mikrokontroler Platforma Mikrokontroler AVR Uno Systemy Wbudowane IDE: Środowisko Preprocesor kodu Terminal Uruchamianie, AVR (wersja 018) mgr inż. Marek Wilkus http://home.agh.edu.pl/~mwilkus Wydział
Przetwornik analogowo-cyfrowy
Przetwornik analogowo-cyfrowy Przetwornik analogowo-cyfrowy A/C (ang. A/D analog to digital; lub angielski akronim ADC - od słów: Analog to Digital Converter), to układ służący do zamiany sygnału analogowego
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)
O autorze (9) Podziękowania (10) Wstęp (11) Pobieranie przykładów (12) Czego będę potrzebował? (12) Korzystanie z tej książki (12) Rozdział 1. Programowanie Arduino (15) Czym jest Arduino (15) Instalacja
Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści
Arduino dla początkujących. Kolejny krok Autor: Simon Monk Spis treści O autorze Podziękowania Wstęp o Pobieranie przykładów o Czego będę potrzebował? o Korzystanie z tej książki Rozdział 1. Programowanie
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
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
Programowanie mikrokontrolerów AVR
Programowanie mikrokontrolerów AVR Czym jest mikrokontroler? Mikrokontroler jest małym komputerem podłączanym do układów elektronicznych. Pamięć RAM/ROM CPU wykonuje program Układy I/O Komunikacje ze światem
Systemy Wbudowane. Arduino, AVR (wersja 2019) Arduino. Arduino. Oprogramowanie. Rys historyczny. Mikrokontroler
Mikrokontroler Platforma Mikrokontroler AVR Uno Systemy Wbudowane IDE: Środowisko Preprocesor kodu Terminal Uruchamianie, AVR (wersja 09) mgr inż. Marek Wilkus http://home.agh.edu.pl/~mwilkus Wydział Inżynierii
Tematem projektu jest oparty na Arduino zegar pokazujący godzinę oraz datę.
Projekt zegara. Tematem projektu jest oparty na Arduino zegar pokazujący godzinę oraz datę. Aktualny czas należy wpisać na monitorze portu szeregowego po podłączeniu płytki. Godzina jest pokazywana mechanicznie
Język programowania. KURS Kurs Arduino (1)
Kurs Arduino (1) Język programowania Dodatkowe materiały na CD/FTP Rozpoczynamy naukę programowania Arduino. W pierwszej kolejności zajmiemy się specyficznym językiem Arduino, który dostępnymi bibliotekami
start Program mikroprocesorowego miernika mocy generowanej $crystal = deklaracja
----------------------------start---------------------------- Program mikroprocesorowego miernika mocy generowanej $crystal = 8000000 deklaracja częstotliwości kwarcu taktującego uc $regfile "m8def.dat"
Programowanie mikroprocesorów w systemie Arduino. Instrukcja do ćwiczenia laboratoryjnego
Cel ćwiczenia Programowanie mikroprocesorów w systemie Arduino Instrukcja do ćwiczenia laboratoryjnego Patryk Strankowski, Jarosław Guziński, Marcin Morawiec, Arkadiusz Lewicki ver. 2.2 2016 r. Celem ćwiczenia
1.2. Architektura rdzenia ARM Cortex-M3...16
Od Autora... 10 1. Wprowadzenie... 11 1.1. Wstęp...12 1.1.1. Mikrokontrolery rodziny ARM... 14 1.2. Architektura rdzenia ARM Cortex-M3...16 1.2.1. Najważniejsze cechy architektury Cortex-M3... 16 1.2.2.
Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780
Dane techniczne : Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780 a) wielkość bufora znaków (DD RAM): 80 znaków (80 bajtów) b) możliwość sterowania (czyli podawania kodów znaków) za pomocą
Zmierzyć się z żywiołami, czyli jak zbudować własną stację badawczą! Zaczynamy! Pole komunikatów programu. Nawigacja w programie Arduino
Zaczynamy! Lista zadań Menu programu sprawdzanie kodu Skróty wybranych poleceń wgrywanie kodu nowy program otwieranie zapisanych prog. Pole do wprowadzania kodu zapisywanie zmian wywołanie podglądu portu
Instytut Teleinformatyki
Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Systemy Czasu Rzeczywistego Programowanie wyświetlacza graficznego LCD laboratorium: 01 autor: mgr inż. Paweł Pławiak
ADVANCE ELECTRONIC. Instrukcja obsługi aplikacji. Modbus konfigurator. Modbus konfigurator. wersja 1.1
Instrukcja obsługi aplikacji 1 1./ instalacja aplikacji. Aplikacja służy do zarządzania, konfigurowania i testowania modułów firmy Advance Electronic wyposażonych w RS485 pracujących w trybie half-duplex.
Bootloader programming
Arduino Esplora ATMega32u4 ISP programming Bootloader programming The bootloader is basically a.hex file that runs when you turn on the board. It is very similar to the BIOS that runs on your PC. It does
Przyrząd do grania bluesa Projekt zaliczeniowy z przedmiotu Programowanie Mikrokontrolerów
Przyrząd do grania bluesa Projekt zaliczeniowy z przedmiotu Programowanie Mikrokontrolerów Artem Poliszczuk 1 Opis działania urządzenia W ramach projektu skonstruowano urządzenie pozwalające na granie
2. Architektura mikrokontrolerów PIC16F8x... 13
Spis treści 3 Spis treœci 1. Informacje wstępne... 9 2. Architektura mikrokontrolerów PIC16F8x... 13 2.1. Budowa wewnętrzna mikrokontrolerów PIC16F8x... 14 2.2. Napięcie zasilania... 17 2.3. Generator
Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430
Wykład 4 Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430 Mikrokontrolery PIC Mikrokontrolery PIC24 Mikrokontrolery PIC24 Rodzina 16-bitowych kontrolerów RISC Podział na dwie podrodziny: PIC24F
1. Podstawowe wiadomości...9. 2. Możliwości sprzętowe... 17. 3. Połączenia elektryczne... 25. 4. Elementy funkcjonalne programów...
Spis treści 3 1. Podstawowe wiadomości...9 1.1. Sterowniki podstawowe wiadomości...10 1.2. Do czego służy LOGO!?...12 1.3. Czym wyróżnia się LOGO!?...12 1.4. Pierwszy program w 5 minut...13 Oświetlenie
dokument DOK 02-05-12 wersja 1.0 www.arskam.com
ARS3-RA v.1.0 mikro kod sterownika 8 Linii I/O ze zdalną transmisją kanałem radiowym lub poprzez port UART. Kod przeznaczony dla sprzętu opartego o projekt referencyjny DOK 01-05-12. Opis programowania
1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15
3 1. Wstęp... 9 2. Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE... 11 3. Rdzeń mikrokontrolerów ST7FLITE... 15 3.1. Jednostka centralna...16 3.2. Organizacja i mapa pamięci...19 3.2.1. Pamięć RAM...20
Krótki wstęp o wyświetlaczach. Jak zmusić wyświetlacz do pracy?
7 Kurs Arduino #7 Wyświetlacz tekstowy, LCD Do tej pory nasza komunikacja z płytką Arduino była stosunkowo ograniczona. Mogliśmy użyć diod święcących do sygnalizowania pewnych stanów lub UART do połączenia
6 ARDUINO DLA POCZĄTKUJĄCYCH. PODSTAWY I SZKICE
Spis treści O autorze... 9 Podziękowania... 10 Wstęp... 11 Czym jest Arduino?... 11 Co będzie potrzebne?... 12 Korzystanie z niniejszej książki... 12 Pomoce... 13 Rozdział 1. Oto Arduino... 15 Mikrokontrolery...
Wstęp...9. 1. Architektura... 13
Spis treści 3 Wstęp...9 1. Architektura... 13 1.1. Schemat blokowy...14 1.2. Pamięć programu...15 1.3. Cykl maszynowy...16 1.4. Licznik rozkazów...17 1.5. Stos...18 1.6. Modyfikowanie i odtwarzanie zawartości
SCL > Pin 21 SDA > Pin 20 VCC > 5V GND > GND
Nazwa implementacji: Budowa RTC w oparciu o DS1307 Autor: Krzysztof Bytow Opis implementacji: Układ DS1307 jest to zegar czasu rzeczywistego (Real Time Clock) służy do odliczania czasu niezależnie od stanu
Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości
Politechnika Lubelska Wydział Elektrotechniki i Informatyki PRACA DYPLOMOWA MAGISTERSKA Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości Marcin Narel Promotor: dr inż. Eligiusz
Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32)
Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32) wersja 0.4 (20 kwietnia 2015) Filip A. Sala W niniejszym, bardzo krótkim opracowaniu, postaram się przedstawić
Programowanie mikrokontrolerów AVR z rodziny ATmega.
Programowanie mikrokontrolerów AVR z rodziny ATmega. Materiały pomocnicze Jakub Malewicz jakub.malewicz@pwr.wroc.pl Wszelkie prawa zastrzeżone. Kopiowanie w całości lub w częściach bez zgody i wiedzy autora
Konfigurator Modbus. Instrukcja obsługi programu Konfigurator Modbus. wyprodukowano dla
Wersja 1.1 29.04.2013 wyprodukowano dla 1. Instalacja oprogramowania 1.1. Wymagania systemowe Wspierane systemy operacyjne (zarówno w wersji 32 i 64 bitowej): Windows XP Windows Vista Windows 7 Windows
LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program
LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program Przygotował: Jakub Wawrzeńczak 1. Wprowadzenie Lekcja przedstawia wykorzystanie środowiska LabVIEW 2016
Mikrokontrolery AVR Wprowadzenie
Mikrokontrolery AVR Wprowadzenie Komunikacja z otoczeniem mikrokontrolera Każdy z mikrokontrolerów posiada pewna liczbę wyprowadzeń cyfrowych które służą do wprowadzania i odbierania informacji z mikrokontrolera.
Programowanie mikrokontrolerów AVR z rodziny ATmega.
Programowanie mikrokontrolerów AVR z rodziny ATmega. Materiały pomocnicze Jakub Malewicz jakub.malewicz@pwr.wroc.pl Wszelkie prawa zastrzeżone. Kopiowanie w całości lub w częściach bez zgody i wiedzy autora
LabVIEW PLATFORMA EDUKACYJNA Lekcja 6 LabVIEW i Arduino programy wykorzystujące wyświetlacz LCD, czujnik temperatury, PWM i diodę LED
LabVIEW PLATFORMA EDUKACYJNA Lekcja 6 LabVIEW i Arduino programy wykorzystujące wyświetlacz LCD, czujnik temperatury, PWM i diodę LED Przygotował: Jakub Wawrzeńczak 1. Wprowadzenie Lekcja przedstawia wykorzystanie
AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION
Krzysztof Bolek III rok Koło Naukowe Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION DWUPOŁOŻENIOWY REGULATOR TEMPERATURY Z APLIKACJĄ
Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści
Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop. 2017 Spis treści O autorze 9 Wprowadzenie 11 Rozdział 1. Sterownik przemysłowy 15 Sterownik S7-1200 15 Budowa zewnętrzna
Instytut Teleinformatyki
Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i Mikrokontrolery Dostęp do portów mikrokontrolera ATmega32 język C laboratorium: 10 autorzy: dr
Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa
Projekt MARM Dokumentacja projektu Łukasz Wolniak Stacja pogodowa 1. Cel projektu Celem projektu było opracowanie urządzenia do pomiaru temperatury, ciśnienia oraz wilgotności w oparciu o mikrokontroler
Instrukcja do oprogramowania ENAP DEC-1
Instrukcja do oprogramowania ENAP DEC-1 Do urządzenia DEC-1 dołączone jest oprogramowanie umożliwiające konfigurację urządzenia, rejestrację zdarzeń oraz wizualizację pracy urządzenia oraz poszczególnych
by Jody Culkin PIERWOTNY WZÓR BĘDĄCY PODSTAWĄ DO STWORZENIA GOTOWEGO PRODUKTU.
CO TO JEST ARDUINO? TO OTWARTA PLATFORMA DO BUDOWY ELEKTRONICZNYCH PROTOTYPÓW. by Jody Culkin CO TO ZNACZY? ZASOBY, KTÓRE MOGĄ BYĆ UŻYWANE, ZMIENIANE I DYSTRYBUOWANE BEZ OPŁAT. TAK OPROGRAMOWANIE JAK I
Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej
Struktura stanowiska laboratoryjnego Na rysunku 1.1 pokazano strukturę stanowiska laboratoryjnego Z80 z interfejsem częstościomierza- czasomierz PFL 21/22. Rys.1.1. Struktura stanowiska. Interfejs częstościomierza
Instrukcja do ćwiczeń
Instrukcja do ćwiczeń SYSTEMY WBUDOWANE Lab. 3 Przetwornik ADC + potencjometr 1. Należy wejść na stronę Olimexu w celu znalezienia zestawu uruchomieniowego SAM7-EX256 (https://www.olimex.com/products/arm/atmel/sam7-ex256/).
Systemy Wbudowane. Arduino rozszerzanie Wersja Plan. Biblioteka EPROM Arduino bez płytki Arduino. Czyli... Co musimy mieć, aby uruchomić chip?
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
Wyświetlacz LCD. Ogólne zasady działania
Wyświetlacz LCD. Ogólne zasady działania potencjometr regulacji kontrastu ISP złącze programowan ia 5 klawiszy przyłączonych do wejścia analogowego A0 Arduino LCD Keypad Shield 1 Pasywny wyświetlacz LCD
ĆWICZENIE 5 WPŁYW KONWEKCJI NA ROZKŁAD TEMPERATURY W POMIESZCZENIU
ĆWICZENIE 5 WPŁYW KONWEKCJI NA ROZKŁAD TEMPERATURY W POMIESZCZENIU Cel ćwiczenia. Celem ćwiczenia jest badanie rozkładu temperatur w pomieszczeniu oraz określenie wpływu czynników zaburzających. Zakres
Technika Mikroprocesorowa
Technika Mikroprocesorowa Dariusz Makowski Katedra Mikroelektroniki i Technik Informatycznych tel. 631 2648 dmakow@dmcs.pl http://neo.dmcs.p.lodz.pl/tm 1 System mikroprocesorowy? (1) Magistrala adresowa
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
Arduino więcej portów I/O Systemy Wbudowane Arduino dołączanie urządzeń Wersja 08 mgr inż. Marek Wilkus Wydział Inżynierii Metali i Informatyki Przemysłowej AGH Kraków Użycie pinów analogowych Liczniki
MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych
MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych SCENARIUSZ 21. NADAJNIK I ODBIORNIK PODCZERWIENI scenariusz zajęć pozalekcyjnych autor:
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Instytut Informatyki Politechnika Poznańska Podstawy Porównanie silników prądu stałego komutatorowego i bezszczotkowego + U - W V Silnik prądu stałego z komutatorem 3-częściowym (3-biegunowy wirnik i 2-biegunowy
Programowanie mikrokontrolerów. 8 listopada 2007
Programowanie mikrokontrolerów Marcin Engel Marcin Peczarski 8 listopada 2007 Alfanumeryczny wyświetlacz LCD umożliwia wyświetlanie znaków ze zbioru będącego rozszerzeniem ASCII posiada zintegrowany sterownik
4 Transmisja szeregowa, obsługa wyświetlacza LCD.
1 4 Transmisja szeregowa, obsługa wyświetlacza LCD. Zagadnienia do przygotowania: - budowa i działanie interfejsu szeregowego UART, - tryby pracy, - ramka transmisyjna, - przeznaczenie buforów obsługi
MIKROKONTROLERY I MIKROPROCESORY
PLAN... work in progress 1. Mikrokontrolery i mikroprocesory - architektura systemów mikroprocesorów ( 8051, AVR, ARM) - pamięci - rejestry - tryby adresowania - repertuar instrukcji - urządzenia we/wy
PRUS. projekt dokumentacja końcowa
Adrian Antoniewicz Marcin Dudek Mateusz Manowiecki 17.01.2007 PRUS projekt dokumentacja końcowa Temat: Układ zdalnego sterowania (za pomocą interfejsu RS-232) wyświetlaczem LCD. Spis treści: 1. 2. 3. 4.
Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski
Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej Systemy wbudowane Witold Kozłowski Zakład Fizyki i Technologii Struktur Nanometrowych 90-236 Łódź, Pomorska 149/153 https://std2.phys.uni.lodz.pl/mikroprocesory/
MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN
MODBUS RTU wersja M1.14 protokół komunikacyjny do wyświetlaczy SEM 04.2010 Str. 1/5 MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN W wyświetlaczach LDN protokół MODBUS RTU wykorzystywany
4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.
13 4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD. Zagadnienia do przygotowania: - budowa i działanie interfejsu szeregowego UART, - tryby pracy,
M-1TI. PRECYZYJNY PRZETWORNIK RTD, TC, R, U NA SYGNAŁ ANALOGOWY 4-20mA Z SEPARACJĄ GALWANICZNĄ. 2
M-1TI PRECYZYJNY PRZETWORNIK RTD, TC, R, U NA SYGNAŁ ANALOGOWY 4-20mA Z SEPARACJĄ GALWANICZNĄ www.metronic.pl 2 CECHY PODSTAWOWE Przetwarzanie sygnału z czujnika na sygnał standardowy pętli prądowej 4-20mA
Opis procedur asemblera AVR
Piotr Kalus PWSZ Racibórz 10.05.2008 r. Opis procedur asemblera AVR init_lcd Plik: lcd4pro.hvr Procedura inicjuje pracę alfanumerycznego wyświetlacza LCD za sterownikiem HD44780. Wyświetlacz działa w trybie
PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA
EGMONT INSTRUMENTS PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA EGMONT INSTRUMENTS tel. (0-22) 823-30-17, 668-69-75 02-304 Warszawa, Aleje Jerozolimskie 141/90 fax (0-22) 659-26-11
1. Tworzenie nowego projektu.
Załącznik do Instrukcji 1. Tworzenie nowego projektu. Wybieramy opcję z menu głównego New->QNX C Project. Wprowadzamy nazwę przechodzimy do następnego kroku NEXT. Wybieramy platformę docelową oraz warianty
Programowanie Mikrokontrolerów
Programowanie Mikrokontrolerów Wyświetlacz alfanumeryczny oparty na sterowniku Hitachi HD44780. mgr inż. Paweł Poryzała Zakład Elektroniki Medycznej Alfanumeryczny wyświetlacz LCD Wyświetlacz LCD zagadnienia:
Pilot RF 4-kanałowy + odbiornik XY-DJM-5V umożliwia zdalne sterowanie do czterech urządzeń. Nadajnik pilot MX804. Odbiornik XY-DJM.
Pilot RF 4-kanałowy + odbiornik XY-DJM-5V umożliwia zdalne sterowanie do czterech urządzeń. Właściwości: Nadajnik pilot MX804 zasilanie pilota bateria L1028 23A 12V Napięcie zasilające 3V do 12 V Pobierany
HC541 8-bitowy bufor jednokierunkowy HC245 8-bitowy bufor dwukierunkowy HC244 dwa 4-bitowe bufory jednokierunkowe
Bufory (BUFFER) Bufory stosuje się po to by: - zwiększyć obciążalność magistrali - chronić układ wysokiej skali integracji - sterować przepływem danych HC541 8-bitowy bufor jednokierunkowy HC245 8-bitowy
Moduł komunikacyjny Modbus RTU do ciepłomierza SonoMeter 30
Moduł komunikacyjny Modbus RTU do ciepłomierza SonoMeter 30 Zastosowanie służy do podłączania ciepłomierzy do sieci Modbus RTU przy użyciu interfejsu EIA- 485 Właściwości Galwanicznie izolowany interfejs
Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.
Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio. IComsat jest to shield GSM/GPRS współpracujący z Arduino oparty o moduł SIM900 firmy SIMCOM.
MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych
MoboLab roboty i tablety w Twojej szkole Obszar II. Stwórz własnego robota Scenariusze lekcji i zajęć pozalekcyjnych SCENARIUSZ 15. BUZZER PIEZOELEKTRYCZNY GŁOŚNICZEK scenariusz zajęć pozalekcyjnych autor:
Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści
Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści 1. Konfiguracja pinów2 2. ISP..2 3. I/O Ports..3 4. External Interrupts..4 5. Analog Comparator5 6. Analog-to-Digital Converter.6 7.
Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego
El ektroni ka cyfrow a Aut orpr ogr amuz aj ęć: mgri nż.mar ci njuki ewi cz Pr oj ektwspół f i nansowanyześr odkówuni ieur opej ski ejwr amacheur opej ski egofunduszuspoł ecznego Spis treści Zajęcia 1:
GND(VSS) i VCC - masa i zasilanie. V0 - regulacja kontrastu
Programowanie wyświetlacza LCD według: http://radziu.dxp.pl Wyświetlacz graficzny 2 x 16 ma 2 wiersze, 16 znaków w wierszu, każdy znak jest wyświetlany w matrycy 5 x 8 pikseli. (2*8 wierszy * 5*16 kolumn
Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski
Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej Systemy wbudowane Witold Kozłowski Zakład Fizyki i Technologii Struktur Nanometrowych 90-236 Łódź, Pomorska 149/153 https://std2.phys.uni.lodz.pl/mikroprocesory/
MultiTool instrukcja użytkownika 2010 SFAR
MultiTool instrukcja użytkownika 2010 SFAR Tytuł dokumentu: MultiTool instrukcja użytkownika Wersja dokumentu: V1.0 Data: 21.06.2010 Wersja urządzenia którego dotyczy dokumentacja: MultiTool ver. 1.00
Kurs Arduino dla początkujących - Michał Jaworski str. 1. Lekcja 5
Kurs Arduino dla początkujących - Michał Jaworski str. 1 Lekcja 5 Z piątej lekcji kursu dowiesz się jak obsługiwać analogowe porty Arduino. Zbudujesz urządzenie, które będzie służyło do... dręczenia innych.
Instrukcja podstawowego uruchomienia sterownika PLC LSIS serii XGB XBC-DR20SU
Instrukcja podstawowego uruchomienia sterownika PLC LSIS serii XGB XBC-DR20SU Spis treści: 1. Instalacja oprogramowania XG5000 3 2. Tworzenie nowego projektu i ustawienia sterownika 7 3. Podłączenie sterownika
Instytut Teleinformatyki
Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikrokontrolery i Mikroprocesory Zapoznanie się ze środowiskiem IAR Embedded Workbench; kompilacja, debuggowanie,
Oscyloskop (007; ; arduino; processing)
Oscyloskop (007; 20.07.2009; arduino; processing) Sposób prezentacji danych pomiarowych w środowisku Processing opisany w artykule o pomiarze natężenia światła jest obrazowy, jednak mało przydatny. Przedstawię
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska nrf24l01 transmisja w trybie Shockburst W tym trybie ramka ma prostą strukturę: Zakończona jest opcjonalnym polem kontrolnym, które obsługiwane
Instytut Teleinformatyki
Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i Mikrokontrolery Zastosowanie przetwornika analogowo-cyfrowego do odczytywania napięcia z potencjometru
Silnik prądu stałego. Sterowanie silnika prądu stałego
Silnik prądu stałego Sterowanie silnika prądu stałego Specyfikacja silnika MT68 Napięcie zasilania: od 3 V do 6 V Prąd na biegu jałowym: 45 ma Obroty: 12100 obr/min dla 3 V Wymiary: 10 x 15 mm długość
Rozdział 2. Programowanie Arduino i kodowanie społecznościowe (29)
O autorach (11) O korektorze merytorycznym (12) Wprowadzenie (13) Podziękowania (14) Rozdział 1. Zmiany w rdzeniu Arduino 1.0.4 (15) Zmiany w środowisku programistycznym Arduino (15) Zmiany w szkicowniku
ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM
ĆWICZENIE 5 TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM Wiadomości wstępne: Port szeregowy może pracować w czterech trybach. Tryby różnią się między sobą liczbą bitów