Cuprins:

Iris sensibil la lumină: 4 pași
Iris sensibil la lumină: 4 pași

Video: Iris sensibil la lumină: 4 pași

Video: Iris sensibil la lumină: 4 pași
Video: Cargo - Daca ploaia s-ar opri (Official Video) 2024, Decembrie
Anonim
Image
Image
Iris sensibil la lumină
Iris sensibil la lumină

Acest tutorial arată cum să creați o diafragmă a irisului care, la fel ca irisul uman, se va dilata la lumină slabă și se va restrânge în medii cu lumină puternică.

Pasul 1: Imprimare 3D

printare 3d
printare 3d
printare 3d
printare 3d
printare 3d
printare 3d

Procesul de fabricație pentru componentele tipărite 3D ale acestei construcții ar putea avea propria sa pagină de tutorial și, de fapt, asta am folosit pentru a le face:

www.thingiverse.com/thing:2019585

Am inclus fișierele aici pentru comoditate.

Câteva note despre acest exemplu, lamele (sau frunzele) irisului au fost de fapt produse cu o imprimantă cu rășină folosind aceleași fișiere din cauza limitărilor imprimantei 3D. De asemenea, întreaga imprimare a fost mărită cu 10%. Funcționarea împreună a pieselor a necesitat o lucrare detaliată, am ajuns să modelez piesele mult cu hârtie de nisip fină, un cuțit utilitar și un burghiu.

Alte irisuri pe care le-am investigat în timpul acestui proces:

souzoumaker.com/blog-1/2017/8/12/mechanica…

www.instructables.com/id/How-to-make-a-12-…

Pasul 2: Piese

Părți
Părți
Părți
Părți
Părți
Părți

Imaginile prezintă piesele de care aveți nevoie, precum și unele dintre instrumentele și materialele pe care le-am folosit pentru a construi modelul prezentat în galerie:

- Diafragmă iris tipărită 3D

- Servomotor Futaba S3003

- Microcontroler Arduino UNO

- Rezistență dependentă de lumină: rezistență la întuneric 1M ohm / rezistență la lumină 10 ohm - 20k ohm

- Potențiometru analogic de 10k ohm

- Rezistor de 500 ohmi

- PCB (placa de circuit imprimat)

- anteturi (cinci)

- fir: negru, roșu, alb și galben

- fire conector dupont (două)

- fier de lipit (și lipit)

-multimetru

- tăieturi de sârmă

Structura care găzduiește acest prototip a fost realizată cu MDF, placaj de 3/4 inch, lipici pentru lemn, pistol de lipit fierbinte, sârmă rigidă (dintr-un cuier și o agrafă), precum și diverse burghie și biți, un ferăstrău de masă și un ferăstrău cu bandă, șlefuitor electric și multe încercări și erori. Obiectul din fotografii este a treia iterație.

Pasul 3: Construirea circuitului / carcasei

Construirea circuitului / carcasei
Construirea circuitului / carcasei
Construirea circuitului / carcasei
Construirea circuitului / carcasei
Construirea circuitului / carcasei
Construirea circuitului / carcasei

Am avut o enigmă în stil „pui și ou” în timp ce proiectam acest aspect. Deoarece nu am experiență în schemele electronice, prefer să mă gândesc la circuit în ceea ce privește configurația sa reală sau pseudo-schematică. Am constatat că arhitectura atât a carcasei MDF / placaj, cât și a cablajului se constrângeau reciproc în moduri neașteptate. Am încercat să vin cu ceva vizual simplu și autonom.

-Potențiometrul a fost o idee de etapă târzie în timpul brainstorming-ului pentru a adăuga un reglator de „sensibilitate”, deoarece condițiile de iluminare ambientală pot varia foarte mult, potențiometrul și rezistorul ocupă locul unui rezistor normal în aspectul divizorului de tensiune al circuitului. Nu pot intra în detalii despre acest lucru, deoarece nu știu cum funcționează totul.

-Partea verticală a carcasei (din MDF) este la un unghi ușor. Pentru a mă roti în același plan cu irisul, am folosit o mașină de șlefuit montată pe masă pentru a crea același unghi pe suportul de lemn pe care l-am lipit de baza din placaj.

-Am constatat, de asemenea, că servo-ul a preferat să ridice placa MDF chiar de pe bază în loc să articuleze irisul, așa că am adăugat o capsă de fixare a firului care se introduce în partea din față pentru a bloca cele două piese. În timp ce mă aflam, am adăugat pini pentru placa Arduino din același fir. Apropo, firul care conectează brațul actuatorului la servo este o agrafă.

-Irisul se potrivește perfect în MDF, dar chiar și totuși am adăugat o margine de adeziv fierbinte pentru a preveni rotirea întregii carcase în priză în loc doar de brațul actuatorului. Acest lucru a necesitat o aliniere mai precisă a brațului servo-pârghiei decât mă așteptasem. Ceea ce este evident pentru mulți care folosesc acest tutorial, deși neașteptat pentru mine când am început, a fost că rotația servo și rotația irisului este 1: 1. A trebuit să fac o mică extensie de braț din plastic pentru ca servo să atingă aceeași rază ca brațul actuatorului irisului. Codul a profitat inițial de potențialul de rotație al servo-ului, dar am ajuns să măsoară rotația efectivă a irisului, apoi, prin încercări și erori, am găsit o valoare personalizată pentru gradele de rotație ale servo-ului care au obținut un efect interesant.

- Multe dintre conexiunile importante de cablare sunt ascunse sub PCB în imagini. Am uitat să fac o poză cu acea parte a PCB-ului înainte să o lipesc la cald de MDF. Acest lucru este cel mai bun, deoarece nimeni nu ar trebui să copieze mizeria pe care am ascuns-o sub acea bucată mică de PCB. Obiectivul meu pentru PCB a fost să am anteturi pentru conectorii de 5 volt, masă și servo, astfel încât piesele să se poată separa cu ușurință pentru depanarea neprevăzută în viitor, o caracteristică care a fost utilă. Am indicat orientarea corectă pentru conectorii de antet cu o bucată de bandă de mascare pe MDF de lângă PCB, deși presupun că aș fi putut scrie direct pe MDF … mi s-a părut lucrul corect de făcut în acel moment.

Pasul 4: Cod

Cod
Cod

#include // servotecă

Servo serv; // declarația numelui servo

int sensorPin = A1; // selectați pinul de intrare pentru LDR

int sensorValue = 0; // variabilă pentru a stoca valoarea provenită de la senzor

int timeOUT = 0; // variabilă pentru servo

int unghi = 90; // variabilă pentru a stoca impulsurile

configurare nulă ()

{

serv.attach (9); // atașează servo pe pinul 9 la obiectul servo Serial.begin (9600); // setează portul serial pentru comunicare

}

bucla nulă ()

{

sensorValue = analogRead (senzorPin); // citiți valoarea din senzor

Serial.println (sensorValue); // imprimă valorile provenite de la senzor pe ecran

unghi = hartă (senzorValor, 1023, 0, 0, 88); // convertește valorile digitale în grade de rotație pentru servo

serv.write (unghi); // face mișcarea servo

întârziere (100);

}

Recomandat: