جدول المحتويات:

أضواء استشعار الحركة Basys3: 8 خطوات
أضواء استشعار الحركة Basys3: 8 خطوات

فيديو: أضواء استشعار الحركة Basys3: 8 خطوات

فيديو: أضواء استشعار الحركة Basys3: 8 خطوات
فيديو: أضواء استشعار الحركة 2024, يوليو
Anonim
أضواء استشعار الحركة Basys3
أضواء استشعار الحركة Basys3
أضواء استشعار الحركة Basys3
أضواء استشعار الحركة Basys3
أضواء استشعار الحركة Basys3
أضواء استشعار الحركة Basys3

بالنسبة لمشروعنا الأخير في التصميم الرقمي ، قررنا محاكاة أضواء حساسات الحركة ، حيث لا يتم تنشيطها فقط عندما يكون الجسم بالقرب منها ، بل يتم تنشيطها أيضًا خلال وقت معين من اليوم. نحن قادرون على نمذجة هذا باستخدام FPGA (لوحة Basys3). أثناء استخدام FPGA ، سمحنا للمستخدم بإدخال وقت يمكن أن تبدأ فيه مستشعرات الحركة في التنشيط ، ثم ترسل المستشعرات إشارة اعتمادًا على المستشعر هو تشغيل هذا الضوء المحدد في تلك الغرفة أو المنطقة. قمنا بنمذجة هذا من خلال السماح بتنشيط مستشعر حركة واحد فقط في وقت معين ، وتشغيل الأضواء المعينة وفقًا لذلك. بسبب ضيق الوقت ، لا يمكننا جعل الوقت الذي يدخله المستخدم يؤثر على تنشيط مستشعر الحركة. ومع ذلك ، يجب أن يسمح أساس منطقنا لأي شخص بتكراره وتحسينه بسهولة.

### الرابط أدناه يوضح مقطع فيديو للمشروع

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

الخطوة 1: المعدات المطلوبة

المعدات اللازمة
المعدات اللازمة

بالنسبة لهذا المشروع ، سوف تحتاج إلى ما يلي:

مجلس Basys3

-USB إلى كابل microusb

-8 أسلاك توصيل للوح اللوح

- اللوح

-2 LED منتشر

الخطوة 2: مخطط الصندوق الأسود / آلة الحالة المحدودة

مخطط الصندوق الأسود / آلة الحالة المحدودة
مخطط الصندوق الأسود / آلة الحالة المحدودة
مخطط الصندوق الأسود / آلة الحالة المحدودة
مخطط الصندوق الأسود / آلة الحالة المحدودة

يوضح مخطط الصندوق الأسود هذا المدخلات المطلوبة اللازمة لتشغيل مصابيح LED. تمثل مدخلات الساعة ومدخلات Min الوقت الذي أدخله المستخدم على لوحة 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 Digital Clock

ساعة بلاك بوكس الرقمية
ساعة بلاك بوكس الرقمية

الغرض من الساعة الرقمية التي أنشأناها هو عدم تنشيط أضواء المستشعرات أثناء النهار ، والعمل فقط خلال الوقت الذي يدخله المستخدم. تستغرق الساعة الرقمية إدخال hour_in و mins_in باستخدام مفاتيح على لوحة basys3 ، ولتتمكن من تحميلها على اللوحة ، تحتاج إلى الضغط على (led_btn) حتى تعرضها على اللوحة. أضفنا أيضًا زر إعادة الضبط (rst_b) حتى تتمكن من إعادة التحميل في وقت مختلف. نظرًا لأن basys3 لديه مساحة كافية لعرض 3 حالات مختلفة من المعلومات ، قمنا بتنفيذ الثواني في الخلفية. لهذا الغرض ، قمنا بتنفيذ مفتاح للثواني ، لذا لن يزداد إلا في الوقت المناسب عندما يقرر المستخدم تشغيل إدخال (e_sec) على لوحة basys3. يتكون عمل الإطار الداخلي داخل الساعة الرقمية من flip-flops التي تخزن الوقت المدخل والعدادات التي تزيد الوقت الذي أدخله المستخدم فقط عند تشغيل (e_sec). سنضيف الكود حتى تتمكن من عرض كيفية تنفيذه بالضبط.

الخطوة 4: المكونات معًا والوصف

المكونات معا والوصف
المكونات معا والوصف
المكونات معا والوصف
المكونات معا والوصف

توضح الصور أعلاه كيفية توصيل المكونات معًا. يبدأ أولاً بأخذ المدخلات بالساعات والدقائق. يتم إرسال الإشارات من تلك المدخلات إلى ساعة العداد وعداد الدقائق حيث تجمع البتات معًا ، ويتم إرسال إشارة خرج العدادات إلى مكون SSEG حيث تقوم بتحويل البتات إلى أحرف محددة سيتم عرضها على لوحة basys3. ومع ذلك ، لن يتم إرسال الإشارة من العدادات إلى مكون SSEG حتى يقوم المستخدم بالضغط على الإدخال (led_btn) ويتم ذلك لأننا لم ننشئ FSM للساعة الرقمية. أيضًا ، لن يزداد الوقت الذي تم إدخاله حتى يتم تشغيل مفتاح الإدخال (e_sec) لأنه بخلاف ذلك ، سيعمل عداد الثواني دائمًا في الخلفية. بمجرد أن يصل العداد ثانية إلى "59" ، فإنه سيرسل إشارة إلى الدقائق بحيث يزيد من الدقائق ويتم ذلك من دقائق إلى ساعات. أيضًا ، هناك مدخلات مستشعر الحركة ، ويتم إرسال الإشارات إلى مكون FSM حيث يحدد الحالة التي يجب الانتقال إليها اعتمادًا على المستشعر. حالته الأولية هي عندما تكون جميع أجهزة الاستشعار متوقفة عن التشغيل. تم وصف كل وصف ولايات ميكرونيزيا الموحدة في الخطوة 2.

الخطوة 5: الكود

الخطوة 6: التعديلات المستقبلية

في المستقبل ، ستؤدي إضافة مستشعرات الحركة الفعلية مع مجموعة من مصابيح LED إلى المشروع إلى التحسين ، حتى نتمكن من زيادة تعقيد المشروع ، ومعرفة ما إذا كان بإمكاننا إنشاء مستشعر ضوئي حديث للحركة. سيخلق هذا المزيد من المشاكل حيث سيتعين عليك التفكير في قرب الكائن أيضًا حتى تضيء الأضواء وفقًا لذلك. بالإضافة إلى ذلك ، جميع الوظائف الأخرى السابقة. أيضًا ، تحسين وظائف الساعة الرقمية باستخدام FSM أيضًا بدلاً من انتظار تشغيل المستخدم للثواني (e_sec). ستكون FSM للساعة الرقمية مماثلة لتلك الموجودة في مستشعر الحركة.

الخطوة 7: الخاتمة

بشكل عام ، ساعدنا هذا المشروع في الحصول على فهم أفضل لكيفية عمل آلات الحالة المحدودة. بالإضافة إلى ذلك ، مع ولايات ميكرونيزيا الموحدة ، عليك دائمًا أن تضع في اعتبارك أنك بحاجة إلى معرفة الحالة التي تعيش فيها ، ومتى تريد التغيير إلى حالة أخرى. بمعنى آخر ، تحتاج إلى معرفة مكانك في وقت معين ، وأين ستكون في وقت لاحق. ضع في اعتبارك العوامل التي ستسمح لك (المدخلات) بالتغيير إلى حالة أخرى ، وماذا ستفعل عندما تصل إلى هناك (الإخراج). تعلمنا أيضًا كيفية تخزين المعلومات داخل لوحة basys3 باستخدام flip-flops وهي سجلات ، وكيفية زيادة الوقت باستخدام العدادات التي تضيف أرقامًا ثنائية معًا.

الخطوة 8: الاقتباس

the two_sseg.vhdl = universal_sseg_dec.vhd

راتنر وجيمس وتشينج صموئيل.. هندسة السطح. universal_sseg_dec.vhd

موصى به: