Kuinka luoda ohjelmia Windowsille Arduinossa

Kuinka luoda ohjelmia Windowsille Arduinossa

Eräänä päivänä minulla oli hullu idea tuoda mukanani 500 laserosoitinta yhdessä paikassa. Vietin paljon aikaa ja tein sen. Siitä tuli upea ja hyödytön, mutta pidin siitä. Kuusi kuukautta sitten minulla oli toinen hullu idea. Tällä kertaa ei ollenkaan näyttävä, mutta paljon hyödyllisempi. Käytin siihen myös paljon aikaa. Ja tässä artikkelissa esitän beta-version toisesta hullusta ideastani.

Nimesin projektin Nanonyam (Nanonyam) ja jopa keksin sille logon (piirsin 5 minuuttia).

Kuinka luoda ohjelmia Windowsille Arduinossa

Niille, jotka ajattelevat Arduinoa, voimme sanoa, että Nanonyam on virtuaalinen Arduino-kilpi Windowsin ohjaamiseen.

Toisin sanoen Nanonyam on virtuaalikone, joka käyttää AVR-mikro-ohjaimen laiteohjelmistoa (suositus on ATMEGA2560) tavukoodina. Tämän virtuaalikoneen sisällä on AVR-ydinsimulaattori, mutta oheislaitteiden, jotka sijaitsevat SRAM-osoitteissa 0x0060 - 0x01FF, sijasta on erityinen käyttöliittymä virtuaalitoimintoihin (mukaan lukien Windows API -toiminnot). Ja tässä on erittäin tärkeää ymmärtää heti: Nanonyam-koodilla ei pitäisi olla pääsyä määritettyyn muistialueeseen, jotta se ei vahingossa kutsuisi esimerkiksi tiedostojen poistamista tai levyn alustamista. Loput SRAM-muistialueesta 0x0200 - 0xFFFF (tämä on enemmän kuin todellisessa mikro-ohjaimessa) on käyttäjän käytettävissä mihin tahansa tarkoitukseen. Huomaan heti, että todellisen mikro-ohjaimen laiteohjelmiston (tai laiteohjelmiston toisesta arkkitehtuurista) vahingossa tapahtuvaa käynnistystä vastaan ​​on erityinen suojaus: ennen "vaarallisten" toimintojen aktivoimista sinun on kutsuttava erityinen hankala virtuaalitoiminto. On myös joitain muita turvaominaisuuksia.

Nanonyam-ohjelmien luomiseksi sinun on käytettävä erityisiä kirjastoja, jotka toteuttavat kaikki tällä hetkellä saatavilla olevat virtuaalitoiminnot. Lataa Nanonyam-virtuaalikone ja sen kirjastot Sen jälkeen voit. Mutta virtuaalisen toiminnon kuvaussivu. Ja kyllä, sivustoni on hyvin primitiivinen eikä sitä ole mukautettu mobiililaitteille.

Nanonyam on ilmainen koti- ja kaupalliseen käyttöön. Nanonyam-ohjelma tarjotaan "sellaisenaan". Lähdekoodia ei anneta.

Ohjelma on tällä hetkellä testausvaiheessa. Toteutettu noin 200 virtuaalista toimintoa, joiden avulla voit luoda yksinkertaisia ​​ohjelmia Windowsille.
Ilmeisesti monimutkaisen luominen tällaisessa virtuaalikoneessa ei toimi, koska koodin muisti on vain 256 kB. Tiedot voidaan tallentaa erillisiin tiedostoihin, graafisen osan puskuri toteutetaan ulkoisesti. Kaikki toiminnot on yksinkertaistettu ja mukautettu 8-bittiseen arkkitehtuuriin.

Mitä voit tehdä Nanonyamissa? Keksin muutaman ongelman.

Ohjelmalohkojen kehittäminen

Minun piti kerran suunnitella monimutkainen valikko 128x64 pisteen graafiselle näytölle. En todellakaan halunnut jatkuvasti ladata laiteohjelmistoa oikeaan mikro-ohjaimeen nähdäkseni, miltä pikselit näyttävät. Ja niin syntyi idea Nanonyamista. Alla olevassa kuvassa on kuva todellisesta OLED-näytöstä yhdestä saman valikon kohdasta. Nyt voin työskennellä sen läpi ilman oikeaa laitetta.

Kuinka luoda ohjelmia Windowsille Arduinossa

Nanonyam (lopullisessa ideassaan) on hyvä työkalu mikro-ohjaimien ohjelmalohkojen työstämiseen, sillä siellä on toimintoja grafiikan (voit simuloida näyttöjä ja indikaattoreita), tiedostojen (voit tehdä lokeja, lukea testitietoja), kanssa toimintoja. näppäimistö (voit lukea jopa 10 painiketta samanaikaisesti), jossa on COM-portit (tässä on erillinen kohde).

Pikaohjelmien luominen

Sinun on esimerkiksi käsiteltävä nopeasti 100500 XNUMX tekstitiedostoa. Jokainen on avattava, muutettava hieman yksinkertaisen algoritmin mukaan, tallennettava ja suljettava. Jos olet Python-mestari, onnittelen sinua, sinulla on kaikki. Mutta jos olet karkaistu arduino (ja niitä on monia), Nanonyam auttaa sinua ratkaisemaan tämän ongelman. Tämä on toinen tavoitteeni Nanonyamissa: lisätä monia hyödyllisiä toimintoja, kuten tekstinkäsittelyä, kuvakaappausten ottamista tai näppäinpainallusten simulointia järjestelmään (jotka kaikki ovat muuten jo olemassa), sekä monia muita toimintoja rutiinitehtävien ratkaisemiseen. .

Laitteiston testaus COM-portin kautta

Nanonyam voi toimia päätelaitteena, joka toimii algoritmisi mukaan. Voit piirtää pienen valikon ohjataksesi laitetta ja näyttääksesi portista saadut tiedot. Voit tallentaa ja lukea tietoja tiedostoista analysointia varten. Kätevä työkalu yksinkertaiseen virheenkorjaukseen ja laitteiston kalibrointiin sekä yksinkertaisten virtuaalisten instrumenttiohjauspaneelien luomiseen. Opiskelijoille ja nuorille tutkijoille tämä projekti voi olla erittäin hyödyllinen.

Ohjelmointikoulutus

Kuitenkin, kuten koko Arduino-projektissa, Nanonyamin tärkein hyöty on toimintojen, käyttöliittymän ja käynnistyslataimen yksinkertaistaminen. Siksi tämän projektin pitäisi kiinnostaa aloittelevia ohjelmoijia ja niitä, jotka ovat tyytyväisiä arduinon tasoon. Itse en muuten ole vieläkään opiskellut arduinoa yksityiskohtaisesti, koska käytin aina WinAVR:tä tai AVR Studiota, mutta aloitin assemblerilla. Siksi alla oleva esimerkkiohjelma on hieman väärä, mutta melko toimiva.

Hei Habr!

On aika tutustua joihinkin Nanonyamin ominaisuuksiin ja kirjoittaa yksinkertainen ohjelma. Kirjoitamme Arduinolla, mutta emme tavalliseen tapaan, vaan niin kuin nyt osaan (sanoin jo, että en ole vielä keksinyt tätä ympäristöä kovin hyvin). Luo ensin uusi luonnos ja valitse Mega2560-kortti.

Kuinka luoda ohjelmia Windowsille Arduinossa

Tallenna luonnos tiedostoon ja kopioi seuraavaksi Nanonyam kirjasto. Olisi oikein sisällyttää kirjastojen otsikot, mutta en osaa kirjoittaa yksittäisten tiedostojen kokoelmaa Arduinoon, joten sisällytämme nyt vain kirjastot suoraan (ja kaikki kerralla):

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

Vielä oikeampaa olisi tehdä erityinen moduuli "Nanonyam for Arduino", joka voidaan asentaa suoraan Arduinosta. Heti kun saan sen selville, teen sen, mutta toistaiseksi näytän vain virtuaalikoneen kanssa työskentelyn olemuksen. Kirjoitamme seuraavan koodin:

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

Piirrä tällä ohjelmalla voi ladata täältä. Yksityiskohtainen kuvaus toiminnoista etsi sivustolta. Toivon, että tämän koodin kommentit riittävät ymmärtämään sen ytimeen. Tässä toiminto sys_Nanonyam() toimii virtuaalikoneen "salasanana", joka poistaa virtuaalisten toimintojen rajoitukset. Ilman tätä toimintoa ohjelma sulkeutuu 3 sekunnin käytön jälkeen.

Painamme "Tarkista" -painiketta, eikä virheitä pitäisi olla.

Kuinka luoda ohjelmia Windowsille Arduinossa

Nyt sinun on hankittava binääritiedosto (laiteohjelmisto). Valitse valikko "Luonnos>>Vie binaaritiedosto (CTRL+ALT+S)".

Kuinka luoda ohjelmia Windowsille Arduinossa

Tämä kopioi kaksi HEX-tiedostoa luonnoskansioon. Otamme vain tiedoston ilman etuliitettä "with_bootloader.mega".

On olemassa useita tapoja määrittää HEX-tiedosto Nanonyam-virtuaalikoneelle, ja ne kaikki kuvataan tällä sivulla. Suosittelen luomaan tiedoston viereen Nanonyam.exe файл polku, johon rekisteröidään koko polku HEX-tiedostoomme. Sen jälkeen voit juosta Nanonyam.exe. Saamme ikkunan, jossa on tekstimme.

Kuinka luoda ohjelmia Windowsille Arduinossa

Samoin voit luoda ohjelmia muissa ympäristöissä, kuten AVR Studiossa tai WinAVR:ssä.

Tähän päätämme tutustumisemme Nanonyamin kanssa. Pääidean tulee olla selvä. Lisää esimerkkejä löytyy nettisivuilta.. Jos tähän projektiin löytyy tarpeeksi halukkaita, teen lisää esimerkkejä ja jatkan virtuaalisten funktiokirjastojen "täyttämistä". Konkreettisia ideoita projektin kehittämiseen sekä raportteja toimintahäiriöistä, bugeista ja bugeista otetaan vastaan. On suositeltavaa ohjata heidät yhteyshenkilöille, ilmoitettu sivustolla. Ja keskustelu on tervetullutta kommenteissa.

Kiitos kaikille huomiosta ja hyvästä ohjelmoinnista!

Lähde: will.com

Lisää kommentti