Spielen mit Raspberry Pi (14) - Ultraschall-Rangierung

Spielen mit Raspberry Pi (14) - Ultraschall-Rangierung

Die Entwicklung der Automobilindustrie kann heute als tagtäglich wechselhaft bezeichnet werden. Auch das Konzept der Smart Cars wird immer heißer. Auch das autonome Fahren wird immer mehr zum Einsatz kommen. Ich weiß nicht, ob Sie jemals gedacht haben, dass wir beim manuellen Autofahren hauptsächlich das Sehen verwenden, um die Entfernung wahrzunehmen.Wie erhält künstliche Intelligenz Informationen zur Umgebung durch die Wahrnehmung der Entfernung? Dies erfordert die Verwendung entsprechender Abstandssensoren.

1. Ultraschall-Entfernungssensor

Wir wissen, dass die Ultraschallfrequenz im Vergleich zu gewöhnlichen Schallwellen hoch ist, ihr Energieverbrauch langsam ist, die Ausbreitungsdistanz lang und die Richtwirkung stark ist. Ideal zur Entfernungsmessung. In diesem Experiment verwenden wir das Ultraschall-Entfernungsmodul HC-SR04 zur Entfernungsmessung. Die Komponenten sind in der folgenden Abbildung dargestellt:

Wie im Bild oben gezeigt, hat das HC-SR04-Modul einen Ultraschallgenerator (T-Seite) und einen Ultraschallkollektor (R-Seite) und 4 Pins. Dieses Modul ist einfach im Internet zu kaufen, es ist billig, genau, einfach zu bedienen und sehr kostengünstig. Das Hardware-Schema des HC-SR04 sieht wie folgt aus:

Obwohl die interne Schaltungsstruktur des Moduls sehr kompliziert aussieht, müssen wir sein internes Funktionsprinzip nicht vollständig verstehen, um es zur Entfernungsmessung zu verwenden.Um die Entfernung zu messen, ist die Formel _ s = v * t _ untrennbar. Wenn wir den Abstand s berechnen wollen, müssen wir die Geschwindigkeit v und die Zeit t kennen. Die Geschwindigkeit v der Schallwelle ist fest, wir können 340 m/s nehmen, und die Zeit t ist das, was das HC-SR04-Modul helfen kann uns bekommen.

Das Kernprinzip der Ultraschall-Entfernungsmessung besteht darin, Ultraschallwellen durch die erzeugende Quelle zu emittieren. Wenn die Ultraschallwellen auf Hindernisse treffen, werden sie reflektiert. Die reflektierten Ultraschallwellen können von der Erfassungsquelle erfasst werden. Die Zeit, die für einen Umlauf benötigt wird zwischen Hindernissen. Wie nachfolgend dargestellt:

Für das HC-SR04-Modul ist sein Trig-Pin der Trigger-Pin. Das Senden eines hohen Pegels von mehr als 10 us kann das Senden von Ultraschallbefehlen auslösen. Das HC-SR04-Modul sendet automatisch 8 Rechteckwellen von 40 kHz. Der Echo-Pin gibt einen hohen Pegel aus, und nach dem Empfang der reflektierten Schallwelle kehrt das Echo wieder auf einen niedrigen Pegel zurück. Daher müssen wir bei Verwendung des HC-SR04-Moduls nur den Messbefehl auslösen, indem wir dem Trig-Pin einen hohen Pegel hinzufügen, und dann die Dauer des hohen Pegels des Echo-Pins überwachen, um die Entfernungsmessung abzuschließen.

2. Anschluss und Codierung

Wir wählen GPIO17 unter dem BCM-Code, um den Trig-Pin für die Ultraschallerzeugung zu steuern, und verwenden GPIO18, um den Pegel des Echo-Pins zu erhalten. Die Verbindung ist wie folgt:

HC-SR04-Modul Himbeerkuchen
VCC +5V Stromversorgung
Masse Masse
Trig GPIO17 (BCM-Code)
Echo CGIO18 (BCM-Code)

Schreiben Sie den folgenden Code:

#coding:utf-8

import RPi.GPIO as GPIO
import time

# 触发声波引脚
trig = 11
# 监听信号
echo = 12

def getDistance():
	# 输出高电平
	GPIO.output(trig, GPIO.HIGH)
	# 持续15us高电平 触发超声波
	time.sleep(0.000015) 
	# 停止加高电平
	GPIO.output(trig, GPIO.LOW)

	# 开始检测信号引脚的电平为高电平时开始计时
	while GPIO.input(echo) == 0:
		pass
	t1 = time.time()
	# 信号引脚的电平为低电平时计算时间间隔
	while GPIO.input(echo) == 1:
		pass
	t2 = time.time()
	# 计算距离
	s = (t2 - t1)*340/2
	return s

GPIO.setmode(GPIO.BOARD)
GPIO.setup(trig, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(echo, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

while True:
	s = getDistance()
	print("当前距离前方障碍物:%fm"%(s))
	time.sleep(1)

Führen Sie den obigen Code auf dem Raspberry Pi aus, um eine Ultraschallreichweite zu erreichen. Der Effekt ist wie folgt:

Konzentrieren Sie sich auf Technologie, verstehen Sie Liebe, seien Sie bereit zu teilen, seien Sie ein Freund

QQ:316045346

{{o.name}}
{{m.name}}

Ich denke du magst

Origin my.oschina.net/u/2340880/blog/5254387
Empfohlen
Rangfolge