Za pomocą HC-SR04 z Raspberry Pi

Using the HC-SR04 With the Raspberry Pi

Ultradźwiękowy czujnik HC-SR04 jest popularnym, opłacalnym narzędziem do pomiaru odległości w różnych projektach DIY i profesjonalnych projektach. W połączeniu z Raspberry Pi otwiera świat możliwości tworzenia aplikacji, takich jak wykrywanie przeszkód, pomiar poziomu, a nawet interaktywne instalacje. Ten post na blogu poprowadzi Cię przez proces konfigurowania i korzystania z czujnika HC-SR04 za pomocą Raspberry Pi.

Jaki jest czujnik ultradźwiękowy HC-SR04?

HC-SR04 jest ultradźwiękowym modułem czujnika, który mierzy odległość, emitując fale ultradźwiękowe i obliczając czas potrzebny do powrotu Echo. Działa przy 5 V i jest znany ze swojej dokładności i niezawodności w pomiarach odległości w krótkim i średnim zakresie, zwykle od 2 cm do 400 cm.

Potrzebne komponenty

  • Raspberry Pi (dowolny model z szpilkami GPIO, taki jak Raspberry Pi 4)
  • Czujnik ultradźwiękowy HC-SR04
  • Przewody zworki
  • Tablica chleba
  • Rezystor 10kΩ (dla podziału napięcia)
  • Opcjonalnie: LED i rezystor do wizualnej informacji zwrotnej

Okablowanie HC-SR04 do Raspberry Pi

Połączenie HC-SR04 z Raspberry Pi wymaga starannej obsługi, zwłaszcza że piny Raspberry PI GPIO działają przy 3,3 V, a HC-SR04 działa przy 5 V. Aby zapobiec uszkodzeniu PI, konieczne jest użycie dzielnika napięcia na pin echa.

Połączenia PIN

  • VCC HC-SR04 do 5v Pin na Raspberry Pi
  • GND HC-SR04 do GND Na Raspberry Pi
  • Wymuskany Pin of HC-SR04 do Pin GPIO na Raspberry Pi (np. GPIO23)
  • Echo Pin HC-SR04 do Raspberry Pi przez dzielnik napięcia

Konfigurowanie dzielnika napięcia

Aby bezpiecznie podłączyć szpilkę echa do Raspberry Pi, użyj dzielnika napięcia z rezystorem 10kΩ i rezystorem 20kΩ. Zmniejszy to sygnał 5 V do około 3,3 V.


# Example schematic for voltage divider
# HC-SR04 Echo pin ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
#                             |
#                           20kΩ
#                             |
#                           GND

Instalowanie niezbędnych bibliotek

Przed napisaniem kodu upewnij się, że Raspberry Pi jest aktualna i ma zainstalowane niezbędne biblioteki.


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio

Pisanie skryptu Pythona

Poniżej znajduje się prosty skrypt Python do interfejsu z czujnikiem HC-SR04. Ten skrypt wysyła impuls spustowy, czeka na echo i oblicza odległość na podstawie czasu powrócić Echo.


import RPi.GPIO as GPIO
import time

# GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)

# Set GPIO Pins
TRIG = 23
ECHO = 24

print("Distance Measurement In Progress")

# Set GPIO direction (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)

def distance():
    # Set TRIG to LOW
    GPIO.output(TRIG, False)
    time.sleep(2)

    # Send 10us pulse to TRIG
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

    start_time = time.time()
    stop_time = time.time()

    # Save StartTime
    while GPIO.input(ECHO) == 0:
        start_time = time.time()

    # Save Time of Arrival
    while GPIO.input(ECHO) == 1:
        stop_time = time.time()

    # Time difference between start and arrival
    time_elapsed = stop_time - start_time
    # Multiply with speed of sound (34300 cm/s)
    # and divide by 2, because there and back
    distance = (time_elapsed * 34300) / 2

    return distance

if __name__ == '__main__':
    try:
        while True:
            dist = distance()
            print("Measured Distance = %.1f cm" % dist)
            time.sleep(1)
    except KeyboardInterrupt:
        print("Measurement stopped by User")
        GPIO.cleanup()

Uruchamianie skryptu

Upewnij się, że okablowanie jest prawidłowe, a następnie uruchom skrypt za pomocą Python 3:


python3 hc-sr04.py

Powinieneś zobaczyć zmierzoną odległość w centymetrach wydrukowanych do konsoli. Jeśli używasz diody LED do wizualnego sprzężenia zwrotnego, możesz zmodyfikować skrypt, aby oświetlić diodę LED, gdy obiekt znajduje się w określonym zakresie.

Zwiększenie projektu

Po uruchomieniu podstawowych pomiarów odległości rozważ zintegrowanie dodatkowych funkcji:

  • Wskaźniki LED: Użyj diod LED, aby wskazać różne zakresy odległości.
  • Wyświetlacz LCD: Pokaż odległość na ekranie LCD.
  • Rejestrowanie danych: REJESTRACJE Pomiary odległości w czasie do analizy.
  • Systemy alertów: Wywołuj alarmy lub powiadomienia, gdy obiekty są zbyt blisko.

Rozwiązywanie problemów typowych problemów

Praca z czujnikami i GPIO może czasem być trudna. Oto kilka typowych problemów i jak je rozwiązać:

  • Nieprawidłowe okablowanie: Dokładnie sprawdź wszystkie połączenia, zwłaszcza dzielnik napięcia na pin echa.
  • Hałaśliwe pomiary: Upewnij się, że konfiguracja jest stabilna i rozważ dodanie kondensatorów do filtrowania szumu.
  • Konflikty GPIO: Upewnij się, że żadne inne skrypty lub usługi nie korzystają z tych samych pinów GPIO.
  • Uprawnienia: Uruchom skrypty z odpowiednimi uprawnieniami, używając sudo w razie potrzeby.

Wniosek

Czujnik ultradźwiękowy HC-SR04 jest wszechstronnym i niezawodnym komponentem, który w połączeniu z Raspberry Pi może obsługiwać wiele zastosowań, od prostego pomiaru odległości do złożonych systemów automatyzacji. Postępując zgodnie z krokami przedstawionymi w tym przewodniku, powinieneś być w stanie skonfigurować i rozpocząć eksperymentowanie z HC-SR04 na Raspberry Pi. Szczęśliwy majsterkowanie!

Zostaw komentarz

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.