Wéi erstellt Programmer fir Windows an Arduino

Wéi erstellt Programmer fir Windows an Arduino

Enges Daags hat ech déi verréckt Iddi ze bréngen 500 Laser Pointer op enger Plaz. Ech hunn vill Zäit verbruecht an et gemaach. Et huet sech spektakulär an nëtzlos erausgestallt, awer ech hunn et gär. Virun sechs Méint hat ech eng aner verréckt Iddi. Dës Kéier guer net spektakulär, awer vill méi nëtzlech. Ech hunn och vill Zäit drop verbruecht. An an dësem Artikel presentéieren ech eng Beta Versioun vu menger zweeter verréckter Iddi.

Ech hunn de Projet Nanonyam (Nanonyam) genannt an hunn souguer e Logo dofir erausfonnt (ech hunn 5 Minutten gezeechent).

Wéi erstellt Programmer fir Windows an Arduino

Fir déi, déi am Sënn vun Arduino denken, kënne mir soen datt Nanonyam e virtuelle Arduino Schëld ass fir Windows ze kontrolléieren.

An anere Wierder, Nanonyam ass eng virtuell Maschinn déi d'Firmware fir den AVR Mikrokontroller benotzt (ATMEGA2560 ass recommandéiert) als Bytecode. An dëser virtueller Maschinn ass en AVR-Kärsimulator, awer amplaz vu Peripheriegeräter, déi op SRAM Adressen vun 0x0060 bis 0x01FF sinn, gëtt et eng speziell Interface fir virtuell Funktiounen (inklusiv Windows API Funktiounen). An hei ass et ganz wichteg direkt ze verstoen: de Code fir Nanonyam soll keen Zougang zum spezifizéierte Speicherberäich hunn, fir net zoufälleg ze ruffen, zum Beispill d'Funktioun fir Dateien ze läschen oder eng Disk ze formatéieren. De Rescht vum SRAM Memory Gamme vun 0x0200 bis 0xFFFF (dëst ass méi wéi an engem echte Mikrokontroller) ass fir de Benotzer fir all Zweck verfügbar. Ech bemierken direkt datt et e spezielle Schutz géint zoufälleg Start vun der Firmware vun engem richtege Mikrokontroller (oder Firmware vun enger anerer Architektur) gëtt: ier Dir "geféierlech" Funktiounen aktivéiert, musst Dir eng speziell komplizéiert virtuell Funktioun nennen. Et ginn och e puer aner Sécherheetsfeatures.

Fir Programmer fir Nanonyam ze kreéieren, musst Dir speziell Bibliothéike benotzen, déi all aktuell verfügbar virtuell Funktiounen ëmsetzen. Luet d'Nanonyam virtuell Maschinn a Bibliothéike fir et erof Dir kënnt duerno. Awer virtuell Funktioun Beschreiwung Säit. A jo, mäi Site ass ganz primitiv an net fir mobilen Apparater ugepasst.

Nanonyam ass gratis fir Heem a kommerziell Notzung. Den Nanonyam Programm gëtt op enger "wéi ass" Basis zur Verfügung gestallt. Quellcode gëtt net geliwwert.

De Programm ass momentan an der Testphase. Ongeféier 200 virtuell Funktiounen ëmgesat, déi Iech erlaben einfach Programmer fir Windows ze kreéieren.
Natierlech, eppes komplizéiert an esou enger virtueller Maschinn schafen wäert net schaffen, well d'Erënnerung fir de Code ass nëmmen 256 kB. Daten kënnen a getrennten Dateien gespäichert ginn, de Puffer fir de grafeschen Deel gëtt extern ëmgesat. All Funktiounen sinn vereinfacht an ugepasst fir 8-Bit Architektur.

Wat kënnt Dir zu Nanonyam maachen? Ech koum mat e puer Problemer.

Entwécklung vu Programmblocken

Ech hunn eemol misse e komplexe Menü fir en 128x64 Punkt Grafikdisplay designen. Ech wollt wierklech net dauernd d'Firmware an e richtege Mikrokontroller lueden fir ze kucken wéi d'Pixel ausgesinn. An esou ass d'Iddi vum Nanonyam gebuer. D'Figur hei ënnen weist e Bild vun engem realen OLED Display vun engem vun den Elementer am selwechte Menü. Elo kann ech et ouni e richtegen Apparat duerchschaffen.

Wéi erstellt Programmer fir Windows an Arduino

Nanonyam (a senger definitiver Iddi) ass e gutt Tool fir Programmblocker fir Mikrokontroller auszeschaffen, well et Funktiounen gi fir mat Grafiken ze schaffen (Dir kënnt Affichage an Indikatoren simuléieren), mat Dateien (Dir kënnt Logbicher maachen, Testdaten liesen), mat eng Keyboard (Dir kënnt bis zu 10 Knäppercher gläichzäiteg liesen), mat COM Häfen (hei ass e separaten Artikel).

Schnell Programmer erstellen

Zum Beispill musst Dir séier 100500 Textdateien veraarbecht. Jidderee muss opgemaach ginn, liicht geännert no engem einfachen Algorithmus, gespäichert a zougemaach. Wann Dir e Python Master sidd, da gratuléieren ech Iech, Dir hutt alles. Awer wann Dir en gehärten Arduino sidd (an et gi vill vun hinnen), da wäert Nanonyam Iech hëllefen dëse Problem ze léisen. Dëst ass mäi zweet Zil am Nanonyam: vill nëtzlech Funktiounen derbäizefügen wéi Textveraarbechtung, Screenshots maachen oder Tastekombinatiounen am System simuléieren (déi iwwregens all schonn do sinn), souwéi vill aner Funktiounen fir Routine Aufgaben ze léisen .

Testen Hardware iwwer COM Hafen

Nanonyam kann als Terminal handelen deen no Ärem Algorithmus funktionnéiert. Dir kënnt e klenge Menü zéien fir den Apparat ze kontrolléieren an d'Daten aus dem Hafen ze weisen. Dir kënnt Daten aus Dateie fir Analyse späicheren a liesen. E praktescht Tool fir einfach Debugging a Kalibrierung vun Hardware, wéi och fir einfach virtuell Instrument Kontrollpanelen ze kreéieren. Fir Studenten a jonke Wëssenschaftler kann dëse Projet ganz nëtzlech sinn.

Programméiere Training

Wéi och ëmmer, wéi mam ganzen Arduino Projet, läit d'Haaptnëtzlechkeet vum Nanonyam an der Vereinfachung vu Funktiounen, Interface an Bootloader. Dofir sollt dëse Projet interessant sinn fir Ufänger Programméierer an déi, déi mam Arduino Niveau zefridden sinn. Iwwregens hunn ech selwer nach ëmmer Arduino net am Detail studéiert, well ech ëmmer WinAVR oder AVR Studio benotzt hunn, awer mat Assembler ugefaang hunn. Dofir wäert de Beispillprogramm hei ënnen e bësse falsch sinn, awer ganz funktionnéiert.

Moien Habr!

Et ass Zäit Gewunnecht mat e puer vun Nanonyam d'Features an engem einfache Programm ze schreiwen. Mir wäerten am Arduino schreiwen, awer net op déi üblech Manéier, awer wéi ech elo kann (ech hu scho gesot datt ech dëst Ëmfeld nach net gutt erausfonnt hunn). Als éischt erstellt eng nei Skizz a wielt de Mega2560 Board.

Wéi erstellt Programmer fir Windows an Arduino

Späichert d'Skizz op eng Datei a kopéiert nächst Nanonyam Bibliothéik. Et wier korrekt d'Header vun de Bibliothéiken opzehuelen, awer ech weess net wéi d'Kompilatioun vun eenzelne Dateien an Arduino schreift, also wäerte mir elo just d'Bibliothéiken direkt enthalen (an all op eemol):

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

Et wier nach méi richteg, e spezielle Modul "Nanonyam fir Arduino" ze maachen, deen direkt vun Arduino installéiert ka ginn. Soubal ech et erausfannen, wäert ech et maachen, awer fir de Moment weisen ech just d'Essenz vun der Aarbecht mat enger virtueller Maschinn. Mir schreiwen de folgende Code:

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

Skizz mat dësem Programm kann hei erofgeluede ginn. Detailléiert Beschreiwung vun Funktiounen Sich op de Site. Ech hoffen, datt d'Kommentaren an dësem Code genuch sinn fir de Kär dovun ze kréien. Hei Funktioun sys_Nanonyam() spillt d'Roll vun engem "Passwuert" fir déi virtuell Maschinn, déi Restriktiounen op virtuell Funktiounen läscht. Ouni dës Funktioun gëtt de Programm no 3 Sekonnen Operatioun zou.

Mir drécken op de "Check" Knäppchen an et soll keng Feeler ginn.

Wéi erstellt Programmer fir Windows an Arduino

Elo musst Dir eng binär Datei (Firmware) kréien. Wielt de Menü "Skizz >> Export binär Datei (CTRL+ALT+S)".

Wéi erstellt Programmer fir Windows an Arduino

Dëst kopéiert zwee HEX Dateien an de Skizz Dossier. Mir huelen nëmmen de Fichier ouni de Präfix "with_bootloader.mega".

Et gi verschidde Weeër fir eng HEX Datei op d'Nanonyam virtuell Maschinn ze spezifizéieren, all si beschriwwen op dëser Säit. Ech proposéieren nieft der Datei ze erstellen Nanonyam.exe Datei Wee, an deem de komplette Wee fir eis HEX Datei registréiert. Duerno kënnt Dir lafen Nanonyam.exe. Mir kréien eng Fënster mat eiser Inscriptioun.

Wéi erstellt Programmer fir Windows an Arduino

Ähnlech kënnt Dir Programmer an aneren Ëmfeld erstellen, wéi AVR Studio oder WinAVR.

Hei schléissen mir eis Bekanntschaft mam Nanonyam of. D'Haaptidee soll kloer sinn. Méi Beispiller sinn op der Websäit.. Wann et genuch Leit sinn, déi gewëllt sinn dëse Projet ze benotzen, da wäert ech méi Beispiller maachen a weiderhin déi virtuell Funktiounsbibliothéiken "fëllen". Konkret Iddien fir d'Entwécklung vum Projet a Berichter iwwer Feelfunktioune, Bugs a Bugs ginn ugeholl. Et ass unzeroden hinnen op Kontakter ze riichten, um Site uginn. An Diskussioun ass wëllkomm an de Kommentaren.

Merci all fir Är Opmierksamkeet a gutt programméiere!

Source: will.com

Setzt e Commentaire