Oscyloskop (007; ; arduino; processing)

Podobne dokumenty
Pomiar natężenia światła (005; ; arduino, processing)

Przetwornik analogowo-cyfrowy

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

ze względu na jego zaokrąglony kształt musimy go umieścić w innych bloczkach np. ze zmienną: lub jeśli chcemy sprawdzić jaki właśnie znak odczytujemy:

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

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

Schemat blokowy architektury AVR

Wzmacniacze operacyjne

Grafika Komputerowa Materiały Laboratoryjne

Kurs Arduino dla początkujących - Michał Jaworski str. 1. Lekcja 5

Rafał Staszewski Maciej Trzebiński, Dominik Derendarz

Charakterystyka amplitudowa i fazowa filtru aktywnego

Badanie wzmacniacza operacyjnego

Ćwiczenie 2: pomiar charakterystyk i częstotliwości granicznych wzmacniacza napięcia REGIONALNE CENTRUM EDUKACJI ZAWODOWEJ W BIŁGORAJU

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

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

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

Notatka lekcja_#3_1; na podstawie W.Kapica 2017 Strona 1

Tranzystor bipolarny LABORATORIUM 5 i 6

Multimetr cyfrowy MAS-345. Instrukcja instalacji i obsługi oprogramowania DMM VIEW Ver 2.0

B. Kalibracja UNIJIG'a w programie Speaker Workshop. Po uruchomieniu program wygląda następująco:

L ABORATORIUM UKŁADÓW ANALOGOWYCH

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

PRACOWNIA ELEKTRONIKI

Elektronika. Wzmacniacz tranzystorowy

Technik elektronik 311[07] Zadanie praktyczne

L ABORATORIUM UKŁADÓW ANALOGOWYCH

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

Ćwiczenie 1: Pomiar parametrów tranzystorowego wzmacniacza napięcia w układzie wspólnego emitera REGIONALNE CENTRUM EDUKACJI ZAWODOWEJ W BIŁGORAJU

Ćwiczenie 4: Pomiar parametrów i charakterystyk wzmacniacza mocy małej częstotliwości REGIONALNE CENTRUM EDUKACJI ZAWODOWEJ W BIŁGORAJU

Graficzne opracowanie wyników pomiarów 1

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7

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

Laboratorium Komputerowe Systemy Pomiarowe

Przetwarzanie AC i CA

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Drivery LED PWM oraz prosty sterownik Świt Zmierzch oparty na Arduino

Elektronika. Wzmacniacz operacyjny

Czytanie wykresów to ważna umiejętność, jeden wykres zawiera więcej informacji, niż strona tekstu. Dlatego musisz umieć to robić.

LABORATORIUM PODSTAW ELEKTRONIKI MATERIAŁY POMOCNICZE SERIA PIERWSZA

Ćw. III. Dioda Zenera

Laboratorium Analogowych Układów Elektronicznych Laboratorium 4

ĆWICZENIE 5 WPŁYW KONWEKCJI NA ROZKŁAD TEMPERATURY W POMIESZCZENIU

Rysowanie punktów na powierzchni graficznej

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

Częstościomierz wysokiej rozdzielczości

Oprogramowanie analizatorów wibracji SignalCalc TURBO oprogramowanie do diagnostyki maszyn obrotowych

Ćw. 7 Wyznaczanie parametrów rzeczywistych wzmacniaczy operacyjnych (płytka wzm. I)

Przyrząd do grania bluesa Projekt zaliczeniowy z przedmiotu Programowanie Mikrokontrolerów

Pracownia pomiarów i sterowania Ćwiczenie 1 Pomiar wielkości elektrycznych z wykorzystaniem instrumentów NI ELVIS II

Wykrywacz kłamstw. Grzegorz Puzio, Łukasz Ulanicki 15 czerwca 2008

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Kalibracja czujnika temperatury zestawu COACH Lab II+. Piotr Jacoń. K-5a I PRACOWNIA FIZYCZNA

TRANZYSTOROWY UKŁAD RÓŻNICOWY (DN 031A)

Oscyloskop. Dzielnik napięcia. Linia długa

Detektor Fazowy. Marcin Polkowski 23 stycznia 2008

Pomiar odległości z Arduino czujniki, schematy, przykładowe kody

Wzmacniacze napięciowe z tranzystorami komplementarnymi CMOS

interfejs szeregowy wyświetlaczy do systemów PLC

Multimetr cyfrowy VA18B Instrukcja instalacji i obsługi. oprogramowania PC-LINK

Klawiatura matrycowa

Badanie wzmacniacza niskiej częstotliwości

Wprowadzenie do programu MultiSIM

Teraz możesz kupić zestaw ponad 70 elementów niezbędnych do przeprowadzenia ćwiczeń z kursu u naszych dystrybutorów!

INSTRUKCJA OBSŁUGI Generatora impulsów PWM

Przetwarzanie A/C i C/A

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Pomiar parametrów roboczych wzmacniaczy OE, OB i OC. Wzmacniacza OC. Wzmacniacz OE. Wzmacniacz OB

Ćwiczenie 21. Badanie właściwości dynamicznych obiektów II rzędu. Zakres wymaganych wiadomości do kolokwium wstępnego: Program ćwiczenia:

Przykładowe zadanie egzaminacyjne dla kwalifikacji E.20 w zawodzie technik elektronik

Ćw. 0: Wprowadzenie do programu MultiSIM

PRACOWNIA ELEKTRONIKI

WYKRESY FUNKCJI LINIOWEJ

Bierne układy różniczkujące i całkujące typu RC

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

BADANIE ELEMENTÓW RLC

Własności dynamiczne przetworników pierwszego rzędu

UWAGA. Wszystkie wyniki zapisywać na dysku Dane E: Program i przebieg ćwiczenia:

Ćwiczenie - 9. Wzmacniacz operacyjny - zastosowanie nieliniowe

Podstawy Elektroniki dla Informatyki. Tranzystory unipolarne MOS

Ćwiczenie 2a. Pomiar napięcia z izolacją galwaniczną Doświadczalne badania charakterystyk układów pomiarowych CZUJNIKI POMIAROWE I ELEMENTY WYKONAWCZE

Przyjazna instrukcja obsługi generatora funkcyjnego Agilent 33220A

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

UKŁADY Z PĘTLĄ SPRZĘŻENIA FAZOWEGO (wkładki DA171A i DA171B) 1. OPIS TECHNICZNY UKŁADÓW BADANYCH

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Elektroniki

Część XV C++ Ćwiczenie 1

Parametryzacja przetworników analogowocyfrowych

Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, Bielsko-Biała

Trik 1 Autorejestrowanie zmian dokonanych w obliczeniach

Zakłócenia równoległe w systemach pomiarowych i metody ich minimalizacji

14 Modulatory FM CELE ĆWICZEŃ PODSTAWY TEORETYCZNE Podstawy modulacji częstotliwości Dioda pojemnościowa (waraktor)

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

GENERATOR AUDIO. Rys. 1 Schemat ideowy generatora

Konfiguracja parametrów sondy cyfrowo analogowej typu CS-26/RS/U

LABORATORIUM ELEKTRONIKI WZMACNIACZ OPERACYJNY

spis urządzeń użytych dnia moduł O-01

LABORATORIUM ELEKTRONIKI WZMACNIACZ MOCY

ZESPÓŁ LABORATORIÓW TELEMATYKI TRANSPORTU ZAKŁAD TELEKOMUNIKACJI W TRANSPORCIE WYDZIAŁ TRANSPORTU POLITECHNIKI WARSZAWSKIEJ

Ćw. 0 Wprowadzenie do programu MultiSIM

Transkrypt:

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ę zatem sposób na rysowanie prostych wykresów w czasie rzeczywistym. Potencjometryczny dzielnik napięcia. Jeśli chodzi o sam pomiar napięcia, możemy zastosować wcześniej opisany dzielnik napięcia z fotorezystorem lub też potencjometr pełniący funkcję sterowanego dzielnika napięcia. Rodzajów potencjometrów jest niezliczona ilość, zajmijmy się najpopularniejszym, potencjometrem obrotowym, więc stwórzmy jego model następująco: R1 R2 Oczywiście istnieje zależność: R1+R2=R, gdzie R jest wartością oporu potencjometru podaną na obudowie. Obrót gałki potencjometru powoduje wzrost jednej rezystancji i spadek drugie. Wyróżniamy dwa typy potencjometrów: liniowe (ozn. A) i logarytmiczne (ozn. B). 007 Oscyloskop Sebastian Korczak http:// myinventions.pl 1

Zastosujmy potencjometr jako dzielnik napięcia następująco: R2 U wy U we R1 Zakładając typ potencjometru łatwo można teraz określić zależność napięcia wyjściowego od kąta obrotu. Poniższy wykres przedstawia przykładowe przebiegi (napięcie wejściowe: 5V, rezystancja potencjometru 100kOhm, pełen kąt obrotu 320stopni): 5 5 4 4 3 Uwy [V] 3 2 2 1 1 LINIOWY (A) LOGARYTMICZNY (B) 0 0 50 100 150 200 250 300 Kąt Arkusz kalkulacyjny z tabelami obliczeniowymi i powyższymi wykresami do pobrania: http://myinventions.pl/007/rezystorowydzielniknapiecia.ods 007 Oscyloskop Sebastian Korczak http:// myinventions.pl 2

Sposób podłączenia potencjometru do Arduino przedstawia się następująco: Pomiar i wysłanie danych do komputera. Kod do Arduino wygląda następująco: void setup() Serial.begin(9600); void loop() Serial.print(analogRead(0)/4, BYTE); delay(20); Program ten realizuje pomiar napięcia z częstotliwością 50Hz i wysyłanie wartości jednobitowych na port szeregowy. 007 Oscyloskop Sebastian Korczak http:// myinventions.pl 3

Prezentacja danych na komputerze (wykres w środowisku Processing). Najprostszy kod pozwalający rysować wykres odebranych danych wygląda następująco: import processing.serial.*; Serial myport; int X=40; int Y; void setup() size(580, 316); background(200); stroke(255,0,0); myport = new Serial(this,"COM4", 9600); void draw() if (myport.available() > 0) Y = int(285-myport.read()); point(x,y); X++; if (X>=540) X=40; stroke(0); stroke(255,0,0); Obszar wykresu jest prostokątem o szerokości 500px i wysokości 255px, przy czym przesunięty jest względem krawędzi okna o 40px w prawo i 30px w dół. W każdej pętli programu po sprawdzaniu warunku dostępności danych na porcie szeregowym obliczana jest współrzędna Y punktu wykresu (poprzez odejmowanie, bo chcemy mieć skierowaną w górę oś Y; wartości tak dobrane aby osiągać krańce obszaru wykresu), rysowany jest punkt o współrzędnych X i Y, zwiększana jest o jeden wartość współrzędnej X. Gdy wykres osiągnie brzeg obszaru rysowania (X=540) następuje przerysowanie nowego obszaru rysunkowego i zmiana współrzędnej X. 007 Oscyloskop Sebastian Korczak http:// myinventions.pl 4

Uwaga: Jeśli dostrzeżemy rosnące w czasie opóźnienie między zmianą położenia potencjometru a zachowaniem wykresu, należy zmniejszyć częstotliwość próbkowania sygnału przez Arduino (program nie nadąża odbierać danych z portu szeregowego i rysować wykresu). Uruchomienie wygaszacza ekranu podczas działa programu również może spowodować opóźnienie. Przykładowy wykres otrzymany otrzymany z zastosowaniem opisanego programu: Dokonajmy opisu osi wykresu, oraz sprawdźmy ile czasu trwa narysowanie jednego pełnego wykresu. Na początek konieczne jest utworzenie czcionki dla programu. Wybieramy z menu Tools/create font... wybieramy czcionkę, ustalamy jej rozmiar na 16 i zatwierdzamy. W katalogu głównym pisanego programu (menu sketch/show sketch folder) pojawi się katalog data, a w nim utworzona czcionka. Czcionka w formacie *.vlw opisuje każdy znak w postaci bitmapy o rozdzielczości dostosowanej do podanej w czasie jej tworzenia wielkości. 007 Oscyloskop Sebastian Korczak http:// myinventions.pl 5

import processing.serial.*; Serial myport; int X=40; int Y; float t1 = 0; float t2 = 0; void setup() size(580, 316); background(200); PFont font; //utworzenie zmiennej typu czcionka font = loadfont("arialmt-16.vlw"); //wczytanie do zmiennej podanej czcionki textfont(font,16); //ustawienie czcionki 'font' jako używanej w programie, //oraz ustalenie jej rozmiaru na 16 (wpisanie innego //rozmiaru niż podstawowy skutkuje rozciągnięciem //czcionki utratą je jakości) fill(0); text("5v",18,37); //wstawienie tekstu 5V w punkcie o współ. 18,37 text("0v",18,292); text("czas",260,302); myport = new Serial(this,"COM4", 9600); void draw() if ( myport.available() > 0) Y = int(285-myport.read()); stroke(255,0,0); point(x,y); X++; if (X>=540) X=40; background(200); text("5v",18,37); text("0v",18,292); text("czas",260,302); stroke(0); fill(255); t2 =float(millis())/1000; print("długość kreślenia przebiegu [s]: "); println(t2-t1); t1=float(millis())/1000; fill(0); 007 Oscyloskop Sebastian Korczak http:// myinventions.pl 6

Pomiar czasu dokonany został z użyciem polecenia millis() zwracającego liczbę milisekund od startu programu. Obserwując konsolę w czasie pracy programu zauważamy, że pierwsza wartość jest większa od później podanych, co wynika z wliczenia do niej czasu uruchomienia programu. Program działa prawidłowo, jeśli kolejne wartości są do siebie zbliżone i wynoszą około 10sekund (500 punktów wykresu przy podawaniu sygnału z częstotliwością 50Hz). Przykładowy przebieg wygląda następująco: 007 Oscyloskop Sebastian Korczak http:// myinventions.pl 7

Wysokie częstotliwości. Zwiększając częstotliwość wysyłania sygnału przez Arduino możemy doprowadzić do sytuacji, w której program nie nadąży rysować punkty na wykresie. Najprostszym sposobem pokonania tej trudności będzie dokonaniu pewnej ilości pomiarów z dużą częstotliwością, a następnie realizacja przerwy w wysyłaniu danych, aby mogły one zostać odebrane z bufora portu szeregowego i naniesione na wykres. Nie będzie to już niestety oscyloskop czasu rzeczywistego. Przykładowy kod do Arduino dla próbkowania 200Hz, przerwy między pomiarami 20 sekund, oraz stanu wysokiego na wyjściu cyfrowym nr 13 na czas pomiaru (w celu zaświecenia diody): void setup() Serial.begin(9600); pinmode(13, OUTPUT); void loop() delay(2000); digitalwrite(13, HIGH); for(int i=1 ; i<=500;i++) Serial.print(analogRead(0)/4, BYTE); delay(5); digitalwrite(13, LOW); delay(20000); Do tego zmodyfikowany program w processingu opisujący dodatkowo oś czasu i opóźniający czyszczenie wykresu: import processing.serial.*; Serial myport; int X=40; int Y; void setup() myport = new Serial(this,"COM4", 9600); size(580, 316); 007 Oscyloskop Sebastian Korczak http:// myinventions.pl 8

background(200); stroke(0); PFont font; font = loadfont("arialmt-16.vlw"); textfont(font); fill(0); text("5v",18,37); text("0v",18,290); text("0s",36,302); text("2,5s",532,302); void draw() if (myport.available() > 0) Y = int(285-myport.read()); stroke(255,0,0); point(x,y); X++; else delay(5000); X=40; background(200); stroke(0); fill(255); fill(0); text("5v",18,37); text("0v",18,292); text("0s",36,302); text("2,5s",532,302); 007 Oscyloskop Sebastian Korczak http:// myinventions.pl 9

Na zdjęciach dostrzec można dodatkowy szary przewód łączy on obudowę potencjometru z masą. Filmik obrazujący działanie opisanego w artykule oscyloskopu czasu rzeczywistego: http://www.vimeo.com/5678042 Zastosowane w artykule programy: Oscyloskop czasu rzeczywistego: http://myinventions.pl/007/oscyloskoprtarduino.pde http://myinventions.pl/007/oscyloskoprtprocessing.pde Oscyloskop 200Hz: http://myinventions.pl/007/oscyloskop200arduino.pde http://myinventions.pl/007/oscyloskop200processing.pde 007 Oscyloskop Sebastian Korczak http:// myinventions.pl 10