Სარჩევი:

მოძრაობის ნიმუშის ანალიზატორი ცოცხალი ობიექტის გამოვლენის გამოყენებით: 11 ნაბიჯი (სურათებით)
მოძრაობის ნიმუშის ანალიზატორი ცოცხალი ობიექტის გამოვლენის გამოყენებით: 11 ნაბიჯი (სურათებით)

ვიდეო: მოძრაობის ნიმუშის ანალიზატორი ცოცხალი ობიექტის გამოვლენის გამოყენებით: 11 ნაბიჯი (სურათებით)

ვიდეო: მოძრაობის ნიმუშის ანალიზატორი ცოცხალი ობიექტის გამოვლენის გამოყენებით: 11 ნაბიჯი (სურათებით)
ვიდეო: ტრადიციული საცხოვრისის ნიმუშები ზემო სვანეთში: პრობლემები & პერსპექტივები - მაქი კვიციანის მოხსენება 2024, ნოემბერი
Anonim
Image
Image
მოძრაობის ნიმუშის ანალიზატორი ცოცხალი ობიექტების გამოვლენის გამოყენებით
მოძრაობის ნიმუშის ანალიზატორი ცოცხალი ობიექტების გამოვლენის გამოყენებით

დღევანდელ მსოფლიოში შუქნიშნები აუცილებელია უსაფრთხო გზისათვის. თუმცა, ბევრჯერ, შუქნიშანი შეიძლება იყოს შემაშფოთებელი იმ სიტუაციებში, როდესაც ვიღაც უახლოვდება შუქს, როდესაც ის წითლდება. ეს კარგავს დროს, განსაკუთრებით იმ შემთხვევაში, თუ სინათლე ხელს უშლის ერთ მანქანას კვეთაზე გადასვლისას, როდესაც სხვა არავინ არის გზაზე. ჩემი ინოვაცია არის ჭკვიანი შუქნიშანი, რომელიც იყენებს კამერის ცოცხალი ობიექტის გამოვლენას თითოეული გზაზე მანქანების რაოდენობის დასათვლელად. აპარატურა, რომელსაც გამოვიყენებ ამ პროექტისთვის არის Raspberry Pi 3, კამერის მოდული და სხვადასხვა ელექტრონული ტექნიკა თავად შუქისთვის. Raspberry Pi– ზე OpenCV– ს გამოყენებით შეგროვებული ინფორმაცია გაშვებული იქნება კოდის საშუალებით, რომელიც აკონტროლებს LED– ებს GPIO– ს საშუალებით. ამ რიცხვებიდან გამომდინარე, შუქნიშანი შეიცვლება, რაც მანქანებს ყველაზე ოპტიმალურ წესრიგში გაუშვებს. ამ შემთხვევაში, ყველაზე მეტი მანქანის მქონე ბილიკი გადის ისე, რომ ნაკლები მანქანების მქონე ბილიკი იქნება უმოქმედო და შეამცირებს ჰაერის დაბინძურებას. ეს აღმოფხვრის სიტუაციებს, როდესაც ბევრი მანქანა ჩერდება, ხოლო გზაჯვარედინზე არ არის მანქანა. ეს არა მხოლოდ ზოგავს დროს ყველას, არამედ ზოგავს გარემოს. დრო, როდესაც ხალხი გაჩერებულია გაჩერების ნიშანზე ძრავის მორევით, ზრდის ჰაერის დაბინძურების რაოდენობას, ამიტომ ჭკვიანი შუქნიშნის შექმნით, მე შემიძლია გავაუმჯობესო განათების შაბლონები ისე, რომ მანქანებმა რაც შეიძლება ნაკლები დრო გაატარონ გაჩერებულ მანქანასთან რა საბოლოო ჯამში, ეს შუქნიშნის სისტემა შეიძლება განხორციელდეს ქალაქებში, გარეუბნებში ან თუნდაც სოფლად, რომ ადამიანებისთვის უფრო ეფექტური იყოს ჰაერის დაბინძურების შემცირება.

ნაბიჯი 1: ნაწილების სია

მასალები:

ჟოლო Pi 3 მოდელი B v1.2

Raspberry Pi კამერა v2.1

5V/1A მიკრო USB კვების ბლოკი

HDMI მონიტორი, კლავიატურა, თაგვის SD ბარათი Raspbian Jessie– ით

Raspberry Pi GPIO გარღვევის კაბელი

წითელი, ყვითელი, მწვანე LED (თითოეული ფერის 2)

ქალის კონექტორები ჟოლოს პიისთვის (7 უნიკალური ფერი)

ასორტიმენტი 24 ლიანდაგიანი მავთული (სხვადასხვა ფერის) + გათბობის შემცირების მილი

2’x2’ხის პანელი ან პლატფორმა

ხის ხრახნები

შავი ზედაპირი (მუყაო, ქაფის დაფა, პლაკატის დაფა და ა.

თეთრი (ან ნებისმიერი სხვა ფერის გარდა შავი) ლენტი გზის მარკირებისთვის

შავი სპრეი საღებავი (PVC– სთვის)

½”PVC მილი 90 გრადუსიანი იდაყვის სახსრებით (2), T ბუდე (1), ქალი ადაპტერი (2)

ინსტრუმენტები

გასაყიდი რკინა

3D პრინტერი

საბურღი სხვადასხვა საბურღი ბიტით

პურის დაფა

სითბოს იარაღი

ნაბიჯი 2: ჟოლოს პიის დაყენება

ჩადეთ SD ბარათი Raspberry Pi- ში და ჩატვირთეთ.

მიჰყევით ამ სახელმძღვანელოს საჭირო OpenCV ბიბლიოთეკების დასაყენებლად. დარწმუნდით, რომ გაქვთ დრო ამ ნაბიჯის გასაკეთებლად, რადგან OpenCV ბიბლიოთეკის დაყენებას შეიძლება რამდენიმე საათი დასჭირდეს. დარწმუნდით, რომ დააინსტალირეთ და დააყენეთ თქვენი კამერა აქ.

თქვენ ასევე უნდა დააინსტალიროთ პიპი:

კამერა

გპიოზერო

RPi. GPIO

აქ არის საბოლოო კოდი:

საწყისი picamera.array იმპორტი PiRGBArray

საწყისი picamera იმპორტი PiCamera

იმპორტი picamera.array

იმპორტირებული numpy როგორც np

იმპორტის დრო

იმპორტი cv2

იმპორტი RPi. GPIO როგორც GPIO

იმპორტის დრო

GPIO.setmode (GPIO. BCM)

i in (23, 25, 16, 21):

GPIO.setup (i, GPIO. OUT)

კამერა = PiCamera ()

cam.resolution = (480, 480)

cam.framerate = 30

ნედლეული = PiRGBArray (კამერა, ზომა = (480, 480))

დრო. ძილი (0.1)

colorLower = np.array ([0, 100, 100])

colorUpper = np.array ([179, 255, 255])

ამობრუნება = 0

ინითორიზი = 0

მრიცხველი = 0

for frame in cam.capture_continuous (raw, format = "bgr", use_video_port = True):

ჩარჩო = ჩარჩო. მასივი

hsv = cv2.cvtColor (ჩარჩო, cv2. COLOR_BGR2HSV)

ნიღაბი = cv2.inRange (hsv, colorLower, colorUpper)

ნიღაბი = cv2.blur (ნიღაბი, (3, 3))

ნიღაბი = cv2.dilate (ნიღაბი, არცერთი, გამეორება = 5)

ნიღაბი = cv2.erode (ნიღაბი, არცერთი, გამეორება = 1)

ნიღაბი = cv2.dilate (ნიღაბი, არცერთი, გამეორება = 3)

მე, thresh = cv2.threshold (ნიღაბი, 127, 255, cv2. THRESH_BINARY)

cnts = cv2.findContours (thresh, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE) [-2]

ცენტრი = არცერთი

ვერტი = 0

ჰორიზონტი = 0

თუ len (cnts)> 0:

c cnts– ში:

(x, y), რადიუსი = cv2.min დახურვა წრე (გ)

ცენტრი = (int (x), int (y))

რადიუსი = int (რადიუსი)

cv2. წრე (ჩარჩო, ცენტრი, რადიუსი, (0, 255, 0), 2)

x = int (x)

y = int (y)

თუ 180 <x <300:

თუ y> 300:

ვერტ = ვერტ +1

elif y <180:

ვერტ = ვერტ +1

სხვა:

ვერტ = ვერტ

თუ 180 <y <300:

თუ x> 300:

ჰორიზონტი = ჰორიზონტი +1

elif x <180:

ჰორიზონტი = ჰორიზონტი +1

სხვა:

ჰორიზონტი = ჰორიზონტი

თუ vert! = initvert:

დაბეჭდე "მანქანები ვერტიკალურ ზოლში:" + ქუჩა (ვერტ)

initvert = ვერტ

დაბეჭდე "მანქანები ჰორიზონტალურ ზოლში:" + ქუჩა (ჰორიზონტი)

ინითორიზი = ჰორიზონტი

ბეჭდვა '--------------------------------'

if horiz! = inithoriz:

დაბეჭდე "მანქანები ვერტიკალურ ზოლში:" + ქუჩა (ვერტ)

initvert = ვერტ

დაბეჭდე "მანქანები ჰორიზონტალურ ზოლში:" + ქუჩა (ჰორიზონტი)

ინითორიზი = ჰორიზონტი

ბეჭდვა '--------------------------------'

თუ ვერტ <ჰორიზონტი:

GPIO.output (23, GPIO. HIGHT)

GPIO.output (21, GPIO. HIGHT)

GPIO.output (16, GPIO. LOW)

GPIO.output (25, GPIO. LOW)

if horiz <vert:

GPIO.output (16, GPIO. HIGHT)

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: ჟოლო Pi და კამერის მთა

ჟოლო პი და კამერის მთა
ჟოლო პი და კამერის მთა
ჟოლო პი და კამერის მთა
ჟოლო პი და კამერის მთა
ჟოლო პი და კამერის მთა
ჟოლო პი და კამერის მთა
ჟოლო პი და კამერის მთა
ჟოლო პი და კამერის მთა

3D ბეჭდვა შემთხვევაში და კამერა მთაზე და აწყობა.

ნაბიჯი 4: შუქნიშნის შეკრება

შუქნიშნის შეკრება
შუქნიშნის შეკრება
შუქნიშნის შეკრება
შუქნიშნის შეკრება
შუქნიშნის შეკრება
შუქნიშნის შეკრება

გამოსცადეთ შუქნიშანი პურის დაფით. LED- ების თითოეული საპირისპირო ნაკრები იზიარებს ანოდს და ყველა მათგანი იზიარებს საერთო კათოდს (მიწას). სულ უნდა იყოს 7 შეყვანის მავთული: 1 თითოეული წყვილი LEDS (6) + 1 დამიწების მავთულისთვის. შეაერთეთ და ააწყვეთ შუქნიშნები.

ნაბიჯი 5: გაყვანილობა (ნაწილი 1)

გაყვანილობა (ნაწილი 1)
გაყვანილობა (ნაწილი 1)
გაყვანილობა (ნაწილი 1)
გაყვანილობა (ნაწილი 1)
გაყვანილობა (ნაწილი 1)
გაყვანილობა (ნაწილი 1)
გაყვანილობა (ნაწილი 1)
გაყვანილობა (ნაწილი 1)

შეაერთეთ ქალი სათაურის ქინძისთავები დაახლოებით 5 ფუტი მავთულისკენ. ეს ის მხარეებია, რომ ეს მავთულები მოგვიანებით გველის PVC მილებით. დარწმუნდით, რომ შეძლებთ განასხვავოთ განათების სხვადასხვა ნაკრები (2 x 3 ფერი და 1 გრუნტი). ამ შემთხვევაში, მე წითელი, ყვითელი და ლურჯი მავთულის ბოლოების ბოლოები მონიშნული მაქვს მკვეთრი, ასე რომ მე ვიცი რომელი რომელია.

ნაბიჯი 6: გარემოს შექმნა

გარემოს მშენებლობა
გარემოს მშენებლობა
გარემოს მშენებლობა
გარემოს მშენებლობა
გარემოს მშენებლობა
გარემოს მშენებლობა
გარემოს მშენებლობა
გარემოს მშენებლობა

გარემოს მშენებლობა გააკეთეთ 2 ფუტიანი კვადრატული ხის პალეტი ასე. ჯართი კარგად არის დაფარული. გაბურღეთ ხვრელი, რომელიც ზუსტად შეესაბამება თქვენს ადაპტერს. საბურღი ხრახნები პლატაზე, რათა უზრუნველყოს PVC მილები თავის ადგილზე. გაჭერით შავი ქაფის დაფა, რომელიც შეესაბამება ხის პალეტას ქვემოთ. გაბურღეთ ხვრელი, რომელიც შეესაბამება PVC მილს. გაიმეორეთ საპირისპირო კუთხეში. მონიშნეთ გზები თეთრი ლენტით.

ნაბიჯი 7: PVC ჩარჩოს დასრულება

PVC ჩარჩოს დასრულება
PVC ჩარჩოს დასრულება
PVC ჩარჩოს დასრულება
PVC ჩარჩოს დასრულება
PVC ჩარჩოს დასრულება
PVC ჩარჩოს დასრულება

ზედა მილზე, გაბურღეთ ხვრელი, რომელიც შეიძლება მოთავსდეს მავთულხლართებს. უხეში ხვრელი ჯარიმაა მანამ, სანამ თქვენ შეგიძლიათ მიხვიდეთ მილების შიგნით. გველის მავთულები PVC მილებისა და იდაყვის სახსრების მეშვეობით სატესტო მორგებისთვის. მას შემდეგ რაც ყველაფერი დასრულდება, შეღებეთ PVC შავი სპრეის საღებავით, რათა გაასუფთაოთ ძირითადი ჩარჩოს სახე. გაჭერით პატარა უფსკრული ერთ PVC მილში, რათა მოერგოს T- სახსარს. დაამატეთ PVC მილები ამ სახსარში, რომ შუქნიშანი ჩამოიხრჩო. დიამეტრი შეიძლება იყოს იგივე, რაც ძირითადი ჩარჩო (1/2 ), თუმცა თუ იყენებთ უფრო თხელ მილს, დარწმუნდით, რომ 7 მავთულს შეუძლია გველის გავლა. ამ მილში გააღეთ ხვრელი, რომ შუქნიშანი ჩამოიხრჩო.

ნაბიჯი 8: გაყვანილობა (ნაწილი 2)

გაყვანილობა (ნაწილი 2)
გაყვანილობა (ნაწილი 2)
გაყვანილობა (ნაწილი 2)
გაყვანილობა (ნაწილი 2)
გაყვანილობა (ნაწილი 2)
გაყვანილობა (ნაწილი 2)

ხელახლა შეაერთეთ ყველაფერი ისე, როგორც ადრე იყო გამოცდილი. ორჯერ შეამოწმეთ შუქნიშანი და გაყვანილობა პურის დაფით, რომ დაადასტუროთ ყველა კავშირი. შეაერთეთ შუქნიშანი მავთულხლართებზე T- სახსრის მკლავიდან. გადააფარეთ მავთულები ელექტრული ლენტით, რათა თავიდან აიცილოთ ნებისმიერი შორტი და უფრო სუფთა იერისთვის.

ნაბიჯი 9: დასრულდა

დასრულდა!
დასრულდა!
დასრულდა!
დასრულდა!
დასრულდა!
დასრულდა!
დასრულდა!
დასრულდა!

კოდის გასაშვებად, დარწმუნდით, რომ მიუთითეთ თქვენი წყარო ~/.profile და cd თქვენი პროექტის ადგილას.

ნაბიჯი 10: დამატებითი (ფოტოები)

გირჩევთ: