Arduino дээр Windows-д зориулсан програмуудыг хэрхэн үүсгэх

Arduino дээр Windows-д зориулсан програмуудыг хэрхэн үүсгэх

Нэг өдөр надад авчрах галзуу санаа төрсөн Нэг дор 500 лазер заагч. Би маш их цаг зарцуулж, үүнийг хийсэн. Энэ нь гайхалтай, ашиггүй болсон ч надад таалагдсан. Зургаан сарын өмнө надад өөр нэг галзуу санаа төрсөн. Энэ удаад огт гайхалтай биш, гэхдээ илүү хэрэгтэй. Би ч бас үүнд их цаг зарцуулсан. Мөн энэ нийтлэлд би хоёр дахь галзуу санааныхаа бета хувилбарыг танилцуулж байна.

Би төслийг Наноням (Наноням) гэж нэрлээд лого хүртэл гаргаж ирсэн (би 5 минут зурсан).

Arduino дээр Windows-д зориулсан програмуудыг хэрхэн үүсгэх

Arduino гэж боддог хүмүүсийн хувьд Nanonyam бол Windows-ийг удирдах виртуал Arduino бамбай гэж хэлж болно.

Өөрөөр хэлбэл, Наноням нь AVR микроконтроллерийн программ хангамжийг (ATMEGA2560-г санал болгож байна) байт код болгон ашигладаг виртуал машин юм. Энэхүү виртуал машин дотор AVR үндсэн симулятор байдаг боловч 0x0060-аас 0x01FF хүртэлх SRAM хаягууд дээр байрлах нэмэлт төхөөрөмжүүдийн оронд виртуал функцүүдийн (Windows API функцуудыг оруулаад) тусгай интерфэйс байдаг. Энд нэн даруй ойлгох нь маш чухал юм: Nanonyam-ийн код нь заасан санах ойн хүрээнд ямар ч нэвтрэх эрхгүй байх ёстой бөгөөд ингэснээр жишээлбэл, файл устгах эсвэл дискийг форматлах функцийг санамсаргүйгээр дуудахгүй байх ёстой. SRAM санах ойн үлдсэн хэсэг нь 0x0200-аас 0xFFFF хүртэл (энэ нь жинхэнэ микроконтроллероос илүү) хэрэглэгчдэд ямар ч зорилгоор ашиглах боломжтой. Жинхэнэ микроконтроллерийн програм хангамжийг (эсвэл өөр архитектурын програм хангамжийг) санамсаргүйгээр эхлүүлэхээс тусгай хамгаалалт байгааг би шууд тэмдэглэж байна: "аюултай" функцийг идэвхжүүлэхийн өмнө та тусгай төвөгтэй виртуал функцийг дуудах хэрэгтэй. Бусад аюулгүй байдлын функцууд бас байдаг.

Nanonyam-д зориулсан програмуудыг бий болгохын тулд та одоо байгаа бүх виртуал функцийг хэрэгжүүлдэг тусгай номын санг ашиглах хэрэгтэй. Nanonyam виртуал машин болон номын сангуудыг татаж аваарай Та дараа нь болно. Энд байна виртуал функцын тайлбар хуудас. Тийм ээ, миний сайт маш энгийн бөгөөд хөдөлгөөнт төхөөрөмжид тохироогүй.

Nanonyam нь гэрийн болон арилжааны зориулалтаар ашиглахад үнэ төлбөргүй байдаг. Наноням хөтөлбөрийг "байгаагаар нь" гэсэн зарчмаар хангадаг. Эх кодыг өгөөгүй байна.

Одоогоор хөтөлбөр туршилтын шатандаа явж байна. Windows-д зориулсан энгийн программ үүсгэх боломжийг олгодог 200 орчим виртуал функцийг хэрэгжүүлсэн.
Кодын санах ой ердөө 256 кБ тул ийм виртуал машинд ямар нэгэн төвөгтэй зүйл үүсгэх нь ажиллахгүй нь ойлгомжтой. Өгөгдлийг тусдаа файлд хадгалах боломжтой, график хэсгийн буфер нь гаднаас хэрэгждэг. Бүх функцийг хялбаршуулж, 8 битийн архитектурт тохируулсан.

Та Нанонямд юу хийж чадах вэ? Би хэд хэдэн асуудалтай тулгарсан.

Програмын блокуудыг боловсруулах

Би нэг удаа 128x64 цэгийн график дэлгэцийн нарийн төвөгтэй цэсийг зохион бүтээх хэрэгтэй болсон. Пикселүүд хэрхэн харагдахыг харахын тулд программыг жинхэнэ микроконтроллер руу байнга ачаалахыг би үнэхээр хүсээгүй. Ингээд Нанонямын санаа төрсөн. Доорх зураг нь ижил цэсэн дэх зүйлсийн аль нэгний бодит OLED дэлгэцийн зургийг харуулж байна. Одоо би жинхэнэ төхөөрөмжгүйгээр үүнийг даван туулж чадна.

Arduino дээр Windows-д зориулсан програмуудыг хэрхэн үүсгэх

Наноням (эцсийн санаагаараа) нь график (та дэлгэц, индикаторуудыг дуурайж болно), файлуудтай (та бүртгэл хийх, тестийн өгөгдлийг унших) ажиллах функцүүдтэй тул микроконтроллеруудад зориулсан програмын блокуудыг боловсруулах сайн хэрэгсэл юм. гар (та 10 хүртэлх товчлуурыг нэгэн зэрэг унших боломжтой), COM портуудтай (энд тусдаа зүйл).

Түргэн программ үүсгэх

Жишээлбэл, та 100500 текст файлыг хурдан боловсруулах хэрэгтэй. Тус бүрийг нээх, зарим энгийн алгоритмын дагуу бага зэрэг өөрчлөх, хадгалах, хаах шаардлагатай. Хэрэв та Python-ийн мастер бол би танд баяр хүргэе, танд бүх зүйл байна. Гэхдээ хэрэв та хатуурсан arduino бол (тэдгээрийн олон нь байдаг) Наноням танд энэ асуудлыг шийдвэрлэхэд тусална. Энэ бол Наноням дахь миний хоёр дахь зорилго юм: системд текст боловсруулах, дэлгэцийн агшинг авах эсвэл товчлуурын даралтыг дуурайх гэх мэт олон ашигтай функцуудыг (дашрамд хэлэхэд бүгд аль хэдийн байгаа), мөн ердийн ажлуудыг шийдвэрлэх бусад олон функцийг нэмэх. .

COM портоор дамжуулан техник хангамжийг шалгаж байна

Наноням нь таны алгоритмын дагуу ажилладаг терминалын үүргийг гүйцэтгэж чадна. Та төхөөрөмжийг удирдахын тулд жижиг цэс зурж, портоос хүлээн авсан өгөгдлийг харуулах боломжтой. Та дүн шинжилгээ хийхийн тулд файлаас өгөгдлийг хадгалах, унших боломжтой. Тоног төхөөрөмжийн энгийн дибаг хийх, тохируулга хийх, мөн виртуал багаж хэрэгслийн хяналтын самбар үүсгэхэд тохиромжтой хэрэгсэл. Оюутнууд болон залуу эрдэмтдийн хувьд энэ төсөл маш их хэрэг болно.

Програмчлалын сургалт

Гэсэн хэдий ч Arduino төслийн нэгэн адил Nanonyam-ийн гол ашиг тус нь функц, интерфейс болон ачаалагчийг хялбарчлахад оршдог. Тиймээс энэ төсөл нь шинэхэн програмистууд болон arduino-ийн түвшинд сэтгэл хангалуун байгаа хүмүүст сонирхолтой байх ёстой. Дашрамд хэлэхэд би өөрөө arduino-г нарийвчлан судалж үзээгүй, учир нь би үргэлж WinAVR эсвэл AVR Studio ашигладаг байсан ч ассемблерээс эхэлсэн. Тиймээс, доорх жишээ програм нь бага зэрэг буруу, гэхдээ нэлээд ажиллах болно.

Сайн уу Хабр!

Нанонямын зарим функцуудтай танилцаж, энгийн програм бичих цаг болжээ. Бид Arduino дээр бичих болно, гэхдээ ердийн байдлаар биш, харин одоо хийж чадах байдлаар (би энэ орчныг хараахан сайн ойлгоогүй гэж хэлсэн). Эхлээд шинэ ноорог үүсгэж, Mega2560 хавтанг сонгоно уу.

Arduino дээр Windows-д зориулсан програмуудыг хэрхэн үүсгэх

Зургийг файлд хадгалаад дараа нь хуулна уу Наноням номын сан. Номын сангуудын толгой хэсгийг оруулах нь зөв байх, гэхдээ би Arduino дээр бие даасан файлуудын эмхэтгэлийг хэрхэн бичихээ мэдэхгүй байгаа тул одоохондоо бид номын сангуудыг шууд (мөн бүгдийг нэг дор) оруулах болно.

#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-аас шууд суулгаж болох "Arduino-д зориулсан Наноням" тусгай модулийг хийх нь илүү зөв байх болно. Нэг л мэдэхэд би үүнийг хийх болно, гэхдээ одоо бол би виртуал машинтай ажиллахын мөн чанарыг л харуулж байна. Бид дараах кодыг бичнэ.

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

Энэ програмын тусламжтайгаар ноорог зур эндээс татаж авах боломжтой. Функцийн нарийвчилсан тайлбар сайтаас хайх. Энэ кодын тайлбар нь гол санааг ойлгоход хангалттай гэж найдаж байна. Энд функц байна sys_Nanonyam() виртуал машинд зориулсан "нууц үг"-ийн үүргийг гүйцэтгэдэг бөгөөд энэ нь виртуал функцүүдийн хязгаарлалтыг арилгадаг. Энэ функц байхгүй бол програм 3 секундын дараа хаагдах болно.

Бид "Шалгах" товчийг дарахад ямар ч алдаа гарах ёсгүй.

Arduino дээр Windows-д зориулсан програмуудыг хэрхэн үүсгэх

Одоо та хоёртын файл (програм хангамж) авах хэрэгтэй. Цэсийг сонгоно уу "Ноорог>>Хоёртын файлыг экспортлох (CTRL+ALT+S)".

Arduino дээр Windows-д зориулсан програмуудыг хэрхэн үүсгэх

Энэ нь хоёр HEX файлыг sketch хавтас руу хуулах болно. Бид зөвхөн "with_bootloader.mega" угтваргүй файлыг авдаг.

Nanonyam виртуал машинд HEX файлыг зааж өгөх хэд хэдэн арга байдаг бөгөөд бүгдийг нь тайлбарласан болно Энэ хуудсанд. Би файлын хажууд үүсгэхийг санал болгож байна Nanonyam.exe файл зам, үүнд манай HEX файлын бүрэн замыг бүртгэнэ. Үүний дараа та гүйж болно Nanonyam.exe. Бид бичээстэй цонхыг авдаг.

Arduino дээр Windows-д зориулсан програмуудыг хэрхэн үүсгэх

Үүнтэй адилаар та AVR Studio эсвэл WinAVR гэх мэт өөр орчинд програм үүсгэж болно.

Энд л бид Нанонямтай танилцсанаа дуусгаж байна. Гол санаа нь тодорхой байх ёстой. Дэлгэрэнгүй жишээг вэбсайт дээр байрлуулсан.. Хэрэв энэ төслийг ашиглах хүсэлтэй хүмүүс хангалттай байгаа бол би илүү олон жишээ гаргаж, виртуал функцын сангуудыг "дүүргэх" болно. Төслийг боловсруулахад зориулсан тодорхой санаа, алдаа, алдаа, алдааны тайланг хүлээн авна. Тэднийг холбоо барих хаяг руу чиглүүлэхийг зөвлөж байна. вэб сайтад заасан. Мөн сэтгэгдэл дээр хэлэлцүүлгийг урьж байна.

Анхаарал хандуулж, сайн нэвтрүүлэг хийсэн та бүхэнд баярлалаа!

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх