Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!
2.2.5 IR Hindernisvermeidungsmodul
Einführung
In diesem Projekt werden wir das IR Hindernisvermeidungsmodul kennenlernen. Dies ist ein Sensor-Modul, das zur Erkennung von Hindernissen in kurzer Entfernung verwendet werden kann. Es weist geringe Störanfälligkeit auf, ist einfach zu montieren und zu verwenden. Das Modul kann in Robotern zur Hindernisvermeidung, hindernisvermeidenden Wagen, zur Zählung an Montagelinien und mehr eingesetzt werden.
Erforderliche Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein komplettes Set zu kaufen. Hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Sie können diese auch einzeln über die folgenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
|---|---|
Schaltplan
Experimentelle Verfahren
Schritt 1: Schaltkreis aufbauen.
Schritt 2: Verzeichnis wechseln.
cd ~/raphael-kit/c/2.2.5/
Schritt 3: Kompilieren.
gcc 2.2.5_IrObstacle.c -lwiringPi
Schritt 4: Ausführen.
sudo ./a.out
Nachdem der Code ausgeführt wurde und Sie Ihre Hand vor den Sensor des Moduls halten, leuchtet die Ausgabeanzeige des Moduls auf und „Detected Barrier!“ wird wiederholt auf dem Bildschirm angezeigt.
Bemerkung
Wenn es nach dem Ausführen nicht funktioniert oder der Fehlerhinweis „wiringPi.h: No such file or directory“ erscheint, beachten Sie bitte Installieren und Überprüfen von WiringPi.
Code
#include <wiringPi.h>
#include <stdio.h>
#define ObstaclePin 0
void myISR(void)
{
printf("Detected Barrier !\n");
}
int main(void)
{
if(wiringPiSetup() == -1){ //when initialize wiring failed,print messageto screen
printf("setup wiringPi failed !\n");
return 1;
}
if(wiringPiISR(ObstaclePin, INT_EDGE_FALLING, &myISR) < 0){
printf("Unable to setup ISR !!!\n");
return 1;
}
while(1){
;
}
return 0;
}
Code-Erklärung
void myISR(void)
{
printf("Detected Barrier !\n");
}
Definieren Sie eine Funktion myISR(), um obstacle detected auszugeben, was darauf hinweist, dass ein Hindernis erkannt wurde.
if(wiringPiISR(ObstaclePin, INT_EDGE_FALLING, &myISR) < 0){
printf("Unable to setup ISR !!!\n");
return 1;
}
Diese Funktion wiringPiISR() registriert die Funktion myISR(), um Unterbrechungen am angegebenen ObstaclePin zu empfangen.
Wenn der ObstaclePin von Hoch auf Niedrig wechselt, bedeutet dies, dass ein Hindernis erkannt wurde. Zu diesem Zeitpunkt rufen Sie die Funktion myISR() auf, um „Detected Barrier!“ auszugeben.
Das Prototyp dieser Funktion wiringPiISR() wird unten gezeigt.
int wiringPiISR (int pin, int edgeType, void (*function)(void)) ;
Der Parameter edgeType ist entweder INT_EDGE_FALLING, INT_EDGE_RISING, INT_EDGE_BOTH oder INT_EDGE_SETUP. Wenn es INT_EDGE_SETUP ist, wird keine Initialisierung des Pins durchgeführt – es wird angenommen, dass Sie den Pin bereits woanders initialisiert haben (z. B. mit dem gpio-Programm). Aber wenn Sie einen der anderen Typen angeben, wird der Pin wie angegeben exportiert und initialisiert.
Für weitere Informationen verweisen Sie bitte auf: wiringPi-Functions (API).