תוכן עניינים:

LED המורגש בתנועה: 8 שלבים
LED המורגש בתנועה: 8 שלבים

וִידֵאוֹ: LED המורגש בתנועה: 8 שלבים

וִידֵאוֹ: LED המורגש בתנועה: 8 שלבים
וִידֵאוֹ: Карл Фристон: «Мета» принцип свободной энергии [ЧАСТЬ 1!] 2024, נוֹבֶמבֶּר
Anonim
Image
Image

רקע כללי:

האם אי פעם שכחת לכבות אור לפני שאתה יוצא לשיעור או לעבודה או לפני שאתה הולך לישון? השעות האלו כשהאורות דולקים כשאינך משתמש בהן יכולות באמת להצטבר בעלות ובאובדן אנרגיה. לדוגמה, על פי solarcity.com, השארת האורות דולקים במשך כל הלילה למשך שבוע יכולה להוסיף 25 $ לחשבון החשמל שלך! עבור פרויקט CPE133 שלנו, אנו מתכננים אור חיישן תנועה שיעזור לאנשים לחסוך באנרגיה בבתיהם ולהשתמש באורות שלהם ביעילות.

המערכת שלנו בפועל:

בפועל, האורות נדלקים רק כאשר חיישן מזהה תנועה בחדר. אז האורות יישארו דולקים למשך זמן מוגדר, כמו בערך 30 דקות, ואז יכבו באופן אוטומטי. אבל נניח שרק עברת או רצית לעזוב את החדר מוקדם לפני שהזמן שנקבע הסתיים. במקרים אלה, התקנו כפתור שבו תוכל להדליק או לכבות את האורות באופן ידני. שים לב שהאורות יישארו דולקים למשך 30 דקות גם כשהאורות מופעלים באופן ידני או אוטומטי (אלא אם כן האורות נכבים באופן ידני).

סימולציה על הסיפון:

כדי לראות שהטיימר עובד שינינו את הטיימר לדקה אחת.

חומרים:

  • לוח Basys 1 (אתה יכול למצוא אותו כאן מ- Digilent)
  • חיישן תנועה PIR אחד (אתה יכול למצוא אותו כאן באמזון)
  • קרש לחם וערכה (אנו ממליצים להשתמש באחת מבית אמזון)
  • מהערכה למעלה

    • 1 LED
    • 3 כבלי מגשר נקבה לגבר
    • 6 כבלי מגשר זכר לגבר

שלב 1: טיימר

על מנת שה- LED יישאר דולק במשך דקה אחת, עלינו ליצור תחילה טיימר. לוח Basys 3 בעל תדר פנימי של 100MHz ובכך הופך 100 מיליון מחזורים השווים לשנייה. לאחר מכן הוא משמש כמשתנה שיפעל כמספר מרבי עבור "t_cnt". T_cnt עולה ב -1 כאשר לוח Basys 3 משלים מחזור. ברגע שהוא יגיע לסף 100 מיליון הוא יתאפס ומשתנה אחר, "שניות", יגדל ב -1. משתנה "שניות" זה מייצג את מספר השניות שחלפו וברגע שהמשתנה הזה שווה ל -60, חלפה דקה שלמה.

העתק את הקוד למטה לקובץ מקור vhdl בשם טיימר.

הישות COUNT_8B היא

port (RESET: ב- std_logic;

CLK: ב- std_logic; T: out std_logic: = '0');

סיום COUNT_8B;

הארכיטקטורה my_count של COUNT_8B היא

max_count קבוע: מספר שלם: = (100000000); --signal t_cnt: std_logic_vector (7 downto 0): = "00000000"; אות t_cnt: מספר שלם: = (0); התחל בתהליך (CLK, RESET, t_cnt) משתנה sec: מספר שלם: = 0; התחל אם (rising_edge (CLK)) ואז אם (RESET = '1') ואז t_cnt <= (0); - נקה elsif (t_cnt = max_count) ואז- max_count הוא 100 מיליון שזה שווה לשנייה t_cnt <= (0); - מאפס את השעון הפנימי ל 0 שניות: = sec + 1; - מגדיל את 'השעון האיטי' שלנו ב- 1 אם (sec = 60) ואז- ברגע שהוא מגיע ל -60 שניות אז הוא הגיע לשעה המרבית sec: = 0; - מאפס את "השעון האיטי" ל- 0 T <= '1'; סוף אם; אחרת t_cnt <= t_cnt + 1; - מגדיל את השעון הפנימי T <= '0'; סוף אם; סוף אם; סוף תהליך; סיים את my_count;

שלב 2: אופטימיזציה של לחצנים

לד
לד

מכיוון שהתדירות בלוחות Basys כל כך גבוהה (בסביבות 100 מגהרץ) כאשר אתה לוחץ על מה שלדעתך הוא פרק זמן קצר ללוח Basys היית לוחץ עליו 100, 000 פעמים. זה גורם לאור להבהב בין מצב ההדלקה והכיבוי במהירות. ניסינו לייעל את הכפתור על ידי יצירת תרשים מצב להפחתת ההבהובים.

הכפכפים d יחזיקו כל מצב ואז נציין את מעברי המצב בהצהרת התהליך.

העתק את הקוד למטה לקובץ מקור של vhdl בשם Button.

ספריית IEEE; השתמש ב- IEEE. STD_LOGIC_1164. ALL;

לחצן ישות הוא

יציאה (btn: ב- STD_LOGIC; clk: ב- STD_LOGIC; E: החוצה STD_LOGIC); כפתור סיום;

ארכיטקטורה התנהגות הכפתור היא

סוג state_type הוא (PRESSED, NP); אות PS, NS: state_type: = NP;

התחל

seq_proc: תהליך (NS, clk) מתחיל אם (rising_edge (clk)) ואז PS <= NS; סוף אם; סיום תהליך seq_proc;

ns_proc: תהליך (btn, PS)

התחל במקרה PS כאשר NP => if (btn = '1') אז NS <= PRESSED; E <= '1'; אחר NS <= NP; E אם (btn = '0') אז NS <= NP; E <= '0'; אחר NS <= PRESSED; E <= '0'; סוף אם; מקרה סיום; סיום תהליך ns_proc;

סוף התנהגותי;

שלב 3: LED

לד LED יש שני מצבים: OFF (או סרק) ו- ON. כפי שנאמר קודם לכן, המדינות מאוחסנות בכפכף. הנורה תפנה אם החיישן מזהה תנועה (S = 1) או כאשר לוחצים על כפתור (E = 1). הנורית תיכבה אוטומטית אם הטיימר יגיע לדקה אחת (T = 1) או ידנית בעת לחיצה על כפתור (E = 1).

העתק את הקוד למטה לקובץ מקור vhdl בשם LED.

ישות motion_sensored_light היא יציאה (S: ב- STD_LOGIC; - sesnor; Port JA10/Pin G3 E: ב- STD_LOGIC; - כפתור חיצוני לתפקוד ידני; לחצן מרכז T: ב- STD_LOGIC; - כאשר הטיימר מגיע לזמן מקסימלי; מנורת הטיימר: out STD_LOGIC; - TRST קל: out STD_LOGIC; - אפס את שעון הטיימר: ב- STD_LOGIC); - clk לכפכפים שמחזיקים את המצבים סוף motion_sensored_light;

ארכיטקטורה ההתנהגות של תנועה_מסננת_אור היא

סוג state_type הוא (ST0, ST1); --ST0 = סרק, ST1 = LED גבוה

אות PS, NS: state_type: = ST0; - המדינה הנוכחית והמדינה הבאה, מתחילה ב- ST0 IDLE

התחל

- בלוק תהליכים של כפכפים- מצב עדכונים בקצה העליה של השעון seq_proc: תהליך (NS, clk) מתחיל- d flip-flop שמחזיק מצבים אם (עולה_קצה (clk)) ואז PS <= NS; סוף אם; סיום תהליך seq_proc;

ns_proc: תהליך (S, E, T, PS)

התחל במקרה PS כאשר ST0 => LED <= '0'; - יציאות עבור מצב סרק TRST <= '1'; אם (S = '0' או E = '1') אז - תשומות למעבר מ- st0 ל- st1 NS <= ST1; אחר NS LED <= '1'; - יציאות עבור מצב TRST <= '0'; אם (E = '1' או T = '1') אז - קלט למעבר מ- st1 ל- st0 NS <= ST0; אחר NS <= ST1; סוף אם; מקרה סיום; סיום תהליך ns_proc;

סוף התנהגותי;

שלב 4: קובץ עליון

עכשיו אנחנו הולכים למפות את כל הקבצים האחרים שלנו לאחד.

העתק את הקוד למטה לקובץ מקור vhdl בשם Top_File.

ספריית IEEE; השתמש ב- IEEE. STD_LOGIC_1164. ALL;

הישות Top_File היא

יציאה (S: ב- STD_LOGIC: = '1'; - sesnor; Port JA10/Pin G3 btn: ב- STD_LOGIC: = '0'; - כפתור חיצוני לתפקוד ידני; לחצן מרכז כפתור: החוצה STD_LOGIC; - נקישה קלה: ב- STD_LOGIC); - clk לכפכפים שמחזיקים את מדינות סוף Top_File;

