Kutumia maktaba za Arduino. Jinsi ya kujua orodha ya maktaba zilizounganishwa kwenye IDE ya Arduino. Inasakinisha maktaba kwenye Mac OSX

Kusakinisha na kuunganisha maktaba kwa arduino ni operesheni ya kawaida; punde si punde msanidi programu yeyote atakumbana nayo. Nambari ya programu-jalizi ya nje katika lugha zote za programu hutumiwa kuokoa wakati. Arduino sio ubaguzi: sensorer nyingi, modules, skrini na motors zinahitaji kabisa nyaya tata mwingiliano ambao ni mgumu kutekeleza katika nambari yako. Ni rahisi zaidi na haraka kupakua maktaba inayohitajika, kuunganisha haraka kwa mikono au kutumia Kitambulisho cha Arduino, na kisha uitumie katika michoro yako yote. Katika makala hii utapata maelekezo mafupi juu ya kuunganisha na kutumia maktaba.

maktaba katika Arduino ni msimbo wa programu katika faili za nje, ambayo inaweza kusanikishwa na kushikamana na mchoro wako. Maktaba ina mbinu mbalimbali na miundo ya data ambayo inahitajika ili kurahisisha kazi na vitambuzi, viashiria, moduli na vipengele vingine. Kutumia maktaba hurahisisha sana kufanya kazi kwenye miradi kwa sababu unaweza kuzingatia mantiki kuu ya programu bila kupoteza wakati kwa vitu vingi vidogo. Leo, idadi kubwa ya maktaba imewekwa kwenye mtandao, ambapo inaweza kupakuliwa kwa urahisi, na bila malipo kabisa. inaweza kupatikana kwenye tovuti yetu.

Kwa mtazamo mfumo wa faili maktaba ni saraka iliyo na folda maalum. Wakati wa mkusanyiko na mkusanyiko Mradi wa Arduino IDE inajumuisha kiotomatiki katika msimbo wako madarasa hayo, miundo ya data na mbinu kutoka maktaba ambazo zimejumuishwa na kutumika kwenye mchoro. Kwa hivyo, jambo pekee tunalohitaji kufanya ni kuweka maagizo yanayofaa katika msimbo wetu, baada ya kuhakikisha kuwa maktaba inayohitajika imewekwa.

Jinsi ya kujua orodha ya maktaba zilizounganishwa kwa Arduino IDE

Kila maktaba iliyosakinishwa ina mfano mmoja au zaidi wa kufanya kazi nao. Zinatumika kuonyesha uwezo wa kifaa kilichounganishwa na Arduino. Kwa hiyo, wengi zaidi kwa njia ya haraka pata orodha ya maktaba zote za Arduino zilizosanikishwa - tumia orodha ya mifano kwenye IDE ya Arduino. Ili kufanya hivyo, chagua Faili kutoka kwa menyu kuu, na kisha ufungue menyu ndogo ya Mifano.

Njia nyingine ni kutumia menyu ya Mchoro na menyu ndogo - Jumuisha Maktaba. Huko unaweza pia kuona orodha ya maktaba:

Kuunganisha faili ya kichwa h na opereta ya #include

Ili kuanza kutumia maktaba, unahitaji kujumuisha faili ya kichwa cha h na maagizo ya pamoja mwanzoni mwa programu. Kwa mfano, ikiwa ni pamoja na maktaba ya LiquidCrystal.h itaonekana kama hii: #include

Unaweza kuona mfano kamili kwa kutumia maktaba yenyewe.

Faili zinazohitajika kwenye maktaba

Kila maktaba lazima iwe na angalau faili 2 - faili ya kichwa yenye kiendelezi .h na faili iliyo na msimbo wa chanzo na kiendelezi .cpp. Faili ya kichwa ina maelezo ya darasa, mara kwa mara na vigezo. Faili ya pili ina misimbo ya mbinu. Mbali na faili mbili kuu, inaweza kuwa na hati za maandishi keywords.txt na folda ya mifano yenye misimbo kwa mifano ya kutumia maktaba. Faili za h na cpp sio lazima ziko kwenye mzizi

Kuhariri faili hakuwezekani katika Arduino IDE; mabadiliko yote yanaweza kufanywa yoyote mhariri wa maandishi, au mazingira ya ukuzaji ya C++. Hii ni kutokana na ukweli kwamba katika IDE ya Arduino hatufanyi kazi na faili za cpp, mhariri wa kanuni haujaundwa kwa "safi" C, inafanya kazi tu na lugha ya Arduino.

Mahali pa kupata maktaba inayohitajika

Maktaba inayohitajika inaweza kupakuliwa kupitia mtandao. Maktaba nyingi zinapatikana kwenye Github. Baada ya kupakua maktaba, ni muhimu kuiongeza kwenye folda sahihi ili mkusanyaji apate na kupakia mchoro. Folda ambayo misimbo yote imehifadhiwa imeundwa kwenye kompyuta baada ya Ufungaji wa Arduino IDE. Kwa mfumo wa uendeshaji Folda ya Linux ina jina la "Scetchbook" na iko ndani / nyumbani/; kwenye Windows, folda ya "Arduino" inaweza kupatikana katika sehemu ya "Nyaraka Zangu".

Maktaba zote ambazo zimewekwa kwa kuongeza ziko kwenye folda ya "Maktaba". Kwa matoleo ya awali ya Arduino, unahitaji kuunda folda mwenyewe, lakini kuanzia toleo la 1.0.2, linaongezwa moja kwa moja wakati wa kufunga IDE ya Arduino.

Jinsi ya kufunga maktaba. Maagizo ya hatua kwa hatua

Mara baada ya maktaba ni kupakuliwa kwa PC yako, unahitaji kuanza kusakinisha. Kuna njia mbili za kufunga maktaba - kutumia Vifaa vya Arduino IDE na kwa mikono.

Muunganisho kwa kutumia Arduino IDE

Maktaba hupakuliwa kama kumbukumbu ya zip. Ili kuiwezesha kwa kutumia njia hii, kumbukumbu haihitaji kufunguliwa. Ili kuiweka, unahitaji kwenda kwenye menyu ya Mchoro - Unganisha maktaba - maktaba ya Ongeza.Zip.

Wakati dirisha linafungua, unahitaji kuchagua folda ya "kupakua" katika sehemu ya "PC hii". Ikiwa, baada ya kupakua maktaba, ilihifadhiwa kwenye eneo lingine, unahitaji kutaja.

Kisha unahitaji kuchagua faili iliyopakuliwa na bofya "kufungua".

Maktaba itasakinishwa na unaweza kuitumia. Ili kuanza kutumia mifano Faili - mifano, unahitaji kuanzisha upya mazingira ya maendeleo ya Arduino.

Inasakinisha maktaba mwenyewe kutoka kwa faili ya zip

Kabla ya kuanza usakinishaji, unahitaji kuondoka kwa IDE ya Arduino. Faili ya zip iliyopakuliwa na maktaba inahitaji kufunguliwa. Kama matokeo, tutapata folda ambayo faili za maktaba zilizo na kiendelezi .cpp na .h na saraka zitapatikana. Folda inayotokana itahitajika kuwekwa kwenye maktaba.

Katika Windows OS, folda ya maktaba inaweza kupatikana chini ya Hati Zangu - Arduino - njia ya maktaba. Kwenye Linux hii itakuwa folda ya maktaba iliyo na michoro.

Mwishoni, unahitaji kuanzisha upya IDE ya Arduino, maktaba iliyopakuliwa itapatikana kwa kuingizwa kupitia Mchoro - Unganisha Maktaba.

Hitilafu wakati wa kuunganisha maktaba ya Arduino

Chini ni orodha makosa iwezekanavyo wakati wa kusanikisha maktaba na njia za kushughulikia:

  • 'xxxx' haina jina la aina - hitilafu kama hiyo inaonekana ikiwa maktaba bado haijasakinishwa, folda au maktaba imetajwa vibaya, imebainishwa. anwani isiyo sahihi eneo la folda au mazingira hayajaanzishwa upya Maendeleo ya Arduino IDE.
  • Eneo lisilo sahihi la folda - Ikiwa kosa hili linaonyeshwa, unahitaji kuangalia ikiwa maktaba iko kwenye folda ambayo inaweza kutafutwa na mazingira.
  • Jina batili la maktaba - hitilafu inaonekana ikiwa jina baada ya #include hailingani na jina la maktaba.
  • Maktaba ambayo haijakamilika - inaweza kuonekana ikiwa sio zote zimepakuliwa faili muhimu na folda.
  • Utegemezi wa maktaba - kwa kuwa aina hii ya maktaba inafanya kazi tu na zile za ziada, unahitaji kuzijumuisha mwanzoni.

Maktaba za Arduino ni zana rahisi ya kusambaza nambari. Kwa mfano, hizi zinaweza kuwa madereva ya vifaa au kazi zinazotumiwa mara kwa mara.

Mwongozo huu unaeleza kwa kina jinsi ya kusakinisha maktaba kwenye kompyuta yako.

Kuna aina mbili kuu za maktaba ya Arduino: ya kawaida na ya ziada.

Maktaba za Kawaida

IDE ya Arduino ina seti maktaba za kawaida, ambayo hutumiwa mara nyingi sana. Maktaba hizi zinaunga mkono mifano yote ambayo imejumuishwa kwenye IDE ya Arduino. Maktaba za kawaida zinasaidia kazi za kufanya kazi na vifaa vya kawaida vya pembeni, kwa mfano: servo motors au skrini za LCD.

Maktaba za kawaida zimewekwa kwenye folda ya "Maktaba" wakati wa kusakinisha IDE ya Arduino. Ikiwa una matoleo mengi ya IDE iliyosakinishwa, kila toleo litakuwa na seti yake ya maktaba. Inapendekezwa sana kutobadilisha maktaba za kawaida na kusanikisha zingine kwenye folda moja.

Maktaba za ziada

Idadi kubwa ya maktaba za ziada na utendaji rahisi na madereva mbalimbali vifaa vya pembeni. Maktaba huchapishwa zaidi kwenye Uwanja wa Michezo wa Arduino, Github na Msimbo wa Google. Uandishi wa maktaba za Arduino mara nyingi hufanywa na watengenezaji wa sensorer, transducers, bodi za mzunguko zilizochapishwa Nakadhalika. Kwa mfano, Adafruit inatoa zaidi ya maktaba 100 zinazotumia miundo yote ya mbao za Arduino.

Sakinisha maktaba za ziada kwenye folda ya Maktaba. Shukrani kwa hili, zinaweza kutumika katika matoleo yote ya IDE ya Arduino. Baada ya kusasisha toleo, hutalazimika kuzisakinisha tena!

Mahali pa kusakinisha maktaba

Ni muhimu kufunga maktaba kwenye folda sahihi. Vinginevyo, mkusanyaji hataweza kuzipata unapokusanya na kupakia msimbo wako.

Folda ambayo kila kitu kimehifadhiwa Michoro ya Arduino, huundwa kiotomatiki unaposakinisha IDE.

Kwenye Linux folda inaitwa "Scetchbook" na kwa kawaida iko ndani /home/<username>.

Kwenye Windows na Macintosh, folda inaitwa "Arduino" na iko kwenye folda ya Nyaraka.

Tafadhali kumbuka, hii ni muhimu! Katika folda ya "Nyaraka Zangu", folda nyingine inayoitwa "Arduino" imeundwa moja kwa moja!

Maktaba za ziada zinapaswa kuwekwa kwenye folda ya "Maktaba", ambayo iko ndani ya "Scetchbook" au "Arduino". Hapa ndipo IDE itatafuta maktaba zilizosanikishwa zaidi.

Kutoka kwa Arduino IDE 1.0.2 na baadaye, folda ya "Maktaba" imeundwa moja kwa moja. Kwa zaidi matoleo ya awali lazima iundwe kabla ya kusakinisha maktaba yako ya kwanza.

Fungua menyu na uchague "Faili-> Mapendeleo" kwenye IDE ya Arduino.

>

Tafuta eneo la michoro yako. Kawaida hii ni folda ya "Arduino" kwenye folda yako ya "Nyaraka Zangu".

Mara baada ya kuamua njia, nenda kwenye folda hiyo kwa kutumia File Explorer.


Ikiwa folda ya Maktaba haipo, unda folda mpya.


Ipe jina jipya "Maktaba".

Inasakinisha maktaba kwenye Windows

Ili kusakinisha maktaba kwenye Windows, fuata maagizo hapa chini.

Funga IDE ya Arduino

Hakikisha IDE ya Arduino imefungwa, kwani maktaba huchanganuliwa tu wakati IDE imepakiwa. Maktaba mpya haitafanya kazi hadi uanzishe tena IDE.

Pakua Faili ya Zip kutoka Github.


Nakili folda ambayo haijafungwa


Ibandike kwenye folda yako ya maktaba.


Mpe jina sahihi. Arduino IDE haitambui folda zilizo na dashi kwenye jina. Kwa hivyo utalazimika kubadilisha jina la folda. Unaweza kutumia chini ya dashi.


Anzisha tena IDE ya Arduino na uangalie ikiwa maktaba inaonekana kwenye kipengee cha menyu ya Faili-> Mifano.

Ili kuangalia, pakua moja ya mifano.


Kabla ya kupakia mfano kwenye ubao, angalia mchoro.


Inasakinisha maktaba kwenye Mac OSX

Ili kusakinisha kwa usahihi maktaba za ziada kwenye Mac OSX, fuata maagizo hapa chini

Funga IDE ya Arduino.

Pakua kumbukumbu na maktaba kutoka Github.


Pata kumbukumbu iliyopakuliwa kwenye folda ya vipakuliwa kwenye Mac yako.


Fungua na unakili maktaba kwenye folda ya maktaba ambayo iliundwa wakati ulisakinisha IDE ya Arduino.


Ipe maktaba jina halali. Kama ilivyo kwa Windows, folda zilizo na dashi hazisomeki.


Anzisha tena IDE ya Arduino. Maktaba inapaswa kuonekana kwenye menyu ya Faili-> Mifano.

Pakua moja ya mifano.


Tafadhali hakikisha kwamba mchoro ni sahihi kabla ya kuupakia kwenye Arduino yako.

Inasakinisha maktaba kwenye Linux

Ili kusakinisha maktaba maalum kwenye Linux, fuata maagizo hapa chini.

Tena, funga IDE ya Ardino.

Pakua kumbukumbu na maktaba tunayohitaji.


Tunahifadhi kumbukumbu kwa HDD PC yetu.


Pata kumbukumbu iliyopakuliwa kwenye folda ya vipakuliwa.


Fungua maktaba na uinakili kwenye folda ya Sketchbook/Libraries.


Ipe folda jina sahihi. Hakuna dashi!


Anzisha tena IDE ya Arduino na uangalie ikiwa maktaba inaonekana kwenye folda ya menyu ya Faili-> Mifano.

Hebu tupakue moja ya mifano.


Tunaangalia ikiwa faili ya mfano inajumuisha bila makosa.


Makosa ya kawaida wakati wa kusakinisha maktaba ya Arduino

"xxxx" haitaji aina


Hili ndilo kosa la kawaida wakati wa kufanya kazi na maktaba ya nje. Sababu ni kwamba mkusanyaji hawezi kupata maktaba. Sababu zinazowezekana kosa hili hutokea:

  • Maktaba haijasakinishwa (tazama maagizo ya usakinishaji hapo juu).
  • Mahali pa folda si sahihi.
  • Jina batili la folda.
  • Jina batili la maktaba.
  • Umesahau kuanzisha upya IDE ya Arduino.

Chini ni suluhisho la shida zinazowezekana

Mahali pa folda si sahihi

IDE hupata tu maktaba za kawaida na zile za ziada ambazo zimewekwa kwenye folda ya "Maktaba". Maktaba ambazo ziko katika maeneo mengine hazitaanzishwa

Folda ya maktaba inapaswa kuwa kwenye mzizi wa folda ya "Maktaba". Ukiunda folda ndogo ya ziada, IDE haitagundua maktaba.

Kumbuka: katika baadhi ya hazina za mtandaoni, maktaba hutumwa na ngazi ya ziada kiota cha folda. Angalia wakati huu. Faili za maktaba lazima ziwe kwenye folda ya kwanza, bila folda ndogo za ziada.

Sio maktaba kamili

Haupaswi kubadilisha jina la faili kwenye maktaba kwa kutumia herufi kubwa, dashi, nk.

Jina la folda si sahihi

IDE haigundui folda zilizo na wahusika fulani Katika kichwa. Kwa bahati mbaya, IDE haitumii dashi, ambazo hutolewa kwa majina ya faili kwenye Github. Kwa hiyo, baada ya kupakua kumbukumbu, badilisha jina la folda. Jina jipya lazima lisiwe na dashi. Unaweza kubadilisha herufi zote ('-') na ('_') kwa urahisi.

Jina batili la maktaba

Jina unalobainisha katika maagizo ya #jumuisha katika mchoro wako lazima lilingane kabisa na jina la darasa katika maktaba (nyeti kwa hali yoyote!). Ikiwa jina hailingani, IDE haitaunganishwa kazi zinazohitajika, madarasa, nk. Katika mifano inayokuja na maktaba, majina ni sahihi. Kwa hivyo ili kuzuia makosa ya bahati mbaya, unaweza kunakili na kubandika kwenye msimbo wako.

Matoleo mengi ya maktaba

Ikiwa una matoleo mengi ya maktaba, IDE ya Arduino itajaribu kuyapakia yote kwa wakati mmoja. Kama matokeo, hitilafu ya mkusanyiko inaweza kutokea. Kwa hivyo matoleo ya zamani au yasiyofanya kazi lazima yafutwe au kuhamishwa kutoka kwa katalogi ya maktaba.

Maktaba tegemezi

Maktaba zingine hutegemea maktaba zingine. Kwa mfano, Maktaba nyingi za Adafruit Graphic Display zinategemea Maktaba ya GFX ya Adafruit. Hiyo ni, kutumia maktaba ya kwanza unahitaji kuwa na ya pili imewekwa.

maktaba "Msingi".

Baadhi ya maktaba haziwezi kutumika moja kwa moja. Mfano mzuri, Maktaba ya GFX. Maktaba hii huwezesha maonyesho mengi kutoka kwa Adafruit, lakini haiwezi kutumika bila maktaba ya kiendeshi kwa onyesho hilo.

Umesahau kufunga Arduino IDE

Usisahau kwamba IDE hutafuta maktaba wakati wa kupakia. Kabla ya kutumia mpya maktaba iliyosakinishwa, IDE ya Arduino inahitaji kuwashwa upya.

Acha maoni yako, maswali na ushiriki uzoefu wa kibinafsi chini. Mawazo mapya na miradi mara nyingi huzaliwa katika majadiliano!

Kwa kazi rahisi na yenye tija na Arduino, inawezekana kutumia maktaba ya ziada. Maktaba za Arduino ni sehemu za mpango wa kutekeleza kazi maalum. Ukiwa na maktaba, unaweza kufanya vitendo changamano kwa mistari michache tu ya msimbo kwa sababu tayari mtu mwingine amekuandikia baadhi ya msimbo.

Katika Arduino IDE kiolesura cha mtumiaji kwa kufanya kazi na maktaba za Arduino. Moja kwa moja kutoka kwa menyu ya programu unaweza kupakua, kusakinisha na kuunganisha maktaba nyingi kwenye mchoro wako. Kwa maktaba nyingi za Arduino, unaweza kuona mifano ya matumizi. Hii itakusaidia kuelewa jinsi maktaba inavyofanya kazi. Mifano inaweza kurekebishwa ili kuendana na mahitaji yako na kutumika kutekeleza vifaa vyako mwenyewe.

Kuna maktaba za kawaida ambazo zimewekwa na IDE ya Arduino. Baadhi yao ni hata moja kwa moja ni pamoja na katika mchoro (kwa mfano Serial).

Pakua Maktaba za Kawaida za Arduino

Unaweza kupakua maktaba ya kawaida kwenye tovuti rasmi ya Arduino.

Huko utapata maelezo na mifano ya kutumia maktaba ya kawaida. Unaweza pia kupakua maktaba zote za kawaida katika kumbukumbu moja. Kumbukumbu hii haina maktaba za kawaida pekee, lakini pia maktaba nyingi za ziada maarufu za Arduino.

Chini ni maelezo ya kina na mifano ya kutumia maktaba za kawaida za Arduino.

  • - Maktaba ya kubadilishana data kupitia bandari ya serial(UART).
  • - Maktaba kwa udhibiti rahisi na sahihi wa servos.
  • - Maktaba ya kufanya kazi na miingiliano ya mawasiliano ya TWI/I2C. Hurahisisha ubadilishanaji wa data na vifaa, vitambuzi na uchunguzi.
  • WiFi- Muunganisho wa mtandao na kwa kutumia WiFi ngao.
  • TFT- Inahitajika kwa kuchora maandishi, picha na picha Onyesho la TFT Arduino.
  • stepper- Maktaba ya kudhibiti motors za stepper.
  • LiquidCrystal- Kwa Arduino inafanya kazi na skrini za kioo kioevu (LCD)
  • Ethaneti— Kuunganisha kwenye Mtandao kwa kutumia .
  • SD- Maktaba ya kuandika na kusoma habari kutoka kwa kadi za kumbukumbu za SD.
  • GSM- Maktaba ya kuunganisha Arduino kwa mitandao ya GSM. Inahitajika kwa usafirishaji na kupokea SMS na simu, pamoja na kufikia Mtandao kwa kutumia GPRS. Inatumika na.
  • EEPROM- Maktaba ya kusoma na kuandika kwa kumbukumbu isiyo ya tete ya Arduino.

Siku njema, wasomaji wapendwa na watumiaji wa tovuti ya Trashbox! Umewahi kujiuliza maktaba ni nini na kwa nini zinahitajika katika programu ya Arduino? Kwa hali yoyote, utapata majibu ya maswali haya yote mawili katika makala hii.

Ni nini?

Maktaba katika upangaji programu ni mkusanyiko wa taratibu au vitu vinavyotumiwa kutengeneza programu.
Ikiwa tunazingatia hali hiyo na lugha ya Arduino, basi hii ni seti ya vipengele vya msimbo ambavyo vimewekwa tofauti na mazingira ya maendeleo na hutumikia kuingiliana na moduli au sensor yoyote.

Kwa uwazi zaidi, nitatoa mfano. Umeunganisha servo kwenye Arduino. Ili kuingiliana nayo, unahitaji kujumuisha maktaba iliyojengwa Huduma.h. Hii inafanywa mwanzoni mwa mchoro wako kwa kutumia amri # ni pamoja na Servo.h.
Maktaba Huduma.h inajumuisha seti ya amri za udhibiti unaofaa servo gari.

Huduma


Chini ni mfano wa nambari na maelezo.

#pamoja na // #include amri inajumuisha maktaba
Huduma myservo; // tangaza kigezo kinachoitwa myservo cha aina ya Servo
usanidi utupu () // utaratibu wa kawaida kuanzisha
{
myservo.ambatanisha(10); // command.attach hufunga servo kwa bandari 10 (nyingine yoyote inawezekana)
}
kitanzi utupu()
{
myservo.write(0); // command.write huzungusha shimoni la servo kwa pembe inayotaka (inaweza kuwa kutoka 0 hadi 180)

myservo.write(180); // mzunguko shimoni digrii 180
kuchelewa (2000); // sitisha sekunde 2
}

Unachohitaji kuangazia kutoka kwa nambari hii:

  • Tumia // kuonyesha maoni ya mstari mmoja, ikiwa inahitajika maoni ya mitandao mingi, kisha tunaiweka katika /*... */.
  • Kwa kutumia amri #pamoja na unaweza kuunganisha maktaba yoyote.
  • Timu .ambatisha() Na .andika() mali ya maktaba Huduma.h.
  • Timu kuchelewesha () haitumiki kwa maktaba Servo.h, yeye ni wa amri za kawaida Lugha ya Arduino.
  • Kabla ya amri yoyote jina huandikwa aina ya kutofautiana Huduma.
  • Tofauti moja inatumika kwa servo moja tu.
Kuna maktaba nyingi, na unaweza kuzipakua kwenye mtandao ikiwa utaanza kutafuta unganisho la moduli unayohitaji. Kwa njia, lugha Programu ya Arduino inayoitwa Wiring na ni toleo lililorahisishwa la C++.

Jinsi ya kufunga maktaba?

Ili kutekeleza maktaba kwenye msimbo, unahitaji kuiweka, na kabla ya hapo unahitaji kuipakua. Maktaba unayopakua itakuwa katika mfumo wa kumbukumbu ambayo itahitaji kufunguliwa ufungaji zaidi. Ifuatayo, folda iliyo na maktaba lazima ihamishwe hadi kwenye folda ya Arduino/maktaba. Ufungaji wa kina Unaweza kuona viwambo hapa chini.




Ikiwa usakinishaji umefanikiwa, katika IDE ya Arduino utaweza kupata michoro za mfano kutoka kwa maktaba iliyowekwa.


Ni muhimu kusema kwamba kabla ya kutumia maktaba mpya iliyosanikishwa, IDE ya Arduino lazima ianzishwe tena.

Aina za maktaba

Maktaba zote za Arduino zinaweza kugawanywa katika aina kadhaa:
  • Maktaba za kawaida (zilizojengwa ndani) ni zile maktaba ambazo zimejengwa ndani ya Arduino IDE. Hawahitaji ufungaji tofauti na zinapatikana kwa matumizi mara baada ya kusakinisha IDE ya Arduino.
  • Maktaba za ziada ni zile maktaba ambazo hazijajengwa ndani ya Arduino IDE. Wanaweza kupatikana kwenye mtandao, kwa mfano, kwenye Github. Uendelezaji wa maktaba hizi unafanywa hasa na watengenezaji wa sensorer.
  • Maktaba tegemezi - maktaba hizi zimeainishwa kuwa za ziada. Maktaba ambayo haiwezi kufanya kazi bila nyingine inaitwa tegemezi.

Kwa nini maktaba zinahitajika?

Maktaba katika lugha ya programu ya Arduino zinahitajika ili kurahisisha msimbo na kufanya kazi nao modules mbalimbali. Kimsingi, amri moja kutoka kwa maktaba huficha mistari kadhaa ya msimbo iliyoandikwa na muundaji wa maktaba. Kinadharia, moduli nyingi zinaweza kudhibitiwa bila maktaba, hata hivyo, kuandika mchoro kwa hili itachukua muda mwingi na jitihada. Lakini bado, huna uwezekano wa kudhibiti onyesho la LCD bila usaidizi wa maktaba.

Ndiyo sababu onyesho linachukuliwa kuwa moja ya moduli ngumu zaidi kwa Kompyuta. Hebu tuangalie mfano wa mchoro wa kudhibiti onyesho, kwa sababu unahusisha maktaba mbili mara moja.


onyesho la lcd na itifaki ya I2C


Walakini, hatutazingatia onyesho rahisi la maandishi, lakini moja iliyo na itifaki ya I2C. Itifaki ya I2C imewashwa ubao mdogo mweusi upande wa nyuma onyesho (picha ya pili). Bodi hii, pamoja na maktaba inayohusika, imeundwa ili kupunguza mistari ya msimbo na kupunguza idadi ya waya za kuunganisha, na kuifanya iwe nne tu.

#pamoja na // unganisha maktaba kufanya kazi na I2C
#pamoja na // unganisha maktaba kufanya kazi na onyesho la maandishi

LiquidCrystal_I2C lcd(0x27, 16, 2);
/* Ili kuonyesha kufanya kazi, unahitaji kupata anwani yake, lakini hatutazingatia hili katika makala hii. 16 - idadi ya seli kwa kila mstari. 4 - idadi ya mistari. Vigezo hivi vinaweza kubadilishwa kulingana na onyesho. */

usanidi utupu ()

{
lcd.anza(); // washa onyesho
lcd.backlight(); // wezesha taa ya nyuma
lcd.print("Habari, ulimwengu!"); // maandishi ya pato
}

kitanzi utupu()
{
// Hatuandiki chochote hapa
}

Nina hakika tayari umepata amri zinazohusiana na maktaba LiquidCrystal_I2C.h. Hii .anza .backlight Na .chapisha. Katika mchoro huu maktaba Waya.h inahitajika kwa operesheni sahihi Itifaki ya I2C.

Mstari wa chini

Maktaba ni muhimu sana katika upangaji programu. Wanaweza kurahisisha kwa kiasi kikubwa michoro ya uandishi na kufanya usimamizi wa moduli kufikiwa zaidi. Katika nakala hii, tuligundua maktaba ni nini, jinsi ya kuziweka, na kwa nini zinahitajika. Pia tuliangalia mifano michache. Ni hayo tu.

Hati hii inaelezea uundaji wa maktaba ya Arduino. Maelezo yataanza kwa kuandika mchoro wa kusambaza msimbo wa Morse kwa kutumia LED. Kisha itaonyeshwa jinsi ya kubadilisha mchoro kwenye maktaba. Hii itawawezesha watumiaji wengine kutumia kwa urahisi msimbo iliyoundwa, kusasisha na kuipanua.

Mchoro unazalisha tena msimbo wa Morse:

Int pin = 13; usanidi utupu() ( pinMode(pin, OUTPUT); ) kitanzi tupu() ( nukta(); nukta(); nukta(); nukta(); dashi(); dashi(); dashi(); nukta(); nukta(); nukta(); chelewesha(3000);) nukta tupu() (Andika kidijitali(pini, JUU); chelewesha(250); Andika kidijitali(pini, CHINI); chelewesha(250);) dashi utupu() (DijitaliAndika(pini, JUU ); kuchelewesha(1000); Andika kidijitali(pini, CHINI); chelewesha(250);)

Mchoro huu hutoa mawimbi ya SOS kwa kuwasha LED kwenye pin 13.

Mchoro una idadi ya vipande vya msimbo ambavyo vitahitajika kuhamishiwa kwenye maktaba. Kwanza, hizi ni kazi nukta () Na dashi(), ambayo hudhibiti kupepesa kwa LED. Pili, ni kutofautiana ledPin, kuamua ni bandari gani ya I/O ya kutumia. Na hatimaye, kazi wito pinMode(), ambayo huweka hali ya pato kwenye bandari ya I/O inayotumika .

Mchakato wa kubadilisha mchoro kuwa maktaba.

Maktaba ina faili mbili: faili ya kichwa (iliyo na kiendelezi cha .h) na faili za utekelezaji (pamoja na kiendelezi cha .cpp). Faili ya kichwa ina sifa za maktaba, i.e. orodha ya kila kitu kilichomo ndani yake. Faili ya kichwa itakayotolewa itaitwa Morse.h. Kwa kazi zaidi na faili ya kichwa, unahitaji kuangalia yaliyomo kwenye faili ya utekelezaji.

Faili ya kichwa ina darasa ambalo utendakazi hutangazwa na viambajengo vinavyotumika:

Class Morse ( public: Morse(int pin); void dot(); void dash(); private: int _pin; );

Darasa ndani kwa kesi hii hii ni seti ya vitendaji na vigeu vilivyounganishwa katika sehemu moja. Kazi na vigezo vinaweza kuwa vya umma ( umma), inamaanisha ufikiaji wa jumla kwao kila mtu anayetumia maktaba, au faragha ( Privat), ambayo inamaanisha kuwa zinaweza kufikiwa ndani ya darasa pekee. Kila darasa lina kazi maalum mjenzi, ambayo hutumiwa kuunda mfano wa darasa. Mjenzi ana jina sawa na darasa, lakini hana aina ya kurudi.

Pia faili ya kichwa ina kadhaa zaidi mistari ya ziada. Kwanza, hii ni maagizo #pamoja na, ambayo inatoa ufikiaji wa aina za kawaida Na lugha ya kudumu Programu ya Arduino (maagizo chaguo-msingi huongezwa kwa kila mchoro, lakini sio kwa maktaba). Maagizo yanaonekana kama hii (na iko juu ya tamko la darasa):

#pamoja na "WProgram.h"

Katika matoleo ya Arduino 1.0 na ya juu unahitaji pia kuongeza:

#pamoja na Arduino.h

Pia ni kawaida kuambatanisha yaliyomo kwenye kichwa cha faili katika muundo ufuatao:

#ifndef Morse_h #fafanua Morse_h // #jumuisha maagizo na msimbo huenda hapa #endif

Hii inazuia kuunganishwa upya maktaba yetu, ikiwa mtu amejumuisha maktaba kimakosa mara mbili na maagizo #pamoja na.

Mwanzoni mwa msimbo wa maktaba ni desturi kuweka maoni kuhusu madhumuni yake, mwandishi, tarehe na leseni ya maktaba.

Faili ya kichwa iliyokamilishwa ina:

/* Morse.h - Maktaba ya kuangaza msimbo wa Morse. Imeundwa na David A. Mellis, Novemba 2, 2007. Imetolewa kwa umma. */ #ifndef Morse_h #fafanua Morse_h #ni pamoja na "WProgram.h" darasa Morse ( public: Morse(int pin); void dot(); void dash(); private: int _pin; ); #endif

Hebu tuangalie faili ya utekelezaji ya Morse.cpp.

Kuna maagizo kadhaa mwanzoni mwa nambari #pamoja na. Maagizo haya huruhusu ufikiaji wa kiwango Kazi za Arduino na kwa sifa kwenye faili ya maktaba ya kichwa:

#pamoja na "WProgram.h" #pamoja na "Morse.h"

Inayofuata katika nambari ni mjenzi. Inatumika kuunda mfano darasa lililoundwa. Katika kesi hii, mtumiaji anataja idadi ya bandari ya I / O inayotumiwa kupitia parameter. Lango limewekwa kwa hali ya pato na nambari huhifadhiwa katika muundo wa kibinafsi kwa matumizi katika vitendaji vingine:

Morse::Morse(int pin) ( pinMode(pin, OUTPUT); _pin = pin; )

Kanuni Morse:: inamaanisha kuwa kazi ni ya darasa la Morse . Nafasi ya chini mwanzoni mwa jina la kutofautisha _ pinijina lililokubaliwa kwa vigezo vya kibinafsi. Kwa ujumla, jina linaweza kuwa chochote, lakini kwa mujibu wa kanuni zinazokubalika za majina, ni desturi kutumia kiambishi awali "_" kwa vigezo vya kibinafsi. Hii pia inafanya uwezekano wa kutofautisha kutoka kwa hoja ya kazi (katika kesi hii pini).

Utupu Morse::dot() (digitWrite(_pin, HIGH); delay(250); digitalWrite(_pin, LOW); chelewesha(250);) batili Morse::dash() (digitWrite(_pin, HIGH); chelewa( 1000); Andika kidijitali(_pin, CHINI); chelewesha(250);)

Ni kawaida kuweka maoni ya ufafanuzi mwanzoni mwa nambari kwenye faili ya utekelezaji. Msimbo kamili maktaba:

/* Morse.cpp - Maktaba ya kuangaza msimbo wa Morse. Imeundwa na David A. Mellis, Novemba 2, 2007. Imetolewa kwa umma. */ #pamoja na "WProgram.h" #pamoja na "Morse.h" Morse::Morse(int pin) ( pinMode(pin, OUTPUT); _pin = pin; ) void Morse::dot() ( digitalWrite(_pin, HIGH) ); chelewesha(250); Andika kidijitali(_pini, CHINI); chelewesha(250);) batili Morse::dashi() (DijitaliAndika(_pini, JUU); chelewesha(1000); Andika kidijitali(_pin, CHINI); chelewa(250) );)

Kwa kutumia maktaba.

Kwanza, unahitaji kuunda folda Morse katika folda ndogo maktaba saraka za notepad. Pili, unahitaji kunakili faili za Morse.h na Morse.cpp kwenye soz folda hii. Baada ya uzinduzi Programu za Arduino kwenye menyu Mchoro > LetaMaktaba Maktaba ya Morse itapatikana. Maktaba itakusanywa pamoja na michoro inayoitumia. Matatizo yakitokea wakati wa kuandaa maktaba, unahitaji kuangalia kuwa faili zake zina viendelezi .cpp na .h (hapapaswi kuwa na viendelezi vyovyote vya ziada .pde na .txt).

Mchoro wa awali, ulioandikwa upya kwa kutumia maktaba iliyoundwa, utaonekana kama hii:

#pamoja na Morse morse(13); usanidi utupu() () kitanzi tupu() ( morse.dot(); morse.dot(); morse.dot(); morse.dash(); morse.dash(); morse.dash(); morse.dot (); morse.dot(); morse.dot(); kuchelewa(3000);)

Tofauti chache kutoka kwa mchoro wa asili:

Kwanza, maagizo yameongezwa #pamoja na hadi mwanzo wa mchoro. Hii huamua upatikanaji wa maktaba ya Morse na muunganisho wake. Maktaba ambayo haijatumiwa inaweza kuondolewa kwa kuondoa maagizo #pamoja na.

Pili, mfano wa darasa la Morse huundwa, unaoitwa Morse:

Morse morse(13);

Wakati wa kutekeleza mstari huu (kabla ya kutekeleza kazi kuweka ()) mjenzi wa darasa la Morse anaitwa na anachukua hoja iliyotolewa kwa mfano (13).

Katika kesi hii, kazi kuweka () haina chochote, kwa sababu Simu ya pinMode() ilitokea ndani ya maktaba (wakati mfano wa darasa uliundwa).

Tatu, kwa kazi za kupiga simu nukta () Na dashi() kiambishi awali lazima kiongezwe Morse. - jina la mfano uliotumiwa. Kunaweza kuwa na matukio mengi ya darasa la Morse, kila moja ikiwa na nambari yake ya bandari iliyohifadhiwa katika tofauti ya ndani _pini. Simu ya kukokotoa kwenye tukio fulani huamua ni vigeu gani vinavyotumika wakati wa simu. Kwa kuzingatia mistari miwili ifuatayo:

Morse morse(13); Morse morse2(12);

ndani ya simu morse2.dot(), kutofautiana _pini itakuwa na thamani ya 12.

Kwa bahati mbaya, kuangazia msimbo kiotomatiki hakufanyi kazi na maktaba programu-jalizi. Ili backlight ifanye kazi, unahitaji kuunda faili inayoitwa maneno muhimu.txt. Mfano:

Morse KEYWORD1 dashi KEYWORD2 nukta KEYWORD2

Kinyume na kila mstari, ikitenganishwa na kichupo, ni neno lililohifadhiwa, na tena, likitenganishwa na kichupo, aina ya neno. Madarasa mechi neno lililohifadhiwa KEYWORD1 na rangi ya machungwa; kazi ni KEYWORD2 na zina rangi ya hudhurungi. Ili kutambua maneno, unahitaji kuanzisha upya mazingira ya maendeleo ya Arduino.

Inashauriwa daima kuongozana na maktaba iliyoundwa na mfano wa matumizi yake. Folda imeundwa kwa hili mifano katika saraka Morse. Kisha mchoro wa SOS ulioundwa mapema unakiliwa kwenye folda hii. (Faili ya mchoro inaweza kupatikana kupitia menyu Mchoro > ShowSketchFolder) Baada ya kuanza tena Arduino kwenye menyu Faili > Kitabu cha michoro > Mifano kutakuwa na uhakika Maktaba-Morse, yenye mfano. Unapaswa pia kuongeza maoni juu ya jinsi bora ya kutumia maktaba.