![Oogbewegingsopsporing met infrarooi sensor: 5 stappe Oogbewegingsopsporing met infrarooi sensor: 5 stappe](https://i.howwhatproduce.com/images/001/image-1833-80-j.webp)
INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53
![Oogbewegingsopsporing met infrarooi sensor Oogbewegingsopsporing met infrarooi sensor](https://i.howwhatproduce.com/images/001/image-1833-81-j.webp)
Ek het 'n infrarooi sensor gebruik om oogbewegings te sien en die LED te beheer.
Ek het oogballe gemaak met LED Tape NeoPixel.
Stap 1: Grondwet
![Grondwet Grondwet](https://i.howwhatproduce.com/images/001/image-1833-82-j.webp)
Ek het twee sensors QTR - 1A gebruik vir oogopsporing. Sensing met Arduino en die beheer van die LED.
komponente
- SparkFun Arduino Pro Mini 328 - 5V/16MHz
- Adafruit LiIon/LiPoly-rugsak-byvoeging vir Pro Trinket/ItsyBitsy
- LiPo battery
- NeoPixel strook
- QTR-1A Weerkaatsensor
Stap 2: NeoPixel LED -oogbal
![NeoPixel LED -oogbal NeoPixel LED -oogbal](https://i.howwhatproduce.com/images/001/image-1833-83-j.webp)
![NeoPixel LED -oogbal NeoPixel LED -oogbal](https://i.howwhatproduce.com/images/001/image-1833-84-j.webp)
NeoPixel LED -band word gebruik. LED is 68 eenhede.
LED is met dubbelzijdige band en bedraad aan die bak vasgemaak.
Stap 3: Sensoreenheid
![Sensoreenheid Sensoreenheid](https://i.howwhatproduce.com/images/001/image-1833-85-j.webp)
![Sensoreenheid Sensoreenheid](https://i.howwhatproduce.com/images/001/image-1833-86-j.webp)
![Sensoreenheid Sensoreenheid](https://i.howwhatproduce.com/images/001/image-1833-87-j.webp)
Ek het twee sensors QTR - 1A gebruik vir oogopsporing. QTR - 1A word op 'n plastiekvel op 'n afstand van ongeveer die wydte van die oog geplaas.
Die sensorgedeelte en die mikrobeheerderdeel is met 'n klem op die bril vasgemaak.
Stap 4: Arduino -kode
As die iris een sensor nader, neem die weerkaatsende lig af en neem die sensorwaarde toe. Omgekeerd, as die iris wegbeweeg, neem die weerkaatste lig toe en neem die sensorwaarde van die fotoreflektor af.
Die regter- en linkerbeweging van die pupil van die LED -oogbal voel die toename en afname van een sensorwaarde en beheer dit. As dit knip, verminder beide sensorwaardes, dus as die twee sensorwaardes gelyktydig afneem, val die ooglede van die LED -oogbal af.
Ek het die volgende biblioteek gebruik.
- QTRsensors:
- Adafruit_NeoPixel:
#include #include
#definieer NUM_SENSORS 2 // aantal sensors wat gebruik word#definieer NUM_SAMPLES_PER_SENSOR 10 // gemiddeld#definieer 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 pupilNum = 12; uint32_t kleur; int helderheid = 40; byte eyeColor; int LR = 7; booleaanse deksel = vals; int cnt = 0;
// Swart oog L&R animasie in swartLED [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}, {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}, {4, 19, 20, 25, 42, 47, 48, 63, 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}, {21, 23, 44, 46, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}};
// leerling L&R animasie leerlingLED [15] [12] = {{33, 34, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, {32, 33, 34, 35, 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}};
// Knipper animasie na ooglid = 0; int ooglidNum [8] = {0, 4, 8, 16, 24, 34, 44, 56}; int ooglidLED [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 ((ongetekende karakter ) {0, 1}, NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN); ongetekende int sensorWaardes [NUM_SENSORS];
leegte knip (int ooglid, int LR) {if (ooglid! = 8) {// Pewter vir (uint16_t i = 0; i <led.numPixels (); i ++) {led.setPixelColor (i, led. Color (66, 66, 66)); }
// Swart oog vir (uint16_t i = 0; i led.setPixelColor (blackLED [LR] , kleur);}
// leerling vir (uint16_t i = 0; i
led.setPixelColor (pupilLED [LR] , led. Color (0, 0, 66)); }
// ooglid vir (int i = 0; i <ooglidNum [ooglid]; i ++) {led.setPixelColor (ooglidLED , 0); }} anders as (ooglid == 8) {led.clear (); } led.show ();}
ongeldige opstelling () {
Serial.begin (115200); led.begin (); led.setBrightness (helderheid); // Aanvanklike helderheid 40 led.show (); // Initialiseer alle pixels na 'af' color = led. Color (0, 177, 55); // leerling kleur vertraging (100); qtra.read (sensorValues); iniSensorValL = sensorValues [0]; iniSensorValR = sensorValues [1]; knipoog (ooglid, LR); }
leegte lus () {// QTR - 1A sensor waarde qtra.read (sensorValues); sensorValL = sensorValues [0]; sensorValR = sensorValues [1];
double rasioL = (double) sensorValL / iniSensorValL;
double rasioR = (double) sensorValR / iniSensorValR;
Serial.print (rasioL);
Serial.print (""); Serial.println (rasioR);
as (rasioL> 0.985 && rasioR <0.985) {// regs vir (int i = LR; i <12; i ++) {blink (0, i); vertraging (40); LR = i; }} anders as (rasioL 0.985) {// links vir (int i = LR; i> 2; i-) {blink (0, i); vertraging (40); LR = i; }} anders as (lid == false && rasioL <0.96 && rasioR <0.96) {// Knipperend naby vir (int i = 1; i 0.96 && rasioR> 0.96) {// Knipperend oop vir (int i = 8; i > 0; i-) {blink (i, LR); vertraging (40); deksel = vals; }} anders if (lid == false && rasioL> 0.96 && rasioR> 0.96) {// normaal // cnt ++; // ooglid = 0; as (LR <= 7) {for (int i = LR; i <= 7; i ++) {blink (0, i); vertraging (40); LR = i; }} anders {vir (int i = LR; i> = 7; i-) {blink (0, i); vertraging (40); LR = i; }}}
// Aanvanklike waarde verfris as (cnt> 10) {iniSensorValL = sensorValL; iniSensorValR = sensorValR; cnt = 0; }}
Stap 5: Bediening
Ontdek die linker- en regterbeweging en knip van die leerling met die sensor, en beheer die oogbol -LED.
Aanbeveel:
Die gebruik van infrarooi sensor met Arduino: 8 stappe (met foto's)
![Die gebruik van infrarooi sensor met Arduino: 8 stappe (met foto's) Die gebruik van infrarooi sensor met Arduino: 8 stappe (met foto's)](https://i.howwhatproduce.com/images/005/image-12443-j.webp)
Die gebruik van infrarooi sensor met Arduino: wat is 'n infrarooi (ook bekend as IR) sensor? 'N IR -sensor is 'n elektroniese instrument wat IR -seine in spesifieke frekwensiebepalings wat deur standaarde gedefinieer word, skandeer en dit omskakel in elektriese seine op sy uitsetpen (tipies seinpen genoem) . Die IR -sein
Boe-Bot met infrarooi detektore: 12 stappe (met foto's)
![Boe-Bot met infrarooi detektore: 12 stappe (met foto's) Boe-Bot met infrarooi detektore: 12 stappe (met foto's)](https://i.howwhatproduce.com/images/003/image-8953-16-j.webp)
Boe-Bot met infrarooi detektore: hierdie instruksies sal demonstreer hoe u 'n Boe-Bot kan bou en kodeer wat deur 'n doolhof kan navigeer met infrarooi detektore om hindernisse te vermy. Dit is 'n maklik om te volg gids wat dit moontlik maak om maklik aan te pas by u behoeftes. Dit vereis 'n basiese en
TCRT5000 Infrarooi reflektiewe sensor - hoe dit werk en voorbeeldkring met kode: 6 stappe
![TCRT5000 Infrarooi reflektiewe sensor - hoe dit werk en voorbeeldkring met kode: 6 stappe TCRT5000 Infrarooi reflektiewe sensor - hoe dit werk en voorbeeldkring met kode: 6 stappe](https://i.howwhatproduce.com/images/006/image-17085-12-j.webp)
TCRT5000 Infrarooi reflektiewe sensor - hoe dit werk en voorbeeldkring met kode: Hallo, ek het onlangs 'n klomp TCRT5000's gebruik by die ontwerp en vervaardiging van my muntsorteermasjien. U kan dit hier sien: Hiervoor moes ek leer oor die TCRT5000, en nadat ek dit verstaan het, het ek gedink ek sou 'n gids saamstel vir almal wat op soek was
Nokia 5110 LCD met infrarooi sensor: 4 stappe
![Nokia 5110 LCD met infrarooi sensor: 4 stappe Nokia 5110 LCD met infrarooi sensor: 4 stappe](https://i.howwhatproduce.com/images/001/image-1709-45-j.webp)
Nokia 5110 LCD met infrarooi sensor: Die Nokia 5110 LCD -skerm is 'n wonderlike LCD -skerm wat verenigbaar is met die Arduino -ontwikkelbord. Laat ons nou een van die LCD's beheer en dit koppel met Arduino en 'n IR -sensor
Infrarooi sensor met ESP8266: 6 stappe
![Infrarooi sensor met ESP8266: 6 stappe Infrarooi sensor met ESP8266: 6 stappe](https://i.howwhatproduce.com/images/002/image-3759-77-j.webp)
Infrarooi sensor met ESP8266: Ons doel hierdie keer is om 'n program te skep wat die omgewingstemperatuur van enige voorwerp wat na ons sensor wys, kan lees. Om dit te doen, gebruik ons in hierdie projek 'n ESP8266 nodeMCU, 'n MLX90614 infrarooi sensor en 'n OLED 96 "skerm