Inhaltsverzeichnis:
- Schritt 1: Teileliste
- Schritt 2: Einrichten des Raspberry Pi
- Schritt 3: Raspberry Pi und Kamerahalterung
- Schritt 4: Ampelmontage
- Schritt 5: Verdrahtung (Teil 1)
- Schritt 6: Aufbau der Umgebung
- Schritt 7: Fertigstellen des PVC-Rahmens
- Schritt 8: Verdrahtung (Teil 2)
- Schritt 9: Fertig
- Schritt 10: Extras (Fotos)
Video: Traffic Pattern Analyzer mit Live-Objekterkennung - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
In der heutigen Welt sind Ampeln unverzichtbar für eine sichere Straße. Oftmals können Ampeln jedoch in Situationen stören, in denen sich jemand der Ampel nähert, während sie auf Rot schaltet. Das ist Zeitverschwendung, vor allem, wenn das Licht ein einzelnes Fahrzeug daran hindert, die Kreuzung zu passieren, während niemand auf der Straße ist. Meine Innovation ist eine intelligente Ampel, die die Live-Objekterkennung einer Kamera verwendet, um die Anzahl der Autos auf jeder Straße zu zählen. Die Hardware, die ich für dieses Projekt verwenden werde, ist ein Raspberry Pi 3, ein Kameramodul und verschiedene elektronische Hardware für das Licht selbst. Mit OpenCV auf dem Raspberry Pi werden die gesammelten Informationen durch Code geleitet, der die LEDs über den GPIO steuert. Abhängig von diesen Zahlen ändert sich die Ampel und lässt Autos in der optimalsten Reihenfolge durch. In diesem Fall würde die Spur mit den meisten Autos durchgelassen, sodass die Spur mit weniger Autos im Leerlauf wäre, was die Luftverschmutzung reduziert. Dies würde Situationen eliminieren, in denen viele Autos angehalten werden, während sich keine Autos auf der kreuzenden Straße befinden. Das spart nicht nur Zeit für alle, sondern schont auch die Umwelt. Die Zeit, die Menschen mit laufendem Motor an einem Stoppschild anhalten, erhöht die Luftverschmutzung. Durch die Schaffung einer intelligenten Ampel kann ich die Lichtmuster so optimieren, dass Autos so wenig Zeit wie möglich mit stehendem Fahrzeug verbringen. Letztendlich könnte dieses Ampelsystem in Städten, Vororten oder sogar ländlichen Gebieten implementiert werden, um für die Menschen effizienter zu sein und die Luftverschmutzung zu reduzieren.
Schritt 1: Teileliste
Materialien:
Raspberry Pi 3 Modell B v1.2
Raspberry Pi Kamera v2.1
5V/1A Micro-USB-Netzteil
HDMI-Monitor, Tastatur, Maus SD-Karte mit Raspbian Jessie
Raspberry Pi GPIO-Breakout-Kabel
Rote, gelbe, grüne LEDs (2 von jeder Farbe)
Buchsen für Raspberry Pi (7 einzigartige Farben)
Sortierter 24 Gauge Draht (verschiedene Farben) + Schrumpfschlauch
2'x2' Holzplatte oder Plattform
Holzschrauben
Schwarze Oberfläche (Karton, Hartschaumplatte, Plakatkarton, etc.)
Weißes (oder eine andere Farbe als schwarz) Klebeband für Straßenmarkierungen
Schwarze Sprühfarbe (für PVC)
½” PVC-Rohr mit 90-Grad-Winkelstücken (2), T-Muffe (1), Innenadapter (2)
Werkzeuge
Lötkolben
3D Drucker
Bohren Sie mit verschiedenen Bohrern
Steckbrett
Heißluftpistole
Schritt 2: Einrichten des Raspberry Pi
Laden Sie die SD-Karte in den Raspberry Pi und booten Sie.
Folgen Sie dieser Anleitung, um die erforderlichen OpenCV-Bibliotheken zu installieren. Stellen Sie sicher, dass Sie Zeit für diesen Schritt haben, da die Installation der OpenCV-Bibliothek einige Stunden dauern kann. Stellen Sie sicher, dass Sie hier auch Ihre Kamera installieren und einrichten.
Sie sollten auch pip installieren:
Pikamera
gpiozero
RPi. GPIO
Hier ist der fertige Code:
von picamera.array importieren PiRGBArray
aus Picamera importieren PiCamera
picamera.array importieren
numpy als np importieren
Importzeit
CV2 importieren
RPi. GPIO als GPIO importieren
Importzeit
GPIO.setmode(GPIO. BCM)
für i in (23, 25, 16, 21):
GPIO.setup(i, GPIO. OUT)
cam = PiCamera()
Kameraauflösung=(480, 480)
Kamera. Framerate=30
raw=PiRGBArray(cam, size=(480, 480))
time.sleep(0.1)
colorLower = np.array([0, 100, 100])
colorUpper = np.array([179, 255, 255])
invertieren = 0
inithoriz = 0
Zähler = 0
für Frame in cam.capture_continuous(raw, format="bgr", use_video_port=True):
frame = frame.array
hsv = cv2.cvtColor(frame, cv2. COLOR_BGR2HSV)
mask = cv2.inRange(hsv, colorLower, colorUpper)
Maske = cv2.blur(Maske, (3, 3))
mask = cv2.dilate (Maske, Keine, Iterationen = 5)
mask= cv2.erode(Maske, Keine, Iterationen=1)
mask = cv2.dilate (Maske, Keine, Iterationen = 3)
me, thresh = cv2.threshold(mask, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours(thresh, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE)[-2]
Mitte = Keine
vert = 0
horizontal = 0
wenn len(cnts) > 0:
für c in cnts:
(x, y), Radius = cv2.minEnclosingCircle(c)
Zentrum = (int(x), int(y))
Radius = int (Radius)
cv2.circle(Rahmen, Zentrum, Radius, (0, 255, 0), 2)
x = int(x)
y = int(y)
wenn 180 < x < 300:
wenn y > 300:
vert = vert +1
elif y < 180:
vert = vert +1
anders:
vert = vert
wenn 180 < j < 300:
wenn x > 300:
horiz = horiz +1
elif x < 180:
horiz = horiz +1
anders:
horiz = horiz
if vert != initvert:
print"Autos in vertikaler Spur: " + str(vert)
initvert = vert
print"Autos in horizontaler Spur: " + str(horiz)
inithoriz = horiz
drucken '----------------------------'
if horiz != inithoriz:
print"Autos in vertikaler Spur: " + str(vert)
initvert = vert
print"Autos in horizontaler Spur: " + str(horiz)
inithoriz = horiz
drucken '----------------------------'
wenn vert < horiz:
GPIO. Ausgabe(23, GPIO. HIGH)
GPIO. Ausgang(21, GPIO. HIGH)
GPIO. Ausgang(16, GPIO. LOW)
GPIO. Ausgabe(25, GPIO. LOW)
wenn horiz < vert:
GPIO. Ausgang(16, GPIO. HIGH)
GPIO. Ausgabe(25, GPIO. HIGH)
GPIO. Ausgang(23, GPIO. LOW)
GPIO. Ausgang(21, GPIO. LOW)
cv2.imshow("Rahmen", Rahmen)
cv2.imshow("HSV", hsv)
cv2.imshow("Thresh", thresh)
raw.truncate(0)
if cv2.waitKey(1) & 0xFF == ord('q'):
brechen
cv2.destroyAllWindows()
GPIO.cleanup()
Schritt 3: Raspberry Pi und Kamerahalterung
3D-Drucken Sie das Gehäuse und die Kamerahalterung und montieren Sie sie.
Schritt 4: Ampelmontage
Testen Sie die Ampel mit einem Steckbrett. Jeder gegenüberliegende LED-Satz teilt sich eine Anode, und alle teilen sich eine gemeinsame Kathode (Masse). Es sollten insgesamt 7 Eingangsdrähte vorhanden sein: 1 für jedes LED-Paar (6) + 1 Erdungsdraht. Löten und montieren Sie die Ampeln.
Schritt 5: Verdrahtung (Teil 1)
Löten Sie die Buchsenleistenstifte auf etwa 5 Fuß Draht. Dies sind die Seiten, an denen sich diese Drähte später durch die PVC-Rohre schlängeln. Achten Sie darauf, die verschiedenen Lichtersätze (2 x 3 Farben und 1 Boden) unterscheiden zu können. In diesem Fall habe ich die Enden eines anderen Satzes roter, gelber und blauer Drähte mit Sharpie markiert, damit ich weiß, welcher welcher ist.
Schritt 6: Aufbau der Umgebung
Bauen Sie die Umgebung auf Stellen Sie eine 2 Fuß große Holzpalette wie diese her. Altholz ist in Ordnung, da es abgedeckt wird. Bohren Sie ein Loch, das gerade zu Ihrem Adapter passt. Bohren Sie Schrauben durch die Seiten der Palette, um das PVC-Rohr zu befestigen. Schneiden Sie die schwarze Schaumstoffplatte so zu, dass sie der darunter liegenden Holzpalette entspricht. Bohren Sie ein Loch, das um das PVC-Rohr passt. Wiederholen Sie dies an der gegenüberliegenden Ecke. Markieren Sie die Straßen mit weißem Klebeband.
Schritt 7: Fertigstellen des PVC-Rahmens
Bohren Sie am oberen Rohr ein Loch, das für ein Kabelbündel geeignet ist. Ein grobes Loch ist in Ordnung, solange Sie Zugang zu den Innenseiten der Rohre haben. Führen Sie die Drähte für einen Testsitz durch die PVC-Rohre und Winkelstücke. Sobald alles fertig ist, bemalen Sie das PVC mit etwas schwarzer Sprühfarbe, um das Aussehen des Hauptrahmens zu bereinigen. Schneiden Sie eine kleine Lücke in eines der PVC-Rohre, um eine T-Verbindung zu passen. Fügen Sie diesem T-Stück ein PVC-Rohr hinzu, damit die Ampel herunterhängt. Der Durchmesser könnte der gleiche sein wie der des Hauptrahmens (1/2 ). Wenn Sie jedoch ein dünneres Rohr verwenden, stellen Sie sicher, dass die 7 Drähte sich durchschlängeln können. Bohren Sie ein Loch durch dieses Rohr, damit die Ampel daran hängen kann.
Schritt 8: Verdrahtung (Teil 2)
Verkabeln Sie alles wie zuvor getestet. Überprüfen Sie die Ampel und die Verkabelung mit einem Steckbrett, um sicherzustellen, dass alle Verbindungen hergestellt wurden. Löten Sie die Ampel an die Drähte, die durch den T-Verbindungsarm kommen. Umwickeln Sie die freiliegenden Drähte mit Isolierband, um Kurzschlüsse zu vermeiden und ein saubereres Aussehen zu erzielen.
Schritt 9: Fertig
Um den Code auszuführen, stellen Sie sicher, dass Ihre Quelle als ~/.profile festgelegt ist und cd auf Ihren Projektspeicherort.
Schritt 10: Extras (Fotos)
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
Live-Streaming mit Raspberry Pi durchführen – wikiHow
Live-Streaming mit Raspberry Pi: In diesem Tutorial erfahren Sie, wie Sie mit Raspberry Pi unsere eigene Überwachungskamera erstellen. Sie können mit jedem Gerät auf diesen Stream zugreifen, solange es mit demselben Netzwerk wie das RPi verbunden ist
Live 4G/5G HD-Videostreaming von DJI Drone mit niedriger Latenzzeit [3-Schritte]
4G/5G HD-Live-Videostreaming von DJI-Drohne mit geringer Latenz [3 Schritte]: Die folgende Anleitung hilft Ihnen, Live-Videostreams in HD-Qualität von fast jeder DJI-Drohne zu erhalten. Mit Hilfe der FlytOS Mobile App und der FlytNow Web Application können Sie Videos von der Drohne streamen