Arduino-da Windows üçün proqramları necə yaratmaq olar

Arduino-da Windows üçün proqramları necə yaratmaq olar

Bir gün ağlıma gətirmək fikri gəldi Bir yerdə 500 lazer göstərici. Çox vaxt sərf etdim və etdim. Möhtəşəm və faydasız çıxdı, amma xoşuma gəldi. Altı ay əvvəl başqa bir dəli fikrim var idi. Bu dəfə heç də möhtəşəm deyil, amma daha faydalıdır. Mən də buna çox vaxt sərf etmişəm. Və bu yazıda ikinci dəli ideyamın beta versiyasını təqdim edirəm.

Layihənin adını Nanonyam (Nanonyam) verdim və hətta onun üçün bir loqo da hazırladım (5 dəqiqə çəkdim).

Arduino-da Windows üçün proqramları necə yaratmaq olar

Arduino baxımından düşünənlər üçün deyə bilərik ki, Nanonyam Windows-u idarə etmək üçün virtual Arduino qalxanıdır.

Başqa sözlə, Nanonyam, bayt kodu olaraq AVR mikro nəzarətçi (ATMEGA2560 tövsiyə olunur) üçün proqram təminatından istifadə edən virtual maşındır. Bu virtual maşının içərisində AVR əsas simulyatoru var, lakin 0x0060-dan 0x01FF-ə qədər SRAM ünvanlarında yerləşən periferik cihazların əvəzinə virtual funksiyalar üçün (Windows API funksiyaları daxil olmaqla) xüsusi interfeys var. Və burada dərhal başa düşmək çox vacibdir: Nanonyam kodunun, məsələn, faylları silmək və ya diski formatlaşdırmaq funksiyasını təsadüfən çağırmamaq üçün göstərilən yaddaş diapazonuna heç bir çıxışı olmamalıdır. SRAM yaddaşının qalan hissəsi 0x0200-dən 0xFFFF-ə qədərdir (bu, real mikrokontrollerdə olduğundan daha çoxdur) istənilən məqsəd üçün istifadəçi üçün mövcuddur. Dərhal qeyd edirəm ki, real mikrokontrolörün (və ya başqa bir arxitekturadan olan proqram təminatının) təsadüfən işə salınmasına qarşı xüsusi qorunma var: "təhlükəli" funksiyaları aktivləşdirməzdən əvvəl xüsusi çətin virtual funksiyanı çağırmalısınız. Bəzi digər təhlükəsizlik xüsusiyyətləri də var.

Nanonyam üçün proqramlar yaratmaq üçün hazırda mövcud olan bütün virtual funksiyaları həyata keçirən xüsusi kitabxanalardan istifadə etməlisiniz. Nanonyam virtual maşını və bunun üçün kitabxanaları yükləyin Daha sonra bilərsiniz. Ancaq virtual funksiyanın təsviri səhifəsi. Və bəli, saytım çox primitivdir və mobil cihazlar üçün uyğunlaşdırılmayıb.

Nanonyam ev və kommersiya istifadəsi üçün pulsuzdur. Nanonyam proqramı "olduğu kimi" əsasında təmin edilir. Mənbə kodu təmin edilmir.

Proqram hazırda sınaq mərhələsindədir. Windows üçün sadə proqramlar yaratmağa imkan verən 200-ə yaxın virtual funksiya həyata keçirilib.
Aydındır ki, belə bir virtual maşında mürəkkəb bir şey yaratmaq işləməyəcək, çünki kod üçün yaddaş cəmi 256 kB-dir. Məlumatlar ayrı-ayrı fayllarda saxlanıla bilər, qrafik hissəsi üçün bufer xaricdən həyata keçirilir. Bütün funksiyalar sadələşdirilmiş və 8 bitlik arxitekturaya uyğunlaşdırılmışdır.

Nanonyamda nə edə bilərsən? Bir neçə problemlə qarşılaşdım.

Proqram bloklarının işlənməsi

Bir dəfə 128x64 nöqtəli qrafik displey üçün kompleks menyu tərtib etməli oldum. Mən, həqiqətən, piksellərin necə göründüyünü görmək üçün proqram təminatını daim real mikro nəzarətçiyə yükləmək istəmirdim. Beləliklə, Nanonyam ideyası yarandı. Aşağıdakı şəkildə eyni menyudakı elementlərdən birinin həqiqi OLED displeyindən bir şəkil göstərilir. İndi mən real cihaz olmadan işləyə bilərəm.

Arduino-da Windows üçün proqramları necə yaratmaq olar

Nanonyam (son fikrində) mikrokontrollerlər üçün proqram bloklarının işlənməsi üçün yaxşı vasitədir, çünki qrafiklərlə (displeyləri və göstəriciləri simulyasiya edə bilərsiniz), fayllarla (siz jurnallar yarada, test məlumatlarını oxuya bilərsiniz) işləmək funksiyaları var. klaviatura (eyni anda 10-a qədər düyməni oxuya bilərsiniz), COM portları ilə (burada ayrıca bir maddə var).

Sürətli proqramların yaradılması

Məsələn, 100500 mətn faylını tez emal etməlisiniz. Hər birini açmaq, bəzi sadə alqoritmə uyğun olaraq bir az dəyişdirmək, saxlamaq və bağlamaq lazımdır. Əgər siz Python ustasısınızsa, o zaman sizi təbrik edirəm, sizdə hər şey var. Amma əgər siz bərkimiş arduinosunuzsa (və onların çoxu var), onda Nanonyam bu problemi həll etməkdə sizə kömək edəcək. Bu, Nanonyam-da mənim ikinci məqsədimdir: sistemdə mətn emalı, ekran görüntüləri çəkmək və ya düymə vuruşlarını simulyasiya etmək kimi bir çox faydalı funksiyaları əlavə etmək (yeri gəlmişkən, bunların hamısı artıq mövcuddur), həmçinin gündəlik tapşırıqların həlli üçün bir çox digər funksiyalar əlavə etmək. .

COM portu vasitəsilə avadanlıqların sınaqdan keçirilməsi

Nanonyam alqoritminizə uyğun işləyən terminal kimi çıxış edə bilər. Cihazı idarə etmək və portdan alınan məlumatları göstərmək üçün kiçik bir menyu çəkə bilərsiniz. Siz təhlil üçün fayllardan məlumatları saxlaya və oxuya bilərsiniz. Avadanlığın sadə sazlanması və kalibrlənməsi, həmçinin sadə virtual alət idarəetmə panellərinin yaradılması üçün lazımlı alət. Tələbələr və gənc alimlər üçün bu layihə çox faydalı ola bilər.

Proqramlaşdırma təlimi

Bununla belə, bütün Arduino layihəsində olduğu kimi, Nanonyam-ın əsas faydası funksiyaların, interfeysin və yükləyicinin sadələşdirilməsindədir. Buna görə də, bu layihə təcrübəsiz proqramçılar və arduino səviyyəsindən razı olanlar üçün maraqlı olmalıdır. Yeri gəlmişkən, mən özüm hələ də arduino-nu ətraflı öyrənməmişəm, çünki həmişə WinAVR və ya AVR Studio-dan istifadə etmişəm, lakin assemblerlə başlamışam. Buna görə də, aşağıda göstərilən nümunə proqram bir az səhv olacaq, lakin kifayət qədər işləyir.

Salam Habr!

Bəzi Nanonyam xüsusiyyətləri ilə tanış olmaq və sadə bir proqram yazmaq vaxtıdır. Arduino-da yazacağıq, amma adi şəkildə yox, indi bacardığım şəkildə (artıq dedim ki, bu mühiti hələ çox yaxşı başa düşməmişəm). Əvvəlcə yeni bir eskiz yaradın və Mega2560 lövhəsini seçin.

Arduino-da Windows üçün proqramları necə yaratmaq olar

Eskizi faylda saxlayın və sonrakını kopyalayın Nanonyam kitabxanası. Kitabxanaların başlıqlarını daxil etmək düzgün olardı, lakin mən Arduino-da fərdi faylların kompilyasiyasını necə yazacağımı bilmirəm, ona görə də indilik biz birbaşa kitabxanaları (və hamısını birdən) daxil edəcəyik:

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

Arduino-dan birbaşa quraşdırıla bilən “Arduino üçün Nanonyam” adlı xüsusi modul hazırlamaq daha düzgün olardı. Bunu başa düşən kimi edəcəm, amma hələlik virtual maşınla işləməyin mahiyyətini göstərirəm. Aşağıdakı kodu yazırıq:

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

Bu proqramla eskiz çəkin buradan yükləmək olar. Funksiyaların ətraflı təsviri saytda axtarış edin. Ümid edirəm ki, bu koddakı şərhlər onun mahiyyətini başa düşmək üçün kifayətdir. Burada funksiya sys_Nanonyam() virtual maşın üçün virtual funksiyalara qoyulan məhdudiyyətləri aradan qaldıran "parol" rolunu oynayır. Bu funksiya olmadan proqram 3 saniyə işlədikdən sonra bağlanacaq.

"Yoxlama" düyməsini basırıq və heç bir səhv olmamalıdır.

Arduino-da Windows üçün proqramları necə yaratmaq olar

İndi ikili fayl (firmware) əldə etməlisiniz. Menyu seçin "Eskiz>>İkili faylı ixrac et (CTRL+ALT+S)".

Arduino-da Windows üçün proqramları necə yaratmaq olar

Bu, iki HEX faylını eskiz qovluğuna köçürəcək. Biz yalnız "with_bootloader.mega" prefiksi olmayan faylı götürürük.

Nanonyam virtual maşınına HEX faylını təyin etməyin bir neçə yolu var, onların hamısı təsvir edilmişdir Bu səhifədə. Faylın yanında yaratmağı təklif edirəm Nanonyam.exe fayl yol, HEX faylımızın tam yolunu qeyd etmək üçün. Bundan sonra qaça bilərsiniz Nanonyam.exe. Yazımız olan bir pəncərə alırıq.

Arduino-da Windows üçün proqramları necə yaratmaq olar

Eynilə, siz AVR Studio və ya WinAVR kimi digər mühitlərdə proqramlar yarada bilərsiniz.

Nanonyamla tanışlığımızı burada bitiririk. Əsas fikir aydın olmalıdır. Daha çox nümunə saytda var.. Əgər bu layihədən istifadə etmək istəyən kifayət qədər insan varsa, mən daha çox misal çəkəcəyəm və virtual funksiya kitabxanalarını “doldurmağa” davam edəcəyəm. Layihənin inkişafı üçün konkret ideyalar və nasazlıqlar, səhvlər və səhvlər haqqında hesabatlar qəbul edilir. Onları kontaktlara yönəltmək məsləhətdir, saytında göstərilib. Və şərhlərdə müzakirə xoşdur.

Diqqətinizə və yaxşı proqramlaşdırmaya görə hamınıza təşəkkür edirik!

Mənbə: www.habr.com

Добавить комментарий