- یہ کیسے کام کرتا ہے
- مطلوبہ اجزاء
- اسکیمیات
- ارڈینو اوکلوسکوپ کوڈ
- ازگر (پلاٹر) اسکرپٹ
- ارڈینو کوڈ
- ایکشن میں آرڈینو اوسیلوسکوپ
آسکلوسکوپ ایک سب سے اہم ٹول ہے جو آپ کو کسی بھی الیکٹرانکس انجینئر یا میکر کے ورک بینچ پر مل جائے گا۔ یہ بنیادی طور پر موج کو دیکھنے اور وولٹیج کی سطح ، تعدد ، شور اور اس کے ان پٹ پر لگائے جانے والے سگنل کے دوسرے پیرامیٹرز کا تعین کرنے کے لئے استعمال ہوتا ہے جو وقت کے ساتھ تبدیل ہوسکتا ہے۔ کوڈ ڈیبگنگ کے لئے سرایت شدہ سافٹ ویئر ڈویلپرز اور مرمت کے دوران الیکٹرانک آلات کی خرابیوں کا سراغ لگانے کے لئے تکنیکی ماہرین بھی اس کا استعمال کرتے ہیں۔ ان وجوہات سے کسی بھی انجینئر کے ل os آسیلوسکوپ کو ایک ٹول ہونا ضروری ہے۔ واحد مسئلہ یہ ہے کہ وہ بہت مہنگا ہوسکتا ہے ، آسکلوسکوپز جو کم سے کم درستگی کے ساتھ سب سے بنیادی کام انجام دیتے ہیں 45 سے 100. تک مہنگا ہوسکتا ہے جبکہ زیادہ جدید اور موثر قیمت ایک cost 150 سے زیادہ ہوسکتی ہے۔ آج میں مظاہرہ کروں گا کہ ارڈینو کو کیسے استعمال کیا جائےاور ایک ایسا سافٹ ویئر ، جس کو میری پسندیدہ پروگرامنگ زبان ازگر کے ساتھ تیار کیا جائے گا ، کم لاگت کی تعمیر کے ل 4 ، 4 چینل آرڈینوو آسیلوسکوپ جس کے لئے کچھ سستے آسکلوسکوپ تعینات کیا جاتا ہے جیسے لہروں کی نمائش اور وولٹیج کی سطح کے عزم کی طرح کام انجام دیتا ہے۔ اشاروں کے ل.۔
یہ کیسے کام کرتا ہے
اس منصوبے کے دو حصے ہیں۔
- ڈیٹا کنورٹر
- پلاٹر
آسکولوسکوپس میں عام طور پر اس کے ان پٹ چینل پر لگائے گئے ینالاگ سگنل کی بصری نمائندگی شامل ہوتی ہے۔ اس کو حاصل کرنے کے ل we ، ہمیں پہلے سگنل کو ینالاگ سے ڈیجیٹل میں تبدیل کرنے اور پھر ڈیٹا کو پلاٹ کرنے کی ضرورت ہے۔ تبادلوں کے ل we ، ہم اے ڈی سی (ینالاگ سے ڈیجیٹل کنورٹر) atmega328p مائکروقابو کنٹرولر پر فائدہ اٹھائیں گے جو اردوینو کے ذریعہ سگنل ان پٹ پر ینالاگ ڈیٹا کو ڈیجیٹل سگنل میں تبدیل کرنے کے لئے استعمال کیا جاتا ہے۔ تبادلوں کے بعد ، ہر وقت کی قیمت کو UART کے ذریعہ ارڈینو سے پی سی پر بھیجا جاتا ہے جہاں پلاٹر سافٹ ویئر جو ازگر کا استعمال کرتے ہوئے تیار کیا جائے گا ، ہر ڈیٹا کو وقت کے ساتھ پلاٹ بنا کر ڈیٹا کے آنے والے دھارے کو ایک موج میں تبدیل کردے گا۔
مطلوبہ اجزاء
اس منصوبے کی تعمیر کے لئے درج ذیل اجزاء ضروری ہیں۔
- ارڈینو اونو (دوسرے بورڈ میں سے کوئی بھی استعمال کیا جاسکتا ہے)
- بریڈ بورڈ
- 10 ک مزاحم (1)
- ایل ڈی آر (1)
- جمپر تاروں
مطلوبہ سافٹ وئیرز
- اردوینو IDE
- ازگر
- ازگر لائبریریاں: پائسیریل ، میٹپلوٹلیب ، ڈراؤناؤ
اسکیمیات
کے یوجنابدق Arduino کے Oscilloscope کی آسان ہے. ہمیں بس اتنا کرنے کی ضرورت ہے کہ سگنل کو اروڈینو کے مخصوص ینالاگ پن سے جانچنا ہو۔ تاہم ، ہم جانچ پڑتال کے ل the سگنل پیدا کرنے کے ل the LDR کو ایک سادہ وولٹیج ڈیوائڈر سیٹ اپ میں استعمال کریں گے ، تاکہ تیار کردہ ویوفارم LDR کے گرد روشنی کی شدت کی بنیاد پر ، وولٹیج کی سطح کی وضاحت کرے۔
جیسا کہ ذیل میں اسکیمات میں دکھایا گیا ہے اجزاء کو جوڑیں۔
کنکشن کے بعد ، سیٹ اپ کو نیچے کی تصویر پسند آنی چاہئے۔
سبھی رابطوں کے ساتھ ، ہم کوڈ لکھنے میں آگے بڑھ سکتے ہیں۔
ارڈینو اوکلوسکوپ کوڈ
ہم دونوں حصوں میں سے ہر ایک کے لئے کوڈ لکھ رہے ہوں گے۔ جیسا کہ پہلے بتایا گیا ہے ، پلاٹر کے لئے ، ہم ایک ازگر کا اسکرپٹ لکھ رہے ہوں گے جو اروڈینو سے ڈیٹا کو UART اور پلاٹوں کے ذریعہ قبول کرتا ہے ، جبکہ کنورٹر کے ل we ، ہم ایک اردوینو خاکہ لکھ رہے ہوں گے جو ADC کے ڈیٹا کو لے کر اسے تبدیل کرتا ہے۔ وولٹیج کی سطح جو پلاٹر کو بھیجی جاتی ہے۔
ازگر (پلاٹر) اسکرپٹ
چونکہ ازگر کا کوڈ زیادہ پیچیدہ ہے ، لہذا ہم اس سے آغاز کریں گے۔
ہم جن میں کئی لائبریریوں کا استعمال کریں گے۔ جیسا کہ پہلے ذکر کیا گیا ہے ، ازگر اسکرپٹ کے ساتھ ڈانو ، میٹپلوٹلیب اور پیسیریل ۔ پیسیریل ہمیں ایک ازگر کی اسکرپٹ بنانے کی اجازت دیتا ہے جو سیریل پورٹ پر بات چیت کرسکتی ہے ، میٹپلوٹلیب ہمیں سیریل پورٹ پر موصول ہونے والے ڈیٹا سے پلاٹ تیار کرنے کی صلاحیت فراہم کرتا ہے اور ڈراو ہمیں حقیقی وقت میں پلاٹ کو اپ ڈیٹ کرنے کا ذریعہ فراہم کرتا ہے۔
آپ کے کمپیوٹر پر ان پیکیجز کو انسٹال کرنے کے بہت سارے طریقے ہیں ، جو پائپ کے ذریعے سب سے آسان ہے ۔ پِپ کو ونڈوز یا لینکس مشین پر کمانڈ لائن کے ذریعے انسٹال کیا جاسکتا ہے۔ پی آئی پی کو پائی تھون 3 کے ساتھ پیک کیا گیا ہے لہذا میں آپ کو مشورہ دوں گا کہ آپ پائی تھون 3 کو انسٹال کریں اور باکس میں چیک کریں کہ ازگر کو راستے میں شامل کریں۔ اگر آپ کو پائپ انسٹال کرنے میں پریشانی کا سامنا کرنا پڑتا ہے تو ، اس نکات کے ل this یہ سرکاری ازگر کی سرکاری ویب سائٹ دیکھیں۔
پائپ انسٹال ہونے کے ساتھ ، اب ہم دوسری لائبریریوں کو انسٹال کرسکتے ہیں جن کی ہمیں ضرورت ہے۔
ونڈوز صارفین کے لئے کمانڈ پرامپٹ ، لینکس صارفین کے لئے ٹرمینل کھولیں اور درج ذیل درج کریں۔
پائپ انسٹال pyserial
اس کے ساتھ ، matplotlib کا استعمال کرتے ہوئے انسٹال کریں ؛
پائپ انسٹال کریں matplotlib
ڈراو بعض اوقات میٹپلوٹلیب کے ساتھ انسٹال ہوتا ہے لیکن صرف اس بات کا یقین کرنے کے لئے ، چلائیں؛
پائپ انسٹال کریں
تنصیب مکمل ہونے کے بعد ، اب ہم ازگر اسکرپٹ لکھنے کے لئے تیار ہیں۔
اس پروجیکٹ کے لئے ازگر کا اسکرپٹ اسی طرح کا ہے جو میں نے راسبیری پیس پر مبنی آسکلوسکوپ کے لئے لکھا تھا۔
ہم کوڈ کے لئے درکار تمام لائبریریوں کو درآمد کرکے شروع کرتے ہیں۔
درآمد کا وقت درآمد matplotlib.pyplot بطور plt ڈراونا امپورٹ * درآمد pyserial
اگلا ، ہم متغیرات تخلیق اور شروع کرتے ہیں جو کوڈ کے دوران استعمال ہوں گے۔ صف ویل سیریل پورٹ سے موصول ڈیٹا سٹور کرنے کے لئے استعمال کیا جائے گا اور CNT شمار کرنے کے لیے استعمال کیا جائے گا. ہر 50 ڈیٹا شمار کے بعد 0 مقام پر موجود ڈیٹا کو حذف کردیا جائے گا۔ اس کو اعداد و شمار کو اوسلوکوپپ پر ظاہر کرنے کے ل keep کیا جاتا ہے۔
ویل = سی این ٹی = 0
اگلا ، ہم سیریل پورٹ آبجیکٹ تیار کرتے ہیں جس کے ذریعہ آرڈینو ہمارے ازگر اسکرپٹ کے ساتھ بات چیت کریں گے۔ یقینی بنائیں کہ نیچے بیان کردہ کام پورٹ وہی کام پورٹ ہے جس کے ذریعے آپ کا آرڈینو بورڈ آئی ڈی ای کے ساتھ بات چیت کرتا ہے۔ مذکورہ بالا 115200 باب کی شرح کو اردوینو کے ساتھ تیز رفتار مواصلات کو یقینی بنانے کے لئے استعمال کیا گیا تھا۔ غلطیوں کو روکنے کے لئے ، اس بوڈ ریٹ کے ساتھ بات چیت کے ل A ، اردوینو سیریل پورٹ کو بھی اہل بنانا چاہئے۔
پورٹ = سیریل ۔شاہی ('COM4' ، 115200 ، ٹائم آؤٹ = 0.5)
اگلا ، ہم پلاٹ کا استعمال کرتے ہوئے انٹرایکٹو بناتے ہیں ۔
plt.ion ()
ہمیں موصولہ اعداد و شمار سے پلاٹ پیدا کرنے کے ل a ایک فنکشن بنانے کی ضرورت ہے ، جس کی ہم توقع کر رہے ہیں اعلی اور کم سے کم حد پیدا کریں ، جو اس معاملے میں اردوینو کے اے ڈی سی کی قرارداد کی بنیاد پر 1023 ہے۔ ہم عنوان بھی مرتب کرتے ہیں ، ہر محور پر لیبل لگاتے ہیں اور اس طرح کی علامت شامل کرتے ہیں تاکہ پلاٹ کی شناخت آسان ہوجائے۔
# فگر فنکشن ڈیف میک فگ () بنائیں: plt.ylim (-1023،1023) plt.title ('Oscigscope') plt.grid (سچ) plt.ylabel ('ADC نتائج') plt.plot (ویل ، 'ro - '، لیبل =' چینل 0 ') plt.legnd (لوک =' نچلے دائیں ')
اس کام کے ساتھ ، اب ہم مرکزی لوپ لکھنے کے لئے تیار ہیں جو دستیاب ہونے پر سیریل پورٹ سے ڈیٹا لیتا ہے اور اسے پلاٹ کرتا ہے۔ ارڈوینو کے ساتھ ہم آہنگی کرنے کے لئے ، اعداد و شمار کو پڑھنے کی تیاری کو ظاہر کرنے کے لئے اینڈوڈو اسکرپٹ کے ذریعہ ایک ہینڈ شیک ڈیٹا ارڈینو کو بھیجا جاتا ہے ۔ جب اردوینو ہینڈ شیک ڈیٹا حاصل کرتا ہے تو ، یہ ADC کے اعداد و شمار کے ساتھ جواب دیتا ہے۔ اس مصافحہ کے بغیر ، ہم حقیقی وقت میں ڈیٹا کو پلاٹ نہیں کرسکیں گے۔
جبکہ (سچ ہے): port.write (b's ') # ارڈینو کے ساتھ # شینڈ شیک اگر (port.inWaiting ()): # اگر ارڈینو جواب دیں تو قدر = port.readline () # جوابی پرنٹ پڑھیں (قدر) # پرنٹ تاکہ ہم کر سکیں اس کی نگرانی کریں نمبر = انٹ (قیمت) # وصول شدہ ڈیٹا کو انٹیجر پرنٹ میں تبدیل کریں ('چینل 0: {0}'. فارمیٹ (نمبر)) # آدھے سیکنڈ کے لئے سویں ۔ ٹائم.نسل (0.01) والی۔ ایپینڈ (انٹ (نمبر)) ڈراؤ (میک فگ) # اپ ڈیٹ پلاٹ نئے ڈیٹا ان پٹ کی عکاسی کریں plt.pause (.000001) cnt = cnt + 1 if ( cnt > 50): val.pop (0) # پوزیشن 0 پر موجود ڈیٹا کو حذف کرکے پلاٹ کو تازہ رکھیں
Arduino کے oscilloscope کے لئے مکمل ازگر کوڈ ذیل میں دکھایا گیا اس مضمون کے آخر میں دیا جاتا ہے.
ارڈینو کوڈ
دوسرا کوڈ اے آر سی سے سگنل کی نمائندگی کرنے والے اعداد و شمار کو حاصل کرنے کے لئے اردوینو خاکہ ہے ، پھر پلاٹر سافٹ ویئر سے ہینڈ شیک سگنل وصول کرنے کا انتظار کریں۔ جیسے ہی یہ ہینڈ شیک سگنل ملتا ہے ، یہ حاصل شدہ ڈیٹا کو UART کے توسط سے پلاٹر سافٹ ویئر کو بھیجتا ہے۔
ہم اردوینو کے ینالاگ پن کا پن اعلان کرکے شروع کرتے ہیں جس پر سگنل لاگو ہوگا۔
int سینسرپین = A0؛
اگلا ، ہم 115200 کی باڈ ریٹ کے ساتھ سیریل مواصلات کا آغاز اور آغاز کرتے ہیں
باطل سیٹ اپ () { // ازگر اسکرپٹ سے ملنے کے لئے سیریل مواصلات کو 115200 بٹس فی سیکنڈ میں شروع کریں: سیریل.بجن (115200)؛ }
آخر میں ، ووڈلوپ () فنکشن جو ڈیٹا کو پڑھنے میں سنبھلتا ہے ، اور ڈیریل کو سیریل کے اوپر پلاٹر کو بھیجتا ہے۔
باطل لوپ () { // ینالاگ پن پر ان پٹ کو پڑھیں 0: فلوٹ سینسر ویلیو = ینالاگ ریڈ (سینسرپین)؛ بائٹ ڈیٹا = سیریل.ریڈ ()؛ اگر (ڈیٹا == کی ') { Serial.println (sensorValue)؛ تاخیر (10)؛ // استحکام کے لئے پڑھنے کے درمیان میں تاخیر } }
مکمل Arduino کے Oscilloscope کی کوڈ ذیل میں دکھایا گیا اس مضمون کے آخر میں کے طور پر اچھی طرح سے کے طور پر مندرجہ ذیل ہے.
int سینسرپین = A0؛ باطل سیٹ اپ () { // ازگر اسکرپٹ سے ملنے کے لئے سیریل مواصلات کو 115200 بٹس فی سیکنڈ میں شروع کریں: سیریل.بجن (115200)؛ } باطل لوپ () { // ینالاگ پن پر ان پٹ پڑھیں 0: ################################### ###################### فلوٹ سینسر ویلیو = اینالاگ ریڈ (سینسرپین)؛ بائٹ ڈیٹا = سیریل.ریڈ ()؛ اگر (ڈیٹا == کی ') { Serial.println (sensorValue)؛ تاخیر (10)؛ // استحکام کے لئے پڑھنے کے درمیان میں تاخیر } }
ایکشن میں آرڈینو اوسیلوسکوپ
کوڈ کو ارڈینوو سیٹ اپ میں اپ لوڈ کریں اور ازگر اسکرپٹ چلائیں۔ آپ کو نیچے دیئے گئے شبیہہ میں دکھائے جانے والے عجیب کمانڈ لائن اور روشنی کی شدت کے ساتھ پلاٹ میں مختلف ہوتی پلاٹ کو دیکھنا چاہئے۔
لہذا اس طرح آریڈوینو کو آسیلوسکوپ کے بطور استعمال کیا جاسکتا ہے ، یہ راسبیری پائی کا استعمال کرتے ہوئے بھی بنایا جاسکتا ہے ، یہاں راسبیری پائی پر مبنی آسکلوسکوپ پر مکمل ٹیوٹوریل چیک کریں۔