Съдържание:

Светлочувствителен ирис: 4 стъпки
Светлочувствителен ирис: 4 стъпки

Видео: Светлочувствителен ирис: 4 стъпки

Видео: Светлочувствителен ирис: 4 стъпки
Видео: 3 РЕЦЕПТА из КУРИНОЙ ПЕЧЕНИ/ ПАШТЕТ!! ГОСТИ БУДУТ В ШОКЕ!! 2024, Ноември
Anonim
Image
Image
Светлочувствителен ирис
Светлочувствителен ирис

Този урок показва как да създадете ирисова диафрагма, която, подобно на човешката ирис, ще се разширява при слаба светлина и ще се свива при ярка светлина.

Стъпка 1: 3D печат

3D печат
3D печат
3D печат
3D печат
3D печат
3D печат

Процесът на производство на 3D отпечатаните компоненти на тази конструкция може да има своя собствена страница с уроци и всъщност това е, което използвах, за да ги направя:

www.thingiverse.com/thing:2019585

Включих файловете тук за удобство.

Няколко бележки за този пример, остриетата (или листата) на ириса всъщност са произведени с принтер със смола, използвайки същите файлове поради ограниченията на 3D принтера. Също така целият отпечатък беше увеличен с 10%. За да накарам парчетата да работят заедно, беше необходима доста подробна работа. В крайна сметка оформях парчетата много с фина шкурка, нож за помощ и бормашина.

Други ириси, които изследвах по време на този процес:

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

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

Стъпка 2: Части

Части
Части
Части
Части
Части
Части

Изображенията показват частите, които ще ви трябват, както и някои от инструментите и материалите, които използвах за изграждането на модела, показан в галерията:

- 3D печатна диафрагма на ириса

- Серво мотор Futaba S3003

- Микроконтролер Arduino UNO

- Светлозависим резистор: тъмно съпротивление 1M ом / светло съпротивление 10 ома - 20k ом

- 10k ohm аналогов потенциометър

- 500 ома резистор

- печатна платка (печатна платка)

- заглавки (пет)

- проводник: черен, червен, бял и жълт

- проводници на съединителя dupont (два)

- поялник (и спойка)

-мултиметър

- телчета

Структурата, в която се помещава този прототип, е направена от MDF, 3/4 инчов шперплат, лепило за дърво, пистолет за горещо лепило, твърда тел (от закачалка и кламер), както и различни свредла и накрайници, настолен трион и лентов трион, шлифовъчна машина и много опити и грешки. Обектът от снимките е третата итерация.

Стъпка 3: Изграждане на верига/корпус

Изграждане на верига/корпус
Изграждане на верига/корпус
Изграждане на верига/корпус
Изграждане на верига/корпус
Изграждане на верига/корпус
Изграждане на верига/корпус

Имах загадка в стил „пиле и яйце“, докато проектирах този аспект. Тъй като нямам опит с схемите на електрониката, предпочитам да мисля за схемата от гледна точка на нейната действителна конфигурация или псевдо-схеми. Открих, че архитектурата на корпуса от MDF/шперплат и окабеляването се ограничават помежду си по неочаквани начини. Опитах се да измисля нещо визуално просто и самостоятелно.

-Потенциометърът беше идея на късен етап по време на мозъчната атака, за да се добави регулатор за "чувствителност", тъй като условията на околното осветление могат да варират значително, потенциометърът и резисторът заедно заемат мястото на нормален резистор в разделителя на напрежението на веригата. Не мога да навлизам в подробности по този въпрос, защото всъщност не знам как всичко работи.

-Вертикалната част на корпуса (изработена от MDF) е под лек ъгъл. За да се въртя в същата равнина като ириса, използвах лентова шлайфмашина, монтирана на маса, за да създам същия ъгъл върху дървената серво стойка, която залепих към основата от шперплат.

-Открих също, че сервото предпочита да повдигне MDF плочата направо от основата, вместо да съчленява ириса, затова добавих телбод, задържащ тел, който се вмъква отпред, за да заключи двете части. Докато бях на него, добавих щифтове за платката Arduino от същия проводник. Между другото, проводникът, свързващ рамото на задвижването със серво, е кламер.

-Ирисът се вписва плътно в MDF, но въпреки това добавих мънисто горещо лепило, за да предотвратя въртенето на целия корпус в гнездото вместо само рамото на задвижването. Това наложи по -прецизно подравняване на рамото на серво лоста, отколкото очаквах. Това, което вероятно е очевидно за мнозина, използващи този урок, макар и неочаквано за мен, когато започнах, беше, че въртенето на сервото и въртенето на ириса са 1: 1. Трябваше да направя малко пластмасово удължение на рамото за серво, за да постигна същия радиус като рамото на задействащия механизъм на ириса. Кодът първоначално се възползва изцяло от ротационния потенциал на серво, но в крайна сметка измервах действителното въртене на ириса, след което чрез опит и грешка открих персонализирана стойност за степени на въртене на серво, която постигна интересен ефект.

- Много от важните кабелни връзки са скрити под печатната платка в изображенията. Забравих да снимам тази страна на печатната платка, преди да я залепя горещо към MDF. Това е най -доброто, тъй като никой не трябва да копира бъркотията, която скрих под това малко парче печатна платка. Моята цел за печатната платка беше да има заглавки за 5 -волтовите, заземяващите и серво конекторите, така че парчетата да могат лесно да се разпаднат за непредвидено отстраняване на неизправности в бъдеще, функция, която беше полезна. Посочих правилната ориентация на конекторите на заглавието с парче маскираща лента върху MDF до печатната платка, въпреки че предполагам, че можех да пиша директно върху MDF … изглеждаше като правилното нещо по това време.

Стъпка 4: Код

Код
Код

#include // серво библиотека

Серво сервиз; // декларация за име на серво

int sensorPin = A1; // избираме входния щифт за LDR

int sensorValue = 0; // променлива за съхраняване на стойността, идваща от сензора

int timeOUT = 0; // променлива за серво

int ъгъл = 90; // променлива за съхраняване на импулси

void setup ()

{

serv.attach (9); // прикачва серво на щифт 9 към серво обекта Serial.begin (9600); // задава сериен порт за комуникация

}

void loop ()

{

sensorValue = analogRead (sensorPin); // отчита стойността от сензора

Serial.println (sensorValue); // отпечатва стойностите, идващи от сензора на екрана

ъгъл = карта (sensorValue, 1023, 0, 0, 88); // преобразува цифровите стойности в степени на въртене за серво

serv.write (ъгъл); // кара серво да се движи

забавяне (100);

}

Препоръчано: