Talaan ng mga Nilalaman:

Paggawa ng Arduino Library para sa Paningin ng YouTube: 7 Hakbang
Paggawa ng Arduino Library para sa Paningin ng YouTube: 7 Hakbang

Video: Paggawa ng Arduino Library para sa Paningin ng YouTube: 7 Hakbang

Video: Paggawa ng Arduino Library para sa Paningin ng YouTube: 7 Hakbang
Video: Pagsukat ng 5A hanggang 30A AC at DC kasalukuyang gamit ang ACS712 kasama ang Robojax Library 2024, Nobyembre
Anonim
Image
Image
Ano ang isang Library?
Ano ang isang Library?

Kumusta Lahat, Kamakailan-lamang na nagtayo ako ng isang serbisyong tinatawag na YouTube Sight na maaaring kumuha ng data ng mga subscriber mula sa YouTube Analytics API at bibigyan ka ng mas tumpak na bilang ng subscriber mula nang simulang ipagsama ng YouTube ang mga resulta. Sa pamamagitan nito, nakabuo ako ng isang halimbawa ng sketch ngunit nais ko ring gumawa ng isang library ng Arduino upang mas madaling gamitin ito ng mga tao.

Hakbang 1: Ano ang isang Library?

Ano ang isang Library?
Ano ang isang Library?

Ang isang library ay isang piraso ng code na maaaring hawakan ang isang tukoy na operasyon, maproseso ang isang uri ng data o maaaring malaman kung paano makipag-ugnay sa isang tukoy na elemento ng hardware. Pinapayagan nila kaming madaling mapalawak ang kapaligiran ng Arduino at maraming mga ito ay paunang naka-install sa Arduino IDE.

Sa mga kaso tulad ng sa akin, kung saan nais naming magdagdag ng mga bagong posibilidad sa Arduino, maaari kaming lumikha ng aming sariling mga silid-aklatan upang magamit ng ibang mga tao. Ang lahat ng mga naka-install na aklatan ay nakatira sa isang tukoy na folder sa aming computer. Sa aking kaso para sa Windows PC, nakatira ang mga aklatan sa ilalim ng folder ng Documents / Arduino. Ang buong landas ay magiging tukoy para sa iyo, batay sa iyong username.

Hakbang 2: Istraktura ng Library at Mga File

Istraktura ng Library at Mga File
Istraktura ng Library at Mga File

Upang simulang buuin ang aming silid-aklatan, kailangan muna naming lumikha ng isang folder dito na may pangalan nito upang lumikha ako ng isang folder na tinatawag na YouTube Sight. Sa hubad na minimum na bersyon ng library, dapat mayroon kaming hindi bababa sa dalawang mga file.

Ang una ay isang tinatawag na "header" na file na naglalaman ng lahat ng mga kahulugan ng mga pamamaraan at pag-aari na ibinibigay ng aming library, at ang pangalawa ay ang pinagmulang file na maglalaman ng lahat ng source code.

Ang mga file ng header ay may isang extension ng ".h" habang ang pinagmulang file ay may isang extension ng ".cpp" at karaniwang mayroon silang pangalan ng library bilang filename. Sa aking kaso, ang dalawang mga file ay tinatawag na "YouTubeSight.h" at "YouTubeSight.cpp".

Ang proseso ng pagsusulat ng code ng library ay maaaring maging medyo nakakapagod at nakakabigo, lalo na kapag nagsusulat ka ng isang aklatan sa unang pagkakataon, ngunit sa maraming pagsubok at error, makakamit mo ang nais na mga resulta. Dahil doon ay gagabay ako sa iyo sa pamamagitan ng natapos na code ng dalawang mga file at ipaliwanag ito.

Ang buong code at ang silid-aklatan ay magagamit para sa pag-download mula sa GitHub sa sumusunod na link:

Hakbang 3: Ang Header File

Ang Header File
Ang Header File
Ang Header File
Ang Header File
Ang Header File
Ang Header File

Sa loob ng file ng header, sa simula, ang buong file ay nakabalot sa loob ng isang pahayag na "ifndef" na suriin kung ang tinukoy na variable ay tinukoy o hindi. Pipigilan nito ang mga pagkakamali para sa sinumang gumagamit ng silid-aklatan kung isinasama nila ito nang dalawang beses sa parehong sketch nang hindi sinasadya.

Susunod, kailangan naming isama ang base library ng Arduino at dahil makikipagtulungan kami sa isang HTTP client ng ilang uri upang maipadala ang kahilingan sa YouTube Sight isasama rin namin ang base library ng Client.

Bago namin simulang isulat ang nilalaman ng aming pangunahing klase, kailangan naming tukuyin ang anumang mga static variable at setting na hindi namin nais na mabago. Sa aking kaso, mayroong dalawang ganoong mga variable. Ang pangunahing URL ng serbisyo sa YouTube Sight at ang variable ng timeout na gagamitin namin upang suriin kung gaano katagal kaming nagbasa ng isang halaga.

Sa seksyon din na ito, maaari naming tukuyin ang anumang mga pasadyang uri na nais naming gamitin tulad ng channel na ito istraktura ng Statistics na i-save namin ang mga resulta.

Ang kahulugan ng istraktura ng klase ay nahahati sa dalawang bahagi. Ang unang bahagi ay ang kahulugan ng lahat ng mga pampublikong pag-andar at pag-aari at ang pangalawa ay ang kahulugan ng lahat ng mga pribadong pag-andar at pag-aari. Ang pagkakaiba sa pagitan ng pareho ay ang mga end-user ng aming silid-aklatan ay hindi magagawang gumamit ng anuman mula sa pribadong seksyon nang direkta habang magagawa nilang direktang baguhin at magamit ang anuman sa mga pag-aari at pag-andar mula sa pampublikong bahagi.

Sa seksyon ng publiko, tinukoy namin ang tagabuo ng klase, ang variable ng channelStats kung saan maiimbak namin ang mga resulta, ang pagpapaandar na makakakuha ng data at isang pag-aari ng debug na maaari naming magamit sa paglaon upang suriin ang mga kaso kung saan maaaring hindi makuha ang inaasahang mga resulta.

Para sa mga pribadong pag-aari, tutukuyin namin ang isa para sa pagtatago ng GUID ng channel, isang pointer sa HTTP client na gagamitin namin at isang pagpapaandar na hahatiin ang naibalik na string mula sa YouTube Sight.

Hakbang 4: Ang Source File

Ang Source File
Ang Source File
Ang Source File
Ang Source File

Ngayon tingnan natin ang aktwal na pagpapatupad ng lahat ng ito sa loob ng file ng pinagmulan.

Ang unang hakbang para sa amin ay isama ang aming sariling file ng header na nilikha lamang namin at pagkatapos ay kailangan naming tukuyin ang tagapagbuo ng library. Dito, ipinapasa namin ang dalawang variable. Ang GUID ay nai-save sa pribadong variable na tinukoy namin nang mas maaga at ang Client ay naipasa sa pamamagitan ng sanggunian upang maaari naming tawagan ang parehong instance na nakuha namin.

Ang pangunahing pagpapaandar ng getData ng silid-aklatan ay tinukoy sa susunod sa pamamagitan ng unang pagtukoy sa uri ng pagbabalik, na sinusundan ng pangalan ng silid-aklatan at ang pangalan ng pag-andar. Hindi ko idedetalye ang ginagawa ng bawat solong linya sa pagpapaandar na ito, ngunit sa pangkalahatan, ang pagpapaandar ay magbubukas ng isang koneksyon sa YouTube Sight server, nagpapadala sa kahilingan upang makuha ang mga istatistika at pagkatapos ay i-parse ang naibalik na data sa tulong ng ang pribadong pagpapaandar ng getValue.

Ang mga nakuha na resulta ay itatakda sa variable ng channelStats at isang tagapagpahiwatig ay ibinalik kung nagtagumpay kaming makuha ang mga resulta o hindi at kasama na ang core ng aming library ay kumpleto.

Hakbang 5: Pagbibigay ng Mga Halimbawa ng Sketch

Pagbibigay ng Mga Halimbawa ng Sketch
Pagbibigay ng Mga Halimbawa ng Sketch

Karaniwan ikaw, ang bawat silid-aklatan ay nagbibigay ng mga halimbawa na mabilis mong mai-load at magamit upang maipakita kung ano ang maaaring gawin ng silid-aklatan at kung paano ito gawin. Upang makapagbigay ng mga nasabing halimbawa, kailangan naming baguhin ang istraktura ng library kung saan ang header at ang source file ay nasa isang folder na "src" at isang bagong folder ay idaragdag sa ilalim ng ugat ng library na tinatawag na "mga halimbawa".

Ang anumang sketch ng Arduino na inilagay mo sa loob ng folder na ito ay ihahatid mula sa Arduino IDE bilang isang halimbawa para sa iyong library at ang mga tao ay maaaring mabilis na tuklasin ito at malaman kung paano gumagana ang library.

Hakbang 6: Pag-publish sa Library Manager

Pag-publish sa Library Manager
Pag-publish sa Library Manager

Upang magamit ang silid-aklatan, kakailanganin lamang ng mga tao na isama ang header file ng iyong silid-aklatan sa kanilang sketch at ang Arduino IDE ay itatayo nito kasama nito. Ngunit upang magawa ito, kakailanganin muna nilang i-install ito sa kanilang mga machine.

Ang isang karaniwang paraan ay ang pag-download ng library mula sa GitHub at mai-install ito sa pamamagitan ng installer ng ZIP sa IDE o ilagay lamang ito sa loob ng folder ng mga aklatan tulad ng ginawa namin noong nilikha namin ito. Gayunpaman, nagsasama rin ang Arduino IDE ng isang tool, na tinatawag na Library Manager na nagbibigay-daan sa iyo upang maghanap para sa isang library nang direkta mula sa IDE.

Upang maisama ang iyong library dito, kailangan muna naming lumikha ng isang karagdagang file sa root folder na tinatawag na "library.properties" at dito, kailangan naming tukuyin ang pangalan ng library, ang kasalukuyang bersyon at ilang karagdagang impormasyon na makakatulong sa manager ng library upang maipakita ang mas mahusay na impormasyon tungkol dito.

Gamit ang file na nasa lugar, ang isang isyu ay kailangang likhain sa pahina ng Arduino GitHub na hinihiling lamang na isama ang iyong library sa index na may link dito at sa sandaling naaprubahan ito at idagdag ng kawani ng Arduino, gagawin ng manager ng Library ang simulang mag-alok ng iyong library sa mga resulta. Bilang karagdagan, hahanapin ng manager ang anumang mga tag ng bersyon sa repo ng GitHub sa hinaharap at mag-aalok ng isang pag-update sa mga taong gumagamit nito sa sandaling may mga pagbabago.

Hakbang 7: Susunod na Mga Hakbang

Inaasahan kong matapos ang Instructable na ito, mayroon kang mas mahusay na pag-unawa sa kung paano gumagana ang mga aklatan ng Arduino, kung paano ka makakalikha ng isa at pinakamahalaga, inaasahan kong magkaroon ka ng inspirasyon upang magsimulang magtrabaho sa iyong susunod na malaking ideya.

Para sa anumang karagdagang mga katanungan o mungkahi huwag mag-atubiling sumulat sa mga komento, mag-subscribe sa aking channel sa YouTube at sundin ako dito sa Mga Instructable.

Inirerekumendang: