Агуулгын хүснэгт:
- Алхам 1: Шаардлагатай материал, эд анги:
- Алхам 2: Neopixel Rings
- Алхам 3: Холболтууд
- Алхам 4: Код:
- Алхам 5: Бүгдийг нэгтгэх:
Видео: Амрах нүдний шил - ITTT: 5 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
HKU төсөл - ITTT (Хэрэв энэ нь тэгвэл) - Жулия Беркувер, 1В
Та хэзээ нэгэн цагт стресст орж, өөрийгөө хэрхэн тайвшруулахаа мэдэхгүй байгаа бол тайвшруулах шилийг туршиж үзээрэй. Та тэдгээрийг өмсөөд нүдээ анихад амьсгалын хэв маяг тоглох болно. Энэхүү амьсгалын хэв маягийг дагаж таны амьсгалын хэмнэл минутанд 6 удаа амьсгалж, гарах болно. Үүнийг хийснээр өдөр тутмын стрессийг тайлдаг.
Та мөн fsr мэдрэгч ашиглан унтраалга дээр дарж амьсгалаа хянах боломжтой.
Энэхүү гарын авлагын тусламжтайгаар би танд амрах шилээ алхам алхамаар хийх болно.
Алхам 1: Шаардлагатай материал, эд анги:
Материал:
1 удаа arduino uno;
1х самбар эсвэл PCV;
3х 10к резистор
Утаснууд (өөр өөр өнгө байх нь зүйтэй тул аль зүйл газар руу, аль нь өөр тээглүүр рүү явж байгааг хэлэх нь илүү хялбар болно);
Дулаан багасгадаг зарим хоолой;
2x NeoPixel Ring - Нэгдсэн драйвер бүхий 16 x 5050 RGB LED;
1х унтраалга;
1x FSR мэдрэгч;
1x SteamPunk нүдний шил (Та үүнийг үдэшлэгийн дэлгүүрээс худалдаж авч болно, неопикселийн бөгж нь шилэнд бүрэн нийцдэг тул ашиглахад хялбар байдаг. Та үргэлж бусад нүдний шил ашиглахыг хичээгээрэй эсвэл өөрөө хий.);
Цээжиндээ 1x төрлийн уян харимхай тууз.
Хэрэгсэл:-Зөөврийн компьютер
-Гагнуурын төмөр
-Arduino IDE програм хангамж
Миний pvc дээр та хоёр товчлуур, унтраалгыг харах болно, би үүнийг зөвхөн зүүн товчлуур дээр холбож холбоно, би зургийн баруун талд байгаа хоёр дахь товчлуурыг ашигладаггүй. Би товчлууруудаа pvc дээр байрлуулаад надад хэрэггүй, оронд нь унтраалга ашиглах хэрэгтэй болсон.
Доор та миний ашигласан бүх зүйлийн зургийг харах болно.
Алхам 2: Neopixel Rings
Цагаан утас нь неопикселийн цагирагны арын хэсэгт газардсан байна.
Улбар шар өнгийн утас нь 5V -т холбогдсон байна.
Мөн хүрэн утас нь өгөгдлийн оролттой холбогдсон байна
Алхам 3: Холболтууд
Прототип хийх явцад миний талхны самбар иймэрхүү харагдаж байсан тул та үүнийг лавлагаа болгон ашиглаж болно.
Би мөн ганц товчлуураар ямар байх ёстойг нь харуулсан утаснуудын схемийг хийсэн.
Алхам 4: Код:
Энэ нь хамгийн үр дүнтэй код биш байж магадгүй ч энэ нь миний хувьд ажилладаг. Өөрийгөө сорьж, илүү үр дүнтэй болгохыг хичээ; P
#оруулах
// Аль
Arduino дээрх pin нь NeoPixels -тэй холбогдсон уу?
#тодорхойлох
ПИН 6
// Аль
Arduino дээрх зүү товчлууртай холбогдсон байна
#тодорхойлох
BUTTON_PIN 9
// Яаж
олон NeoPixel Arduino -д залгагдсан уу?
#тодорхойлох
NUMPIXELS 16
// Хэзээ
Бид NeoPixel номын санг тохируулж, хэдэн пиксел, ямар зүү ашиглан дохио илгээхийг хэлж өгдөг.
// Тэмдэглэл
Хуучин NeoPixel туузны хувьд та гуравдахь параметрийг өөрчлөх шаардлагатай болж магадгүй юм
//
боломжит үнэ цэнийн талаар нэмэлт мэдээлэл авах жишээ.
Adafruit_NeoPixel
пиксел = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
түр зогсоох
= 1; // саатал 2
int
түр зогсоох2 = 80; // fsr ашиглаж байх үед буурч байна
int
түр зогсоох3 = 150; // fsr ашиглаж байх үед хийх
int
саатал = 4; // саатал 1
int
fsrPin = 0; // FSR ба 10K уналт нь a0 -тэй холбогдсон байна
int
fsrReading;
хоосон
тохируулах() {
pinMode (BUTTON_PIN, INPUT);
Цуваа эхлэх (9600);
пиксел.begin (); // Энэ нь
NeoPixel номын сан.
пиксел.шоу ();
}
bool
товчлуур дарагдсан (int pin) {
digitalRead (pin) -ийг буцаах;
}
хоосон
loop () {// pin оролт үнэн эсвэл худал эсэхийг уншдаг
fsrReading = analogRead (fsrPin);
Serial.print ("Аналог унших =");
Цуваа.хэвлэх (fsrReading);
хэрэв (товчлуур дарагдсан (BUTTON_PIN) == үнэн) {
// fsr мэдрэгчийг ашиглах үед гэрлийн эффект
хэрэв (fsrReading> 50) {
piksel.setPixelColor (0, 1, 0, 1);
piksel.setPixelColor (15, 1, 0, 1);
piksel.setPixelColor (1, 1, 0, 1);
piksel.setPixelColor (14, 1, 0, 1);
пиксел.шоу ();
саатал (түр зогсоох 3);
}
if (fsrReading <52) {
piksel.setPixelColor (0, 0, 0, 0);
piksel.setPixelColor (15, 0, 0, 0);
piksel.setPixelColor (1, 0, 0, 0);
piksel.setPixelColor (14, 0, 0, 0);
пиксел.шоу ();
саатал (түр зогсоох2);
}
if (fsrReading> 57) {
piksel.setPixelColor (2, 1, 0, 1);
piksel.setPixelColor (13, 1, 0, 1);
piksel.setPixelColor (3, 1, 0, 1);
piksel.setPixelColor (12, 1, 0, 1);
пиксел.шоу ();
саатал (түр зогсоох 3);
}
if (fsrReading <59) {
piksel.setPixelColor (2, 0, 0, 0);
piksel.setPixelColor (13, 0, 0, 0);
piksel.setPixelColor (3, 0, 0, 0);
piksel.setPixelColor (12, 0, 0, 0);
пиксел.шоу ();
саатал (түр зогсоох2);
}
хэрэв (fsrReading> 65) {
piksel.setPixelColor (4, 1, 0, 1);
piksel.setPixelColor (11, 1, 0, 1);
piksel.setPixelColor (5, 1, 0, 1);
piksel.setPixelColor (10, 1, 0, 1);
пиксел.шоу ();
саатал (түр зогсоох 3);
}
if (fsrReading <67) {
piksel.setPixelColor (4, 0, 0, 0);
piksel.setPixelColor (11, 0, 0, 0);
piksel.setPixelColor (5, 0, 0, 0);
piksel.setPixelColor (10, 0, 0, 0);
пиксел.шоу ();
саатал (40);
}
if (fsrReading> 79) {
piksel.setPixelColor (6, 1, 0, 1);
piksel.setPixelColor (9, 1, 0, 1);
piksel.setPixelColor (7, 1, 0, 1);
piksel.setPixelColor (8, 1, 0, 1);
пиксел.шоу ();
саатал (түр зогсоох 3);
}
if (fsrReading <85) {
piksel.setPixelColor (6, 0, 0, 0);
piksel.setPixelColor (9, 0, 0, 0);
piksel.setPixelColor (7, 0, 0, 0);
piksel.setPixelColor (8, 0, 0, 0);
пиксел.шоу ();
саатал (20);
}
}
өөр {
амьсгалах хөх (20, 100, 0, 1, 1); // хэвийн
нөлөө
}
}
// Түр зогсоох
= шилжилтийн хоорондох саатал
// Алхам
= алхамуудын тоо
// R, G, B = Бүтэн RGB утга
// Хүчин төгөлдөр бус амьсгал гэдэг нь мөн адил юм
fsrsensor niet gebruikt wordt. Deze void wordt in de void loop () weer aangeroepen.
void breath_blue (завсарлага, int алхам, байт R, байт G
байт B) {
int
tmpR, tmpG, tmpB; // Температурын утга
// Буцах
for (int s = 1; s <= алхам; s ++) {
tmpR = (R * s) /
алхам; // Таслах алдаанаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0;
биpiksel.setPixelColor (0, tmpR, tmpG+1, tmpB);
piksel.setPixelColor (15, tmpR, tmpG+1, tmpB);
}
пиксел.шоу ();
саатал (4);
}
// Буцах
for (int s = 1; s <= алхам; s ++) {
tmpR = (R * s) /
алхам; // Таслах алдаанаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0;
биpiksel.setPixelColor (1, tmpR, tmpG+1, tmpB);piksel.setPixelColor (14, tmpR, tmpG+1, tmpB);
}
пиксел.шоу ();
саатал (4);
}
// Буцах
for (int s = 1; s <= алхам; s ++) {
tmpR = (R * s) /
алхам; // Таслах алдаанаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0;
биpiksel.setPixelColor (2, tmpR, tmpG+2, tmpB);piksel.setPixelColor (13, tmpR, tmpG+2, tmpB);
}
пиксел.шоу ();
саатал (3.5);
}
// Буцах
for (int s = 1; s <= алхам; s ++) {
tmpR = (R * s) /
алхам; // Таслах алдаанаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0;
биpiksel.setPixelColor (3, tmpR, tmpG+3, tmpB+5);piksel.setPixelColor (12, tmpR, tmpG+3, tmpB+5);
}
пиксел.шоу ();
саатал (3);
}
for (int i = 0;
биpiksel.setPixelColor (0, 0, 0, 0);piksel.setPixelColor (15, 0, 0, 0);
}
// Буцах
for (int s = 1; s <= алхам; s ++) {
tmpR = (R * s) /
алхам; // Таслах алдаанаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0;
би
piksel.setPixelColor (4, tmpR, tmpG+3, tmpB+15);piksel.setPixelColor (11, tmpR, tmpG+3, tmpB+15);
}
пиксел.шоу ();
саатал (3);
}
// Буцах
for (int s = 1; s <= алхам; s ++) {
tmpR = (R * s) /
алхам; // Таслах алдаанаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0;
биpiksel.setPixelColor (5, tmpR, tmpG+4, tmpB+20);piksel.setPixelColor (10, tmpR, tmpG+4, tmpB+20);
}
пиксел.шоу ();
саатал (2);
}
for (int i = 0;
биpiksel.setPixelColor (1, 0, 0, 0);
piksel.setPixelColor (14, 0, 0, 0);
}
// Буцах
for (int s = 1; s <= алхам; s ++) {
tmpR = (R * s) /
алхам; // Таслах алдаанаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0;
биpiksel.setPixelColor (6, tmpR, tmpG+2, tmpB+40);
piksel.setPixelColor (9, tmpR, tmpG+2, tmpB+40);
}
пиксел.шоу ();
саатал (хойшлуулах хугацаа);
}
for (int i = 0;
биpiksel.setPixelColor (2, 0, 0, 0);piksel.setPixelColor (13, 0, 0, 0);
}
// Буцах
for (int s = 1; s <= алхам; s ++) {
tmpR = (R * s) /
алхам; // Таслах алдаанаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0;
би
piksel.setPixelColor (7, tmpR, tmpG, tmpB+44);piksel.setPixelColor (8, tmpR, tmpG, tmpB+44);
}
пиксел.шоу ();
саатал (хойшлуулах хугацаа);
}
// Буурах
for (int s = алхам; s> 0; s--) {
tmpR = (R * s) / алхам; // Таслахаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
алдаа
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0; i
piksel.setPixelColor (7, tmpR, tmpG, tmpB);
piksel.setPixelColor (8, tmpR, tmpG, tmpB);
}
пиксел.шоу ();
саатал (1);
}
// Буурах
for (int s = алхам; s> 0; s--) {
tmpR = (R * s) / алхам; // Таслахаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
алдаа
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0; i
piksel.setPixelColor (6, tmpR, tmpG, tmpB);
piksel.setPixelColor (9, tmpR, tmpG, tmpB);
}
пиксел.шоу ();
саатал (1);
}
// Буурах
for (int s = алхам; s> 0; s--) {
tmpR = (R * s) / алхам; // Таслахаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
алдаа
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0; i
piksel.setPixelColor (5, tmpR, tmpG, tmpB);
piksel.setPixelColor (10, tmpR, tmpG, tmpB);
}
пиксел.шоу ();
саатал (2);
}
// Буурах
for (int s = алхам; s> 0; s--) {
tmpR = (R * s) / алхам; // Таслахаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
алдаа
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0; i
piksel.setPixelColor (4, tmpR, tmpG, tmpB);
piksel.setPixelColor (11, tmpR, tmpG, tmpB);
}
пиксел.шоу ();
саатал (2);
}
// Буурах
for (int s = алхам; s> 0; s--) {
tmpR = (R * s) / алхам; // Таслахаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
алдаа
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0; i
piksel.setPixelColor (3, tmpR, tmpG, tmpB);
piksel.setPixelColor (12, tmpR, tmpG, tmpB);
}
пиксел.шоу ();
саатал (3);
}
// Буурах
for (int s = алхам; s> 0; s--) {
tmpR = (R * s) / алхам; //
Таслах алдаанаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0; i
piksel.setPixelColor (2, tmpR, tmpG, tmpB);
piksel.setPixelColor (13, tmpR, tmpG, tmpB);
}
пиксел.шоу ();
саатал (3);
}
// Буурах
for (int s = алхам; s> 0; s--) {
tmpR = (R * s) / алхам; // Таслахаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
алдаа
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0; i
piksel.setPixelColor (1, tmpR, tmpG, tmpB);
piksel.setPixelColor (14, tmpR, tmpG, tmpB);
}
пиксел.шоу ();
саатал (4);
}
// Буурах
for (int s = алхам; s> 0; s--) {
tmpR = (R * s) / алхам; // Таслахаас зайлсхийхийн тулд эхлээд үржүүлнэ үү
алдаа
tmpG = (G * s) / алхам;
tmpB = (B * s) / алхам;
for (int i = 0; i
piksel.setPixelColor (0, tmpR, tmpG, tmpB);
piksel.setPixelColor (15, tmpR, tmpG, tmpB);
}
пиксел.шоу ();
саатал (4);
}
}
Алхам 5: Бүгдийг нэгтгэх:
Та бүх утсаа талх эсвэл PVC -тэй холбож үлдээж болно, энэ нь танд хамаатай (би PVC -ийг arduino -ийн орой дээр тавихаар шийдсэн, энэ нь сайхан, цэвэрхэн).
Дараагийн алхам бол бүх утаснуудын эргэн тойронд дулаан багасгадаг хоолой тавих явдал юм.
Хэрэв та PVC ашиглахаар шийдсэн бол та бүх зүйлийг гагнах ёстой байсан.
Үүний дараа та неопикселийн цагиргийг нүдний шилний гадна талд байрлуулж (гэрлүүд нь доод талд нь таарч байгаа эсэхийг шалгаарай), тууз эсвэл цавуугаар бэхлээрэй (би соронзон хальс ашигласан).
Та fsr мэдрэгчийг уян харимхай туузанд наалдуулж эсвэл өөрөө үлдээж болно.
Нүдний шилээ сайхан өнгөрүүлээрэй:)
Зөвлөмж болгож буй:
DIY - RGB нүдний шил: 3 алхам (зурагтай)
DIY | RGB нүдний шил: Хөөе! Би WS2812B LED болон Arduino Nano ашиглан RGB нүдний шил хийсэн. Нүдний шил нь хөдөлгөөнт апп ашиглан хянадаг олон анимацтай бөгөөд аппликейшн нь Bluetooth модулиар дамжуулан arduino -той харилцах боломжтой
Shota Aizawa-ийн баллуурны толгойн нүдний шил ашиглан нүд анивчих хяналттай гэрлийн унтраалга (Миний баатар академи): 8 алхам (зурагтай)
Shota Aizawa-ийн баллуур толгойн нүдний шил (My Hero Academia) ашиглан нүд анивчдаг хяналттай гэрлийн унтраалга: Хэрэв та миний баатар академи манга уншсан эсвэл миний баатар академи аниме үзсэн бол та shota aizawa нэртэй дүрийг мэдэх ёстой. Шота Айзава нь баллуур толгой гэж нэрлэгддэг, Pro Hero ба U.A-ийн 1-А ангийн ангийн багш юм. Шотагийн Квирк түүнд ab өгдөг
Нүдний шил унших замаар хиртэлтийг ажиглах (мөн миний нүдийг шатаахгүй байх): 4 алхам (зурагтай)
Нүдний шил унших замаар хиртэлтийг ажиглах нь (мөн нүдээ шатаахгүй байх): Хөөе, би таны цол хэргэмийг сонирхож байсан уу? Аав маань ч мөн адил бид өчигдөр Монтр гудамжинд алхаж байхдаа нүдний шилээ сугалж, хиртэлтийг хэрхэн яаж харахыг унших нүдний шилтэйгээ хэрхэн яаж хийхийг надад харуулсан юм
DIY Raspberry Pi VR нүдний шил: 9 алхам (зурагтай)
DIY Raspberry Pi VR нүдний шил: АНХААРУУЛГА! Raspberry Pi Zero нь тийм ч хүчирхэг компьютер биш тул маш бага (10 fps-ээс бага) хүрээ нь таны нүдэнд хор хөнөөл учруулж болзошгүй юм. Эдгээр VR нүдний шилийг Raspberry Pi Zero ашиглан бүтээсэн бөгөөд энэ нь
Дуранд зориулсан CCD нүдний шил: 4 алхам (зурагтай)
Дурангийн CCD нүдний шил: Та дурангаа хараад "Үүнийг соронзон хальснаас авмаар байна" гэж бодож байсан уу? За одоо чи чаднаа. Энэхүү зааварт би ихэнх дуранд тохирох хямд CCD нүдний шилийг хэрхэн яаж хийхийг танд үзүүлэх болно. Та үүнийг ямар ч камераар ашиглаж болно