Kumaha cara nyieun program pikeun Windows dina Arduino

Kumaha cara nyieun program pikeun Windows dina Arduino

Hiji poé kuring boga gagasan gélo pikeun mawa 500 pointer laser dina hiji tempat. Kuring spent loba waktu jeung ngalakukeun eta. Tétéla spektakuler sareng henteu aya gunana, tapi kuring resep. Genep bulan ka tukang kuring ngagaduhan ide gélo anu sanés. Waktos ieu, sanés spektakuler, tapi langkung mangpaat. Kuring ogé spent loba waktu dina eta. Sareng dina tulisan ieu, kuring nampilkeun versi béta tina ide gélo kadua kuring.

Kuring disebut proyék Nanonyam (Nanonyam) komo datang nepi ka logo pikeun eta (kuring Drew pikeun 5 menit).

Kumaha cara nyieun program pikeun Windows dina Arduino

Pikeun anu mikir ngeunaan Arduino, urang tiasa nyarios yén Nanonyam mangrupikeun tameng Arduino virtual pikeun ngadalikeun Windows.

Dina basa sejen, Nanonyam mangrupakeun mesin virtual anu ngagunakeun firmware pikeun mikrokontroler AVR (ATMEGA2560 dianjurkeun) salaku bytecode. Jero mesin virtual ieu mangrupa simulator inti AVR, tapi tinimbang périferal, anu lokasina di alamat SRAM ti 0x0060 mun 0x01FF, aya hiji panganteur husus pikeun fungsi virtual (kaasup fungsi Windows API). Sareng di dieu penting pisan pikeun langsung ngartos: kode pikeun Nanonyam henteu kedah ngagaduhan aksés kana kisaran mémori anu ditangtukeun, supados henteu ngahaja nelepon, contona, fungsi ngahapus file atanapi pormat disk. Sesa rentang memori SRAM ti 0x0200 mun 0xFFFF (ieu leuwih ti dina mikrokontroler nyata) sadia pikeun pamaké pikeun tujuan naon. Kuring langsung perhatikeun yén aya panyalindungan khusus tina peluncuran anu teu kahaja tina firmware mikrokontroler nyata (atanapi firmware tina arsitéktur anu sanés): sateuacan ngaktipkeun fungsi "bahaya", anjeun kedah nyauran fungsi virtual anu rumit. Aya sababaraha fitur kaamanan séjén ogé.

Pikeun nyiptakeun program pikeun Nanonyam, anjeun kedah nganggo perpustakaan khusus anu ngalaksanakeun sadaya fungsi virtual anu ayeuna sayogi. Unduh mesin virtual Nanonyam sareng perpustakaan pikeun éta tiasa didieu. sarta di dieu kaca pedaran fungsi virtual. Na enya, situs abdi pisan primitif sarta henteu diadaptasi pikeun alat nu bagerak.

Nanonyam gratis kanggo panggunaan bumi sareng komérsial. Program Nanonyam disayogikeun dina dasar "as is". Kode sumber teu disadiakeun.

Program éta ayeuna dina tahap tés. Dilaksanakeun ngeunaan 200 fungsi virtual anu ngamungkinkeun anjeun nyiptakeun program saderhana pikeun Windows.
Jelas, nyieun hal pajeulit dina mesin virtual ieu moal jalan, sabab mémori kode ngan 256 kB. Data tiasa disimpen dina file anu misah, panyangga pikeun bagian grafis dilaksanakeun sacara éksternal. Sadaya fungsi disederhanakeun sareng diadaptasi pikeun arsitektur 8-bit.

Naon anu anjeun tiasa laksanakeun di Nanonyam? Kuring datang nepi ka sababaraha masalah.

Ngembangkeun blok program

Kuring sakali diperlukeun mendesain menu kompléks pikeun tampilan grafik 128x64 titik. Nyaan kuring henteu hoyong terus-terusan ngamuat firmware kana mikrokontroler nyata pikeun ningali kumaha tampilan piksel. Janten ideu Nanoyam lahir. Gambar di handap ieu nunjukkeun gambar tina tampilan OLED nyata tina salah sahiji item dina ménu anu sami. Ayeuna abdi tiasa dianggo ngaliwatan eta tanpa alat nyata.

Kumaha cara nyieun program pikeun Windows dina Arduino

Nanonyam (dina ide ahirna) mangrupikeun alat anu saé pikeun ngerjakeun blok program pikeun mikrokontroler, sabab aya fungsi pikeun damel sareng grafik (anjeun tiasa simulasi tampilan sareng indikator), sareng file (anjeun tiasa ngadamel log, maca data tés), sareng keyboard a (Anjeun bisa maca nepi ka 10 tombol dina waktos anu sareng), kalawan palabuhan COM (di dieu mangrupa item misah).

Nyiptakeun Program Gancang

Salaku conto, anjeun kedah gancang ngolah 100500 file téks. Masing-masing kedah dibuka, rada dirobih dumasar kana sababaraha algoritma saderhana, disimpen sareng ditutup. Mun anjeun master Python, lajeng abdi congratulate anjeun, anjeun boga sagalana. Tapi lamun anjeun hiji arduino hardened (jeung aya loba di antarana), lajeng Nanonyam baris mantuan anjeun dina ngarengsekeun masalah ieu. Ieu mangrupikeun tujuan kadua kuring di Nanonyam: pikeun nambihan seueur fungsi anu mangpaat sapertos ngolah téks, nyandak potret layar atanapi simulasi keystrokes dina sistem (sadayana, ku jalan kitu, tos aya), kitu ogé seueur fungsi anu sanés pikeun ngarengsekeun tugas rutin. .

Nguji hardware via port COM

Nanonyam tiasa janten terminal anu tiasa dianggo dumasar kana algoritma anjeun. Anjeun tiasa ngagambar ménu leutik pikeun ngontrol alat sareng ningalikeun data anu ditampi tina palabuhan. Anjeun tiasa nyimpen sareng maca data tina file pikeun dianalisis. Hiji alat gunana pikeun debugging basajan tur calibration hardware, kitu ogé pikeun nyieun panel kontrol instrumen maya basajan. Pikeun mahasiswa sareng élmuwan ngora, proyék ieu tiasa mangpaat pisan.

palatihan programming

Nanging, sapertos sadayana proyék Arduino, kagunaan utama Nanonyam aya dina nyederhanakeun fungsi, antarmuka sareng bootloader. Ku alatan éta, proyék ieu kedah dipikaresep ku programer novice jeung jalma anu wareg jeung tingkat arduino. Ku jalan kitu, kuring sorangan masih teu diajar arduino di jéntré, sabab kuring salawasna dipaké WinAVR atanapi AVR Studio, tapi dimimitian ku assembler. Ku alatan éta, program conto di handap bakal rada salah, tapi rada jalan.

Hello Habr!

Waktosna pikeun kenal sareng sababaraha fitur Nanonyam sareng nyerat program anu sederhana. Urang bakal nulis dina Arduino, tapi teu dina cara biasa, tapi ku cara kuring ayeuna (Kuring geus ngomong yén kuring teu acan ilahar kaluar lingkungan ieu kacida alusna). Kahiji, nyieun sketsa anyar tur pilih dewan Mega2560.

Kumaha cara nyieun program pikeun Windows dina Arduino

Simpen sketsa kana file sareng salin salajengna Perpustakaan Nanonyam. Éta leres upami kalebet header perpustakaan, tapi kuring henteu terang kumaha nyerat kompilasi file individu dina Arduino, janten ayeuna urang ngan ukur ngalebetkeun perpustakaan langsung (sareng sakaligus):

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

Éta bakal langkung leres pikeun ngadamel modul khusus "Nanonyam pikeun Arduino", anu tiasa dipasang langsung tina Arduino. Pas kuring terang, kuring bakal ngalakukeun, tapi ayeuna kuring ngan ukur nunjukkeun hakekat damel sareng mesin virtual. Urang nulis kode handap:

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

Sketsa sareng program ieu tiasa diunduh di dieu. Katerangan lengkep ngeunaan fungsi pilarian dina loka. Kuring miharep komentar dina kode ieu cukup pikeun meunangkeun inti eta. Di dieu fungsina sys_Nanonyam() muterkeun peran hiji "sandi" pikeun mesin virtual, nu ngaluarkeun larangan dina fungsi virtual. Tanpa fungsi ieu, program bakal nutup saatos 3 detik operasi.

Kami pencét tombol "Cék" sareng teu kedah aya kasalahan.

Kumaha cara nyieun program pikeun Windows dina Arduino

Ayeuna anjeun kedah kéngingkeun file binér (firmware). Pilih menu "Sketsa >> Ékspor file binér (CTRL + ALT + S)".

Kumaha cara nyieun program pikeun Windows dina Arduino

Ieu bakal nyalin dua file HEX kana folder sketsa. Kami ngan ukur nyandak file tanpa awalan "with_bootloader.mega".

Aya sababaraha cara pikeun nangtukeun file HEX kana mesin virtual Nanonyam, sadayana dijelaskeun dina kaca ieu. Kuring nyarankeun ka nyieun gigireun file Nanonyam.exe file jalur, di mana pikeun ngadaptar jalur lengkep ka file HEX kami. Sanggeus éta anjeun bisa ngajalankeun Nanonyam.exe. Simkuring meunang jandela kalawan prasasti urang.

Kumaha cara nyieun program pikeun Windows dina Arduino

Nya kitu, Anjeun bisa nyieun program dina lingkungan sejen, kayaning AVR Studio atawa WinAVR.

Ieu dimana urang rengse kenalan urang jeung Nanonyam. Gagasan utama kedah jelas. Langkung conto aya dina website.. Upami aya cukup jalma anu daék ngagunakeun proyék ieu, kuring bakal ngadamel langkung seueur conto sareng teras "ngeusian" perpustakaan fungsi virtual. Gagasan beton pikeun pamekaran proyék sareng laporan kasalahan, bug sareng bug ditampi. Disarankeun ngarahkeun aranjeunna ka kontak, dituduhkeun dina loka. Sareng diskusi wilujeng sumping dina koméntar.

Hatur nuhun sadayana pikeun perhatian anjeun sarta programming alus!

sumber: www.habr.com

Tambahkeun komentar