Სარჩევი:

Motion Sensor Lights Basys3: 8 ნაბიჯი
Motion Sensor Lights Basys3: 8 ნაბიჯი

ვიდეო: Motion Sensor Lights Basys3: 8 ნაბიჯი

ვიდეო: Motion Sensor Lights Basys3: 8 ნაბიჯი
ვიდეო: SPI Light Sensor PmodALS with Seven Segment Display and LEDs withArtix-7 FPGA on Basys 3 2024, ნოემბერი
Anonim
მოძრაობის სენსორის განათება Basys3
მოძრაობის სენსორის განათება Basys3
მოძრაობის სენსორის განათება Basys3
მოძრაობის სენსორის განათება Basys3
მოძრაობის სენსორის განათება Basys3
მოძრაობის სენსორის განათება Basys3

ციფრული დიზაინის ჩვენი საბოლოო პროექტისთვის ჩვენ გადავწყვიტეთ მოძრაობის სენსორების შუქების სიმულაცია. ისინი ააქტიურებენ არა მხოლოდ მაშინ, როდესაც ობიექტი ახლოს არის, არამედ აქტიურდება მხოლოდ დღის გარკვეულ მონაკვეთში. ჩვენ შეგვიძლია ამის მოდელირება FPGA (Basys3 დაფის) გამოყენებით. FPGA– ს გამოყენებისას ჩვენ მივცემთ უფლებას მომხმარებელს შეიყვანოს დრო, როდესაც მოძრაობის სენსორებს შეუძლიათ გააქტიურება და შემდეგ სენსორები გააგზავნიან სიგნალს იმის მიხედვით, თუ რომელი სენსორია იგი არის ამ ოთახში ან არეში ამ კონკრეტული შუქის ჩართვა. ჩვენ მოვახდინეთ ამის მოდელირება, რომელიც საშუალებას გვაძლევს მხოლოდ ერთი მოძრაობის სენსორი გააქტიურდეს მოცემულ დროს და შესაბამისად ჩავრთოთ მოცემული ნათურები. დროის შეზღუდვის გამო ჩვენ ვერ ვახერხებთ მომხმარებლის მიერ შეტანილი დროის გავლენას მოძრაობის სენსორის გააქტიურებაზე. თუმცა, ჩვენი ლოგიკის საფუძველი უნდა მისცეს ვინმეს ადვილად გაიმეოროს და გააუმჯობესოს იგი.

### ქვემოთ მოცემული ბმული გვიჩვენებს პროექტის ვიდეოს

drive.google.com/file/d/1FnDwKFfFFDo8mg25j1sW61lUyEqdavQG/view?usp=sharing

ნაბიჯი 1: საჭირო აღჭურვილობა

საჭირო აღჭურვილობა
საჭირო აღჭურვილობა

ამ პროექტისთვის დაგჭირდებათ შემდეგი:

-Basys3 დაფა

-USB to microusb კაბელი

-8 breadboard jumper მავთულები

-პურის დაფა

-2 დიფუზური LED

ნაბიჯი 2: Blackbox დიაგრამა/სასრული მდგომარეობის მანქანა

Blackbox დიაგრამა/სასრული მდგომარეობის მანქანა
Blackbox დიაგრამა/სასრული მდგომარეობის მანქანა
Blackbox დიაგრამა/სასრული მდგომარეობის მანქანა
Blackbox დიაგრამა/სასრული მდგომარეობის მანქანა

ეს შავი ყუთის დიაგრამა გვიჩვენებს საჭირო შეყვანას, რომელიც საჭიროა led ნათურების ჩართვისთვის. Hour input და Min input არის დრო, რომელიც მომხმარებელმა შეიტანა basys3 დაფაზე (კონცენტრატორების გამოყენებით). რაც შეეხება sw შეყვანას წარმოადგენს ოთახის რომელ ნაწილში არის მომხმარებელი (ისევ გადამრთველების გამოყენებით მდებარეობის ობიექტის გამოსახატავად).

FSM გვიჩვენებს გადასვლას ერთი ადგილიდან მეორე ოთახში, სადაც ობიექტი მდებარეობს მოცემულ დროს. სხვადასხვა ოთახში არის 4 განსხვავებული სენსორი, რომლებიც წარმოდგენილია როგორც (s1, s2, s3, s4). რომლებიც აკონტროლებენ გამოსავალს, ან შუქებს სხვადასხვა ოთახებში, მაგალითად შუქს (L1, L2, L3). სენსორების საწყისი მდგომარეობა არავის აღმოაჩენს, ამიტომ ყველა შუქი გამორთულია. შემდეგ მდგომარეობაზე გადასასვლელად (მდგომარეობა 1), s1- მ უნდა გამოავლინოს ვინმე, s2, s3 და s4 გამორთული იქნება. ეს გამოიტანს L1 (ჩართეთ ნათურა 1), L2 და L3 გამორთული იქნება. 2 მდგომარეობაზე გადასასვლელად 1 მდგომარეობიდან, s1, s3 და s4 უნდა იყოს გამორთული, s2 უნდა იყოს ჩართული. ეს ჩართავს L1 და L2. ამ მდგომარეობიდან შემდეგ მდგომარეობაზე გადასასვლელად s3 უნდა იყოს ჩართული და ყველა სხვა სენსორი გამორთული. ეს ჩართავს L2 და L3, L1 გამორთულია. საბოლოო მდგომარეობაზე გადასასვლელად S4 უნდა იყოს ჩართული და ყველა სხვა სენსორი გამორთული. ეს ჩართავს მხოლოდ L3- ს, ყველა სხვა შუქი გამორთული იქნება. თუ ადამიანი შემოდის ოთახში s4– დან და გამოდის s1– დან, ყველა ნაბიჯი იქნება საპირისპირო მიზნით.

ნაბიჯი 3: ციფრული საათი BlackBox

BlackBox ციფრული საათი
BlackBox ციფრული საათი

ჩვენ მიერ შექმნილი ციფრული საათის დანიშნულებაა, რომ სენსორების განათება არ გააქტიურდეს დღის განმავლობაში და იმუშაოს მხოლოდ იმ დროს, როდესაც მომხმარებელი შეიყვანს. ციფრული საათი იღებს საათს შეყვანისას და mins_in basys3 დაფაზე გადამრთველების გამოყენებით და იმისათვის, რომ შეძლოთ მისი დაფაზე დატვირთვა, თქვენ უნდა დააჭიროთ ღილაკს (led_btn), რათა ის აჩვენოს მას ბორტზე. ჩვენ ასევე დავამატეთ გადატვირთვის ღილაკი (rst_b), ასე რომ თქვენ შეგიძლიათ ხელახლა ატვირთოთ სხვა დრო. რადგან basys3– ს აქვს საკმარისი სივრცე ინფორმაციის 3 განსხვავებული შემთხვევის ჩვენების მიზნით, ჩვენ წამები განვახორციელეთ ფონზე. ამ მიზნით, ჩვენ განვახორციელეთ წამების გადამრთველი, ასე რომ ის მხოლოდ დროთა განმავლობაში გაიზრდება, როდესაც მომხმარებელი გადაწყვეტს (e_sec) შეყვანის ჩართვას basys3 დაფაზე. ციფრული საათის შიგნით შიდა ჩარჩო შედგება ფლიპ-ფლოპებისგან, რომლებიც ინახავს შეყვანის დროს და მრიცხველებს, რომლებიც ზრდის მომხმარებლის მიერ შეყვანის დროს მხოლოდ მაშინ, როდესაც (e_sec) ჩართულია. ჩვენ დავამატებთ კოდს, ასე რომ თქვენ შეგიძლიათ ნახოთ როგორ განხორციელდა ზუსტად.

ნაბიჯი 4: კომპონენტები ერთად და აღწერა

კომპონენტები ერთად და აღწერა
კომპონენტები ერთად და აღწერა
კომპონენტები ერთად და აღწერა
კომპონენტები ერთად და აღწერა

ზემოთ მოყვანილი სურათები აჩვენებს, თუ როგორ არის დაკავშირებული კომპონენტები ერთმანეთთან. იგი იწყება შეყვანის საათების და წუთების პირველი მიღებით. სიგნალები იმ შეყვანისგან იგზავნება მრიცხველ საათსა და მრიცხველზე, სადაც ის ამატებს ბიტებს ერთად, და გამოთვლითი სიგნალის მრიცხველებს ეგზავნება SSEG კომპონენტი, სადაც ის გარდაქმნის ბიტებს კონკრეტულ სიმბოლოებზე, რომლებიც ნაჩვენები იქნება basys3 დაფაზე. თუმცა, მრიცხველებიდან სიგნალი არ გაიგზავნება SSEG კომპონენტამდე, სანამ მომხმარებელი არ დააჭერს შეყვანის (led_btn) ეს გაკეთდა იმიტომ, რომ ჩვენ არ შევქმენით FSM ციფრული საათისათვის. ასევე, შეყვანილი დრო არ გაიზრდება სანამ შეყვანის გადამრთველი (e_sec) არ არის ჩართული, რადგან სხვაგვარად წამების მრიცხველი ყოველთვის გაუშვებდა ფონზე. მას შემდეგ, რაც მრიცხველის წამი მიაღწევს "59" -ს, ის სიგნალს გაუგზავნის წუთებს ისე, რომ იგი იზრდება წუთში, იგივე ხდება წუთიდან საათამდე. ასევე, არის მოძრაობის სენსორის შესასვლელი და სიგნალები იგზავნება FSM კომპონენტში, სადაც ის განსაზღვრავს რა მდგომარეობისკენ უნდა გადავიდეს სენსორის მიხედვით. მისი საწყისი მდგომარეობაა, როდესაც ყველა სენსორი გამორთულია. FSM– ის ყველა აღწერილობა აღწერილია მე –2 ნაბიჯში.

ნაბიჯი 5: კოდი

ნაბიჯი 6: მომავალი ცვლილებები

მომავალში, პროექტში LED– ების კომბინაციით ფაქტობრივი მოძრაობის სენსორების დამატება იქნება გაუმჯობესება. ასე რომ ჩვენ შეგვიძლია გავზარდოთ პროექტის სირთულე და ვნახოთ შევძლებთ თუ არა თანამედროვე მოძრაობის სინათლის სენსორის შექმნას. ეს უფრო მეტ პრობლემას შექმნის, რადგან თქვენ უნდა იფიქროთ ობიექტის სიახლოვეზეც ისე, რომ განათებაც შესაბამისად აინთოს. გარდა ამისა, ყველა სხვა ფუნქცია წინ არის. ასევე, ციფრული საათის ფუნქციონირების გაუმჯობესება FSM– ის გამოყენებით, ნაცვლად იმისა, რომ დაელოდოთ მომხმარებლის ჩართვას წამებში (e_sec). FSM ციფრული საათისათვის მოძრაობის სენსორის მსგავსი იქნება.

ნაბიჯი 7: დასკვნა

საერთო ჯამში, ეს პროექტი დაგვეხმარა უკეთ გაგებულიყო როგორ მუშაობს სასრული მდგომარეობის მანქანები. გარდა ამისა, FSM– ით თქვენ ყოველთვის უნდა გახსოვდეთ, რომ თქვენ უნდა იცოდეთ რა მდგომარეობაში ხართ და როდის გსურთ სხვა მდგომარეობის შეცვლა. სხვა სიტყვებით რომ ვთქვათ, თქვენ უნდა იცოდეთ სად ხართ მოცემულ დროს და სად იქნებით მოგვიანებით. იმის გათვალისწინებით, თუ რა ფაქტორები მოგცემთ საშუალებას (საშუალებები) გადავიდეთ სხვა მდგომარეობაში და რას აპირებს იქ მოხვედრისას (გამომავალი). ჩვენ ასევე ვისწავლეთ როგორ შეინახოთ ინფორმაცია basys3 დაფაზე, ფლიპ ფლოპების გამოყენებით, რომლებიც რეგისტრია და როგორ გავზარდოთ დრო მრიცხველების გამოყენებით, რომელიც ამატებს ორობითი რიცხვებს ერთად.

ნაბიჯი 8: ციტირება

Two_sseg.vhdl = universal_sseg_dec.vhd

რატნერი, ჯეიმსი და ჩენგ სამუელი…

გირჩევთ: