Агуулгын хүснэгт:

Эрчим хүчний хэмнэлттэй хөдөлгөөнийг идэвхжүүлсэн гудамжны гэрэл: 8 алхам
Эрчим хүчний хэмнэлттэй хөдөлгөөнийг идэвхжүүлсэн гудамжны гэрэл: 8 алхам

Видео: Эрчим хүчний хэмнэлттэй хөдөлгөөнийг идэвхжүүлсэн гудамжны гэрэл: 8 алхам

Видео: Эрчим хүчний хэмнэлттэй хөдөлгөөнийг идэвхжүүлсэн гудамжны гэрэл: 8 алхам
Видео: 125 ХАМГИЙН ШИНЭЧИЛЭГ ЦАХИЛГААН ТЭЭВР, ХУВИЙН ТЭЭВР 2024, Арваннэгдүгээр
Anonim
Эрчим хүчний хэмнэлттэй хөдөлгөөнийг идэвхжүүлсэн гудамжны гэрэл
Эрчим хүчний хэмнэлттэй хөдөлгөөнийг идэвхжүүлсэн гудамжны гэрэл

Энэхүү төслийн зорилго нь хамт олны эрчим хүч, санхүүгийн нөөцийг хэмнэх ямар нэгэн зүйлийг бий болгох явдал байв. Motion идэвхжүүлсэн гудамжны гэрэл нь эдгээр хоёр зүйлийг хийх болно. Улс даяар эрчим хүчийг хоосон гудамжийг гэрэлтүүлэх гудамжны гэрэлд зарцуулж байна. Манай гудамжны гэрэлтүүлгийн систем нь гэрлийг зөвхөн шаардлагатай үед асааж, олон нийтийн мөнгийг хэмнэж өгдөг. Хөдөлгөөн мэдрэгчийг ашиглан машин зөвхөн машин байгаа үед л гэрлийг асаадаг. Мөн явган зорчигчдын аюулгүй байдлыг хангах үүднээс гудамжинд байгаа бүх гэрлийг асаах товчлуурыг ажиллууллаа. Дараахь алхамууд нь бид төслийнхөө жижигрүүлсэн загварыг Vivado болон Basys 3 самбар ашиглан хэрхэн бүтээж, бүтээсэн талаар танд хэлэх болно.

Алхам 1: Системийн хар хайрцаг

Системийн хар хайрцаг
Системийн хар хайрцаг

Бид энэ төслийг энгийн хар хайрцагны диаграм зурах замаар эхлүүлсэн. Хар хайрцагны диаграм нь бидний шаардлагатай бүх процессыг дуусгахад шаардагдах оролт, гаралтыг харуулдаг. Бид загвараа аль болох энгийн, энгийн байлгахыг хичээсэн. Манай системийн гурван оролтонд хөдөлгөөн мэдрэгч автобус (бидний жижигрүүлсэн загварт 4 ширхэг), явган зорчигчийг дарах товчлуур, цагийн оролт багтсан болно. Нөгөө талд бидний ганц гаралт бол манай гудамжны гэрлийг илэрхийлдэг LED гэрэлтэй автобус юм. Энэ загварын хувьд бид 16 гудамжны гэрлийн хувилбарыг ашигласан бөгөөд энэ нь Basys 3 самбар дээрх LED гаралтын хамгийн их тоо юм. Эцэст нь энэ диаграмыг ашиглан бид зохих оролт, гаралттай Vivado төсөл, эх сурвалж, хязгаарлалтын файлуудаа үүсгэх боломжтой болсон.

Алхам 2: бүрэлдэхүүн хэсгүүд

Бүрэлдэхүүн хэсгүүд
Бүрэлдэхүүн хэсгүүд
Бүрэлдэхүүн хэсгүүд
Бүрэлдэхүүн хэсгүүд

Энэ алхамд бид хар хайрцгийн диаграмыг бүрдүүлдэг бүрэлдэхүүн хэсгүүдийг илүү нарийвчлан судалж байна. Бидний анхны бүрэлдэхүүн хэсэг бол D flip-flops агуулсан VHDL эх файл юм. D flip-flops нь цагийн зүүний ирмэг дээр байгаа мэдрэгчүүдээс тэдэнд өгч буй дохиог авч, дараагийн өгөгдөл хүртэл хадгалдаг. Энэ нь бидний мэдрэмтгий хөдөлгөөн мэдрэгчийг гаралтын LED -ийг "анивчих" -аас хамгаалдаг. Түүнчлэн, товчлуурыг дарсны дараа LED-ийг ойролцоогоор 5-7 секундын турш асаахын тулд бид товчлуурын оролтын дохио дээр ганц D товчлуур тавьдаг. Бид мөн үүнийг цаг хуваагчаар дамжуулсан.

clk_div2 аж ахуйн нэгж бол Порт (clk: in std_logic; sclk: out std_logic); clk_div2 төгсгөл;

clk_div2 -ийн my_clk_div архитектур нь юм

тогтмол max_count: бүхэл тоо: = (300000000); дохио tmp_clk: std_logic: = '0'; my_div: process (clk, tmp_clk) хувьсагчийг эхлүүлэх div_cnt: integer: = 0; эхлэх (эхлэх_хүрээ (clk)) дараа нь (div_cnt = MAX_COUNT) бол tmp_clk <= tmp_clk биш; div_cnt: = 0; өөр div_cnt: = div_cnt + 1; хэрэв дуусгавар бол; хэрэв дуусгавар бол; sclk <= tmp_clk; my_div процессыг дуусгах; my_clk_div -ийг дуусгах;

Энэхүү диаграм дахь бидний эцсийн бүрэлдэхүүн хэсэг бол оролтын дохионы тохиргоонд суурилсан гаралтын нөхцлийг агуулсан зан үйлийн VHDL эх файл юм.

Алхам 3: D Flip-Flops

D Flip-Flops
D Flip-Flops

Оролтын дохионд хавсаргасан дөрвөн товшуур нь манай системийн үйл ажиллагаанд чухал үүрэгтэй. Өмнө дурьдсанчлан, мэдрэмтгий хөдөлгөөн мэдрэгч, дарж дарах товчлууртай бол товчлуурууд нь түгжигч ашиглан бидний оролтын дохиог зөвхөн цагийн зүүний ирмэг дээр гаргадаг. Энэхүү дараалсан логик нь бидний гудамжны гэрэл хурдан хөдөлснөөс хойш тодорхой хугацаанд асаж болно гэсэн үг юм. D-Flip Flop кодлох нь маш энгийн:

beginprocess (CLK) эхэлнэ, хэрэв yüksох_хэмжээ (CLK), дараа нь Q <= D; хэрэв дуусгавар бол; үйл явцыг дуусгах;

Бүх зүйлийг ганц if if хэлбэрээр нэгтгэж болно. Энэ хэсгийг авсны дараа бид шаардлагатай бүх дөрвөн товчлуурыг агуулсан бүтцийн VHDL эх файлыг үүсгэсэн.

DFF0 эхлэх: DFF портын зураг (CLK => CLK, D => D (0), Q => Q (0)); DFF1: DFF порт газрын зураг (CLK => CLK, D => D (1), Q => Q (1)); DFF2: DFF порт газрын зураг (CLK => CLK, D => D (2), Q => Q (2)); DFF3: DFF порт газрын зураг (CLK => CLK, D => D (3), Q => Q (3));

зан үйлийн төгсгөл;

Энэ нь системийн бүх бүрэлдэхүүн хэсгүүдийг илүү цэвэр, цэгцтэй нэгтгэдэг манай мастер бүтцийн файлыг хадгалахад тусалдаг.

Алхам 4: нөхцөлт

Кодыг авсаархан, үр ашигтай байлгахын тулд бид бүх нөхцлийг нэг тохиолдлын мэдэгдэлд бичсэн. Бидний жижигрүүлсэн загварын хувьд хөдөлгөөнт мэдрэгч бүр 4 LED -ийн бүлгийг хариуцдаг тул бид LED гаралтын 16 тохируулгатай байж болно.:

тохиолдолд NMS бол "1111" => LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED <= "1111111111111111"; төгсгөлийн тохиолдол;

Алхам 5: Хязгаарлалт

Vivado ашиглан оролт, гаралтыг зөв тодорхойлохын тулд та ашиглаж буй бүх порт, товчлуур, LED, цагийг харуулсан хязгаарлалтын файлыг хэрэгжүүлэх ёстой.

set_property PACKAGE_PIN W5 [get_ports CLK] set_property IOSTANDARD LVCMOS33 [get_ports CLK]

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_ports] 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 [get_ports {LED [3]}) 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 [get_ports {LED [5]}] set_proper PACK LED [6]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [6]}] set_property PACKAGE_PIN V14 [get_ports {LED [7]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [7]}] LED_proper PACKAGE_PIN 8]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [8]}] set_property PACKAGE_PIN V3 [get_ports {LED [9]}] set_property IO STANDARD 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 [get_ports {LED_11] [get_ports {LED [11]}] set_property PACKAGE_PIN P3 [get_ports {LED [12]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [12]}] set_property PACKAGE_PIN N3 [get_ports {LED [13]}] set_properVC_OOS {LED [13]}] set_property PACKAGE_PIN P1 [get_ports {LED [14]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [14]}] set_property PACKAGE_PIN L1 [get_ports {LED [15]}] set_property LEDOM [15]}]

set_property PACKAGE_PIN U18 [get_ports BTN] set_property IOSTANDARD LVCMOS33 [get_ports BTN]

set_property PACKAGE_PIN A14 [get_ports {MS [0]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [0]}] B15 [get_ports {MS [2]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [2]}] set_property PACKAGE_PIN B16 [get_ports {MS [3]}] set_property IOSTANDARD LVCMOS33 [get_ports {MS [3]}]

Алхам 6: Үндсэн эх файл

Энэхүү үндсэн файлд бид өмнө дурдсан бүх бүрэлдэхүүн хэсгүүдийн эх файлуудыг нэгтгэдэг. Энэ файл нь ялгаатай бүрэлдэхүүн хэсгүүдийг нэгтгэсэн бүтцийн кодын үүрэг гүйцэтгэдэг.

Master_Final_Project аж ахуйн нэгж бол порт (BTN: STD_LOGIC; CLK: STD_LOGIC; MS: STD_LOGIC_VECTOR (3 уруу 0 хүртэл); LED: STD_LOGIC_VECTOR (15 уруу 0 хүртэл)); Master_Final_Project -ийг дуусгах;

Master_Final_Project архитектурын зан төлөв

final_project нь Port (-CLK: STD_LOGIC; NMS: STD_LOGIC_VECTOR (3 уруу 0); BTN: STD_LOGIC; төгсгөлийн бүрэлдэхүүн хэсэг;

Final_DFF бүрэлдэхүүн хэсэг нь

Порт (CLK: STD_LOGIC дотор; D: STD_LOGIC_Vector -д (3 -аас 0 хүртэл); Q: STD_LOGIC_Vector -аас (3 -аас доошоо 0)); төгсгөлийн бүрэлдэхүүн хэсэг;

дохио DFF02proj30: STD_LOGIC;

дохио DFF12proj74: STD_LOGIC; дохио DFF22proj118: STD_LOGIC; дохио DFF32proj1512: STD_LOGIC;

Эхлэх

DFF0: Final_DFF портын зураг (CLK => CLK, D (0) => MS (0), D (1) => MS (1), D (2) => MS (2), D (3) => MS (3), Q (0) => DFF02proj30, Q (1) => DFF12proj74, Q (2) => DFF22proj118, Q (3) => DFF32proj1512); Proj0: final_project порт газрын зураг (NMS (0) => DFF02proj30, NMS (1) => DFF12proj74, NMS (2) => DFF22proj118, NMS (3) => DFF32proj1512, BTN => BTN, LED => LED); зан үйлийн төгсгөл;

Алхам 7: Чуулган

Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган

Энэ төслийн тоног төхөөрөмжийн угсралт хамгийн бага байна. Шаардлагатай цорын ганц зүйл бол дараахь зүйлүүд юм.

1. Basys 3 самбар (1)

2. Амазон дээрээс олж болох хямд хөдөлгөөн мэдрэгчийг эндээс олж болно. (4)

3. Эрэгтэй-эмэгтэй удирдагч (4)

Чуулган:

1. 4 эрэгтэй холбогчийг PMod толгойн JB 1-4 порт руу холбоно уу (Зураг харна уу).

2. Эмэгтэй үзүүрийг хөдөлгөөн мэдрэгчийн гаралтын зүү бүрт холбоно.

Алхам 8: Хөтөлбөрийг ачаалж байна

Одоо бид VHDL мастер эх файлыг Basys 3 самбарт ачаалахад бэлэн боллоо. Синтез, хэрэгжилтийг ажиллуулж, болзошгүй алдааг шалгахын тулд битийн урсгалыг шалгаж байгаа эсэхийг шалгаарай. Хэрэв бүгд амжилттай ажиллаж байвал тоног төхөөрөмжийн менежерийг нээж, Basys 3 төхөөрөмжийг програмчилна уу. Таны төсөл одоо дууссан!

Зөвлөмж болгож буй: