Kā Arduino izveidot programmas Windows

Kā Arduino izveidot programmas Windows

Reiz man prātā ienāca dīvaina doma apvienot 500 lāzera rādītāju vienuviet. Es pavadīju daudz laika un to izdarīju. Izdevās iespaidīgi un bezjēdzīgi, bet man patika. Pirms pusgada man ienāca cita dīvaina doma. Šoreiz pavisam neiespaidīga, bet daudz noderīgāka. Es arī pavadīju daudz laika, strādājot pie tās. Šajā rakstā es piedāvāju savas otrās dīvainās idejas beta versiju.

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

Kā Arduino izveidot programmas Windows

Tiem, kas domā Arduino terminos, var teikt, ka Nanonyam ir virtuāls Arduino shields Windows kontrolei.

Citiem vārdiem sakot, Nanonyam ir virtuāla maŔīna, kurā kā baitu kods tiek izmantota AVR mikroshēmas programmatÅ«ra (ieteicams ATMEGA2560). Å Ä«s virtuālās maŔīnas iekÅ”ienē atrodas AVR kodola simulators, bet vietā perifērijas ierÄ«cēm, kas atrodas adresēs SRAM no 0x0060 lÄ«dz 0x01FF, ir Ä«paÅ”s interfeiss virtuālām funkcijām (tajā skaitā Windows API funkcijām). Ä»oti svarÄ«gi ir uzreiz saprast: kodam Nanonyam nedrÄ«kst bÅ«t nekādu piekļuvi norādÄ«tajam atmiņas diapazonam, lai nejauÅ”i nesauktu, piemēram, failu dzēŔanas funkciju vai diska formatēŔanu. Pārējais SRAM atmiņas diapazons no 0x0200 lÄ«dz 0xFFFF (tas ir vairāk nekā reālā mikroshēmā) ir pieejams lietotājam jebkādiem mērÄ·iem. Uzreiz jāatzÄ«mē, ka ir speciāla aizsardzÄ«ba pret nejauÅ”u reālās mikroshēmas programmatÅ«ras (vai citas arhitektÅ«ras programmatÅ«ras) aktivizēŔanu: pirms

lai izveidotu programmas Nanonyam, jāizmanto speciālas bibliotēkas, kurās ir Ä«stenotas visas paÅ”laik pieejamās virtuālās funkcijas. Lejupielādējiet virtuālo maŔīnu Nanonyam un bibliotēkas tai to var izdarÄ«t Å”eit. Bet virtuālo funkciju apraksta lapa. Jā, un manas vietnes ir ļoti primitÄ«vas un nav pielāgotas mobilajiem ierÄ«cēm.

Programmā Nanonyam ir bezmaksas izmantoŔanai mājas un komerciālām vajadzībām. Nanonyam programma tiek piedāvāta uz "kā ir" principa. Avota kods netiek nodroŔināts.

Å obrÄ«d programma ir testēŔanas stadijā. Ir ieviestas aptuveni 200 virtuālo funkciju, kas ļauj izveidot vienkārÅ”as programmas Windows operētājsistēmai.
AcÄ«mredzot, veidot kaut ko sarežģītu Ŕādā virtuālajā maŔīnā nevarēs, jo kodam ir pieejami tikai 256 kB atmiņas. Datus var glabāt atseviŔķās failos, grafiskā daļa tiek Ä«stenota ārēji. Visas funkcijas ir vienkārÅ”otas un pielāgotas 8 bitu arhitektÅ«rai.

Ko tad var izdarīt Nanonyam? Es esmu izdomājis dažas uzdevumu iespējas.

Programmu bloku izstrāde

Reiz man bija jāraksta sarežģīts izvēlņu sistēma 128Ɨ64 punktu grafiskajam displejam. Man ļoti negribējās katru reizi ielādēt programmaparādi reālajā mikroprocesorā, lai redzētu, kā izskatās pikseļi. Tā radās ideja par Nanonyam. Zemāk redzams attēls no reālā OLED displeja, kurā attēlots viens no izvēlņu punktiem. Tagad es varu to izstrādāt bez reālas ierÄ«ces.

Kā Arduino izveidot programmas Windows

Nanonyam (savas galÄ«gās ieceres ietvaros) ir lielisks rÄ«ks programmu bloku izstrādei mikroprocesoriem, jo tajā ir grafikas funkcijas (var simulēt displejus un indikatorus), failu apstrāde (var izveidot žurnālus, nolasÄ«t testēŔanas datus), klaviatÅ«ras funkcijas (var nolasÄ«t lÄ«dz 10 pogām vienlaikus), kā arÄ« COM portu (par Å”o ir atseviŔķs punkts).

Ātru programmu izveide

Piemēram, jums ir ātri jāpārstrādā 100500 teksta faili. Katru no tiem jāatver, nedaudz jāmaina atbilstoÅ”i kādam vienkārÅ”am algoritmam, jāsaglabā un jāaizver. Ja esat Python meistars, tad es jÅ«s apsveicu, jums viss ir. Bet, ja esat aizrautÄ«gs Arduino lietotājs (un tādu ir daudz), tad Nanonyam jums palÄ«dzēs atrisināt Å”o uzdevumu. TieÅ”i tas ir mans otrais mērÄ·is Nanonyam: pievienot daudz noderÄ«gu funkciju, piemēram, teksta apstrādi, ekrānuzņēmumu izveidi vai taustiņu nospieÅ”anas simulāciju sistēmā (tas viss, starp citu, jau ir pieejams), kā arÄ« daudz citu funkciju rutÄ«nas uzdevumu risināŔanai.

Dzelžu testēŔana caur COM portu

Nanonyam var darboties kā termināls, kas darbojas saskaņā ar jÅ«su algoritmu. Var izveidot nelielu izvēlni ierÄ«ces vadÄ«bai un attēlot datus, kas saņemti no porta. Var saglabāt un nolasÄ«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 dzinēja vadÄ«bas paneļu veidoÅ”anai. Å is projekts var bÅ«t ļoti noderÄ«gs studentiem un jaunajiem zinātniekiem.

ProgrammēŔanas mācīŔana

Tomēr, kā tas ir visā Arduino projektā, galvenā Nanonyam priekÅ”rocÄ«ba ir funkciju, interfeisa un ielādētāja vienkārŔība. Tāpēc Å”is projekts noteikti bÅ«s interesants iesācējiem programmētājiem un tiem, kas ir apmierināti ar Arduino lÄ«meni. Starp citu, pats es vēl neesmu detalizēti apguvis Arduino, jo vienmēr izmantoju WinAVR vai AVR Studio, un sāku ar assembleri. Tāpēc zemāk redzamā programmas piemērs var bÅ«t nedaudz nepareizs, bet tomēr pilnÄ«bā funkcionāls.

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 nevis tā, kā to parasti dara, bet tā, kā es to Å”obrÄ«d zinu (es jau teicu, ka vēl neesmu ļoti labi iepazinies ar Å”o vidi). Pirmkārt, izveidojam jaunu skici un izvēlamies Mega2560 plati.

Kā Arduino izveidot programmas Windows

Saglabājam skici failā un blakus kopējam Nanonyam bibliotēku. Pareizi bÅ«tu iekļaut bibliotēku virsrakstus, bet es nezinu, kā Arduino norādÄ«t atseviŔķu failu kompilāciju, tāpēc pagaidām vienkārÅ”i 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 izveidot Ä«paÅ”u moduli ā€œNanonyam for Arduinoā€, ko varētu instalēt tieÅ”i no Arduino. Kad es ar to tiku skaidrÄ«bā, es to izdarīŔu, bet pagaidām vienkārÅ”i parādīŔu darbÄ«bas principu ar virtuālo maŔīnu. 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);//ЗаГержка Šø Ń€Š°Š·Š³Ń€ŃƒŠ·ŠŗŠ° процессора
}

Å Ä«s programmas skici var lejupielādēt Å”eit. Detalizētu funkciju aprakstu meklējiet vietnē. Ceru, ka Å”ajā kodā ir pietiekami daudz komentāru, lai saprastu bÅ«tÄ«bu. Å eit funkcija sys_Nanonyam() pilda 'parola' lomu virtuālajai maŔīnai, kas noņem ierobežojumus virtuālajām funkcijām. Bez Ŕīs funkcijas programma slēgsies pēc 3 sekundēm.

NoklikŔķiniet uz pogas ā€œPārbaudÄ«tā€ un nedrÄ«kst bÅ«t nekādu kļūdu.

Kā Arduino izveidot programmas Windows

Tagad jāiegÅ«st binārais fails (iekārta). Izvēlamies izvēlni ā€œSkice>>Eksportēt bināro failu (CTRL+ALT+S)Ā«.

Kā Arduino izveidot programmas Windows

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 virtuālajai maŔīnai Nanonyam, visi tie ir aprakstÄ«ti Å”ajā lapā. Es piedāvāju izveidot blakus failam Nanonyam.exe fails Nanonyam.path, kurā jānorāda pilns ceļŔ lÄ«dz mÅ«su HEX-failam. Pēc tam varam palaist Nanonyam.exe. Saņemam logu ar mÅ«su uzrakstu.

Kā Arduino izveidot programmas Windows

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

Å ajā brÄ«dÄ« noslēgsim iepazīŔanos ar Nanonyam. Galvenā ideja tagad bÅ«tu skaidra. Vairāk piemēru ir pieejami mājaslapā. Ja pietiks interesentu, kas izmantos Å”o projektu, es izveidoÅ”u vairāk piemēru un turpināŔu Ā«aizpildÄ«tĀ» virtuālo funkciju bibliotēkas. Tiks pieņemtas konkrētas idejas projekta attÄ«stīŔanai un ziņojumi par bojājumiem, kļūdām un nepilnÄ«bām. Vēlams sÅ«tÄ«t tās pa kontaktinformāciju, norādÄ«tu mājaslapā. Diskusijas tiek laipni gaidÄ«tas komentāros.

Paldies visiem par uzmanÄ«bu un veiksmÄ«gu programmēŔanu!

Avots: habr.com

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster