በ Arduino ውስጥ ለዊንዶውስ ፕሮግራሞችን እንዴት መፍጠር እንደሚቻል

በ Arduino ውስጥ ለዊንዶውስ ፕሮግራሞችን እንዴት መፍጠር እንደሚቻል

አንድ ቀን የማመጣው እብድ ሀሳብ ነበረኝ። 500 ሌዘር ጠቋሚዎች በአንድ ቦታ. ብዙ ጊዜ አሳለፍኩ እና አደረግኩት። አስደናቂ እና የማይጠቅም ሆነ፣ ግን ወደድኩት። ከስድስት ወር በፊት ሌላ እብድ ሀሳብ ነበረኝ። በዚህ ጊዜ ፣ ​​​​በፍፁም አስደናቂ አይደለም ፣ ግን የበለጠ ጠቃሚ። እኔም በእሱ ላይ ብዙ ጊዜ አሳለፍኩ. እና በዚህ ጽሑፍ ውስጥ፣ የሁለተኛው እብድ ሀሳቤን የቅድመ-ይሁንታ ስሪት አቀርባለሁ።

ፕሮጀክቱን ናኖኒያም (ናኖኒያም) ብዬ ጠራሁት እና ለእሱ አርማ እንኳ አወጣሁ (ለ 5 ደቂቃዎች ስልሁ)።

በ Arduino ውስጥ ለዊንዶውስ ፕሮግራሞችን እንዴት መፍጠር እንደሚቻል

ስለ አርዱዪኖ ለሚያስቡ ሰዎች ናኖኒያም ዊንዶውስን ለመቆጣጠር ምናባዊ አርዱዪኖ ጋሻ ነው ማለት እንችላለን።

በሌላ አነጋገር ናኖኒያም ለ AVR ማይክሮ መቆጣጠሪያ (ATMEGA2560 ይመከራል) እንደ ባይትኮድ የሚጠቀም ምናባዊ ማሽን ነው። በዚህ ቨርቹዋል ማሽን ውስጥ የኤቪአር ኮር ሲሙሌተር አለ፣ ነገር ግን ከ0x0060 እስከ 0x01FF ባለው የSRAM አድራሻዎች ከሚገኙት ተጓዳኝ አካላት ይልቅ፣ ለምናባዊ ተግባራት (የዊንዶውስ ኤፒአይ ተግባራትን ጨምሮ) ልዩ በይነገጽ አለ። እና እዚህ ወዲያውኑ መረዳት በጣም አስፈላጊ ነው የናኖኒያም ኮድ ወደተገለጸው የማህደረ ትውስታ ክልል ምንም አይነት መዳረሻ ሊኖረው አይገባም, በድንገት ላለመደወል, ለምሳሌ ፋይሎችን የመሰረዝ ወይም ዲስክን የመቅረጽ ተግባር. የተቀረው የ SRAM ማህደረ ትውስታ ከ 0x0200 እስከ 0xFFFF (ይህ ከእውነተኛ ማይክሮ መቆጣጠሪያ ውስጥ የበለጠ ነው) ለማንኛውም ዓላማ ለተጠቃሚው ይገኛል. የእውነተኛ ማይክሮ መቆጣጠሪያ (ወይም firmware ከሌላ አርክቴክቸር) በአጋጣሚ እንዳይጀመር ልዩ ጥበቃ እንዳለ ወዲያውኑ አስተውያለሁ፡ “አደገኛ” ተግባራትን ከማግበርዎ በፊት ልዩ ተንኮለኛ ምናባዊ ተግባር መደወል ያስፈልግዎታል። አንዳንድ ሌሎች የደህንነት ባህሪያትም አሉ.

ለናኖኒያም ፕሮግራሞችን ለመፍጠር አሁን ያሉትን ሁሉንም ምናባዊ ተግባራት የሚተገብሩ ልዩ ቤተ-መጽሐፍቶችን መጠቀም ያስፈልግዎታል። ለእሱ የናኖኒያም ቨርቹዋል ማሽን እና ቤተመጻሕፍት ያውርዱ እዚህ ሊሆን ይችላል።. ግን ምናባዊ ተግባር መግለጫ ገጽ. እና አዎ፣ የእኔ ጣቢያ በጣም ጥንታዊ እና ለሞባይል መሳሪያዎች የማይስማማ ነው።

ናኖኒያም ለቤት እና ለንግድ አገልግሎት ነፃ ነው። የናኖኒያም ፕሮግራም የቀረበው "እንደሆነ" መሠረት ነው። የምንጭ ኮድ አልቀረበም።

ፕሮግራሙ በአሁኑ ጊዜ በሙከራ ደረጃ ላይ ነው። ለዊንዶውስ ቀላል ፕሮግራሞችን እንዲፈጥሩ የሚያስችልዎ ወደ 200 የሚጠጉ ምናባዊ ተግባራት ተተግብሯል.
የኮዱ ማህደረ ትውስታ 256 ኪ.ባ ብቻ ስለሆነ በእንደዚህ ዓይነት ምናባዊ ማሽን ውስጥ የተወሳሰበ ነገር መፍጠር እንደማይቻል ግልጽ ነው. ውሂብ በተለየ ፋይሎች ውስጥ ሊከማች ይችላል, ለግራፊክ ክፍሉ ቋት በውጭ ይተገበራል. ሁሉም ተግባራት ቀለል ያሉ እና ለ 8-ቢት አርክቴክቸር የተስተካከሉ ናቸው።

በናኖኒያም ውስጥ ምን ማድረግ ይችላሉ? እኔ ጥቂት ችግሮች ጋር መጣሁ.

የፕሮግራም ብሎኮች ልማት

አንድ ጊዜ ለ 128x64 ነጥብ ግራፊክ ማሳያ ውስብስብ ሜኑ መንደፍ አስፈለገኝ። ፒክስሎቹ እንዴት እንደሚመስሉ ለማየት firmwareን በተከታታይ ወደ እውነተኛ ማይክሮ መቆጣጠሪያ መጫን አልፈልግም። እናም የናኖኒያም ሀሳብ ተወለደ። ከታች ያለው ምስል በተመሳሳይ ምናሌ ውስጥ ካሉት ዕቃዎች ውስጥ ከእውነተኛው የኦኤልዲ ማሳያ ምስል ያሳያል። አሁን ያለ እውነተኛ መሣሪያ ልሰራው እችላለሁ።

በ Arduino ውስጥ ለዊንዶውስ ፕሮግራሞችን እንዴት መፍጠር እንደሚቻል

ናኖኒያም (በመጨረሻው ሀሳቡ) ከግራፊክስ ጋር ለመስራት ተግባራት ስላሉት (ማሳያዎችን እና አመላካቾችን ማስመሰል ይችላሉ) ፣ በፋይሎች (ምዝግብ ማስታወሻዎችን መሥራት ፣ የሙከራ ውሂብን ማንበብ ይችላሉ) ፣ ለማይክሮ ተቆጣጣሪዎች የፕሮግራም ብሎኮችን ለመስራት ጥሩ መሣሪያ ነው። የቁልፍ ሰሌዳ (በተመሳሳይ ጊዜ እስከ 10 አዝራሮች ማንበብ ይችላሉ), ከ COM ወደቦች ጋር (እዚህ የተለየ ንጥል አለ).

ፈጣን ፕሮግራሞችን መፍጠር

ለምሳሌ 100500 የጽሑፍ ፋይሎችን በፍጥነት ማካሄድ ያስፈልግዎታል። እያንዳንዳቸው መከፈት አለባቸው, በአንዳንድ ቀላል ስልተ-ቀመር መሰረት በትንሹ ተስተካክለው, መቀመጥ እና መዘጋት አለባቸው. የፓይዘን ማስተር ከሆንክ እንኳን ደስ አለህ፣ ሁሉም ነገር አለህ። ግን ጠንካራ አርዱዪኖ ከሆንክ (እና ብዙዎቹም አሉ) ናኖኒያም ይህንን ችግር ለመፍታት ይረዳሃል። በናኖኒያም ውስጥ ይህ ሁለተኛው ግቤ ነው፡- እንደ የጽሑፍ ሂደት፣ ቅጽበታዊ ገጽ እይታዎችን ማንሳት ወይም በስርዓቱ ውስጥ የቁልፍ ጭነቶችን ማስመሰል (በነገራችን ላይ ሁሉም ነገር ቀደም ብሎ) እና እንዲሁም መደበኛ ስራዎችን ለመፍታት ብዙ ጠቃሚ ተግባራትን ለመጨመር ነው። .

ሃርድዌርን በCOM ወደብ በመሞከር ላይ

ናኖኒያም በእርስዎ ስልተ ቀመር መሰረት የሚሰራ ተርሚናል ሆኖ መስራት ይችላል። መሳሪያውን ለመቆጣጠር እና ከወደቡ የተቀበለውን መረጃ ለማሳየት ትንሽ ምናሌን መሳል ይችላሉ. ለመተንተን ውሂብን ከፋይሎች ማስቀመጥ እና ማንበብ ይችላሉ. ለቀላል ማረም እና የሃርድዌር ማስተካከያ እንዲሁም ቀላል የቨርቹዋል መሳሪያ መቆጣጠሪያ ፓነሎችን ለመፍጠር የሚያስችል ምቹ መሳሪያ። ለተማሪዎች እና ለወጣት ሳይንቲስቶች ይህ ፕሮጀክት በጣም ጠቃሚ ሊሆን ይችላል.

የፕሮግራም ስልጠና

ሆኖም እንደ መላው የአርዱዪኖ ፕሮጀክት የናኖኒያም ዋና ጠቀሜታ ተግባራትን ፣ በይነገጽን እና ቡት ጫኝን በማቃለል ላይ ነው። ስለዚህ ይህ ፕሮጀክት ለጀማሪ ፕሮግራመሮች እና በ arduino ደረጃ እርካታ ላላቸው ሰዎች ትኩረት ሊሰጠው ይገባል. በነገራችን ላይ እኔ ራሴ አሁንም አርዱዪኖን በዝርዝር አላጠናሁም ምክንያቱም ሁልጊዜ WinAVR ወይም AVR ስቱዲዮን እጠቀማለሁ ነገር ግን በመሰብሰብ ጀምሯል ። ስለዚህ, ከዚህ በታች ያለው ምሳሌ ፕሮግራም ትንሽ ስህተት ይሆናል, ነገር ግን በጣም ይሰራል.

ሰላም ሀብር!

ከአንዳንድ የናኖኒያም ባህሪያት ጋር ለመተዋወቅ እና ቀላል ፕሮግራም ለመጻፍ ጊዜው አሁን ነው። በአርዱዪኖ እንጽፋለን, ነገር ግን በተለመደው መንገድ አይደለም, ነገር ግን አሁን በምችለው መንገድ (ይህን አካባቢ እስካሁን በደንብ እንዳላወቅኩት አስቀድሜ ተናግሬ ነበር). መጀመሪያ አዲስ ንድፍ ይፍጠሩ እና የ Mega2560 ሰሌዳን ይምረጡ።

በ Arduino ውስጥ ለዊንዶውስ ፕሮግራሞችን እንዴት መፍጠር እንደሚቻል

ስዕሉን ወደ ፋይል ያስቀምጡ እና ቀጣዩን ይቅዱ Nanonyam ቤተ መጻሕፍት. የቤተ-መጻህፍት ራስጌዎችን ማካተት ትክክል ነው፣ ነገር ግን በአርዱዪኖ ውስጥ የግለሰብ ፋይሎችን እንዴት እንደፃፍ አላውቅም፣ ስለዚህ አሁን ቤተ-መጻሕፍትን በቀጥታ (እና ሁሉንም በአንድ ጊዜ) እናካትታለን፡

#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 በቀጥታ ሊጫን የሚችል ልዩ ሞጁል "Nanonyam for 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_ናኖኒያም() ለቨርቹዋል ማሽኑ "የይለፍ ቃል" ሚና ይጫወታል፣ ይህም በምናባዊ ተግባራት ላይ ገደቦችን ያስወግዳል። ይህ ተግባር ከሌለ ፕሮግራሙ ከ 3 ሰከንድ ቀዶ ጥገና በኋላ ይዘጋል.

"Check" የሚለውን ቁልፍ እንጭነዋለን እና ምንም ስህተቶች ሊኖሩ አይገባም.

በ Arduino ውስጥ ለዊንዶውስ ፕሮግራሞችን እንዴት መፍጠር እንደሚቻል

አሁን ሁለትዮሽ ፋይል (firmware) ማግኘት አለብዎት. ምናሌውን ይምረጡ"Sketch>>ሁለትዮሽ ፋይል ወደ ውጪ ላክ (CTRL+ALT+S)".

በ Arduino ውስጥ ለዊንዶውስ ፕሮግራሞችን እንዴት መፍጠር እንደሚቻል

ይህ ሁለት HEX ፋይሎችን ወደ sketch አቃፊ ይገለበጣል. ያለ ቅድመ ቅጥያ "with_bootloader.mega" ፋይሉን ብቻ እንወስዳለን.

የ HEX ፋይልን ወደ ናኖኒያም ቨርቹዋል ማሽን የሚገልጹበት ብዙ መንገዶች አሉ ሁሉም ተገልጸዋል። በዚህ ገጽ ላይ. ከፋይሉ ቀጥሎ ለመፍጠር ሀሳብ አቀርባለሁ። ናኖኒያም.exe ፋይል መንገድወደ HEX ፋይልችን ሙሉ ዱካ የምንመዘግብበት። ከዚያ በኋላ መሮጥ ይችላሉ ናኖኒያም.exe. ከጽሑፋችን ጋር መስኮት እናገኛለን.

በ Arduino ውስጥ ለዊንዶውስ ፕሮግራሞችን እንዴት መፍጠር እንደሚቻል

በተመሳሳይ፣ እንደ AVR Studio ወይም WinAVR ባሉ በሌሎች አካባቢዎች ፕሮግራሞችን መፍጠር ይችላሉ።

ከናኖኒያም ጋር ያለንን ትውውቅ የምንጨርስበት ይህ ነው። ዋናው ሀሳብ ግልጽ መሆን አለበት. ተጨማሪ ምሳሌዎች በድር ጣቢያው ላይ ይገኛሉ.. ይህን ፕሮጀክት ለመጠቀም ፈቃደኛ የሆኑ በቂ ሰዎች ካሉ፣ ከዚያ ተጨማሪ ምሳሌዎችን አዘጋጅቼ ምናባዊ ተግባር ቤተ-መጻሕፍትን "መሙላቱን" እቀጥላለሁ። ለፕሮጀክቱ ልማት ተጨባጭ ሀሳቦች እና ጉድለቶች ፣ ስህተቶች እና ሳንካዎች ሪፖርቶች ተቀባይነት አላቸው። እነሱን ወደ እውቂያዎች መምራት ይመከራል ፣ በጣቢያው ላይ ተጠቁሟል. እና በአስተያየቶቹ ውስጥ ውይይት እንኳን ደህና መጡ።

ስለ እርስዎ ትኩረት እና ጥሩ ፕሮግራም ሁላችሁንም አመሰግናለሁ!

ምንጭ: hab.com

አስተያየት ያክሉ