
Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40

Silmaliigutuste tajumiseks ja LED -i juhtimiseks kasutasin infrapunaandurit.
Silmamunad tegin LED Tape NeoPixeliga.
1. samm: põhiseadus

Silmade jälgimiseks kasutasin kahte andurit QTR - 1A. Tundmine Arduino abil ja LED -i juhtimine.
komponendid
- SparkFun Arduino Pro Mini 328 - 5V/16MHz
- Adafruit LiIon/LiPoly seljakoti lisand Pro Trinket/ItsyBitsy jaoks
- LiPo aku
- NeoPixeli riba
- QTR-1A peegeldusandur
2. samm: NeoPixel LED silmapall


Kasutatakse NeoPixeli LED -linti. LED on 68 ühikut.
LED on kausi külge kinnitatud kahepoolse teibiga ja juhtmega.
3. samm: andur



Silmade jälgimiseks kasutasin kahte andurit QTR - 1A. QTR - 1A asetatakse plastlehele umbes silma laiuse kaugusel.
Anduriosa ja mikrokontrolleri osa kinnitati prillide külge vastavalt klambriga.
Samm: Arduino kood
Kui iiris läheneb ühele andurile, peegelduv valgus väheneb ja anduri väärtus suureneb. Seevastu iirise eemaldumisel suureneb peegelduv valgus ja väheneb fotoreflektori anduri väärtus.
LED -silmamuna pupilli parem- ja vasakpoolne liikumine tajub ühe anduri väärtuse suurenemist ja vähenemist ning kontrollib seda. Vilgutades vähenevad mõlemad anduri väärtused, nii et kui kaks anduri väärtust samaaegselt vähenevad, lähevad LED -silmamuna silmalaud alla.
Kasutasin järgmist raamatukogu.
- QTRsensors:
- Adafruit_NeoPixel:
#kaasama #kaasama
#define NUM_SENSORS 2 // kasutatud andurite arv#define NUM_SAMPLES_PER_SENSOR 10 // keskmistamine#define EMITTER_PIN QTR_NO_EMITTER_PIN
int iniSensorValL, sensorValL; int iniSensorValR, sensorValR; #define PIN A3 Adafruit_NeoPixel led = Adafruit_NeoPixel (68, PIN, NEO_GRB + NEO_KHZ800); int mustNum = 24; int pupillNum = 12; uint32_t värv; int heledus = 40; bait silmaVärv; int LR = 7; loogiline kaas = vale; int cnt = 0;
// Mustade silmade L&R animatsioonintLED [15] [24] = {{12, 32, 35, 55, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {12, 13, 31, 36, 54, 55, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {11, 13, 14, 30, 37, 53, 54, 56, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {10, 11, 14, 15, 29, 38, 52, 53, 56, 57, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {9, 10, 11, 12, 15, 16, 28, 33, 34, 39, 51, 52, 55, 56, 57, 58, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {0, 8, 9, 10, 11, 12, 13, 16, 17, 27, 32, 35, 40, 50, 51, 54, 55, 56, 57, 58, 59, 67, 68, 68}, {0, 1, 7, 8, 9, 10, 13, 14, 17, 18, 26, 31, 36, 41, 49, 50, 53, 54, 57, 58, 59, 60, 66, 67}, {1, 2, 6, 7, 8, 9, 14, 15, 18, 19, 25, 30, 37, 42, 48, 49, 52, 53, 58, 59, 60, 61, 65, 66}, {2, 3, 5, 6, 7, 8, 15, 16, 19, 20, 24, 29, 38, 43, 47, 48, 51, 52, 59, 60, 61, 62, 64, 65}, {3, 4, 5, 6, 7, 16, 17, 20, 21, 23, 28, 39, 44, 46, 47, 50, 51, 60, 61, 62, 63, 64, 68, 68}, {4, 5, 6, 17, 18, 21, 22, 27, 40, 45, 46, 49, 50, 61, 62, 63, 68, 68, 68, 68, 68, 68, 68, 68}, {4, 5, 18, 19, 26, 41, 48, 49, 62, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {4, 19, 20, 25, 42, 47, 48, 63, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {20, 21, 24, 43, 46, 47, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {21, 23, 44, 46, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}};
// õpilase L&R animatsiooniint pupillLED [15] [12] = {{33, 34, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {32, 33, 34, 35, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {12, 31, 32, 33, 34, 35, 36, 55, 68, 68, 68, 68}, {12, 13, 30, 31, 32, 33, 34, 35, 36, 37, 54, 55}, {13, 14, 29, 30, 31, 32, 35, 36, 37, 38, 53, 54}, {14, 15, 28, 29, 30, 31, 36, 37, 38, 39, 52, 53}, {15, 16, 27, 28, 29, 30, 37, 38, 39, 40, 51, 52}, {16, 17, 26, 27, 28, 29, 38, 39, 40, 41, 50, 51}, {17, 18, 25, 26, 27, 28, 39, 40, 41, 42, 49, 50}, {18, 19, 24, 25, 26, 27, 40, 41, 42, 43, 48, 49}, {19, 20, 23, 24, 25, 26, 41, 42, 43, 44, 47, 48}, {20, 21, 22, 23, 24, 25, 42, 43, 44, 45, 46, 47}, {21, 22, 23, 24, 43, 44, 45, 46, 68, 68, 68, 68 }, {22, 23, 44, 45, 68, 68, 68, 68, 68, 68, 68, 68}, {22, 45, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}};
// Blink animationint silmalaud = 0; int eyelidNum [8] = {0, 4, 8, 16, 24, 34, 44, 56}; int silmalaudLED [56] = {64, 65, 66, 67, 58, 59, 60, 61, 56, 57, 62, 63, 49, 50, 51, 52, 47, 48, 53, 54, 38, 39, 40, 41, 46, 55, 36, 37, 42, 43, 26, 27, 28, 29, 35, 44, 24, 25, 30, 31, 15, 16, 17, 18, 34, 45, 23, 32, 13, 14, 19, 20, 6, 7, 8, 9}; QTRSensorsAnalog qtra ((märkimata märk ) {0, 1}, NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN); unsigned int sensorValues [NUM_SENSORS];
void blink (int silmalaud, int LR) {if (silmalaud! = 8) {// Tina (uint16_t i = 0; i <led.numPixels (); i ++) {led.setPixelColor (i, led. Color (66, 66, 66)); }
// Must silm: (uint16_t i = 0; i led.setPixelColor (mustLED [LR] , värv);}
// õpilane (uint16_t i = 0; i
led.setPixelColor (õpilaneLED [LR] , led. Color (0, 0, 66)); }
// silmalaud (int i = 0; i <eyelidNum [silmalaud]; i ++) {led.setPixelColor (eyelidLED , 0); }} muidu kui (silmalaud == 8) {led.clear (); } led.show ();}
tühine seadistus () {
Seriaalne algus (115200); led.begin (); led.setBrightness (heledus); // Esialgne heledus 40 led.show (); // Initsialiseeri kõik pikslid 'off' värviks = led. Color (0, 177, 55); // õpilase värvi viivitus (100); qtra.read (sensorValues); iniSensorValL = sensorValues [0]; iniSensorValR = sensorValues [1]; vilkuma (silmalaud, LR); }
void loop () {// QTR - 1A anduri väärtus qtra.read (sensorValues); sensorValL = sensorValues [0]; sensorValR = sensorValues [1];
topelt rasioL = (kahekordne) sensorValL / iniSensorValL;
topelt rasioR = (kahekordne) sensorValR / iniSensorValR;
Serial.print (rasioL);
Serial.print (""); Serial.println (rasioR);
if (rasioL> 0,985 && rasioR <0,985) {// õige (int i = LR; i <12; i ++) {vilgub (0, i); viivitus (40); LR = i; }} muu kui (rasioL 0,985) {// vasakule (int i = LR; i> 2; i-) {vilgub (0, i); viivitus (40); LR = i; }} muidu kui (kaas == vale && rasioL <0,96 && rasioR <0,96) {// Vilgub sulgudes (int i = 1; i 0,96 && rasioR> 0,96) {// Vilgub lahti (int i = 8; i > 0; i-) {vilgub (i, LR); viivitus (40); kaas = vale; }} else if (lid == false && rasioL> 0.96 && rasioR> 0.96) {// normaalne // cnt ++; // silmalaud = 0; kui (LR <= 7) {jaoks (int i = LR; i <= 7; i ++) {vilgub (0, i); viivitus (40); LR = i; }} else {jaoks (int i = LR; i> = 7; i-) {vilgub (0, i); viivitus (40); LR = i; }}}
// Algväärtuse värskendamine, kui (cnt> 10) {iniSensorValL = sensorValL; iniSensorValR = sensorValR; cnt = 0; }}
Samm: toiming
Tuvastage anduriga õpilase vasak ja parem liikumine ja vilkumine ning juhtige silmamuna LED -i.
Soovitan:
Temperatuuri ja niiskuse jälgimine AM2301 abil NodeMCU & Blynk'is: 3 sammu

Temperatuuri ja niiskuse jälgimine AM2301 abil NodeMCU -l ja Blynkil: On väga hästi teada tõsiasi, et enamikus tööstuse vertikaalides mängivad temperatuur, niiskus, rõhk, õhukvaliteet, veekvaliteet jne olulisi tegureid, mida tuleb pidevalt jälgida häiresüsteemid peavad olema paigas, kui väärtus
Infrapunaanduri kasutamine Arduinoga: 8 sammu (piltidega)

Infrapunaanduri kasutamine Arduinoga: Mis on infrapuna (teise nimega IR) andur? IR -andur on elektrooniline instrument, mis skaneerib infrapunasignaale kindlates sagedusvahemikes, mis on määratletud standardites, ja teisendab need oma väljundpoldi (tavaliselt nimetatakse signaali tihvtiks) elektrisignaalideks . IR -signaal
Väikeste poodide jälgimine ja jälgimine: 9 sammu (piltidega)

Jälgi ja jälgi väikestele poodidele: see on süsteem, mis on loodud väikestele kauplustele, mis peaksid olema paigaldatud e-jalgratastele või e-motorolleritele lühikese vahemaaga kohaletoimetamiseks, näiteks pagaritöökoda, mis soovib saiakesi tarnida. Mida tähendab jälgimine ja jälgimine? Jälgimine ja jälgimine on süsteem, mida kasutavad ca
Kiirenduse jälgimine Raspberry Pi ja AIS328DQTR abil Pythoni abil: 6 sammu

Kiirenduse jälgimine Raspberry Pi ja AIS328DQTR abil Pythoni kasutamine: Kiirendus on piiratud, ma arvan, et mõne füüsikaseaduse kohaselt.- Terry Riley Gepard kasutab jälitamisel hämmastavat kiirendust ja kiireid kiiruse muutusi. Kiireim olend kaldal kasutab aeg -ajalt oma tipptempot saagi püüdmiseks
Kiirenduse variatsioonide jälgimine Raspberry Pi ja MMA7455 abil Pythoni abil: 6 sammu

Kiirenduse variatsioonide jälgimine Raspberry Pi ja MMA7455 abil Pythoni abil: ma ei komistanud, vaid testisin gravitatsiooni. See töötab endiselt … Kiirendava kosmosesüstiku esitus selgitas, et süstiku kõrgeimas punktis olev kell valib gravitatsioonilise aja laienemise tõttu kiiremini kui baasi. Mõned