ஒரு நாள் நான் கொண்டு வர வேண்டும் என்று பைத்தியக்காரத்தனமான யோசனை தோன்றியது
நான் திட்டத்திற்கு நானோனியம் (நானோனியம்) என்று பெயரிட்டேன், அதற்கான லோகோவைக் கூட கொண்டு வந்தேன் (நான் 5 நிமிடங்கள் வரைந்தேன்).
Arduino அடிப்படையில் சிந்திப்பவர்களுக்கு, Nanonyam என்பது விண்டோஸைக் கட்டுப்படுத்துவதற்கான ஒரு மெய்நிகர் Arduino கவசம் என்று சொல்லலாம்.
வேறு வார்த்தைகளில் கூறுவதானால், Nanonyam என்பது AVR மைக்ரோகண்ட்ரோலருக்கான ஃபார்ம்வேரை (ATMEGA2560 பரிந்துரைக்கப்படுகிறது) பைட்கோடாகப் பயன்படுத்தும் மெய்நிகர் இயந்திரமாகும். இந்த மெய்நிகர் இயந்திரத்தின் உள்ளே ஒரு AVR கோர் சிமுலேட்டர் உள்ளது, ஆனால் 0x0060 முதல் 0x01FF வரையிலான SRAM முகவரிகளில் அமைந்துள்ள சாதனங்களுக்குப் பதிலாக, மெய்நிகர் செயல்பாடுகளுக்கு (விண்டோஸ் ஏபிஐ செயல்பாடுகள் உட்பட) ஒரு சிறப்பு இடைமுகம் உள்ளது. இங்கே இப்போதே புரிந்துகொள்வது மிகவும் முக்கியம்: தற்செயலாக அழைக்காதபடி, எடுத்துக்காட்டாக, கோப்புகளை நீக்குதல் அல்லது வட்டை வடிவமைக்கும் செயல்பாடு, நானோனியத்திற்கான குறியீடு குறிப்பிட்ட நினைவக வரம்பிற்கு எந்த அணுகலையும் கொண்டிருக்கக்கூடாது. மீதமுள்ள SRAM நினைவக வரம்பு 0x0200 முதல் 0xFFFF வரை (இது உண்மையான மைக்ரோகண்ட்ரோலரை விட அதிகம்) எந்த நோக்கத்திற்காகவும் பயனருக்குக் கிடைக்கும். உண்மையான மைக்ரோகண்ட்ரோலரின் (அல்லது வேறொரு கட்டமைப்பிலிருந்து ஃபார்ம்வேர்) தற்செயலான ஃபார்ம்வேர் தொடங்கப்படுவதற்கு எதிராக ஒரு சிறப்பு பாதுகாப்பு இருப்பதை நான் இப்போதே கவனிக்கிறேன்: "ஆபத்தான" செயல்பாடுகளை செயல்படுத்துவதற்கு முன், நீங்கள் ஒரு சிறப்பு தந்திரமான மெய்நிகர் செயல்பாட்டை அழைக்க வேண்டும். மேலும் சில பாதுகாப்பு அம்சங்களும் உள்ளன.
Nanonyam க்கான நிரல்களை உருவாக்க, தற்போது கிடைக்கும் அனைத்து மெய்நிகர் செயல்பாடுகளையும் செயல்படுத்தும் சிறப்பு நூலகங்களைப் பயன்படுத்த வேண்டும். நானோனியம் மெய்நிகர் இயந்திரம் மற்றும் நூலகங்களைப் பதிவிறக்கவும்
நானோனியம் வீடு மற்றும் வணிக பயன்பாட்டிற்கு இலவசம். நானோனியம் திட்டம் "உள்ளது" அடிப்படையில் வழங்கப்படுகிறது. மூல குறியீடு வழங்கப்படவில்லை.
இந்த திட்டம் தற்போது சோதனை கட்டத்தில் உள்ளது. விண்டோஸிற்கான எளிய நிரல்களை உருவாக்க உங்களை அனுமதிக்கும் சுமார் 200 மெய்நிகர் செயல்பாடுகள் செயல்படுத்தப்பட்டது.
வெளிப்படையாக, அத்தகைய மெய்நிகர் கணினியில் சிக்கலான ஒன்றை உருவாக்குவது வேலை செய்யாது, ஏனெனில் குறியீட்டிற்கான நினைவகம் 256 kB மட்டுமே. தரவை தனி கோப்புகளில் சேமிக்க முடியும், கிராஃபிக் பகுதிக்கான இடையக வெளிப்புறமாக செயல்படுத்தப்படுகிறது. அனைத்து செயல்பாடுகளும் எளிமைப்படுத்தப்பட்டு 8-பிட் கட்டமைப்பிற்கு ஏற்றது.
நானோனியத்தில் நீங்கள் என்ன செய்ய முடியும்? நான் சில பிரச்சனைகளுடன் வந்தேன்.
நிரல் தொகுதிகளின் வளர்ச்சி
நான் ஒருமுறை 128x64 டாட் கிராஃபிக் டிஸ்ப்ளேக்கான சிக்கலான மெனுவை வடிவமைக்க வேண்டியிருந்தது. பிக்சல்கள் எப்படி இருக்கும் என்பதைப் பார்க்க, ஃபார்ம்வேரை ஒரு உண்மையான மைக்ரோகண்ட்ரோலரில் தொடர்ந்து ஏற்றுவதை நான் உண்மையில் விரும்பவில்லை. அதனால் நானோனியம் என்ற எண்ணம் பிறந்தது. கீழே உள்ள படம் அதே மெனுவில் உள்ள உருப்படிகளில் ஒன்றின் உண்மையான OLED காட்சியிலிருந்து ஒரு படத்தைக் காட்டுகிறது. இப்போது நான் உண்மையான சாதனம் இல்லாமல் வேலை செய்ய முடியும்.
கிராபிக்ஸ் (நீங்கள் காட்சிகள் மற்றும் குறிகாட்டிகளை உருவகப்படுத்தலாம்), கோப்புகளுடன் (நீங்கள் பதிவுகளை உருவாக்கலாம், சோதனைத் தரவைப் படிக்கலாம்) ஆகியவற்றுடன் பணிபுரியும் செயல்பாடுகள் இருப்பதால், மைக்ரோகண்ட்ரோலர்களுக்கான நிரல் தொகுதிகளை உருவாக்குவதற்கு Nanonyam (அதன் இறுதி யோசனையில்) ஒரு நல்ல கருவியாகும். ஒரு விசைப்பலகை (நீங்கள் ஒரே நேரத்தில் 10 பொத்தான்கள் வரை படிக்கலாம்), COM போர்ட்களுடன் (இங்கே ஒரு தனி உருப்படி உள்ளது).
விரைவான நிரல்களை உருவாக்குதல்
எடுத்துக்காட்டாக, நீங்கள் 100500 உரை கோப்புகளை விரைவாக செயலாக்க வேண்டும். ஒவ்வொன்றையும் திறக்க வேண்டும், சில எளிய வழிமுறைகளின்படி சிறிது மாற்றியமைத்து, சேமித்து மூட வேண்டும். நீங்கள் ஒரு பைதான் மாஸ்டர் என்றால், நான் உங்களை வாழ்த்துகிறேன், உங்களிடம் எல்லாம் இருக்கிறது. ஆனால் நீங்கள் கடினப்படுத்தப்பட்ட ஆர்டுயினோ என்றால் (அவற்றில் பல உள்ளன), இந்த சிக்கலை தீர்க்க Nanonyam உங்களுக்கு உதவும். நானோனியத்தில் இது எனது இரண்டாவது குறிக்கோள்: உரைச் செயலாக்கம், ஸ்கிரீன் ஷாட்களை எடுப்பது அல்லது கணினியில் விசை அழுத்தங்களை உருவகப்படுத்துவது போன்ற பல பயனுள்ள செயல்பாடுகளைச் சேர்ப்பது (இவை அனைத்தும் ஏற்கனவே உள்ளன), அத்துடன் வழக்கமான பணிகளைத் தீர்ப்பதற்கான பல செயல்பாடுகள் .
COM போர்ட் வழியாக வன்பொருளைச் சோதிக்கிறது
உங்கள் அல்காரிதம் படி செயல்படும் முனையமாக Nanonyam செயல்பட முடியும். சாதனத்தைக் கட்டுப்படுத்தவும், போர்ட்டிலிருந்து பெறப்பட்ட தரவைக் காட்டவும் நீங்கள் ஒரு சிறிய மெனுவை வரையலாம். பகுப்பாய்வுக்காக கோப்புகளிலிருந்து தரவைச் சேமித்து படிக்கலாம். எளிய பிழைத்திருத்தம் மற்றும் வன்பொருளின் அளவுத்திருத்தம், அத்துடன் எளிய மெய்நிகர் கருவி கட்டுப்பாட்டு பேனல்களை உருவாக்குவதற்கான எளிய கருவி. மாணவர்கள் மற்றும் இளம் விஞ்ஞானிகளுக்கு, இந்த திட்டம் மிகவும் பயனுள்ளதாக இருக்கும்.
நிரலாக்க பயிற்சி
இருப்பினும், முழு Arduino திட்டத்தைப் போலவே, Nanonyam இன் முக்கிய பயன் செயல்பாடுகள், இடைமுகம் மற்றும் துவக்க ஏற்றி ஆகியவற்றின் எளிமைப்படுத்தலில் உள்ளது. எனவே, இந்த திட்டம் புதிய புரோகிராமர்களுக்கும் அர்டுயினோவின் மட்டத்தில் திருப்தி அடைந்தவர்களுக்கும் ஆர்வமாக இருக்க வேண்டும். மூலம், நானே இன்னும் arduino பற்றி விரிவாகப் படிக்கவில்லை, ஏனென்றால் நான் எப்போதும் WinAVR அல்லது AVR ஸ்டுடியோவைப் பயன்படுத்தினேன், ஆனால் அசெம்பிளரில் தொடங்கினேன். எனவே, கீழே உள்ள எடுத்துக்காட்டு நிரல் கொஞ்சம் தவறாக இருக்கும், ஆனால் மிகவும் வேலை செய்கிறது.
வணக்கம் ஹப்ர்!
சில நானோனியம் அம்சங்களைப் பற்றி நன்கு தெரிந்துகொண்டு ஒரு எளிய நிரலை எழுத வேண்டிய நேரம் இது. நாங்கள் Arduino இல் எழுதுவோம், ஆனால் வழக்கமான வழியில் அல்ல, ஆனால் இப்போது என்னால் முடிந்த வழியில் (இந்த சூழலை நான் இன்னும் சரியாகக் கண்டுபிடிக்கவில்லை என்று நான் ஏற்கனவே சொன்னேன்). முதலில், ஒரு புதிய ஓவியத்தை உருவாக்கி, Mega2560 போர்டைத் தேர்ந்தெடுக்கவும்.
ஸ்கெட்சை ஒரு கோப்பில் சேமித்து அடுத்ததாக நகலெடுக்கவும்
#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 இலிருந்து நேரடியாக நிறுவக்கூடிய "Nanonyam for 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);//Задержка и разгрузка процессора
}
இந்த நிரலுடன் வரையவும்
நாங்கள் "செக்" பொத்தானை அழுத்தவும், எந்த பிழையும் இருக்கக்கூடாது.
இப்போது நீங்கள் ஒரு பைனரி கோப்பை (நிலைபொருள்) பெற வேண்டும். மெனுவைத் தேர்ந்தெடுக்கவும் "ஸ்கெட்ச்>>பைனரி கோப்பை ஏற்றுமதி செய் (CTRL+ALT+S)".
இது இரண்டு ஹெக்ஸ் கோப்புகளை ஸ்கெட்ச் கோப்புறையில் நகலெடுக்கும். "with_bootloader.mega" என்ற முன்னொட்டு இல்லாமல் கோப்பை மட்டுமே எடுத்துக்கொள்கிறோம்.
Nanonyam மெய்நிகர் கணினியில் HEX கோப்பைக் குறிப்பிட பல வழிகள் உள்ளன, அவை அனைத்தும் விவரிக்கப்பட்டுள்ளன.
இதேபோல், நீங்கள் AVR ஸ்டுடியோ அல்லது WinAVR போன்ற பிற சூழல்களில் நிரல்களை உருவாக்கலாம்.
இங்குதான் நனோன்யாமுடன் பழகுகிறோம். முக்கிய யோசனை தெளிவாக இருக்க வேண்டும்.
உங்கள் கவனத்திற்கும் நல்ல நிரலாக்கத்திற்கும் அனைவருக்கும் நன்றி!
ஆதாரம்: www.habr.com