Lá amháin bhí an smaoineamh craiceáilte agam a thabhairt
Chuir mé glaoch ar an tionscadal Nanonyam (Nanonyam) agus fiú tháinig suas le lógó dó (tharraing mé ar feadh 5 nóiméad).
Dóibh siúd a cheapann i dtéarmaí Arduino, is féidir linn a rá gur sciath fíorúil Arduino é Nanonyam chun Windows a rialú.
I bhfocail eile, is meaisín fíorúil é Nanonyam a úsáideann an firmware don microcontroller AVR (moltar ATMEGA2560) mar an bytecode. Taobh istigh den mheaisín fíorúil seo tá croí-insamhlóir AVR, ach in ionad feistí forimeallacha, atá suite ag seoltaí SRAM ó 0x0060 go 0x01FF, tá comhéadan speisialta ann d'fheidhmeanna fíorúla (lena n-áirítear feidhmeanna Windows API). Agus anseo tá sé an-tábhachtach tuiscint a fháil ar an bpointe boise: níor cheart go mbeadh aon rochtain ag an gcód do Nanonyam ar an raon cuimhne sonraithe, ionas nach gcuirfí glaoch ar thaisme, mar shampla, an fheidhm a bhaineann le comhaid a scriosadh nó diosca a fhormáidiú. Tá an chuid eile den raon cuimhne SRAM ó 0x0200 go 0xFFFF (tá sé seo níos mó ná i bhfíor-mhicro-rialtóir) ar fáil don úsáideoir chun aon chríche. Tugaim faoi deara ar an bpointe boise go bhfuil cosaint speisialta ann i gcoinne lainseáil thimpiste ar fhirmware fíor-mhicririaltóra (nó firmware ó ailtireacht eile): sula ngníomhachtaítear feidhmeanna "contúirteach", ní mór duit feidhm fhíorúil tricky speisialta a ghlaoch. Tá roinnt gnéithe slándála eile ann freisin.
Chun cláir a chruthú do Nanonyam, ní mór duit leabharlanna speisialta a úsáid a chuireann na feidhmeanna fíorúla go léir atá ar fáil faoi láthair i bhfeidhm. Íoslódáil an meaisín fíorúil Nanonyam agus leabharlanna dó
Tá Nanonyam saor in aisce le haghaidh úsáide baile agus tráchtála. Cuirtear clár Nanonyam ar fáil ar bhonn "mar atá". Ní chuirtear an cód foinse ar fáil.
Tá an clár á thástáil faoi láthair. Curtha i bhfeidhm thart ar 200 feidhm fhíorúil a ligeann duit cláir shimplí a chruthú do Windows.
Ar ndóigh, ní oibreoidh rud éigin casta a chruthú i meaisín fíorúil den sórt sin, ós rud é nach bhfuil an chuimhne don chód ach 256 kB. Is féidir sonraí a stóráil i gcomhaid ar leith, cuirtear an maolán don chuid grafach i bhfeidhm go seachtrach. Déantar na feidhmeanna go léir a shimpliú agus a oiriúnú don ailtireacht 8-giotán.
Cad is féidir leat a dhéanamh i Nanonyam? Tháinig mé suas le cúpla fadhbanna.
Forbairt bloic clár
Bhí orm roghchlár casta a dhearadh uair amháin le haghaidh taispeáint ghrafach 128x64 ponc. I ndáiríre ní raibh mé ag iarraidh a luchtú i gcónaí ar an firmware isteach i microcontroller fíor a fheiceáil conas an pixel cuma. Agus is mar sin a rugadh an smaoineamh ar Nanonyam. Taispeánann an figiúr thíos íomhá ó thaispeántas fíor-OLED de cheann de na míreanna ar an roghchlár céanna. Anois is féidir liom oibriú tríd gan gléas fíor.
Is uirlis mhaith é Nanonyam (ina smaoineamh deiridh) chun bloic chláir a oibriú amach le haghaidh microcontrollers, toisc go bhfuil feidhmeanna ann le bheith ag obair le grafaicí (is féidir leat taispeántais agus táscairí a insamhail), le comhaid (is féidir leat logaí a dhéanamh, sonraí tástála a léamh), le méarchlár (is féidir leat suas le 10 cnaipí a léamh ag an am céanna), le calafoirt COM (seo mír ar leith).
Cláir Thapa a Chruthú
Mar shampla, ní mór duit 100500 comhad téacs a phróiseáil go tapa. Is gá gach ceann a oscailt, a mhodhnú beagán de réir roinnt algartam simplí, a shábháil agus a dhúnadh. Má tá tú ina mháistir Python, ansin déanaim comhghairdeas leat, tá gach rud agat. Ach más arduino cruaite tú (agus tá go leor acu), ansin cabhróidh Nanonyam leat an fhadhb seo a réiteach. Is é seo an dara sprioc atá agam i Nanonyam: go leor feidhmeanna úsáideacha a chur leis, mar shampla próiseáil téacs, screenshots a ghlacadh nó eochairbhuillí a insamhlú sa chóras (atá go léir, dála an scéil, ann cheana féin), chomh maith le go leor feidhmeanna eile chun gnáththascanna a réiteach. .
Crua-earraí a thástáil trí phort COM
Is féidir le Nanonyam feidhmiú mar chríochfort a oibríonn de réir do algartam. Is féidir leat roghchlár beag a tharraingt chun an gléas a rialú agus na sonraí a fuarthas ón gcalafort a thaispeáint. Is féidir leat sonraí ó chomhaid a shábháil agus a léamh le haghaidh anailíse. Uirlis áisiúil le haghaidh dífhabhtaithe simplí agus calabrú crua-earraí, chomh maith le painéil rialaithe ionstraimí fíorúla simplí a chruthú. Do mhic léinn agus d'eolaithe óga, is féidir leis an tionscadal seo a bheith an-úsáideach.
Oiliúint ríomhchlárú
Mar atá le tionscadal iomlán Arduino, áfach, luíonn príomhúsáidí Nanonyam le simpliú feidhmeanna, comhéadan agus lódóir tosaithe. Dá bhrí sin, ba cheart go mbeadh an tionscadal seo suimiúil do ríomhchláraitheoirí novice agus dóibh siúd atá sásta leis an leibhéal arduino. Dála an scéil, níl mé féin fós tar éis staidéar mion a dhéanamh ar arduino, mar d'úsáid mé WinAVR nó AVR Studio i gcónaí, ach thosaigh mé le cóimeálaí. Mar sin, beidh an clár samplach thíos beagán mícheart, ach go leor ag obair.
Dia duit Habr!
Tá sé in am dul i dtaithí ar chuid de ghnéithe Nanonyam agus clár simplí a scríobh. Scríobhfaimid in Arduino, ach ní ar an ngnáthbhealach, ach ar an mbealach is féidir liom anois (a dúirt mé cheana féin nach bhfuil an timpeallacht seo cruthaithe agam go han-mhaith fós). Ar dtús, cruthaigh sceitse nua agus roghnaigh an bord Mega2560.
Sábháil an sceitse i gcomhad agus cóipeáil an chéad cheann eile
#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"
Bheadh sé níos ceart fós modúl speisialta “Nanonyam for Arduino” a dhéanamh, ar féidir é a shuiteáil go díreach ó Arduino. Chomh luath agus a figiúr mé amach é, beidh mé é a dhéanamh, ach faoi láthair tá mé ag taispeáint ach an croílár a bheith ag obair le meaisín fíorúil. Scríobhaimid an cód seo a leanas:
//Сразу после запуска рисуем текст в окне
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);//Задержка и разгрузка процессора
}
Sceitseáil leis an gclár seo
Brúigh muid an cnaipe "Seiceáil" agus níor cheart go mbeadh aon earráidí ann.
Anois ní mór duit a fháil comhad dénártha (firmware). Roghnaigh an roghchlár"Sceitseáil >> Easpórtáil comhad dénártha (CTRL+ALT+S)".
Déanfaidh sé seo dhá chomhad HEX a chóipeáil chuig an bhfillteán sceitse. Ní ghlacaimid ach an comhad gan an réimír "with_bootloader.mega".
Tá roinnt bealaí ann chun comhad HEX a shonrú chuig meaisín fíorúil Nanonyam, déantar cur síos orthu ar fad
Mar an gcéanna, is féidir leat cláir a chruthú i dtimpeallachtaí eile, mar shampla AVR Studio nó WinAVR.
Seo an áit a gcríochnaíonn muid ár n-aithne ar Nanonyam. Ba chóir go mbeadh an príomh-smaoineamh soiléir.
Go raibh maith agaibh go léir as bhur n-aird agus cláir mhaith!
Foinse: will.com