Sawijining dina aku duwe ide gila kanggo nggawa
Aku nelpon project Nanonyam (Nanonyam) lan malah teka munggah karo logo kanggo (Aku tarik kanggo 5 menit).
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
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.
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.
Simpen sketsa menyang file lan salin sabanjure
#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
Kita menet tombol "Priksa" lan ora ana kesalahan.
Saiki sampeyan kudu njaluk file binar (firmware). Pilih menu"Sketsa >> Ekspor file biner (CTRL+ALT+S)".
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
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.
Matur nuwun kabeh kanggo manungsa waΓ© lan program apik!
Source: www.habr.com