ארכיטקטורה ההתנהגות של Top_File היא

רכיב COUNT_8B הוא

port (RESET: in std_logic: = '0'; CLK: in std_logic; T: out std_logic: = '0'); רכיב קצה; רכיב motion_sensored_light הוא יציאה (S: ב- STD_LOGIC; - sesnor; Port JA10/Pin G3 E: ב- STD_LOGIC; - כפתור חיצוני לתפקוד ידני; לחצן מרכז T: ב- STD_LOGIC; - כאשר הטיימר מגיע לזמן מקסימלי; מנורת הטיימר: out STD_LOGIC; - TRST קל: out STD_LOGIC; - אפס את שעון הטיימר: ב- STD_LOGIC); - clk לכפכפים שמחזיקים את רכיב סוף המצבים; כפתור הרכיב הוא Port (btn: ב- STD_LOGIC; clk: ב- STD_LOGIC; E: out STD_LOGIC); רכיב קצה; אות t_reached_c: std_logic; - אות r_time_c: std_logic; - signal button_c: std_logic;

התחל

טיימר: מפת יציאה COUNT_8B (RESET => r_time_c, CLK => CLK, T => t_reached_c); motion_sensor: motion_sensored_light map map (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 constraints בשם אילוצים.

## קובץ זה הוא קובץ 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_property PACKAGE_PIN V17 [17] set_property IOSTANDARD LVCMOS33 [get_ports {sw [0]}] #set_property PACKAGE_PIN V16 [get_ports {sw [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [1]}] #set_property PACKAGE_PIN W16 [get_port] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [2]}] #set_property PACKAGE_PIN W17 [get_ports {sw [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [3]}] #set_property PACKAGE_PINs w15 [get_port]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [4]}] #set_property PACKAGE_PIN V15 [get_ports {sw [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [5]}] #set_property PACKAGE_PIN W14 [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {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 LVCMOS33 [get_ports {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 [get_ports {sw [11]}] #set_property PACKAGE_PIN W2 [get_ports {sw [12]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [12]}] #set_property PACKAGE_PIN U1 [get_ports] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [13]}] #set_property PACKAGE_PIN T1 [get_ports {sw [14]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [14]}] #set_property PACKAGE_PIN R2 [get_port]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [15]}]

## נוריות

#set_property PACKAGE_PIN U16 [get_ports {led [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [0]}] #set_property PACKAGE_PIN E19 [get_ports {led [1]}] #set_property IOSTANDARD LVCMOS33 [get_port] }] #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 LVCMOS33 [3]}] #set_property PACKAGE_PIN W18 [get_ports {led [4]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [4]}] #set_property PACKAGE_PIN U15 [get_ports {led [5]}] #set_property IOSTANDARD LVCMOS33 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 LVC 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 [get_ports {led [9]}] #set_property PACKAGE_PIN W3 [get_ports {led [10]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [10]}] #set_property PACKAGE_PIN U3

#set_property PACKAGE_PIN V7 [get_ports dp]

#set_property IOSTANDARD LVCMOS33 [get_ports dp]

#set_property PACKAGE_PIN U2 [get_ports {an [0]}]

#set_property IOSTANDARD LVCMOS33 [get_ports {an [0]}] #set_property PACKAGE_PIN U4 [get_ports {an [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {an [1]}] #set_property PACKAGE_PIN V4 [get_port] }] #set_property IOSTANDARD LVCMOS33 [get_ports {an [2]}] #set_property PACKAGE_PIN W4 [get_ports {an [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {an [3]}]

##כפתורים

set_property PACKAGE_PIN U18 [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 [get_ports btnR] #set_property IOSTANDARD LVCMOS33 [get_ports btnR] #set_property PACKAGE_PIN U17 [get_ports btnD] #set_property IOSTANDARD LVCMOS33 [get_ports 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 [get_ports {JA [1]}] ## Sch name = JA3 #set_property PACKAGE_PIN J2 [get_ports {JA [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [2]}] # #שם = 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]}] IST_pro LVCMOS33 [get_ports {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 [get_ports { #A] [6] set_property IOSTANDARD LVCMOS33 [get_ports {JA [6]}] ## Sch name = JA10 set_property PACKAGE_PIN G3 [get_ports S] set_property IOSTANDARD LVCMOS33 [get_ports S]

## Pmod Header 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 [get_ports {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 [get_ports {JB [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [3]}] ## Sch name = JB7 #set_property PACKAGE_PIN A15 [get_ports {JB [4]}] IST_ LVCMOS33 [get_ports {JB [4]}] ## Sch name = JB8 #set_property PACKAGE_PIN A17 [get_ports {JB [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [5]}] ## Sch שם = JB9 #set_property PACKAGE_PIN C15 [get_ports {JB [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [6]}] ## Sch name = JB10 #set_property PACKAGE_PIN C16 [get_ports {JB [7]}] #set_property IOSTANDARD LVCM 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 [get_ports {JC [1]}] ## Sch name = JC3 #set_property PACKAGE_PIN N17 [get_ports {JC [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [2]}] # #שם = 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]}] IST_pro LVCMOS33 [get_ports {JC [4]}] ## Sch name = JC8 #set_property PACKAGE_PIN M19 [get_ports {JC [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [5]}] ## Sch שם = JC9 #set_property PACKAGE_PIN P17 [get_ports {JC [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [6]}] ## Sch name = JC10 #set_property PACKAGE_PIN R18 [get_ports {JC [7]}] #set_property IOSTANDARD LVCM JC [7]}]

## Pmod Header 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 L3 [get_port] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [1]}] ## Sch name = XA3_P #set_property PACKAGE_PIN M2 [get_ports {JXADC [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC#] = XA4_P #set_property PACKAGE_PIN N2 [get_ports {JXADC [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [3]}] ## Sch name = XA1_N #set_property PACKAGE_PIN K3 [get_ports {JXAD] #JXAD] LVCMOS33 [get_ports {JXADC [4]}] ## Sch name = XA2_N #set_property PACKAGE_PIN M3 [get_ports {JXADC [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [5]}] ## שם = XA3_N PACKAGE_PIN M1 [get_ports {JXADC [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [6]}] ## Sch name = XA4_N #set_property PACKAGE_PIN N1 [get_ports {JXADC [7]}] #set_property [get_ports {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_propert_OST_VS [ISTAND] }] #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 [v_RED_VROS_OST_OST_OST_OST_OST_OST_OST] 3]}] #set_property PACKAGE_PIN N18 [get_ports {vgaBlue [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaBlue [0]}] #set_property PACKAGE_PIN L18 [get_ports {vgaBlue [1]}] set 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 {vgaBluOST [v3Blue] [pro] get_ports {vgaBlue [3]}] #set_property PACKAGE_PIN J17 [get_ports {vgaGreen [0]}] #set_property IOSTANDARD LVCMOS33 [get_p אורטים {vgaGreen [0]}] #set_property PACKAGE_PIN H17 [get_ports {vgaGreen [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaGreen [1]}] #set_property PACKAGE_PIN G17 [get_ports {vgaGOST_pro] LVCMOS33 [get_ports {vgaGreen [2]}] #set_property PACKAGE_PIN D17 [get_ports {vgaGreen [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaGreen [3]}] #set_property PACKAGE_PIN P19_ get_port_get_port_get_port] 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 PS2Data] #set_POS_PORT_POS_PORT_POS_PORT_POS_PARTS_POS_PARTS_PARTS

## פלאש SPI מרובע

## שים לב שלא ניתן למקם CCLK_0 במכשירי 7 סדרות. אתה יכול לגשת אליו באמצעות הפרימיטיבי ## STARTUPE2. #set_property PACKAGE_PIN D18 [get_ports {QspiDB [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {QspiDB [0]}] #set_property PACKAGE_PIN D19 [get_ports {QspiDB [1]}] #set_property [LIST_property] }] #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]}] #set_pro 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 בלוח הלחם

חיווט הנורית בלוח הלחם
חיווט הנורית בלוח הלחם
חיווט הנורית בלוח הלחם
חיווט הנורית בלוח הלחם

חבר את הנורית ללוח הלחם. הכנס כבל מגשר זכר לזכר בסדרה עם הכבל הקצר של הנורית. לאחר מכן חבר כבל מגשר זכר לגבר בצבעים שונים בסדרה עם ההובלה הארוכה של הנורית.

שלב 8: חיבורי לוח בסיסים

חיבורי לוח Basys
חיבורי לוח Basys

חבר את הקצוות הנקביים של חיישן התנועה PIR למקור המתח של 5 וולט בלוח הבסיס. לאחר מכן חבר את חוט הארקה LED הזכר לקרקעית הנמל הצדדי ואז את חוט האזעקה מחיישן התנועה PIR ולאחר מכן את חוט הכניסה LED (כפי שניתן לראות בתמונה).

מוּמלָץ: