- بلوٹوتھ مواصلت کیلئے مطلوبہ پیکجز کی تنصیب کرنا:
- بلوٹوتھ پر راسبیری پائ کے ساتھ آلات جوڑا بنانا:
- کھلونا کار کا انتخاب:
- سرکٹ ڈایاگرام اور وضاحت:
- اینڈرائیڈ ایپ بلیوٹرم کے ذریعہ کار کو دور سے کنٹرول کرنا:
- ازگر پروگرامنگ:
انٹرنیٹ پر وائرلیس مواصلات کی ہموار صلاحیت کی وجہ سے راسبیری پائ IOT پروجیکٹس کے لئے بہت مشہور ہے۔ راسبیری پائی 3 میں Wi-Fi اور بلوٹوتھ شامل ہے ، اور بلوٹوتھ ایک بہت ہی مقبول وائرلیس مواصلات پروٹوکول ہے۔ آج ہم راسبیری پائی 3 اور بلوٹوتھ کا استعمال کرتے ہوئے ریموٹ کنٹرول شدہ کار بنانے جارہے ہیں ، یہاں ہم کار کو کنٹرول کرنے کے لئے سمارٹ فون کو ریموٹ کے طور پر استعمال کریں گے ۔ اس سے پہلے ہم اس آر ڈی کار کو اردوینو کا استعمال کرتے ہوئے بنوا چکے ہیں۔
یہاں ہم راسبیری پائ 3 استعمال کر رہے ہیں جس میں ان بلٹ بلوٹوت موجود ہے ، لہذا ہمیں کسی بیرونی USB بلوٹوت ڈونگل کو استعمال کرنے کی ضرورت نہیں ہے۔ یہاں ہم وائرلیس مواصلات کے لئے آریفکیم بلوٹوتھ پروٹوکول استعمال کررہے ہیں۔
ازگر میں بلوٹوتھ کے لئے پروگرامنگ ساکٹ پروگرامنگ ماڈل پر عمل پیرا ہے اور بلوٹوتھ آلات کے مابین مواصلات آر ایف سی ایم ایم ساکٹ کے ذریعہ کیے جاتے ہیں۔ آر ایف سی ایم ایم (ریڈیو فریکوینسی مواصلات) ایک بلوٹوتھ پروٹوکول ہے جس نے ایم آر ایل 232 سیریل پورٹ فراہم کیا ہے اور اسے سیریل پورٹ ایمولیشن بھی کہا جاتا ہے۔ بلوٹوتھ سیریل پورٹ پروفائل اسی پروٹوکول پر مبنی ہے۔ RFCOMM بلوٹوتھ ایپلی کیشنز میں اس کی وسیع حمایت اور عام طور پر دستیاب API کی وجہ سے بہت مشہور ہے۔ یہ L2CAP پروٹوکول کا پابند ہے۔
اگر آپ کے پاس رسبری پائ 2 ہے ، تو آپ کو بیرونی بلوٹوت ڈونگل یا بلوٹوتھ ماڈیول HC-06 استعمال کرنے کی ضرورت ہے۔ یہ بیرونی بلوٹوتھ آلات استعمال کرنے کیلئے ہمارے پچھلے پروجیکٹس کی جانچ کریں: بلوٹوت اور راسبیری پائی پر قابو پانے والے گھریلو ایپلائینسز پر اینڈروئیڈ ایپ کا استعمال کرتے ہوئے راسبیری پے جی پی آئی او کو کنٹرول کرنا۔
بلوٹوتھ مواصلت کیلئے مطلوبہ پیکجز کی تنصیب کرنا:
شروع کرنے سے پہلے ، ہمیں راسبیری پائی میں بلوٹوت مواصلت قائم کرنے کے لئے کچھ سافٹ ویئر انسٹال کرنے کی ضرورت ہے ۔ آپ کے پاس رسپبیئن جیسی انسٹال میموری کارڈ ہونا چاہئے جس میں راسبیری پائی موجود ہے۔ راسپیبین OS کو انسٹال کرنے اور راسبیری پائ کے ساتھ شروعات کرنے کے لئے اس مضمون کو چیک کریں۔ لہذا اب ہمیں پہلے ذیل میں کمانڈز کا استعمال کرتے ہوئے راسپیئن کو اپ ڈیٹ کرنے کی ضرورت ہے۔
sudo apt-get update sudo اپٹ اپ گریڈ
پھر ہمیں بلوٹوتھ سے متعلق کچھ پیکیجز انسٹال کرنے کی ضرورت ہے۔
sudo apt-get انسٹال بلوٹوتھ بلیو مین بلوز
پھر راسبیری پائی کو دوبارہ شروع کریں:
sudo ریبوٹ
بلیو زیڈ ایک اوپن سورس پروجیکٹ اور آفیشل لینکس بلوٹوتھ پروٹوکول اسٹیک ہے۔ یہ تمام بنیادی بلوٹوتھ پروٹوکول کی حمایت کرتا ہے اور اب سرکاری لینکس کرنل کا حصہ بن جاتا ہے۔
بلو مین بلوٹوتھ ڈیوائسز کا نظم و نسق اور کنٹرول کرنے کیلئے ڈیسک ٹاپ انٹرفیس مہیا کرتا ہے۔
آخر کار ہمیں بلوٹوتھ مواصلت کے لئے ازگر کی لائبریری کی ضرورت ہے تاکہ ہم آتھر زبان کا استعمال کرکے آر ایف سی ایم ایم کے ذریعے ڈیٹا بھیج سکتے اور وصول کرسکیں۔
sudo apt-get python-bluetooth انسٹال کریں
راسبیری پائ کے لئے GPIO سپورٹ لائبریری بھی انسٹال کریں:
sudo apt-get python-rpi.gpio انسٹال کریں
اب ہم راسبیری پائی میں بلوٹوت مواصلات کے لئے مطلوبہ پیکیجز کی تنصیب کے ساتھ کام کر رہے ہیں۔
بلوٹوتھ پر راسبیری پائ کے ساتھ آلات جوڑا بنانا:
موبائل فون کی طرح ، راسبیری پائی کے ساتھ ، بلوٹوتھ آلات کی جوڑی بنانا بہت آسان ہے۔ یہاں ہم نے راسبیری پائی کے ساتھ اپنے اینڈرائڈ سمارٹ فون کی جوڑی بنائی ہے ۔ اس سے قبل ہم نے پی ای میں بلیو زیڈ انسٹال کیا ہے ، جو ہمارے بلوٹوتھ ڈیوائسز کا انتظام کرنے کے لئے " بلوٹوتھکٹیل " کے نام سے ایک کمانڈ لائن افادیت فراہم کرتا ہے۔
اب ذیل میں کمانڈ کے ذریعہ بلوٹوتکیلٹ یوٹیلیٹی کھولیں:
sudo bluetoothctl
آپ 'مدد' ٹائپ کرکے بلوٹوتھکٹیل یوٹیلیٹی کے تمام کمانڈز کو چیک کرسکتے ہیں ۔ ابھی کے لئے ہمیں دیئے گئے ترتیب میں نیچے کمانڈ داخل کرنے کی ضرورت ہے۔
# اسکین آن پر قابل # قابل ایجنٹ پر # ایجنٹ پر # پائی ایبل
آخری کمانڈ "اسکین آن" کے بعد ، آپ کو فہرست میں اپنا بلوٹوتھ ڈیوائس (موبائل فون) نظر آئے گا۔ یہ یقینی بنائیں کہ آپ کے موبائل میں بلوٹوتھ آن ہے اور قریبی آلات کے ذریعہ مرئی ہے۔ پھر اپنے آلے کا میک ایڈریس کاپی کریں اور دیئے ہوئے کمانڈ کا استعمال کرکے جوڑیں:
جوڑا
پھر آپ کو اپنے ٹرمینل کنسول میں پاس کوڈ یا پن کے لئے کہا جائے گا پھر وہاں پاس کوڈ ٹائپ کریں اور انٹر دبائیں۔ پھر جب اشارہ کیا جائے تو اپنے موبائل فون میں وہی پاس کوڈ ٹائپ کریں اور اب آپ کو راسبیری پائی کے ساتھ کامیابی کے ساتھ جوڑا بنایا جائے گا۔ ہم نے اس پورے عمل کی وضاحت سابقہ GPIO کنٹرولنگ ٹیوٹوریل میں دی گئی ویڈیو میں بھی کی ہے۔ براہ راست یوٹیوب لنک یہ ہے۔
جیسا کہ پہلے بتایا گیا ہے ، آپ موبائل فون کو جوڑنے کیلئے ڈیسک ٹاپ انٹرفیس بھی استعمال کرسکتے ہیں ۔ بلیو مین انسٹال کرنے کے بعد ، آپ ذیل میں دکھائے جانے والے اپنے راسبیری پائ ڈیسک ٹاپ کے دائیں جانب بلوٹوتھ کا آئکن دیکھیں گے ، جس کا استعمال آپ آسانی سے جوڑا بناسکتے ہیں۔
کھلونا کار کا انتخاب:
اس راسبیری پائ کنٹرولڈ کار پروجیکٹ میں ہم نے کھلونے والی کار کا استعمال مظاہرے کے لئے کیا ہے۔ یہاں ہم نے آر ایف کھلونا کار منتخب کی ہے جس میں بائیں سے دائیں اسٹیئرنگ کی خاصیت موجود ہے۔ اس کار کو خریدنے کے بعد ہم نے اس کے آر ایف سرکٹ کو اپنے راسبیری سرکٹ سے تبدیل کردیا ہے۔ اس کار میں دو DC موٹریں ہیں ، ایک دو فرنٹ وہیل کو گھمانے کے لئے اور دوسری ایک دو پچھلے پہیے کو گھمانے والی ہے۔ فرنٹ سائیڈ موٹر کار کو سمت دینے کے لئے استعمال ہوتی ہے جس کا مطلب ہے بائیں یا دائیں جانب مڑنا (جیسے اصلی کار اسٹیئرنگ کی خصوصیت)۔ اور پیچھے کی طرف والی موٹر کو کار کو آگے اور پسماندہ سمت میں چلانے کے لئے استعمال کیا جاتا ہے۔ راسبیری کا ایک بلوٹوت کار پر قابو پانے کے لئے اینڈرائیڈ فون سے وائرلیس طور پر کمانڈ حاصل کرنے کے لئے استعمال ہوتا ہے۔
آپ کسی بھی کھلونا کار کا استعمال کرسکتے ہیں جس میں دو DC موٹرز ہوتی ہیں تاکہ سامنے اور رئیر پہیے کو گھماسکیں۔
سرکٹ ڈایاگرام اور وضاحت:
اس ریموٹ کنٹرول شدہ کار میں ، ہمیں صرف راسبیری پائ کو L293D ماڈیول کا استعمال کرتے ہوئے دو موٹرز کے ساتھ مربوط کرنے کی ضرورت ہے ۔ راسبیری پائ اور کار کو طاقت دینے کیلئے ہم نے موبائل پاور بینک استعمال کیا ہے۔ موبائل پاور بینک راسبیری پائی اور کار کی موٹروں کو طاقت دینے کے لئے کافی ہے لیکن جب ہم پاور بینک کو کار پر ڈال دیتے ہیں تب موبائل وزن کے زیادہ وزن کی وجہ سے کار کار مناسب طریقے سے حرکت نہیں کر پائے گی۔ لہذا ہم نظام کو طاقت بخش بنانے کے لئے کم وزن کی بجلی کی فراہمی یا لتیم بیٹریاں استعمال کرنے کی تجویز کرتے ہیں۔ تمام کنکشن سرکٹ ڈایاگرام میں نیچے دکھائے گئے ہیں۔ موٹرس کو مختلف ٹکنالوجیوں سے کنٹرول کرنے کے بارے میں مزید معلومات کے ل our ہمارے روبوٹکس سیکشن کو بھی چیک کریں۔
نوٹ: رسبری پائ پر 5v سے زیادہ نہ لگائیں۔
اس سرکٹ کو اس پراجیکٹ کے لئے پرفل بورڈ پر بنایا گیا ہے ، تاکہ کار کا وزن کم ہو۔
اینڈرائیڈ ایپ بلیوٹرم کے ذریعہ کار کو دور سے کنٹرول کرنا:
اب تمام چیزوں کو مرتب کرنے اور اسمارٹ فون کو بلوٹوتھ پر کامیابی سے ہمکنار کرنے کی کوشش کرنے کے بعد ، ہمیں بلوٹوت سیریل اڈاپٹر کا استعمال کرتے ہوئے راسبیری پائی سے بات چیت کرنے کے لئے ایک اینڈروئیڈ ایپ انسٹال کرنے کی ضرورت ہے ، تاکہ ہم راسبیری پائ کے جی پی آئی او پنوں کو قابو کرسکیں۔ جیسا کہ پہلے بتایا گیا تھا کہ آریفکیم / ایس پی پی پروٹوکول بلوٹوتھ پر سیریل مواصلات کا تقلید کرتا ہے ، لہذا ہم نے یہاں بلیو ٹرم ایپ انسٹال کیا جو اس پروٹوکول کی حمایت کرتا ہے۔
آپ کوئی اور بلوٹوتھ ٹرمینل ایپ بھی استعمال کرسکتے ہیں جو RFCOMM ساکٹ کے ذریعہ مواصلات کی حمایت کرتا ہے۔
ابھی ڈاؤن لوڈ کرنے اور BlueTerm اپلی کیشن کو انسٹال کرنے کے بعد، ذیل میں دیئے گئے ازگر پروگرام چلانے ٹرمینل سے اور جوڑ بنانے کے متصل raspberrypi ہی وقت میں BlueTerm اپلی کیشن سے آلہ.
کامیاب کنکشن کے بعد آپ مربوط دیکھیں گے : ایپ کے اوپری دائیں کونے میں رسبریپی جیسے نیچے دکھایا گیا ہے:
کار کو مطلوبہ سمت میں منتقل کرنے کے لئے اب آپ بلیو ٹرم ایپ سے درج ذیل کمانڈ درج کرسکتے ہیں ۔ پروگرام سے باہر آنے کے لئے 'q' دبائیں۔ آپ اپنی آواز کا استعمال کرتے ہوئے اس کار کو قابو کرنے کیلئے گوگل وائس ٹائپنگ کی بورڈ استعمال کرسکتے ہیں ۔ آخر میں دیئے گئے ویڈیو میں مکمل ڈیمو چیک کریں ۔
احکام:
F - آگے منتقل
بی - پچھلی حرکت
ایس - اسٹاپ
ایل - بائیں بازو منتقل کریں
R - آگے دائیں منتقل
A - پسماندہ بائیں اقدام
P - پیچھے کی سمت حرکت
Q - چھوڑو
ازگر پروگرامنگ:
اینڈروئیڈ ایپ کے ساتھ راسبیری پی جی پی آئی او کو کنٹرول کرنے کے لئے ازگر کا پروگرام بہت آسان اور خود وضاحتی ہے۔ صرف ہمیں بلوٹوتھ آر ایف سی ایم ایم مواصلات سے متعلق کوڈ کے بارے میں تھوڑا سا سیکھنے کی ضرورت ہے۔ ورنہ اس کی طرح موٹر کی پن کو اونچی یا کم کرکے کسی روبوٹ یا کار کو کنٹرول کرنا ہے۔ مکمل پروگرام کوڈ سیکشن میں نیچے دیا گیا ہے۔
پہلے ، ہمیں بلوٹوتھ ساکٹ لائبریری کو درآمد کرنے کی ضرورت ہے جو ہمیں آتھو زبان سے بلوٹوتھ کو کنٹرول کرنے کے قابل بناتا ہے۔ ہم نے پچھلے حصے میں بھی اس کے لئے لائبریری نصب کی ہے۔
بلوٹوت درآمد کریں
پھر ہم نے کچھ اور ہیڈر فائلیں شامل کیں اور موٹروں کے لئے پنوں کی تعیineن کی تاکہ ان کو ڈیفالٹ کم بنایا جا.۔
درآمد بلوٹوتھ درآمد کا وقت درآمد RPI.GPIO بطور GPIO m11 = 18 m12 = 23 m21 = 24 m22 = 25 GPIO.setwarnings (غلط) GPIO.setmode (GPIO.BCM) GPIO.setup (m11، GPIO.OUT) GPIO.setup (m12 ، GPIO.OUT) GPIO.setup (m21، GPIO.OUT) GPIO.setup (m22، GPIO.OUT) GPIO.output (m11، 0) GPIO.output (m12، 0) GPIO.output (m21، 0) جی پی آئی او آؤٹ پٹ (ایم 22 ، 0)
ذیل میں بلوٹوت مواصلات کے لئے ذمہ دار کوڈ ہے:
سرور_ساکٹ = بلوٹوتھ۔ بلوٹوتساکٹ (بلوٹوتھ۔ آر ایف سی ایم ایم) پورٹ = 1 سرور_ساکٹ.بائنڈ (("" ، بندرگاہ)) سرور_ساکٹ.لاسٹین (1) کلائنٹ_سکٹ ، پتہ = سرور_سوکٹ.اسیپٹ () پرنٹ "سے قبول شدہ کنکشن" ، پتہ
یہاں ہم انہیں لائن کے ساتھ لائن سمجھ سکتے ہیں۔
سرور_ساکٹ = بلوٹوتھ۔ بلوٹوتسوکٹ (بلوٹوتھ ۔ آر ایف سی او ایم ایم ): بلوٹوتھ آریفکویم مواصلات کے لئے ساکٹ بنانا۔
سرور_سوکٹ.بائنڈ (("" ، پورٹ): - سرور میزبان '' پر اسکرپٹ کو پورٹ باندھتا ہے۔
سرور_ساکٹ.لاسٹین (1): سرور ایک وقت میں ایک کنکشن قبول کرنے کی بات سنتا ہے۔
کلائنٹ_سکٹ ، پتہ = سرور_سوکٹ.اسیپٹ (): سرور کلائنٹ کی کنکشن کی درخواست کو قبول کرتا ہے اور متغیر پتے پر میک ایڈریس تفویض کرتا ہے ، موکل_سکٹ کلائنٹ کا ساکٹ ہے
اس کے بعد ہم نے کچھ افعال تشکیل دے دیئے ہیں جو مطلوبہ سمت میں کار کو منتقل کرنے کے لئے ذمہ دار ہیں: Def بائیں_ طرف_فورورڈ () ، Def دائیں_حاصل_فورڈ () ، ڈیف فارورڈ () ، Def بائیں_ طرف_ ریورس () ، ڈیف رائٹ_ سائڈ_ ریورس () ، Def ریورس () Def اسٹاپ (). جب ہم موبائل بلیو ٹرم ایپ سے ایل ، آر ، ایف ، اے ، پی ، بی ، ایس دبائیں گے تو یہ افعال بالترتیب طلب کیے جائیں گے اور کار اسی کے مطابق حرکت میں آئے گی۔
ڈیٹا = "" جبکہ 1: ڈیٹا = مؤکل_سوکٹ.ریک (1024) پرنٹ "موصول ہوا:٪ s"٪ ڈیٹا اگر (ڈیٹا == "ایف"): آگے () ایلف (ڈیٹا == "ایل"): بائیں_ سائڈ_فورورڈ () ایلیف (ڈیٹا == "آر"): دائیں_ اطراف_فورڈ () ایلیف (ڈیٹا == "بی"): ریورس () ایلف (ڈیٹا == "اے"): بائیں_ سائڈ_ ریورس () ایلف (ڈیٹا == "پی"): دائیں_وس_س_اس () ایلیف ڈیٹا == "ایس": اسٹاپ () ایلف (ڈیٹا == "ق"): پرنٹ کریں ("چھوڑیں") توڑنے والے کلائنٹ_سکٹ کو بند کریں () سرور_سکٹ کو بند کریں ()
ڈیٹا = کلائنٹ_سکٹ.ریک (1024): کلائنٹ ساکٹ کلائنٹ_سکٹ کے ذریعہ ڈیٹا وصول کریں اور متغیر ڈیٹا کو تفویض کریں۔ ایک وقت میں زیادہ سے زیادہ 1024 حرف موصول ہوسکتے ہیں۔
آخر میں ، تمام پروگرامنگ کے بعد ، نیچے کا کوڈ استعمال کرکے کلائنٹ اور سرور کنکشن بند کردیں:
کلائنٹ_ساکٹ۔کلوز () سرور_سکٹ کوٹ ()