هڪ ڏينهن مون کي اهو چريو خيال آيو ته کڻي اچان
مون پروجيڪٽ جو نالو Nanonyam (Nanonyam) رکيو آهي ۽ ان لاءِ هڪ لوگو به کڻي آيو آهيان (مون 5 منٽن لاءِ ٺهرايو).
انهن لاءِ جيڪي 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 ڊسپلي مان ھڪڙي ھڪڙي شين جي ھڪڙي مينيو تي. هاڻي مان ان ذريعي ڪم ڪري سگهان ٿو بغير ڪنهن حقيقي ڊوائيس.
Nanonyam (پنهنجي آخري خيال ۾) مائڪرو ڪنٽرولرز لاءِ پروگرام بلاڪ کي ڪم ڪرڻ لاءِ هڪ سٺو اوزار آهي، جيئن ته گرافڪس سان ڪم ڪرڻ جا ڪم آهن (توهان ڊسپلي ۽ اشارن کي ترتيب ڏئي سگهو ٿا)، فائلن سان (توهان لاگ ٺاهي سگهو ٿا، ٽيسٽ ڊيٽا پڙهي سگهو ٿا) سان. هڪ ڪيبورڊ (توهان هڪ ئي وقت 10 بٽڻ تائين پڙهي سگهو ٿا)، COM بندرگاهن سان (هتي هڪ الڳ شيون آهي).
تڪڙا پروگرام ٺاهڻ
مثال طور، توهان کي جلدي پروسيس ڪرڻ جي ضرورت آهي 100500 ٽيڪسٽ فائلون. هر هڪ کي کولڻ جي ضرورت آهي، ڪجهه سادي الگورتھم جي مطابق ٿوري تبديل ٿيل، محفوظ ۽ بند ٿيل. جيڪڏهن توهان پائٿون ماسٽر آهيو، ته مان توهان کي مبارڪباد ڏيان ٿو، توهان وٽ سڀ ڪجهه آهي. پر جيڪڏهن توهان هڪ سخت arduino آهيو (۽ انهن مان ڪيترائي آهن)، ته پوء Nanonyam هن مسئلي کي حل ڪرڻ ۾ توهان جي مدد ڪندو. هي منهنجو ٻيو مقصد آهي نانونيم ۾: ڪيترن ئي ڪارآمد افعال کي شامل ڪرڻ جهڙوڪ ٽيڪسٽ پروسيسنگ، اسڪرين شاٽ وٺڻ يا سسٽم ۾ ڪي اسٽروڪ کي تخليق ڪرڻ (جيڪي سڀ، طريقي سان، اڳ ۾ ئي موجود آهن)، ۽ انهي سان گڏ روزاني ڪمن کي حل ڪرڻ لاء ٻيا ڪيترائي ڪم .
ٽيسٽ هارڊويئر ذريعي COM پورٽ
Nanonyam هڪ ٽرمينل طور ڪم ڪري سگهي ٿو جيڪو توهان جي الگورتھم جي مطابق ڪم ڪري ٿو. توهان ڊوائيس کي ڪنٽرول ڪرڻ ۽ بندرگاهن مان حاصل ڪيل ڊيٽا کي ڊسپلي ڪرڻ لاء هڪ ننڍڙو مينيو ٺاهي سگهو ٿا. توهان تجزيو لاءِ فائلن مان ڊيٽا محفوظ ۽ پڙهي سگهو ٿا. سادي ڊيبگنگ ۽ هارڊويئر جي حساب ڪتاب لاءِ هڪ ڪارائتو اوزار، گڏوگڏ سادو ورچوئل اوزار ڪنٽرول پينل ٺاهڻ لاءِ. شاگردن ۽ نوجوان سائنسدانن لاءِ هي پروجيڪٽ تمام ڪارآمد ثابت ٿي سگهي ٿو.
پروگرامنگ جي تربيت
بهرحال، جيئن پوري Arduino پروجيڪٽ سان، Nanonyam جو بنيادي ڪارائتو ڪم، انٽرفيس ۽ بوٽ لوڊر جي آسانيءَ ۾ آهي. تنهن ڪري، هي منصوبو نوان پروگرامرز ۽ جيڪي arduino جي سطح سان مطمئن آهن انهن لاء دلچسپي هجڻ گهرجي. رستي ۾، مون اڃا تائين تفصيل سان arduino جو اڀياس نه ڪيو آهي، ڇاڪاڻ ته مون هميشه WinAVR يا AVR اسٽوڊيو استعمال ڪيو، پر گڏ ڪرڻ سان شروع ڪيو. تنهن ڪري، هيٺ ڏنل مثال پروگرام ٿورو غلط ٿيندو، پر ڪافي ڪم ڪندڙ.
هيلو حبر!
اهو وقت آهي ڪجهه نانونيم جي خاصيتن سان واقف ٿيڻ ۽ هڪ سادي پروگرام لکڻ جو. اسان Arduino ۾ لکنداسين، پر معمولي طريقي سان نه، پر ان طريقي سان جيڪو مان هاڻي ڪري سگهان ٿو (مون اڳ ۾ ئي چيو آهي ته مون اڃا تائين هن ماحول کي چڱي طرح سمجهي نه سگهيو آهي). پهريون، هڪ نئون خاڪو ٺاهيو ۽ چونڊيو Mega2560 بورڊ.
اسڪيچ کي فائل ۾ محفوظ ڪريو ۽ اڳيان نقل ڪريو
#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);//Задержка и разгрузка процессора
}
هن پروگرام سان خاڪو
اسان "چيڪ" بٽڻ کي دٻايو ۽ ڪو به غلطي نه هجڻ گهرجي.
ھاڻي توھان کي حاصل ڪرڻ جي ضرورت آھي بائنري فائل (فرم ويئر). مينيو چونڊيو "خاڪو>> بائنري فائل برآمد ڪريو (CTRL+ALT+S)".
هي ٻه HEX فائلن کي اسڪيچ فولڊر ڏانهن نقل ڪندو. اسان اڳي کان سواءِ صرف فائل وٺون ٿا "with_bootloader.mega".
نانونيم ورچوئل مشين ڏانهن HEX فائل کي بيان ڪرڻ جا ڪيترائي طريقا آهن، انهن سڀني کي بيان ڪيو ويو آهي
اهڙي طرح، توهان ٻين ماحول ۾ پروگرام ٺاهي سگهو ٿا، جهڙوڪ AVR اسٽوڊيو يا WinAVR.
هي اهو آهي جتي اسان نانونام سان پنهنجي واقفيت ختم ڪريون ٿا. بنيادي خيال واضح هجڻ گهرجي.
توهان جي توجه ۽ سٺي پروگرامنگ لاءِ توهان سڀني جي مهرباني!
جو ذريعو: www.habr.com