Мазмуну:

Motion Sensor Lights Basys3: 8 Steps
Motion Sensor Lights Basys3: 8 Steps

Video: Motion Sensor Lights Basys3: 8 Steps

Video: Motion Sensor Lights Basys3: 8 Steps
Video: Parking Sensor with FPGA (Basys3) 2024, Ноябрь
Anonim
Кыймыл сенсорунун жарыгы Basys3
Кыймыл сенсорунун жарыгы Basys3
Кыймыл сенсорунун жарыгы Basys3
Кыймыл сенсорунун жарыгы Basys3
Кыймыл сенсорунун жарыгы Basys3
Кыймыл сенсорунун жарыгы Basys3

Санариптик дизайндагы акыркы долбоорубуз үчүн, кыймылдын сенсорлорун симуляциялоону чечтик, алар объект жанында болгондо гана эмес, күндүн белгилүү бир убагында гана активдешет. Биз муну FPGA (Basys3 board) аркылуу моделдей алабыз. FPGAны колдонуп жатканда, колдонуучуга кыймыл сенсорлору иштетиле турган убакытты киргизүүгө уруксат бердик, андан кийин сенсорлор кайсы сенсорго жараша сигнал жөнөтөт бул бөлмөдө же аймакта конкреттүү жарыкты күйгүзүү. Биз муну моделдештирдик, бир убакта бир гана кыймыл сенсорун иштетүүгө уруксат берүү жана ошого жараша берилген жарыктарды күйгүзүү. Убакыттын тардыгынан улам, колдонуучу киргизген убакыт кыймыл сенсорунун иштешине таасир эте албайт. Бирок, биздин логиканын негизи кимдир бирөөнүн оңой көчүрүлүшүнө жана жакшырышына жол бериши керек.

### Төмөндөгү шилтеме Долбоордун видеосун көрсөтөт

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

1 -кадам: керектүү жабдуулар

Керектүү жабдуулар
Керектүү жабдуулар

Бул долбоор үчүн сизге төмөнкүлөр керек болот:

-Basys3 Board

-USBден microusb кабелине

-8 нан панелиндеги секирүүчү зымдар

-Нан тактасы

-2 таралган LED

2 -кадам: Blackbox диаграммасы/Акыркы мамлекеттик машина

Кара кутунун диаграммасы/Чектүү абал машинасы
Кара кутунун диаграммасы/Чектүү абал машинасы
Кара кутунун диаграммасы/Чектүү абал машинасы
Кара кутунун диаграммасы/Чектүү абал машинасы

Бул кара куту диаграммасы жарык берүүчү чырактарды күйгүзүү үчүн керектүү болгон маалыматтарды көрсөтөт. Саат кириши жана Мин киргизүүлөрү колдонуучунун basys3 тактасына киргизген убактысын билдирет (өчүргүчтөрдү колдонуп). Мисалы, sw киргизүү бөлмөнүн колдонуучусунун кайсы бөлүгүндө экенин билдирет (дагы эле объектинин жайгашкан жерин көрсөтүү үчүн өчүргүчтөрдү колдонуңуз).

FSM бир убакта объект жайгашкан бөлмөдө бир аймактан экинчисине өтүүнү көрсөтөт. Ар кандай бөлмөлөрдө (s1, s2, s3, s4) көрсөтүлгөн 4 түрдүү сенсор бар. Кайсы чыгымдарды же ар кандай бөлмөлөрдөгү жарыктарды, мисалы, жарыкты (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 Digital Clock

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 -кадам: Келечектеги өзгөртүүлөр

Келечекте, проектке светодиоддордун айкалышы менен чыныгы кыймыл датчиктерин кошуу, долбоордун татаалдыгын жогорулатуу жана заманбап кыймыл жарык сенсорун түзө аларыбызды көрүү үчүн жакшыртылган болмок. Бул дагы көйгөйлөрдү жаратат, анткени сиз объектинин жакындыгын ойлонушуңуз керек, ошого жараша жарыктар күйөт. Мындан тышкары, бардык башка функциялар. Ошондой эле, колдонуучунун секундага (e_sec) күйүшүн күтпөстөн, FSMди колдонуп, санариптик сааттын функциясын жакшыртуу. Санариптик сааттын FSMи кыймыл сенсоруна окшош болмок.

7 -кадам: Жыйынтык

Жалпысынан алганда, бул долбоор бизге акыркы мамлекеттик машиналардын иштешин жакшыраак түшүнүүгө жардам берди. Мындан тышкары, FSM менен сиз кайсы абалда экениңизди жана качан башка мамлекетке которулууну билишиңиз керек экенин дайыма эстен чыгарбооңуз керек. Башкача айтканда, сиз кайсы убакта экениңизди жана кийинчерээк кайда болоруңузду билишиңиз керек. Кандай факторлор сизге (кириштерге) башка абалга өтүүгө мүмкүндүк берерин жана ал жерге жеткенде эмне кылаарын унутпаңыз (чыгаруу). Биз ошондой эле маалыматты регистрация болгон флип-флоптордун жардамы менен basys3 тактасынын ичинде кантип сактоону жана экилик сандарды кошо эсептегичтерди колдонуу менен убакытты кантип көбөйтүүнү үйрөндүк.

8 -кадам: Кетүү

Two_sseg.vhdl = universal_sseg_dec.vhd

Ратнер, Джеймс жана Чэн Сэмюэль.. Ратфейс инженериясы.universal_sseg_dec.vhd

Сунушталууда: