Arduino میں ونڈوز کے لیے پروگرام کیسے بنائیں

Arduino میں ونڈوز کے لیے پروگرام کیسے بنائیں

ایک دن میرے پاس لانے کا پاگل خیال آیا ایک جگہ پر 500 لیزر پوائنٹرز. میں نے بہت وقت گزارا اور یہ کیا۔ یہ شاندار اور بیکار نکلا، لیکن مجھے یہ پسند آیا۔ چھ مہینے پہلے مجھے ایک اور پاگل خیال آیا۔ اس بار، بالکل شاندار نہیں، لیکن بہت زیادہ مفید. میں نے بھی اس پر کافی وقت صرف کیا۔ اور اس مضمون میں، میں اپنے دوسرے پاگل خیال کا بیٹا ورژن پیش کرتا ہوں۔

میں نے پراجیکٹ کو نانونیم (نانونم) کہا اور یہاں تک کہ اس کے لیے لوگو بھی لے کر آیا (میں نے 5 منٹ تک ڈرا کیا)۔

Arduino میں ونڈوز کے لیے پروگرام کیسے بنائیں

ان لوگوں کے لیے جو Arduino کے حوالے سے سوچتے ہیں، ہم کہہ سکتے ہیں کہ Nanonyam ونڈوز کو کنٹرول کرنے کے لیے ایک ورچوئل Arduino شیلڈ ہے۔

دوسرے لفظوں میں، Nanonyam ایک ورچوئل مشین ہے جو AVR مائکرو کنٹرولر (ATMEGA2560 تجویز کی جاتی ہے) کے فرم ویئر کو بائی کوڈ کے طور پر استعمال کرتی ہے۔ اس ورچوئل مشین کے اندر ایک AVR کور سمیلیٹر ہے، لیکن پیریفرل ڈیوائسز کے بجائے، جو SRAM ایڈریس پر 0x0060 سے 0x01FF تک موجود ہیں، ورچوئل فنکشنز (بشمول ونڈوز API فنکشنز) کے لیے ایک خاص انٹرفیس ہے۔ اور یہاں یہ فوراً سمجھنا بہت ضروری ہے: نانونم کے کوڈ کو میموری کی مخصوص حد تک رسائی نہیں ہونی چاہیے، تاکہ غلطی سے کال نہ ہو، مثال کے طور پر، فائلوں کو ڈیلیٹ کرنا یا ڈسک کو فارمیٹ کرنا۔ بقیہ SRAM میموری کی حد 0x0200 سے 0xFFFF تک (یہ ایک حقیقی مائکروکنٹرولر سے زیادہ ہے) کسی بھی مقصد کے لیے صارف کے لیے دستیاب ہے۔ میں فوراً نوٹ کرتا ہوں کہ حقیقی مائیکرو کنٹرولر (یا کسی اور فن تعمیر سے فرم ویئر) کے حادثاتی طور پر لانچ ہونے کے خلاف ایک خاص تحفظ موجود ہے: "خطرناک" فنکشنز کو چالو کرنے سے پہلے، آپ کو ایک خاص مشکل ورچوئل فنکشن کو کال کرنے کی ضرورت ہے۔ کچھ دیگر حفاظتی خصوصیات بھی ہیں۔

Nanonyam کے لیے پروگرام بنانے کے لیے، آپ کو خصوصی لائبریریوں کو استعمال کرنے کی ضرورت ہے جو فی الحال دستیاب تمام ورچوئل فنکشنز کو نافذ کرتی ہیں۔ اس کے لیے Nanonyam ورچوئل مشین اور لائبریریاں ڈاؤن لوڈ کریں۔ یہاں ہو سکتا ہے. اور یہاں۔ ورچوئل فنکشن کی تفصیل کا صفحہ. اور ہاں، میری سائٹ بہت قدیم ہے اور موبائل آلات کے لیے موافق نہیں ہے۔

Nanonyam گھریلو اور تجارتی استعمال کے لیے مفت ہے۔ Nanonyam پروگرام "جیسے ہے" کی بنیاد پر فراہم کیا جاتا ہے۔ سورس کوڈ فراہم نہیں کیا گیا ہے۔

