INHOUDSOPGAWE:
- Stap 1: Timer
- Stap 2: Knoppieoptimalisering
- Stap 3: LED
- Stap 4: Toplêer
- Stap 5: Beperkingslêer
- Stap 6: Bedrading van die PIR -bewegingsensor
- Stap 7: Bedek die LED in die broodbord
- Stap 8: Basys bordverbindings
Video: Motion Sensored LED: 8 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Agtergrond:
Vergeet u ooit om 'n lig af te skakel voordat u klas toe gaan of werk toe gaan of voordat u gaan slaap? Daardie ure met die ligte aan as u dit nie gebruik nie, kan koste en energieverlies aansienlik verhoog. Byvoorbeeld, volgens solarcity.com, as u die ligte 'n week lank die hele nag laat brand, kan u $ 25 by u elektrisiteitsrekening voeg! Vir ons CPE133 -projek ontwerp ons 'n bewegingsensorlig om mense te help om energie in hul huise te bespaar en hul ligte doeltreffend te gebruik.
Ons stelsel in die praktyk:
In die praktyk sal die ligte slegs aanskakel as 'n sensor beweging in die kamer opspoor. Dan bly die ligte vir 'n sekere tyd aan, soos ongeveer 30 minute, en skakel dit dan outomaties uit. Maar laat ons sê dat u net deurgegaan het of die kamer vroeg wou verlaat voordat die vasgestelde tyd verby was. In hierdie gevalle het ons 'n knoppie geïnstalleer waar u die ligte met die hand kan aan- of uitskakel. Let op: die ligte bly 30 minute aan, selfs as die ligte handmatig of outomaties aangeskakel word (tensy die ligte met die hand afgeskakel word).
Simulasie aan boord:
Om te sien dat die timer werk, het ons die timer in 1 minuut verander.
Materiaal:
- 1 Basys -bord (u kan dit hier vind van Digilent)
- 1 PIR -bewegingsensor (u kan een hier op Amazon vind)
- 1 broodbord en kit (ons stel voor dat u hierdie een van Amazon gebruik)
-
Uit die kit hierbo
- 1 LED
- 3 vroulike tot manlike springkabels
- 6 springkabels van man tot man
Stap 1: Timer
Om die LED vir 1 minuut aan te hou, moet ons eers 'n timer maak. Die Basys 3 -bord het 'n interne frekwensie van 100MHz, waardeur 100 miljoen siklusse gelyk is aan 1 sekonde. Dit word dan gebruik as 'n veranderlike wat as 'n maksimum getal vir die 't_cnt' dien. Die t_cnt verhoog met 1 namate die Basys 3 -bord 'n siklus voltooi. Sodra dit die 100 miljoen -punt bereik, sal dit herstel word en 'n ander veranderlike, "sek", sal toeneem met 1. Hierdie "sek" veranderlike verteenwoordig die aantal sekondes wat verby is en sodra die veranderlike gelyk is aan 60, het 'n volle minuut verloop.
Kopieer die onderstaande kode na 'n vhdl -bronlêer met die naam Timer.
entiteit COUNT_8B is
poort (RESET: in std_logic;
CLK: in std_logic; T: out std_logic: = '0');
beëindig COUNT_8B;
argitektuur my_count van COUNT_8B is
konstante max_count: heelgetal: = (100000000); -sein t_cnt: std_logic_vector (7 tot 0): = "00000000"; sein t_cnt: heelgetal: = (0); begin proses (CLK, RESET, t_cnt) veranderlike sek: heelgetal: = 0; begin as (rising_edge (CLK)) dan as (RESET = '1') dan t_cnt <= (0); - maak elsif skoon (t_cnt = max_count) dan- max_count is 100 miljoen wat gelyk is aan 1 sekonde t_cnt <= (0); - Stel die interne klok terug na 0 sek: = sek + 1; - Verhoog ons 'stadige klok' met 1 as (sek = 60) dan- sodra dit 60 sekondes bereik het, het dit die maksimum tyd sek bereik: = 0; - Stel 'stadige klok' terug op 0 T <= '1'; eindig as; anders t_cnt <= t_cnt + 1; - verhoog die interne klok T <= '0'; eindig as; eindig as; einde proses; eindig my_count;
Stap 2: Knoppieoptimalisering
Aangesien die frekwensie in die Basys -borde so hoog is (ongeveer 100 MHz) as u 'n kort tydjie na die Basys -bord druk, druk u dit 100 000 keer. Dit laat die lig vinnig flikker tussen die aan en af toestand. Ons het probeer om die knoppie te optimaliseer deur 'n toestanddiagram te skep om die flikkering te verminder.
Die d-flip-flops hou elke toestand en dan sal ons die toestandsoortgange in die prosesverklaring spesifiseer.
Kopieer die onderstaande kode na 'n vhdl -bronlêer met die naam Button.
biblioteek IEEE; gebruik IEEE. STD_LOGIC_1164. ALL;
entiteit knoppie is
Poort (btn: in STD_LOGIC; clk: in STD_LOGIC; E: uit STD_LOGIC); eindknoppie;
argitektuur Gedrag van knoppie is
tipe state_type is (GEDRUK, NP); sein PS, NS: toestand_tipe: = NP;
begin
seq_proc: proses (NS, clk) begin as (rising_edge (clk)) dan PS <= NS; eindig as; einde proses seq_proc;
ns_proc: proses (btn, PS)
begin geval PS is wanneer NP => as (btn = '1') dan NS <= GEDRUK; E <= '1'; anders NS <= NP; E as (btn = '0') dan NS <= NP; E <= '0'; anders NS <= GEDRUK; E <= '0'; eindig as; eindsaak; beëindig proses ns_proc;
einde Gedrag;
Stap 3: LED
Die LED het twee toestande: OFF (of IDLE) en ON. Soos voorheen gesê, word die state in 'n d-flip-flop geberg. Die lig sal draai as die sensor beweging opspoor (S = 1) of as 'n knoppie ingedruk word (E = 1). Die LED sal outomaties afskakel as die timer 1 minuut bereik (T = 1) of met die hand as 'n knoppie ingedruk word (E = 1).
Kopieer die onderstaande kode na 'n vhdl -bronlêer met die naam LED.
entiteit motion_sensored_light is Poort (S: in STD_LOGIC; - sesnor; Poort JA10/Pin G3 E: in STD_LOGIC; - eksterne knoppie vir handmatige funksie; Middelknoppie T: in STD_LOGIC; - wanneer timer maksimum tyd bereik; Van timer LED: uit STD_LOGIC; - ligte TRST: uit STD_LOGIC; - stel tydklok terug: in STD_LOGIC); - clk vir flip flop wat die state end motion_sensored_light hou;
argitektuur Gedragsgedrag van bewegingsgesensoreerde lig is
tipe state_type is (ST0, ST1); --ST0 = IDLE, ST1 = LED HOOG
sein PS, NS: toestand_tipe: = ST0; - HUIDIGE STAAT EN VOLGENDE STAAT, begin in ST0 IDLE
begin
- prosesblok van flip-flop- opdaterings toestand op stygende rand van die klok seq_proc: proses (NS, clk) begin- d flip flop wat state bevat as (rising_edge (clk)) dan PS <= NS; eindig as; einde proses seq_proc;
ns_proc: proses (S, E, T, PS)
begin geval PS is wanneer ST0 => LED <= '0'; - uitsette vir ledige toestand TRST <= '1'; as (S = '0' OF E = '1') dan - insette vir oorgang van st0 na st1 NS <= ST1; anders NS LED <= '1'; - uitsette vir die toestand TRST <= '0'; as (E = '1' OF T = '1') dan - insette na die oorgang van st1 na st0 NS <= ST0; anders NS <= ST1; eindig as; eindsaak; beëindig proses ns_proc;
einde Gedrag;
Stap 4: Toplêer
Nou gaan ons al ons ander lêers in een kaart in kaart bring.
Kopieer die onderstaande kode na 'n vhdl -bronlêer met die naam Top_File.
biblioteek IEEE; gebruik IEEE. STD_LOGIC_1164. ALL;
entiteit Top_File is
Poort (S: in STD_LOGIC: = '1'; - sesnor; Poort JA10/Pin G3 btn: in STD_LOGIC: = '0'; - eksterne knoppie vir handmatige funksie; LED -middelknoppie: uit STD_LOGIC; - ligte kliek: in STD_LOGIC); - clk vir flip flop wat die state end Top_File hou;
argitektuur Gedrag van Top_File is
komponent COUNT_8B is
poort (RESET: in std_logic: = '0'; CLK: in std_logic; T: out std_logic: = '0'); eindkomponent; komponent motion_sensored_light is Poort (S: in STD_LOGIC; - sesnor; Poort JA10/Pin G3 E: in STD_LOGIC; - eksterne knoppie vir handmatige funksie; Middelknoppie T: in STD_LOGIC; - wanneer timer maksimum tyd bereik; Van timer LED: uit STD_LOGIC; - ligte TRST: uit STD_LOGIC; - stel tydklok terug: in STD_LOGIC); - clk vir flip flop wat die state-eindkomponent bevat; komponentknoppie is Poort (btn: in STD_LOGIC; clk: in STD_LOGIC; E: uit STD_LOGIC); eindkomponent; sein t_reached_c: std_logic; - sein r_time_c: std_logic; - sein button_c: std_logic;
begin
timer: COUNT_8B poortkaart (RESET => r_time_c, CLK => CLK, T => t_reached_c); motion_sensor: motion_sensored_light poortkaart (S => S, E => knop_c, T => t_reached_c, LED => LED, TRST => r_time_c, clk => clk); button_controller: knoppiepoortkaart (btn => btn, clk => clk, E => button_c); einde Gedrag;
Stap 5: Beperkingslêer
Nou moet ons definieer waar ons insette en uitsette op die bord sal wees.
Kopieer die onderstaande kode na 'n vhdl -beperkingslêer met die naam Constraints.
## Hierdie lêer is 'n algemene.xdc vir die Basys3 rev B -bord ## Om dit in 'n projek te gebruik: ## - maak 'n opmerking van die lyne wat ooreenstem met die gebruikte penne ## - hernoem die gebruikte poorte (in elke reël, na get_ports) volgens na seinname op die hoogste vlak in die projek
## Kloksignaal
set_property PACKAGE_PIN W5 [get_ports clk] set_property IOSTANDARD LVCMOS33 [get_ports clk] create_clock -add -name sys_clk_pin -periode 10.00 -golfvorm {0 5} [get_ports clk] ## Switches #set_property PACKAGE_PIN V17 [0] set_property IOSTANDARD LVCMOS33 [get_ports {sw [0]}] #set_property PACKAGE_PIN V16 [get_ports {sw [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [1]}] #set_property PACKAGE_PIN W16 [get_port] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [2]}] #set_property PACKAGE_PIN W17 [get_ports {sw [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [3]}] #set_property PACKAGE_PIN W15 [get_port_]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [4]}] #set_property PACKAGE_PIN V15 [get_ports {sw [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {sw [5]}] #set_property PACKAGE_PIN W14
## LED's
#set_property PACKAGE_PIN U16 [get_ports {led [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [0]}] #set_property PACKAGE_PIN E19 [get_ports {led [1]}] #set_property IOSTANDARD LVCMOS33 [get_port] }] #set_property PACKAGE_PIN U19 [get_ports {led [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [2]}] #set_property PACKAGE_PIN V19 [get_ports {led [3]}] #set_property IOSTANDARD LVCMOS33 [3]}] #set_property PACKAGE_PIN W18 [get_ports {led [4]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [4]}] #set_property PACKAGE_PIN U15 [get_ports {led [5]}] #set_property IOSTANDARD LVCM33 led [5]}] #set_property PACKAGE_PIN U14 [get_ports {led [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [6]}] #set_property PACKAGE_PIN V14 [get_ports {led [7]}] #set_property IOSTANDARD LVC get_ports {led [7]}] #set_property PACKAGE_PIN V13 [get_ports {led [8]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [8]}] #set_property PACKAGE_PIN V3 [get_ports {led [9]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [9]}] #set_property PACKAGE_PIN W3 [get_ports {led [10]}] #set_property IOSTANDARD LVCMOS33 [get_ports {led [10]}] #set_property PACKAGE_PIN U3
#set_property PACKAGE_PIN V7 [get_ports dp]
#set_property IOSTANDARD LVCMOS33 [get_ports dp]
#set_property PACKAGE_PIN U2 [get_ports {an [0]}]
#set_property IOSTANDARD LVCMOS33 [get_ports {an [0]}] #set_property PACKAGE_PIN U4 [get_ports {an [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {an [1]}] #set_property PACKAGE_PIN v4 [get_port] }] #set_property IOSTANDARD LVCMOS33 [get_ports {an [2]}] #set_property PACKAGE_PIN W4 [get_ports {an [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {an [3]}]
## knoppies
set_property PACKAGE_PIN U18 [get_ports BTN] set_property IOSTANDARD LVCMOS33 [get_ports BTN] #set_property PACKAGE_PIN T18 [get_ports btnU] #set_property IOSTANDARD LVCMOS33 [get_ports btnU] #set_property PACKAGE_PIN W 19 [get_ports btnL] #set_property IOSTANDARD LVCMOS33 [get_ports btnL] #set_property PACKAGE_PIN T17 [get_ports btnR] #set_property IOSTANDARD LVCMOS33 [get_ports btnR] #set_property PACKAGE_PIN U17 [get_ports btnD] #set_property IOSTANDARD LVCMOS33 [get_ports btnD]
## Pmod Header JA
## Sch name = JA1 #set_property PACKAGE_PIN J1 [get_ports {JA [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [0]}] ## Sch name = JA2 #set_property PACKAGE_PIN L2 [get_ports {JA [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [1]}] ## Sch name = JA3 #set_property PACKAGE_PIN J2 [get_ports {JA [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [2]}] ## Sch naam = JA4 #set_property PACKAGE_PIN G2 [get_ports {JA [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JA [3]}] ## Sch name = JA7 #set_property PACKAGE_PIN H1 [get_ports {JA [4]}] #STAND_pro LVCMOS33 [get_ports {JA [4]}] ## Sch name = JA8 set_property PACKAGE_PIN K2 [get_ports LED] set_property IOSTANDARD LVCMOS33 [get_ports LED] ## Sch name = JA9 #set_property PACKAGE_PIN H2 [get_port} { #] set_property IOSTANDARD LVCMOS33 [get_ports {JA [6]}] ## Sch name = JA10 set_property PACKAGE_PIN G3 [get_ports S] set_property IOSTANDARD LVCMOS33 [get_ports S]
## Pmod Header JB
## Sch name = JB1 #set_property PACKAGE_PIN A14 [get_ports {JB [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [0]}] ## Sch name = JB2 #set_property PACKAGE_PIN A16 [get_ports {JB [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [1]}] ## Sch name = JB3 #set_property PACKAGE_PIN B15 [get_ports {JB [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [2]}] ## Sch naam = JB4 #set_property PACKAGE_PIN B16 [get_ports {JB [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [3]}] ## Sch name = JB7 #set_property PACKAGE_PIN A15 [get_ports {JB [4]}] #STAND_pro LVCMOS33 [get_ports {JB [4]}] ## Sch name = JB8 #set_property PACKAGE_PIN A17 [get_ports {JB [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [5]}] ## Sch naam = JB9 #set_property PACKAGE_PIN C15 [get_ports {JB [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JB [6]}] ## Sch name = JB10 #set_property PACKAGE_PIN C16 [get_ports {JB [7]}] #set_property IOSTANDARD LVCM JB [7]}]
## Pmod Header JC
## Sch name = JC1 #set_property PACKAGE_PIN K17 [get_ports {JC [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [0]}] ## Sch name = JC2 #set_property PACKAGE_PIN M18 [get_ports {JC [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [1]}] ## Sch name = JC3 #set_property PACKAGE_PIN N17 [get_ports {JC [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [2]}] ## Sch naam = JC4 #set_property PACKAGE_PIN P18 [get_ports {JC [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [3]}] ## Sch name = JC7 #set_property PACKAGE_PIN L17 [get_ports {JC [4]}] #set_ LVCMOS33 [get_ports {JC [4]}] ## Sch name = JC8 #set_property PACKAGE_PIN M19 [get_ports {JC [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [5]}] ## Sch naam = JC9 #set_property PACKAGE_PIN P17 [get_ports {JC [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JC [6]}] ## Sch name = JC10 #set_property PACKAGE_PIN R18 [get_ports {JC [7]}] #set_property IOSTANDARD LVCM JC [7]}]
## Pmod Header JXADC
## Sch name = XA1_P #set_property PACKAGE_PIN J3 [get_ports {JXADC [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [0]}] ## Sch name = XA2_P #set_property PACKAGE_PIN L3 [get_port] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [1]}] ## Sch name = XA3_P #set_property PACKAGE_PIN M2 [get_ports {JXADC [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC#] = XA4_P #set_property PACKAGE_PIN N2 [get_ports {JXADC [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [3]}] ## Sch name = XA1_N #set_property PACKAGE_PIN K3 [get_port_PART_JAN] LVCMOS33 [get_ports {JXADC [4]}] ## Sch name = XA2_N #set_property PACKAGE_PIN M3 [get_ports {JXADC [5]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [5]}] ## Schset = XA3_N PACKAGE_PIN M1 [get_ports {JXADC [6]}] #set_property IOSTANDARD LVCMOS33 [get_ports {JXADC [6]}] ## Sch name = XA4_N #set_property PACKAGE_PIN N1 [get_ports {JXADC [7]}] #set_property [get_ports {JXADC [7]}]
## VGA -aansluiting
#set_property PACKAGE_PIN G19 [get_ports {vgaRed [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaRed [0]}] #set_property PACKAGE_PIN H19 [get_ports {vgaRed [1]}] #set_property_OST_ARD_OS33 [get_property_OST] }] #set_property PACKAGE_PIN J19 [get_ports {vgaRed [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaRed [2]}] #set_property PACKAGE_PIN N19 [get_ports {vgaRed [3]}] #set_property {3}}] 3]}] #set_property PACKAGE_PIN N18 [get_ports {vgaBlue [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaBlue [0]}] #set_property PACKAGE_PIN L18 [get_ports {vgaBlue [1] }_set_OS_33 vgaBlue [1]}] #set_property PACKAGE_PIN K18 [get_ports {vgaBlue [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaBlue [2]}] #set_property PACKAGE_PIN J18 [get_ports {vgaBluOST [PRO] get_ports {vgaBlue [3]}] #set_property PACKAGE_PIN J17 [get_ports {vgaGreen [0]}] #set_property IOSTANDARD LVCMOS33 [get_p orts {vgaGreen [0]}] #set_property PACKAGE_PIN H17 [get_ports {vgaGreen [1]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaGreen [1]}] #set_property PACKAGE_PIN G17 [get_ports {vgaGOST_prod] LVCMOS33 [get_ports {vgaGreen [2]}] #set_property PACKAGE_PIN D17 [get_ports {vgaGreen [3]}] #set_property IOSTANDARD LVCMOS33 [get_ports {vgaGreen [3]}] #set_property PACKAGE_PIN P19_get_port_get_port_get_port] Hsync] #set_property PACKAGE_PIN R19 [get_ports Vsync] #set_property IOSTANDARD LVCMOS33 [get_ports Vsync]
## USB-RS232-koppelvlak
#set_property PACKAGE_PIN B18 [get_ports RsRx] #set_property IOSTANDARD LVCMOS33 [get_ports RsRx] #set_property PACKAGE_PIN A18 [get_ports RsTx] #set_property IOSTANDARD LVCMOS33 [get_ports RsTx]
## USB HID (PS/2)
#set_property PACKAGE_PIN C17 [get_ports PS2Clk] #set_property IOSTANDARD LVCMOS33 [get_ports PS2Clk] #set_property PULLUP true [get_ports PS2Clk] #set_property PACKAGE_PIN BETER_POS_PORT_POS_PART_POS_PART_POS_PARTS_POS_PARTS_PARTS_POS_PARTS_PATS
## Quad SPI -flits
## Let daarop dat CCLK_0 nie in 7 -reeks toestelle geplaas kan word nie. U het toegang daartoe met die ## STARTUPE2 primitief. #set_property PACKAGE_PIN D18 [get_ports {QspiDB [0]}] #set_property IOSTANDARD LVCMOS33 [get_ports {QspiDB [0]}] #set_property PACKAGE_PIN D19 [get_ports {QspiDB [1]}] #set_property [LOS_SP_PORT] }] #set_property PACKAGE_PIN G18 [get_ports {QspiDB [2]}] #set_property IOSTANDARD LVCMOS33 [get_ports {QspiDB [2]}] #set_property PACKAGE_PIN F18 [get_ports {QspiDB [3]}] #set_POST_PART_PART_PORT 3]}] #set_property PACKAGE_PIN K19 [get_ports QspiCSn] #set_property IOSTANDARD LVCMOS33 [get_ports QspiCSn]
Stap 6: Bedrading van die PIR -bewegingsensor
Die PIR -bewegingsensor het drie penne: onderskeidelik krag, gnd en alarm (sien die eerste prentjie). Die bewegingsensor wat in hierdie instruksie voorgestel word, kan direk met die broodbord verbind word. Maar vir die sensor wat ons gebruik het, moes ons die drade sny en strook en dan die blootgestelde ente soldeer om te voorkom dat dit rafel. Plaas 'n man -tot -vroulike springdraad in serie met die krag- en grondpenne en dan 'n manlike tot manlike draaddraad in serie met die alarmpen (sien die tweede prentjie).
Stap 7: Bedek die LED in die broodbord
Koppel die LED in die broodbord. Plaas 'n swart manlike na manlike springkabel in serie met die kort leiding van die LED. Koppel dan die verskillende manlike tot manlike springkabels in serie met die lang voorkant van die LED.
Stap 8: Basys bordverbindings
Koppel die vroulike punte van die PIR -bewegingsensor aan op die 5 volt -spanningsbron op die basiskaart. Koppel dan die manlike LED -aarddraad in die sypoort se grond, dan die alarmdraad van die PIR -bewegingsensor en dan die LED -ingangskabel (soos op die foto gesien).
Aanbeveel:
Motion Reactive Surfboard LED Strips: 8 stappe (met foto's)
Motion Reactive Surfboard LED Strips: Onlangs het ek en 'n paar vriende op 'n rivier ontdek. As ons in München woon, is ons gelukkig om drie surfbare riviergolwe te hê onder die beroemde Eisbach -branderplank. Die nadeel van branderplankry is dat dit nogal verslawend is, en daarom vind ek selde tyd vir
Head Motion Tracking System vir VR: 8 stappe
Head Motion Tracking System vir VR: My naam is Sam KODO, in hierdie tutoriaal leer ek u stap vir stap hoe om Arduino IMU -sensors te gebruik om 'n head tracking -stelsel vir VR te bou. In hierdie projek benodig u: - 'n LCD -skerm HDMI : https: //www.amazon.com/Elecrow-Capacitive-interfac…- 'n
Continuum - Slow Motion LED Art Display: 22 stappe (met foto's)
Continuum - Slow Motion LED Art Display: Continuum is 'n ligte kunsvertoning wat voortdurend in beweging is, met opsies om vinnig, stadig of ongelooflik stadig te beweeg. Die RGB -LED's op die skerm word 240 keer per sekonde bygewerk, met unieke kleure wat elke opdatering bereken word. 'N Skuifbalk aan die kant
Motion-geaktiveerde LED-lamp met batterye: 4 stappe
Bewegings geaktiveerde LED-lamp met batterye: as u êrens 'n lig wil plaas wat nie aangeskakel is nie, is dit dalk net wat u nodig het
Motion Sensitive LED Throwies: 7 stappe
Bewegingsgevoelige LED -gooies: Hierdie gooies is ontwerp om op bewegende teikens geplaas/gegooi te word, en gebruik 'n ru -bewegingsensor