Სარჩევი:

მოძრაობის სენსორული LED: 8 ნაბიჯი
მოძრაობის სენსორული LED: 8 ნაბიჯი

ვიდეო: მოძრაობის სენსორული LED: 8 ნაბიჯი

ვიდეო: მოძრაობის სენსორული LED: 8 ნაბიჯი
ვიდეო: Датчик Движения. Схема подключения датчика движения. Как самостоятельно подключить датчик движения. 2024, ივლისი
Anonim
Image
Image

ფონი:

ოდესმე დაგავიწყდებათ შუქის ჩაქრობა, სანამ გახვალთ სამსახურში ან დასაძინებლად? ის საათები, როდესაც განათება ჩართულია, როდესაც თქვენ არ იყენებთ მათ, ნამდვილად გაზრდის ხარჯებს და ენერგიის დაკარგვას. მაგალითად, solarcity.com– ის თანახმად, მთელი ღამე განათების დატოვება ერთი კვირის განმავლობაში შეიძლება დაამატოთ 25 დოლარი თქვენს ელექტროენერგიის გადასახადზე! ჩვენი CPE133 პროექტისთვის, ჩვენ ვგეგმავთ მოძრაობის სენსორის შუქს, რომელიც ეხმარება ადამიანებს დაზოგონ ენერგია საკუთარ სახლებში და ეფექტურად გამოიყენონ თავიანთი შუქები.

ჩვენი სისტემა პრაქტიკაში:

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

სიმულაცია ბორტზე:

იმის დასადგენად, რომ ტაიმერი მუშაობს, ჩვენ შევცვალეთ ტაიმერი 1 წუთზე.

მასალები:

  • 1 Basys დაფა (შეგიძლიათ იპოვოთ აქ Digilent– დან)
  • 1 PIR მოძრაობის სენსორი (შეგიძლიათ იპოვოთ აქ ამაზონზე)
  • 1 დაფა და ნაკრები (ჩვენ გირჩევთ გამოიყენოთ ეს ამაზონიდან)
  • ნაკრებიდან ზემოთ

    • 1 LED
    • 3 ქალი მდე კაცი jumper კაბელები
    • 6 მამაკაციდან მამაკაცამდე მხტომელი კაბელი

ნაბიჯი 1: ტაიმერი

იმისათვის, რომ LED დარჩეს 1 წუთის განმავლობაში, ჩვენ ჯერ უნდა შევქმნათ ტაიმერი. Basys 3 დაფას აქვს 100MHz შიდა სიხშირე, რითაც 100 მილიონი ციკლი უდრის 1 წამს. ეს შემდეგ გამოიყენება როგორც ცვლადი, რომელიც მოქმედებს როგორც მაქსიმალური რიცხვი "t_cnt" - ისთვის. T_cnt იზრდება 1 -ით, რადგან Basys 3 დაფა ასრულებს ციკლს. 100 მილიონის ნიშნულის მიღწევის შემდეგ ის გადატვირთულია და სხვა ცვლადი, "წამი", გაიზრდება 1 -ით. ეს "წამიანი" ცვლადი წარმოადგენს გასული წამების რაოდენობას და როდესაც ეს ცვლადი 60 -ის ტოლია, სრული წუთი გავიდა.

დააკოპირეთ ქვემოთ მოყვანილი კოდი vhdl წყაროს ფაილში, სახელად ტაიმერი.

ერთეული COUNT_8B არის

პორტი (გადატვირთვა: std_logic;

CLK: std_logic- ში; T: out std_logic: = '0');

დასრულდება COUNT_8B;

არქიტექტურაში ჩემი_ COUNT_8B არის

მუდმივი max_count: მთელი რიცხვი: = (100000000); -სიგნალი t_cnt: std_logic_vector (7 ქვემოთ 0): = "00000000"; სიგნალი t_cnt: მთელი: = (0); პროცესის დაწყება (CLK, RESET, t_cnt) ცვლადი წმ: რიცხვი: = 0; დავიწყოთ თუ (მზარდი_ჯვარი (CLK)) შემდეგ თუ (RESET = '1') შემდეგ t_cnt <= (0); - წაშალე elsif (t_cnt = max_count) მაშინ- max_count არის 100 მილიონი რაც უდრის 1 წამს t_cnt <= (0); - აღადგენს შიდა საათს 0 წმ: = წმ + 1; - ზრდის ჩვენს 'ნელ საათს' 1-ით, თუ (წმ = 60) მაშინ- ერთხელ რომ მიაღწევს 60 წამს, მაშინ მიაღწია მაქსიმალურ დროს წმ: = 0; - აღადგენს "ნელ საათს" 0 T <= '1'; დაასრულე თუ; სხვაგან t_cnt <= t_cnt + 1; - ზრდის შიდა საათს T <= '0'; დაასრულე თუ; დაასრულე თუ; პროცესის დასრულება; დაასრულე ჩემი_ ანგარიში;

ნაბიჯი 2: ღილაკის ოპტიმიზაცია

LED
LED

მას შემდეგ, რაც სიხშირე Basys დაფებში იმდენად მაღალია (დაახლოებით 100 MHz), როდესაც თქვენ დააჭერთ იმას, რაც თქვენი აზრით მცირე დროა Basys დაფაზე, თქვენ მას დააჭერთ 100 000 -ჯერ. ეს იწვევს სინათლის სწრაფად ციმციმებას ჩართულ და გამორთულ მდგომარეობას შორის. ჩვენ შევეცადეთ ღილაკის ოპტიმიზაცია მდგომარეობის დიაგრამის შექმნით, რათა შემცირებულიყო ციმციმა.

D-flip-flops დაიტევს თითოეულ მდგომარეობას და შემდეგ ჩვენ დავაზუსტებთ მდგომარეობის გადასვლას პროცესის განცხადებაში.

დააკოპირეთ ქვემოთ მოცემული კოდი vhdl წყაროს ფაილში სახელწოდებით Button.

ბიბლიოთეკა IEEE; გამოიყენეთ IEEE. STD_LOGIC_1164. ALL;

ერთეულის ღილაკი არის

პორტი (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); დასრულების ღილაკი;

არქიტექტურა ღილაკის ქცევითია

ტიპი state_type არის (PRESSED, NP); სიგნალი PS, NS: state_type: = NP;

დაწყება

seq_proc: პროცესი (NS, clk) დაიწყება თუ (იზრდება_ ზღვარი (clk)) შემდეგ PS <= NS; დაასრულე თუ; პროცესის დასრულება seq_proc;

ns_proc: პროცესი (btn, PS)

დაწყების შემთხვევა PS არის, როდესაც NP => if (btn = '1') მაშინ NS <= დაპრესილი; E <= '1'; სხვა NS <= NP; E თუ (btn = '0') მაშინ NS <= NP; E <= '0'; სხვა NS <= დაპრესილი; E <= '0'; დაასრულე თუ; დასასრული საქმე; პროცესის დასრულება ns_proc;

დასრულება ქცევითი;

ნაბიჯი 3: LED

LED- ს აქვს ორი მდგომარეობა: OFF (ან IDLE) და ON. როგორც უკვე ითქვა, სახელმწიფოები ინახება d-flip-flop– ში. სინათლე ანათებს, თუ სენსორი ამოიცნობს მოძრაობას (S = 1) ან როდესაც დააჭირეთ ღილაკს (E = 1). LED გამორთულია ავტომატურად, თუ ტაიმერი მიაღწევს 1 წუთს (T = 1) ან ხელით ღილაკზე დაჭერისას (E = 1).

დააკოპირეთ ქვემოთ მოყვანილი კოდი vhdl წყაროს ფაილში, სახელად LED.

ერთეულის motion_sensored_light არის პორტი (S: STD_LOGIC; - sesnor; პორტი JA10/Pin G3 E: STD_LOGIC; - გარე ღილაკი მექანიკური ფუნქციისთვის; ცენტრალური ღილაკი T: STD_LOGIC; - როდესაც ტაიმერი მიაღწევს მაქსიმალურ დროს; ტაიმერის LED- დან: out STD_LOGIC; - მსუბუქი TRST: გარეთ STD_LOGIC; - აღადგენს ტაიმერს clk: STD_LOGIC- ში); - clk ფლიპ ფლოპისთვის, რომელიც იკავებს მდგომარეობას მოძრაობის_სენსორული_ნათლის ბოლოს;

არქიტექტურა მოძრაობის_გრძნობიარე_ სინათლის ქცევაა

ტიპი state_type არის (ST0, ST1); --ST0 = IDLE, ST1 = LED მაღალი

სიგნალი PS, NS: state_type: = ST0; - ახლანდელი სახელმწიფო და შემდეგი სახელმწიფო, იწყება ST0 IDLE- ში

დაწყება

- ფლიპ ფლოპის პროცესის ბლოკი- განაახლებს მდგომარეობას საათის ზრდის ზღვარზე seq_proc: იწყება პროცესი (NS, clk)- d ფლიპ ფლოპი, რომელიც ინახავს მდგომარეობას if (იზრდება_ ზღვარი (clk)) შემდეგ PS <= NS; დაასრულე თუ; პროცესის დასრულება seq_proc;

ns_proc: პროცესი (S, E, T, PS)

დაწყების შემთხვევა PS არის, როდესაც ST0 => LED <= '0'; - გამომავალი მდგომარეობის TRST <= '1'; თუ (S = '0' OR E = '1') მაშინ - შეყვანისას გადასვლა st0– დან st1 NS <= ST1; სხვა NS LED <= '1'; - შედეგები TRST <= '0'; if (E = '1' OR T = '1') მაშინ - შეყვანისას გადასვლას st1– დან st0 NS <= ST0; სხვაგან NS <= ST1; დაასრულე თუ; დასასრული საქმე; პროცესის დასრულება ns_proc;

დასრულება ქცევითი;

ნაბიჯი 4: ზედა ფაილი

ახლა ჩვენ ვაპირებთ ყველა სხვა ფაილის ერთ პორტში გადატანას.

დააკოპირეთ ქვემოთ მოყვანილი კოდი vhdl წყაროს ფაილში, სახელად Top_File.

ბიბლიოთეკა IEEE; გამოიყენეთ IEEE. STD_LOGIC_1164. ALL;

პირი Top_File არის

პორტი (S: in STD_LOGIC: = '1'; - sesnor; პორტი JA10/Pin G3 btn: in STD_LOGIC: = '0'; - გარე ღილაკი მექანიკური ფუნქციისთვის; ცენტრის ღილაკი LED: გარეთ STD_LOGIC; - მსუბუქი clk: STD_LOGIC); - clk ფლიპ ფლოპისთვის, რომელიც იკავებს მდგომარეობის დასრულებას Top_File;

არქიტექტურა Top_File არის ქცევითი

კომპონენტი COUNT_8B არის

პორტი (RESET: in std_logic: = '0'; CLK: in std_logic; T: out std_logic: = '0'); დასასრული კომპონენტი; კომპონენტი motion_sensored_light არის პორტი (S: STD_LOGIC; - sesnor; პორტი JA10/Pin G3 E: STD_LOGIC; - გარე ღილაკი მექანიკური ფუნქციისთვის; ცენტრალური ღილაკი T: STD_LOGIC; - როდესაც ტაიმერი აღწევს მაქსიმალურ დროს; ტაიმერის LED- დან: გარეთ STD_LOGIC; - მსუბუქი TRST: გარეთ STD_LOGIC; - აღადგენს ტაიმერს clk: STD_LOGIC- ში); - clk ფლიპ ფლოპისთვის, რომელიც ინარჩუნებს მდგომარეობის ბოლო კომპონენტს; კომპონენტის ღილაკი არის პორტი (btn: in STD_LOGIC; clk: in STD_LOGIC; E: out STD_LOGIC); დასასრული კომპონენტი; სიგნალი t_reached_c: std_logic; - სიგნალი r_time_c: std_logic; - სიგნალი button_c: std_logic;

დაწყება

ტაიმერი: COUNT_8B პორტის რუკა (RESET => r_time_c, CLK => CLK, T => t_reached_c); მოძრაობის_სენსორი: მოძრაობის_სენსორირებული_პორტის რუკა (S => S, E => button_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: ღილაკის პორტის რუკა (btn => btn, clk => clk, E => button_c); დასრულება ქცევითი;

ნაბიჯი 5: შეზღუდვების ფაილი

ახლა ჩვენ უნდა განვსაზღვროთ, სად იქნება ჩვენი შეყვანა და გამოსავალი დაფაზე.

დააკოპირეთ ქვემოთ მოცემული კოდი vhdl შეზღუდვების ფაილში სახელად შეზღუდვები.

## ეს ფაილი არის ზოგადი.xdc Basys3 rev B დაფისთვის ## გამოსაყენებლად პროექტში: ## - გაუკეთეთ კომენტარი გამოყენებული ქინძისთავების შესაბამისი ხაზებს ## - გადაარქვით სახელი პორტებს (თითოეულ სტრიქონში, get_ports– ის შემდეგ) შესაბამისად უმაღლესი დონის სიგნალის სახელები პროექტში

## საათის სიგნალი

set_property PACKAGE_PIN W5 [get_ports clk] set_property IOSTANDARD LVCMOS33 [get_ports clk] create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports clk] ## Switches #set_propertin PACKAGE set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {sw [0]}] #set_property PACKAGE_PIN V16 [get_ports {sw [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [1]}] #set_property PACKAGE_PIN sw16 [get] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {sw [2]}] #set_property PACKAGE_PIN W17 [get_ports {sw [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [3]}] #set_property PACKAGE_PIN W15 }] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {sw [4]}] #set_property PACKAGE_PIN V15 [მიიღეთ_პორტები {sw [5]}] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {sw [5]}] #Set_property PACKAGE_PIN W14 [6]}] #Set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {sw [6]}] #set_property PACKAGE_PIN W13 [get_ports {sw [7]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [7]}] #set_property PACKAGE_PIN V2 [get_ports {sw [8]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [8]}] #set_property PACKAGE_PIN T3 [get_ports {sw [9]}] #set_property IOST LVCMOS33 [მიიღეთ_პორტები {sw [9]}] #set_property PACKAGE_PIN T2 [get_ports {sw [10]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [10]}] #set_property PACKAGE_PIN R3 [get_ports {sw [11]}] # set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {sw [11]}] #set_property PACKAGE_PIN W2 [get_ports {sw [12]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [12]}] #set_property PACKAGE_PIN U1 [13] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {sw [13]}] #set_property PACKAGE_PIN T1 [get_ports {sw [14]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [14]}] #set_property PACKAGE_PIN R2 }] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {sw [15]}]

## ები

#set_property PACKAGE_PIN U16 [მიიღეთ_პორტები {led [0]}] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {led [0]}] #set_property PACKAGE_PIN E19 [get_ports {led [1]}] #set_property IOSTANDARD LVCMOS33 [get }] #set_property PACKAGE_PIN U19 [get_ports {led [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [2]}] #set_property PACKAGE_PIN V19 [get_ports {led [3]}] #set_property IOSTANDARD LVCMOS 2] led [5]}] #set_property PACKAGE_PIN U14 [get_ports {led [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [6]}] #set_property PACKAGE_PIN V14 [get_ports {led [7]}] #set_property IOSTANDARD LV get_ports {led [7]}] #set_property PACKAGE_PIN V13 [get_ports {led [8]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [8]}] #set_property PACKAGE_PIN V3 [get_ports {led [9]}] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {led [9]}] #set_property PACKAGE_PIN W3 [get_ports {led [10]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [10]}] #set_property PACKAGE_PIN [11]}] #Set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {led [11]}] #set_property PACKAGE_PIN P3 [მიიღეთ_პორტები {led [12]}] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {led [12]}] #კომპლექტი_მომგებიანი PACKAGE_P {led [13]}] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {led [13]}] #set_property PACKAGE_PIN P1 [get_ports {led [14]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [14]}] #set_property PACKAGE [get_ports {led [15]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [15]}] ## 7 სეგმენტის ჩვენება #set_property PACKAGE_PIN W7 [get_ports {seg [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {seg [0]}] #set_property PACKAGE_PIN W6 [მიიღეთ_პორტები {seg [1]}] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {seg [1]}] #set_property PACKAGE_PIN U8 [მიიღეთ_პორტები {seg [2]}] #Set_property IOSTA NDARD LVCMOS33 [მიიღეთ_პორტები {seg [2]}] #set_property PACKAGE_PIN V8 [მიიღეთ_პორტები {seg [3]}] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {seg [3]}] #set_property PACKAGE_PIN U5 [4]} { #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {seg [4]}] #set_property PACKAGE_PIN V5 [მიიღეთ_პორტები {seg [5]}] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {seg [5]}] #კომპლექტი_პროდუქტი PACKAGE_PIN }] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {seg [6]}]

#Set_property PACKAGE_PIN V7 [მიიღეთ_პორტები dp]

#Set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები dp]

#Set_property PACKAGE_PIN U2 [მიიღეთ_პორტები {ან [0]}]

#set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {ან [0]}] #კომპლექტი_მოძრაობა PACKAGE_PIN U4 [მიიღეთ_პორტები {ან [1]}] #კომპოზიცია }] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {ან [2]}] #კომპლექტი_პროპეტიცია PACKAGE_PIN W4 [მიიღეთ_პორტები {ან [3]}] #კომპლექტი_სქონელი IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {ან [3]}]

## ღილაკები

set_property PACKAGE_PIN 18 წლამდე [get_ports btn] set_property IOSTANDARD LVCMOS33 [get_ports btn] #set_property PACKAGE_PIN T18 [get_ports btnU] #set_property IOSTANDARD LVCMOS33 [get_ports btnU] #set_property PACKAGE_PIN W19 [get_ports btnL] #set_property IOSTANDARD LVCMOS33 [get_ports btnL] #set_property PACKAGE_PIN T17 [მიიღეთ_პორტები btnR] #კომპლექტი_მოძრაობა IOSTANDARD LVCMOS33 [მიიღეთ_პორტები btnR] #კომპლექტი_მოძრაობა PACKAGE_PIN U17 [მიიღეთ_პორტები btnD] #კომპლექტი_პროდუქტი IOSTANDARD LVCMOS33 [მიიღეთ_პორტები btnD]

## Pmod Header JA

## Sch name = JA1 #set_property PACKAGE_PIN J1 [get_ports {JA [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [0]}] ## Sch name = JA2 #set_property PACKAGE_PIN L2 [get_ports {JA [1] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {JA [1]}] ## Sch name = JA3 #set_property PACKAGE_PIN J2 [get_ports {JA [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [2]}] ## Sch = JA4 #set_property PACKAGE_PIN G2 [get_ports {JA [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [3]}] ## Sch name = JA7 #set_property PACKAGE_PIN H1 [get_ports {JA [4]}] #set_pro LVCMOS33 [მიიღეთ_პორტები {JA [4]}] ## Sch name = JA8 set_property PACKAGE_PIN K2 [get_ports LED] set_property IOSTANDARD LVCMOS33 [get_ports LED] ## Sch name = JA9 #set_property PACKAGE_PIN H2 [6]} {JA] set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {JA [6]}] ## Sch name = JA10 set_property PACKAGE_PIN G3 [get_ports S] set_property IOSTANDARD LVCMOS33 [get_ports S]

## Pmod სათაური JB

## Sch name = JB1 #set_property PACKAGE_PIN A14 [get_ports {JB [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [0]}] ## Sch name = JB2 #set_property PACKAGE_PIN A16 [get_ports {JB [1] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {JB [1]}] ## Sch name = JB3 #set_property PACKAGE_PIN B15 [get_ports {JB [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [2]}] # #Sch სახელი = JB4 #set_property PACKAGE_PIN B16 [მიიღეთ_პორტები {JB [3]}] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {JB [3]}] ## Sch name = JB7 #set_property PACKAGE_PIN A15 [მიიღეთ_პორტები {JB [4]}] #კომპლექტი LVCMOS33 [მიიღეთ_პორტები {JB [4]}] ## Sch name = JB8 #set_property PACKAGE_PIN A17 [get_ports {JB [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [5]}] ## Sch name = JB9 #set_property PACKAGE_PIN C15 [მიიღეთ_პორტები {JB [6]}] #კომპლექტი_პროპორციული IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {JB [6]}] ## Sch name = JB10 #set_property PACKAGE_PIN C16 [მიიღეთ_პორტები {JB [7]}] #ნაკრები_ საკუთრება IOSTANDARD LV JB [7]}]

## Pmod Header JC

## Sch name = JC1 #set_property PACKAGE_PIN K17 [get_ports {JC [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [0]}] ## Sch name = JC2 #set_property PACKAGE_PIN M18 [get_ports {JC [1] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {JC [1]}] ## Sch name = JC3 #set_property PACKAGE_PIN N17 [get_ports {JC [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [2]}] ## Sch = JC4 #set_property PACKAGE_PIN P18 [get_ports {JC [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [3]}] ## Sch name = JC7 #set_property PACKAGE_PIN L17 [get_ports {JC [4]}] #set_pro LVCMOS33 [მიიღეთ_პორტები {JC [4]}] ## Sch name = JC8 #set_property PACKAGE_PIN M19 [get_ports {JC [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [5]}] ## Sch name = JC9 #set_property PACKAGE_PIN P17 [მიიღეთ_პორტები {JC [6]}] #კომპლექტი_პროპორციული IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {JC [6]}] ## Sch name = JC10 #set_property PACKAGE_PIN R18 [მიიღეთ_პორტები {JC [7]}] #ნაკრები_სასარგებლო IOSTANDARD LV JC [7]}]

## Pmod სათაური JXADC

## Sch name = XA1_P #set_property PACKAGE_PIN J3 [get_ports {JXADC [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [0]}] ## Sch name = XA2_P #set_property PACKAGE_PIN J3]}] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {JXADC [1]}] ## Sch name = XA3_P #set_property PACKAGE_PIN M2 [get_ports {JXADC [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC #2] = XA4_P #set_property PACKAGE_PIN N2 [მიიღეთ_პორტები {JXADC [3]}] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {JXADC [3]}] ## Sch სახელი = XA1_N #set_property PACKAGE_PIN K3 [მიღება_პორტები] JARDI LVCMOS33 [მიიღეთ_პორტები {JXADC [4]}] ## Sch name = XA2_N #Set_property PACKAGE_PIN M3 [get_ports {JXADC [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [5]}] # #Sch სახელი = XA3_N PACKAGE_PIN M1 [მიიღეთ_პორტები {JXADC [6]}] #კომპლექტი_პროპორციული IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {JXADC [6]}] ## Sch name = XA4_N #set_property PACKAGE_PIN N1 [მიიღეთ_პორტები {JXADC [7]}] #set_33perty [მიიღეთ_პორტები {JXADC [7]}]

## VGA კონექტორი

#set_property PACKAGE_PIN G19 [get_ports {vgaRed [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaRed [0]}] #set_property PACKAGE_PIN H19 [get_ports {vgaRed [1]}] #set_property IOST }] #set_property PACKAGE_PIN J19 [get_ports {vgaRed [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaRed [2]}] #set_property PACKAGE_PIN N19 [get_ports {vgaRed [3]}] #set_property 2] vgaBlue [1]}] #set_property PACKAGE_PIN K18 [get_ports {vgaBlue [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaBlue [2]}] #set_property PACKAGE_PIN J18 [get_ports {vgaBlue] მიიღეთ_პორტები {vgaBlue [3]}] #set_property PACKAGE_PIN J17 [მიიღეთ_პორტები {vgaGreen [0]}] #set_property IOSTANDARD LVCMOS33 [get_p orts {vgaGreen [0]}] #set_property PACKAGE_PIN H17 [მიიღეთ_პორტები {vgaGreen [1]}] #set_property IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {vgaGreen [1]}] #set_property PACKAGE_PIN G17 [#_პორტები] vpertage LVCMOS33 [მიიღეთ_პორტები {vgaGreen [2]}] #კომპლექტი_პაკეტი PACKAGE_PIN D17 [მიიღეთ_პორტები {vgaGreen [3]}] #მითითებული_პროპორციები IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {vgaGreen [3]}] #set_property PACKAGE_PIN PARDVP31 PARTVINPARD Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]

## USB-RS232 ინტერფეისი

#Set_property PACKAGE_PIN B18 [get_ports RsRx] #set_property IOSTANDARD LVCMOS33 [get_ports RsRx] #set_property PACKAGE_PIN A18 [get_ports RsTx] #set_property IOSTANDARD LVCMOS33 [get_ports RsTx]

## USB HID (PS/2)

#set_property PACKAGE_PIN C17 [get_ports PS2Clk] #set_property IOSTANDARD LVCMOS33 [get_ports PS2Clk] #set_property PULLUP true [get_ports PS2Clk] #set_property PACKAGE_PIN B17 [get_ports PSP_PER2

## Quad SPI Flash

## გაითვალისწინეთ, რომ CCLK_0 არ შეიძლება განთავსდეს 7 სერიის მოწყობილობებში. მასზე წვდომა შეგიძლიათ ## STARTUPE2 პრიმიტიული გამოყენებით. #set_property PACKAGE_PIN D18 [მიიღეთ_პორტები {QspiDB [0]}] #კომპლექტი_პროპორციული IOSTANDARD LVCMOS33 [მიიღეთ_პორტები {QspiDB [0]}] #კომპლექტი_პროდუქტი PACKAGE_PIN D19 [მიიღეთ_პორტები {QspiDB [1]}] }] #set_property PACKAGE_PIN G18 [get_ports {QspiDB [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {QspiDB [2]}] #set_property PACKAGE_PIN F18 [get_ports {QspiDB [3]}] 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]

ნაბიჯი 6: PIR მოძრაობის სენსორის გაყვანილობა

გაყვანილობა PIR მოძრაობის სენსორისთვის
გაყვანილობა PIR მოძრაობის სენსორისთვის
გაყვანილობა PIR მოძრაობის სენსორისთვის
გაყვანილობა PIR მოძრაობის სენსორისთვის

PIR მოძრაობის სენსორს აქვს სამი ქინძისთავები: ძალა, gnd და სიგნალიზაცია შესაბამისად (იხ. პირველი სურათი). ამ ინსტრუქციებში შემოთავაზებულ მოძრაობის სენსორს შეუძლია პირდაპირ შეაერთოს პურის დაფაზე. მაგრამ სენსორისთვის, რომელსაც ჩვენ ვიყენებდით, ჩვენ გვჭირდებოდა მავთულის გაჭრა და მოხსნა, შემდეგ კი ბოლოების შედუღება, რათა არ გაფუჭებულიყო. პურის დაფაზე ჩასვით მამაკაცი მდედრობითი მხტუნავი მავთულები სერიაში დენის და დაფის ქინძისთავებით, შემდეგ კი მამაკაციდან მამრობითი მხტუნავის მავთულები სერიაში განგაშის პინით (იხ. მეორე სურათი).

ნაბიჯი 7: LED- ის გაყვანილობა Breadboard- ში

LED- ის გაყვანილობა Breadboard- ში
LED- ის გაყვანილობა Breadboard- ში
LED- ის გაყვანილობა Breadboard- ში
LED- ის გაყვანილობა Breadboard- ში

შეაერთეთ LED პურის დაფაზე. ჩადეთ შავი მამრობითი სქესის მამაკაცის ჯუმბერის კაბელი სერიაში LED– ის მოკლე ბილიკით. შემდეგ შეაერთეთ სხვადასხვა ფერის მამრობითი და მამრობითი ჯუმბერის კაბელი სერიაში LED- ის გრძელი ტყვიით.

ნაბიჯი 8: Basys Board Connections

Basys Board Connections
Basys Board Connections

შეაერთეთ PIR მოძრაობის სენსორის ქალი ბოლოები 5 ვოლტიანი ძაბვის წყაროს ბაზის დაფაზე. შემდეგ შეაერთეთ მამრობითი LED მიწის მავთული გვერდითი პორტის ადგილზე, შემდეგ სიგნალიზაციის მავთული PIR მოძრაობის სენსორიდან და შემდეგ LED შეყვანის მავთული (როგორც ჩანს სურათზე).

გირჩევთ: