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

Хөдөлгөөн мэдрэгч/тоолуурын хяналттай гэрэл: 7 алхам
Хөдөлгөөн мэдрэгч/тоолуурын хяналттай гэрэл: 7 алхам

Видео: Хөдөлгөөн мэдрэгч/тоолуурын хяналттай гэрэл: 7 алхам

Видео: Хөдөлгөөн мэдрэгч/тоолуурын хяналттай гэрэл: 7 алхам
Видео: 50 САМЫХ ИННОВАЦИОННЫХ ЛИЧНЫХ ТРАНСПОРТНЫХ СРЕДСТВ 2021–2022 гг. 2024, Долдугаар сарын
Anonim
Хөдөлгөөн мэдрэгч/тоолуурын хяналттай гэрэл
Хөдөлгөөн мэдрэгч/тоолуурын хяналттай гэрэл

Энэхүү төслийг Сан Луис Обиспо дахь Cal Poly (CPE 133) сургуулийн дижитал дизайны курсын эцсийн төсөл болгон бүтээсэн болно.

Бид яагаад үүнийг хийж байна вэ? Бид дэлхийн байгалийн баялгийг хамгаалахад туслахыг хүсч байна. Манай төсөл нь цахилгаан хэмнэхэд чиглэгддэг. Илүү их цахилгаан хэмнэх замаар бид цахилгаан эрчим хүч үйлдвэрлэх байгалийн нөөцийг хэмнэх боломжтой болно. 2018 он эхлэхэд байгалийн нөөцийг гайхалтай хэмжээгээр зарцуулж байна. Бид байгаль орчинд үзүүлэх нөлөөгөө ухамсарлаж, байгалийн баялгийг хадгалахад өөрийн хувь нэмрээ оруулахыг хүсч байна. Цахилгаан эрчим хүчийг хэмнэхийн тулд янз бүрийн аргаар хэрэгжүүлж болох бөгөөд энэ нь хүрээлэн буй орчин болон эдийн засгийн байдалд тусалдаг.*Энэхүү загварыг бидэнд байгаа бүрэлдэхүүн хэсгүүдийг ашиглан бүтээсэн болно.

Хүмүүс ихэвчлэн баярын гэрлээ унтраахаа мартаж, шөнийн цагаар орхиж энергээ үрдэг. Бодит байдал дээр энэхүү төсөл нь цахилгаан хэмнэх болно, учир нь "баярын гэрэл" нь хүмүүс ойрхон байхад л асах бөгөөд ингэснээр хэн ч байхгүй үед эрчим хүчээ хэмнэх болно. Цаашилбал, бид цаг хэмжигч зохион бүтээхийг хүссэн бөгөөд ингэснээр гэрэл өглөөний 3 цагт илрүүлсэн хөдөлгөөний улмаас асахгүй байхын тулд тодорхой хугацааны дараа бүрэн унтрах болно.

Энэхүү загварыг гоёл чимэглэлийн, практик эсвэл хоёуланг нь ашиглахаас үл хамааран бүх төрлийн гэрэлд ашиглаж болно. Хэрэв та ширээнийхээ гэрлийг нэг удаад зөвхөн 6 цаг ажиллуулахыг хүсч байвал. Та тоолуурыг 21,600 секундэд тохируулах шаардлагатай болно (6 цаг x 3, 600 секунд/цаг). Тоолуур идэвхтэй нэмэгдэж байх үед хөдөлгөөн мэдрэгч нь гэрлийг хянах болно. Ийм хугацаанд унтрах бүрт хөдөлгөөн мэдрэгчийн өмнө гараа даллахад л тэр дахин асах болно. Хэрэв та ширээн дээрээ унтаж, 7 цагийн дараа сэрвэл таны хөдөлгөөн асахгүй болно.

Алхам 1: Шаардлагатай програм хангамж ба техник хангамж

Шаардлагатай програм хангамж ба техник хангамж
Шаардлагатай програм хангамж ба техник хангамж
Шаардлагатай програм хангамж ба техник хангамж
Шаардлагатай програм хангамж ба техник хангамж
Шаардлагатай програм хангамж ба техник хангамж
Шаардлагатай програм хангамж ба техник хангамж
Шаардлагатай програм хангамж ба техник хангамж
Шаардлагатай програм хангамж ба техник хангамж

Програм хангамж:

  • Vivado 2016.2 (эсвэл хамгийн сүүлийн хувилбарыг) эндээс олж болно
  • Arduino IDE 1.8.3 (эсвэл хамгийн сүүлийн хувилбарыг) эндээс олж болно

Техник хангамж:

  • 1 Basys 3 самбар
  • 1 Ардуино Уно
  • 2 талхны самбар
  • 1 Хэт авианы хүрээ мэдрэгч HC-SR04
  • 9 Эрэгтэй эрэгтэй утас
  • 1 LED
  • 1100Ω эсэргүүцэл

Алхам 2: Кодууд (Vivado)

Код (Vivado)
Код (Vivado)

Хязгаарлагдмал төлөв байдлын машин (дээрх төлөв байдлын диаграмыг үзнэ үү):

LED нь хязгаарлагдмал төлөвт машин шаарддаг. LED нь асаах, унтраах хоёр л төлөвтэй. Зөвхөн хоёр оролт нь LED, тоолуур, мэдрэгчийн төлөв байдлыг хянадаг. Мэдрэгч нь хөдөлгөөнийг илрүүлж, тоолуур тэгээс гучин секунд хүртэл тоолж байх үед л LED асах ёстой. Бусад тохиолдолд LED унтрах болно.

Файлын нэр: LEDDES

Тоолуур:

Тоолуур нь хөдөлгөөн мэдрэгч нь LED -ийг идэвхжүүлж болох хугацааг хязгаарлах боломжийг бидэнд олгодог. Үүний утгыг Basys 3 Board -ийн долоон сегментийн дэлгэц дээр эх кодоор ("sseg_dec") харуулдаг. Дахин тохируулах товчлуур унтарсан үед (утга: '0') тоолуур секунд тутамд 0 -ээс 30 хүртэл нэмэгдэж эхэлдэг. 30 хүрэхэд тэр тоон дээр хөлддөг. Дахин тохируулах товчлуурыг ‘1’ болгож, ‘1’ болгон буцаах хүртэл 0 -ээс дахин асахгүй бөгөөд хэрэв тоолуур явж байх үед дахин тохируулах нь ‘1’ болвол тоолуур хүрсэн утга дээрээ зогсох болно. Дахин тохируулах нь "0" рүү буцах үед тоолуур 0 -ээс 30 хүртэл дахин асах болно. Энэ хэрэгжилт нь цагийн дохиог ашиглахыг шаарддаг бөгөөд түүний кодыг доор үзүүлэв ("clk_div2").

Файлын нэр: FinalCounter

ӨГСӨН ФАЙЛУУД:

Долоон сегментийн дэлгэц:

Энэ код нь долоон сегментийн дэлгэцийг аравтын утгыг харуулах боломжийг олгодог. Нэг дэд модуль нь 8 битийн хоёртын оролт ба 4 битийн хоёртын кодчилсон аравтын хооронд декодерын үүрэг гүйцэтгэдэг. Нөгөө нь цагны дохиог хувааж утгыг нь тодорхой хэмжээгээр сэргээнэ.

Файлын нэр: sseg_dec

Цагийн дохио:

Энэ код нь тоолуурыг 1 секундын алхамаар нэмэгдүүлэх боломжийг олгодог. Энэ нь оролтын цагийн давтамжийг удаан давтамж болгон хуваадаг. Бид max_count: integer: = (3000000)”-ийг“max_count: integer: = (50000000)”болгон өөрчилснөөр 1 секундын хугацаатай байхаар дасан зохицсон.

Файлын нэр: clk_div2

Өгөгдсөн файлууд: sseg_dec, clk_div2 *Эдгээр эх файлуудыг профессор Брайан Мийли өгсөн.

Алхам 3: Тэд хэрхэн нэгддэгийг ойлгох (VHDL бүрэлдэхүүн хэсгүүдийн схем)

Тэд хэрхэн нэгдэж байгааг ойлгох (VHDL -ийн бүрэлдэхүүн хэсгүүдийн схем)
Тэд хэрхэн нэгдэж байгааг ойлгох (VHDL -ийн бүрэлдэхүүн хэсгүүдийн схем)

Үндсэн файл ("MainProjectDES") нь өмнө хэлэлцсэн бүх дэд файлуудыг агуулдаг. Тэд дээр дурдсан аргаар холбогдсон байна. Янз бүрийн бүрэлдэхүүн хэсгүүд нь нэг элементээс нөгөө элемент рүү дохио дамжуулахын тулд порт газрын зургийг ашиглан хоорондоо холбогддог.

Таны анзаарсан шиг FinalCounter нь 5 битийн гаралтыг өгдөг бол sseg_dec нь 8 битийн оролт шаарддаг. Үүнийг нөхөхийн тулд бид хоёр бүрэлдэхүүн хэсгийг холбосон дохиог "000" -аар эхлүүлж, тоолуураас 5 битийн гаралтыг нэмнэ. Тиймээс 8 битийн оролтыг өгдөг.

Хязгаарлалт:

Эдгээр кодыг Basys 3 самбар дээр ажиллуулахын тулд хаашаа явах, эд ангиудыг хэрхэн холбосон тухай дохио тус бүрийг зааж өгөх хязгаарлалтын файл шаардлагатай байв.

Алхам 4: Код (Arduino)

Бид Arduino Uno -г хөдөлгөөн мэдрэгч ашиглан хөдөлгөөнийг илрүүлж, LED асах дохио өгдөг гаралтыг хангахаар програмчилсан. Нэмж дурдахад, мэдрэгчийг ашиглан хөдөлгөөнийг илрүүлэхийн тулд зайны өөрчлөлтийг байнга хайдаг гогцоо ажиллуулах шаардлагатай болдог. Үндсэндээ LED -ийг асаахын тулд "өндөр" дохиог гаргахын тулд нэгэн зэрэг ажилладаг таймер хэрэгтэй бөгөөд шинэ хөдөлгөөн илэрсэн тохиолдолд таймерыг дахин тохируулах шаардлагатай бөгөөд үүнийг мэдлэгийн хүрээнд үндэслэн Vivado дээр хэрэгжүүлэх бараг боломжгүй юм. ангийн. Үүнээс гадна, бид Arduino-ийг ашигласан, учир нь HC-SR04-ийг Basys 3 самбартай ашиглах нь боломжгүй тул самбар нь зөвхөн 3.3 В хүчдэл өгдөг бол мэдрэгч нь 5 В цахилгаан хангамж шаарддаг. Илрүүлэх хөдөлгөөнийг хэрэгжүүлэхийн тулд энэ нь VHDL дээрх CAD -ээс ялгаатай бодит кодчилол юм.

Мэдрэгчээс анх ялгарч буй дуу болон объект руу цохиулах үед гарч буй дууны хоорондох хугацааг олж авахын тулд бид мэдрэгчийн суулгасан импульсийн функцийг ашигласан. Дараа нь бид дууны хурд ба хугацааны интервал ашиглан объект ба мэдрэгчийн хоорондох зайг тооцоолно. Үүнээс бид одоогийн зайг хадгалж, түүнийгээ хянадаг. Бид 150 м тутамд зайг шалгадаг. Бид мөн өнгөрсөн цагийг хянахын тулд arduino дотор дотоод таймер ажиллуулахын тулд elapsedmil номын санг ашигласан. Хэрэв бид хөдөлгөөнд тохирох зайны өөрчлөлтийг илрүүлбэл таймерыг тэг болгож, 3 секунд өнгөрөх хүртэл гэрлийг асаах болно. Мэдрэгч өөр хөдөлгөөн илрүүлэх бүрт таймерыг 0 болгож, LED гэрлийн дохио дараагийн 3 секундын турш "өндөр" байх болно. Бид доорхи Arduino кодын хуулбарыг хавсаргав.

Алхам 5: Манай бүрэлдэхүүн хэсгүүд хоорондоо хэрхэн зохицдог вэ

Бидний бүрэлдэхүүн хэсгүүд хоорондоо хэрхэн зохицдог вэ!
Бидний бүрэлдэхүүн хэсгүүд хоорондоо хэрхэн зохицдог вэ!
Манай бүрэлдэхүүн хэсгүүд хоорондоо хэрхэн зохицдог вэ!
Манай бүрэлдэхүүн хэсгүүд хоорондоо хэрхэн зохицдог вэ!
Манай бүрэлдэхүүн хэсгүүд хоорондоо хэрхэн зохицдог вэ!
Манай бүрэлдэхүүн хэсгүүд хоорондоо хэрхэн зохицдог вэ!

"Basys3: Pmod Pin-out Diagram*" болон Arduino Uno Board-ийн зургаас харж байгаагаар бид ашиглаж байсан портуудаа тодруулж, шошголсон болно.

1. LED ба Basys 3 самбар

LED нь 100Ω эсэргүүцэлтэй цувралаар холбогддог. -Цагаан утас нь эсэргүүцэгчийг Basys 3 хавтангийн PWR зүүтэй холбодог. -Шар утас нь LED -ийг Basys 3 хавтангийн H1 зүүтэй холбодог.

2. Хөдөлгөөн мэдрэгч ба Arduino Uno

-Улбар шар өнгийн утас нь хөдөлгөөн мэдрэгчийн Vcc (хүч) -ийг Arduino Uno хавтангийн 5V зүүтэй холбодог. Хөдөлгөөн мэдрэгч нь Arduino Uno самбарын 9-р зүү.-Хар утас нь хөдөлгөөн мэдрэгчийн GND зүүг Arduino Uno хавтангийн GND зүүтэй холбодог.

[Бидний ашигладаг утаснууд нь бүрэлдэхүүн хэсгүүдэд хүрэхэд хэт богино байсан тул хоорондоо холбогдсон байсан]

3. Basys 3 зөвлөл ба Arduino Uno

Шар утас нь Basys 3 хавтангийн A14 зүүг Arduino Uno хавтангийн 6 зүүтэй холбодог.

*Энэхүү диаграммыг Digilent -ийн "Basys 3 ™ FPGA Board лавлах гарын авлага" -аас эндээс олж болно.

Алхам 6: Жагсаал

Алхам 7: Үүнийг туршиж үзэх цаг боллоо

Баяр хүргэе! Та бидний хөдөлгөөн мэдрэгч ба тоолуураар удирддаг гэрлийн төслийн төгсгөлд хүрсэн! Манай Instructables бичлэгийг уншсан танд маш их баярлалаа. Одоо та энэ төслийг өөрөө бүтээхийг хичээх цаг болжээ. Хэрэв та алхам бүрийг анхааралтай дагаж мөрдвөл хөдөлгөөн мэдрэгч, тоолуурын хяналттай гэрэлтэй байх ёстой. Энэхүү төслийг хэрэгжүүлэхэд нь амжилт хүсье, мөн энэ нь цахилгаан эрчим хүч, байгалийн нөөцийг хэмнэхэд хувь нэмэр оруулна гэж найдаж байна!

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