Isi kandungan:
- Langkah 1: Senarai Bahagian
- Langkah 2: Menyiapkan Raspberry Pi
- Langkah 3: Raspberry Pi dan Camera Mount
- Langkah 4: Perhimpunan Lampu Lalu Lintas
- Langkah 5: Pendawaian (Bahagian 1)
- Langkah 6: Membangunkan Alam Sekitar
- Langkah 7: Memuktamadkan Rangka PVC
- Langkah 8: Pendawaian (Bahagian 2)
- Langkah 9: Selesai
- Langkah 10: Ekstra (Foto)
Video: Penganalisis Corak Lalu Lintas Menggunakan Pengesanan Objek Langsung: 11 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
Di dunia hari ini, lampu isyarat penting untuk jalan raya yang selamat. Namun, berkali-kali, lampu isyarat boleh mengganggu dalam keadaan di mana seseorang menghampiri lampu sama seperti lampu merah. Ini membuang masa, terutamanya jika lampu menghalang satu kenderaan memasuki persimpangan ketika tidak ada orang lain di jalan raya. Inovasi saya adalah lampu isyarat pintar yang menggunakan pengesanan objek langsung dari kamera untuk mengira jumlah kereta di setiap jalan. Perkakasan yang akan saya gunakan untuk projek ini adalah Raspberry Pi 3, modul kamera, dan pelbagai perkakasan elektronik untuk cahaya itu sendiri. Dengan menggunakan OpenCV pada Raspberry Pi, maklumat yang dikumpulkan akan dijalankan melalui kod yang mengawal LED melalui GPIO. Bergantung pada nombor ini, lampu isyarat akan berubah, membiarkan kereta masuk dalam urutan yang paling optimum. Dalam hal ini, jalur dengan banyak mobil akan dilewati sehingga jalur dengan lebih sedikit kereta akan menganggur, mengurangkan pencemaran udara. Ini akan menghilangkan keadaan apabila banyak kereta dihentikan sementara tidak ada kereta di jalan yang bersilang. Ini bukan sahaja menjimatkan masa untuk semua orang, tetapi juga menyelamatkan alam sekitar. Jumlah masa orang berhenti di tanda berhenti dengan enjin mereka melahu meningkatkan jumlah pencemaran udara, jadi dengan membuat lampu isyarat yang cerdas, saya dapat mengoptimumkan corak cahaya sehingga kereta menghabiskan waktu paling sedikit dengan kenderaan mereka berhenti. Pada akhirnya, sistem lampu isyarat ini dapat diimplementasikan di kota, pinggir kota, atau bahkan di luar bandar agar lebih efisien bagi orang akan mengurangi pencemaran udara.
Langkah 1: Senarai Bahagian
Bahan:
Raspberry Pi 3 Model B v1.2
Kamera Raspberry Pi v2.1
Bekalan kuasa USB mikro 5V / 1A
Monitor HDMI, papan kekunci, kad SD tetikus dengan Raspbian Jessie
Kabel pelarian Raspberry Pi GPIO
LED merah, kuning, hijau (2 setiap warna)
Penyambung wanita untuk Raspberry Pi (7 warna unik)
Pelbagai wayar 24 tolok (warna berbeza) + tiub pengecutan haba
Panel atau platform kayu 2'x2 '
Skru kayu
Permukaan hitam (kadbod, papan busa, papan poster, dll.)
Pita putih (atau warna selain hitam) untuk tanda jalan
Cat semburan hitam (untuk PVC)
Pipa PVC dengan sambungan siku 90 darjah (2), soket T (1), penyesuai wanita (2)
Alat
Besi pematerian
Pencetak 3D
Gerudi dengan pelbagai bit gerudi
Papan roti
Pistol haba
Langkah 2: Menyiapkan Raspberry Pi
Masukkan kad SD ke dalam Raspberry Pi dan boot.
Ikuti panduan ini untuk memasang perpustakaan OpenCV yang diperlukan. Pastikan anda mempunyai masa untuk melakukan langkah ini, kerana memasang perpustakaan OpenCV dapat memakan waktu beberapa jam. Pastikan juga memasang dan menyiapkan kamera anda di sini.
Anda juga harus memasang pip:
picamera
gpiozero
RPi. GPIO
Berikut adalah kod akhir:
dari picamera.array import PiRGBArray
dari picamera import PiCamera
import picamera.array
import numpy sebagai np
masa import
import cv2
import RPi. GPIO sebagai GPIO
masa import
GPIO.setmode (GPIO. BCM)
untuk i in (23, 25, 16, 21):
GPIO.setup (i, GPIO. OUT)
cam = PiCamera ()
cam.resolution = (480, 480)
cam.framerate = 30
mentah = PiRGBArray (cam, ukuran = (480, 480))
masa. tidur (0.1)
colorLower = np.array ([0, 100, 100])
colorUpper = np.array ([179, 255, 255])
initvert = 0
inithoriz = 0
pembilang = 0
untuk bingkai dalam cam.capture_continuous (mentah, format = "bgr", use_video_port = True):
bingkai = frame.array
hsv = cv2.cvtWarna (bingkai, cv2. COLOR_BGR2HSV)
topeng = cv2.inRange (hsv, colorLower, colorUpper)
topeng = cv2.blur (topeng, (3, 3))
topeng = cv2.dilate (topeng, Tiada, lelaran = 5)
mask = cv2.erode (topeng, Tiada, lelaran = 1)
mask = cv2.dilate (topeng, Tiada, lelaran = 3)
saya, ambang = cv2.threshold (topeng, 127, 255, cv2. THRESH_BINARY)
cnts = cv2.findContours (ambang, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [- 2]
pusat = Tiada
vert = 0
ufuk = 0
jika len (cnts)> 0:
untuk c dalam cnts:
(x, y), jejari = cv2.minMenutupLingkaran (c)
tengah = (int (x), int (y))
jejari = int (jejari)
cv2.circle (bingkai, tengah, jejari, (0, 255, 0), 2)
x = int (x)
y = int (y)
jika 180 <x <300:
jika y> 300:
vert = vert +1
elif y <180:
vert = vert +1
lain:
vert = vert
jika 180 <y <300:
jika x> 300:
horiz = horiz +1
elif x <180:
horiz = horiz +1
lain:
cakera = ufuk
jika vert! = terbalik:
cetak "Kereta di lorong menegak:" + str (vert)
initvert = vert
cetak "Kereta di lorong mendatar:" + str (horizontal)
inithoriz = cakrawala
cetak '----------------------------'
jika horiz! = inithoriz:
cetak "Kereta di lorong menegak:" + str (vert)
initvert = vert
cetak "Kereta di lorong mendatar:" + str (horizontal)
inithoriz = cakrawala
cetak '----------------------------'
jika vert <horiz:
GPIO.output (23, GPIO. HIGH)
GPIO.output (21, GPIO. HIGH)
GPIO.output (16, GPIO. LOW)
GPIO.output (25, GPIO. LOW)
jika horizontal <vert:
GPIO.output (16, GPIO. HIGH)
GPIO.output (25, GPIO. HIGH)
GPIO.output (23, GPIO. LOW)
GPIO.output (21, GPIO. LOW)
cv2.imshow ("Bingkai", bingkai)
cv2.imshow ("HSV", hsv)
cv2.imshow ("Thresh", ambang)
mentah. memotong (0)
jika cv2.waitKey (1) & 0xFF == ord ('q'):
rehat
cv2.destroyAllWindows ()
GPIO.cleanup ()
Langkah 3: Raspberry Pi dan Camera Mount
3D mencetak sarung dan memasang kamera dan memasang.
Langkah 4: Perhimpunan Lampu Lalu Lintas
Uji lampu isyarat dengan papan roti. Setiap set LED yang berlainan berkongsi anod, dan semuanya berkongsi katod (tanah) yang sama. Perlu ada 7 wayar input: 1 untuk setiap pasangan LEDS (6) + 1 wayar ground. Memateri dan memasang lampu isyarat.
Langkah 5: Pendawaian (Bahagian 1)
Pateri pin header wanita hingga kira-kira 5 kaki wayar. Ini adalah sisi yang wayar ini akan masuk melalui paip PVC di kemudian hari. Pastikan anda dapat membezakan set lampu yang berbeza (2 x 3 warna dan 1 tanah). Dalam kes ini, saya menandakan hujung kabel wayar merah, kuning, dan biru yang lain dengan tajam sehingga saya tahu yang mana.
Langkah 6: Membangunkan Alam Sekitar
Membina persekitaran Membuat palet kayu 2 kaki persegi seperti ini. Kayu sekerap baik kerana akan ditutup. Bor lubang yang hanya sesuai dengan penyesuai anda. Bor skru melalui sisi palet untuk menahan paip PVC ke tempatnya. Potong papan busa hitam agar sesuai dengan palet kayu di bawahnya. Bor lubang yang sesuai dengan paip PVC. Ulangi di sudut bertentangan. Tandakan jalan dengan pita putih.
Langkah 7: Memuktamadkan Rangka PVC
Di paip atas, gerudi lubang yang boleh memuatkan kabel. Lubang kasar baik selama anda boleh memasuki bahagian dalam paip. Pasangkan wayar melalui paip PVC dan sendi siku untuk ujian yang sesuai. Setelah semuanya selesai, cat PVC dengan cat semburan hitam untuk membersihkan rupa bingkai utama. Potong jurang kecil di salah satu paip PVC agar sesuai dengan T-joint. Tambahkan paip PVC ke t-sendi ini agar lampu isyarat tergantung. Diameternya bisa sama dengan kerangka utama (1/2 ), walaupun jika Anda menggunakan paip yang lebih tipis, pastikan 7 wayar dapat masuk. Bor lubang melalui paip ini agar lampu isyarat tergantung.
Langkah 8: Pendawaian (Bahagian 2)
Pasang semula semuanya seperti yang diuji sebelumnya. Periksa semula lampu isyarat dan pendawaian dengan papan roti untuk mengesahkan semua sambungan telah dibuat. Memasukkan lampu isyarat ke wayar yang melalui lengan T-sendi. Balut wayar yang terdedah dengan pita elektrik untuk mengelakkan seluar pendek dan kelihatan lebih bersih.
Langkah 9: Selesai
Untuk menjalankan kod, pastikan untuk menetapkan sumber anda sebagai ~ /.profile dan cd ke lokasi projek anda.
Langkah 10: Ekstra (Foto)
Disyorkan:
Corak LED (Corak Cahaya yang berbeza): 3 Langkah
Corak LED (Corak Cahaya Berbeza): Idea: Projek saya adalah corak warna LED. Projek ini mengandungi 6 LED yang semuanya dihidupkan dan berkomunikasi dengan Arduino. Terdapat 4 corak berbeza yang akan berpusing dan akan dimainkan secara bergilir. Apabila satu corak berakhir, tak lain
Mesin Negeri di Arduino - Lampu Lalu Lintas Pejalan Kaki: 6 Langkah (dengan Gambar)
State Machine on Arduino - Lampu Lalu Lintas Pejalan Kaki: Hai! Saya akan menunjukkan kepada anda cara memprogram lampu isyarat pejalan kaki untuk Arduino di C ++ dengan mesin keadaan terhingga dengan menggunakan YAKINDU Statechart Tools. Ini akan menunjukkan kehebatan mesin negara dan dapat digunakan sebagai cetak biru untuk
Pengesanan Objek W / Dragonboard 410c atau 820c Menggunakan OpenCV dan Tensorflow .: 4 Langkah
Pengesanan Objek W / Dragonboard 410c atau 820c Menggunakan OpenCV dan Tensorflow .: Instruksional ini menerangkan cara memasang rangka kerja OpenCV, Tensorflow, dan pembelajaran mesin untuk Python 3.5 untuk menjalankan aplikasi Objek Deteksi
Pengesanan Objek Visual Dengan Kamera (TfCD): 15 Langkah (dengan Gambar)
Pengesanan Objek Visual Dengan Kamera (TfCD): Perkhidmatan kognitif yang dapat mengenali emosi, wajah orang atau objek sederhana pada masa ini masih pada tahap awal pengembangan, tetapi dengan pembelajaran mesin, teknologi ini semakin berkembang. Kita boleh melihat lebih banyak sihir ini dalam
Sistem Lampu Lalu Lintas 4 Jalan Menggunakan Modul Tanpa Wayar 5 Arduino dan 5 NRF24L01: 7 Langkah (dengan Gambar)
Sistem Lampu Lalu Lintas 4 Jalan Menggunakan Modul Tanpa Wayar 5 Arduino dan 5 NRF24L01: Beberapa ketika yang lalu saya membuat Instruksional yang memperincikan sepasang lampu isyarat di papan roti. Saya juga membuat Instructable lain yang menunjukkan kerangka asas untuk menggunakan modul tanpa wayar NRF24L01. Ini membuat saya berfikir! Terdapat banyak