Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Augenbewegungsverfolgung mit Infrarotsensor

Komponenten und Verbrauchsmaterialien

SparkFun Arduino Pro Mini 328 - 5V/16MHz
× 1
Adafruit LiIon/LiPoly Rucksack-Add-On für Pro Trinket/ItsyBitsy
× 1
NeoPixel-Streifen
× 1
QTR-1A Reflexionssensor
× 1
3,7 V LiPo-Akku
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Ich habe einen Infrarotsensor verwendet, um Augenbewegungen zu erkennen und die LED zu steuern.

NeoPixel LED Augapfel

Es wird NeoPixel-LED-Band verwendet. LED ist 68 Einheiten.

LED wird mit doppelseitigem Klebeband an der Schüssel befestigt und in der folgenden Reihenfolge verdrahtet.

Augenbewegungsverfolgung

Schaltpläne

Sensor

Ich habe zwei Sensoren QTR - 1A für das Eyetracking verwendet. QTR - 1A werden in einem Abstand von etwa der Breite des Auges auf eine Plastikfolie gelegt.

Der Sensorteil und der Mikrocontrollerteil wurden jeweils mit einem Clip an der Brille befestigt.

Arduino-Code

Wenn sich die Iris einem Sensor nähert, nimmt das reflektierte Licht ab und der Sensorwert steigt. Umgekehrt nimmt bei einer Entfernung der Iris das reflektierte Licht zu und der Sensorwert des Fotoreflektors sinkt.

Die rechte und linke Bewegung der Pupille des LED-Augapfels erkennt die Zunahme und Abnahme eines Sensorwertes und steuert diesen.

Beim Blinken sinken beide Sensorwerte, wenn also die beiden Sensorwerte gleichzeitig sinken, gehen die Augenlider des LED-Augapfels nach unten.

#include #include #define NUM_SENSORS 2 // Anzahl der verwendeten Sensoren#define NUM_SAMPLES_PER_SENSOR 10 // Mittelwertbildung#define EMITTER_PIN QTR_NO_EMITTER_PIN intViSensoralValLint, iniSensor;#define PIN A3Adafruit_NeoPixel led =Adafruit_NeoPixel(68, PIN, NEO_GRB + NEO_KHZ800);int blackNum =24;int PupillenNum =12;uint32_t color;int bright =40;byte eyeColor;int LR =7;boolean lid =false;int cnt =0; // Schwarzes Auge 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}, {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}}; // Pupille L&R Animationint PupilleLED[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}};//Blinkanimationint eyelid =0;int eyelidNum[8] ={0, 4,8,16,24,34,44,56};int eyelidLED[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 eyelid, int LR) { if (eyelid !=8) {//Pewter for(uint16_t i=0; i 0,985 &&rasioR <0,985) {// rechts für (int i =LR; i <12; i ++) {blinken (0, i); Verzögerung (40); LR =ich; }} Sonst if (rasioL <0,985 &&rasioR> 0,985) {//links für (int i =LR; i> 2; i--) {blinken (0, i); Verzögerung (40); LR =ich; aufrechtzuerhalten. Verzögerung (40); Deckel =wahr; aufrechtzuerhalten. Verzögerung (40); Deckel =falsch; }} sonst if(lid ==false &&rasioL> 0,96 &&rasioR> 0,96) {//normal //cnt++; // Augenlid =0; if (LR <=7) { for (int i =LR; i <=7; i ++) { blink (0, i); Verzögerung (40); LR =ich; }} sonst { for(int i=LR; i>=7; i--){blinken (0, i); Verzögerung (40); LR =ich; } } Serial.println("通常時"); } //Anfangswert aktualisieren if (cnt> 10) {iniSensorValL =sensorValL; iniSensorValR =sensorValR; cnt =0; }} 

Bedienung


Herstellungsprozess

  1. Was führte uns zurück zur Verwendung natürlicher Materialien im Produktdesign?
  2. Impulslichtsensor
  3. TMP006-Temperatursensor-Python-Bibliothek mit Raspberry Pi,
  4. Python- und Raspberry Pi-Temperatursensor
  5. Linienverfolgungssensor mit RPi
  6. Bewegungssensor, Alarm, Videoaufzeichnung in HA auf Raspberry Pi
  7. DIY Infrarot-Bewegungssensorsystem für Raspberry Pi
  8. Bewegungssensor mit Raspberry Pi
  9. Sprungbewegungs-Laserpanzer!
  10. Infrarotsensor-Temperaturmessungen