![Szemmozgás -követés infravörös érzékelővel: 5 lépés Szemmozgás -követés infravörös érzékelővel: 5 lépés](https://i.howwhatproduce.com/images/001/image-1833-80-j.webp)
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:48
![Szemmozgás -követés infravörös érzékelővel Szemmozgás -követés infravörös érzékelővel](https://i.howwhatproduce.com/images/001/image-1833-81-j.webp)
Infravörös érzékelőt használtam a szemmozgások érzékeléséhez és a LED vezérléséhez.
Szemgolyókat készítettem LED Tape NeoPixel segítségével.
1. lépés: Alkotmány
![Alkotmány Alkotmány](https://i.howwhatproduce.com/images/001/image-1833-82-j.webp)
Két QTR - 1A érzékelőt használtam a szemkövetéshez. Érzékelés Arduino segítségével és a LED vezérlése.
alkatrészek
- SparkFun Arduino Pro Mini 328 - 5V/16MHz
- Adafruit LiIon/LiPoly hátizsák kiegészítő a Pro Trinket/ItsyBitsy számára
- LiPo akkumulátor
- NeoPixel csík
- QTR-1A fényvisszaverő érzékelő
2. lépés: NeoPixel LED szemgolyó
![NeoPixel LED szemgolyó NeoPixel LED szemgolyó](https://i.howwhatproduce.com/images/001/image-1833-83-j.webp)
![NeoPixel LED szemgolyó NeoPixel LED szemgolyó](https://i.howwhatproduce.com/images/001/image-1833-84-j.webp)
NeoPixel LED szalagot használnak. A LED 68 egység.
A LED kétoldalas szalaggal van rögzítve a tálhoz és vezetékes.
3. lépés: Érzékelő egység
![Érzékelő egység Érzékelő egység](https://i.howwhatproduce.com/images/001/image-1833-85-j.webp)
![Érzékelő egység Érzékelő egység](https://i.howwhatproduce.com/images/001/image-1833-86-j.webp)
![Érzékelő egység Érzékelő egység](https://i.howwhatproduce.com/images/001/image-1833-87-j.webp)
Két QTR - 1A érzékelőt használtam a szemkövetéshez. A QTR -1A műanyag lapra kerül, a szem szélességének kb.
Az érzékelő részt és a mikrokontroller részt klipszel rögzítették a szemüveghez.
4. lépés: Arduino kód
Amikor az írisz megközelíti az egyik érzékelőt, a visszavert fény csökken és az érzékelő értéke nő. Ezzel szemben, amikor az írisz eltávolodik, a visszavert fény növekszik, és a fényvisszaverő érzékelő értéke csökken.
A LED szemgolyó pupillájának jobb és bal mozgása érzékeli az egyik érzékelő értékének növekedését és csökkenését, és szabályozza azt. Villogáskor mindkét érzékelő értéke csökken, tehát ha a két érzékelő értéke egyszerre csökken, akkor a LED szemgolyó szemhéjai lefelé mennek.
A következő könyvtárat használtam.
- QTRsenzorok:
- Adafruit_NeoPixel:
#befoglalni #befoglalni
#define NUM_SENSORS 2 // a felhasznált érzékelők száma#define NUM_SAMPLES_PER_SENSOR 10 // átlagolás#definiálás 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 feketeNum = 24; int pupilNum = 12; uint32_t szín; int fényerő = 40; byte eyeColor; int LR = 7; logikai fedél = hamis; int cnt = 0;
// Black eye L&R animationint blackLED [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, 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, 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, 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, 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, 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}};
// tanuló L&R animáció, 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, 68}};
// Blink animationint szemhéj = 0; int eyelidNum [8] = {0, 4, 8, 16, 24, 34, 44, 56}; int szemhéjLED [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 ((unsigned char ) {0, 1}, NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN); unsigned int sensorValues [NUM_SENSORS];
void blink (int szemhéj, int LR) {if (szemhéj! = 8) {// Ón (uint16_t i = 0; i <led.numPixels (); i ++) {led.setPixelColor (i, led. Color (66, 66, 66)); }
// Fekete szem (uint16_t i = 0; i led.setPixelColor (feketeLED [LR] , szín);}
// tanuló (uint16_t i = 0; i
led.setPixelColor (tanulóLED [LR] , led. Color (0, 0, 66)); }
// eyelid for (int i = 0; i <eyelidNum [eyelid]; i ++) {led.setPixelColor (eyelidLED , 0); }} else if (szemhéj == 8) {led.clear (); } led.show ();}
void setup () {
Sorozat.kezdet (115200); led.begin (); led.setBrightness (fényerő); // Kezdeti fényerő 40 led.show (); // Inicializálja az összes pixelt 'off' színre = led. Color (0, 177, 55); // pupilla színkésleltetése (100); qtra.read (sensorValues); iniSensorValL = sensorValues [0]; iniSensorValR = sensorValues [1]; pislogás (szemhéj, LR); }
void loop () {// QTR - 1A érzékelő értéke qtra.read (sensorValues); sensorValL = sensorValues [0]; sensorValR = sensorValues [1];
dupla rasioL = (kettős) sensorValL / iniSensorValL;
dupla rasioR = (kettős) sensorValR / iniSensorValR;
Serial.print (rasioL);
Serial.print (""); Soros.println (rasioR);
if (rasioL> 0,985 && rasioR <0,985) {// megfelelő (int i = LR; i <12; i ++) {blink (0, i); késleltetés (40); LR = i; }} else if (rasioL 0.985) {// balra (int i = LR; i> 2; i-) {blink (0, i); késleltetés (40); LR = i; }} else if (lid == hamis && rasioL <0,96 && rasioR <0,96) {// Villog közel (int i = 1; i 0,96 && rasioR> 0,96) {// Villogva nyitva (int i = 8; i > 0; i-) {pislog (i, LR); késleltetés (40); fedél = hamis; }} else if (lid == hamis && rasioL> 0.96 && rasioR> 0.96) {// normális // cnt ++; // szemhéj = 0; if (LR <= 7) {for (int i = LR; i <= 7; i ++) {blink (0, i); késleltetés (40); LR = i; }} else {for (int i = LR; i> = 7; i-) {blink (0, i); késleltetés (40); LR = i; }}}
// Kezdeti érték frissítése, ha (cnt> 10) {iniSensorValL = sensorValL; iniSensorValR = sensorValR; cnt = 0; }}
5. lépés: Művelet
Érzékelje az érzékelővel a pupilla bal és jobb mozgását és villogását, és vezérelje a szemgolyó LED -jét.
Ajánlott:
Akadálykerülő robot ultrahangos érzékelővel (Proteus): 12 lépés
![Akadálykerülő robot ultrahangos érzékelővel (Proteus): 12 lépés Akadálykerülő robot ultrahangos érzékelővel (Proteus): 12 lépés](https://i.howwhatproduce.com/images/001/image-158-j.webp)
Akadálykerülő robot ultrahangos érzékelővel (Proteus): Általában mindenhol találkozunk akadálykerülő robottal. Ennek a robotnak a hardveres szimulációja a verseny része sok főiskolán és számos rendezvényen. De az akadály robot robotszimulációja ritka. Még ha megtaláljuk is valahol, akkor
Arduino interfész ultrahangos érzékelővel és érintésmentes hőmérséklet -érzékelővel: 8 lépés
![Arduino interfész ultrahangos érzékelővel és érintésmentes hőmérséklet -érzékelővel: 8 lépés Arduino interfész ultrahangos érzékelővel és érintésmentes hőmérséklet -érzékelővel: 8 lépés](https://i.howwhatproduce.com/images/011/image-31672-j.webp)
Arduino interfész ultrahangos érzékelővel és érintésmentes hőmérséklet -érzékelővel: Manapság a gyártók, fejlesztők az Arduino -t részesítik előnyben a projektek prototípusainak gyors fejlesztése érdekében. Az Arduino egy nyílt forráskódú elektronikai platform, amely könnyen használható hardverre és szoftverre épül. Az Arduino nagyon jó felhasználói közösséggel rendelkezik. Ebben a projektben
Mágneses intelligens zár titkos kopogással, infravörös érzékelővel és webes alkalmazással: 7 lépés (képekkel)
![Mágneses intelligens zár titkos kopogással, infravörös érzékelővel és webes alkalmazással: 7 lépés (képekkel) Mágneses intelligens zár titkos kopogással, infravörös érzékelővel és webes alkalmazással: 7 lépés (képekkel)](https://i.howwhatproduce.com/images/001/image-1767-59-j.webp)
Mágneses intelligens zár titkos kopogással, infravörös érzékelővel és webes alkalmazással: Ha tetszik ez a projekt, kövessen engem az Instagramon és a YouTube -on. Ebben a projektben mágneses zárat fogok építeni az otthoni irodámhoz, amely megnyílik, ha tudja titkos kopogás. Ó… és lesz még néhány trükkje a hüvelyében is. Mágnes
8 relévezérlés NodeMCU és infravörös vevővel WiFi és infravörös távirányító és Android alkalmazás használatával: 5 lépés (képekkel)
![8 relévezérlés NodeMCU és infravörös vevővel WiFi és infravörös távirányító és Android alkalmazás használatával: 5 lépés (képekkel) 8 relévezérlés NodeMCU és infravörös vevővel WiFi és infravörös távirányító és Android alkalmazás használatával: 5 lépés (képekkel)](https://i.howwhatproduce.com/images/002/image-4439-69-j.webp)
8 relévezérlés NodeMCU -val és IR -vevővel WiFi és IR távirányító és Android -alkalmazás használatával: 8 relés kapcsoló vezérlése nodemcu és ir vevő segítségével wifi -n és távoli és androidos alkalmazáson keresztül. Az ir távirányító a wifi -kapcsolattól függetlenül működik. ITT
Nokia 5110 LCD infravörös érzékelővel: 4 lépés
![Nokia 5110 LCD infravörös érzékelővel: 4 lépés Nokia 5110 LCD infravörös érzékelővel: 4 lépés](https://i.howwhatproduce.com/images/001/image-1709-45-j.webp)
Nokia 5110 LCD infravörös érzékelővel: A Nokia 5110 LCD kijelző fantasztikus LCD kijelző, amely kompatibilis az Arduino fejlesztőpanellel. Most vezéreljük az egyik ilyen LCD -t, és csatlakoztassuk az Arduino -val és egy IR -érzékelővel