Bii o ṣe le ṣẹda awọn eto fun Windows ni Arduino

Bii o ṣe le ṣẹda awọn eto fun Windows ni Arduino

Ni ọjọ kan Mo ni imọran irikuri lati dapọ 500 lesa ijuboluwole ni ibi kan. Mo ti lo kan pupo ti akoko ati ki o ṣe. O jẹ iyalẹnu ati asan, ṣugbọn Mo fẹran rẹ. Oṣu mẹfa sẹyin Mo wa pẹlu imọran irikuri miiran. Ni akoko yii kii ṣe iyalẹnu rara, ṣugbọn pupọ diẹ sii wulo. Mo tun lo akoko pupọ lori rẹ. Ati ninu nkan yii Mo ṣafihan ẹya beta ti imọran irikuri keji mi.

Mo pe iṣẹ naa Nanonyam (Nanonyam) ati paapaa wa pẹlu aami kan fun (o gba gbogbo iṣẹju 5 kan lati fa).

Bii o ṣe le ṣẹda awọn eto fun Windows ni Arduino

Fun awọn ti o ronu ni awọn ofin ti Arduino, a le sọ pe Nanonyam jẹ apata Arduino foju kan fun ṣiṣakoso Windows.

Ni awọn ọrọ miiran, Nanonyam jẹ ẹrọ foju kan ti o nlo famuwia fun microcontroller AVR (ATMEGA2560 ti a ṣeduro) bi bytecode. Ninu ẹrọ foju yii jẹ simulator ekuro AVR, ṣugbọn dipo awọn agbeegbe, eyiti o wa ni awọn adirẹsi SRAM 0x0060 si 0x01FF, wiwo pataki kan wa si awọn iṣẹ foju (pẹlu awọn iṣẹ API Windows). Ati pe nibi o ṣe pataki pupọ lati ni oye lẹsẹkẹsẹ: koodu fun Nanonyam ko yẹ ki o ni iwọle si iwọn iranti ti a ti sọ tẹlẹ, nitorinaa ki o ma ṣe pe lairotẹlẹ, fun apẹẹrẹ, iṣẹ ti piparẹ awọn faili tabi tito akoonu disk kan. Iwọn iranti SRAM ti o ku lati 0x0200 si 0xFFFF (eyi tobi ju ni microcontroller gidi) wa si olumulo fun idi kan. Mo yẹ ki o ṣe akiyesi lẹsẹkẹsẹ pe aabo pataki wa lodi si ifilọlẹ lairotẹlẹ ti famuwia ti microcontroller gidi (tabi famuwia lati faaji miiran): ṣaaju ṣiṣe awọn iṣẹ “lewu” ṣiṣẹ, o nilo lati pe iṣẹ foju ẹtan pataki kan. Awọn eroja aabo miiran tun wa.

Lati ṣẹda awọn eto fun Nanonyam, o nilo lati lo awọn ile-ikawe pataki ti o ṣe gbogbo awọn iṣẹ foju ti o wa lọwọlọwọ. Ṣe igbasilẹ ẹrọ foju Nanonyam ati awọn ile-ikawe rẹ le wa nibi... Ati nibi foju iṣẹ apejuwe iwe. Ati bẹẹni, aaye mi jẹ alakoko pupọ ati pe ko ṣe deede fun awọn ẹrọ alagbeka.

Nanonyam jẹ ọfẹ fun ile ati lilo iṣowo. Eto Nanonyam ti pese lori ipilẹ “bi o ti ri”. Ko si koodu orisun ti a pese.

Ni akoko ti eto naa wa ni ipele idanwo. Nipa awọn iṣẹ foju 200 ti ni imuse ti o gba ọ laaye lati ṣẹda awọn eto ti o rọrun fun Windows.
O han ni, kii yoo ṣee ṣe lati ṣẹda ohunkohun eka ninu iru ẹrọ foju, nitori iranti 256 kB nikan wa fun koodu naa. Awọn data le wa ni ipamọ ni awọn faili lọtọ, ifipamọ fun apakan ayaworan jẹ imuse ni ita. Gbogbo awọn iṣẹ ti wa ni yepere ati fara fun 8-bit faaji.

Kini o le ṣe ni Nanonyam? Mo ti wá pẹlu orisirisi awọn isoro.

Awọn bulọọki eto idanwo

Mo nilo lẹẹkan lati ṣe agbekalẹ akojọ aṣayan eka kan fun ifihan ayaworan 128x64 pixel. Emi ko fẹ lati gbe famuwia nigbagbogbo sinu microcontroller gidi lati rii kini awọn piksẹli naa dabi. Eyi ni bii imọran ti Nanonyam ṣe bi. Nọmba ti o wa ni isalẹ jẹ aworan lati ifihan OLED gidi ti ọkan ninu awọn ohun kan ninu akojọ aṣayan kanna. Bayi Mo le ṣiṣẹ nipasẹ rẹ laisi ẹrọ gangan kan.

Bii o ṣe le ṣẹda awọn eto fun Windows ni Arduino

Nanonyam (ninu apẹrẹ ikẹhin rẹ) jẹ ohun elo ti o dara fun ṣiṣẹ awọn bulọọki eto fun awọn oluṣakoso micro, nitori o ni awọn iṣẹ ṣiṣe fun ṣiṣẹ pẹlu awọn aworan (o le ṣe afiwe awọn ifihan ati awọn itọkasi), pẹlu awọn faili (o le ṣe awọn akọọlẹ, ka data idanwo), pẹlu keyboard (o le ka to awọn bọtini 10 ni nigbakannaa), pẹlu awọn ebute oko COM (ohun kan wa nibi).

Ṣiṣẹda Awọn eto Yara

Fun apẹẹrẹ, o nilo lati ṣe ilana awọn faili ọrọ 100500 ni kiakia. Olukuluku nilo lati ṣii, yipada diẹ ni ibamu si diẹ ninu awọn algorithm ti o rọrun, ti o fipamọ ati pipade. Ti o ba jẹ olukọ Python, lẹhinna ku oriire, o ni ohun gbogbo. Ṣugbọn ti o ba jẹ eniyan Arduino inveterate (ati pe ọpọlọpọ wọn wa), lẹhinna Nanonyam yoo ran ọ lọwọ lati yanju iṣoro yii. Eyi ni deede ibi-afẹde keji mi ni Nanonyam: lati ṣafikun ọpọlọpọ awọn iṣẹ ti o wulo gẹgẹbi sisẹ ọrọ, ṣiṣẹda awọn sikirinisoti tabi simulating keystrokes ninu eto (gbogbo eyiti, nipasẹ ọna, ti wa tẹlẹ), ati ọpọlọpọ awọn iṣẹ miiran fun ṣiṣe ṣiṣe deede. awọn iṣẹ-ṣiṣe.

Ohun elo idanwo nipasẹ ibudo COM

Nanonyam le ṣe bi ebute kan ti o ṣiṣẹ ni ibamu si algorithm rẹ. O le fa akojọ aṣayan kekere kan lati ṣakoso ẹrọ ati ṣafihan data ti o gba lati ibudo. O le fipamọ ati ka data lati awọn faili fun itupalẹ. Ọpa ti o rọrun fun n ṣatunṣe aṣiṣe ati isọdiwọn ohun elo, bi daradara fun ṣiṣẹda awọn panẹli iṣakoso ohun elo foju rọrun. Ise agbese yii le wulo pupọ fun awọn ọmọ ile-iwe ati awọn onimo ijinlẹ ọdọ.

Ikẹkọ siseto

Sibẹsibẹ, gẹgẹbi pẹlu gbogbo iṣẹ Arduino, iwulo akọkọ ti Nanonyam wa ni ayedero ti awọn iṣẹ rẹ, wiwo ati bootloader. Nitorinaa, iṣẹ akanṣe yii yẹ ki o jẹ iwulo si awọn olupilẹṣẹ tuntun ati awọn ti o ni itẹlọrun pẹlu ipele Arduino. Nipa ọna, Emi funrarami ko tun kọ ẹkọ Arduino ni awọn alaye, nitori Mo nigbagbogbo lo WinAVR tabi AVR Studio, ati bẹrẹ pẹlu apejọ. Nitorinaa, eto apẹẹrẹ ni isalẹ yoo jẹ aṣiṣe diẹ, ṣugbọn o ṣiṣẹ pupọ.

Kaabo, Habr!

O to akoko lati ni ibatan pẹlu diẹ ninu awọn ẹya Nanonyam ati kọ eto ti o rọrun. A yoo kọ ni Arduino, ṣugbọn kii ṣe ni ọna ibile, ṣugbọn ni ọna ti mo le ni bayi (Mo ti sọ tẹlẹ pe emi ko ti loye agbegbe yii daradara). Ni akọkọ, ṣẹda aworan afọwọya tuntun ki o yan igbimọ Mega2560.

Bii o ṣe le ṣẹda awọn eto fun Windows ni Arduino

Ṣafipamọ aworan afọwọya si faili kan ki o daakọ rẹ lẹgbẹẹ rẹ Nanonyam ìkàwé. Yoo jẹ deede lati ni awọn akọle ile-ikawe, ṣugbọn Emi ko mọ bi a ṣe le ṣajọ awọn faili kọọkan ni Arduino, nitorinaa ni bayi a yoo kan pẹlu awọn ile-ikawe taara (gbogbo ni ẹẹkan):

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

Yoo dara julọ lati ṣe module pataki kan “Nanonyam for Arduino”, eyiti o le fi sii taara lati Arduino. Ni kete ti Mo ro eyi, Emi yoo ṣe, ṣugbọn fun bayi Mo kan n ṣafihan pataki ti ṣiṣẹ pẹlu ẹrọ foju kan. A kọ koodu atẹle:

//Сразу после запуска рисуем текст в окне
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);//Задержка и разгрузка процессора
}

Sketch pẹlu eto yii le ti wa ni gbaa lati ayelujara nibi. Apejuwe alaye ti awọn iṣẹ wa lori aaye ayelujara. Mo nireti pe awọn asọye ninu koodu yii to lati gba aaye naa kọja. Eyi ni iṣẹ naa sys_Nanonyam() ṣe ipa ti “ọrọ igbaniwọle” fun ẹrọ foju, eyiti o yọ awọn ihamọ kuro lori awọn iṣẹ foju. Laisi iṣẹ yii, eto naa yoo pa lẹhin awọn aaya 3 ti iṣẹ.

Tẹ bọtini “Ṣayẹwo” ati pe ko yẹ ki o jẹ awọn aṣiṣe.

Bii o ṣe le ṣẹda awọn eto fun Windows ni Arduino

Bayi o nilo lati gba faili alakomeji (famuwia). Yan akojọ aṣayan"Sketch>>Faili alakomeji okeere (CTRL+ALT+S)".

Bii o ṣe le ṣẹda awọn eto fun Windows ni Arduino

Ni idi eyi, awọn faili HEX meji yoo daakọ si folda pẹlu apẹrẹ. A mu faili nikan laisi “with_bootloader.mega” ìpele.

Awọn ọna pupọ lo wa lati tọka faili HEX kan si ẹrọ foju Nanonyam, gbogbo wọn ni a ṣe apejuwe lori oju -iwe yii. Mo daba ṣiṣẹda lẹgbẹẹ faili naa Nanonyam.exe faili Nanonyam.ona, ninu eyiti o kọ ọna kikun si faili HEX wa. Lẹhin eyi o le ṣiṣe Nanonyam.exe. A gba ferese kan pẹlu akọle wa.

Bii o ṣe le ṣẹda awọn eto fun Windows ni Arduino

Bakanna, o le ṣẹda awọn eto ni awọn agbegbe miiran, fun apẹẹrẹ, ni AVR Studio tabi WinAVR.

Eyi ni ibiti a yoo pari ifihan wa si Nanonyam. Ero akọkọ yẹ ki o jẹ kedere. Awọn apẹẹrẹ diẹ sii wa lori oju opo wẹẹbu. Ti awọn eniyan ba to lati lo iṣẹ yii, Emi yoo ṣe awọn apẹẹrẹ diẹ sii ati tẹsiwaju lati “gbejade” awọn ile-ikawe iṣẹ foju. Awọn imọran pato fun idagbasoke iṣẹ akanṣe ati awọn ijabọ lori awọn aiṣedeede, awọn idun ati awọn aṣiṣe ni a gba. O ni imọran lati darí wọn si awọn olubasọrọ, itọkasi lori aaye ayelujara. Ati ijiroro jẹ itẹwọgba ninu awọn asọye.

O ṣeun fun gbogbo akiyesi rẹ ati siseto idunnu!

orisun: www.habr.com

Fi ọrọìwòye kun