Carane nggawe program kanggo Windows ing Arduino

Carane nggawe program kanggo Windows ing Arduino

Sawijining dina aku duwe ide gila kanggo nggawa 500 penunjuk laser ing sak panggonan. Aku ngginakaken kathah wektu lan nindakaken. Ternyata spektakuler lan ora ana gunane, nanging aku seneng. Enem sasi kepungkur aku duwe gagasan edan liyane. Wektu iki, ora spektakuler, nanging luwih migunani. Aku uga ngginakaken akèh wektu ing. Lan ing artikel iki, aku nampilake versi beta saka ide gila sing kapindho.

Aku nelpon project Nanonyam (Nanonyam) lan malah teka munggah karo logo kanggo (Aku tarik kanggo 5 menit).

Carane nggawe program kanggo Windows ing Arduino

Kanggo sing mikir babagan Arduino, kita bisa ngomong yen Nanonyam minangka tameng Arduino virtual kanggo ngontrol Windows.

Ing tembung liyane, Nanonyam minangka mesin virtual sing nggunakake perangkat kukuh kanggo mikrokontroler AVR (ATMEGA2560 dianjurake) minangka bytecode. Nang mesin virtual iki simulator inti AVR, nanging tinimbang piranti peripheral, kang dumunung ing alamat SRAM saka 0x0060 kanggo 0x01FF, ana antarmuka khusus kanggo fungsi virtual (kalebu fungsi API Windows). Lan ing kene iku penting banget kanggo ngerti langsung: kode kanggo Nanonyam ngirim ora duwe akses menyang sawetara memori tartamtu, supaya ora sengaja nelpon, contone, fungsi mbusak file utawa format disk. Liyane saka sawetara memori SRAM saka 0x0200 kanggo 0xFFFF (iki luwih saka ing mikrokontroler nyata) kasedhiya kanggo pangguna kanggo maksud apa waΓ©. Aku langsung nyathet yen ana proteksi khusus marang peluncuran perangkat kukuh mikrokontroler nyata (utawa perangkat kukuh saka arsitektur liyane): sadurunge ngaktifake fungsi "mbebayani", sampeyan kudu nelpon fungsi virtual rumit khusus. Ana sawetara fitur keamanan liyane uga.

Kanggo nggawe program kanggo Nanonyam, sampeyan kudu nggunakake perpustakaan khusus sing ngetrapake kabeh fungsi virtual sing kasedhiya saiki. Download mesin virtual lan perpustakaan Nanonyam Sampeyan banjur bisa. Lan kene kaca deskripsi fungsi virtual. Lan ya, situsku primitif banget lan ora diadaptasi kanggo piranti seluler.

Nanonyam gratis kanggo panggunaan omah lan komersial. Program Nanonyam diwenehake kanthi basis "as is". Kode sumber ora kasedhiya.

Program kasebut saiki ana ing tahap tes. Dilaksanakake babagan 200 fungsi virtual sing ngidini sampeyan nggawe program sing gampang kanggo Windows.
Temenan, nggawe sing rumit ing mesin virtual kasebut ora bakal bisa, amarga memori kode mung 256 kB. Data bisa disimpen ing file sing kapisah, buffer kanggo bagean grafis dileksanakake sacara eksternal. Kabeh fungsi disederhanakake lan diadaptasi kanggo arsitektur 8-bit.

Apa sing bisa ditindakake ing Nanonyam? Aku teka munggah karo sawetara masalah.

Pengembangan blok program

Aku tau kudu ngrancang menu Komplek kanggo tampilan grafis 128x64 titik. Aku pancene ora pengin terus-terusan mbukak perangkat kukuh menyang mikrokontroler nyata kanggo ndeleng tampilan piksel. Dadi ide Nanoyam lair. Tokoh ing ngisor iki nuduhake gambar saka tampilan OLED nyata saka salah siji item ing menu padha. Saiki aku bisa nindakake tanpa piranti nyata.

Carane nggawe program kanggo Windows ing Arduino

Nanonyam (ing ide pungkasan) minangka alat sing apik kanggo nggarap blok program kanggo mikrokontroler, amarga ana fungsi kanggo nggarap grafis (sampeyan bisa simulasi tampilan lan indikator), kanthi file (sampeyan bisa nggawe log, maca data tes), kanthi keyboard (sampeyan bisa maca nganti 10 tombol ing wektu sing padha), karo bandar COM (punika item kapisah).

Nggawe Program Cepet

Contone, sampeyan kudu ngolah 100500 file teks kanthi cepet. Saben siji kudu dibukak, rada diowahi miturut sawetara algoritma sing prasaja, disimpen lan ditutup. Yen sampeyan master Python, banjur aku congratulate sampeyan, sampeyan duwe kabeh. Nanging yen sampeyan arduino hardened (lan ana akeh), banjur Nanonyam bakal mbantu ing mecahaken masalah iki. Iki minangka tujuan nomer loro ing Nanonyam: kanggo nambah akeh fungsi sing migunani kayata pangolahan teks, njupuk gambar utawa simulasi keystroke ing sistem (kabeh, kanthi cara, wis ana), uga akeh fungsi liyane kanggo ngrampungake tugas rutin. .

Nguji hardware liwat port COM

Nanonyam bisa tumindak minangka terminal sing bisa digunakake miturut algoritma sampeyan. Sampeyan bisa nggambar menu cilik kanggo ngontrol piranti lan nampilake data sing ditampa saka port. Sampeyan bisa nyimpen lan maca data saka file kanggo analisis. Alat praktis kanggo debugging lan kalibrasi hardware sing gampang, uga kanggo nggawe panel kontrol instrumen virtual sing prasaja. Kanggo mahasiswa lan ilmuwan enom, proyek iki bisa migunani banget.

Pelatihan pemrograman

Nanging, kaya kabeh proyek Arduino, kegunaan utama Nanonyam dumunung ing nyederhanakake fungsi, antarmuka lan bootloader. Mulane, proyek iki kudu dadi kapentingan kanggo programer anyar lan wong-wong sing wareg karo tingkat arduino. Miturut cara, aku dhewe durung sinau arduino kanthi rinci, amarga aku tansah nggunakake WinAVR utawa AVR Studio, nanging diwiwiti karo assembler. Mulane, program conto ing ngisor iki bakal rada salah, nanging bisa digunakake.

Hello Habr!

Iku wektu kanggo njaluk menowo karo sawetara fitur Nanonyam lan nulis program prasaja. Kita bakal nulis ing Arduino, nanging ora ing cara biasanipun, nanging ing cara aku bisa saiki (Aku wis ngandika sing aku durung figured metu lingkungan iki banget uga). Pisanan, nggawe sketsa anyar lan pilih papan Mega2560.

Carane nggawe program kanggo Windows ing Arduino

Simpen sketsa menyang file lan salin sabanjure Pustaka Nanonyam. Iku bakal bener kanggo nyakup header perpustakaan, nanging aku ora ngerti carane nulis kompilasi file individu ing Arduino, supaya saiki kita mung bakal kalebu perpustakaan langsung (lan kabeh bebarengan):

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

Iku bakal luwih bener kanggo nggawe modul khusus "Nanonyam kanggo Arduino", kang bisa diinstal langsung saka Arduino. Sanalika aku ngerti, aku bakal nindakake, nanging saiki aku mung nuduhake inti saka nggarap mesin virtual. Kita nulis kode ing ngisor iki:

//Π‘Ρ€Π°Π·Ρƒ послС запуска рисуСм тСкст Π² ΠΎΠΊΠ½Π΅
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 karo program iki bisa diundhuh ing kene. Katrangan rinci babagan fungsi nelusuri ing situs. Mugi komentar ing kode iki cukup kanggo njaluk inti saka iku. Kene fungsi sys_Nanonyam() muter peran "sandi" kanggo mesin virtual, kang mbusak Watesan ing fungsi virtual. Tanpa fungsi iki, program bakal ditutup sawise 3 detik operasi.

Kita menet tombol "Priksa" lan ora ana kesalahan.

Carane nggawe program kanggo Windows ing Arduino

Saiki sampeyan kudu njaluk file binar (firmware). Pilih menu"Sketsa >> Ekspor file biner (CTRL+ALT+S)".

Carane nggawe program kanggo Windows ing Arduino

Iki bakal nyalin rong file HEX menyang folder sketsa. Kita mung njupuk file tanpa awalan "with_bootloader.mega".

Ana sawetara cara kanggo nemtokake file HEX menyang mesin virtual Nanonyam, kabeh mau diterangake ing kaca iki. Aku suggest kanggo nggawe jejere file Nanonyam.exe ngajukake dalan, kanggo ndhaptar path lengkap menyang file HEX kita. Sawise sampeyan bisa mbukak Nanonyam.exe. We njaluk jendhela karo prasasti kita.

Carane nggawe program kanggo Windows ing Arduino

Kajaba iku, sampeyan bisa nggawe program ing lingkungan liyane, kayata AVR Studio utawa WinAVR.

Iki ngendi kita rampung kenalan karo Nanonyam. Ide pokok kudu cetha. Conto liyane ana ing situs web.. Yen ana cukup wong sing gelem nggunakake proyek iki, aku bakal nggawe conto liyane lan terus "ngisi" perpustakaan fungsi virtual. Gagasan konkrit kanggo pangembangan proyek lan laporan malfunctions, bug lan bug ditampa. Disaranake ngarahake menyang kontak, dituduhake ing situs. Lan diskusi olèh ing komentar.

Matur nuwun kabeh kanggo manungsa waΓ© lan program apik!

Source: www.habr.com

Add a comment