Wata rana na yi tunanin hauka zan kawo
Na kira aikin Nanonyam (Nanonyam) har ma da tambari na fito da shi (na zana na mintuna 5).
Ga waɗanda suke tunani dangane da Arduino, za mu iya cewa Nanonyam garkuwa ce ta Arduino don sarrafa Windows.
A wasu kalmomi, Nanonyam inji ne mai kama-da-wane wanda ke amfani da firmware don microcontroller AVR (Ana bada shawarar ATMEGA2560) azaman bytecode. A cikin wannan injin kama-da-wane akwai na'urar kwaikwayo ta AVR core, amma a maimakon na'urorin haɗi, waɗanda ke a adiresoshin SRAM daga 0x0060 zuwa 0x01FF, akwai keɓancewar keɓancewa ta musamman zuwa ayyukan kama-da-wane (ciki har da ayyukan API na Windows). Kuma a nan yana da matukar muhimmanci a fahimta nan da nan: lambar don Nanonyam bai kamata ya sami damar zuwa kewayon ƙwaƙwalwar ajiya da aka ƙayyade ba, don kada a kira shi da gangan, misali, aikin share fayiloli ko tsara faifai. Sauran kewayon ƙwaƙwalwar SRAM daga 0x0200 zuwa 0xFFFF (wannan ya fi na ainihin microcontroller) yana samuwa ga mai amfani don kowane dalili. Na lura nan da nan cewa akwai kariya ta musamman daga ƙaddamar da bazata na firmware na ainihin microcontroller (ko firmware daga wani gine-gine): kafin kunna ayyukan "haɗari", kuna buƙatar kiran aiki na musamman na yaudara. Akwai kuma wasu fasalulluka na tsaro.
Don ƙirƙirar shirye-shirye don Nanonyam, kuna buƙatar amfani da ɗakunan karatu na musamman waɗanda ke aiwatar da duk ayyukan kama-da-wane da ake da su a halin yanzu. Zazzage na'ura mai mahimmanci na Nanonyam da ɗakunan karatu don ita
Nanonyam kyauta ne don amfanin gida da kasuwanci. An samar da shirin Nanonyam akan "kamar yadda yake". Ba a bayar da lambar tushe ba.
A halin yanzu shirin yana cikin matakin gwaji. An aiwatar da kusan ayyuka na kama-da-wane 200 waɗanda ke ba ku damar ƙirƙirar shirye-shirye masu sauƙi don Windows.
Babu shakka, ƙirƙirar wani abu mai rikitarwa a cikin irin wannan na'ura mai mahimmanci ba zai yi aiki ba, tun da ƙwaƙwalwar ajiyar lambar kawai 256 kB. Ana iya adana bayanai a cikin fayiloli daban-daban, ana aiwatar da buffer don ɓangaren hoto a waje. An sauƙaƙe duk ayyuka kuma an daidaita su don gine-gine 8-bit.
Me za ku iya yi a Nanonyam? Na zo da 'yan matsaloli.
Haɓaka tubalan shirin
Na taɓa buƙatar ƙira wani hadadden menu don nunin hoto mai digo 128x64. Ba na so in ɗora nauyin firmware akai-akai a cikin ainihin microcontroller don ganin yadda pixels suke kama. Sabili da haka an haifi ra'ayin Nanonyam. Hoton da ke ƙasa yana nuna hoto daga ainihin nunin OLED na ɗayan abubuwan akan menu iri ɗaya. Yanzu zan iya yin aiki ta hanyarsa ba tare da na'urar gaske ba.
Nanonyam (a cikin ra'ayinsa na ƙarshe) kayan aiki ne mai kyau don yin aiki da shinge na shirye-shirye don masu sarrafa microcontrollers, saboda akwai ayyuka don aiki tare da zane-zane (zaku iya kwatanta nuni da alamomi), tare da fayiloli (zaku iya yin rajistan ayyukan, karanta bayanan gwaji), tare da keyboard (zaka iya karanta har zuwa maɓallai 10 a lokaci guda), tare da tashoshin COM (ga wani abu daban).
Ƙirƙirar Shirye-shiryen Sauƙaƙe
Misali, kuna buƙatar aiwatar da fayilolin rubutu 100500 cikin sauri. Kowane ɗayan yana buƙatar buɗewa, gyaggyarawa kaɗan bisa ga wasu sauƙi algorithm, adanawa da rufewa. Idan kai masanin Python ne, to ina taya ka murna, kana da komai. Amma idan kun kasance arduino mai tauri (kuma akwai da yawa daga cikinsu), to Nanonyam zai taimaka muku wajen magance wannan matsalar. Wannan shine burina na biyu a Nanonyam: don ƙara ayyuka masu amfani da yawa kamar sarrafa rubutu, ɗaukar hotuna ko simintin maɓalli a cikin tsarin (duk waɗanda, ta hanya, sun riga sun kasance), da sauran ayyuka da yawa don warware ayyukan yau da kullun. .
Gwajin kayan aikin ta hanyar tashar COM
Nanonyam na iya aiki azaman tashar tashar da ke aiki bisa ga algorithm ɗin ku. Kuna iya zana ƙaramin menu don sarrafa na'urar kuma nuna bayanan da aka karɓa daga tashar jiragen ruwa. Kuna iya ajiyewa da karanta bayanai daga fayiloli don bincike. Kayan aiki mai amfani don sauƙaƙe gyarawa da daidaita kayan aiki, da kuma ƙirƙirar bangarori masu sarrafa kayan aiki masu sauƙi. Ga dalibai da matasa masana kimiyya, wannan aikin zai iya zama da amfani sosai.
Horar da shirye-shirye
Koyaya, kamar yadda yake tare da duk aikin Arduino, babban fa'idar Nanonyam ya ta'allaka ne akan sauƙaƙe ayyuka, dubawa da bootloader. Saboda haka, wannan aikin ya kamata ya zama abin sha'awa ga novice shirye-shirye da waɗanda suka gamsu da matakin arduino. Af, ni da kaina har yanzu ban yi nazarin arduino dalla-dalla ba, saboda koyaushe ina amfani da WinAVR ko AVR Studio, amma na fara da mai tarawa. Sabili da haka, shirin misalin da ke ƙasa zai zama ɗan kuskure, amma yana aiki sosai.
Hello Habr!
Lokaci ya yi da za ku saba da wasu fasalulluka na Nanonyam kuma ku rubuta tsari mai sauƙi. Za mu rubuta a cikin Arduino, amma ba ta hanyar da aka saba ba, amma a cikin hanyar da zan iya yanzu (Na riga na ce ban gano wannan yanayin da kyau ba tukuna). Da farko, ƙirƙirar sabon zane kuma zaɓi allon Mega2560.
Ajiye zanen zuwa fayil kuma kwafi na gaba
#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"
Zai fi dacewa don yin ƙirar musamman "Nanonyam don Arduino", wanda za'a iya shigar dashi kai tsaye daga Arduino. Da zaran na gane, zan yi, amma a yanzu kawai ina nuna ma'anar aiki da na'ura mai mahimmanci. Muna rubuta code mai zuwa:
//Сразу после запуска рисуем текст в окне
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);//Задержка и разгрузка процессора
}
Zane da wannan shirin
Muna danna maɓallin "Duba" kuma kada a sami kurakurai.
Yanzu kuna buƙatar samun fayil ɗin binary (firmware). Zaɓi menu"Zane>>Fitar da fayil binary (CTRL+ALT+S)".
Wannan zai kwafi fayilolin HEX guda biyu zuwa babban fayil ɗin zane. Muna ɗaukar fayil ɗin kawai ba tare da prefix "with_bootloader.mega".
Akwai hanyoyi da yawa don tantance fayil ɗin HEX zuwa na'urar kama-da-wane ta Nanonyam, duk an kwatanta su
Hakazalika, zaku iya ƙirƙirar shirye-shirye a wasu wurare, kamar AVR Studio ko WinAVR.
Anan ne muka gama saninmu da Nanonyam. Babban ra'ayi ya kamata ya bayyana.
Na gode duka saboda kulawa da kyawawan shirye-shirye!
source: www.habr.com