فهرست مطالب:
- مرحله 1: لیست قطعات
- مرحله 2: راه اندازی رزبری پای
- مرحله 3: Raspberry Pi و Camera Mount
- مرحله 4: مونتاژ چراغ راهنمایی
- مرحله 5: سیم کشی (قسمت 1)
- مرحله ششم: ایجاد محیط زیست
- مرحله 7: نهایی کردن قاب PVC
- مرحله 8: سیم کشی (قسمت 2)
- مرحله نهم: تمام شد
- مرحله 10: موارد اضافی (عکس)
تصویری: تجزیه و تحلیل الگوی ترافیک با استفاده از تشخیص شیء زنده: 11 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
در دنیای امروز ، چراغ راهنمایی برای یک جاده ایمن ضروری است. با این حال ، در بسیاری از مواقع ، چراغ های راهنمایی می توانند در شرایطی که شخصی به چراغ نزدیک قرمز می شود آزاردهنده باشد. این باعث اتلاف وقت می شود ، به ویژه اگر نور مانع از عبور یک وسیله نقلیه از تقاطع شود در حالی که هیچ کس دیگری در جاده وجود ندارد. نوآوری من یک چراغ راهنمایی هوشمند است که از تشخیص اجسام زنده از طریق دوربین برای شمارش تعداد اتومبیل در هر جاده استفاده می کند. سخت افزاری که من برای این پروژه استفاده خواهم کرد رزبری پای 3 ، ماژول دوربین و سخت افزارهای الکترونیکی مختلف برای خود نور است. با استفاده از OpenCV در Raspberry Pi ، اطلاعات جمع آوری شده از طریق کدی که LED ها را از طریق GPIO کنترل می کند ، اجرا می شود. بسته به این اعداد ، چراغ راهنمایی تغییر می کند و اجازه می دهد ماشینها در بهترین حالت مرتب شوند. در این صورت ، خطی که بیشترین اتومبیل را داشته باشد ، از آن عبور می کند تا خطی که خودروهای کمتری دارد در حالت خالی قرار بگیرد و آلودگی هوا را کاهش دهد. با این کار بسیاری از خودروها متوقف می شوند در حالی که هیچ خودرویی در جاده متقاطع وجود ندارد. این نه تنها باعث صرفه جویی در وقت برای همه می شود ، بلکه باعث صرفه جویی در محیط زیست نیز می شود. مدت زمان توقف افراد در علامت توقف با موتور خالی ، میزان آلودگی هوا را افزایش می دهد ، بنابراین با ایجاد چراغ راهنمایی هوشمند ، می توانم الگوهای نور را بهینه کنم تا خودروها کمترین زمان ممکن را با خودروی خود متوقف کنند. به در نهایت ، این سیستم چراغ راهنمایی می تواند در شهرها ، حومه شهرها یا حتی مناطق روستایی اجرا شود تا برای مردم کارآمدتر باشد و آلودگی هوا را کاهش دهد.
مرحله 1: لیست قطعات
مواد:
رزبری پای 3 مدل B v1.2
رزبری پای دوربین v2.1
منبع تغذیه میکرو USB 5V/1A
مانیتور HDMI ، صفحه کلید ، کارت SD موس با Raspbian Jessie
کابل شکست رزبری پای GPIO
LED های قرمز ، زرد ، سبز (از هر رنگ 2 عدد)
اتصالات زن برای رزبری پای (7 رنگ منحصر به فرد)
انواع سیم 24 گیج (رنگهای مختلف) + لوله های حرارتی کوچک کننده
پانل یا سکوی چوبی 2x2 اینچ
پیچ های چوبی
سطح سیاه (مقوا ، تخته فوم ، تخته پوستر و غیره)
نوار سفید (یا هر رنگی غیر از سیاه) برای خط کشی جاده ها
رنگ اسپری سیاه (مخصوص PVC)
لوله PVC ½”با اتصالات آرنج 90 درجه (2) ، سوکت T (1) ، آداپتور زن (2)
ابزارها
آهن لحیم کاری
پرینتر سه بعدی
با مته های مختلف مته کنید
تخته نان
سلاح گرم
مرحله 2: راه اندازی رزبری پای
کارت SD را در Raspberry Pi بارگذاری کرده و بوت کنید.
برای نصب کتابخانه های مورد نیاز OpenCV ، این راهنما را دنبال کنید. مطمئن شوید که وقت دارید این مرحله را انجام دهید ، زیرا نصب کتابخانه OpenCV می تواند چند ساعت طول بکشد. مطمئن شوید که دوربین خود را نیز در اینجا نصب و راه اندازی کنید.
همچنین باید pip را نصب کنید:
picamera
gpiozero
RPi. GPIO
در اینجا کد نهایی آمده است:
از picamera.array واردات PiRGBArray
از واردات picamera PiCamera
وارد کردن picamera.array
وارد کردن numpy به عنوان np
زمان واردات
واردات cv2
RPi. GPIO را به عنوان GPIO وارد کنید
زمان واردات
GPIO.setmode (GPIO. BCM)
برای i در (23 ، 25 ، 16 ، 21):
GPIO.setup (i، GPIO. OUT)
cam = PiCamera ()
cam.resolution = (480 ، 480)
cam.framerate = 30
raw = PiRGBArray (cam، size = (480، 480))
زمان خواب (0.1)
colorLower = np.array ([0 ، 100 ، 100])
colorUpper = np.array ([179 ، 255 ، 255])
initvert = 0
inithoriz = 0
شمارنده = 0
برای قاب در cam.capture_continuous (خام ، قالب = "bgr" ، use_video_port = True):
frame = frame.array
hsv = cv2.cvtColor (قاب ، cv2. COLOR_BGR2HSV)
mask = cv2.inRange (hsv، colorLower، colorUpper)
mask = cv2.blur (ماسک ، (3 ، 3))
mask = cv2.dilate (ماسک ، هیچکدام ، تکرارها = 5)
mask = cv2.erode (ماسک ، هیچکدام ، تکرارها = 1)
mask = cv2.dilate (ماسک ، هیچکدام ، تکرارها = 3)
من ، thresh = cv2.threshold (ماسک ، 127 ، 255 ، cv2. THRESH_BINARY)
cnts = cv2.findContours (thresh، cv2. RETR_TREE ، cv2. CHAIN_APPROX_SIMPLE) [-2]
مرکز = هیچکدام
vert = 0
افق = 0
اگر len (cnts)> 0:
برای c در cnts:
(x ، y) ، شعاع = cv2.minEnclosing دایره (c)
مرکز = (int (x) ، int (y))
شعاع = int (شعاع)
cv2.circle (قاب ، مرکز ، شعاع ، (0 ، 255 ، 0) ، 2)
x = int (x)
y = int (y)
اگر 180 <x <300:
اگر y> 300:
vert = vert +1
elif y <180:
vert = vert +1
دیگری:
vert = vert
اگر 180 <y <300:
اگر x> 300:
افق = افق +1
elif x <180:
افق = افق +1
دیگری:
افق = افق
if vert! = initvert:
چاپ "اتومبیل در خط عمودی:" + خیابان (راست)
initvert = vert
چاپ "ماشین در خط افقی:" + خیابان (افق)
inithoriz = افق
چاپ '----------------------------'
if horiz! = inithoriz:
چاپ "اتومبیل در خط عمودی:" + خیابان (راست)
initvert = vert
چاپ "ماشین در خط افقی:" + خیابان (افق)
inithoriz = افق
چاپ '----------------------------'
if vert <horiz:
GPIO.output (23 ، GPIO. HIGH)
GPIO.output (21 ، GPIO. HIGH)
GPIO.output (16 ، GPIO. LOW)
GPIO.output (25 ، GPIO. LOW)
if horiz <vert:
GPIO.output (16 ، GPIO. HIGH)
GPIO.output (25 ، GPIO. HIGH)
GPIO.output (23 ، GPIO. LOW)
GPIO.output (21 ، GPIO. LOW)
cv2.imshow ("قاب" ، قاب)
cv2.imshow ("HSV" ، hsv)
cv2.imshow ("Thresh" ، thresh)
raw.truncate (0)
اگر cv2.waitKey (1) & 0xFF == ord ('q'):
زنگ تفريح
cv2.destroyAllWindows ()
GPIO.cleanup ()
مرحله 3: Raspberry Pi و Camera Mount
قاب سه بعدی و دوربین را سوار کرده و مونتاژ کنید.
مرحله 4: مونتاژ چراغ راهنمایی
چراغ راهنمایی را با تخته نان تست کنید. هر مجموعه LED متضاد یک آند را به اشتراک می گذارد و همه آنها یک کاتد مشترک (زمین) دارند. در مجموع باید 7 سیم ورودی وجود داشته باشد: 1 عدد برای هر جفت LEDS (6) + 1 سیم زمین. چراغ های راهنمایی را لحیم و مونتاژ کنید.
مرحله 5: سیم کشی (قسمت 1)
پین هدر زن را به سیم 5 فوت متصل کنید. اینها طرفهایی هستند که این سیمها بعداً از طریق لوله های PVC عبور می کنند. مطمئن شوید که می توانید مجموعه های مختلف چراغ (2 3 3 رنگ و 1 زمین) را تشخیص دهید. در این مورد ، من انتهای مجموعه دیگری از سیمهای قرمز ، زرد و آبی را با شارپی مشخص کردم تا بدانم کدام است.
مرحله ششم: ایجاد محیط زیست
ساختن محیط ، یک پالت چوبی 2 فوت مربعی مانند این بسازید. چوب قراضه خوب است زیرا پوشانده می شود. سوراخی درست کنید که مناسب آداپتور شما باشد. سوراخ هایی را در طرفین پالت سوراخ کنید تا لوله PVC در جای خود محکم شود. تخته فوم سیاه را برش دهید تا با پالت چوبی زیر آن مطابقت داشته باشد. یک سوراخ متناسب با لوله PVC ایجاد کنید. این کار را در گوشه مقابل تکرار کنید. جاده ها را با نوار سفید علامت گذاری کنید.
مرحله 7: نهایی کردن قاب PVC
در لوله بالا ، سوراخی را ایجاد کنید که بتواند یک دسته سیم را در خود جای دهد. یک سوراخ خشن تا زمانی که بتوانید به داخل لوله ها دسترسی داشته باشید خوب است. سیم ها را از طریق لوله های PVC و مفاصل آرنج برای آزمایش مناسب بپیچید. وقتی همه چیز نهایی شد ، PVC را با مقداری رنگ اسپری سیاه رنگ کنید تا ظاهر قاب اصلی تمیز شود. شکاف کوچکی را در یکی از لوله های PVC برش دهید تا به مفصل T برسد. یک لوله PVC به این اتصال t اضافه کنید تا چراغ راهنما از آن آویزان شود. قطر آن می تواند برابر با قاب اصلی (1/2 اینچ) باشد ، اگرچه از لوله نازک تری استفاده می کنید ، مطمئن شوید که 7 سیم می توانند مار بکشند. سوراخی را از طریق این لوله ایجاد کنید تا چراغ راهنمایی از آن آویزان شود.
مرحله 8: سیم کشی (قسمت 2)
همه چیز را همانطور که قبلاً آزمایش شده است دوباره سیم کشی کنید. چراغ راهنمایی و سیم کشی را با یک تخته نان دوبار بررسی کنید تا تمام اتصالات برقرار شود. چراغ راهنمایی را به سیم هایی که از طریق بازوی T-T می آیند بچسبانید. سیم های در معرض دید را با نوار برقی بپیچید تا از ایجاد هرگونه شورت و ظاهر تمیزتر جلوگیری شود.
مرحله نهم: تمام شد
برای اجرای کد ، حتماً منبع خود را به عنوان pr/.profile و cd در محل پروژه خود تنظیم کنید.
مرحله 10: موارد اضافی (عکس)
توصیه شده:
تجزیه و تحلیل داده های دما/رطوبت با استفاده از Ubidots و Google-Sheets: 6 مرحله
تجزیه و تحلیل داده های دما/رطوبت با استفاده از Ubidots و Google-Sheets: در این آموزش ، داده های مختلف دما و رطوبت را با استفاده از سنسور دما و رطوبت اندازه گیری می کنیم. همچنین نحوه ارسال این داده ها به Ubidots را خواهید آموخت. به طوری که می توانید آن را از هر کجا برای برنامه های مختلف تجزیه و تحلیل کنید. همچنین توسط sendin
تجزیه و تحلیل ذرات خورشیدی: 5 مرحله (همراه با تصاویر)
تجزیه و تحلیل ذرات خورشیدی: من اخیراً در کنفرانسی در Fairbanks ، آلاسکا بودم ، جایی که یک شرکت محلی زغال سنگ (معدن زغال سنگ Usibelli) از نوآوران حمایت می کرد تا در مورد راههای بهبود کیفیت هوا فکر کنند. واضح است که کنایه آمیز است اما واقعاً عالی است. به نظر نمی رسید که محقق باشد
تجزیه و تحلیل احساسات توییتر با تمشک پای: 3 مرحله (همراه با تصاویر)
تجزیه و تحلیل احساسات توییتر با تمشک پای: تجزیه و تحلیل احساسات چیست و چرا باید به آن اهمیت دهید؟ تجزیه و تحلیل احساسات فرایند تعیین لحن احساسی پشت مجموعه ای از کلمات است که برای درک نگرش ها ، نظرات و احساسات ابراز شده استفاده می شود. درون یک
تجزیه و تحلیل سیستم بلوتوث Windows - رویکرد SensorTag: 7 مرحله (همراه با تصاویر)
تجزیه و تحلیل سیستم بلوتوث ویندوز - رویکرد SensorTag: در ادامه ، من تجزیه و تحلیل سیستم عامل ویندوز (سیستم عامل) را از نظر ارتباط با دستگاههای بلوتوث کم مصرف & ndash؛ در مورد ما با انواع مختلف SensorTags: Thunderboard React ، Thunderboard Sense (ب
تشخیص شیء بصری با دوربین (TfCD): 15 مرحله (همراه با تصاویر)
تشخیص شیء بصری با دوربین (TfCD): خدمات شناختی که می توانند احساسات ، چهره افراد یا اشیاء ساده را تشخیص دهند ، هنوز در مراحل اولیه توسعه هستند ، اما با یادگیری ماشینی ، این فناوری به طور فزاینده ای در حال توسعه است. ما می توانیم انتظار داشته باشیم که بیشتر از این جادو در