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

Motion Sensor Lights Basys3: 8 алхам
Motion Sensor Lights Basys3: 8 алхам

Видео: Motion Sensor Lights Basys3: 8 алхам

Видео: Motion Sensor Lights Basys3: 8 алхам
Видео: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Арваннэгдүгээр
Anonim
3. Хөдөлгөөн мэдрэгчийн гэрэл
3. Хөдөлгөөн мэдрэгчийн гэрэл
3. Хөдөлгөөн мэдрэгчийн гэрэл
3. Хөдөлгөөн мэдрэгчийн гэрэл
3. Хөдөлгөөн мэдрэгчийн гэрэл
3. Хөдөлгөөн мэдрэгчийн гэрэл

Дижитал дизайны эцсийн төсөл болохын тулд бид хөдөлгөөн мэдрэгч гэрэл дуурайхаар шийдсэн бөгөөд тэдгээр нь зөвхөн объект ойрхон байх үед идэвхждэг төдийгүй өдрийн тодорхой цагт л идэвхждэг. Бид үүнийг FPGA (Basys3 самбар) ашиглан загварчлах боломжтой. FPGA -ийг ашиглах явцад бид хэрэглэгчид хөдөлгөөн мэдрэгчийн идэвхжүүлж эхлэх хугацааг оруулахыг зөвшөөрсөн бөгөөд дараа нь мэдрэгч нь ямар мэдрэгчээс хамаарч дохио илгээх болно. Тухайн өрөөнд эсвэл тухайн хэсэгт байгаа гэрлийг асаах явдал юм. Бид үүнийг загварчилж, зөвхөн нэг хөдөлгөөн мэдрэгчийг тухайн үед идэвхжүүлж, үүний дагуу гэрэл асаах замаар загварчилсан. Цаг хязгаарлагдмал байгаа тул хэрэглэгчийн оруулсан цаг нь хөдөлгөөн мэдрэгчийн идэвхжилд нөлөөлж чадахгүй байна. Гэсэн хэдий ч бидний логикийн үндэс нь хэн нэгэнд амархан хуулбарлах, сайжруулах боломжийг олгох ёстой.

### Доорх линк дээр төслийн видео бичлэгийг үзүүлж байна

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

Алхам 1: Шаардлагатай тоног төхөөрөмж

Шаардлагатай тоног төхөөрөмж
Шаардлагатай тоног төхөөрөмж

Энэ төслийн хувьд танд дараахь зүйлс хэрэгтэй болно.

-Basys3 зөвлөл

-USB -ээс microusb кабель

-8 талхны самбартай холбогч утас

-Талхны самбар

-2 сарнисан LED

Алхам 2: Blackbox диаграм/Хязгаарлагдмал төлөвийн машин

Хар хайрцагны диаграм/Төгсгөлийн төлөвийн машин
Хар хайрцагны диаграм/Төгсгөлийн төлөвийн машин
Хар хайрцагны диаграм/Эцсийн төлөвийн машин
Хар хайрцагны диаграм/Эцсийн төлөвийн машин

Энэхүү хар хайрцагны диаграм нь LED гэрлийг асаахад шаардлагатай оролтыг харуулав. Цагийн оролт ба Мин оролт нь хэрэглэгчийн basys3 самбар дээр оруулсан хугацааг харуулдаг (унтраалга ашиглан). Учир нь sw оролт нь өрөөний аль хэсэгт хэрэглэгчийн байрлаж байгааг харуулдаг (шилжүүлэгчийг ашиглан байршлын объектыг байрлуулж байгааг харуулна).

FSM нь тухайн үед объект байрлаж буй өрөөний нэг бүсээс нөгөө хэсэг рүү шилжих шилжилтийг харуулдаг. Өөр өөр өрөөнд 4 өөр мэдрэгч байдаг (s1, s2, s3, s4). Гаралт, эсвэл өөр өөр өрөөнүүдийн гэрлийг хянадаг, жишээлбэл гэрэл (L1, L2, L3). Мэдрэгч анхны төлөвт хэнийг ч илрүүлдэггүй тул бүх гэрэл унтарсан байдаг. Дараагийн төлөвт (1 -р төлөв) шилжихийн тулд s1 нь хэн нэгнийг илрүүлэх ёстой, s2, s3, s4 нь унтрах болно. Энэ нь L1 гаралтыг (1 -р гэрлийг асаах), L2 ба L3 -ийг унтраах болно. Төлөв 1 -ээс 2 -р төлөвт шилжихийн тулд s1, s3, s4 унтраалттай, s2 асаалттай байх ёстой. Энэ нь L1 ба L2 -ийг асаах болно. Энэ төлөвөөс дараагийн төлөв рүү шилжихийн тулд s3 асаалттай, бусад бүх мэдрэгчийг унтраасан байх ёстой. Энэ нь L2 ба L3 -ийг асаах болно, L1 унтрах болно. Эцсийн төлөвт шилжихийн тулд S4 асаалттай, бусад бүх мэдрэгч унтраалттай байх ёстой. Энэ нь зөвхөн L3 -ийг асаах болно, бусад бүх гэрэл унтрах болно. Хэрэв хүн өрөөнд s4 талаас орж, s1 -ээр гарвал бүх алхам урвуу дарааллаар явагдах болно.

Алхам 3: BlackBox дижитал цаг

BlackBox дижитал цаг
BlackBox дижитал цаг

Бидний бүтээсэн дижитал цагны зорилго нь мэдрэгчийн гэрэл өдрийн турш идэвхжихгүй бөгөөд зөвхөн хэрэглэгчийн оруулсан хугацаанд л ажилладаг. Дижитал цаг нь basys3 самбар дээрх унтраалгыг ашиглан hour_in оролт, mins_in -ийг авдаг бөгөөд үүнийг самбар дээр ачаалахын тулд та (led_btn) дарж самбар дээр харуулах хэрэгтэй. Бид дахин тохируулах товчийг (rst_b) нэмсэн тул та өөр цагийг дахин байршуулах боломжтой. Basys3 нь 3 өөр мэдээллийн тохиолдлыг харуулах хангалттай зайтай тул бид секундыг цаана нь хэрэгжүүлсэн. Энэ зорилгоор бид секундын унтраалгыг хэрэгжүүлсэн тул хэрэглэгч basys3 самбар дээрх (e_sec) оролтыг асаахаар шийдсэн үед л цаг хугацаа нэмэгдэх болно. Дижитал цаг доторх дотоод хүрээний ажил нь оруулсан цагийг хадгалдаг флип-флопс болон хэрэглэгчийн зөвхөн (e_sec) асаалттай үед оруулсан цагийг нэмэгдүүлдэг тоолууруудаас бүрдэнэ. Бид кодыг нэмж оруулах бөгөөд ингэснээр та үүнийг яг хэрхэн хэрэгжсэн болохыг харах боломжтой болно.

Алхам 4: Бүрэлдэхүүн хэсгүүдийг хамтад нь болон тайлбар

Бүрэлдэхүүн хэсгүүд ба тайлбар
Бүрэлдэхүүн хэсгүүд ба тайлбар
Бүрэлдэхүүн хэсгүүд ба тайлбар
Бүрэлдэхүүн хэсгүүд ба тайлбар

Дээрх зургууд нь бүрэлдэхүүн хэсгүүдийг хэрхэн хооронд нь холбож байгааг харуулж байна. Энэ нь эхлээд оролт, цаг, минутыг авахаас эхэлдэг. Эдгээр оролтоос ирсэн дохионууд нь битүүдийг нэгтгэсэн тоолуур, тоолуур руу илгээгддэг бөгөөд тоолууруудын гаралтын дохиог SSEG бүрэлдэхүүн хэсэгт илгээдэг бөгөөд битүүдийг basys3 самбар дээр харуулах тодорхой тэмдэгт болгон хөрвүүлдэг. Гэсэн хэдий ч хэрэглэгчид оролтыг (led_btn) дарах хүртэл тоолуураас ирсэн дохиог SSEG бүрэлдэхүүн хэсэгт илгээхгүй, учир нь бид дижитал цаганд зориулж FSM -ийг үүсгээгүй. Түүнчлэн оролтын товчлуур (e_sec) асах хүртэл оруулах хугацаа нэмэгдэхгүй, учир нь секундын тоолуур үргэлж арын дэвсгэр дээр ажилладаг. Тоолох секунд "59" хүрэхэд энэ нь минутанд дохио илгээдэг бөгөөд ингэснээр минутаас хэдэн цаг хүртэл нэмэгддэг. Түүнчлэн хөдөлгөөн мэдрэгчийн оролт байдаг бөгөөд дохио нь FSM бүрэлдэхүүн рүү илгээгддэг бөгөөд энэ нь мэдрэгчээс хамаарч ямар төлөвт орохыг тодорхойлдог. Түүний анхны төлөв нь бүх мэдрэгч унтарсан үе юм. FSM -ийн бүх тайлбарыг 2 -р алхамд тайлбарласан болно.

Алхам 5: Код

Алхам 6: Ирээдүйн өөрчлөлтүүд

Ирээдүйд төсөлд LED хосолсон бодит хөдөлгөөн мэдрэгчийг нэмж оруулах нь сайжрах болно, ингэснээр бид төслийн нарийн төвөгтэй байдлыг нэмэгдүүлж, орчин үеийн хөдөлгөөнт гэрэл мэдрэгчийг бий болгож чадах эсэхийг харах боломжтой болно. Энэ нь илүү их асуудал үүсгэх болно, учир нь та объектын ойролцоо байх ёстой бөгөөд ингэснээр гэрэл асах болно. Үүнээс гадна бусад бүх функцууд. Түүнчлэн, хэрэглэгчийг секунд асаахыг хүлээхийн оронд FSM ашиглан дижитал цагны функцийг сайжруулах (e_sec). Дижитал цагны FSM нь хөдөлгөөн мэдрэгчтэй төстэй байх болно.

Алхам 7: Дүгнэлт

Ерөнхийдөө энэхүү төсөл нь хязгаарлагдмал улсын машинууд хэрхэн ажилладаг талаар илүү сайн ойлгоход бидэнд тусалсан юм. Нэмж дурдахад, FSM -ийн тусламжтайгаар та ямар төлөв байдалд байгаагаа, мөн өөр мужид шилжихийг хүсч байгаагаа үргэлж мэдэж байх ёстой. Өөрөөр хэлбэл, та тухайн үед хаана байгаагаа, дараа нь хаана байхаа мэдэх хэрэгтэй. Ямар хүчин зүйлүүд (оролтууд) өөр төлөвт шилжих боломжтой болох, тэнд очоод юу хийхээ (гаралт) санаарай. Түүнчлэн basys3 самбар дотор мэдээллийг регистр болох флип-флоп ашиглан хэрхэн хадгалах, хоёртын тоог нийлүүлдэг тоолуур ашиглан цагийг хэрхэн нэмэгдүүлэх талаар сурсан.

Алхам 8: Эхлэл

Two_sseg.vhdl = universal_sseg_dec.vhd

Ратнер, Жеймс, Чен Самуэль.. Гадаргуугийн инженерчлэл.universal_sseg_dec.vhd

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