Sensory Ultradźwiękowy czujnik odległości (Silabs UNI_DC)

Slides:



Advertisements
Podobne prezentacje
Układy i systemy mikroprocesorowe
Advertisements

Klasyfikacja dalmierzy może być dokonywana przy założeniu rozmaitych kryteriów. Zazwyczaj przyjmuje się dwa:  ze względu na rodzaj fali (jej długości)
© IEn Gdańsk 2011 Technika fazorów synchronicznych Łukasz Kajda Instytut Energetyki Oddział Gdańsk Zakład OGA Gdańsk r.
Równowaga chemiczna - odwracalność reakcji chemicznych
Plan Czym się zajmiemy: 1.Bilans przepływów międzygałęziowych 2.Model Leontiefa.
Elementy akustyki Dźwięk – mechaniczna fala podłużna rozchodząca się w cieczach, ciałach stałych i gazach zakres słyszalny 20 Hz – Hz do 20 Hz –
TECHNOLOGIE MIKROELEKTRONICZNE Dr inż. Krzysztof Waczyński, Instytut Elektroniki, Politechnika Śląska, Akademicka 16, Gliwice (
autor dr inż. Andrzej Rylski TECHNIKA SENSOROWA 6.Producenci sensorów i urządzeń do pomiaru temperatury.
20/09/ Model warstwowy OSI. Model warstwowy OSI (Open Systems Interconnection ) – standard wprowadzony przez organizację ISO (International Organization.
Analiza tendencji centralnej „Człowiek – najlepsza inwestycja”
Półprzewodniki i urządzenia półprzewodnikowe Elżbieta Podgórska Zarządzanie i Inżynieria Produkcji Wydział Górnictwa i Geoinżynierii Gr 3, rok 4
Model warstwowy OSI Model OSI (Open Systems Interconnection) opisuje sposób przepływu informacji między aplikacjami programowymi w jednej stacji sieciowej.
Metody Analizy Danych Doświadczalnych Wykład 9 ”Estymacja parametryczna”
Pole magnetyczne Magnes trwały – ma dwa bieguny - biegun północny N i biegun południowy S.                                                                                                                                                                     
Własności elektryczne materii
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL Układy sekwencyjne.
Maszyny Elektryczne i Transformatory
Bios Justyna Niebudek i Nadia Stankiewicz. CO TO JEST BIOS ??? BIOS (akronim ang. Basic Input/Output System – podstawowy system wejścia-wyjścia) to zapisany.
API jądra do obsługi przestrzeni użytkownika Co jest tematem tej prezentacji: Transport danych pomiędzy przestrzeniami użytkownika i jądra (asm/uaccess.h)
Modulatory częstotliwości
O PARADOKSIE BRAESSA Zbigniew Świtalski Paweł Skałecki Wydział Matematyki, Informatyki i Ekonometrii Uniwersytet Zielonogórski Zakopane 2016.
Zakrycie Aldebarana: zjawisko pospolite czy rzadkie?
Mikroprocesory.
TEMAT: Omówienie programu Twido Soft i jego podstawowe możliwości
Parametry żagli akustycznych
W kręgu matematycznych pojęć
Schematy blokowe.
Pamięci półprzewodnikowe
Transmisja radiowa Arduino & nRF24L01P
Akademia C# - Lab2 Zmienne, instrukcje warunkowe, pętle, debugger,
Modele SEM założenia formalne
Czujniki Czujnik - to urządzenie dostarczające informacji o pojawieniu się określonego bodźca, przekroczeniu pewnej wartości progowej lub o wartości.
Akademia C# lab. 9 Zdarzenia i delegaty.
Podstawy automatyki I Wykład /2016
Programowanie obiektowe
Elementy analizy matematycznej
Budowa, typologia, funkcjonalność
Bezprzewodowa sieć EnOcean
Silniki bezszczotkowe prądu stałego
PROCESY SZLIFOWANIA POWIERZCHNI ŚRUBOWYCH
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Wytrzymałość materiałów
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Sieci komputerowe Protokół TCP/IP.
Sensory 3-osiowy kompas cyfrowy
Laboratorium 1 – obsługa wejść i wyjść
Podstawowe układy pracy wzmacniaczy operacyjnych
Instrukcje wyboru.
Arduino Lab Akcelerometr MMA7455
Sensory i ich interfejsy
Wytrzymałość materiałów
Mikrokontrolery Tiva seria C
AGH: Sprawy pracownicze
Zygmunt Kubiak Wszystkie ilustracje z ww monografii Wyd.: Springer
Dodatek – Technologie internetowe
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Transmisja radiowa Arduino & nRF24L01P
Implementacja rekurencji w języku Haskell
TRÓJFAZOWY KALIBRATOR MOCY &
Zakład Hydrotechniczny Rudna 26 styczeń 2017
Język C++ Operatory Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła.
Prawa ruchu ośrodków ciągłych c. d.
KURS STRAŻKÓW RATOWNIKÓW OSP TEMAT 7: Zadania strażaków w zastępie
KURS STRAŻKÓW RATOWNIKÓW OSP TEMAT 7: Zadania strażaków w zastępie
Autor: Magdalena Linowiecka
MODELOWANIE ZMIENNOŚCI CECH
Asynchroniczne operacje I/O za pomocą IOCP
Zapis prezentacji:

Sensory Ultradźwiękowy czujnik odległości (Silabs UNI_DC) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Sensory Ultradźwiękowy czujnik odległości HC-SR04 Zasilanie: 5V Pobór prądu: < 2mA Efektywny kąt: < 15º 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości HC-SR04 Efekt piezoelektryczny Efekt piezoelektryczny występujący podczas ściskania i rozciągania płytki o cięciu X a) Płytka rozciągana wzdłuż osi X b) Płytka rozciągana wzdłuż osi Y 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości HC-SR04 Przykłady zastosowań 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości HC-SR04 Parkiet generujący energię elektryczną pod wpływem ruchu tańczących,  zużywaną następnie do napędzania klimatyzacji ma londyński nocny klub Surya. Nazwa klubu mieszczącego się w Londynie na Pentoville Road pochodzi od imienia hinduskiego boga słońca.  11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości HC-SR04 Silniki piezoelektryczne  11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości HC-SR04 Materiały piezoelektryczne Kwarc α - ditlenek krzemu, kryształ górski Sól Seignette'a - winian sodowo-potasowy, sól La Rochelle Turmaliny - borokrzemiany kilku metali Diwodorofosforany amonu i potasu - KH2PO4 i NH4H2PO4, oznaczane są zwykle skrótami KDP i ADP Tytanian baru i jego związki izomorficzne Winian dwuaminoetylenowy, winian dwupotasowy -  w skrócie są nazywane EDT i KDT 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości HC-SR04 Zasada pomiaru Odległość = (Szerokość impulsu ● Prędkość dźwięku) / 2 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości HC-SR04 Zależność prędkości fali dźwiękowej (w m/s) od temperatury i wilgotności względnej powietrza C 20%RH 50%RH 80%RH 331,52 331,62 331,70 5 334,57 334,70 334,84 10 337,60 337,79 337,98 15 340,61 340,88 341,15 20 343,62 343,99 344,37 25 346,62 347,13 347,65 30 349,67 350,32 351,01 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości HC-SR04 Charakterystyka sensora: D[cm] = T[µs] / 58 Producent podaje zakres: 2cm - 500 cm (3 cm – 300 cm) Rozdzielczość: 0,3 cm Częstotliwość: 40 kHz (fala 8 x 25 µs = 200 µs) 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – HC-SR04 W temperaturze 21ºC prędkość dźwięku wynosi ok. 345m/s Oznacza to 0,0345 cm/µs Czyli przebycie odległości 1cm wymaga 28,9855 µs W zaokrągleniu przyjmujemy 29, a ponieważ dźwięk przebywa podwójną odległość i w związku z tym zmierzony czas odpowiedzi należy podzielić przez 58 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości HC-SR04 Charakterystyka sensora D[cm] = T[µs] / 58 Producent podaje zakres 2cm - 500 cm 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – HC-SR04 Charakterystyka sensora dookólna 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – HC-SR04 Transmisja asynchroniczna Brak 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – HC-SR04 Przykładowe biblioteki dla Arduino http://www.inmotion.pt/store/ultrasound-sensor-hc-sr04 https://github.com/JRodrigoTech/Ultrasonic-HC-SR04 http://playground.arduino.cc/Code/NewPing https://code.google.com/p/arduino-new-ping/ https://code.google.com/p/arduino-new-ping/wiki/15_Sensors_Example https://code.google.com/p/arduino-new-ping/wiki/NewPing_Single_Pin_Sketch https://code.google.com/p/arduino-new-ping/wiki/Ping_Event_Timer_Sketch https://code.google.com/p/arduino-new-ping/wiki/Simple_NewPing_Example https://code.google.com/p/arduino-new-ping/wiki/Using_NewPing_Syntax http://www.instructables.com/id/Ultrasonic-Range-detector-using-Arduino-and-the-SR/ https://apcexpert.wordpress.com/category/sensor-ultrasonico- hc-sr04/ http://www.instructables.com/id/Simple-Arduino-and-HC-SR04- Example/ 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – HC-SR04 Przykładowe realizacja // Pomiar odległości w cm z czujnikiem HC-SR04 //Konfiguracja sprzętowa int trigPin = 9; int echoPin = 10; int gndPin = 11; int vccPin = 8; 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – HC-SR04 Przykładowe realizacja //Konfiguracja mikrokontrolera void setup() { Serial.begin(57600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW); // Zasilanie masa pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH); // Zasilanie +Vcc Serial.println(„ Pomiar odleglosci (w cm) z HC-SR04”); } 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – HC-SR04 Przykładowe realizacja //Pętla główna void loop() { Serial.print(sonarPomiar_cm()); Serial.println(„ cm”); delay(1000); //Pomiar odległości w cm } 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – HC-SR04 Przykładowe realizacja // Funkcja realizującą pomiar w cm int sonarPomiar_cm() { digitalWrite(trigPin, LOW); delayMicroseconds(5); digitalWrite(trigPin, HIGH); delayMicroseconds(12); // Impuls >10 µs int czas = pulseIn(echoPin, HIGH); int odleglosc = czas / 58; // obliczanie odległości if ((odleglosc > 500)|| (odleglosc < 0)) return 999; // przekroczony zakres pomiaru else return odleglosc; // poprawny pomiar w cm } 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – HC-SR04 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – HC-SR04 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Sensor z magistralą I2C 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Protokół I2C wzorowany na układach EEPROM serii 24xx Domyślny adres SFR10: 0xE0 Może być on zmieniony przez użytkownika na jeden z adresów: E0, E2, E4, E6, E8, EA, EC, EE, F0, F2, F4, F6, F8, FA, FC lub FE Rejestry SRF10 Zakres pomiaru określany jest w µs, tzn. wartość max równa 65535 (0xFFFF) odpowiada odległości 1129 cm lub 442 cale Rejestr #2 umożliwia zmianę wzmocnienia analogowego 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Polecenia Polecenia #80 do #82 ustalają format wyniku Polecenia #160, #165, #170 przeznaczone są do zmiany adresu I2C 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Wzmocnienie analogowe 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Wzmocnienie analogowe 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Zmiana adresów I2C 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Czytnik zakresu SFR10 // I2C SRF10 or SRF08 Devantech Ultrasonic Ranger Finder // by Nicholas Zambetti <http://www.zambetti.com> // and James Tichenor <http://www.jamestichenor.net> // Demonstrates use of the Wire library reading data from the // Devantech Utrasonic Rangers SFR08 and SFR10 // Created 29 April 2006 // This example code is in the public domain. #include <Wire.h> 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Czytnik zakresu SFR10 void setup() { Wire.begin(); // join i2c bus (address optional for master) Serial.begin(9600); // start serial communication at 9600bps } int reading = 0; void loop() // step 1: instruct sensor to read echoes Wire.beginTransmission(112); // transmit to device #112 (0x70) // the address specified in the datasheet is 224 (0xE0) // but i2c adressing uses the high 7 bits so it's 112 Wire.write(byte(0x00)); // sets register pointer to the command register (0x00) Wire.write(byte(0x50)); // command sensor to measure in "inches" (0x50) // use 0x51 for centimeters // use 0x52 for ping microseconds Wire.endTransmission(); // stop transmitting 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Czytnik zakresu SFR10 // step 2: wait for readings to happen delay(70); // datasheet suggests at least 65 milliseconds // step 3: instruct sensor to return a particular echo reading Wire.beginTransmission(112); // transmit to device #112 Wire.write(byte(0x02)); // sets register pointer to echo #1 register (0x02) Wire.endTransmission(); // stop transmitting // step 4: request reading from sensor Wire.requestFrom(112, 2); // request 2 bytes from slave device #112 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Czytnik zakresu SFR10 // step 5: receive reading from sensor if (2 <= Wire.available()) // if two bytes were received { reading = Wire.read(); // receive high byte (overwrites previous reading) reading = reading << 8; // shift high byte to be high 8 bits reading |= Wire.read(); // receive low byte as lower 8 bits Serial.println(reading); // print the reading } delay(250); // wait a bit since people have to read the output :) 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Czytnik zakresu SFR10 Fragment zakomentowany /* // The following code changes the address of a Devantech Ultrasonic Range Finder (SRF10 or SRF08) // usage: changeAddress(0x70, 0xE6); void changeAddress(byte oldAddress, byte newAddress) { Wire.beginTransmission(oldAddress); Wire.write(byte(0x00)); Wire.write(byte(0xA0)); Wire.endTransmission(); 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Czytnik zakresu SFR10 Fragment zakomentowany Wire.beginTransmission(oldAddress); Wire.write(byte(0x00)); Wire.write(byte(0xAA)); Wire.endTransmission(); Wire.write(byte(0xA5)); Wire.write(newAddress); } */ 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Symulator czujnika SFR10 byte address = 112; // adres czujnika unsigned int manipVar = 0; // zmienna do zmiany danych byte bytessent = 2 ; // liczba bajtów do wysłania byte bytestosend[2] ; // przygotowanie danych do wysłania byte command = 0 ; // przechowywanie poleceń void setup() { TWAR = (address << 1) | 0b00000001; // ustawienie adresu i ogólnej odpowiedzi na wywołania TWCR = 0b01000101; // ustawienie TWEA, TWEN i TWIE na 1 SREG |= 0b10000000; // globalne włączenie przerwań pinMode(13 , OUTPUT); } // koniec void setup() 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Symulator czujnika SFR10 void loop() { if (command == 0x50) // włączenie diody dla polecenia 0x50 digitalWrite (13 , HIGH); if (command == 0x02) // wyłączenie diody dla polecenia 0x02 digitalWrite (13 , LOW); manipVar++; // główna zmienna do manipulowania dwoma bajtami wyjściowymi bytestosend [0] = manipVar; // przygotowanie starszego i młodszego bajtu zmiennej manipVar bytestosend [1] = manipVar >> 8 ; // starszy bajt manipVar delay (250); // coś innego do zrobienia podczas oczekiwania } // koniec void loop() 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Symulator czujnika SFR10 ISR (TWI_vect) { // procedura obsługi przerwania przypisana do wektora if (TWCR & (1 << TWINT)) { // powtórne sprawdzenie, czy przerwanie jest właściwe if ((TWSR & 0b11111000) == 0x80) { // dane przychodzące command = TWDR; // skopiowanie danych polecenia do wykorzystania później TWCR = 0b11000100; // reset oryginalnej konfiguracji } 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Symulator czujnika SFR10 if ((TWSR & 0b11111000) == 0xA8 ) // żądanie danych wychodzących { while (bytessent > 0 ) // wysłanie bajtów do mastera bytessent--; TWDR = bytestosend [bytessent]; // wysłanie danych od najstarszego do najmłodszego bajta TWCR = 0b11000101; // reset po każdym wysłaniu delay (5); // chwilowa pauza po wysłaniu } if (bytessent == 0 ) // reset liczby bajtów i jeżeli bufor jest pusty bytessent = 2; } // koniec if ((TWSR & 0b11111000) == 0xA8 ) 11-2014 Zygmunt Kubiak

Sensory Ultradźwiękowy czujnik odległości – SRF10 Symulator czujnika SFR10 TWCR = 0b11000101; // jeszcze jeden reset na wszelki wypadek SREG |= 0b10000000; // włączenie z powrotem przerwań } // koniec if (TWCR & (1 << TWINT)) } // koniec ISR (TWI_vect) 11-2014 Zygmunt Kubiak

Dziękuję Zygmunt Kubiak 09-2006