Arduino లో Windows కోసం ప్రోగ్రామ్‌లను ఎలా సృష్టించాలి

Arduino లో Windows కోసం ప్రోగ్రామ్‌లను ఎలా సృష్టించాలి

ఒకరోజు తీసుకురావాలనే పిచ్చి ఆలోచన వచ్చింది ఒకే చోట 500 లేజర్ పాయింటర్లు. చాలా సమయం వెచ్చించి చేశాను. ఇది అద్భుతమైన మరియు పనికిరానిదిగా మారింది, కానీ నేను దానిని ఇష్టపడ్డాను. ఆరు నెలల క్రితం నాకు మరో పిచ్చి ఆలోచన వచ్చింది. ఈ సమయంలో, అన్ని అద్భుతమైన కాదు, కానీ చాలా ఉపయోగకరంగా. నేను కూడా చాలా సమయం దానికే వెచ్చించాను. మరియు ఈ వ్యాసంలో, నేను నా రెండవ క్రేజీ ఆలోచన యొక్క బీటా వెర్షన్‌ను అందిస్తున్నాను.

నేను ప్రాజెక్ట్‌ని నానోణ్యం (నానోణ్యం) అని పిలిచాను మరియు దాని కోసం ఒక లోగోను కూడా రూపొందించాను (నేను 5 నిమిషాలు గీసాను).

Arduino లో Windows కోసం ప్రోగ్రామ్‌లను ఎలా సృష్టించాలి

Arduino పరంగా ఆలోచించే వారికి, Windows ని నియంత్రించడానికి Nanonyam అనేది వర్చువల్ Arduino షీల్డ్ అని చెప్పవచ్చు.

మరో మాటలో చెప్పాలంటే, నానోయం అనేది AVR మైక్రోకంట్రోలర్ (ATMEGA2560 సిఫార్సు చేయబడింది) కోసం ఫర్మ్‌వేర్‌ను బైట్‌కోడ్‌గా ఉపయోగించే వర్చువల్ మెషీన్. ఈ వర్చువల్ మెషీన్ లోపల AVR కోర్ సిమ్యులేటర్ ఉంది, కానీ 0x0060 నుండి 0x01FF వరకు SRAM చిరునామాల వద్ద ఉన్న పరిధీయ పరికరాలకు బదులుగా, వర్చువల్ ఫంక్షన్‌లకు (Windows API ఫంక్షన్‌లతో సహా) ప్రత్యేక ఇంటర్‌ఫేస్ ఉంది. మరియు ఇక్కడ వెంటనే అర్థం చేసుకోవడం చాలా ముఖ్యం: Nanonyam కోసం కోడ్ పేర్కొన్న మెమరీ పరిధికి ఎటువంటి ప్రాప్యతను కలిగి ఉండకూడదు, కాబట్టి అనుకోకుండా కాల్ చేయకూడదు, ఉదాహరణకు, ఫైల్‌లను తొలగించడం లేదా డిస్క్‌ను ఫార్మాటింగ్ చేయడం. మిగిలిన SRAM మెమరీ శ్రేణి 0x0200 నుండి 0xFFFF వరకు (ఇది నిజమైన మైక్రోకంట్రోలర్‌లో కంటే ఎక్కువ) ఏ ప్రయోజనం కోసం అయినా వినియోగదారుకు అందుబాటులో ఉంటుంది. నిజమైన మైక్రోకంట్రోలర్ (లేదా మరొక ఆర్కిటెక్చర్ నుండి ఫర్మ్‌వేర్) యొక్క ఫర్మ్‌వేర్ యొక్క ప్రమాదవశాత్తూ ప్రయోగానికి వ్యతిరేకంగా ప్రత్యేక రక్షణ ఉందని నేను వెంటనే గమనించాను: "ప్రమాదకరమైన" ఫంక్షన్‌లను సక్రియం చేయడానికి ముందు, మీరు ప్రత్యేక గమ్మత్తైన వర్చువల్ ఫంక్షన్‌కు కాల్ చేయాలి. కొన్ని ఇతర భద్రతా ఫీచర్లు కూడా ఉన్నాయి.

Nanonyam కోసం ప్రోగ్రామ్‌లను సృష్టించడానికి, మీరు ప్రస్తుతం అందుబాటులో ఉన్న అన్ని వర్చువల్ ఫంక్షన్‌లను అమలు చేసే ప్రత్యేక లైబ్రరీలను ఉపయోగించాలి. దాని కోసం Nanonyam వర్చువల్ మిషన్ మరియు లైబ్రరీలను డౌన్‌లోడ్ చేయండి ఇక్కడ ఉండవచ్చు. మరియు ఇక్కడ వర్చువల్ ఫంక్షన్ వివరణ పేజీ. అవును, నా సైట్ చాలా ప్రాచీనమైనది మరియు మొబైల్ పరికరాలకు అనుగుణంగా లేదు.

నానోయం గృహ మరియు వాణిజ్య వినియోగానికి ఉచితం. నానోన్యమ్ ప్రోగ్రామ్ "యథాతథంగా" అందించబడింది. సోర్స్ కోడ్ అందించబడలేదు.

ప్రోగ్రామ్ ప్రస్తుతం పరీక్ష దశలో ఉంది. Windows కోసం సాధారణ ప్రోగ్రామ్‌లను సృష్టించడానికి మిమ్మల్ని అనుమతించే 200 వర్చువల్ ఫంక్షన్‌లను అమలు చేసింది.
సహజంగానే, అటువంటి వర్చువల్ మెషీన్‌లో సంక్లిష్టమైనదాన్ని సృష్టించడం పనిచేయదు, ఎందుకంటే కోడ్ మెమరీ 256 kB మాత్రమే. డేటాను ప్రత్యేక ఫైళ్ళలో నిల్వ చేయవచ్చు, గ్రాఫిక్ భాగం కోసం బఫర్ బాహ్యంగా అమలు చేయబడుతుంది. అన్ని విధులు సరళీకృతం చేయబడ్డాయి మరియు 8-బిట్ ఆర్కిటెక్చర్ కోసం స్వీకరించబడ్డాయి.

నానోన్యంలో మీరు ఏమి చేయగలరు? నేను కొన్ని సమస్యలతో వచ్చాను.

ప్రోగ్రామ్ బ్లాక్స్ అభివృద్ధి

నేను ఒకసారి 128x64 డాట్ గ్రాఫిక్ డిస్‌ప్లే కోసం కాంప్లెక్స్ మెనూని డిజైన్ చేయాల్సి వచ్చింది. పిక్సెల్‌లు ఎలా కనిపిస్తున్నాయో చూడటానికి నేను నిజంగా ఫర్మ్‌వేర్‌ను నిజమైన మైక్రోకంట్రోలర్‌లోకి నిరంతరం లోడ్ చేయాలనుకోలేదు. అలా నానోన్యం అనే ఆలోచన పుట్టింది. దిగువన ఉన్న బొమ్మ అదే మెనులోని ఐటెమ్‌లలో ఒకదాని యొక్క నిజమైన OLED డిస్‌ప్లే నుండి చిత్రాన్ని చూపుతుంది. ఇప్పుడు నేను నిజమైన పరికరం లేకుండా దాని ద్వారా పని చేయగలను.

Arduino లో Windows కోసం ప్రోగ్రామ్‌లను ఎలా సృష్టించాలి

మైక్రోకంట్రోలర్‌ల కోసం ప్రోగ్రామ్ బ్లాక్‌లను పని చేయడానికి నానోయం (దాని చివరి ఆలోచన) మంచి సాధనం, ఎందుకంటే గ్రాఫిక్‌లతో (మీరు డిస్‌ప్లేలు మరియు సూచికలను అనుకరించవచ్చు), ఫైల్‌లతో (మీరు లాగ్‌లను తయారు చేయవచ్చు, పరీక్ష డేటాను చదవవచ్చు) తో పని చేయడానికి విధులు ఉన్నాయి. ఒక కీబోర్డ్ (మీరు ఒకే సమయంలో 10 బటన్‌ల వరకు చదవవచ్చు), COM పోర్ట్‌లతో (ఇక్కడ ఒక ప్రత్యేక అంశం ఉంది).

త్వరిత ప్రోగ్రామ్‌లను సృష్టిస్తోంది

ఉదాహరణకు, మీరు 100500 టెక్స్ట్ ఫైల్‌లను త్వరగా ప్రాసెస్ చేయాలి. ప్రతి ఒక్కటి తెరవబడాలి, కొన్ని సాధారణ అల్గోరిథం ప్రకారం కొద్దిగా సవరించాలి, సేవ్ చేసి మూసివేయాలి. మీరు పైథాన్ మాస్టర్ అయితే, నేను మిమ్మల్ని అభినందిస్తున్నాను, మీకు ప్రతిదీ ఉంది. కానీ మీరు గట్టిపడిన ఆర్డునో అయితే (మరియు వాటిలో చాలా ఉన్నాయి), అప్పుడు ఈ సమస్యను పరిష్కరించడంలో నానోన్యం మీకు సహాయం చేస్తుంది. నానోన్యంలో ఇది నా రెండవ లక్ష్యం: సిస్టమ్‌లో టెక్స్ట్ ప్రాసెసింగ్, స్క్రీన్‌షాట్‌లు తీయడం లేదా కీస్ట్రోక్‌లను అనుకరించడం వంటి అనేక ఉపయోగకరమైన ఫంక్షన్‌లను జోడించడం (ఇవన్నీ ఇప్పటికే ఉన్నాయి), అలాగే సాధారణ పనులను పరిష్కరించడానికి అనేక ఇతర విధులు .

COM పోర్ట్ ద్వారా హార్డ్‌వేర్‌ను పరీక్షిస్తోంది

నానోన్యం మీ అల్గారిథమ్ ప్రకారం పనిచేసే టెర్మినల్‌గా పని చేస్తుంది. మీరు పరికరాన్ని నియంత్రించడానికి మరియు పోర్ట్ నుండి స్వీకరించిన డేటాను ప్రదర్శించడానికి చిన్న మెనుని గీయవచ్చు. మీరు విశ్లేషణ కోసం ఫైల్‌ల నుండి డేటాను సేవ్ చేయవచ్చు మరియు చదవవచ్చు. హార్డ్‌వేర్ యొక్క సాధారణ డీబగ్గింగ్ మరియు క్రమాంకనం కోసం సులభ సాధనం, అలాగే సాధారణ వర్చువల్ ఇన్‌స్ట్రుమెంట్ కంట్రోల్ ప్యానెల్‌లను రూపొందించడం. విద్యార్థులు మరియు యువ శాస్త్రవేత్తలకు, ఈ ప్రాజెక్ట్ చాలా ఉపయోగకరంగా ఉంటుంది.

ప్రోగ్రామింగ్ శిక్షణ

అయినప్పటికీ, మొత్తం Arduino ప్రాజెక్ట్‌లో వలె, Nanonyam యొక్క ప్రధాన ప్రయోజనం విధులు, ఇంటర్‌ఫేస్ మరియు బూట్‌లోడర్‌ల సరళీకరణలో ఉంది. అందువల్ల, ఈ ప్రాజెక్ట్ అనుభవం లేని ప్రోగ్రామర్‌లకు మరియు ఆర్డునో స్థాయితో సంతృప్తి చెందిన వారికి ఆసక్తిని కలిగి ఉండాలి. మార్గం ద్వారా, నేను ఇప్పటికీ arduino గురించి వివరంగా అధ్యయనం చేయలేదు, ఎందుకంటే నేను ఎల్లప్పుడూ WinAVR లేదా AVR స్టూడియోని ఉపయోగించాను, కానీ అసెంబ్లర్‌తో ప్రారంభించాను. అందువల్ల, దిగువ ఉదాహరణ ప్రోగ్రామ్ కొద్దిగా తప్పుగా ఉంటుంది, కానీ చాలా పని చేస్తుంది.

హలో హబ్ర్!

నానోన్యం యొక్క కొన్ని ఫీచర్లను తెలుసుకుని, ఒక సాధారణ ప్రోగ్రామ్‌ను వ్రాయడానికి ఇది సమయం. మేము 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 నుండి నేరుగా ఇన్‌స్టాల్ చేయగల ప్రత్యేక మాడ్యూల్ “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_Nanonyam() వర్చువల్ మెషీన్ కోసం "పాస్‌వర్డ్" పాత్రను పోషిస్తుంది, ఇది వర్చువల్ ఫంక్షన్‌లపై పరిమితులను తొలగిస్తుంది. ఈ ఫంక్షన్ లేకుండా, ప్రోగ్రామ్ 3 సెకన్ల ఆపరేషన్ తర్వాత మూసివేయబడుతుంది.

మేము "చెక్" బటన్‌ను నొక్కండి మరియు ఎటువంటి లోపాలు ఉండకూడదు.

Arduino లో Windows కోసం ప్రోగ్రామ్‌లను ఎలా సృష్టించాలి

ఇప్పుడు మీరు బైనరీ ఫైల్ (ఫర్మ్‌వేర్) పొందాలి. మెనుని ఎంచుకోండి "స్కెచ్>>బైనరీ ఫైల్‌ను ఎగుమతి చేయండి (CTRL+ALT+S)".

Arduino లో Windows కోసం ప్రోగ్రామ్‌లను ఎలా సృష్టించాలి

ఇది రెండు HEX ఫైల్‌లను స్కెచ్ ఫోల్డర్‌కి కాపీ చేస్తుంది. మేము "with_bootloader.mega" ఉపసర్గ లేకుండా ఫైల్‌ను మాత్రమే తీసుకుంటాము.

Nanonyam వర్చువల్ మిషన్‌కు HEX ఫైల్‌ను పేర్కొనడానికి అనేక మార్గాలు ఉన్నాయి, అవన్నీ వివరించబడ్డాయి ఈ పేజీలో. ఫైల్ పక్కన సృష్టించమని నేను సూచిస్తున్నాను Nanonyam.exe файл మార్గం, దీనిలో మా HEX ఫైల్‌కు పూర్తి మార్గాన్ని నమోదు చేయాలి. ఆ తర్వాత మీరు అమలు చేయవచ్చు Nanonyam.exe. మేము మా శాసనంతో ఒక విండోను పొందుతాము.

Arduino లో Windows కోసం ప్రోగ్రామ్‌లను ఎలా సృష్టించాలి

అదేవిధంగా, మీరు AVR స్టూడియో లేదా WinAVR వంటి ఇతర వాతావరణాలలో ప్రోగ్రామ్‌లను సృష్టించవచ్చు.

ఇక్కడే నానోణ్యంతో పరిచయాన్ని ముగించుకుంటాం. ప్రధాన ఆలోచన స్పష్టంగా ఉండాలి. మరిన్ని ఉదాహరణలు వెబ్‌సైట్‌లో ఉన్నాయి.. ఈ ప్రాజెక్ట్‌ను ఉపయోగించడానికి తగినంత మంది వ్యక్తులు సిద్ధంగా ఉంటే, నేను మరిన్ని ఉదాహరణలను రూపొందించి, వర్చువల్ ఫంక్షన్ లైబ్రరీలను "పూరించడాన్ని" కొనసాగిస్తాను. ప్రాజెక్ట్ అభివృద్ధి కోసం కాంక్రీట్ ఆలోచనలు మరియు లోపాలు, బగ్‌లు మరియు బగ్‌ల నివేదికలు అంగీకరించబడతాయి. వారిని పరిచయాలకు మళ్లించడం మంచిది, సైట్‌లో సూచించబడింది. మరియు వ్యాఖ్యలలో చర్చకు స్వాగతం.

మీ శ్రద్ధ మరియు మంచి ప్రోగ్రామింగ్ కోసం అందరికీ ధన్యవాదాలు!

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి