දවසක් මට ගේන්න පිස්සු අදහසක් ආවා
මම ව්යාපෘතිය නැනෝනියම් (නැනෝනියම්) ලෙස හැඳින්වූ අතර ඒ සඳහා ලාංඡනයක් පවා ඉදිරිපත් කළෙමි (මම විනාඩි 5 ක් ඇද ගත්තෙමි).
Arduino ගැන හිතන අයට කියන්න පුළුවන් Nanonyam කියන්නේ Windows Control කරන Virtual Arduino shield එකක් කියලා.
වෙනත් වචන වලින් කිවහොත්, Nanonyam යනු AVR ක්ෂුද්ර පාලකය සඳහා ස්ථිරාංග භාවිතා කරන අතථ්ය යන්ත්රයකි (ATMEGA2560 නිර්දේශ කරනු ලැබේ) බයිට්කේතය ලෙස. මෙම අතථ්ය යන්ත්රය තුළ AVR මූලික සිමියුලේටරයක් ඇත, නමුත් 0x0060 සිට 0x01FF දක්වා SRAM ලිපිනවල ඇති පර්යන්ත වෙනුවට, අතථ්ය ක්රියාකාරකම් සඳහා විශේෂ අතුරු මුහුණතක් ඇත (Windows API ශ්රිත ඇතුළුව). මෙහිදී වහාම තේරුම් ගැනීම ඉතා වැදගත් වේ: අහම්බෙන් ඇමතීමට නොහැකි වන පරිදි, නැනෝනියම් සඳහා වන කේතයට නිශ්චිත මතක පරාසයට ප්රවේශයක් නොතිබිය යුතුය, උදාහරණයක් ලෙස, ගොනු මකා දැමීමේ හෝ තැටියක් හැඩතල ගැන්වීමේ කාර්යය. ඉතිරි SRAM මතක පරාසය 0x0200 සිට 0xFFFF දක්වා (මෙය සැබෑ ක්ෂුද්ර පාලකයකට වඩා වැඩි) ඕනෑම අරමුණක් සඳහා පරිශීලකයාට ලබා ගත හැකිය. සැබෑ ක්ෂුද්ර පාලකයක (හෝ වෙනත් ගෘහ නිර්මාණ ශිල්පයකින් ස්ථිරාංග) අහම්බෙන් දියත් කිරීමට එරෙහිව විශේෂ ආරක්ෂාවක් ඇති බව මම වහාම සටහන් කරමි: "භයානක" කාර්යයන් සක්රිය කිරීමට පෙර, ඔබ විශේෂ උපක්රමශීලී අතථ්ය ශ්රිතයක් ඇමතිය යුතුය. තවත් ආරක්ෂක විශේෂාංග කිහිපයක් ද ඇත.
Nanonyam සඳහා වැඩසටහන් නිර්මාණය කිරීම සඳහා, ඔබ දැනට පවතින සියලුම අතථ්ය කාර්යයන් ක්රියාත්මක කරන විශේෂ පුස්තකාල භාවිතා කළ යුතුය. ඒ සඳහා Nanonyam virtual machine සහ libraries බාගන්න
Nanonyam නිවස සහ වාණිජ භාවිතය සඳහා නොමිලේ. Nanonyam වැඩසටහන සපයනු ලබන්නේ "පවතින පරිදි" පදනම මතය. මූලාශ්ර කේතය සපයා නැත.
වැඩසටහන දැනට පරීක්ෂණ අදියරේ පවතී. වින්ඩෝස් සඳහා සරල වැඩසටහන් නිර්මාණය කිරීමට ඔබට ඉඩ සලසන අථත්ය කාර්යයන් 200 ක් පමණ ක්රියාත්මක කර ඇත.
නිසැකවම, එවැනි අථත්ය යන්ත්රයක් තුළ සංකීර්ණ දෙයක් නිර්මාණය කිරීම ක්රියා නොකරනු ඇත, මන්ද කේතය සඳහා මතකය 256 kB පමණි. දත්ත වෙනම ගොනු වල ගබඩා කළ හැක, ග්රැෆික් කොටස සඳහා බෆරය බාහිරව ක්රියාත්මක වේ. සියලුම කාර්යයන් සරල කර 8-bit ගෘහ නිර්මාණ ශිල්පය සඳහා අනුවර්තනය කර ඇත.
ඔබට නැනෝනියම් හි කුමක් කළ හැකිද? මට ගැටලු කිහිපයක් ආවා.
වැඩසටහන් කුට්ටි සංවර්ධනය
මට වරක් 128x64 තිත් ග්රැෆික් සංදර්ශකයක් සඳහා සංකීර්ණ මෙනුවක් සැලසුම් කිරීමට අවශ්ය විය. පික්සෙල් පෙනෙන්නේ කෙසේදැයි බැලීමට ස්ථිරාංග සැබෑ ක්ෂුද්ර පාලකයකට නිරන්තරයෙන් පැටවීමට මට ඇත්තෙන්ම අවශ්ය නොවීය. එබැවින් නැනෝනියම් පිළිබඳ අදහස උපත ලැබීය. පහත රූපයේ දැක්වෙන්නේ එකම මෙනුවේ ඇති එක් අයිතමයක සැබෑ OLED සංදර්ශකයක රූපයකි. දැන් මට සැබෑ උපාංගයක් නොමැතිව එය හරහා වැඩ කළ හැකිය.
Nanonyam (එහි අවසාන අදහස) යනු ග්රැෆික්ස් (ඔබට සංදර්ශක සහ දර්ශක අනුකරණය කළ හැකිය), ගොනු සමඟ (ඔබට ලඝු-සටහන් සෑදිය හැකිය, පරීක්ෂණ දත්ත කියවිය හැක) සමඟ වැඩ කිරීමේ කාර්යයන් ඇති බැවින්, ක්ෂුද්ර පාලක සඳහා වැඩසටහන් කුට්ටි වැඩ කිරීම සඳහා හොඳ මෙවලමකි. යතුරුපුවරුවක් (ඔබට එකවර බොත්තම් 10 ක් දක්වා කියවිය හැක), COM ports සමඟ (මෙන්න වෙනම අයිතමයක්).
ඉක්මන් වැඩසටහන් නිර්මාණය කිරීම
උදාහරණයක් ලෙස, ඔබට ඉක්මනින් පෙළ ගොනු 100500 ක් සැකසීමට අවශ්ය වේ. සෑම එකක්ම විවෘත කර, යම් සරල ඇල්ගොරිතමයකට අනුව තරමක් වෙනස් කර, සුරැකීම සහ වසා දැමීම අවශ්ය වේ. ඔබ පයිතන් මාස්ටර් නම්, මම ඔබට සුබ පතමි, ඔබට සියල්ල තිබේ. නමුත් ඔබ දැඩි arduino නම් (සහ ඒවායින් බොහොමයක් තිබේ), එවිට මෙම ගැටළුව විසඳීමට Nanonyam ඔබට උපකාර කරනු ඇත. මෙය Nanonyam හි මගේ දෙවන ඉලක්කයයි: පෙළ සැකසීම, තිරපිටපත් ගැනීම හෝ පද්ධතිය තුළ යතුරු එබීම් අනුකරණය කිරීම වැනි බොහෝ ප්රයෝජනවත් කාර්යයන් එකතු කිරීම (ඒ සියල්ල දැනටමත් තිබේ), මෙන්ම සාමාන්ය කාර්යයන් විසඳීම සඳහා තවත් බොහෝ කාර්යයන්. .
COM වරාය හරහා දෘඩාංග පරීක්ෂා කිරීම
Nanonyam හට ඔබගේ ඇල්ගොරිතමයට අනුව ක්රියා කරන පර්යන්තයක් ලෙස ක්රියා කළ හැක. උපාංගය පාලනය කිරීමට සහ වරායෙන් ලැබුණු දත්ත පෙන්වීමට ඔබට කුඩා මෙනුවක් ඇඳිය හැකිය. ඔබට විශ්ලේෂණය සඳහා ගොනු වලින් දත්ත සුරැකීමට සහ කියවීමට හැකිය. සරල දෝශ නිරාකරණය සහ දෘඩාංග ක්රමාංකනය කිරීම සඳහා මෙන්ම සරල අතථ්ය උපකරණ පාලන පැනල නිර්මාණය කිරීම සඳහා පහසු මෙවලමකි. සිසුන්ට සහ තරුණ විද්යාඥයින්ට මෙම ව්යාපෘතිය ඉතා ප්රයෝජනවත් විය හැක.
ක්රමලේඛන පුහුණුව
කෙසේ වෙතත්, සමස්ත Arduino ව්යාපෘතියේ මෙන්ම, Nanonyam හි ප්රධාන ප්රයෝජනය වන්නේ කාර්යයන්, අතුරු මුහුණත සහ ඇරඹුම් කාරකය සරල කිරීමයි. එබැවින්, මෙම ව්යාපෘතිය නවක ක්රමලේඛකයින්ට සහ arduino මට්ටමෙන් සෑහීමකට පත්වන අයට උනන්දුවක් දැක්විය යුතුය. මාර්ගය වන විට, මම තවමත් arduino සවිස්තරාත්මකව අධ්යයනය කර නැත, මන්ද මම සැමවිටම WinAVR හෝ AVR ස්ටුඩියෝ භාවිතා කළ නමුත් ආරම්භ කළේ එකලස් කරන්නා සමඟ ය. එමනිසා, පහත උදාහරණ වැඩසටහන ටිකක් වැරදියි, නමුත් තරමක් වැඩ කරයි.
ආයුබෝවන් Habr!
නැනෝනියම් විශේෂාංග කිහිපයක් ගැන හුරුපුරුදු වීමට සහ සරල වැඩසටහනක් ලිවීමට කාලයයි. අපි 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"
Arduino වෙතින් සෘජුවම ස්ථාපනය කළ හැකි "Arduino සඳහා Nanonyam" විශේෂ මොඩියුලයක් සෑදීම වඩාත් නිවැරදි වනු ඇත. මම එය තේරුම් ගත් වහාම, මම එය කරන්නම්, නමුත් දැනට මම පෙන්වන්නේ අතථ්ය යන්ත්රයක් සමඟ වැඩ කිරීමේ සාරය පමණි. අපි පහත කේතය ලියන්නෙමු:
//Сразу после запуска рисуем текст в окне
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);//Задержка и разгрузка процессора
}
මෙම වැඩසටහන සමඟ ස්කීච් කරන්න
අපි "පරීක්ෂා කරන්න" බොත්තම ඔබන්න, කිසිදු දෝෂයක් නොතිබිය යුතුය.
දැන් ඔබට ද්විමය ගොනුවක් (ස්ථිරාංග) ලබා ගත යුතුය. මෙනුව තෝරන්න "Sketch>> ද්විමය ගොනුව අපනයනය කරන්න (CTRL+ALT+S)«.
මෙය Sketch ෆෝල්ඩරයට HEX ගොනු දෙකක් පිටපත් කරයි. අපි "with_bootloader.mega" උපසර්ගය නොමැතිව ගොනුව පමණක් ගනිමු.
Nanonyam අතථ්ය යන්ත්රයට HEX ගොනුවක් නියම කිරීමට ක්රම කිහිපයක් තිබේ, ඒවා සියල්ලම විස්තර කර ඇත.
ඒ හා සමානව, ඔබට AVR Studio හෝ WinAVR වැනි වෙනත් පරිසරවල වැඩසටහන් නිර්මාණය කළ හැකිය.
අපි නැනෝනියම් සමඟ අපගේ දැන හඳුනා ගැනීම අවසන් කරන්නේ මෙහිදීය. ප්රධාන අදහස පැහැදිලි විය යුතුය.
ඔබගේ අවධානය සහ හොඳ වැඩසටහන්කරණය සඳහා ඔබ සැමට ස්තූතියි!
මූලාශ්රය: www.habr.com