Cuprins:
- Pasul 1: Video de interacțiune
- Pasul 2: Declarație de problemă
- Pasul 3: Prezentare generală a modului în care funcționează
- Pasul 4: Lista de materiale și instrumente
- Pasul 5: începeți să construiți cu Breadboard
- Pasul 6: Pornirea codului
- Pasul 7: Atingeri de finisare
Video: Cronometru pentru camera de studiu: 7 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Instrucțiuni despre cum să creați un cronometru pentru o sală de studiu.
Pasul 1: Video de interacțiune
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
Pasul 2: Declarație de problemă
De cele mai multe ori, sălile de studiu sunt întotdeauna luate. Acest lucru se întâmplă deoarece oamenilor le place să rămână în cameră mult mai mult decât au nevoie. Am proiectat un cronometru care permite fiecărei persoane un total de 2 ore și persoanelor care așteaptă posibilitatea de a solicita să fie camera următoare. Utilizarea RGB pe Neopixeli va exprima cantitatea de timp rămasă.
Pasul 3: Prezentare generală a modului în care funcționează
Cronometrul este format din piese tăiate de tăietorul laser, 3 butoane, 1 LED, 1 potențiometru.
Neopixeli și potențiometrul sunt conectați la NodeMCU. NodeMCU este programat pentru a regoniza cât de mult este rotit potențiometrul pentru a modifica cantitatea de LED-uri care sunt aprinse pe banda circulară Neopixel. Butonul Cerere oprește funcția funcției Start, Stop și Set time. Culoarea LED-urilor de pe cronometrul din interiorul camerei este aceeași culoare a LED-urilor aprinse pe partea laterală a cutiei. Neopixelul din partea laterală a cutiei reprezintă afișajul din holul clădirii pentru a ști ce cameră este luată și cât timp mai rămâne. 2 LED-uri sunt prescrise pentru fiecare cameră, un LED reprezintă dacă camera este luată, iar celălalt LED reflectă culoarea LED-urilor de pe cronometru (verde este mai mult timp, apoi galben, apoi roșu pentru mai puțin timp).
Pasul 4: Lista de materiale și instrumente
-Acrilic clar
-Cablu MicroUSB
www.digikey.com/product-detail/en/stewart-…
-Panoul
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-Potentiometru
www.alliedelec.com/honeywell-380c32500/701…
-3 butoane
www.digikey.com/product-detail/en/te-conne…
-NodeMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
- 2 benzi de Neopixel
www.amazon.com/Lighting-Modules-NeoPixel-W…
-Rezistori
www.digikey.com/product-detail/en/te-conne…
- Fire
www.digikey.com/product-detail/en/sparkfun…
-1 LED
www.mouser.com/ProductDetail/Cree-Inc/C512…
-Pistola de lipit fierbinte
www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…
-Bande cu velcro lipicios
www.amazon.com/VELCRO-Brand-90076-Fastener…
Pasul 5: începeți să construiți cu Breadboard
A0 până la pinul central de pe potențiometru
Vin to Power on Neopixel ring
3v3 pe o parte a potențiometrului
Toate terenurile către Ground on NodeMCU
Butonul D1 pentru a solicita
D2 pentru a solicita LED
D3 la butonul Start
D4 pentru a opri butonul
D5 pentru a rezista la intrarea Neopixel pe inel
D6 pentru a rezista la banda de intrare Neopixel
Pasul 6: Pornirea codului
Acesta este codul pentru a vă asigura că proiectul dvs. funcționează până acum. Cronometrul ar trebui să fie de doar câteva secunde pe LED pe inelul Neopixel. Odată ce știți că funcționează până în acest moment, tot ce trebuie să faceți este să modificați ora dacă declarațiile de mai jos la intervalul specificat. Voi pune „#Change time” pe fiecare dintre situații dacă afirmațiile pe care trebuie să le modificați pentru alocarea timpului.
Încercarea codului:
import utime
timpul de import
de la importul de mașini ADC
mașină de import
import neopixel
adc = ADC (0)
pin = machine. Pin (14, machine. Pin. OUT)
np = neopixel. NeoPixel (pin, 12)
pin2 = machine. Pin (12, machine. Pin. OUT)
np2 = neopixel. NeoPixel (pin2, 8)
l1 = machine. Pin (4, machine. Pin. OUT)
b1 = machine. Pin (5, machine. Pin. IN, machine. Pin. PULL_UP)
b3 = machine. Pin (2, machine. Pin. IN, machine. Pin. PULL_UP)
b2 = machine. Pin (0, machine. Pin. IN, machine. Pin. PULL_UP)
l1.value (0)
def tglled (): # comută funcția LED „cerere”
dacă l1.value () == 0:
l1.value (1)
altceva:
l1.value (0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
în timp ce este adevărat:
# Acesta este butonul care comută LED-ul „solicitare”
b1temp2 = b1.value ()
dacă b1temp1 și nu b1temp2:
tglled ()
time.sleep (0,05)
b1temp1 = b1temp2
# Aceasta este grila
np2 [0] = np [11]
dacă l1.value () == 1:
np2 [1] = (30, 0, 0)
altceva:
np2 [1] = (0, 0, 30)
np2.write ()
# Aici selectăm cât timp avem nevoie
dacă t == 0:
pentru i în intervalul (-1, 12):
if (l1.value () == 0):
dacă (adc.read ()> = (85.34 * (i + 1))):
np = (0, 0, 0)
np [11] = (0, 0, 30)
s = (i + 1)
altceva:
np = (0, 0, 30)
np.write ()
altceva:
np = (0, 0, 0)
np.write ()
# Acesta este butonul pentru a porni cronometrul
dacă (l1.value () == 0) și (t == 0):
b2temp2 = b2.value ()
dacă b2temp1 și nu b2temp2:
x + = 1
t + = (s * 100)
time.sleep (0,05)
b2temp1 = b2temp2
# Acest buton termină cronometrul
if (l1.value () == 0):
b3temp2 = b3.value ()
dacă b3temp1 și nu b3temp2:
x = 0
t = 0
time.sleep (0,05)
b3temp1 = b3temp2
# Acesta este cronometrul
dacă x> 0:
t + = 1
dacă (t> 0) și (t <= 100): # Timp de schimbare
np [0] = (5, 30, 0)
np [1] = (5, 30, 0)
np [2] = (5, 30, 0)
np [3] = (5, 30, 0)
np [4] = (5, 30, 0)
np [5] = (5, 30, 0)
np [6] = (5, 30, 0)
np [7] = (5, 30, 0)
np [8] = (5, 30, 0)
np [9] = (5, 30, 0)
np [10] = (5, 30, 0)
np [11] = (5, 30, 0)
np.write ()
dacă (t> 100) și (t <= 200): # Timp de schimbare
np [0] = (0, 0, 0)
np [1] = (10, 30, 0)
np [2] = (10, 30, 0)
np [3] = (10, 30, 0)
np [4] = (10, 30, 0)
np [5] = (10, 30, 0)
np [6] = (10, 30, 0)
np [7] = (10, 30, 0)
np [8] = (10, 30, 0)
np [9] = (10, 30, 0)
np [10] = (10, 30, 0)
np [11] = (10, 30, 0)
np.write ()
dacă (t> 200) și (t <= 300): # Timp de schimbare
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (15, 30, 0)
np [3] = (15, 30, 0)
np [4] = (15, 30, 0)
np [5] = (15, 30, 0)
np [6] = (15, 30, 0)
np [7] = (15, 30, 0)
np [8] = (15, 30, 0)
np [9] = (15, 30, 0)
np [10] = (15, 30, 0)
np [11] = (15, 30, 0)
np.write ()
if (t> 300) și (t <= 400): # Timp de schimbare
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (20, 30, 0)
np [4] = (20, 30, 0)
np [5] = (20, 30, 0)
np [6] = (20, 30, 0)
np [7] = (20, 30, 0)
np [8] = (20, 30, 0)
np [9] = (20, 30, 0)
np [10] = (20, 30, 0)
np [11] = (20, 30, 0)
np.write ()
if (t> 400) și (t <= 500): # Timp de schimbare
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (25, 30, 0)
np [5] = (25, 30, 0)
np [6] = (25, 30, 0)
np [7] = (25, 30, 0)
np [8] = (25, 30, 0)
np [9] = (25, 30, 0)
np [10] = (25, 30, 0)
np [11] = (25, 30, 0)
np.write ()
if (t> 500) și (t <= 600): # Timp de schimbare
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (30, 30, 0)
np [6] = (30, 30, 0)
np [7] = (30, 30, 0)
np [8] = (30, 30, 0)
np [9] = (30, 30, 0)
np [10] = (30, 30, 0)
np [11] = (30, 30, 0)
np.write ()
dacă (t> 600) și (t <= 700): # Schimbă timpul
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (0, 0, 0)
np [6] = (30, 25, 0)
np [7] = (30, 25, 0)
np [8] = (30, 25, 0)
np [9] = (30, 25, 0)
np [10] = (30, 25, 0)
np [11] = (30, 25, 0)
np.write ()
dacă (t> 700) și (t <= 800): # Schimbă timpul
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (0, 0, 0)
np [6] = (0, 0, 0)
np [7] = (30, 20, 0)
np [8] = (30, 20, 0)
np [9] = (30, 20, 0)
np [10] = (30, 20, 0)
np [11] = (30, 20, 0)
np.write ()
dacă (t> 800) și (t <= 900): # Timp de schimbare
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (0, 0, 0)
np [6] = (0, 0, 0)
np [7] = (0, 0, 0)
np [8] = (30, 15, 0)
np [9] = (30, 15, 0)
np [10] = (30, 15, 0)
np [11] = (30, 15, 0)
np.write ()
if (t> 900) și (t <= 1000): # Timp de schimbare
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (0, 0, 0)
np [6] = (0, 0, 0)
np [7] = (0, 0, 0)
np [8] = (0, 0, 0)
np [9] = (30, 10, 0)
np [10] = (30, 10, 0)
np [11] = (30, 10, 0)
np.write ()
dacă (t> 1000) și (t <= 1100): # Schimbă timpul
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (0, 0, 0)
np [6] = (0, 0, 0)
np [7] = (0, 0, 0)
np [8] = (0, 0, 0)
np [9] = (0, 0, 0)
np [10] = (30, 5, 0)
np [11] = (30, 5, 0)
np.write ()
if (t> 1100) și (t <= 1200): # Schimbă timpul
np [0] = (0, 0, 0)
np [1] = (0, 0, 0)
np [2] = (0, 0, 0)
np [3] = (0, 0, 0)
np [4] = (0, 0, 0)
np [5] = (0, 0, 0)
np [6] = (0, 0, 0)
np [7] = (0, 0, 0)
np [8] = (0, 0, 0)
np [9] = (0, 0, 0)
np [10] = (0, 0, 0)
np [11] = (30, 0, 0)
np.write ()
dacă t> = 1300: # Timp de schimbare
t = 0
x = 0
Pasul 7: Atingeri de finisare
Acum, odată ce sunteți atât de departe, ar trebui să aveți codul de lucru încărcat pe NodeMCU și toate părțile conectate la panoul de verificare. După ce ați încercat codul și ați tăiat orice bucăți pe care le aveți pentru exterior, adică carcasa tăiată cu laser, puteți lipi acum firele către NodeMCU. Lipirea este opțională, dar poate fi mai sigură și mai mică pentru carcasă. Iată câteva dintre părțile tăiate cu laser pe care le-am realizat.
Recomandat:
Lupta împotriva Coronavirusului: Cronometru simplu pentru spălarea mâinilor: 8 pași (cu imagini)
Lupta împotriva Coronavirusului: Cronometru simplu pentru spălarea mâinilor: Odată cu actuala pandemie din lume, situația pare destul de înfricoșătoare. Virusul Corona ar putea fi oriunde. Din câte știm, s-ar putea transporta virusul timp de câteva zile, fără a prezenta nici măcar simptome. Înfricoșător într-adevăr, dar hei, nu te speria prea mult
Cronometru bazat pe Arduino pentru pompa Aquaponics: 4 pași
Temporizator bazat pe Arduino pentru pompa Aquaponics: Acesta este un mic temporizator Arduino bazat pe pompa Aquaponics. Am un sistem de acvaponică mic configurat în interior cu flux continuu. Pompa funcționează continuu și am vrut să fac un cronometru care să facă pompa să funcționeze pentru un anumit amo
Iluminarea mesei LED pentru benzi de studiu: 6 pași
Iluminare pentru masă de studiu cu benzi cu LED-uri DIY: Bună ziua, creatori, acesta este primul meu proiect instructiv. Ideea de bază și inspirația din spatele realizării acestui proiect este de a transforma masa mea de studiu plictisitoare și plictisitoare în camera de hostel într-o masă pe deplin motivantă și încurajatoare
Stabilizator pentru cameră pentru ENV2 sau alte telefoane cu cameră: 6 pași
Camera Stabilizer pentru ENV2 sau alte telefoane cu cameră: vreți vreodată să faceți un videoclip, dar aveți doar un telefon cu cameră? Ați făcut vreodată un videoclip cu un telefon cu cameră, dar nu îl puteți ține nemișcat? Ei bine, acesta este instructivul pentru tine
Suport pentru trepied pentru o cameră rapidă (sau altă cameră web): 5 pași
Suport pentru trepied pentru o cameră foto rapidă (sau altă cameră web): există multe motive pentru care ați putea dori să puneți camera web pe un trepied. Trebuia să fac acest lucru, deoarece suportul pentru Logitech QuickCam Pro 4000 lipsea, dar este adesea plăcut să-l folosesc cu un trepied pentru imagini mai bune, în general, mai ales dacă