Arduino හි Windows සඳහා වැඩසටහන් නිර්මාණය කරන්නේ කෙසේද

Arduino හි Windows සඳහා වැඩසටහන් නිර්මාණය කරන්නේ කෙසේද

දවසක් මට ගේන්න පිස්සු අදහසක් ආවා ලේසර් පොයින්ටර් 500ක් එක තැනක. මම බොහෝ කාලයක් වැය කර එය කළා. එය දර්ශනීය හා නිෂ්ඵල විය, නමුත් මම එයට කැමති විය. මීට මාස හයකට කලින් මට තවත් පිස්සු අදහසක් ආවා. මෙම අවස්ථාවේදී, කිසිසේත්ම දර්ශනීය නොවේ, නමුත් වඩා ප්රයෝජනවත් වේ. මමත් ඒකට ගොඩක් වෙලාවක් ගත කළා. මෙම ලිපියෙන් මම මගේ දෙවන පිස්සු අදහසේ බීටා අනුවාදයක් ඉදිරිපත් කරමි.

මම ව්‍යාපෘතිය නැනෝනියම් (නැනෝනියම්) ලෙස හැඳින්වූ අතර ඒ සඳහා ලාංඡනයක් පවා ඉදිරිපත් කළෙමි (මම විනාඩි 5 ක් ඇද ගත්තෙමි).

Arduino හි Windows සඳහා වැඩසටහන් නිර්මාණය කරන්නේ කෙසේද

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 සංදර්ශකයක රූපයකි. දැන් මට සැබෑ උපාංගයක් නොමැතිව එය හරහා වැඩ කළ හැකිය.

Arduino හි Windows සඳහා වැඩසටහන් නිර්මාණය කරන්නේ කෙසේද

Nanonyam (එහි අවසාන අදහස) යනු ග්‍රැෆික්ස් (ඔබට සංදර්ශක සහ දර්ශක අනුකරණය කළ හැකිය), ගොනු සමඟ (ඔබට ලඝු-සටහන් සෑදිය හැකිය, පරීක්ෂණ දත්ත කියවිය හැක) සමඟ වැඩ කිරීමේ කාර්යයන් ඇති බැවින්, ක්ෂුද්‍ර පාලක සඳහා වැඩසටහන් කුට්ටි වැඩ කිරීම සඳහා හොඳ මෙවලමකි. යතුරුපුවරුවක් (ඔබට එකවර බොත්තම් 10 ක් දක්වා කියවිය හැක), COM ports සමඟ (මෙන්න වෙනම අයිතමයක්).

ඉක්මන් වැඩසටහන් නිර්මාණය කිරීම

උදාහරණයක් ලෙස, ඔබට ඉක්මනින් පෙළ ගොනු 100500 ක් සැකසීමට අවශ්ය වේ. සෑම එකක්ම විවෘත කර, යම් සරල ඇල්ගොරිතමයකට අනුව තරමක් වෙනස් කර, සුරැකීම සහ වසා දැමීම අවශ්ය වේ. ඔබ පයිතන් මාස්ටර් නම්, මම ඔබට සුබ පතමි, ඔබට සියල්ල තිබේ. නමුත් ඔබ දැඩි arduino නම් (සහ ඒවායින් බොහොමයක් තිබේ), එවිට මෙම ගැටළුව විසඳීමට Nanonyam ඔබට උපකාර කරනු ඇත. මෙය Nanonyam හි මගේ දෙවන ඉලක්කයයි: පෙළ සැකසීම, තිරපිටපත් ගැනීම හෝ පද්ධතිය තුළ යතුරු එබීම් අනුකරණය කිරීම වැනි බොහෝ ප්‍රයෝජනවත් කාර්යයන් එකතු කිරීම (ඒ සියල්ල දැනටමත් තිබේ), මෙන්ම සාමාන්‍ය කාර්යයන් විසඳීම සඳහා තවත් බොහෝ කාර්යයන්. .

COM වරාය හරහා දෘඩාංග පරීක්ෂා කිරීම

Nanonyam හට ඔබගේ ඇල්ගොරිතමයට අනුව ක්‍රියා කරන පර්යන්තයක් ලෙස ක්‍රියා කළ හැක. උපාංගය පාලනය කිරීමට සහ වරායෙන් ලැබුණු දත්ත පෙන්වීමට ඔබට කුඩා මෙනුවක් ඇඳිය ​​හැකිය. ඔබට විශ්ලේෂණය සඳහා ගොනු වලින් දත්ත සුරැකීමට සහ කියවීමට හැකිය. සරල දෝශ නිරාකරණය සහ දෘඩාංග ක්‍රමාංකනය කිරීම සඳහා මෙන්ම සරල අතථ්‍ය උපකරණ පාලන පැනල නිර්මාණය කිරීම සඳහා පහසු මෙවලමකි. සිසුන්ට සහ තරුණ විද්‍යාඥයින්ට මෙම ව්‍යාපෘතිය ඉතා ප්‍රයෝජනවත් විය හැක.

ක්‍රමලේඛන පුහුණුව

කෙසේ වෙතත්, සමස්ත Arduino ව්‍යාපෘතියේ මෙන්ම, Nanonyam හි ප්‍රධාන ප්‍රයෝජනය වන්නේ කාර්යයන්, අතුරු මුහුණත සහ ඇරඹුම් කාරකය සරල කිරීමයි. එබැවින්, මෙම ව්‍යාපෘතිය නවක ක්‍රමලේඛකයින්ට සහ arduino මට්ටමෙන් සෑහීමකට පත්වන අයට උනන්දුවක් දැක්විය යුතුය. මාර්ගය වන විට, මම තවමත් arduino සවිස්තරාත්මකව අධ්‍යයනය කර නැත, මන්ද මම සැමවිටම WinAVR හෝ AVR ස්ටුඩියෝ භාවිතා කළ නමුත් ආරම්භ කළේ එකලස් කරන්නා සමඟ ය. එමනිසා, පහත උදාහරණ වැඩසටහන ටිකක් වැරදියි, නමුත් තරමක් වැඩ කරයි.

ආයුබෝවන් Habr!

නැනෝනියම් විශේෂාංග කිහිපයක් ගැන හුරුපුරුදු වීමට සහ සරල වැඩසටහනක් ලිවීමට කාලයයි. අපි Arduino වලින් ලියන්නම්, නමුත් සාමාන්‍ය ආකාරයට නොව, දැන් මට හැකි ආකාරයට (මම මේ පරිසරය තවම හොඳින් හඳුනාගෙන නැති බව මම කලිනුත් කිව්වා). පළමුව, නව ස්කීච් එකක් සාදා Mega2560 පුවරුව තෝරන්න.

Arduino හි Windows සඳහා වැඩසටහන් නිර්මාණය කරන්නේ කෙසේද

ස්කීච් එක ගොනුවකට සුරකින්න සහ ඊළඟට පිටපත් කරන්න නැනෝනියම් පුස්තකාලය. පුස්තකාලවල ශීර්ෂ ඇතුළත් කිරීම නිවැරදි වනු ඇත, නමුත් 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"

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);//Задержка и разгрузка процессора
}

මෙම වැඩසටහන සමඟ ස්කීච් කරන්න මෙතනින් බාගත හැක. කාර්යයන් පිළිබඳ සවිස්තරාත්මක විස්තරයක් අඩවියේ සොයන්න. මෙම කේතයේ ඇති අදහස් එහි සාරය ලබා ගැනීමට ප්‍රමාණවත් යැයි මම බලාපොරොත්තු වෙමි. මෙන්න කාර්යය sys_Nanonyam() අතථ්‍ය යන්ත්‍රය සඳහා "මුරපදය" භූමිකාවක් ඉටු කරයි, එය අතථ්‍ය ශ්‍රිතවල සීමාවන් ඉවත් කරයි. මෙම කාර්යය නොමැතිව, තත්පර 3 ක් මෙහෙයුමෙන් පසු වැඩසටහන වසා දමනු ඇත.

අපි "පරීක්ෂා කරන්න" බොත්තම ඔබන්න, කිසිදු දෝෂයක් නොතිබිය යුතුය.

Arduino හි Windows සඳහා වැඩසටහන් නිර්මාණය කරන්නේ කෙසේද

දැන් ඔබට ද්විමය ගොනුවක් (ස්ථිරාංග) ලබා ගත යුතුය. මෙනුව තෝරන්න "Sketch>> ද්විමය ගොනුව අපනයනය කරන්න (CTRL+ALT+S)«.

Arduino හි Windows සඳහා වැඩසටහන් නිර්මාණය කරන්නේ කෙසේද

මෙය Sketch ෆෝල්ඩරයට HEX ගොනු දෙකක් පිටපත් කරයි. අපි "with_bootloader.mega" උපසර්ගය නොමැතිව ගොනුව පමණක් ගනිමු.

Nanonyam අතථ්‍ය යන්ත්‍රයට HEX ගොනුවක් නියම කිරීමට ක්‍රම කිහිපයක් තිබේ, ඒවා සියල්ලම විස්තර කර ඇත. මෙම පිටුවෙහි ඇත. ගොනුව අසල නිර්මාණය කිරීමට මම යෝජනා කරමි Nanonyam.exe ගොනුව මාර්ගය, අපගේ HEX ගොනුවට සම්පූර්ණ මාර්ගය ලියාපදිංචි කිරීමට. ඉන්පසු ඔබට ධාවනය කළ හැකිය Nanonyam.exe. අපි අපේ ශිලා ලිපිය සමඟ කවුළුවක් ලබා ගනිමු.

Arduino හි Windows සඳහා වැඩසටහන් නිර්මාණය කරන්නේ කෙසේද

ඒ හා සමානව, ඔබට AVR Studio හෝ WinAVR වැනි වෙනත් පරිසරවල වැඩසටහන් නිර්මාණය කළ හැකිය.

අපි නැනෝනියම් සමඟ අපගේ දැන හඳුනා ගැනීම අවසන් කරන්නේ මෙහිදීය. ප්රධාන අදහස පැහැදිලි විය යුතුය. තවත් උදාහරණ වෙබ් අඩවියේ ඇත.. මෙම ව්‍යාපෘතිය භාවිතා කිරීමට අවශ්‍ය තරම් පුද්ගලයින් සිටී නම්, මම තවත් උදාහරණ සාදා අථත්‍ය ශ්‍රිත පුස්තකාල "පිරවීම" දිගටම කරගෙන යන්නෙමි. ව්යාපෘතියේ සංවර්ධනය සඳහා කොන්ක්රීට් අදහස් සහ අක්රමිකතා, දෝෂ සහ දෝෂ පිළිබඳ වාර්තා පිළිගනු ලැබේ. ඔවුන් සම්බන්ධතා වෙත යොමු කිරීම සුදුසුය, අඩවියේ දක්වා ඇත. සහ අදහස් දැක්වීමේදී සාකච්ඡාව සාදරයෙන් පිළිගනිමු.

ඔබගේ අවධානය සහ හොඳ වැඩසටහන්කරණය සඳහා ඔබ සැමට ස්තූතියි!

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න