Conas cláir a chruthú le haghaidh Windows i Arduino

Conas cláir a chruthú le haghaidh Windows i Arduino

Lá amháin bhí an smaoineamh craiceáilte agam a thabhairt 500 pointeoir léasair in aon áit amháin. Chaith mé go leor ama agus rinne mé é. Iompaigh sé amach iontach agus useless, ach thaitin liom é. Sé mhí ó shin bhí smaoineamh craiceáilte eile agam. An uair seo, ní iontach ar chor ar bith, ach i bhfad níos úsáidí. Chaith mé go leor ama air freisin. Agus san Airteagal seo, cuirim leagan béite de mo dhara smaoineamh dÚsachtach i láthair.

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).

Conas cláir a chruthú le haghaidh Windows i Arduino

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ó Is féidir leat ansin. Ach an Leathanach cur síos ar fheidhm fhíorúil. Agus tá, tá mo shuíomh an-primitive agus nach bhfuil in oiriúint do gléasanna soghluaiste.

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.

Conas cláir a chruthú le haghaidh Windows i Arduino

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.

Conas cláir a chruthú le haghaidh Windows i Arduino

Sábháil an sceitse i gcomhad agus cóipeáil an chéad cheann eile Leabharlann Nanonyam. Bheadh ​​sé ceart ceanntásca na leabharlann a chur san áireamh, ach níl a fhios agam conas tiomsú comhaid aonair a scríobh in Arduino, mar sin faoi láthair ní áireoimid ach na leabharlanna go díreach (agus go léir ag an am céanna):

#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 is féidir a íoslódáil anseo. Cur síos mionsonraithe ar fheidhmeanna cuardaigh ar an suíomh. Tá súil agam gur leor na tuairimí sa chód seo chun an buneolas a fháil. Seo feidhm sys_Nanonyam() imríonn an ról atá ag "focal faire" le haghaidh an meaisín fíorúil, a deireadh a chur le srianta ar fheidhmeanna fíorúla. Gan an fheidhm seo, dúnfaidh an clár tar éis 3 soicind oibríochta.

Brúigh muid an cnaipe "Seiceáil" agus níor cheart go mbeadh aon earráidí ann.

Conas cláir a chruthú le haghaidh Windows i Arduino

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)".

Conas cláir a chruthú le haghaidh Windows i Arduino

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 ar an leathanach seo. Molaim a chruthú in aice leis an gcomhad Nanonyam.exe файл cosán, inar féidir an cosán iomlán chuig ár gcomhad HEX a chlárú. Ina dhiaidh sin is féidir leat a rith Nanonyam.exe. Faighimid fuinneog lenár n-inscríbhinn.

Conas cláir a chruthú le haghaidh Windows i Arduino

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. Tá níos mó samplaí ar an suíomh Gréasáin.. Má tá go leor daoine sásta an tionscadal seo a úsáid, ansin déanfaidh mé níos mó samplaí agus leanfaidh mé ag "líonadh" na leabharlanna feidhm fhíorúla. Glactar le smaointe nithiúla maidir le forbairt an tionscadail agus le tuairiscí ar mhífheidhmeanna, ar fhabhtanna agus ar fhabhtanna. Tá sé inmholta iad a threorú chuig teagmhálaithe, léirithe ar an suíomh. Agus tá fáilte roimh phlé sna tuairimí.

Go raibh maith agaibh go léir as bhur n-aird agus cláir mhaith!

Foinse: will.com

Add a comment