پروگرام فی الحال آزمائشی مرحلے میں ہے۔ تقریباً 200 ورچوئل فنکشنز لاگو کیے گئے جو آپ کو ونڈوز کے لیے آسان پروگرام بنانے کی اجازت دیتے ہیں۔
ظاہر ہے، ایسی ورچوئل مشین میں کچھ پیچیدہ بنانا کام نہیں کرے گا، کیونکہ کوڈ کی میموری صرف 256 kB ہے۔ ڈیٹا کو علیحدہ فائلوں میں محفوظ کیا جا سکتا ہے، گرافک حصے کے لیے بفر بیرونی طور پر لاگو کیا جاتا ہے۔ تمام فنکشنز کو 8 بٹ فن تعمیر کے لیے آسان اور موافق بنایا گیا ہے۔

آپ نانونیم میں کیا کر سکتے ہیں؟ میں کچھ مسائل لے کر آیا ہوں۔

پروگرام بلاکس کی ترقی

مجھے ایک بار 128x64 ڈاٹ گرافک ڈسپلے کے لیے ایک پیچیدہ مینو ڈیزائن کرنے کی ضرورت تھی۔ میں واقعی میں یہ نہیں چاہتا تھا کہ فرم ویئر کو حقیقی مائیکرو کنٹرولر میں لوڈ کرنا یہ دیکھنے کے لیے کہ پکسلز کیسے نظر آتے ہیں۔ اور اسی طرح نانونم کا خیال پیدا ہوا۔ نیچے دی گئی تصویر ایک ہی مینو پر موجود آئٹمز میں سے ایک کے اصلی OLED ڈسپلے سے ایک تصویر دکھاتی ہے۔ اب میں کسی حقیقی ڈیوائس کے بغیر اس کے ذریعے کام کر سکتا ہوں۔

Arduino میں ونڈوز کے لیے پروگرام کیسے بنائیں

نانونیام (اپنے حتمی خیال میں) مائیکرو کنٹرولرز کے لیے پروگرام بلاکس پر کام کرنے کے لیے ایک اچھا ٹول ہے، کیونکہ گرافکس کے ساتھ کام کرنے کے فنکشنز موجود ہیں (آپ ڈسپلے اور انڈیکیٹرز کی تقلید کر سکتے ہیں)، فائلوں کے ساتھ (آپ لاگ بنا سکتے ہیں، ٹیسٹ ڈیٹا پڑھ سکتے ہیں)۔ ایک کی بورڈ (آپ بیک وقت 10 بٹن تک پڑھ سکتے ہیں)، COM پورٹس کے ساتھ (یہاں ایک الگ آئٹم ہے)۔

فوری پروگرام بنانا

مثال کے طور پر، آپ کو 100500 ٹیکسٹ فائلوں پر تیزی سے کارروائی کرنے کی ضرورت ہے۔ ہر ایک کو کھولنے کی ضرورت ہے، کچھ آسان الگورتھم کے مطابق تھوڑا سا تبدیل کیا جائے، محفوظ کیا جائے اور بند کیا جائے۔ اگر آپ ازگر کے ماسٹر ہیں، تو میں آپ کو مبارکباد پیش کرتا ہوں، آپ کے پاس سب کچھ ہے۔ لیکن اگر آپ ایک سخت arduino ہیں (اور ان میں سے بہت سے ہیں)، تو Nanonyam اس مسئلے کو حل کرنے میں آپ کی مدد کرے گا۔ نانونم میں یہ میرا دوسرا مقصد ہے: بہت سے مفید فنکشنز جیسے ٹیکسٹ پروسیسنگ، اسکرین شاٹس لینا یا سسٹم میں کی اسٹروکس کی نقل کرنا (یہ سب، ویسے، پہلے سے موجود ہیں)، نیز معمول کے کاموں کو حل کرنے کے لیے بہت سے دوسرے فنکشنز شامل کرنا۔ .

COM پورٹ کے ذریعے ہارڈ ویئر کی جانچ

Nanonyam ایک ٹرمینل کے طور پر کام کر سکتا ہے جو آپ کے الگورتھم کے مطابق کام کرتا ہے۔ آپ ڈیوائس کو کنٹرول کرنے اور پورٹ سے موصول ہونے والے ڈیٹا کو ڈسپلے کرنے کے لیے ایک چھوٹا مینو بنا سکتے ہیں۔ آپ تجزیہ کے لیے فائلوں سے ڈیٹا محفوظ اور پڑھ سکتے ہیں۔ سادہ ڈیبگنگ اور ہارڈ ویئر کی انشانکن کے ساتھ ساتھ سادہ ورچوئل انسٹرومنٹ کنٹرول پینلز بنانے کے لیے ایک آسان ٹول۔ طلباء اور نوجوان سائنسدانوں کے لیے یہ منصوبہ بہت مفید ثابت ہو سکتا ہے۔

پروگرامنگ کی تربیت

تاہم، پورے Arduino پروجیکٹ کی طرح، Nanonyam کی بنیادی افادیت فنکشنز، انٹرفیس اور بوٹ لوڈر کو آسان بنانے میں مضمر ہے۔ لہذا، یہ منصوبہ نوسکھئیے پروگرامرز اور arduino کی سطح سے مطمئن افراد کے لیے دلچسپی کا حامل ہونا چاہیے۔ ویسے، میں نے خود ابھی تک arduino کا تفصیل سے مطالعہ نہیں کیا ہے، کیونکہ میں نے ہمیشہ WinAVR یا AVR سٹوڈیو کا استعمال کیا، لیکن اسمبلر سے شروعات کی۔ لہذا، ذیل میں مثال کے طور پر پروگرام تھوڑا غلط ہو گا، لیکن کافی کام کر رہا ہے.

ہیلو حبر!

یہ کچھ Nanonyam خصوصیات سے واقف ہونے اور ایک سادہ پروگرام لکھنے کا وقت ہے. ہم Arduino میں لکھیں گے، لیکن عام طریقے سے نہیں، لیکن جس طرح سے میں اب کر سکتا ہوں (میں پہلے ہی کہہ چکا ہوں کہ میں نے ابھی تک اس ماحول کو اچھی طرح سے نہیں سمجھا ہے)۔ سب سے پہلے، ایک نیا خاکہ بنائیں اور Mega2560 بورڈ کو منتخب کریں۔

Arduino میں ونڈوز کے لیے پروگرام کیسے بنائیں

خاکے کو فائل میں محفوظ کریں اور اگلا کاپی کریں۔ نانونم لائبریری. لائبریریوں کے ہیڈرز کو شامل کرنا درست ہوگا، لیکن میں نہیں جانتا کہ Arduino میں انفرادی فائلوں کی تالیف کیسے لکھی جائے، اس لیے ابھی کے لیے ہم صرف لائبریریوں کو براہ راست شامل کریں گے (اور سب ایک ساتھ):

#include <stdio.h>
#include "NanonyamnN_System_lib.c"
#include "NanonyamnN_Keyboard_lib.c"
#include "NanonyamnN_File_lib.c"
#include "NanonyamnN_Math_lib.c"
#include "NanonyamnN_Text_lib.c"
#include "NanonyamnN_Graphics_lib.c"
#include "NanonyamnN_RS232_lib.c"

ایک خصوصی ماڈیول "Nanonyam for Arduino" بنانا اور بھی زیادہ درست ہوگا، جسے Arduino سے براہ راست انسٹال کیا جا سکتا ہے۔ جیسے ہی مجھے پتہ چل جائے گا، میں کر لوں گا، لیکن فی الحال میں صرف ایک ورچوئل مشین کے ساتھ کام کرنے کا جوہر دکھا رہا ہوں۔ ہم درج ذیل کوڈ لکھتے ہیں:

//Сразу после запуска рисуем текст в окне
void setup() {
  sys_Nanonyam();//Подтверждаем код виртуальной машины
  g_SetScreenSize(400,200);//Задаём размер дисплея 400х200 точек
  sys_WindowSetText("Example");//Заголовок окна
  g_ConfigExternalFont(0,60,1,0,0,0,"Arial");//Задаём шрифт Windows в ячейке шрифтов 0
  g_SetExternalFont(0);//Выбираем ячейку шрифтов 0 для рисования текста
  g_SetBackRGB(0,0,255);//Цвет фона синий
  g_SetTextRGB(255,255,0);//Цвет текста жёлтый
  g_ClearAll();//Очищаем экран (заливка цветом фона)
  g_DrawTextCenterX(0,400,70,"Hello, Habr!");//Рисуем надпись
  g_Update();//Выводим графический буфер на экран
}

//Просто ждём закрытия программы
void loop() {
  sys_Delay(100);//Задержка и разгрузка процессора
}

اس پروگرام کے ساتھ خاکہ بنائیں یہاں سے ڈاؤن لوڈ کیا جا سکتا ہے۔. افعال کی تفصیلی وضاحت سائٹ پر تلاش کریں. مجھے امید ہے کہ اس کوڈ میں موجود تبصرے اس کا خلاصہ حاصل کرنے کے لیے کافی ہیں۔ یہاں فنکشن sys_Nanonyam() ورچوئل مشین کے لیے "پاس ورڈ" کا کردار ادا کرتا ہے، جو ورچوئل فنکشنز پر پابندیاں ہٹاتا ہے۔ اس فنکشن کے بغیر، پروگرام 3 سیکنڈ کے آپریشن کے بعد بند ہو جائے گا۔

ہم "چیک" بٹن دبائیں اور کوئی غلطی نہیں ہونی چاہیے۔

Arduino میں ونڈوز کے لیے پروگرام کیسے بنائیں

اب آپ کو بائنری فائل (فرم ویئر) حاصل کرنے کی ضرورت ہے۔ مینو کو منتخب کریں "خاکہ>>بائنری فائل برآمد کریں (CTRL+ALT+S)".

Arduino میں ونڈوز کے لیے پروگرام کیسے بنائیں

یہ خاکہ فولڈر میں دو HEX فائلوں کو کاپی کرے گا۔ ہم "with_bootloader.mega" کے سابقہ ​​کے بغیر صرف فائل لیتے ہیں۔

Nanonyam ورچوئل مشین میں HEX فائل کی وضاحت کرنے کے کئی طریقے ہیں، ان سب کو بیان کیا گیا ہے۔ اس صفحے پر. میں فائل کے آگے بنانے کا مشورہ دیتا ہوں۔ Nanonyam.exe файл راستہ، جس میں ہماری HEX فائل کا مکمل راستہ رجسٹر کرنا ہے۔ جس کے بعد آپ دوڑ سکتے ہیں۔ Nanonyam.exe. ہمیں اپنے نوشتہ کے ساتھ ایک کھڑکی ملتی ہے۔

Arduino میں ونڈوز کے لیے پروگرام کیسے بنائیں

اسی طرح، آپ دوسرے ماحول میں پروگرام بنا سکتے ہیں، جیسے کہ AVR Studio یا WinAVR۔

یہ وہ جگہ ہے جہاں ہم نانوونیم سے اپنی واقفیت ختم کرتے ہیں۔ مرکزی خیال واضح ہونا چاہئے۔ مزید مثالیں ویب سائٹ پر موجود ہیں۔. اگر کافی لوگ اس پروجیکٹ کو استعمال کرنے کے لیے تیار ہیں، تو میں مزید مثالیں بناؤں گا اور ورچوئل فنکشن لائبریریوں کو "پُر" کرنا جاری رکھوں گا۔ منصوبے کی ترقی کے لیے ٹھوس خیالات اور خرابیوں، کیڑے اور کیڑے کی رپورٹس کو قبول کیا جاتا ہے۔ یہ مشورہ دیا جاتا ہے کہ انہیں رابطوں کی طرف لے جائیں، ویب سائٹ پر اشارہ کیا گیا ہے۔. اور تبصرے میں بحث کا خیرمقدم ہے۔

آپ کی توجہ اور اچھی پروگرامنگ کے لیے آپ سب کا شکریہ!

ماخذ: www.habr.com

نیا تبصرہ شامل کریں