Arduino ۾ ونڊوز لاءِ پروگرام ڪيئن ٺاهجن

Arduino ۾ ونڊوز لاءِ پروگرام ڪيئن ٺاهجن

هڪ ڏينهن مون کي اهو چريو خيال آيو ته کڻي اچان 500 ليزر پوائنٽر ھڪڙي جڳھ ۾. مون گهڻو وقت گذاريو ۽ ڪيو. اهو شاندار ۽ بيڪار نڪتو، پر مون ان کي پسند ڪيو. ڇهه مهينا اڳ مون کي هڪ ٻيو چريو خيال هو. هن وقت، تمام شاندار نه، پر گهڻو وڌيڪ مفيد. مون پڻ ان تي گهڻو وقت گذاريو. ۽ هن آرٽيڪل ۾، مان پيش ڪريان ٿو بيٽا نسخو منهنجي سيڪنڊ چريو خيال جو.

مون پروجيڪٽ جو نالو Nanonyam (Nanonyam) رکيو آهي ۽ ان لاءِ هڪ لوگو به کڻي آيو آهيان (مون 5 منٽن لاءِ ٺهرايو).

Arduino ۾ ونڊوز لاءِ پروگرام ڪيئن ٺاهجن

انهن لاءِ جيڪي Arduino جي لحاظ کان سوچن ٿا، اسان اهو چئي سگهون ٿا ته Nanonyam هڪ مجازي Arduino شيلڊ آهي ونڊوز کي ڪنٽرول ڪرڻ لاءِ.

ٻين لفظن ۾، Nanonyam هڪ مجازي مشين آهي جيڪا AVR مائڪرو ڪنٽرولر (ATMEGA2560 سفارش ڪئي وئي آهي) بائيٽ ڪوڊ جي طور تي فرم ویئر استعمال ڪري ٿي. هن ورچوئل مشين جي اندر هڪ AVR ڪور سمائيٽر آهي، پر پردي جي ڊوائيسز جي بدران، جيڪي SRAM پتي تي 0x0060 کان 0x01FF تائين واقع آهن، اتي هڪ خاص انٽرفيس آهي مجازي افعال (بشمول ونڊوز API افعال). ۽ هتي اهو سمجهڻ تمام ضروري آهي ته فوري طور تي: نانونام جي ڪوڊ کي مخصوص ياداشت جي حد تائين رسائي نه هجڻ گهرجي، جيئن ته حادثي سان ڪال نه ٿئي، مثال طور، فائلن کي حذف ڪرڻ يا ڊسڪ کي فارميٽ ڪرڻ جو ڪم. باقي SRAM ميموري رينج 0x0200 کان 0xFFFF تائين (اهو هڪ حقيقي مائڪرو ڪنٽرولر کان وڌيڪ آهي) ڪنهن به مقصد لاءِ صارف وٽ موجود آهي. مون کي فوري طور تي نوٽ ڪيو وڃي ٿو ته اتي هڪ حقيقي microcontroller جي firmware جي حادثاتي لانچ جي خلاف هڪ خاص تحفظ آهي (يا ڪنهن ٻئي فن تعمير کان firmware): "خطرناڪ" فعل کي چالو ڪرڻ کان اڳ، توهان کي هڪ خاص مشڪل مجازي فنڪشن سڏ ڪرڻ جي ضرورت آهي. ڪجھ ٻيا سيڪيورٽي خاصيتون پڻ آھن.

Nanonyam لاءِ پروگرام ٺاھڻ لاءِ، توھان کي استعمال ڪرڻ جي ضرورت آھي خاص لئبرريون جيڪي ھن وقت موجود سڀني ورچوئل افعال کي لاڳو ڪن ٿيون. ڊائون لوڊ ڪريو Nanonyam ورچوئل مشين ۽ ان لاءِ لائبريريون هتي ئي ٿي سگهي ٿو. ۽ هتي ورچوئل فنڪشن وضاحت صفحو. ۽ ها، منهنجي سائيٽ تمام پراڻي آهي ۽ موبائيل ڊوائيسز لاء ترتيب نه ڏني وئي آهي.

Nanonyam گھر ۽ تجارتي استعمال لاء مفت آهي. Nanonyam پروگرام مهيا ڪيل آهي "جيئن آهي" جي بنياد تي. ماخذ ڪوڊ مهيا نه ڪيو ويو آهي.

پروگرام هن وقت جاچ جي مرحلي ۾ آهي. لڳ ڀڳ 200 ورچوئل فنڪشن لاڳو ڪيا ويا جيڪي توهان کي ونڊوز لاءِ سادي پروگرام ٺاهڻ جي اجازت ڏين ٿا.
ظاهر آهي، اهڙي ورچوئل مشين ۾ ڪا پيچيدگي پيدا ڪرڻ ڪم نه ڪندي، ڇاڪاڻ ته ڪوڊ لاءِ ميموري صرف 256 kB آهي. ڊيٽا الڳ فائلن ۾ ذخيرو ٿي سگهي ٿو، گرافڪ حصو لاء بفر ٻاهران لاڳو ڪيو ويندو آهي. سڀ فنڪشن آسان ڪيا ويا آهن ۽ 8-bit فن تعمير لاءِ ٺاهيل آهن.

توهان نانونام ۾ ڇا ڪري سگهو ٿا؟ مون کي ڪجهه مسئلن سان گڏ آيو.

پروگرام بلاڪ جي ترقي

مون کي هڪ ڀيرو 128x64 ڊٽ گرافڪ ڊسپلي لاءِ هڪ پيچيده مينيو ٺاهڻ جي ضرورت هئي. مان واقعي نه ٿو چاهيان ته مسلسل فرم ویئر کي حقيقي مائڪرو ڪنٽرولر ۾ لوڊ ڪرڻ لاء ڏسو ته ڪيئن پکسلز نظر اچن ٿا. ۽ ائين ئي نانونام جو خيال پيدا ٿيو. هيٺ ڏنل شڪل ڏيکاري ٿو ھڪڙي تصوير ھڪڙي حقيقي OLED ڊسپلي مان ھڪڙي ھڪڙي شين جي ھڪڙي مينيو تي. هاڻي مان ان ذريعي ڪم ڪري سگهان ٿو بغير ڪنهن حقيقي ڊوائيس.

Arduino ۾ ونڊوز لاءِ پروگرام ڪيئن ٺاهجن

Nanonyam (پنهنجي آخري خيال ۾) مائڪرو ڪنٽرولرز لاءِ پروگرام بلاڪ کي ڪم ڪرڻ لاءِ هڪ سٺو اوزار آهي، جيئن ته گرافڪس سان ڪم ڪرڻ جا ڪم آهن (توهان ڊسپلي ۽ اشارن کي ترتيب ڏئي سگهو ٿا)، فائلن سان (توهان لاگ ٺاهي سگهو ٿا، ٽيسٽ ڊيٽا پڙهي سگهو ٿا) سان. هڪ ڪيبورڊ (توهان هڪ ئي وقت 10 بٽڻ تائين پڙهي سگهو ٿا)، COM بندرگاهن سان (هتي هڪ الڳ شيون آهي).

تڪڙا پروگرام ٺاهڻ

مثال طور، توهان کي جلدي پروسيس ڪرڻ جي ضرورت آهي 100500 ٽيڪسٽ فائلون. هر هڪ کي کولڻ جي ضرورت آهي، ڪجهه سادي الگورتھم جي مطابق ٿوري تبديل ٿيل، محفوظ ۽ بند ٿيل. جيڪڏهن توهان پائٿون ماسٽر آهيو، ته مان توهان کي مبارڪباد ڏيان ٿو، توهان وٽ سڀ ڪجهه آهي. پر جيڪڏهن توهان هڪ سخت arduino آهيو (۽ انهن مان ڪيترائي آهن)، ته پوء Nanonyam هن مسئلي کي حل ڪرڻ ۾ توهان جي مدد ڪندو. هي منهنجو ٻيو مقصد آهي نانونيم ۾: ڪيترن ئي ڪارآمد افعال کي شامل ڪرڻ جهڙوڪ ٽيڪسٽ پروسيسنگ، اسڪرين شاٽ وٺڻ يا سسٽم ۾ ڪي اسٽروڪ کي تخليق ڪرڻ (جيڪي سڀ، طريقي سان، اڳ ۾ ئي موجود آهن)، ۽ انهي سان گڏ روزاني ڪمن کي حل ڪرڻ لاء ٻيا ڪيترائي ڪم .

ٽيسٽ هارڊويئر ذريعي COM پورٽ

Nanonyam هڪ ٽرمينل طور ڪم ڪري سگهي ٿو جيڪو توهان جي الگورتھم جي مطابق ڪم ڪري ٿو. توهان ڊوائيس کي ڪنٽرول ڪرڻ ۽ بندرگاهن مان حاصل ڪيل ڊيٽا کي ڊسپلي ڪرڻ لاء هڪ ننڍڙو مينيو ٺاهي سگهو ٿا. توهان تجزيو لاءِ فائلن مان ڊيٽا محفوظ ۽ پڙهي سگهو ٿا. سادي ڊيبگنگ ۽ هارڊويئر جي حساب ڪتاب لاءِ هڪ ڪارائتو اوزار، گڏوگڏ سادو ورچوئل اوزار ڪنٽرول پينل ٺاهڻ لاءِ. شاگردن ۽ نوجوان سائنسدانن لاءِ هي پروجيڪٽ تمام ڪارآمد ثابت ٿي سگهي ٿو.

پروگرامنگ جي تربيت

بهرحال، جيئن پوري Arduino پروجيڪٽ سان، Nanonyam جو بنيادي ڪارائتو ڪم، انٽرفيس ۽ بوٽ لوڊر جي آسانيءَ ۾ آهي. تنهن ڪري، هي منصوبو نوان پروگرامرز ۽ جيڪي arduino جي سطح سان مطمئن آهن انهن لاء دلچسپي هجڻ گهرجي. رستي ۾، مون اڃا تائين تفصيل سان arduino جو اڀياس نه ڪيو آهي، ڇاڪاڻ ته مون هميشه WinAVR يا AVR اسٽوڊيو استعمال ڪيو، پر گڏ ڪرڻ سان شروع ڪيو. تنهن ڪري، هيٺ ڏنل مثال پروگرام ٿورو غلط ٿيندو، پر ڪافي ڪم ڪندڙ.

هيلو حبر!

اهو وقت آهي ڪجهه نانونيم جي خاصيتن سان واقف ٿيڻ ۽ هڪ سادي پروگرام لکڻ جو. اسان Arduino ۾ لکنداسين، پر معمولي طريقي سان نه، پر ان طريقي سان جيڪو مان هاڻي ڪري سگهان ٿو (مون اڳ ۾ ئي چيو آهي ته مون اڃا تائين هن ماحول کي چڱي طرح سمجهي نه سگهيو آهي). پهريون، هڪ نئون خاڪو ٺاهيو ۽ چونڊيو Mega2560 بورڊ.

Arduino ۾ ونڊوز لاءِ پروگرام ڪيئن ٺاهجن

اسڪيچ کي فائل ۾ محفوظ ڪريو ۽ اڳيان نقل ڪريو Nanonyam لائبريري. اهو صحيح ٿيندو ته لائبريرين جا هيڊر شامل ڪيا وڃن، پر مون کي خبر ناهي ته ڪيئن لکجي انفرادي فائلن جي تاليف کي 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".

نانونيم ورچوئل مشين ڏانهن HEX فائل کي بيان ڪرڻ جا ڪيترائي طريقا آهن، انهن سڀني کي بيان ڪيو ويو آهي هن صفحي تي. مان فائل جي اڳيان ٺاهڻ جي صلاح ڏيان ٿو Nanonyam.exe файл رستو، جنهن ۾ رجسٽر ڪرڻ لاءِ مڪمل رستو اسان جي HEX فائل ڏانهن. جنهن کان پوء توهان هلائي سگهو ٿا Nanonyam.exe. اسان کي اسان جي لکت سان هڪ ونڊو ملي.

Arduino ۾ ونڊوز لاءِ پروگرام ڪيئن ٺاهجن

اهڙي طرح، توهان ٻين ماحول ۾ پروگرام ٺاهي سگهو ٿا، جهڙوڪ AVR اسٽوڊيو يا WinAVR.

هي اهو آهي جتي اسان نانونام سان پنهنجي واقفيت ختم ڪريون ٿا. بنيادي خيال واضح هجڻ گهرجي. وڌيڪ مثال ويب سائيٽ تي آهن.. جيڪڏهن ڪافي ماڻهو آهن جيڪي هن پروجيڪٽ کي استعمال ڪرڻ لاءِ تيار آهن، ته پوءِ مان وڌيڪ مثال ڏيندس ۽ ورچوئل فنڪشنل لائبريرين کي ”ڀڻ“ جاري رکندس. منصوبي جي ترقي لاء ڪنڪريٽ خيالات ۽ خرابين جي رپورٽ، ڪيڙا ۽ ڪيڙا قبول ڪيا ويا آهن. اهو مشورو ڏنو ويو آهي ته انهن کي سڌو سنئون رابطن ڏانهن، سائيٽ تي ظاهر ڪيو ويو آهي. ۽ بحث تبصرن ۾ ڀليڪار آهي.

توهان جي توجه ۽ سٺي پروگرامنگ لاءِ توهان سڀني جي مهرباني!

جو ذريعو: www.habr.com

تبصرو شامل ڪريو