Мазмуну:
- 1 -кадам: Керектүү материалдар жана бөлүктөр:
- 2 -кадам: Neopixel Rings
- 3 -кадам: Байланыштар
- 4 -кадам: Код:
- 5 -кадам: Бардыгын бириктирүү:
Video: Эс алуучу көз айнек - ITTT: 5 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
HKU Project - ITTT (If This That That) - Юлия Беркувер, 1В
Сиз качандыр бир убакта стресске кабылгансыз жана өзүңүздү кантип тынчтандырууну билбейсизби, анда бул эс алуучу көз айнектерди колдонушуңуз керек! Сиз аларды кийгизип, көзүңүздү жумсаңыз, дем алуу формасы ойнойт. Бул дем алуу моделине баш ийүү менен дем алуу ритеми мүнөтүнө 6 жолу дем алып, чыгып кетет. Бул күнүмдүк стресстен арылтат.
Сиз ошондой эле fsr-сенсорун колдонуп, өчүргүчтү басып, дем алууңуздун интенсивдүүлүгүн көзөмөлдөй аласыз.
Бул тотуриал менен мен сизге этап -этабы менен жеке эс алуучу көз айнекти курууга жардам берем.
1 -кадам: Керектүү материалдар жана бөлүктөр:
Материалдар:
1x arduino uno;
1xbreadboard же PCV;
3x 10k резисторлор
Зымдар (Ар кандай түстөр артыкчылыктуу болгондуктан, кайсы нерселер жерге, кайсынысы түрдүү казыктарга баратканын айтуу оңой болот);
Кээ бир жылуулукту кыскартуучу түтүктөр;
2x NeoPixel Ring - Интегралдык драйверлери бар 16 x 5050 RGB LED;
1x которгуч;
1x FSR сенсор;
1x SteamPunk көз айнеги (Буларды дүкөндөн сатып алсаңыз болот, аларды колдонуу оңой, анткени неопиксель шакеги көз айнекке эң сонун дал келет. Сиз ар дайым башка көз айнекти колдонуп көрүңүз же өзүңүздүн колуңузду түзүңүз.);
1x кандайдыр бир (эластик) боону көкүрөгүңүзгө тагыңыз.
Куралдар:-Ноутбук
-Кандооч
-Arduino IDE программасы
Сиз менин ПВКда эки баскычты жана которгучту көрөсүз, мен аны солго гана туташтыруу үчүн колдоном, мен сүрөттүн оң жагындагы экинчи баскычты колдонбойм. Мен аларга кереги жок экенин түшүнүүдөн мурун pvcдеги баскычтарды койгом жана анын ордуна которгучту колдонушум керек болчу.
Төмөндө бул жерде мен колдонгон нерселердин сүрөттөрүн көрөсүз:
2 -кадам: Neopixel Rings
Ак зым неопикселдик шакектин артындагы жерге туташтырылган.
Апельсин зым 5Vга туташкан.
Ал эми күрөң зым маалымат киргизүүгө туташкан
3 -кадам: Байланыштар
Прототип түзүүдө менин нон тактам ушундай болгон, муну шилтеме катары колдонсоңуз болот.
Мен ошондой эле бир баскыч менен кандай болууга тийиш болгон зымдардын схемасын түздүм.
4 -кадам: Код:
Бул, балким, эң эффективдүү код эмес, бирок ал мен үчүн иштейт. Өзүңүздү сынап, аны эффективдүү кылууга аракет кылыңыз; П
#кошуу
// Кайсы
pin Arduino NeoPixels менен байланышканбы?
#аныктоо
PIN 6
// Кайсы
pin Arduino баскычка туташкан
#аныктоо
BUTTON_PIN 9
// Кантип
көптөгөн NeoPixels Arduino тиркелет?
#аныктоо
NUMPIXELS 16
// Качан
Биз NeoPixel китепканасын орнотобуз, ага канча пикселди жана сигналдарды жөнөтүү үчүн кайсы пинди колдонуу керектигин айтабыз.
// Эскертүү
эски NeoPixel тилкелери үчүн үчүнчү параметрди өзгөртүү керек болушу мүмкүн-strandtestти караңыз
//
мүмкүн болгон баалуулуктар жөнүндө көбүрөөк маалымат алуу үчүн мисал.
Adafruit_NeoPixel
пиксель = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
тыныгуу
= 1; // кечигүү2
int
pause2 = 80; // fsr колдонулганда төмөндөйт
int
пауза3 = 150; // fsr колдонулуп жатканда жасоо
int
delayval = 4; // кечигүү1
int
fsrPin = 0; // FSR жана 10K ачылышы a0 менен туташкан
int
fsrReading;
жараксыз
жайгашуу() {
pinMode (BUTTON_PIN, INPUT);
Serial.begin (9600);
piksel.begin (); // Бул баштайт
NeoPixel китепканасы.
piksel.show ();
}
bool
басылган (int пин) {
return digitalRead (pin);
}
жараксыз
loop () {// пин киргизүү чын же жалган экенин окуйт
fsrReading = analogRead (fsrPin);
Serial.print ("Аналогдук окуу =");
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);
piksel.show ();
кечигүү (пауза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);
piksel.show ();
кечигүү (тыным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);
piksel.show ();
кечигүү (пауза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);
piksel.show ();
кечигүү (тыным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);
piksel.show ();
кечигүү (пауза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);
piksel.show ();
кечиктирүү (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);
piksel.show ();
кечигүү (пауза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);
piksel.show ();
кечигүү (20);
}
}
башка {
breath_blue (20, 100, 0, 1, 1); // нормалдуу
эффект
}
}
// Тыныгуу
= өткөөлдөрдүн ортосундагы кечигүү
// Кадамдар
= кадамдардын саны
// R, G, B = Толук RGB баалуулуктары
// Бош дем алуу - бул дагы эффект
fsrsensor niet gebruikt wordt. Deze void wordt in de void loop () weer aangeroepen.
жараксыз дем алуу_көк (тыным, инт кадам, байт R, байт G, байт B) {
int
tmpR, tmpG, tmpB; // Темп мааниси
// Өчүп барат
үчүн (int s = 1; s <= кадамдар; s ++) {
tmpR = (R * s) /
кадамдар; // Кесүү каталарын болтурбоо үчүн адегенде көбөйтүңүз
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0;
менpiksel.setPixelColor (0, tmpR, tmpG+1, tmpB);
piksel.setPixelColor (15, tmpR, tmpG+1, tmpB);
}
piksel.show ();
кечигүү (4);
}
// Өчүп барат
үчүн (int s = 1; s <= кадамдар; s ++) {
tmpR = (R * s) /
кадамдар; // Кесүү каталарын болтурбоо үчүн адегенде көбөйтүңүз
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0;
менpiksel.setPixelColor (1, tmpR, tmpG+1, tmpB);piksel.setPixelColor (14, tmpR, tmpG+1, tmpB);
}
piksel.show ();
кечигүү (4);
}
// Өчүп барат
үчүн (int s = 1; s <= кадамдар; s ++) {
tmpR = (R * s) /
кадамдар; // Кесүү каталарын болтурбоо үчүн адегенде көбөйтүңүз
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0;
менpiksel.setPixelColor (2, tmpR, tmpG+2, tmpB);pixel.setPixelColor (13, tmpR, tmpG+2, tmpB);
}
piksel.show ();
кечигүү (3.5);
}
// Өчүп барат
үчүн (int s = 1; s <= кадамдар; s ++) {
tmpR = (R * s) /
кадамдар; // Кесүү каталарын болтурбоо үчүн адегенде көбөйтүңүз
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0;
менpiksel.setPixelColor (3, tmpR, tmpG+3, tmpB+5);piksel.setPixelColor (12, tmpR, tmpG+3, tmpB+5);
}
piksel.show ();
кечигүү (3);
}
үчүн (int i = 0;
менpiksel.setPixelColor (0, 0, 0, 0);piksel.setPixelColor (15, 0, 0, 0);
}
// Өчүп барат
үчүн (int s = 1; s <= кадамдар; s ++) {
tmpR = (R * s) /
кадамдар; // Кесүү каталарын болтурбоо үчүн адегенде көбөйтүңүз
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0;
мен
piksel.setPixelColor (4, tmpR, tmpG+3, tmpB+15);piksel.setPixelColor (11, tmpR, tmpG+3, tmpB+15);
}
piksel.show ();
кечигүү (3);
}
// Өчүп барат
үчүн (int s = 1; s <= кадамдар; s ++) {
tmpR = (R * s) /
кадамдар; // Кесүү каталарын болтурбоо үчүн адегенде көбөйтүңүз
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0;
менpiksel.setPixelColor (5, tmpR, tmpG+4, tmpB+20);piksel.setPixelColor (10, tmpR, tmpG+4, tmpB+20);
}
piksel.show ();
кечигүү (2);
}
үчүн (int i = 0;
менpiksel.setPixelColor (1, 0, 0, 0);
piksel.setPixelColor (14, 0, 0, 0);
}
// Өчүп барат
үчүн (int s = 1; s <= кадамдар; s ++) {
tmpR = (R * s) /
кадамдар; // Кесүү каталарын болтурбоо үчүн адегенде көбөйтүңүз
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0;
менpiksel.setPixelColor (6, tmpR, tmpG+2, tmpB+40);
piksel.setPixelColor (9, tmpR, tmpG+2, tmpB+40);
}
piksel.show ();
кечиктирүү (кечиктирүү);
}
үчүн (int i = 0;
менpiksel.setPixelColor (2, 0, 0, 0);piksel.setPixelColor (13, 0, 0, 0);
}
// Өчүп барат
үчүн (int s = 1; s <= кадамдар; s ++) {
tmpR = (R * s) /
кадамдар; // Кесүү каталарын болтурбоо үчүн адегенде көбөйтүңүз
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0;
мен
piksel.setPixelColor (7, tmpR, tmpG, tmpB+44);piksel.setPixelColor (8, tmpR, tmpG, tmpB+44);
}
piksel.show ();
кечиктирүү (кечиктирүү);
}
// Өчүп барат
үчүн (int s = кадамдар; s> 0; s--) {
tmpR = (R * s) / кадамдар; // Кыскартууну болтурбоо үчүн биринчиден көбөйтүңүз
каталар
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0; i
piksel.setPixelColor (7, tmpR, tmpG, tmpB);
piksel.setPixelColor (8, tmpR, tmpG, tmpB);
}
piksel.show ();
кечигүү (1);
}
// Өчүп барат
үчүн (int s = кадамдар; s> 0; s--) {
tmpR = (R * s) / кадамдар; // Кыскартууну болтурбоо үчүн биринчиден көбөйтүңүз
каталар
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0; i
piksel.setPixelColor (6, tmpR, tmpG, tmpB);
piksel.setPixelColor (9, tmpR, tmpG, tmpB);
}
piksel.show ();
кечигүү (1);
}
// Өчүп барат
үчүн (int s = кадамдар; s> 0; s--) {
tmpR = (R * s) / кадамдар; // Кыскартууну болтурбоо үчүн биринчиден көбөйтүңүз
каталар
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0; i
piksel.setPixelColor (5, tmpR, tmpG, tmpB);
piksel.setPixelColor (10, tmpR, tmpG, tmpB);
}
piksel.show ();
кечигүү (2);
}
// Өчүп барат
үчүн (int s = кадамдар; s> 0; s--) {
tmpR = (R * s) / кадамдар; // Кыскартууну болтурбоо үчүн биринчиден көбөйтүңүз
каталар
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0; i
piksel.setPixelColor (4, tmpR, tmpG, tmpB);
piksel.setPixelColor (11, tmpR, tmpG, tmpB);
}
piksel.show ();
кечигүү (2);
}
// Өчүп барат
үчүн (int s = кадамдар; s> 0; s--) {
tmpR = (R * s) / кадамдар; // Кыскартууну болтурбоо үчүн биринчиден көбөйтүңүз
каталар
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0; i
piksel.setPixelColor (3, tmpR, tmpG, tmpB);
piksel.setPixelColor (12, tmpR, tmpG, tmpB);
}
piksel.show ();
кечигүү (3);
}
// Өчүп барат
үчүн (int s = кадамдар; s> 0; s--) {
tmpR = (R * s) / кадамдар; //
Кесүү каталарын болтурбоо үчүн адегенде көбөйтүңүз
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0; i
piksel.setPixelColor (2, tmpR, tmpG, tmpB);
piksel.setPixelColor (13, tmpR, tmpG, tmpB);
}
piksel.show ();
кечигүү (3);
}
// Өчүп барат
үчүн (int s = кадамдар; s> 0; s--) {
tmpR = (R * s) / кадамдар; // Кыскартууну болтурбоо үчүн биринчиден көбөйтүңүз
каталар
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0; i
piksel.setPixelColor (1, tmpR, tmpG, tmpB);
piksel.setPixelColor (14, tmpR, tmpG, tmpB);
}
piksel.show ();
кечигүү (4);
}
// Өчүп барат
үчүн (int s = кадамдар; s> 0; s--) {
tmpR = (R * s) / кадамдар; // Кыскартууну болтурбоо үчүн биринчиден көбөйтүңүз
каталар
tmpG = (G * s) / кадамдар;
tmpB = (B * s) / кадамдар;
үчүн (int i = 0; i
piksel.setPixelColor (0, tmpR, tmpG, tmpB);
piksel.setPixelColor (15, tmpR, tmpG, tmpB);
}
piksel.show ();
кечигүү (4);
}
}
5 -кадам: Бардыгын бириктирүү:
Сиз бардык зымдарыңызды нан тактаңызга же ПВХга туташтырып койсоңуз болот, бул сизге байланыштуу (мен ардуинонун үстүнө ПВХ коюуну тандагам, ал ушунчалык жакшы жана тыкан).
Кийинки кадам - бардык зымдардын тегерегине жылуулукту азайтуучу түтүктөрдү коюу, андыктан башаламандык аз болот.
Эгер сиз ПВХ колдонууну чечсеңиз, анда азырынча баарын чогуу ширетиш керек болчу.
Андан кийин, сиз көз айнектин сыртына неопикселдүү шакектерди коюп (ледтердин түбүнө туура келгенин текшериңиз) жана аларды лента же клей менен бекемдеп коюңуз (мен скотч колдондум).
Сиз fsr-сенсорун серпилгичке бир нече скотч менен жабыштырууну же өзүңүз таштап коюуну тандасаңыз болот.
Көз айнегиңизден ырахат алыңыз:)
Сунушталууда:
Акылдуу көз айнек (10 доллардан төмөн !!!): 8 кадам (Сүрөттөр менен)
Акылдуу көз айнек (10 доллардан төмөн !!!): Саламатсызбы! Биз баарыбыз Smart Glasses менен таанышбыз, E.D.I.T.H. сүйүктүү каарманыбыз Тони Старк тарабынан жасалган, кийинчерээк Питер Паркерге өткөн. Бүгүн мен 10 долларга жетпеген ушундай акылдуу айнек курайын деп жатам! Алар такыр
Көз айнек менен роботтук келишим: 5 кадам
Көз айнек менен роботтук ДЕАЛ: Бул проект сизге роботтор менен келишим түзүүнү көрсөтөт. Бул долбоорго 3D работасы орнотулган, ал арзан робот стойкасы жана тиштүү бөлүктөрү менен айкалышса, сызыктуу кыймылдаткычты түзөт. Бул жерден тоону жүктөп алуу менен баштаңыз: https: //www.th
Google картон үчүн түнкү көз айнек: 10 кадам (сүрөттөр менен)
Google Cardboard үчүн Night Vision Goggles: Disclaimer: Бул түзмөктү колдонуу көңүл ачуу, билим берүү жана илимий колдонуу үчүн гана арналган; тыңчылык жана/же байкоо үчүн эмес. &Quot; шпиондук гаджет " өзгөчөлүктөр колдонмого көңүл ачуу үчүн гана кошулган жана эч кандай практикалык максатка кызмат кылбайт
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу - Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу - Rc Helicopter - Rc учагы Arduino колдонуу: 5 кадам (сүрөттөр менен)
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу | Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу | Rc Helicopter | Arduino менен Rc учагы: Rc машинасын иштетүү | Quadcopter | Дрон | RC учагы | RC кайыгы, бизге дайыма рецептор жана өткөргүч керек, RC QUADCOPTER үчүн бизге 6 каналдуу өткөргүч жана кабыл алгыч керек деп ойлойбуз жана TX менен RXтин бул түрү өтө кымбат, ошондуктан биз аны өзүбүздө жасайбыз
Көз айнек аркылуу тутулууну көрүү (жана көзүмдү күйгүзүү эмес): 4 кадам (сүрөттөр менен)
Окуу айнеги аркылуу тутулууну көрүү (жана көзүмдү күйгүзбөө): Эй, мен сенин наамың менен кызыгууңду кармадымбы? Кечээ биз эски Монтрда бара жатканыбызда, атам да ошондой кылды, ал көз айнегин сууруп алып, мага окуунун көз айнеги кандай тутулаарын кантип көрүүнү көрсөткөн. Ошентип