সুচিপত্র:

শক্তি দক্ষ মোশন সক্রিয় রাস্তার আলো: 8 টি ধাপ
শক্তি দক্ষ মোশন সক্রিয় রাস্তার আলো: 8 টি ধাপ

ভিডিও: শক্তি দক্ষ মোশন সক্রিয় রাস্তার আলো: 8 টি ধাপ

ভিডিও: শক্তি দক্ষ মোশন সক্রিয় রাস্তার আলো: 8 টি ধাপ
ভিডিও: এমন টয়লেট যা দেখে আপনিও লজ্জায় পড়ে যাবেন ! এসব টয়লেট দেখতেও কপাল লাগে। 2024, নভেম্বর
Anonim
শক্তি দক্ষ মোশন অ্যাক্টিভেটেড স্ট্রিট লাইট
শক্তি দক্ষ মোশন অ্যাক্টিভেটেড স্ট্রিট লাইট

এই প্রকল্পের সাথে আমাদের লক্ষ্য ছিল এমন কিছু তৈরি করা যা সম্প্রদায়ের শক্তি এবং আর্থিক সম্পদ সংরক্ষণ করবে। মোশন অ্যাক্টিভেটেড স্ট্রিট লাইট এই দুটি কাজ করবে। সারা দেশ জুড়ে রাস্তাঘাট বাতি জ্বালানো রাস্তায় জ্বালানি নষ্ট হচ্ছে যা খালি। আমাদের রাস্তার আলো ব্যবস্থা নিশ্চিত করে যে লাইট শুধুমাত্র যখন প্রয়োজন হয়, সম্প্রদায়গুলিকে অগণিত ডলার সাশ্রয় করে। মোশন সেন্সর ব্যবহার করে, সিস্টেমটি কেবল তখনই চালু হয় যখন গাড়িগুলি উপস্থিত থাকে। এছাড়াও পথচারীদের নিরাপত্তার জন্য, আমরা একটি ওভাররাইড বোতাম প্রয়োগ করেছি যা রাস্তার সমস্ত আলো চালু করে। ভিভাডো এবং একটি বেসিস 3 বোর্ড ব্যবহার করে আমরা কীভাবে আমাদের প্রকল্পের স্কেলড ডাউন মডেলটি ডিজাইন করেছি এবং তৈরি করেছি তা নিম্নলিখিত পদক্ষেপগুলি আপনাকে দেখাবে।

ধাপ 1: সিস্টেম ব্ল্যাক বক্স

সিস্টেম ব্ল্যাক বক্স
সিস্টেম ব্ল্যাক বক্স

আমরা একটি সাধারণ ব্ল্যাক বক্স ডায়াগ্রাম আঁকার মাধ্যমে এই প্রকল্পটি শুরু করেছি। একটি ব্ল্যাক বক্স ডায়াগ্রাম কেবল আমাদের সিস্টেমের সমস্ত প্রয়োজনীয় প্রক্রিয়া সম্পন্ন করার জন্য প্রয়োজনীয় ইনপুট এবং আউটপুট দেখায়। আমরা আমাদের নকশা যতটা সম্ভব সহজ এবং মৌলিক রাখার চেষ্টা করেছি। আমাদের তিনটি সিস্টেম ইনপুটে মোশন সেন্সরের একটি বাস (আমাদের স্কেল ডাউন মডেলের জন্য 4), পথচারী ওভাররাইড বোতাম এবং একটি ঘড়ির ইনপুট অন্তর্ভুক্ত ছিল। অন্যদিকে আমাদের একক আউটপুট হল LED লাইটের একটি বাস যা আমাদের রাস্তার আলোকে প্রতিনিধিত্ব করে। এই মডেলের জন্য আমরা 16 টি স্ট্রিট লাইটের একটি দৃশ্য ব্যবহার করেছি কারণ এটি বেসিস 3 বোর্ডে LED আউটপুটগুলিতে নির্মিত সর্বাধিক সংখ্যা। অবশেষে, এই চিত্রটি ব্যবহার করে আমরা আমাদের Vivado প্রকল্প, উৎস, এবং যথাযথ ইনপুট এবং আউটপুট সহ সীমাবদ্ধতা ফাইল তৈরি করতে সক্ষম হয়েছি।

ধাপ 2: উপাদান

উপাদান
উপাদান
উপাদান
উপাদান

এই ধাপে আমরা আমাদের ব্ল্যাক বক্স ডায়াগ্রাম তৈরির উপাদানগুলি গভীরভাবে পরীক্ষা করি। আমাদের প্রথম উপাদান হল একটি ভিএইচডিএল সোর্স ফাইল যার মধ্যে রয়েছে ডি ফ্লিপ-ফ্লপ। ডি ফ্লিপ-ফ্লপগুলি ঘড়ির ক্রমবর্ধমান প্রান্তে সেন্সর থেকে তাদের কাছে যে কোনও সংকেত ইনপুট হচ্ছে তা গ্রহণ করে এবং পরবর্তী উত্থান প্রান্ত পর্যন্ত সেই ডেটাগুলিকে আটকে রাখে। এটি আমাদের সংবেদনশীল গতি সেন্সরগুলিকে "ঝলকানি" থেকে আউটপুট LED এর কারণ হতে দেয়। এছাড়াও, আমরা বাটন ইনপুট সিগন্যালে একটি একক ডি ফ্লিপ-ফ্লপ রাখি যাতে বোতামটি ধাক্কা দেওয়ার পরে প্রায় 5-7 সেকেন্ডের জন্য LED চালু থাকে। আমরা একটি ঘড়ি বিভাজক মাধ্যমে এটি দৌড়ে।

সত্তা clk_div2 হল পোর্ট (clk: std_logic; sclk: out std_logic); শেষ clk_div2;

clk_div2 এর স্থাপত্য my_clk_div

ধ্রুবক max_count: পূর্ণসংখ্যা: = (300000000); সিগন্যাল tmp_clk: std_logic: = '0'; শুরু my_div: প্রক্রিয়া (clk, tmp_clk) পরিবর্তনশীল div_cnt: পূর্ণসংখ্যা: = 0; যদি শুরু হয় div_cnt: = 0; অন্যথায় div_cnt: = div_cnt + 1; যদি শেষ; যদি শেষ; sclk <= tmp_clk; শেষ প্রক্রিয়া my_div; শেষ my_clk_div;

এই ডায়াগ্রামে আমাদের চূড়ান্ত উপাদানটি একটি আচরণগত ভিএইচডিএল সোর্স ফাইল যা ইনপুট সিগন্যালের কনফিগারেশনের ভিত্তিতে আউটপুটগুলির জন্য শর্তসাপেক্ষ।

ধাপ 3: ডি ফ্লিপ-ফ্লপ

ডি ফ্লিপ-ফ্লপ
ডি ফ্লিপ-ফ্লপ

ইনপুট সিগন্যালের সাথে সংযুক্ত চারটি ফ্লিপ-ফ্লপ আমাদের সিস্টেমের কার্যকারিতার জন্য অপরিহার্য। যেমনটি আগে বলা হয়েছে, সংবেদনশীল মোশন সেন্সর এবং একটি ওভাররাইড বোতামের সাহায্যে, ফ্লিপ-ফ্লপগুলি কেবল ঘড়ির ক্রমবর্ধমান প্রান্তে আমাদের ইনপুট সংকেত আউটপুট করার জন্য ল্যাচ ব্যবহার করে। এই সিকোয়েন্সিয়াল লজিকের অর্থ আমাদের স্ট্রিট লাইট দ্রুত গতিতে ট্রিগার হওয়ার পর একটি নির্দিষ্ট সময়ের জন্য থাকতে পারে। একটি ডি-ফ্লিপ ফ্লপের কোডিং বেশ সহজ:

beginprocess (CLK) শুরু হয় যদি Rising_edge (CLK) তাহলে Q <= D; যদি শেষ; শেষ প্রক্রিয়া;

যদি স্টেটমেন্ট থাকে তাহলে পুরো জিনিসটি এককভাবে সংকলিত হতে পারে। একবার আমরা এই টুকরা পেয়েছিলাম, আমরা একটি প্রয়োজনীয় কাঠামোগত ভিএইচডিএল সোর্স ফাইল তৈরি করেছি যা আমাদের প্রয়োজনীয় চারটি ফ্লিপ-ফ্লপ রয়েছে:

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: শর্তাবলী

আমাদের কোডকে কমপ্যাক্ট এবং দক্ষ রাখার জন্য আমরা আমাদের সমস্ত শর্তাবলী একক ক্ষেত্রে বিবৃতিতে লিখেছি। আমাদের স্কেল ডাউন মডেলের জন্য, আমাদের 16 টি সম্ভাব্য LED আউটপুট কনফিগারেশন ছিল কারণ প্রতিটি মোশন সেন্সর 4 LED এর একটি গ্রুপের জন্য দায়ী।:

কেস NMS হল যখন "1111" => LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED = = "1111111111111111"; শেষ কেস;

ধাপ 5: সীমাবদ্ধতা

ভিভাডো ব্যবহার করে আপনার ইনপুট এবং আউটপুটগুলি সঠিকভাবে জানাতে, আপনাকে অবশ্যই একটি সীমাবদ্ধতা ফাইল প্রয়োগ করতে হবে যাতে সমস্ত পোর্ট, বোতাম, এলইডি এবং ঘড়ি ব্যবহৃত হচ্ছে।

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] 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] POWERPY] get_ports {LED] 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]}] set_property PAC13_ সেট 8]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED [8]}] set_property PACKAGE_PIN V3 [get_ports {LED [9]}] set_property IO স্ট্যান্ডার্ড LVCMOS33 [get_ports {LED [9]}] set_property PACKAGE_PIN W3 [get_ports {LED [10]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED] [get_ports {LED [11]}] set_property PACKAGE_PIN P3 [get_ports {LED [12]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED] {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 IOSSTA LOSTA LOSTA33 LOSTAIR [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]}] set_property PACKAGE_PIN A16 [get_ports {MS] 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 হল পোর্ট (--CLK: STD_LOGIC এ; NMS: STD_LOGIC_VECTOR এ (3 ডাউনটোতে 0); শেষ উপাদান;

উপাদান Final_DFF হল

পোর্ট (CLK: STD_LOGIC এ; D: STD_LOGIC_Vector (0 ডাউনটো 0); প্রশ্ন: STD_LOGIC_Vector (0 ডাউনটো 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 port map (NMS (0) => DFF02proj30, NMS (1) => DFF12proj74, NMS (2) => DFF22proj118, NMS (3) => DFF32proj1512, BTN => BTN, LED => LED); শেষ আচরণ;

ধাপ 7: সমাবেশ

সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ

এই প্রকল্পের জন্য হার্ডওয়্যার সমাবেশ ন্যূনতম। শুধুমাত্র প্রয়োজনীয় টুকরা নিম্নরূপ:

1. বেসিস 3 বোর্ড (1)

2. সস্তা মোশন সেন্সর যা অ্যামাজনে পাওয়া যাবে এখানে। (4)

3. পুরুষ থেকে মহিলা নেতৃত্ব (4)

সমাবেশ:

1. কানেক্ট 4 পুরুষ লিড PMod হেডার JB পোর্ট 1-4 (চিত্র দেখুন)।

2. প্রতিটি মোশন সেন্সরের আউটপুট পিনের সাথে মহিলা প্রান্ত সংযুক্ত করুন।

ধাপ 8: প্রোগ্রাম লোড হচ্ছে

এখন আমরা VHDL মাস্টার সোর্স ফাইলটি Basys 3 বোর্ডে লোড করার জন্য প্রস্তুত। সম্ভাব্য ত্রুটির জন্য সংশ্লেষণ, বাস্তবায়ন এবং বিটস্ট্রিম চেকিং নিশ্চিত করুন। যদি সব সফলভাবে চালানো হয়, হার্ডওয়্যার ম্যানেজার খুলুন এবং বেসিস 3 ডিভাইসটি প্রোগ্রাম করুন। আপনার প্রকল্প এখন সম্পূর্ণ!

প্রস্তাবিত: