Bemerkung
Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauchen Sie mit anderen Enthusiasten tiefer in die Welt von Raspberry Pi, Arduino und ESP32 ein.
Warum beitreten?
Expertenunterstützung: Lösen Sie Probleme nach dem Kauf und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Tutorials aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezielle Rabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Verlosungen: Nehmen Sie an Gewinnspielen und saisonalen Aktionen teil.
👉 Bereit, mit uns zu entdecken und zu gestalten? Klicken Sie auf [hier] und treten Sie noch heute bei!
Hindernisvermeidung
In diesem Projekt verwendet der PiCrawler ein Ultraschallmodul, um Hindernisse vor ihm zu erkennen. Wenn der PiCrawler ein Hindernis erkennt, sendet er ein Signal und sucht nach einer anderen Richtung, um weiterzugehen.
Code ausführen
cd ~/picrawler/examples
sudo python3 avoid.py
Nach dem Start des Codes wird der PiCrawler vorwärts gehen. Wenn er feststellt, dass der Abstand zum Hindernis weniger als 10 cm beträgt, stoppt er, gibt einen Warnton aus, dreht sich nach links und hält an. Wenn in der neuen Richtung kein Hindernis ist oder der Abstand größer als 10 cm ist, bewegt er sich weiter vorwärts.
Code
Bemerkung
Sie können den unten stehenden Code bearbeiten/zurücksetzen/kopieren/ausführen/stoppen. Gehen Sie dazu zunächst in das Verzeichnis des Quellcodes, z. B. picrawler\examples. Nach der Bearbeitung können Sie den Code direkt ausführen, um den Effekt zu sehen.
from picrawler import Picrawler
from robot_hat import TTS, Music
from robot_hat import Ultrasonic
from robot_hat import Pin
import time
tts = TTS()
music = Music()
crawler = Picrawler()
sonar = Ultrasonic(Pin("D2") ,Pin("D3"))
music.music_set_volume(100)
alert_distance = 15
speed = 80
def main():
distance = sonar.read()
print(distance)
if distance < 0:
pass
elif distance <= alert_distance:
try:
music.sound_play_threading('./sounds/sign.wav', volume=100)
except Exception as e:
print(e)
crawler.do_action('turn left angle',3,speed)
time.sleep(0.2)
else :
crawler.do_action('forward', 1,speed)
time.sleep(0.2)
if __name__ == "__main__":
while True:
main()
Funktionsweise
Sie können den Abstand ermitteln, indem Sie die Klasse Ultrasonic importieren.
from robot_hat import Ultrasonic
Dann initialisieren Sie die Ultraschall-Pins.
sonar = Ultrasonic(Pin("D2") ,Pin("D3"))
Hier ist das Hauptprogramm.
Lesen Sie die vom Ultraschallmodul erkannten
Abständeund filtern Sie Werte kleiner als 0 heraus (wenn das Ultraschallmodul zu weit vom Hindernis entfernt ist oder die Daten nicht korrekt gelesen werden können, erscheintdistance < 0).Wenn der
Abstandkleiner oder gleich demalert_distance(dem zuvor festgelegten Schwellenwert, der 10 beträgt) ist, wird der Soundeffektsign.wavabgespielt. Der PiCrawler führtturn left angleaus.Wenn der
Abstandgrößer alsalert_distanceist, bewegt sich der PiCrawlervorwärts.
distance = sonar.read()
print(distance)
if distance < 0:
pass
elif distance <= alert_distance:
try:
music.sound_play_threading('./sounds/sign.wav', volume=100)
except Exception as e:
print(e)
crawler.do_action('turn left angle',3,speed)
time.sleep(0.2)
else :
crawler.do_action('forward', 1,speed)
time.sleep(0.2)
Bemerkung
Sie können verschiedene Soundeffekte oder Musikdateien im Ordner musics oder sounds über Filezilla-Software hinzufügen.