Mar a chruthaicheas tu prògraman airson Windows ann an Arduino

Mar a chruthaicheas tu prògraman airson Windows ann an Arduino

Aon latha bha am beachd seòlta agam a thoirt leam 500 comharra laser ann an aon àite. Chuir mi seachad tòrr ùine agus rinn mi e. Thionndaidh e a-mach iongantach agus gun fheum, ach chòrd e rium. O chionn sia mìosan bha beachd seòlta eile agam. An turas seo, chan eil e idir iongantach, ach mòran nas fheumail. Chuir mi seachad tòrr ùine air cuideachd. Agus san artaigil seo, bidh mi a’ taisbeanadh dreach beta den dàrna beachd seòlta agam.

Dh ’ainmich mi am pròiseact Nanonyam (Nanonyam) agus eadhon thàinig mi suas le suaicheantas air a shon (tharraing mi airson 5 mionaidean).

Mar a chruthaicheas tu prògraman airson Windows ann an Arduino

Dhaibhsan a tha a’ smaoineachadh a thaobh Arduino, faodaidh sinn a ràdh gu bheil Nanonyam na sgiath brìgheil Arduino airson smachd a chumail air Windows.

Ann am faclan eile, is e inneal brìgheil a th’ ann an Nanonyam a bhios a’ cleachdadh firmware airson an microcontroller AVR (tha ATMEGA2560 air a mholadh) mar am bytecode. Taobh a-staigh an inneal brìgheil seo tha prìomh simuladair AVR, ach an àite iomaill, a tha suidhichte aig seòlaidhean SRAM bho 0x0060 gu 0x01FF, tha eadar-aghaidh sònraichte ann airson gnìomhan brìgheil (a’ toirt a-steach gnìomhan Windows API). Agus an seo tha e glè chudromach tuigsinn anns a ’bhad: cha bu chòir gum biodh cothrom aig a’ chòd airson Nanonyam air an raon cuimhne ainmichte, gus nach cuir thu fios gu gun fhiosta, mar eisimpleir, gnìomh cuir às do fhaidhlichean no cruth diosc. Tha an còrr den raon cuimhne SRAM bho 0x0200 gu 0xFFFF (tha seo nas motha na ann am fìor microcontroller) ri fhaighinn don neach-cleachdaidh airson adhbhar sam bith. Tha mi a 'toirt fa-near anns a' bhad gu bheil dìon sònraichte ann an aghaidh a bhith a 'cur air bhog firmware fìor microcontroller (no firmware bho ailtireachd eile): mus cuir thu an gnìomh gnìomhan "cunnartach", feumaidh tu gnìomh brìgheil sònraichte duilich a ghairm. Tha cuid de fheartan tèarainteachd eile ann cuideachd.

Gus prògraman a chruthachadh airson Nanonyam, feumaidh tu leabharlannan sònraichte a chleachdadh a chuireas an gnìomh a h-uile gnìomh brìgheil a tha ri fhaighinn an-dràsta. Luchdaich sìos inneal brìgheil Nanonyam agus leabharlannan air a shon urrainn a bhith an seoS an Iar- Agus an seo duilleag tuairisgeul gnìomh brìgheil. Agus tha, tha an làrach agam gu math prìomhadail agus chan eil e air atharrachadh airson innealan gluasadach.

Tha Nanonyam an-asgaidh airson cleachdadh dachaigh agus malairteach. Tha prògram Nanonyam air a thoirt seachad air bunait “mar a tha”. Chan eil còd stòr air a thoirt seachad.

Tha am prògram aig ìre deuchainn an-dràsta. Cur an gnìomh timcheall air 200 gnìomh brìgheil a leigeas leat prògraman sìmplidh a chruthachadh airson Windows.
Gu dearbh, cha bhith cruthachadh rudeigin iom-fhillte ann an inneal brìgheil mar sin ag obair, leis gu bheil an cuimhne airson a ’chòd dìreach 256 kB. Faodar dàta a stòradh ann am faidhlichean fa leth, tha am bufair airson a ’phàirt grafaigeach air a chuir an gnìomh taobh a-muigh. Tha a h-uile gnìomh air a dhèanamh nas sìmplidhe agus air atharrachadh airson ailtireachd 8-bit.

Dè as urrainn dhut a dhèanamh ann an Nanonyam? Thàinig mi suas le beagan dhuilgheadasan.

Leasachadh blocaichean prògraman

Dh'fheumadh mi clàr iom-fhillte a dhealbhadh airson taisbeanadh grafaigeach dot 128x64. Cha robh mi dha-rìribh ag iarraidh am firmware a luchdachadh gu fìor microcontroller gus faicinn mar a tha na piogsail a’ coimhead. Agus mar sin rugadh beachd Nanonyam. Tha am figear gu h-ìosal a’ sealltainn ìomhaigh bho thaisbeanadh fìor OLED de aon de na nithean air an aon chlàr. A-nis is urrainn dhomh obrachadh troimhe às aonais inneal fìor.

Mar a chruthaicheas tu prògraman airson Windows ann an Arduino

Tha Nanonyam (na bheachd mu dheireadh) na inneal math airson blocaichean prògram obrachadh a-mach airson microcontrollers, leis gu bheil gnìomhan ann airson obrachadh le grafaigean (faodaidh tu atharrais air taisbeanaidhean agus comharran), le faidhlichean (faodaidh tu logaichean a dhèanamh, dàta deuchainn a leughadh), le meur-chlàr (faodaidh tu suas ri 10 putanan a leughadh aig an aon àm), le puirt COM (seo rud air leth).

A 'cruthachadh phrògraman luath

Mar eisimpleir, feumaidh tu 100500 faidhle teacsa a phròiseasadh gu sgiobalta. Feumaidh gach fear a bhith air fhosgladh, beagan atharrachadh a rèir cuid de algorithm sìmplidh, air a shàbhaladh agus air a dhùnadh. Ma tha thu nad mhaighstir Python, tha mi a’ cur meal-a-naidheachd ort, tha a h-uile dad agad. Ach ma tha thu nad arduino cruaidh (agus tha mòran dhiubh ann), cuidichidh Nanonyam thu gus an duilgheadas seo fhuasgladh. Is e seo an dàrna amas agam ann an Nanonyam: iomadh gnìomh feumail a chuir ris leithid giullachd teacsa, a bhith a’ gabhail seallaidhean-sgrìn no a’ dèanamh atharrais air iuchraichean san t-siostam (a tha uile, co-dhiù, ann mu thràth), a bharrachd air mòran ghnìomhan eile airson fuasgladh fhaighinn air gnìomhan àbhaisteach. .

A’ dèanamh deuchainn air bathar-cruaidh tro phort COM

Faodaidh Nanonyam a bhith na cheann-uidhe a bhios ag obair a rèir an algairim agad. Faodaidh tu clàr beag a tharraing gus smachd a chumail air an inneal agus an dàta a fhuaireadh bhon phort a thaisbeanadh. Faodaidh tu dàta bho fhaidhlichean a shàbhaladh agus a leughadh airson mion-sgrùdadh. Inneal feumail airson dì-bhugachadh sìmplidh agus calibration bathar-cruaidh, a bharrachd air a bhith a’ cruthachadh pannalan smachd ionnstramaidean brìgheil sìmplidh. Airson oileanaich agus luchd-saidheans òga, faodaidh am pròiseact seo a bhith glè fheumail.

Trèanadh prògramadh

Ach, mar a tha leis a’ phròiseact Arduino gu lèir, tha prìomh fheumalachdan Nanonyam na laighe ann an sìmpleachadh ghnìomhan, eadar-aghaidh agus bootloader. Mar sin, bu chòir don phròiseact seo a bhith inntinneach do luchd-prògramaidh ùr-nodha agus dhaibhsan a tha riaraichte leis an ìre de arduino. Co-dhiù, chan eil mi fhìn fhathast air sgrùdadh mionaideach a dhèanamh air arduino, oir bha mi an-còmhnaidh a’ cleachdadh WinAVR no AVR Studio, ach thòisich mi le assembler. Mar sin, bidh am prògram eisimpleir gu h-ìosal beagan ceàrr, ach gu math ag obair.

Halo Habr!

Tha an t-àm ann eòlas fhaighinn air cuid de fheartan Nanonyam agus prògram sìmplidh a sgrìobhadh. Sgrìobhaidh sinn ann an Arduino, ach chan ann san dòigh àbhaisteach, ach san dòigh as urrainn dhomh a-nis (thuirt mi mu thràth nach eil mi air an àrainneachd seo obrachadh a-mach glè mhath fhathast). An toiseach, cruthaich sgeidse ùr agus tagh am bòrd Mega2560.

Mar a chruthaicheas tu prògraman airson Windows ann an Arduino

Sàbhail an sgeidse gu faidhle agus dèan lethbhreac an ath rud Leabharlann nanonyam. Bhiodh e ceart cinn-cinn nan leabharlannan a thoirt a-steach, ach chan eil fios agam ciamar a sgrìobhas mi cruinneachadh de fhaidhlichean fa leth ann an Arduino, mar sin airson a-nis bidh sinn dìreach a’ toirt a-steach na leabharlannan gu dìreach (agus uile aig an aon àm):

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

Bhiodh e eadhon nas ceart modal sònraichte a dhèanamh “Nanonyam for Arduino”, a ghabhas a chuir a-steach gu dìreach bho Arduino. Cho luath ‘s a nì mi a-mach e, nì mi e, ach airson a-nis tha mi dìreach a’ sealltainn brìgh a bhith ag obair le inneal brìgheil. Bidh sinn a’ sgrìobhadh a’ chòd 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);//Задержка и разгрузка процессора
}

Dèan sgeidse leis a’ phrògram seo faodar a luchdachadh sìos an seo. Tuairisgeul mionaideach air gnìomhan lorg air an làrach. Tha mi an dòchas gu bheil na beachdan sa chòd seo gu leòr airson a’ bhrìgh fhaighinn. An seo gnìomh sys_Nanonyam() a’ cluich pàirt “facal-faire” airson an inneal brìgheil, a bheir air falbh cuingealachaidhean air gnìomhan brìgheil. Às aonais an gnìomh seo, dùinidh am prògram às deidh 3 diogan de dh’ obair.

Bidh sinn a 'putadh air a' phutan "Thoir sùil" agus cha bu chòir mearachdan sam bith a bhith ann.

Mar a chruthaicheas tu prògraman airson Windows ann an Arduino

A-nis feumaidh tu faidhle binary (firmware) fhaighinn. Tagh an clàr-taice "Sgeidse >> Às-phortaich faidhle dà-chànanach (CTRL+ALT+S)".

Mar a chruthaicheas tu prògraman airson Windows ann an Arduino

Nì seo lethbhreac de dhà fhaidhle HEX dhan phasgan sgeidse. Cha ghabh sinn ach am faidhle às aonais an ro-leasachan “with_bootloader.mega”.

Tha grunn dhòighean ann faidhle HEX a shònrachadh gu inneal mas-fhìor Nanonyam, tha iad uile air am mìneachadh air an duilleig seo. Tha mi a 'moladh a chruthachadh ri taobh an fhaidhle Nanonyam.exe faidhle slighe, airson an t-slighe slàn a chlàradh chun fhaidhle HEX againn. Às deidh sin faodaidh tu ruith Nanonyam.exe. Gheibh sinn uinneag leis an sgrìobhadh againn.

Mar a chruthaicheas tu prògraman airson Windows ann an Arduino

San aon dòigh, faodaidh tu prògraman a chruthachadh ann an àrainneachdan eile, leithid AVR Studio no WinAVR.

Seo far an cuir sinn crìoch air ar n-eòlas le Nanonyam. Bu chòir am prìomh bheachd a bhith soilleir. Tha barrachd eisimpleirean air an làrach-lìn.. Ma tha gu leòr dhaoine deònach am pròiseact seo a chleachdadh, nì mi barrachd eisimpleirean agus cumaidh mi a’ “lìonadh” na leabharlannan gnìomh brìgheil. Thathas a’ gabhail ri beachdan concrait airson leasachadh a’ phròiseict agus aithrisean mu mhearachdan, bhiteagan agus bhiteagan. Tha e ciallach an stiùireadh gu luchd-fios, air a chomharrachadh air an làrach. Agus tha fàilte air deasbad anns na beachdan.

Tapadh leibh uile airson ur n-aire agus deagh phrògramadh!

Source: www.habr.com

Cuir beachd ann