Написание библиотеки для Arduino.
Оценка 4.9

Написание библиотеки для Arduino.

Оценка 4.9
Образовательные программы
docx
информатика
11 кл +1
22.10.2018
Написание библиотеки для Arduino.
Написание библиотеки для Arduino Данный документ описывает создание библиотеки для Arduino. Объяснение начнется с написания скетча передачи кода Морзе посредством светодиода. Затем будет показано как конвертировать скетч в библиотеку. Это позволит другим пользователям легко использовать созданный код, обновлять и дополнять его. Скетч, воспроизводящий код Морзе: int pin = 13; void setup() {
7.3.1 Библиотеки Arduino.docx
«Роботты техника». 5­ші деңгей. 1 сабақ. Сабақтың тақырыбы: Arduino үшін кітапхана жазу. Сабақтың ұзақтығы: 2 сағ. Arduino үшін кітапхана жазу Бұл құжат Arduino үшін кітапхана құруды сипаттайды. Түсіндіру жарықдиод  арқылы Морзе кодын беру скетчін жазудан басталады. Содан кейін скетчті  кітапханаға қалай айырбастау керектігі көрсетіледі. Бұл басқа  пайдаланушыларға құрылған кодты оңай пайдалануға, жаңартуға және оны  толықтыруға мүмкіндік береді. Морзе кодын жаңғырту скетчі: int pin = 13;   void setup() {   pinMode(pin, OUTPUT); }   void loop() {   dot(); dot(); dot();   dash(); dash(); dash();   dot(); dot(); dot();   delay(3000); }   void dot() {   digitalWrite(pin, HIGH);   delay(250);   digitalWrite(pin, LOW);   delay(250); } void dash() {   digitalWrite(pin, HIGH);   delay(1000);   digitalWrite(pin, LOW);   delay(250); } Бұл скетч 13 өткізгіште жарықдиодтың жыпылықтауы арқылы SOS сигналын  береді. Скетчтің кітапханаға ауыстыруға қажетті бірқатар код бөліктері бар.  Біріншіден, ол жарықдиодты жыпылықтаумен басқаратын dot() және dash()  атқарымдары. Екіншіден, ол қай енгізу/шығару портын пайдалануды  анықтайтын ауыспалы ledPin. Және соңында пайдаланылатын енгізу/шығару  портында өткізгіш режимін белгілейтін pinMode() атқарымын шақыру. Скетчті кітапханаға айырбастау үдерісі Кітапхананың екі файлы бар: атауына арналған файл (кеңейтумен .Һ) және  іске асыру файлдары (кеңейтумен .срр). Атауына арналған файлдың кітапхана сипаттамасы, яғни онда бар барлығының тізімі. Құрылатын атауына арналған  файл Morse.h деп аталатын болады. Атауына арналған файлмен әрі қарай  жұмыс істеу үшін іске асыру файлының мазмұнын қарау керек. Атауына арналған файлдың жіктелімі бар, онда атқарымдар мен  пайдаланылатын ауыспалылар мәлімденеді: class Morse {   public:     Morse(int pin);     void dot();     void dash();   private:     int _pin; }; Бұл жағдайда жіктелім ол бір орынға біріктірілген атқарымдар мен  ауыспалылардың жиынтығы. Атқарымдар мен ауыспалылар көпшілік (public)  болуы мүмкін, ол кітапхананы пайдаланатын барлығының оларға ортақ  қолжетімділігін білдіреді немесе жеке (private) болуы мүмкін, ол тек жіктелім ішінде оған қолжетімділікті білдіреді. Әрбір жіктелімнің арнайы  құрылымдаушы атқарымы бар, ол жіктелімнің данасын құру үшін  пайдаланылады. Құрылымдаушының жіктелім сияқты аты болады, бірақ  қайтарылатын мәнді түрі жоқ. Сонымен бірге атауына арналған файлдың бірнеше қосымша жолы бар.  Біріншіден, ол стандарты түрлер мен Arduino­ны бағдарламалаудың тұрақты  тіліне қолжетімділік беретін #include директивасы (директива әдепкі қалпы  бойынша кітапханаға емес, әрбір скетчке қосылады). Директива келесідей  үлгіде болады (және жіктелім хабарлауынан жоғары болады): #include "WProgram.h" Arduino 1.0 нұсқаларында және жоғарыда мыналарды қосу керек: #include Arduino.h Атауына арналған файлдың ішіндегісі келесі құрылымдаушының құрамына  кіреді: #ifndef Morse_h #define Morse_h   // #include директивалар мен код осы жерде орналастырылады   #endif Ол егер біреу қателесіп #include директивасының кітапханасын екі рет қосса,  біздің кітапхананың қайтадан қосылуын болдырмайды. Кітапхана кодының басында кітапханаға оның бағытталуы, авторы, күні және  лицензиясы туралы түсінік орналастыру керек. Дайын атауына арналған файл: /*   Morse.h ­ Library for flashing Morse code.   Created by David A. Mellis, November 2, 2007.   Released into the public domain. */ #ifndef Morse_h #define Morse_h   #include "WProgram.h"   class Morse {   public:     Morse(int pin);     void dot();     void dash();   private:     int _pin; };   #endif Morse.cpp іске асыру файлын қарастырамыз. Кодтың басында бірнеше #include директивалар бар. Бұл директивалармен  Arduino­ның стандартты атқарымдары мен кітапхананың бас файлында  сипаттамаларға рұқсат беріледі: #include "WProgram.h" #include "Morse.h" Бұдан әрі код бойынша құрылымдаушы бар. Ол құрылатын жіктелімнің  данасын жасау үшін пайдаланылады. Бұл жағдайда пайдаланушы паратметр  арқылы пайдаланылатын енгізу/шығару портының нөмірін береді. Порт  шығару режимінде орнатылады, ал нөмір басқа атқарымдарда пайдалану үшін  жеке ауыспалыда сақталады: Morse::Morse(int pin) { pinMode(pin, OUTPUT);   _pin = pin; } Morse коды: атқарым Morse жіктеліміне жататынын білдіреді. _pin   ауыспалының атының басындағы төменгі бос орын – жеке ауыспалылар үшін  қабылданған белгі. Жалпы, аты кез келген болуы мүмкін, бірақ жеке  ауыспалылар үшін қабылданған атау конвенциясына сәйкес "_" префиксін  қолдану керек. Ол сонымен бірге атқарымның аргументінен айыруға  мүмкіндік береді (бұл жағдайда pin).     Бұдан кейін әдепкі скетчтен кітапханаға айырбасталатын код тек Morse::  қосылды және ауыспалының аты pin­нен, _pin­ге өзгерді: void Morse::dot() {   digitalWrite(_pin, HIGH);   delay(250);   digitalWrite(_pin, LOW);   delay(250);  }   void Morse::dash() {   digitalWrite(_pin, HIGH);   delay(1000);   digitalWrite(_pin, LOW);   delay(250); } Кейбір айқындаушы түсініктерді іске асыру файлы кодының алдына  орналастыруды көпшілік мақұлдаған. Кітапхананың толық коды: /*   Morse.cpp ­ Library for flashing Morse code.   Created by David A. Mellis, November 2, 2007.   Released into the public domain. */ #include "WProgram.h" #include "Morse.h"   Morse::Morse(int pin) {   pinMode(pin, OUTPUT);   _pin = pin; }   void Morse::dot() {   digitalWrite(_pin, HIGH);   delay(250);   digitalWrite(_pin, LOW);   delay(250);  }   void Morse::dash() {   digitalWrite(_pin, HIGH);   delay(1000);   digitalWrite(_pin, LOW);   delay(250); } Кітапхананы пайдалану. Біріншіден, блокнот директориясының libraries кіші бумасында Morse  бумасын ашу керек. Екіншіден, ашылған бумаға Morse.h және Morse.cpp  көшіріп алу талап етіледі. Arduino бағдарламасы іске қосылғаннан кейін  Sketch > ImportLibrary мәзірінде Morse кітапханасы болады. Кітапхана оны  пайдаланатын скетчтермен бірлесіп құрастырылатын болады. Егер  кітапхананы құрастыру кезінде проблемалар туындаса, онда оның файлдары  .cpp және .h кеңеюлерімен болуын тексеру керек (.pde және .txt қосымша  кеңеюлері болмау керек). Құрылған кітапхананы пайдалана отырып әдепкі көшіріп жазған скетч келесі  үлгіде көрінеді: #include    Morse morse(13);   void setup() { }   void loop() {   morse.dot(); morse.dot(); morse.dot();   morse.dash(); morse.dash(); morse.dash();   morse.dot(); morse.dot(); morse.dot();   delay(3000); } Әдепкі скетчтен бірнеше өзгешелік: Біріншіден, скетчтің басына #include директивасы қосылды. Осылайша Morse  кітапханасына қолжетімділік және оның қосылуы айқындалады.  #include директивасын алып тастап, пайдаланылмайтын кітапхананы жою  керек. Екіншіден, morse: Morse morse(13) деп аталатын Morse жіктелімінің данасы құрылады; Осы жолды орындау кезінде (setup() атқарымын орындау алдында) Morse  жіктелімі үшін құрылымдаушы шақырылады және мысалда берілген  аргументті қабылдайды (13). Бұл ретте setup() атқарымында ештеңе жоқ, себебі pinMode()  атқарымын  шақыру кітапхананың ішінде (жіктелім данасы жасалған кезде) болды. Үшіншіден, dot() және dash() атқарымын шақыру үшін morse префиксін –  пайдаланылатын дананың атын қосу керек. Morse жіктелімінің _pin оқшаулы  ауыспалыда сақталатын, әрқайсысы өзінің порт нөмірімен бірнеше данасы болуы мүмкін. Нақты дананың атқарымын шақырып, шақыру кезінде қандай  ауыспалылар пайдаланылатыны айқындалады. Келесі екі жол болған кезде: Morse morse(13); Morse morse2(12); morse2.dot() ішкі шақыру кезінде _pin ауыспалының 12 мәні болады. Өкінішке орай кодтың автоматы жарықтандыруы қосылатын кітапханалармен  жұмыс істемейді. Жарықтандыру іске қосылуы үшін keywords.txt. атауымен  файл ашу керек. Мысал: Morse   KEYWORD1 dash    KEYWORD2 dot KEYWORD2 Әр жолдың қарама­қарсысында табуляция арқылы резервтелген сөз және тағы табуляция арқылы сөздің түрі тұрады. Жіктелімдер резервтелген  KEYWORD1 сөзіне сәйкес келеді және қызғылт сары түске боялған;  KEYWORD2 сөзіне сәйкес келеді және қоңыр түске боялған. Сөздерді  айырып тану үшін Arduino әзірлеу ортасын қайта іске қосу керек. Ашылған кітапхананы үнемі оны қолдану мысалымен тіркеген дұрыс. Ол үшін  Morse директориясында examples бумасы ашылады. Содан кейін бұрын  ашылған SOS скетчі осы бумаға көшіріледі. (Скетч файлын Sketch >  ShowSketchFolder мәзірі арқылы табуға болады). Arduino қайта іске  қосылғаннан кейін File > Sketchbook > Examples мәзірінде мысалы бар  Library­Morse пункті болады. Сондай­ақ кітапхананы қалай пайдаланғаны  жақсы екені туралы түсінік беру қосылады.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.

Написание библиотеки для Arduino.
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
22.10.2018