Ultraschall

Ultrasonic Module HC-SR04 Distance Measuring Transducer Sensor for Arduino UNO

Das Modul kostet auf eBay 1,19 € inkl. Versand aus China. Die Menge macht wahrscheinlich den Gewinn. Also habe ich gleich vier Stück bestellt.

Entfernung mit Ultraschall messen. Eine Beschreibung gibt es hier.

Damit der Rasenroboter nicht alles über den Haufen fährt, bekommt er ein paar Ultraschall-Sensoren. Nach vorn, nach hinten und zu den Seiten.

Programm dazu. (Ist noch nicht getestet und Haftung muss ich mal wieder ausschließen.)

#Bibliotheken einbinden
import RPi.GPIO as GPIO
import time
#GPIO Modus (BOARD / BCM)
GPIO.setmode(GPIO.BCM)
#GPIO Pins zuweisen
GPIO_TRIGGER = 18
GPIO_ECHO = 24
#Richtung der GPIO-Pins festlegen (IN / OUT)
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
def distanz():
  # setze Trigger auf HIGH
  GPIO.output(GPIO_TRIGGER, True)
  # setze Trigger nach 0.01ms aus LOW
  time.sleep(0.00001)
  GPIO.output(GPIO_TRIGGER, False)
  StartZeit = time.time()
  StopZeit = time.time()
  # speichere Startzeit
  while GPIO.input(GPIO_ECHO) == 0:
    StartZeit = time.time()
  # speichere Ankunftszeit
  while GPIO.input(GPIO_ECHO) == 1:
    StopZeit = time.time()
  # Zeit Differenz zwischen Start und Ankunft
  TimeElapsed = StopZeit - StartZeit
  # mit der Schallgeschwindigkeit (34300 cm/s) multiplizieren
  # und durch 2 teilen, da hin und zurueck
  distanz = (TimeElapsed * 34300/ 2
  return distanz
if __name__ == '__main__':
  try:
    while True:
      abstand = distanz()
      print ("Gemessene Entfernung = %.1f cm" % abstand)
      time.sleep(1)
  # Beim Abbruch durch STRG+C resetten
  except KeyboardInterrupt:
    print("Messung vom User gestoppt")
    GPIO.cleanup()

Ultra