W tym samouczku nauczymy się, jak używać czujnika unikania przeszkód na podczerwień z modułem ESP32 do wykrywania przeszkód. Ten projekt pokaże, jak czujnik może uruchomić brzęczyk po wykryciu przeszkody. Konfiguracja będzie również wyświetlać status wykrywania na monitorze szeregowym, zapewniając jasny i interaktywny sposób obserwacji działania czujnika.
Będziemy pracować z zestawem edukacyjnym SunFounder ESP32 IoT Learning Kit, który zawiera mikrokontroler ESP32 wyposażony w funkcje Wi-Fi i Bluetooth. Czujnik podczerwieni działa poprzez wysyłanie światła podczerwonego, które odbija się od pobliskich przeszkód. Gdy światło zostanie odbite z powrotem, czujnik wygeneruje sygnał wyjściowy, który odczytamy w naszym kodzie. Dołączymy również brzęczyk, który aktywuje się po wykryciu przeszkody, zapewniając sygnał dźwiękowy.
Objaśnienie sprzętu
Główne elementy tego projektu obejmują moduł ESP32, czujnik unikania przeszkód na podczerwień oraz brzęczyk. Moduł ESP32 służy jako centralna jednostka przetwarzająca, obsługująca wejścia z czujników i sterująca wyjściami. Może być zasilany baterią litową, co czyni go przenośnym i elastycznym do różnych zastosowań.
Czujnik unikania przeszkód na podczerwień składa się z nadajnika i odbiornika. Nadajnik emituje światło podczerwone, a odbiornik wykrywa odbite światło od pobliskich obiektów. Gdy przeszkoda jest obecna, pin wyjściowy czujnika przechodzi w stan niski, sygnalizując ESP32 podjęcie działania, takiego jak włączenie brzęczyka.
Szczegóły z karty katalogowej
Producent
SunFounder
Numer części
Czujnik unikania przeszkód na podczerwień
Napięcie robocze
3,3 V - 5 V
Typ wyjścia
Cyfrowe (niskie po wykryciu przeszkody)
Zakres wykrywania
Do 20 cm
Czas reakcji
Mniej niż 10 ms
Obudowa
Moduł
Zasilanie: 3,3 V do 5 V do pracy.
Sygnał wyjściowy przechodzi w stan niski po wykryciu przeszkody.
Regulowana czułość za pomocą potencjometru.
Typowy zakres wykrywania wynosi do 20 cm.
Szybki czas reakcji poniżej 10 ms.
Instrukcje podłączenia
ESP32-19-obstacle_voide-wiring
Aby podłączyć czujnik unikania przeszkód na podczerwień do ESP32, zacznij od połączenia pinu VCC czujnika z pinem 5V na ESP32. Następnie podłącz pin GND czujnika do jednego z pinów GND na ESP32. Na koniec podłącz pin OUT czujnika do pinu GPIO 14 na ESP32.
Dla brzęczyka podłącz zacisk ujemny do GND, a zacisk dodatni do pinu GPIO 27. Upewnij się, że wszystkie połączenia są pewne i że czujnik jest prawidłowo zasilany. Podłączenie powinno być proste, ponieważ czujnik i brzęczyk wymagają tylko prostych połączeń zasilania i sygnału.
Przykłady kodu i omówienie
W kodzie najpierw definiujemy pin podłączony do czujnika unikania przeszkód. Robimy to za pomocą identyfikatora avoidPin ustawionego na 14. Deklarujemy również zmienną avoidState do przechowywania stanu wyjściowego czujnika.
const int avoidPin = 14; // numer pinu modułu unikania
int avoidState = 0;
W funkcji setup inicjalizujemy komunikację szeregową i ustawiamy avoidPin jako wejście. Pozwala to ESP32 odczytywać stan wyjściowy czujnika.
W funkcji loop ciągle odczytujemy wyjście czujnika za pomocą digitalRead(avoidPin) i zapisujemy wynik w avoidState. Ta wartość jest następnie drukowana na monitorze szeregowym, co pozwala nam zobaczyć, kiedy przeszkoda jest wykryta (wyjście będzie 0) lub nie (wyjście będzie 1).
Pełny kod znajdziesz w sekcji ładowania poniżej artykułu.
Demonstracja / Czego się spodziewać
Po zakończeniu konfiguracji i przesłaniu kodu na monitorze szeregowym powinieneś zobaczyć wyświetlane 0 lub 1, w zależności od tego, czy przeszkoda jest wykryta. Gdy przeszkoda znajduje się w zakresie wykrywania, wyjście będzie odczytywane jako 0, a brzęczyk zabrzmi. Jeśli przeszkoda zostanie usunięta, wyjście będzie odczytywane jako 1, a brzęczyk przestanie działać. Ta funkcjonalność jest pokazana na wideo (na wideo o 12:30).
Typowe problemy mogą obejmować nieprawidłowe podłączenie, które może prowadzić do nieprawidłowego działania czujnika, lub niedopasowane prędkości transmisji w monitorze szeregowym, uniemożliwiające dokładne wyświetlanie danych. Sprawdź te aspekty, jeśli napotkasz problemy.
818-ESP32 Tutorial 19/55- Arduino code for obstacle avoidance module
Język: C++
// set pin
const int avoidPin = 14; // the number of the avoid avoid module pin
// variable for storing the avoid status
int avoidState = 0;
void setup() {
Serial.begin(115200);
// initialize the avoid pin as an input
pinMode(avoidPin, INPUT);
}
void loop() {
// read the state of the avoid value
avoidState = digitalRead(avoidPin);
Serial.println(avoidState);
}