Arduino-да Windows жүйесіне арналған бағдарламаларды қалай жасауға болады

Arduino-да Windows жүйесіне арналған бағдарламаларды қалай жасауға болады

Бір күні менде ақылсыз ой келді Бір жерде 500 лазерлік көрсеткіш. Мен көп уақытымды жұмсадым және жасадым. Бұл керемет және пайдасыз болып шықты, бірақ маған ұнады. Алты ай бұрын менде тағы бір ақылсыз идея болды. Бұл жолы мүлдем әсерлі емес, бірақ әлдеқайда пайдалы. Мен де оған көп уақыт жұмсадым. Бұл мақалада мен екінші ақылсыз идеямның бета нұсқасын ұсынамын.

Мен жобаны Nanonyam (Nanonyam) деп атадым, тіпті оның логотипін де ойлап таптым (мен 5 минут бойы сурет салдым).

Arduino-да Windows жүйесіне арналған бағдарламаларды қалай жасауға болады

Arduino тұрғысынан ойлайтындар үшін Nanonyam Windows жүйесін басқаруға арналған виртуалды Arduino қалқаны деп айта аламыз.

Басқаша айтқанда, Nanonyam - байт код ретінде AVR микроконтроллері үшін микробағдарламаны (ATMEGA2560 ұсынылады) пайдаланатын виртуалды машина. Бұл виртуалды машинаның ішінде AVR негізгі симуляторы бар, бірақ 0x0060-тан 0x01FF-ге дейінгі SRAM мекенжайларында орналасқан перифериялық құрылғылардың орнына виртуалды функцияларға (Windows API функцияларын қоса) арнайы интерфейс бар. Және бұл жерде бірден түсіну өте маңызды: Nanonyam коды, мысалы, файлдарды жою немесе дискіні пішімдеу функциясын кездейсоқ шақырмау үшін көрсетілген жад ауқымына қол жеткізе алмауы керек. 0x0200-ден 0xFFFF-ге дейінгі SRAM жадының қалған диапазоны (бұл нақты микроконтроллердегіден көп) кез келген мақсатта пайдаланушыға қол жетімді. Мен нақты микроконтроллердің микробағдарламасының (немесе басқа архитектураның микробағдарламасының) кездейсоқ іске қосылуынан арнайы қорғаныс бар екенін бірден атап өтемін: «қауіпті» функцияларды іске қоспас бұрын, арнайы күрделі виртуалды функцияны шақыру керек. Басқа да қауіпсіздік мүмкіндіктері бар.

Nanonyam үшін бағдарламалар жасау үшін қазіргі уақытта қол жетімді барлық виртуалды функцияларды жүзеге асыратын арнайы кітапханаларды пайдалану қажет. Ол үшін Nanonyam виртуалды машинасын және кітапханаларды жүктеп алыңыз мұнда болуы мүмкін. Ал міне виртуалды функцияны сипаттау беті. Иә, менің сайтым өте қарапайым және мобильді құрылғыларға бейімделмеген.

Nanonyam үйде және коммерциялық пайдалану үшін тегін. Nanonyam бағдарламасы "сол қалпында" негізінде беріледі. Бастапқы код берілмейді.

Бағдарлама қазір тестілеу кезеңінде. Windows үшін қарапайым бағдарламаларды жасауға мүмкіндік беретін 200-ге жуық виртуалды функциялар іске асырылды.
Мұндай виртуалды машинада күрделі нәрсені жасау жұмыс істемейтіні анық, өйткені кодтың жады бар болғаны 256 кБ құрайды. Деректер бөлек файлдарда сақталуы мүмкін, графикалық бөлікке арналған буфер сырттан жүзеге асырылады. Барлық функциялар жеңілдетілген және 8-биттік архитектураға бейімделген.

Нанонямда не істей аласыз? Мен бірнеше мәселемен келдім.

Бағдарлама блоктарын әзірлеу

Маған бір рет 128x64 нүктелік графикалық дисплей үшін күрделі мәзірді құрастыру керек болды. Мен пикселдердің қалай көрінетінін көру үшін микробағдарламаны нақты микроконтроллерге үнемі жүктегім келмеді. Осылайша Наноням идеясы дүниеге келді. Төмендегі суретте сол мәзірдегі элементтердің бірінің нақты OLED дисплейінен алынған кескін көрсетілген. Енді мен оны нақты құрылғысыз жұмыс істей аламын.

Arduino-да Windows жүйесіне арналған бағдарламаларды қалай жасауға болады

Nanonyam (соңғы идеясы бойынша) микроконтроллерлерге арналған бағдарлама блоктарын өңдеуге арналған жақсы құрал, өйткені графикамен (дисплейлер мен индикаторларды модельдеуге болады), файлдармен (журналдарды жасауға, сынақ деректерін оқуға) арналған функциялар бар. пернетақта (бір уақытта 10 түймені оқуға болады), COM порттары бар (бұл жерде бөлек элемент).

Жылдам бағдарламаларды құру

Мысалы, 100500 мәтіндік файлды жылдам өңдеу керек. Олардың әрқайсысын ашу, кейбір қарапайым алгоритмге сәйкес сәл өзгерту, сақтау және жабу қажет. Егер сіз Python шебері болсаңыз, мен сізді құттықтаймын, сізде бәрі бар. Бірақ егер сіз шыңдалған ардуино болсаңыз (және олардың көпшілігі бар), онда Nanonyam сізге бұл мәселені шешуге көмектеседі. Бұл менің Нанонямдағы екінші мақсатым: мәтінді өңдеу, скриншоттарды түсіру немесе жүйедегі пернелерді басу сияқты көптеген пайдалы функцияларды (айтпақшы, олардың барлығы бар), сондай-ақ күнделікті тапсырмаларды шешуге арналған көптеген басқа функцияларды қосу .

COM порты арқылы аппараттық құралдарды тексеру

Nanonyam сіздің алгоритміңізге сәйкес жұмыс істейтін терминал ретінде әрекет ете алады. Құрылғыны басқару және порттан алынған деректерді көрсету үшін шағын мәзірді салуға болады. Талдау үшін файлдардан деректерді сақтауға және оқуға болады. Аппараттық құралдарды қарапайым жөндеуге және калибрлеуге, сондай-ақ қарапайым виртуалды құралдарды басқару панелін жасауға арналған ыңғайлы құрал. Студенттер мен жас ғалымдар үшін бұл жоба өте пайдалы болуы мүмкін.

Бағдарламалауды оқыту

Дегенмен, бүкіл Arduino жобасы сияқты, Nanonyam-тың негізгі пайдалылығы функцияларды, интерфейсті және жүктеушіні жеңілдетуде жатыр. Сондықтан бұл жоба жаңа бастаған бағдарламашыларды және arduino деңгейіне қанағаттанғандарды қызықтыруы керек. Айтпақшы, мен әлі де arduino-ны егжей-тегжейлі зерттеген жоқпын, өйткені мен әрқашан WinAVR немесе AVR Studio-ны қолдандым, бірақ ассемблерден бастадым. Сондықтан төмендегі мысал бағдарламасы сәл қате, бірақ өте жұмыс істейді.

Сәлем Хабр!

Кейбір Nanonyam мүмкіндіктерімен танысып, қарапайым бағдарлама жазу уақыты келді. Біз 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 жүйесіне арналған бағдарламаларды қалай жасауға болады

Енді екілік файлды (микробағдарламаны) алу керек. Мәзірді таңдаңыз»Эскиз>>Екілік файлды экспорттау (CTRL+ALT+S)«.

Arduino-да Windows жүйесіне арналған бағдарламаларды қалай жасауға болады

Бұл екі HEX ​​файлын эскиз қалтасына көшіреді. Біз тек "with_bootloader.mega" префиксі жоқ файлды аламыз.

Nanonyam виртуалды машинасына HEX файлын көрсетудің бірнеше жолы бар, олардың барлығы сипатталған осы бетте. Мен файлдың жанында жасауды ұсынамын Nanonyam.exe файл жол, онда біздің HEX файлымызға толық жол тіркеледі. Осыдан кейін сіз жүгіре аласыз Nanonyam.exe. Біз жазуымыз бар терезені аламыз.

Arduino-да Windows жүйесіне арналған бағдарламаларды қалай жасауға болады

Сол сияқты, бағдарламаларды AVR Studio немесе WinAVR сияқты басқа орталарда жасауға болады.

Наноняммен танысуымызды осы жерде аяқтаймыз. Негізгі ой анық болуы керек. Қосымша мысалдар веб-сайтта.. Егер бұл жобаны қолдануға дайын адамдар жеткілікті болса, мен көбірек мысалдар келтіремін және виртуалды функция кітапханаларын «толтыруды» жалғастырамын. Жобаны әзірлеу бойынша нақты идеялар және ақаулар, қателер мен қателер туралы есептер қабылданады. Оларды контактілерге бағыттаған жөн, сайтында көрсетілген. Пікірлерде талқылау құпталады.

Назарларыңызға және жақсы бағдарламалауыңызға рахмет!

Ақпарат көзі: www.habr.com

пікір қалдыру