Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Oogbeweging volgen met infraroodsensor

Componenten en benodigdheden

SparkFun Arduino Pro Mini 328 - 5V/16MHz
× 1
Adafruit LiIon/LiPoly rugzak-add-on voor Pro Trinket/ItsyBitsy
× 1
NeoPixel-strip
× 1
QTR-1A reflectiesensor
× 1
3,7 V LiPo-batterij
× 1

Apps en online services

Arduino IDE

Over dit project

Ik heb een infraroodsensor gebruikt om oogbewegingen te detecteren en de LED te bedienen.

NeoPixel LED-oogbal

NeoPixel LED-tape wordt gebruikt. LED is 68 eenheden.

LED wordt met dubbelzijdig plakband op de schaal bevestigd en in de volgende volgorde bedraad.

Oogbewegingen volgen

Schema's

Sensor

Ik heb twee sensoren QTR - 1A gebruikt voor eye-tracking. QTR - 1A worden op een plastic vel geplaatst op een afstand van ongeveer de breedte van het oog.

Het sensorgedeelte en het microcontrollergedeelte werden respectievelijk met een clip aan de bril bevestigd.

Arduino-code

Wanneer de iris één sensor nadert, neemt het gereflecteerde licht af en neemt de sensorwaarde toe. Omgekeerd, wanneer de iris weg beweegt, neemt het gereflecteerde licht toe en neemt de sensorwaarde van de fotoreflector af.

De rechter- en linkerbeweging van de pupil van de LED-oogbol detecteert de toename en afname van één sensorwaarde en regelt deze.

Bij het knipperen nemen beide sensorwaarden af, dus als de twee sensorwaardes gelijktijdig afnemen, gaan de oogleden van de LED-oogbol naar beneden.

#include #include #define NUM_SENSORS 2 // aantal gebruikte sensoren#define NUM_SAMPLES_PER_SENSOR 10 // gemiddelden#define EMITTER_PIN QTR_NO_EMITTER_PIN intL,iSensorLal;;#define PIN A3Adafruit_NeoPixel led =Adafruit_NeoPixel(68, PIN, NEO_GRB + NEO_KHZ800);int blackNum =24;int pupilNum =12;uint32_t color;int helderheid =40;byte eyeColor;int LR =7;boolean lid =false;int cnt =0;//Black eye L&R animatieint 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}, {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,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}, {21,23,44,46,68,68,68,68,68,68, 68,68,68,68,68,68,68,68,68,68,68,68,68,68}};//pupil L&R animatieint pupilLED[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}};//Blink animatieint 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};QTRSensorsAnaloge qtra((unsigned char[]) {0, 1}, NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN); niet-ondertekende int sensorValues ​​[NUM_SENSORS]; ongeldig knipperen (int ooglid, int LR) {if (ooglid! =8) { // Pewter voor (uint16_t i=0; i 0.985 &&rasioR <0.985){ //right for(int i =LR; i <12; i++){ blink(0, i); vertraging (40); LR =ik; } }else if(rasioL <0.985 &&rasioR> 0.985){ // left for (int i=LR; i>2; i--){ blink(0, i); vertraging (40); LR =ik; } }else if(lid ==false &&rasioL <0.96 &&rasioR <0.96) { // Knipperend dichtbij voor (int i =1; i <9; i++) { blink(i, LR); vertraging (40); deksel =waar; } }else if(lid ==true &&rasioL> 0.96 &&rasioR> 0.96){ // Knippert open voor (int i =8; i> 0; i--){ blink(i, LR); vertraging (40); deksel =vals; } }else if(lid ==false &&rasioL> 0.96 &&rasioR> 0.96) { //normal //cnt++; // ooglid =0; if(LR <=7){ for(int i=LR; i<=7; i++){ blink(0, i); vertraging (40); LR =ik; } }else { for(int i=LR; i>=7; i--){ blink(0, i); vertraging (40); LR =ik; } } Serial.println("通常時"); } //Initiële waarde vernieuwen als (cnt> 10) { iniSensorValL =sensorValL; iniSensorValR =sensorValR; cnt =0; }} 

Bediening


Productieproces

  1. Wat heeft ons ertoe gebracht om natuurlijke materialen te gebruiken in productontwerp?
  2. Pulslichtsensor
  3. TMP006 Temperature Sensor Python Library met Raspberry pi,
  4. Python- en Raspberry Pi-temperatuursensor
  5. Lijnvolgsensor met RPi
  6. Bewegingssensor, alarm, video-opname in HA op Raspberry Pi
  7. DIY infrarood bewegingssensorsysteem voor Raspberry Pi
  8. Bewegingssensor met Raspberry Pi
  9. Leap Motion lasertanks!
  10. DIY infrarood hartslagsensor met Arduino
  11. Temperatuurmetingen met infraroodsensor