Talaan ng mga Nilalaman:

Motion Sensor / Counter Controlled Light: 7 Mga Hakbang
Motion Sensor / Counter Controlled Light: 7 Mga Hakbang

Video: Motion Sensor / Counter Controlled Light: 7 Mga Hakbang

Video: Motion Sensor / Counter Controlled Light: 7 Mga Hakbang
Video: I work at the Private Museum for the Rich and Famous. Horror stories. Horror. 2024, Hulyo
Anonim
Motion Sensor / Counter Controlled Light
Motion Sensor / Counter Controlled Light

Ang proyektong ito ay nilikha bilang isang pangwakas na proyekto para sa isang kurso sa Digital Design sa Cal Poly, San Luis Obispo (CPE 133).

Bakit natin ito ginagawa? Nais naming makatulong na makatipid ng mga likas na yaman sa mundo. Ang aming proyekto ay nakatuon sa pag-save ng kuryente. Sa pamamagitan ng pag-save ng mas maraming kuryente, makakatipid tayo ng mga likas na yaman na ginagamit upang makabuo ng kuryente. Sa pagsisimula natin ng 2018, ang mga likas na yaman ay natupok sa isang hindi kapani-paniwalang rate. Nais naming magkaroon ng kamalayan ng aming epekto sa aming kapaligiran at gampanan ang aming bahagi sa pagpapanatili ng likas na yaman. Maaaring ipatupad ang electronics sa iba't ibang paraan upang makatipid ng enerhiya na makakatulong sa kapaligiran pati na rin ang ating pang-ekonomiyang estado. * Ang modelong ito ay nilikha gamit ang mga sangkap na magagamit sa amin.

Ano ang aming inspirasyon? Ang mga tao ay madalas na nakakalimutang patayin ang kanilang mga ilaw sa bakasyon, at nasayang ang enerhiya sa pamamagitan ng pag-iwan sa kanila sa magdamag. Sa katotohanan, ang proyektong ito ay makatipid sa kuryente dahil ang "mga ilaw sa bakasyon" ay makikita lamang kapag ang mga tao ay malapit, sa gayon ay pagtitipid ng enerhiya kapag walang tao sa paligid. Bukod dito, nais naming mag-disenyo ng isang timer upang ang mga ilaw ay ganap na patayin pagkatapos ng isang naibigay na oras upang matiyak na hindi sila buksan dahil sa paggalaw na nakita sa 3:00, halimbawa.

Paano mo magagamit ang disenyo na ito? Ang disenyo na ito ay maaaring ipatupad para sa lahat ng uri ng ilaw, pandekorasyon man, praktikal o pareho. Kung nais mo ang iyong desk light na gumana lamang ng 6 na oras sa isang pagkakataon, halimbawa. Kakailanganin mong magtakda ng isang counter sa 21, 600 segundo (6 na oras x 3, 600 segundo / oras). Habang ang counter ay aktibong pagtaas, ang sensor ng paggalaw ay makokontrol ang ilaw. Kaya, sa tuwing magpapapatay ito sa loob ng tagal ng oras na iyon, kailangan mo lamang na iwagayway ang iyong kamay sa harap ng sensor ng paggalaw at babalik ito. Kung nakatulog ka sa iyong mesa at gumising pagkalipas ng 7 oras, hindi ito bubuksan ng iyong paggalaw.

Hakbang 1: Kinakailangan na Software at Hardware

Kinakailangan na Software at Hardware
Kinakailangan na Software at Hardware
Kinakailangan na Software at Hardware
Kinakailangan na Software at Hardware
Kinakailangan na Software at Hardware
Kinakailangan na Software at Hardware
Kinakailangan na Software at Hardware
Kinakailangan na Software at Hardware

Software:

  • Ang Vivado 2016.2 (o isang pinakabagong bersyon) ay matatagpuan dito
  • Ang Arduino IDE 1.8.3 (o isang pinakabagong bersyon) ay matatagpuan dito

Hardware:

  • 1 Basys 3 board
  • 1 Arduino Uno
  • 2 Mga Breadboard
  • 1 Ultrasonic Ranging sensor HC-SR04
  • 9 Mga wires na lalaki hanggang lalaki
  • 1 LED
  • 1 100Ω Resistor

Hakbang 2: Mga Code (Vivado)

Mga Code (Vivado)
Mga Code (Vivado)

Finite State Machine (tingnan ang diagram ng estado sa itaas):

Kinakailangan ng LED ang isang may takda na makina ng estado. Ang isang LED ay may dalawang estado lamang ng pagiging on at off. Dalawang input lamang ang nagkokontrol sa estado ng LED, ang counter at ang sensor. Ang tanging oras na dapat na naka-on ang LED ay kapag nakita ng sensor ang paggalaw at kapag ang counter ay bibilangin mula zero hanggang tatlumpung segundo. Anumang iba pang mga kaso ang LED ay patayin.

Pangalan ng file: LEDDES

Counter:

Pinapayagan kami ng counter na limitahan ang haba ng oras kung saan maaaring iaktibo ng sensor ng paggalaw ang LED. Ang halaga nito ay ipinapakita sa pitong segment na pagpapakita ng Basys 3 Board sa pamamagitan ng isang source code ("sseg_dec"). Kapag ang Reset switch ay pababa (halaga: '0'), ang counter ay nagsisimulang tumataas bawat segundo mula 0 hanggang 30. Kapag umabot sa 30, nag-freeze ito sa numerong iyon. Hindi ito magsisimulang muli mula 0 hanggang sa ang switch ng I-reset ay na-toggle sa '1' at bumalik sa '1.' Kung ang Reset ay naging '1' habang ang counter ay pupunta, ang counter ay mag-freeze sa anumang halagang naabot nito. Kapag ang Reset ay bumalik sa '0,' ang counter ay magsisimulang muli mula 0 hanggang 30. Ang pagpapatupad na ito ay nangangailangan din ng paggamit ng isang signal ng orasan, ang code nito ay ibinigay sa ibaba ("clk_div2").

Pangalan ng file: FinalCounter

NAGBIGAY NG MGA FILES:

Pitong Segment na Ipakita:

Pinapayagan ng code na ito ang pitong segment na pagpapakita upang ipakita ang mga halagang decimal. Ang isang submodule ay gumaganap bilang decoder sa pagitan ng isang 8-bit binary input isang isang 4-bit na Binary Coded Decimal. Hinahati ng iba ang signal ng orasan upang mai-refresh ang halaga nito sa isang tiyak na rate.

Pangalan ng file: sseg_dec

Clock Signal:

Pinapayagan ng code na ito ang counter na tumaas sa mga pagtaas ng 1 segundo. Hinahati nito ang dalas ng pag-input ng orasan sa isang mas mabagal na dalas. Inangkop namin upang magbigay ng isang panahon ng 1 segundo sa pamamagitan ng pagbabago ng palaging max_count: integer: = (3000000) "sa" pare-pareho ang max_count: integer: = (50000000)."

Pangalan ng file: clk_div2

Ibinigay ang mga file: sseg_dec, clk_div2 * Ang mga mapagkukunang file na ito ay ibinigay ni Propesor Bryan Mealy.

Hakbang 3: Pag-unawa sa Paano Nila Magkakasama (Mga Skema ng VHDL)

Pag-unawa sa Paano Nila Nagsasama (Mga Skema ng VHDL na Mga Bahagi)
Pag-unawa sa Paano Nila Nagsasama (Mga Skema ng VHDL na Mga Bahagi)

Ang pangunahing file ("MainProjectDES") ay naglalaman ng lahat ng mga subfile na tinalakay dati. Ang mga ito ay konektado sa itaas na pamamaraan. Ang magkakaibang mga bahagi ay magkakaugnay sa paggamit ng mga mapa ng port upang magpadala ng isang senyas mula sa isang elemento patungo sa isa pa.

Tulad ng napansin mo, ang FinalCounter ay nagbibigay ng isang 5-bit na output habang ang sseg_dec ay nangangailangan ng isang 8-bit na input. Upang mabayaran, itinakda namin ang signal na kumokonekta sa parehong mga bahagi upang magsimula sa "000" at add-on na 5-bit na output mula sa counter. Sa gayon ay nagbibigay ng isang 8-bit na input.

Mga hadlang:

Upang mapatakbo ang mga code na ito sa Basys 3 Board, kinakailangan ng isang hadlang na file, na sinasabi sa bawat signal kung saan pupunta at kung paano nakakonekta ang mga bahagi.

Hakbang 4: Code (Arduino)

Pinrograma namin ang Arduino Uno upang magamit ang sensor ng paggalaw upang makita ang paggalaw at magbigay ng isang output na hudyat sa LED upang sindihan. Bilang karagdagan, ang paggamit ng sensor upang makita ang paggalaw ay nangangailangan ng pagpapatakbo ng mga loop na patuloy na naghahanap ng pagbabago sa distansya. Mahalaga, kailangan nito ng isang timer na tumatakbo kasabay upang mag-output ng isang "mataas" na signal para sa ilaw ng LED habang ang timer ay kailangang i-reset sa sandaling may isang bagong kilos na napansin, na halos imposibleng ipatupad sa Vivado batay sa saklaw ng kaalaman ng klase. Bukod dito, gumamit kami ng isang Arduino sapagkat hindi posible na gamitin ang HC-SR04 sa Basys 3 Board dahil ang 3.3 na linya lamang ang ibinibigay ng board habang ang sensor ay nangangailangan ng isang 5V power supply. Para sa pagpapatupad ng kilusang nakakakita, ito ay aktwal na pag-coding taliwas sa CAD sa VHDL.

Ginamit namin ang built-in na pag-andar na pulso para sa sensor upang makuha ang oras na lumipas sa pagitan ng tunog na una na inilalabas mula sa sensor at ng tunog na tumatalbog pabalik kapag tumama sa isang bagay. Pagkatapos ay ginagamit namin ang bilis ng agwat ng tunog at oras upang makalkula ang distansya sa pagitan ng bagay at ng sensor. Mula doon, itinatago namin ang kasalukuyang distansya at sinusubaybayan ito. Sinusuri namin ang distansya bawat 150ms. Ginamit din namin ang elapsedmil library upang magpatakbo ng isang panloob na timer sa loob ng arduino upang subaybayan ang oras na lumipas. Kung nakita namin ang isang pagbabago sa distansya, na tumutugma sa isang paggalaw, ang timer ay naka-reset sa zero at panatilihin nito ang ilaw hanggang sa lumipas ang 3 segundo. Kailan man nakakita ang sensor ng isa pang paggalaw, ang timer ay naka-reset sa 0 at ang signal para sa ilaw na LED ay "mataas" para sa susunod na 3 segundo. Nag-attach kami ng isang kopya ng aming Arduino code sa ibaba.

Hakbang 5: Paano magkakasama ang Aming Mga Sangkap

Paano Magkakasama ang aming Mga Sangkap!
Paano Magkakasama ang aming Mga Sangkap!
Paano Magkakasama ang Aming Mga Sangkap!
Paano Magkakasama ang Aming Mga Sangkap!
Paano Magkakasama ang aming Mga Sangkap!
Paano Magkakasama ang aming Mga Sangkap!

Tulad ng nakikita mo sa "Basys3: Pmod Pin-out Diagram *" at ang larawan ng Arduino Uno Board, na-highlight at nilagyan namin ng label ang mga ginamit naming port.

1. Ang LED at Basys 3 Board

Ang LED ay konektado sa serye ng 100Ω risistor. -Ang puting kawad ay nag-uugnay sa risistor upang i-pin ang PWR ng Basys 3 board. -Ang dilaw na kawad ay kumokonekta sa LED upang i-pin ang H1 ng Basys 3 board.

2. Ang Motion Sensor at ang Arduino Uno

-Ang orange wire ay nag-uugnay sa Vcc (lakas) ng sensor ng paggalaw upang i-pin ang 5V ng Arduino Uno board.-Ang puting kawad ay kumokonekta sa pin Trig ng sensor ng paggalaw upang i-pin ang 10 ng Arduino Uno board.-Ang dilaw na kawad ay kumokonekta sa pin ang sensor ng paggalaw upang i-pin ang 9 ng Arduino Uno board.-Ang itim na kawad ay kumokonekta sa pin GND ng sensor ng paggalaw upang i-pin ang GND ng Arduino Uno board.

[Ang mga wire na ginamit namin ay masyadong maikli upang maabot ang mga bahagi, sa gayon ay magkakaugnay]

3. Ang Basys 3 Board at ang Arduino Uno

Ang dilaw na kawad ay kumokonekta sa pin A14 ng Basys 3 board sa pin 6 ng Arduino Uno board.

* Ang diagram na ito ay kinuha mula sa "Basys 3 ™ FPGA Board Reference Manual ng Digilent" na matatagpuan dito.

Hakbang 6: Pagpapakita

Hakbang 7: Oras upang Subukan Ito

Binabati kita! Natapos mo na ang aming sensor ng paggalaw at counter na kinokontrol na light project! Maraming salamat sa pagbabasa sa pamamagitan ng aming post na Instructables. Ngayon ay oras na para sa iyo upang subukang buuin ang proyektong ito sa iyong sarili. Kung susundin mong mabuti ang bawat hakbang, dapat kang magkaroon ng isang sensor ng paggalaw at counter na kinokontrol na ilaw na gumagana katulad sa amin! Nais naming sa iyo ng pinakamahusay na kapalaran sa pagbuo ng proyektong ito, at inaasahan naming maaari itong magbigay ng kontribusyon sa pag-save ng kuryente pati na rin likas na mapagkukunan!

Inirerekumendang: