![Acu kustības izsekošana, izmantojot infrasarkano sensoru: 5 soļi Acu kustības izsekošana, izmantojot infrasarkano sensoru: 5 soļi](https://i.howwhatproduce.com/images/001/image-1833-80-j.webp)
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59
![Acu kustības izsekošana, izmantojot infrasarkano sensoru Acu kustības izsekošana, izmantojot infrasarkano sensoru](https://i.howwhatproduce.com/images/001/image-1833-81-j.webp)
Es izmantoju infrasarkano sensoru, lai sajustu acu kustības un kontrolētu gaismas diodi.
Es izveidoju acu ābolus ar LED Tape NeoPixel.
1. solis: Konstitūcija
![Konstitūcija Konstitūcija](https://i.howwhatproduce.com/images/001/image-1833-82-j.webp)
Acu izsekošanai es izmantoju divus sensorus QTR - 1A. Sensēšana ar Arduino un LED vadība.
sastāvdaļas
- SparkFun Arduino Pro Mini 328 - 5V/16MHz
- Adafruit LiIon/LiPoly mugursomas papildinājums Pro Trinket/ItsyBitsy
- LiPo akumulators
- NeoPixel sloksne
- QTR-1A atstarošanas sensors
2. solis: NeoPixel LED acu bumba
![NeoPixel LED acu bumba NeoPixel LED acu bumba](https://i.howwhatproduce.com/images/001/image-1833-83-j.webp)
![NeoPixel LED acu bumba NeoPixel LED acu bumba](https://i.howwhatproduce.com/images/001/image-1833-84-j.webp)
Tiek izmantota NeoPixel LED lente. LED ir 68 vienības.
Gaismas diode ir piestiprināta pie bļodas ar abpusēju lenti un vadu.
3. solis: Sensora bloks
![Sensora bloks Sensora bloks](https://i.howwhatproduce.com/images/001/image-1833-85-j.webp)
![Sensora bloks Sensora bloks](https://i.howwhatproduce.com/images/001/image-1833-86-j.webp)
![Sensora bloks Sensora bloks](https://i.howwhatproduce.com/images/001/image-1833-87-j.webp)
Acu izsekošanai es izmantoju divus sensorus QTR - 1A. QTR - 1A ir novietoti uz plastmasas loksnes apmēram acs platuma attālumā.
Sensora daļa un mikrokontrollera daļa tika piestiprinātas pie brillēm attiecīgi ar skavu.
4. solis: Arduino kods
Kad varavīksnene tuvojas vienam sensoram, atstarotā gaisma samazinās un sensora vērtība palielinās. Un otrādi, kad varavīksnene attālinās, atstarotā gaisma palielinās un foto atstarotāja sensora vērtība samazinās.
LED acs ābola zīlītes labā un kreisā kustība uztver viena sensora vērtības palielināšanos un samazināšanos un kontrolē to. Mirgojot, abas sensora vērtības samazinās, tādēļ, ja abas sensora vērtības samazinās vienlaicīgi, LED acs ābola plakstiņi samazināsies.
Es izmantoju šādu bibliotēku.
- QTRsensors:
- Adafruit_NeoPixel:
#iekļaut #iekļaut
#define NUM_SENSORS 2 // izmantoto sensoru skaits#definēt NUM_SAMPLES_PER_SENSOR 10 // vidēji#definēt 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 blackNum = 24; int skolēnsNum = 12; uint32_t krāsa; int spilgtums = 40; baits eyeColor; int LR = 7; Būla vāks = nepatiess; int cnt = 0;
// Melno acu L&R animācijaintLED [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}, {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}, {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, 68}};
// skolēna L&R animācija, 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 plakstiņš = 0; int eyelidNum [8] = {0, 4, 8, 16, 24, 34, 44, 56}; int plakstiņuLED [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 ((neparakstīts simbols ) {0, 1}, NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN); neparakstīts int sensorValues [NUM_SENSORS];
void mirkšķināšana (int plakstiņš, int LR) {if (plakstiņš! = 8) {// Alva priekš (uint16_t i = 0; i <led.numPixels (); i ++) {led.setPixelColor (i, led. Color (66, 66, 66)); }
// Melna acs priekš (uint16_t i = 0; i led.setPixelColor (melnaLED [LR] , krāsa);}
// skolēns (uint16_t i = 0; i
led.setPixelColor (skolēnsLED [LR] , led. Color (0, 0, 66)); }
// plakstiņš priekš (int i = 0; i <eyelidNum [plakstiņš]; i ++) {led.setPixelColor (eyelidLED , 0); }} cits if (plakstiņš == 8) {led.clear (); } led.show ();}
void setup () {
Serial.begin (115200); led.begin (); led.setBrightness (spilgtums); // Sākotnējais spilgtums 40 led.show (); // Inicializēt visus pikseļus uz 'off' color = led. Color (0, 177, 55); // skolēna krāsas aizture (100); qtra.read (sensorValues); iniSensorValL = sensorValues [0]; iniSensorValR = sensorValues [1]; mirgot (plakstiņš, LR); }
void loop () {// QTR - 1A sensora vērtība qtra.read (sensorValues); sensorValL = sensorValues [0]; sensorValR = sensorValues [1];
dubultā rasioL = (dubultā) sensorsValL / iniSensorValL;
dubultā rasioR = (dubultā) sensorsValR / iniSensorValR;
Sērijas nospiedums (rasioL);
Serial.print (""); Serial.println (rasioR);
if (rasioL> 0.985 && rasioR <0.985) {// tiesības uz (int i = LR; i <12; i ++) {mirgot (0, i); kavēšanās (40); LR = i; }} cits, ja (rasioL 0,985) {// atstāts (int i = LR; i> 2; i-) {mirgot (0, i); kavēšanās (40); LR = i; }} else if (lid == false && rasioL <0.96 && rasioR <0.96) {// Mirgo tuvu (int i = 1; i 0.96 && rasioR> 0.96) {// Mirgo atvērts (int i = 8; i > 0; i-) {mirgo (i, LR); kavēšanās (40); vāks = nepatiess; }} cits if (lid == false && rasioL> 0.96 && rasioR> 0.96) {// normāls // cnt ++; // plakstiņš = 0; ja (LR <= 7) {par (int i = LR; i <= 7; i ++) {mirgo (0, i); kavēšanās (40); LR = i; }} cits {par (int i = LR; i> = 7; i-) {mirgot (0, i); kavēšanās (40); LR = i; }}}
// Sākotnējās vērtības atsvaidzināšana, ja (cnt> 10) {iniSensorValL = sensorValL; iniSensorValR = sensorsValR; cnt = 0; }}
5. darbība: darbība
Ar sensoru atklājiet zīlītes kreiso un labo kustību un mirgošanu un kontrolējiet acs ābola gaismas diodi.
Ieteicams:
Cilvēka acu kustības izsekošana: 6 soļi
![Cilvēka acu kustības izsekošana: 6 soļi Cilvēka acu kustības izsekošana: 6 soļi](https://i.howwhatproduce.com/images/001/image-354-17-j.webp)
Cilvēka acu kustības izsekošana: šī projekta mērķis ir uztvert cilvēka acs kustību un parādīt tā kustību uz LED gaismas komplektu, kas ir novietots acs formā. Šāda veida projektiem potenciāli varētu būt daudz pielietojumu robotikas un jo īpaši huma jomā
Izsekošana un izsekošana maziem veikaliem: 9 soļi (ar attēliem)
![Izsekošana un izsekošana maziem veikaliem: 9 soļi (ar attēliem) Izsekošana un izsekošana maziem veikaliem: 9 soļi (ar attēliem)](https://i.howwhatproduce.com/images/007/image-19294-j.webp)
Izsekošana un izsekošana maziem veikaliem: šī ir sistēma, kas paredzēta maziem veikaliem, kas ir paredzēts uzstādīt uz e-velosipēdiem vai motorolleriem, lai veiktu piegādi nelielā attālumā, piemēram, maizes ceptuve, kas vēlas piegādāt konditorejas izstrādājumus. Ko nozīmē izsekošana un izsekošana? Izsekošana un izsekošana ir sistēma, ko izmanto
Paātrinājuma variāciju izsekošana, izmantojot Raspberry Pi un MMA7455, izmantojot Python: 6 soļi
![Paātrinājuma variāciju izsekošana, izmantojot Raspberry Pi un MMA7455, izmantojot Python: 6 soļi Paātrinājuma variāciju izsekošana, izmantojot Raspberry Pi un MMA7455, izmantojot Python: 6 soļi](https://i.howwhatproduce.com/images/002/image-3297-34-j.webp)
Paātrinājuma variāciju izsekošana, izmantojot Raspberry Pi un MMA7455, izmantojot Python: es neklupju, es testēju gravitāciju. Tas joprojām darbojas … Paātrinātā kosmosa kuģa attēlojums paskaidroja, ka pulkstenis, kas atrodas augstākajā šahtas punktā, gravitācijas laika paplašināšanās dēļ izvēlētos ātrāk nekā tas, kas atrodas bāzē. Daži
M5Stack IR termokamera, izmantojot AMG8833 infrasarkano staru attēlveidošanas sensoru: 3 soļi
![M5Stack IR termokamera, izmantojot AMG8833 infrasarkano staru attēlveidošanas sensoru: 3 soļi M5Stack IR termokamera, izmantojot AMG8833 infrasarkano staru attēlveidošanas sensoru: 3 soļi](https://i.howwhatproduce.com/images/006/image-15419-13-j.webp)
M5Stack IR termokamera, izmantojot AMG8833 infrasarkano staru attēlveidošanas sensoru: Man, tāpat kā daudziem, ir bijusi aizraušanās ar termokamerām, taču tās vienmēr ir bijušas ārpus mana cenu diapazona - līdz šim! Pārlūkojot Hackaday vietni, es saskāros ar šo kameras konstrukciju, izmantojot M5Stack ESP32 modulis un salīdzinoši lēti
Tfcd 3D kustības izsekošana, izmantojot kapacitatīvo sensoru un LED izvadi: 6 soļi (ar attēliem)
![Tfcd 3D kustības izsekošana, izmantojot kapacitatīvo sensoru un LED izvadi: 6 soļi (ar attēliem) Tfcd 3D kustības izsekošana, izmantojot kapacitatīvo sensoru un LED izvadi: 6 soļi (ar attēliem)](https://i.howwhatproduce.com/images/004/image-9310-22-j.webp)
Tfcd 3D kustības izsekošana, izmantojot kapacitatīvo sensoru un LED izvadi: Šajā instrukcijā ir izskaidrots, kā rokas kustību var izsekot 3D telpā, izmantojot kapacitatīvās noteikšanas principu. Mainot attālumu starp uzlādētu alumīnija foliju un roku, kondensatora ietilpība mainīsies