Inhoudsopgave:

Lichtgevoelige iris: 4 stappen
Lichtgevoelige iris: 4 stappen

Video: Lichtgevoelige iris: 4 stappen

Video: Lichtgevoelige iris: 4 stappen
Video: Zo maak je een Brow Tattoo in 4 stappen | Make-up tutorial | Kruidvat 2024, November
Anonim
Image
Image
Lichtgevoelige iris
Lichtgevoelige iris

Deze tutorial laat zien hoe je een irisdiafragma maakt dat, net als de menselijke iris, uitzet bij weinig licht en samentrekt in omgevingen met veel licht.

Stap 1: 3D printen

3d printen
3d printen
3d printen
3d printen
3d printen
3d printen

Het fabricageproces voor de 3D-geprinte componenten van deze build zou een eigen zelfstudiepagina kunnen hebben, en in feite is dat wat ik heb gebruikt om ze te maken:

www.thingiverse.com/thing:2019585

Ik heb de bestanden hier voor het gemak bijgevoegd.

Een paar opmerkingen over dit voorbeeld, de bladen (of bladeren) van de iris zijn eigenlijk geproduceerd met een harsprinter die dezelfde bestanden gebruikt vanwege de beperkingen van de 3D-printer. Ook is de hele print 10% opgeschaald. Om de stukken samen te laten werken, was wat detailwerk nodig, ik heb de stukken uiteindelijk veel gevormd met fijn schuurpapier, een mes en een boor.

Andere irissen die ik tijdens dit proces heb onderzocht:

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

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

Stap 2: Onderdelen

Onderdelen
Onderdelen
Onderdelen
Onderdelen
Onderdelen
Onderdelen

De afbeeldingen tonen de onderdelen die je nodig hebt, evenals enkele gereedschappen en materialen die ik heb gebruikt om het model te bouwen dat in de galerij wordt getoond:

- 3D-geprint irisdiafragma

- Futaba S3003 servomotor

- Arduino UNO micro-crontroller

- Lichtafhankelijke weerstand: donkerweerstand 1M ohm / lichtweerstand 10 ohm – 20k ohm

- 10k ohm analoge potentiometer

- 500 ohm weerstand

- PCB (printplaat)

- koppen (vijf)

- draad: zwart, rood, wit en geel

- dupont aansluitdraden (twee)

- soldeerbout (en soldeer)

-multimeter

- draadknipsels

De structuur die dit prototype herbergt, is gemaakt met MDF, 3/4 inch multiplex, houtlijm, hete lijmpistool, stijve draad (van een kleerhanger en een paperclip), evenals verschillende boren en bits, een tafelzaag en een lintzaag, schuurmachine en veel vallen en opstaan. Het object van de foto's is de derde iteratie.

Stap 3: Het circuit / de behuizing bouwen

Het circuit/de behuizing bouwen
Het circuit/de behuizing bouwen
Het circuit/de behuizing bouwen
Het circuit/de behuizing bouwen
Het circuit/de behuizing bouwen
Het circuit/de behuizing bouwen

Ik had een raadsel in de stijl van "kip en ei" tijdens het ontwerpen van dit aspect. Omdat ik geen ervaring heb met elektronische schema's, denk ik liever na over de schakeling in termen van de daadwerkelijke configuratie, of pseudo-schema. Ik ontdekte dat de architectuur van zowel de MDF/multiplex-behuizing als de bedrading elkaar op onverwachte manieren beperkten. Ik probeerde iets te bedenken dat visueel eenvoudig en op zichzelf staand was.

-De potentiometer was een idee in een laat stadium tijdens het brainstormen om een "gevoeligheids"-regelaar toe te voegen, aangezien de omgevingslichtomstandigheden sterk kunnen variëren, nemen de potentiometer en weerstand samen de plaats in van een normale weerstand in het spanningsdeleraspect van het circuit. Ik kan hier niet in detail op ingaan omdat ik niet echt weet hoe het allemaal werkt.

-Het verticale deel van de behuizing (gemaakt van MDF) staat onder een kleine hoek. Om in hetzelfde vlak als de iris te draaien, heb ik een op een tafel gemonteerde bandschuurmachine gebruikt om dezelfde hoek te creëren op de houten servobevestiging die ik op de triplexbasis heb gelijmd.

-Ik ontdekte ook dat de servo er de voorkeur aan gaf de MDF-plaat recht van de basis te tillen in plaats van de iris te articuleren, dus voegde ik een draadvasthoudnietje toe dat aan de voorkant wordt ingebracht om de twee stukken te vergrendelen. Terwijl ik bezig was, voegde ik pinnen voor het Arduino-bord uit dezelfde draad. De draad die de actuatorarm met de servo verbindt, is trouwens een paperclip.

-De iris past precies in de MDF, maar ik heb zelfs nog een kraal hete lijm toegevoegd om te voorkomen dat de hele behuizing in de socket draait in plaats van alleen de actuatorarm. Dit vereiste een nauwkeurigere uitlijning van de servo-hefboomarm dan ik had verwacht. Wat waarschijnlijk duidelijk is voor velen die deze tutorial gebruiken, hoewel onverwacht voor mij toen ik begon, was dat de rotatie van de servo en de rotatie van de iris 1:1 is. Ik moest een kleine plastic armverlenging maken voor de servo om dezelfde straal te bereiken als de iris-actuatorarm. De code maakte oorspronkelijk volledig gebruik van het rotatiepotentieel van de servo, maar ik heb uiteindelijk de werkelijke rotatie van de iris gemeten en vond vervolgens, met vallen en opstaan, een aangepaste waarde voor de rotatiegraden van de servo die een interessant effect bereikte.

- Veel van de belangrijke bedradingsverbindingen zijn verborgen onder de printplaat in de afbeeldingen. Ik vergat een foto van die kant van de printplaat te maken voordat ik hem op de MDF plakte. Dit is maar het beste, aangezien niemand de rotzooi mag kopiëren die ik onder dat kleine stukje PCB heb verstopt. Mijn doel voor de PCB was om headers te hebben voor de 5volt-, Ground- en servoconnectoren, zodat de stukken gemakkelijk uit elkaar konden worden gehaald voor onvoorziene probleemoplossing in de toekomst, een functie die van pas kwam. Ik gaf de juiste richting voor header-connectoren aan met een stuk plakband op de MDF naast de PCB, hoewel ik veronderstel dat ik rechtstreeks op de MDF had kunnen schrijven … het leek op dat moment het juiste om te doen.

Stap 4: Coderen

Code
Code

#include // servo-bibliotheek

Servo-service; // verklaring van servonaam

int sensorPin = A1; // selecteer de invoerpin voor LDR

int sensorWaarde = 0; // variabele om de waarde van de sensor op te slaan

int timeOUT = 0; //variabele voor servo

int-hoek = 90; //variabele om pulsen op te slaan

ongeldige setup()

{

serv.attach(9); // bevestigt de servo op pin 9 aan het servo-object Serial.begin (9600); // stelt seriële poort in voor communicatie

}

lege lus()

{

sensorValue = analoog lezen (sensorPin); // lees de waarde van de sensor

Serial.println(sensorValue); // drukt de waarden van de sensor op het scherm af

hoek = kaart (sensorWaarde, 1023, 0, 0, 88); // converteert digitale waarden naar rotatiegraden voor de servo

serv.write(hoek); // laat servo bewegen

vertraging (100);

}

Aanbevolen: