فهرست مطالب:
- مرحله 1: قانون اساسی
- مرحله 2: NeoPixel LED Eye Ball
- مرحله 3: واحد سنسور
- مرحله 4: کد آردوینو
- مرحله 5: عملیات
تصویری: ردیابی حرکت چشم با استفاده از سنسور مادون قرمز: 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
من از حسگر مادون قرمز برای تشخیص حرکات چشم و کنترل LED استفاده کردم.
من با LED Tape NeoPixel کره چشم درست کردم.
مرحله 1: قانون اساسی
من از دو سنسور QTR - 1A برای ردیابی چشم استفاده کردم. حس کردن با آردوینو و کنترل LED
اجزاء
- SparkFun Arduino Pro Mini 328 - 5V/16MHz
- افزودنی کوله پشتی Adafruit LiIon/LiPoly برای Pro Trinket/ItsyBitsy
- باتری LiPo
- نوار NeoPixel
- سنسور بازتاب QTR-1A
مرحله 2: NeoPixel LED Eye Ball
از نوار LED NeoPixel استفاده می شود. LED 68 واحد است.
LED با نوار دو طرفه و با سیم به کاسه ثابت می شود.
مرحله 3: واحد سنسور
من از دو سنسور QTR - 1A برای ردیابی چشم استفاده کردم. QTR - 1A بر روی یک ورق پلاستیکی در فاصله تقریباً عرض چشم قرار می گیرد.
قسمت حسگر و قسمت میکروکنترلر به ترتیب با گیره بر روی عینک ثابت شدند.
مرحله 4: کد آردوینو
وقتی عنبیه به یک سنسور نزدیک می شود ، نور منعکس شده کاهش می یابد و مقدار سنسور افزایش می یابد. برعکس ، وقتی عنبیه دور می شود ، نور منعکس شده افزایش می یابد و مقدار سنسور بازتابنده عکس کاهش می یابد.
حرکت راست و چپ مردمک کره چشم LED افزایش و کاهش یک مقدار سنسور را حس می کند و آن را کنترل می کند. هنگام چشمک زدن ، هر دو مقدار سنسور کاهش می یابد ، بنابراین اگر دو مقدار سنسور به طور همزمان کاهش یابد ، پلک های کره چشم LED پایین می آید.
من از کتابخانه زیر استفاده کردم.
- QTRsensors:
- Adafruit_NeoPixel:
#شامل #شامل شود
#تعریف NUM_SENSORS 2 // تعداد حسگرهای مورد استفاده#تعریف NUM_SAMPLES_PER_SENSOR 10 // به طور متوسط#تعریف EMITTER_PIN QTR_NO_EMITTER_PIN
int iniSensorValL ، sensorValL ؛ int iniSensorValR ، sensorValR ؛ #تعریف PIN A3 Adafruit_NeoPixel led = Adafruit_NeoPixel (68 ، PIN ، NEO_GRB + NEO_KHZ800) ؛ int blackNum = 24 ؛ int pupilNum = 12 ؛ رنگ uint32_t ؛ روشنایی int = 40 ؛ بایت eyeColor؛ int LR = 7 ؛ درب بولی = غلط ؛ int cnt = 0؛
// انیمیشن سیاه چشم L&R سیاه LED [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}، {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}} ؛
// انیمیشن دانش آموز L&R شاگردLED [15] [12] = {{33 ، 34 ، 68 ، 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}} ؛
// پلک زدن متحرک در پلک = 0؛ int eyelidNum [8] = {0 ، 4 ، 8 ، 16 ، 24 ، 34 ، 44 ، 56} ؛ پلک داخلی [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 ((char charged ) {0 ، 1} ، NUM_SENSORS ، NUM_SAMPLES_PER_SENSOR ، EMITTER_PIN) ؛ حسگر int بدون ارزش
چشمک زدن خالی (int پلک ، int LR) {if (پلک! = 8) {// پیوتر برای (uint16_t i = 0 ؛ i <led.numPixels ()؛ i ++) {led.setPixelColor (i ، led. Color (66 ، 66 ، 66)) ؛ }
// سیاهی چشم برای (uint16_t i = 0 ؛ i led.setPixelColor (سیاهLED [LR] ، رنگ) ؛}
// دانش آموز برای (uint16_t i = 0 ؛ i
led.setPixelColor (دانش آموز LED [LR] ، led. Color (0 ، 0 ، 66)) ؛ }
// پلک برای (int i = 0 ؛ i <eyelidNum [پلک] ؛ i ++) {led.setPixelColor (پلک LED ، 0) ؛ }} else if (پلک == 8) {led.clear ()؛ } led.show ()؛}
void setup () {
Serial.begin (115200) ؛ led.begin ()؛ led.setBrightness (روشنایی) ؛ // روشنایی اولیه 40 led.show ()؛ // همه پیکسل ها را به رنگ "off" = = led. Color (0 ، 177 ، 55)؛ // تاخیر رنگ مردمک (100) ؛ qtra.read (sensorValues) ؛ iniSensorValL = sensorValues [0]؛ iniSensorValR = sensorValues [1] ؛ پلک زدن (پلک ، LR) ؛ }
void loop () {// QTR - 1A مقدار حسگر 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)؛
if (rasioL> 0.985 && rasioR <0.985) {// مناسب برای (int i = LR؛ i <12؛ i ++) {چشمک زدن (0، i)؛ تأخیر (40) ؛ LR = i ؛ }} else if (rasioL 0.985) {// برای (int i = LR؛ i> 2؛ i-) {چشمک (0، i)؛ تأخیر (40) ؛ LR = i ؛ }} else if (lid == false && rasioL <0.96 && rasioR <0.96) {// چشمک زدن نزدیک (int i = 1؛ i 0.96 && rasioR> 0.96) {// چشمک زدن برای (int i = 8؛ i > 0 ؛ من-) {پلک زدن (i ، LR) ؛ تأخیر (40) ؛ lid = false؛ }} else if (lid == false && rasioL> 0.96 && rasioR> 0.96) {// معمولی // cnt ++؛ // پلک = 0 ؛ if (LR <= 7) {for (int i = LR؛ i <= 7؛ i ++) {چشمک زدن (0، i)؛ تأخیر (40) ؛ LR = i ؛ }} else {for (int i = LR؛ i> = 7؛ i-) {چشمک زدن (0، i)؛ تأخیر (40) ؛ LR = i ؛ }}}
// تازه کردن مقدار اولیه if (cnt> 10) {iniSensorValL = sensorValL؛ iniSensorValR = sensorValR؛ cnt = 0؛ }}
مرحله 5: عملیات
حرکت چپ و راست را تشخیص داده و با حسگر چشمک بزنید و LED چشم را کنترل کنید.
توصیه شده:
استفاده از سنسور مادون قرمز با آردوینو: 8 مرحله (همراه با تصاویر)
استفاده از سنسور مادون قرمز با آردوینو: سنسور مادون قرمز (مادون قرمز) چیست؟ سنسور IR یک ابزار الکترونیکی است که سیگنالهای IR را در محدوده فرکانس خاصی که توسط استانداردها تعریف شده اسکن کرده و آنها را به پین خروجی خود به سیگنالهای الکتریکی (که معمولاً پین سیگنال نامیده می شود) تبدیل می کند. به سیگنال IR
ربات هوشمند DIY ردیابی ماشین ردیابی ماشین ردیابی خودرو حساس به نور: 7 مرحله
دستگاه DIY Robot Smart Tracking Car Tracking Car Photosensitive: طراحی شده توسط SINONING ROBOT شما می توانید از ربات ردیابی ماشین خرید کنید بچرخید تا
سنسور مجاورت مادون قرمز با استفاده از LM358: 5 مرحله
سنسور مجاورت مادون قرمز با استفاده از LM358: این مورد در مورد ساخت سنسور مجاورت IR قابل آموزش است
M5Stack IR دوربین حرارتی با استفاده از سنسور تصویربرداری آرایه مادون قرمز AMG8833: 3 مرحله
دوربین حرارتی M5Stack IR با استفاده از سنسور تصویربرداری آرایه مادون قرمز AMG8833: مانند بسیاری دیگر ، من شیفته دوربین های حرارتی بودم اما آنها همیشه از محدوده قیمت من خارج بودند - تا به حال !! هنگام مرور در وب سایت Hackaday با این دوربین با استفاده از M5Stack روبرو شدم. ماژول ESP32 و نسبتاً ارزان
مادون قرمز از راه دور و گیرنده مادون قرمز (TSOP1738) با آردوینو: 10 مرحله
گیرنده مادون قرمز و گیرنده مادون قرمز (TSOP1738) با آردوینو: این برنامه برای مبتدیان آردوینو مناسب است. این یکی از پروژه های قبلی من با آردوینو است. از درست کردنش خیلی لذت بردم و امیدوارم شما هم خوشتون بیاد. جذاب ترین ویژگی این پروژه & ldquo؛ کنترل بی سیم & rdquo ؛. و این