- ضروری اجزاء
- اے پی ڈی ایس 9960 آر جی بی اور اشارہ سینسر
- سرکٹ ڈایاگرام
- کوڈ کی وضاحت
- اشارہ پر قابو شدہ ٹچلیس لفٹ کی جانچ کرنا
کرونا کی وبائی بیماری کے اس دور میں ، لفٹ ایک اعلی خطرہ والی جگہ بن گئی ہے جہاں ہر شخص ایک ہی بٹن کو چھوتا ہے۔ بہت ساری جگہوں پر ، لوگوں نے لفٹ بٹنوں کو دبانے کے ل elev پمپنگ کاغذ ، ٹوتھ پک ، یا سینیٹری ٹشوز جیسے لفٹ بٹنوں سے رابطے کو روکنے کے لئے چالیں دریافت کیں۔
لہذا ہمارے پچھلے کورونا سیفٹی منصوبوں جیسے آٹومیٹک سینیٹائزر مشین ، کنٹیکٹ لیس درجہ حرارت کی نگرانی ، اور سوشل فاصلہ کا پتہ لگانے والے کے تسلسل میں ، ہم یہاں اردوینو نینو کا استعمال کرتے ہوئے ایک اشارہ سے کنٹرول لفٹ پروٹوٹائپ بنانے جارہے ہیں۔
یہ کنٹیکٹ لیس لفٹ آرڈوینو نینو ، ایک اے پی ڈی ایس 9960 اشارہ سینسر ، اور او ایل ای ڈی ڈسپلے ماڈیول استعمال کررہا ہے۔ اس اشارے پر مبنی کنٹرول پینل کی مدد سے ، آپ ہاتھ کے اشارے کرکے آسانی سے اپنے لفٹ کو کنٹرول کرسکتے ہیں۔ ای پی ڈی ایس 9960 سینسر اشاروں کو پڑھنے کے لئے استعمال کیا جاتا ہے۔ فرش نمبر متعین کرنے کے لئے یو پی اور ڈاون اشاروں کا استعمال کیا جاتا ہے ، بائیں اشارہ لفٹ کے دروازے کو بند کرنا اور فرش نمبر کے مطابق لفٹ کو آگے بڑھانا ہے اور دروازہ کھولنے کے لئے دائیں اشارہ استعمال کیا جاتا ہے۔
ضروری اجزاء
- اردوینو نینو
- OLED ڈسپلے ماڈیول
- اے پی ڈی ایس 9960 آر جی بی اور اشارہ سینسر
- بریڈ بورڈ
- جمپر تاروں
اے پی ڈی ایس 9960 آر جی بی اور اشارہ سینسر
اے پی ڈی ایس 9960 آر جی بی اور اشارہ کا پتہ لگانے والا ماڈیول ایک چھوٹا بریک آؤٹ بورڈ ہے جو بلٹ میں اے پی ڈی ایس - 9960 سینسر ، یووی اور آئی آر بلاک کرنے والے فلٹرز ، مختلف سمتوں سے حساس چار علیحدہ ڈائیڈز ، اور آئی 2 سی ہم آہنگ انٹرفیس کے ساتھ آتا ہے۔ یہ سینسر محیطی روشنی اور رنگ کی پیمائش ، قربت کا پتہ لگانے اور ٹچ لیس اشارہ سینسنگ کے لئے استعمال کیا جاسکتا ہے۔ اس کی اشارے کا پتہ لگانے کی حد 10 سے 20 سینٹی میٹر ہے اور یہ مائکروکنٹرولر ، روبوٹ اور بہت سے دوسرے پروجیکٹس کو کنٹرول کرنے کے لئے استعمال کیا جاسکتا ہے۔
خصوصیات:
- آپریشنل وولٹیج: 2.4V سے 3.6V
- آپریٹنگ رینج: 4-8 ان (10-20 سینٹی میٹر)
- I2C انٹرفیس (I2C ایڈریس: 0x39)۔
- محیط روشنی اور آرجیبی رنگین سینسنگ ، قربت
- آپٹیکل ماڈیول میں سینسنگ ، اور اشارے کا پتہ لگانا
- I2C- بس فاسٹ موڈ مطابقت پذیر انٹرفیس جس میں ڈیٹا کی شرح 400 KHz ہے۔
سرکٹ ڈایاگرام
اے پی ڈی ایس 9960 استعمال کرنے والے کانٹیکٹ لیس لفٹ کے لئے سرکٹ ڈایاگرام ذیل میں دیا گیا ہے۔
ہم اے پی ڈی ایس 9960 سینسر اور او ایل ای ڈی ڈسپلے کے ذریعہ آردوینو نینو میں مداخلت کر رہے ہیں۔ اے پی ڈی ایس 9960 سینسر اور او ایل ای ڈی ڈسپلے دونوں کے وی سی سی اور جی این ڈی پنز 3.3V اور ارڈینو کے جی ڈی سے جڑے ہوئے ہیں۔ جبکہ اے پی ڈی ایس 9960 سینسر اور او ایل ای ڈی ڈسپلے کے ایس سی ایل اور ایس ڈی اے پنوں اردوینو کے A5 اور A4 پنوں سے خاص طور پر جڑے ہوئے ہیں۔
OLED & APDS9960 پن |
اردوینو نینو پن |
وی سی سی |
3.3v |
GND |
GND |
ایس سی ایل |
A5 |
ایس ڈی اے |
A4 |
اس طرح ارڈوینو کا استعمال کرتے ہوئے اشارہ سے چلنے والے لفٹ کے لئے مکمل سیٹ اپ نظر آئے گا۔
OLED ڈسپلے اور دیگر مائکروکانٹرولرز کے ساتھ اس کی مداخلت کے بارے میں مزید معلومات کے ل the ، لنک پر عمل کریں۔
کوڈ کی وضاحت
اے پی ڈی ایس 9960 کا استعمال کرتے ہوئے کانٹیکٹ لیس لفٹیر کے لئے مکمل کوڈ صفحہ کے آخر میں دیا گیا ہے۔ یہاں ہم کوڈ کے کچھ اہم حص.وں کی وضاحت کر رہے ہیں۔ اس پروگرام میں ، ہم اے پی ڈی ایس 9960 اور اڈفریٹ_س 111 لائبریریوں کو استعمال کرنے جارہے ہیں ۔ اے پی ڈی ایس 9960 لائبریری آرڈینو آئی ڈی ای کے ذریعہ ڈاؤن لوڈ کی جاسکتی ہے۔ لائبریری ڈاؤن لوڈ کرنے کے لئے ، خاکہ> لائبریری مینیجر> تلاش پر جائیں اور پھر اردوینو اے پی ڈی ایس 9960 کے لئے داخل کریں ۔ جبکہ اڈفریٹ_اس 11106 لائبریری کو یہاں سے ڈاؤن لوڈ کیا جاسکتا ہے۔
لہذا ہمیشہ کی طرح تمام مطلوبہ لائبریریوں کو شامل کرکے کوڈ کا آغاز کریں۔ Adafruit_SH1106.h اصلی اڈفروٹ لائبریری کا ترمیم شدہ ورژن ہے۔
# شامل کریں
اگلی لائنوں میں ، موجودہ منزل اور منزل نمبر جہاں صارف جانا چاہتا ہے اسے اسٹور کرنے کے لئے متغیر کی وضاحت کریں۔
انٹ فلورینم = 0؛ # موجودہفلور = 0؛
اس کے بعد ، یو پی یرو ، ڈاون یرو ، اوپن ڈور ، اور قریب دروازے کی تصاویر کیلئے بٹ نقشہ داخل کریں۔ امیج 2 سی پی پی جیسے کنورٹر کا استعمال کرکے کسی شبیہہ کے لئے ہیکس کوڈ تیار کیا جاسکتا ہے۔ امیج 2 سی پی پی کے استعمال کے بارے میں مزید جاننے کے ل this ، اس اردوینو کیو آر کوڈ جنریٹر ٹیوٹوریل کی پیروی کریں۔
پروجیمیم = {0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، …………………………… ……………………………………………………..}؛ سازش پر دستخط شدہ چارج نیچے PROGMEM = {0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x00، …………………………… ……………………………………………………..}؛ غیر دستخط شدہ چار ڈوروپن پروگیم = {0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x00، 0x0f، 0xff، 0xff، 0xc0، 0x1f، 0xff، 0xff، 0xe0، ………………………… ……………………………………………………..}؛
میں سیٹ اپ () تقریب، ٹھیک کرنا مقاصد کے لئے 9600 کی ایک بوڈ کی شرح پر سیریل مانیٹر کی ابتدا. اس کے بعد اگلی سطر میں ، OLED ڈسپلے اور APDS9960 سینسر کو ابتدائی () طریقہ کے ساتھ ابتدائی طور پر شروع کریں :
سیریل.بیگین (9600)؛ اگر (! APDS.begin ()) ial Serial.println ("اے پی ڈی ایس 9960 سینسر کو شروع کرنے میں خرابی!")؛ ial سیریل.پرنٹ للن ("اشاروں کا پتہ لگانا…")؛ show.begin (SH1106_SWITCHCAPVCC، 0x3C)؛
ڈسپلے اور سینسر ابتدا کے بعد، کے ساتھ ڈسپلے بفر صاف clearDisplay () طریقہ کار اور استعمال کرتے ہوئے فونٹ سائز اور رنگ مقرر display.setTextSize () اور display.setTextColor () طریقوں.
display.setTextSize (2)؛ ڈسپلے.سیٹ ٹیکسٹکالور (وائٹ)؛ display.clearDisplay ()؛ display.display ()؛
باطل لوپ () کے اندر ، مستقل طور پر چیک کریں کہ آیا کوئی اشارہ کیا گیا ہے۔ اگر ہاں ، تو اشارہ کی قدروں اور جانچ پڑتال کریں کہ یہ کون سا اشارہ ہے (اوپر ، نیچے ، دائیں ، بائیں) اور سیریل مانیٹر پر اسی پڑھنے کو پرنٹ کرتا ہے۔ فرش نمبر متعین کرنے کے لئے یوپی اور ڈاون اشاروں کا استعمال کیا جاتا ہے جہاں صارف جانا چاہتا ہے۔ بائیں اشارہ لفٹ کے دروازے کو بند کرنے اور منزل کو نمبر کے مطابق لفٹ منتقل کرنا ہے جبکہ دائیں اشارہ دروازہ کھولنے کے لئے استعمال کیا جاتا ہے۔
if (APDS.gestureAv available ()) ge int اشارہ = APDS.readGesture ()؛ سوئچ (اشارہ) {کیس GESTURE_UP: Serial.println ("UP کا اشارہ معلوم ہوا")؛ display.clearDisplay ()؛ فلورینم ++؛ ہوم 1 ()؛ توڑ کیس GESTURE_DOWN: Serial.println ("نیچے کا اشارہ ملا")؛ display.clearDisplay ()؛ فلورنم -؛ ہوم 1 ()؛ توڑ کیس GESTURE_LEFT: Serial.println ("بائیں طرف اشارہ کیا گیا")؛ display.clearDisplay ()؛ شروع ()؛ توڑ کیس GESTURE_RIGHT: Serial.println ("حق سے اشارہ کیا گیا")؛ display.clearDisplay ()؛ ہوم 1 ()؛ توڑ پہلے سے طے شدہ: توڑ }
ہوم 1 () فنکشن لفٹ کے لئے گھریلو ڈسپلے کو اپنی طرف متوجہ کرنے کے لئے استعمال ہوتا ہے۔ اس میں اوپر والا ، نیچے کا تیر ، کھلی دروازہ ، قریب دروازے کے نشانات اور موجودہ منزل نمبر شامل ہیں۔ OLED ڈسپلے پر تصاویر کھینچنے کے لئے ڈرا بٹ میپ () فنکشن استعمال ہوتا ہے۔ ڈرا بٹ میپ () فنکشن کے لئے نحو ذیل میں دیا گیا ہے:
ڈرا بٹ نقشہ (int16_t x ، int16_t y ، بٹ نقشہ ، int16_t ڈبلیو ، int16_t h ، رنگ)؛
کہاں:
int16_t x ، int16_t y OLED ڈسپلے کے X اور Y نقاط ہیں
بٹ میپ بٹ میپ کا نام ہے
int16_t ڈبلیو ، int16_t h شبیہہ کی اونچائی اور وزن ہیں۔
باطل ہوم 1 () {ڈسپلے.سیٹ کرسر (101،23)؛ display.println (فلورنم)؛ ڈسپلے. ڈرا بٹ نقشہ (23 ، 0 ، اپرو ، 40 ، 18 ، وائٹ)؛ ڈسپلے.ڈرا بٹ نقشہ (26 ، 46 ، ڈاؤنرو ، 40 ، 18 ، وائٹ)؛ ڈسپلے.ڈرا بٹ نقشہ (0 ، 15 ، ڈوروپن ، 29 ، 30 ، وائٹ)؛ ڈسپلے.ڈرا بٹ نقشہ (60 ، 15 ، بندور ، 29 ، 30 ، وائٹ)؛ display.display ()؛ }
آغاز () تقریب اوپر یا نیچے لفٹ منتقل کرنے کے لئے استعمال کیا جاتا ہے. اس کے لئے ، موجودہ منزل نمبر کو اس منزل نمبر سے موازنہ کیا جاتا ہے جہاں صارف جانا چاہتا ہے۔ اگر فرش نمبر موجودہ منزل نمبر سے زیادہ ہے۔ تب لفٹ اوپر کی طرف جائے گی اور اگر فرش نمبر موجودہ منزل نمبر سے کم ہے۔ تب لفٹ نیچے کی طرف جائے گی۔ لفٹ اس وقت بند ہوگی جب دونوں موجودہ منزل نمبر اور منزل نمبر ایک جیسے ہیں
باطل شروع () {جبکہ (فلورینم> کرنٹ فلور) ial سیریل.پرنٹ لین ("یوپی جا رہا ہے")؛ موجودہ فلور ++؛ ڈسپلے. ڈرا بٹ نقشہ (0 ، 0 ، اوپر ، 100 ، 64 ، سفید)؛ ڈسپلے.سیٹ کرسر (101،23)؛ display.println (کرنٹ فلوور)؛ display.display ()؛ display.clearDisplay ()؛ تاخیر (2000)؛ } جبکہ (فلورینم <کرنٹ فلوور) ial سیریل.پرنٹلن ("نیچے جارہی ہے")؛ کرنٹ فلوور--؛ ڈسپلے. ڈرا بٹ نقشہ (0 ، 0 ، نیچے ، 100 ، 64 ، سفید)؛ ڈسپلے.سیٹ کرسر (101،23)؛ display.println (کرنٹ فلوور)؛ display.display ()؛ display.clearDisplay ()؛ تاخیر (2000)؛ } if (floornum == کرنٹ فلوور) ial Serial.println ("پہنچ گیا")؛ display.clearDisplay ()؛ ہوم 1 ()؛ سیریل.پرنٹ (کرنٹ فلوور)؛ }
اشارہ پر قابو شدہ ٹچلیس لفٹ کی جانچ کرنا
ایک بار جب ہارڈ ویئر اور کوڈ تیار ہوجائے تو ، ارڈینو نینو کو لیپ ٹاپ سے مربوط کریں اور نیچے دیا ہوا مکمل کوڈ اپ لوڈ کریں۔ جیسا کہ آپ دیکھ سکتے ہیں پہلے سے طے شدہ OLED لفٹ UI ظاہر کرے گا۔
اب اپنے ہاتھ کو اوپر کی طرف لہرائیں ، جیسے نیچے دی گئی ویڈیو میں دکھایا گیا ہے ، فرش کو جہاں آپ جانا چاہتے ہیں۔ پھر اس منزل تک جانے کے لفٹ کو تسلیم کرنے کے لئے بائیں اشارہ کریں۔ اگر آپ لفٹ کو روکنا چاہتے ہیں تو اپنے ہاتھ سے صحیح اشارہ کریں۔
اس منصوبے کے لئے مکمل کام کرنے والا ویڈیو اور کوڈ ذیل میں دیا گیا ہے۔ امید ہے کہ آپ کو اس پروجیکٹ کی تعمیر میں خوشی ہوگی۔ اگر آپ کو اس پروجیکٹ کے بارے میں کوئی سوالات ہیں تو ، براہ کرم انھیں کمنٹ سیکشن میں چھوڑ دیں۔