Kā izveidot Windows programmas Arduino

Kā izveidot Windows programmas Arduino

Kādu dienu man radās traka ideja atnest 500 lāzera rādītāji vienuviet. Es pavadīju daudz laika un izdarīju to. Tas izrādījās iespaidīgs un bezjēdzīgs, bet man tas patika. Pirms sešiem mēnešiem man bija vēl viena traka ideja. Šoreiz nepavisam ne iespaidīgi, bet daudz noderīgāk. Es arī tam pavadīju daudz laika. Un šajā rakstā es piedāvāju savas otrās trakās idejas beta versiju.

Es nosaucu projektu Nanonyam (Nanonyam) un pat izdomāju tam logotipu (zīmēju 5 minūtes).

Kā izveidot Windows programmas Arduino

Tiem, kas domā par Arduino, mēs varam teikt, ka Nanonyam ir virtuāls Arduino vairogs Windows vadīšanai.

Citiem vārdiem sakot, Nanonyam ir virtuāla mašīna, kas izmanto AVR mikrokontrollera programmaparatūru (ieteicams ATMEGA2560) kā baitu kodu. Šīs virtuālās mašīnas iekšpusē ir AVR kodola simulators, taču perifērijas ierīču vietā, kas atrodas SRAM adresēs no 0x0060 līdz 0x01FF, ir īpašs interfeiss virtuālajām funkcijām (tostarp Windows API funkcijām). Un šeit ir ļoti svarīgi uzreiz saprast: Nanonyam kodam nevajadzētu piekļūt norādītajam atmiņas diapazonam, lai nejauši neizsauktu, piemēram, failu dzēšanas vai diska formatēšanas funkciju. Pārējais SRAM atmiņas diapazons no 0x0200 līdz 0xFFFF (tas ir vairāk nekā īstā mikrokontrollerī) ir pieejams lietotājam jebkuram mērķim. Uzreiz atzīmēju, ka ir īpaša aizsardzība pret nejaušu reāla mikrokontrollera programmaparatūras (vai programmaparatūras no citas arhitektūras) palaišanu: pirms "bīstamu" funkciju aktivizēšanas jums ir jāizsauc īpaša viltīga virtuālā funkcija. Ir arī daži citi drošības līdzekļi.

Lai izveidotu programmas Nanonyam, ir jāizmanto īpašas bibliotēkas, kas ievieš visas šobrīd pieejamās virtuālās funkcijas. Lejupielādējiet Nanonyam virtuālo mašīnu un tai paredzētās bibliotēkas Pēc tam varat. Bet virtuālās funkcijas apraksta lapa. Un jā, mana vietne ir ļoti primitīva un nav pielāgota mobilajām ierīcēm.

Nanonyam ir bezmaksas lietošanai mājās un komerciālai lietošanai. Nanonyam programma tiek nodrošināta tāda, kāda tā ir. Avota kods nav norādīts.

Programma pašlaik ir testēšanas fāzē. Ieviestas aptuveni 200 virtuālās funkcijas, kas ļauj izveidot vienkāršas programmas operētājsistēmai Windows.
Acīmredzot izveidot kaut ko sarežģītu šādā virtuālajā mašīnā nedarbosies, jo koda atmiņa ir tikai 256 kB. Datus var glabāt atsevišķos failos, buferis grafiskajai daļai tiek realizēts ārēji. Visas funkcijas ir vienkāršotas un pielāgotas 8 bitu arhitektūrai.

Ko jūs varat darīt Nanonyam? Man radās dažas problēmas.

Programmu bloku izstrāde

Man kādreiz vajadzēja izveidot sarežģītu izvēlni 128x64 punktu grafiskajam displejam. Es patiešām negribēju pastāvīgi ielādēt programmaparatūru īstā mikrokontrollerī, lai redzētu, kā izskatās pikseļi. Un tā radās Nanonyam ideja. Zemāk esošajā attēlā parādīts attēls no īsta OLED displeja, kurā redzams viens no tās pašas izvēlnes vienumiem. Tagad es varu strādāt ar to bez īstas ierīces.

Kā izveidot Windows programmas Arduino

Nanonyam (savā galīgajā idejā) ir labs rīks programmu bloku izstrādei mikrokontrolleriem, jo ​​ir funkcijas darbam ar grafiku (var simulēt displejus un indikatorus), ar failiem (var izveidot žurnālus, lasīt testa datus), ar tastatūra (vienlaicīgi var lasīt līdz 10 pogām), ar COM portiem (šeit ir atsevišķs vienums).

Ātro programmu izveide

Piemēram, jums ātri jāapstrādā 100500 XNUMX teksta faili. Katrs no tiem ir jāatver, nedaudz jāpārveido pēc kāda vienkārša algoritma, jāsaglabā un jāaizver. Ja esat Python meistars, tad es jūs apsveicu, jums ir viss. Bet, ja esat rūdīts arduino (un tādu ir daudz), tad Nanonyam palīdzēs jums atrisināt šo problēmu. Šis ir mans otrais mērķis programmā Nanonyam: pievienot daudzas noderīgas funkcijas, piemēram, teksta apstrādi, ekrānuzņēmumu uzņemšanu vai taustiņsitienu simulēšanu sistēmā (kas, starp citu, jau ir), kā arī daudzas citas funkcijas ikdienas uzdevumu risināšanai. .

Aparatūras pārbaude, izmantojot COM portu

Nanonyam var darboties kā terminālis, kas darbojas saskaņā ar jūsu algoritmu. Varat uzzīmēt nelielu izvēlni, lai kontrolētu ierīci un parādītu no porta saņemtos datus. Varat saglabāt un lasīt datus no failiem analīzei. Ērts rīks vienkāršai aparatūras atkļūdošanai un kalibrēšanai, kā arī vienkāršu virtuālo instrumentu vadības paneļu izveidei. Studentiem un jaunajiem zinātniekiem šis projekts var būt ļoti noderīgs.

Programmēšanas apmācība

Tomēr, tāpat kā visā Arduino projektā, Nanonyam galvenā lietderība slēpjas funkciju, interfeisa un sāknēšanas ielādes vienkāršošanā. Tāpēc šim projektam vajadzētu interesēt iesācēju programmētājus un tos, kuri ir apmierināti ar arduino līmeni. Starp citu, es pats joprojām neesmu sīkāk pētījis arduino, jo vienmēr izmantoju WinAVR vai AVR Studio, bet sāku ar assembler. Tāpēc zemāk esošā programmas paraugs būs nedaudz nepareizs, taču diezgan darbojošs.

Sveiki, Habr!

Ir pienācis laiks iepazīties ar dažām Nanonyam funkcijām un uzrakstīt vienkāršu programmu. Rakstīsim Arduino, bet ne ierastajā veidā, bet tā, kā es tagad varu (jau teicu, ka šo vidi vēl neesmu īsti izdomājis). Vispirms izveidojiet jaunu skici un atlasiet Mega2560 dēli.

Kā izveidot Windows programmas Arduino

Saglabājiet skici failā un kopējiet nākamo Nanonyam bibliotēka. Būtu pareizi iekļaut bibliotēku galvenes, taču es nezinu, kā Arduino rakstīt atsevišķu failu apkopojumu, tāpēc pagaidām mēs tikai iekļausim bibliotēkas tieši (un visas uzreiz):

#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"

Vēl pareizāk būtu izgatavot speciālu moduli “Nanonyam for Arduino”, ko var uzstādīt tieši no Arduino. Tiklīdz izdomāšu, tā arī izdarīšu, bet pagaidām tikai parādu būtību darbam ar virtuālo mašīnu. Mēs rakstām šādu kodu:

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

Skice ar šo programmu var lejupielādēt šeit. Detalizēts funkciju apraksts meklēt vietnē. Es ceru, ka komentāri šajā kodā ir pietiekami, lai saprastu tā būtību. Šeit funkcija sys_Nanonyam() spēlē virtuālās mašīnas "paroles" lomu, kas novērš ierobežojumus virtuālajām funkcijām. Bez šīs funkcijas programma tiks aizvērta pēc 3 sekundēm.

Mēs nospiežam pogu "Pārbaudīt", un kļūdām nevajadzētu būt.

Kā izveidot Windows programmas Arduino

Tagad jums ir jāiegūst binārais fails (programmaparatūra). Izvēlieties izvēlni "Skice>> Eksportēt bināro failu (CTRL+ALT+S)".

Kā izveidot Windows programmas Arduino

Tādējādi skices mapē tiks kopēti divi HEX faili. Mēs ņemam tikai failu bez prefiksa "with_bootloader.mega".

Ir vairāki veidi, kā norādīt HEX failu Nanonyam virtuālajai mašīnai, un tie visi ir aprakstīti šajā lapā. Iesaku izveidot blakus failam Nanonyam.exe fails ceļš, kurā reģistrēt pilnu ceļu uz mūsu HEX failu. Pēc tam jūs varat skriet Nanonyam.exe. Mēs saņemam logu ar mūsu uzrakstu.

Kā izveidot Windows programmas Arduino

Tāpat varat izveidot programmas citās vidēs, piemēram, AVR Studio vai WinAVR.

Šeit mēs pabeidzam mūsu iepazīšanos ar Nanonyam. Galvenajai domai jābūt skaidrai. Vairāk piemēru ir vietnē.. Ja būs pietiekami daudz gribētāju izmantot šo projektu, tad veidošu vēl piemērus un turpināšu "pildīt" virtuālās funkciju bibliotēkas. Tiek pieņemtas konkrētas idejas projekta attīstībai un ziņojumi par darbības traucējumiem, kļūdām un kļūdām. Ieteicams viņus novirzīt uz kontaktpersonām, norādīts vietnē. Un diskusija ir apsveicama komentāros.

Paldies visiem par uzmanību un labo programmēšanu!

Avots: www.habr.com

Pievieno komentāru