Orodha ya maudhui:

IDE ya Arduino: Kuunda Bodi za Mila: Hatua 10
IDE ya Arduino: Kuunda Bodi za Mila: Hatua 10

Video: IDE ya Arduino: Kuunda Bodi za Mila: Hatua 10

Video: IDE ya Arduino: Kuunda Bodi za Mila: Hatua 10
Video: Lesson 02 Arduino IDE Software | Robojax Arduino Step By Step Course 2024, Julai
Anonim
IDE ya Arduino: Uundaji wa Bodi maalum
IDE ya Arduino: Uundaji wa Bodi maalum
IDE ya Arduino: Kuunda Bodi za Wastani
IDE ya Arduino: Kuunda Bodi za Wastani
IDE ya Arduino: Uundaji wa Bodi maalum
IDE ya Arduino: Uundaji wa Bodi maalum

Kwa miezi sita iliyopita nimetumia muda mwingi kusambaza maktaba tofauti kwa bodi ya Robo HAT MM1 iliyoundwa na Roboti Masters. Hii imesababisha kugundua mengi juu ya maktaba hizi, jinsi zinavyofanya kazi nyuma ya pazia na muhimu zaidi - nini cha kufanya kuongeza bodi mpya baadaye.

Hii ni ya kwanza katika safu ya maandishi ambayo nitafanya kusaidia wengine ambao wanataka kuweka maktaba kwa bandari zao. Vyanzo vingi vya habari vinaweza kuwa wazi au ngumu kwa watu wa nje kuelewa. Natumai 'kudhibitisha' na kuelezea jinsi ya kufikia bandari yenye mafanikio kwa kila mtu.

Leo, tutatazama Jukwaa la Arduino. Ina zaidi ya 700, 000 tofauti tofauti za bodi ulimwenguni kote na ni moja wapo ya majukwaa maarufu ya umeme kwa elimu, tasnia na watengenezaji.

Ningeweza kupata tu vyanzo vichache vya habari juu ya jinsi ya kufanya hivyo baada ya Utafutaji mwingi wa Google. Kwa hivyo nilidhani nitaandika juu ya jinsi nilivyofanya kwa undani.

Twende sasa!

Hatua ya 1: Kabla ya Kuanza

Kabla ya kuanza kwa kuweka maktaba ya programu au firmware kwenye bodi yako, lazima ujue vidokezo vichache muhimu juu ya teknolojia unayotumia na uweze kujibu maswali hapa chini.

  1. Je! Unatumia processor gani?
  2. Inatumia usanifu gani?
  3. Je! Nina idhini ya kupata data kwa microprocessor hii?
  4. Je! Kuna bodi kama hiyo kwenye soko inayotumia microprocessor sawa?

Hizi ni muhimu sana. Itaathiri mambo mengi ya jinsi unavyofikia mchakato wa maendeleo.

Bodi za Arduino kawaida hutumia idadi ndogo ya aina za usindikaji na usanifu. Ya kawaida kuwa anuwai ya ATMEGA kwa kutumia usanifu wa AVR (Arduino Uno). Kuna vizazi vipya vya Arduino kuwa kawaida zaidi kwa kutumia wasindikaji wa SAMD (ARM) na wasindikaji wengine wenye nguvu zaidi. Kwa hivyo ni muhimu kuangalia ni ipi unayotumia.

Hati ya data ya microprocessor ni muhimu sana kuhakikisha kuwa bodi inajibu kama inavyotarajiwa wakati unakusanya firmware. Bila hiyo, hautaweza kuweka kazi sahihi za kutoa pini au kusanidi bandari za serial.

Mara tu unapokuwa na habari yote unayohitaji kuhusu processor unayotumia, unaweza kuanza kutazama programu hiyo na kuibadilisha ili ifanye kazi kwa bodi yako ya kawaida.

Hatua ya 2: Muhtasari

Sehemu ngumu zaidi ya mradi wowote ni kupata mahali pazuri pa kuanzia. Hii sio tofauti. Nilijitahidi kupata mafunzo mazuri na maelezo ya kutosha juu ya jinsi ya kuunda bodi maalum za Arduino. Mafunzo mengi hukuonyesha jinsi ya 'kuongeza bodi maalum' lakini sio jinsi ya "kuunda bodi maalum". Hapa kuna muhtasari mfupi wa kile kinachohusika.

  1. Pakua Ufafanuzi wa Bodi iliyopo na Nakili
  2. Kusasisha Faili za Ufafanuzi (variant.h, varient.cpp)
  3. Unda Kiingilio cha Bodi (board.txt)
  4. Sasisha Toleo la Bodi (platform.txt)
  5. Kuandaa kwa Kufunga (json)
  6. Kufunga Bodi katika Arduino IDE

Kila hatua itaelezwa kwa undani hapa chini. Kutakuwa pia na majadiliano ya kina juu ya jinsi kila faili inavyoingiliana na kila mmoja kusaidia kufafanua jinsi kila kitu kinafanya kazi nyuma ya IDE ya Arduino.

Kwa mafunzo haya, nitakuonyesha jinsi ya kuunda bodi maalum kwa wasindikaji wa SAMD. Hasa haswa, SAMD21G18A - ambayo ni microprocessor iliyotumiwa kwenye bodi ya Robo HAT MM1 ambayo nilikuwa nikituma.

Nadhani pia unayo Arduino IDE 1.8 au imepakuliwa baadaye. Nilitumia Arduino 1.8.9 wakati wa kuandika.

Hatua ya 3: Kupakua Bodi Zilizopo

Kupakua Bodi Zilizopo
Kupakua Bodi Zilizopo
Kupakua Bodi Zilizopo
Kupakua Bodi Zilizopo
Kupakua Bodi Zilizopo
Kupakua Bodi Zilizopo

Hatua ya kwanza ni kupakua bodi ya Arduino inayofanana kabisa na bodi yako. Kwa bodi za SAMD, hii ndio Zero ya Arduino.

Tangu Arduino IDE 1.6, njia ya kupakua bodi mpya kwenye mazingira imekuwa kwa kuongeza faili maalum za JSON ambazo watengenezaji wa programu hutoa na kisha kusanikisha bodi za kawaida kwa kutumia "Meneja wa Bodi". Matoleo ya awali ya Arduino IDE yalitumia njia tofauti ambayo hatutajadili leo. Tutatengeneza faili yetu ya JSON baadaye katika mafunzo haya, hata hivyo, tunahitaji kuongeza bodi ya Zero ya Arduino kutumia njia hii kwanza.

Bahati nzuri kwetu, bodi tunayotaka kuipakua haiitaji faili ya JSON kwa sababu faili ya JSON imewekwa kifurushi na Arduino IDE - kwa hivyo tunahitaji tu kusanikisha bodi kutoka kwa "Meneja wa Bodi".

Ili kufanya hivyo, nenda kwenye "Zana" kisha upanue menyu ya "Bodi". Juu ya menyu ya "Bodi" itakuwa "Meneja wa Bodi". Bonyeza kwenye chaguo hili la menyu kuleta Meneja wa Bodi.

(Tazama Picha)

Wakati Meneja wa Bodi atafunguliwa, itaangalia faili zote za JSON ambazo zimehifadhiwa kwenye Arduino IDE na kisha kupakua mipangilio kutoka kwa faili. Unapaswa kuona orodha ndefu ya bodi za Arduino ambazo unaweza kusanikisha.

(Tazama Picha)

Tunavutiwa tu na bodi ya "Arduino SAMD (32-bits ARM Cortex-M0 +)" kwa mafunzo haya, lakini unaweza kupotoka na kusanikisha bodi unayohitaji kwa wakati huu. Tafadhali tafuta na usakinishe bodi ya "Arduino SAMD (32-bits ARM Cortex-M0 +)" bodi. Hii inaweza kufanywa kwa kubofya maandishi kutoka kwenye orodha ikifuatiwa na kitufe cha "Sakinisha" upande wa kulia ambacho kitaonekana baada ya kubofya maandishi. Itachukua dakika kadhaa kusakinisha.

Kwa maelezo zaidi kusanikisha bodi mpya: Adafruit wana mafunzo mazuri hapa ambayo inaelezea jinsi ya kusanikisha bodi zao za M0.

Sasa kwa kuwa faili za bodi zimewekwa, tuna uwezo wa kunakili ili ziweze kubadilishwa kwa bodi yako ya kawaida.

Hatua ya 4: Kupata na Kuiga Faili za Bodi

Kupata na Kuiga Faili za Bodi
Kupata na Kuiga Faili za Bodi
Kupata na Kuiga Faili za Bodi
Kupata na Kuiga Faili za Bodi
Kupata na Kuiga Faili za Bodi
Kupata na Kuiga Faili za Bodi

Kwa Windows Faili za Bodi ziko ndani (kumbuka kubadilisha jina la mtumiaji liwe jina lako la mtumiaji):

C: / Watumiaji / jina la mtumiaji / AppData / Mitaa / Arduino15 / vifurushi

Katika folda hii, lazima uingie kidogo kufikia faili ambazo unahitaji kunakili ili urekebishe. Kwa mafunzo haya tutakwenda na kupata faili za bodi ya Arduino Zero ambayo itawekwa kwa (kumbuka kubadilisha jina la mtumiaji kuwa jina lako la mtumiaji):

C: / Watumiaji / jina la mtumiaji / AppData / Mitaa / Arduino15 / vifurushi / arduino / vifaa / samd

Nakili folda iliyohesabiwa toleo iliyoko kwenye saraka hii kwenye folda mpya kwenye folda yako ya Nyaraka au folda unayochagua. Kwa madhumuni ya mafunzo haya, nitawaweka kwenye folda mpya inayoitwa 'bodi za desturi' ndani ya Hati.

Folda hiyo ina idadi ya folda na saraka. Wale ambao tutatumia wamebainika kwenye jedwali kwenye skrini.

Hatua ya 5: Kuunda Tofauti

Kuunda Lahaja
Kuunda Lahaja
Kuunda Lahaja
Kuunda Lahaja
Kuunda Lahaja
Kuunda Lahaja
Kuunda Lahaja
Kuunda Lahaja

Sasa tuko tayari kuanza kuunda kiingilio cha bodi ya kawaida. Kwa mafunzo haya, nitatumia Robo HAT MM1 kama mfano. Kama ilivyotajwa hapo awali, ni bodi ya msingi ya SAMD ambayo inalingana zaidi na ujenzi wa Zero ya Arduino.

Tutaanza kwa kwenda kwenye folda za lahaja na kunakili folda ya arduino_zero iliyoko hapo. Tutabadilisha jina la kibodi mpya 'robohatmm1'. Unaweza kuita yako yoyote upendayo.

(Tazama Picha)

Ndani ya folda ya robohatmm1 kutakuwa na pini mbili ambazo tunahitaji kuanza kuhariri: variant.cpp na variant.h. Fungua zote mbili.

Hii ilinichukua muda kufanya kazi, kwa hivyo nitaielezea hapa kukuokoa muda. Faili ya variant.cpp ina safu kubwa sana ya pini ambazo zinarejelewa kwa kila tofauti.h. Marejeleo yote ya pini katika variant.h ni kumbukumbu ya usanidi wa pini katika nafasi fulani katika safu ya variant.cpp.

(Tazama Picha ya Picha na Faili Mbili)

Kwa hivyo, mabadiliko yako mengi yatatokea katika faili hizi zote mbili lakini unahitaji kuhakikisha kuwa ukibadilisha mpangilio wa pini katika anuwai.cpp - lazima ubadilishe marejeleo kwenye faili ya kichwa (variants.h). Kwa Robo HAT MM1, nilihitaji tu kubadilisha pini na kazi zingine. Hii ilifanywa kwa anuwai.h. Niliongeza pini mpya za PWM kwani SAMD21 ina uwezo wa kushughulikia vituo 12 vya PWM. Niliongeza pia majina kadhaa ya Servos, Ishara (badala ya ADC / Digital) na ramani ya kawaida kwa kazi sahihi - kama SPI, UART na I2C.

Jambo muhimu kukumbuka ni kuangalia mara mbili kuwa marejeleo ya safu unayotumia kwa kazi zilizoainishwa katika anuwai.h inalingana na ile ya pini kwenye varaints.cpp - ambayo tutaiangalia sasa.

Variants.cpp ni faili yenye nguvu sana na muhimu. Inafanya kazi ngumu yote ya kuweka pini ili zilingane na mipangilio ya vifaa. Njia rahisi ya kuelezea hii ni kwa mfano na ufafanuzi wa kila sehemu.

(Tazama Picha ya Jedwali)

Mfano (dondoo kutoka kwa anuwai.cpp)

{PORTA, 22, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE}, // SDA

Hii ni pini ya kwanza katika safu ya variants.cpp ya Robo HAT MM1. Jedwali kutoka kwa hati ya data limetolewa kama picha (meza ya kijivu).

(Tazama Picha)

Pini hii hutumiwa kwa Kazi ya Pin ya Takwimu ya I2C. Kuangalia meza, tunaweza kuona kwamba pini hii inaweza kutumika kama pini ya I2C SDA (mwanzo mzuri!). Pini inaitwa "PA22" ambayo ni fupi kwa PORTA kwenye pini ya 22. Mara moja tunaweza kuweka PORT na nambari ya siri kwa pini hii.

Jambo la pili tunalohitaji kufanya ni kuweka pini kama bandari ya mawasiliano ya serial. Pini ina mawasiliano ya mfululizo yanayopatikana kupitia kazi C (PIO_SERCOM) kwa kutumia SERCOM 3 na D kutumia SERCOM5 (PIO_SERCOM_ALT). Kwa madhumuni ya Robo HAT MM1, tunatumia SERCOM3 kwa mawasiliano ya I2C. Hii ni kwenye Kazi C; aka. PIO_SERCOM kwa anuwai.cpp.

Kwa kuwa tunapanga kutumia pini hii kama I2C SDA, hakuna haja ya kuweka kazi zingine zozote. Zote zinaweza kuwekwa kama "Hapana" au "Sio" chaguzi kutoka meza ya awali. Walakini, ikiwa tunataka kutumia kazi zingine - tunaweza kupita kwenye hati ya data na kuziweka zote kwenye nafasi sahihi. Yote yako kwenye data.

Kubadilisha faili anuwai kunaweza kuchukua muda. Kuwa mwangalifu na kila mara angalia mara tatu.

Hatua ya 6: Unda Ufafanuzi wa Bodi

Unda Ufafanuzi wa Bodi
Unda Ufafanuzi wa Bodi

Mara baada ya kuwa na faili anuwai zilizo tayari, inapaswa kuwa moja kwa moja kutoka hapa. Kazi nyingi zitakuwa za kunakili na kubandika au kurekebisha na kusasisha faili.

Kuanzia na bodi.txt.

(Tazama Picha)

Utataka kunakili na kubandika ufafanuzi wa bodi ambayo iko tayari. Napenda kupendekeza Zero ya Arduino tena.

Kwa urahisi, badilisha tu jina la bodi (mstari wa kwanza), usb_product, usb_manufacturer, na lahaja (robohat). Unaweza kubadilisha hoja zingine baadaye ili zikidhi mahitaji yako - kama vile bootloader maalum au USB VID / PID tofauti za kutambua bodi yako.

Lahaja ya bodi lazima ilingane na jina lililopewa folda iliyoundwa mwanzoni. Kwa mafunzo haya niliiita 'robohatmm1'.

Pia inashauriwa ubadilishe sehemu ya kwanza ya kila mstari ili ilingane na jina la bodi yako. Katika picha ya skrini imebadilishwa kuwa 'robo_hat_mm1'. Unapaswa kuchagua jina la bodi yako na muundo sawa.

Hiyo yote ni kwa board.txt isipokuwa unataka kufanya marekebisho zaidi yaliyotajwa hapo juu baadaye.

Hatua ya 7: Sasisha Toleo la Bodi

Sasisha Toleo la Bodi
Sasisha Toleo la Bodi

Katika majukwaa.txt badilisha jina kwa jina la bodi yako ya kawaida. Pia badilisha nambari ya toleo. Kumbuka kile unachoweka hii, tutahitaji baadaye.

Hatua ya 8: Unda Faili ya Kifurushi cha JSON

Unda Faili ya Kifurushi cha JSON
Unda Faili ya Kifurushi cha JSON
Unda Faili ya Kifurushi cha JSON
Unda Faili ya Kifurushi cha JSON

Ili kusanikisha bodi yako katika Arduino IDE, utahitaji kuunda faili ya JSON ambayo utaingiza. Faili ya JSON inamwambia Arduino IDE wapi kupata faili za kusakinisha bodi, ni vifurushi vipi vya ziada vinahitajika na bits zingine kadhaa za metadata.

Ni muhimu sana uhifadhi faili hii nje ya folda ambayo tumekuwa tukifanya kazi.

Faili nyingi zinaweza kunakiliwa na kubandikwa katika moja yako. Utahitaji tu kubadilisha sehemu ya "bodi" na metadata nyingine juu ya faili. Tazama picha ya skrini kwa kile kinachopaswa kusasishwa.

(Tazama Picha)

  • Sehemu Nyekundu: Hii ni metadata ambayo watumiaji wanaweza kutumia kupata msaada. Ina umuhimu mdogo sana wa kiufundi.
  • Sehemu ya Bluu: Yote haya ni muhimu. Wanaonyesha katika Arduino IDE. Jina, Usanifu na Toleo zote zitaonyeshwa kwa mtu yeyote ambaye anajaribu kusanikisha kifurushi. Hapa ndipo unahitaji kuweka nambari ya toleo kutoka kwa majukwaa.txt. Sehemu ya pili ya bluu ni orodha ya bodi ambazo zimejumuishwa kwenye kifurushi. Unaweza kuwa na bodi nyingi.
  • Sehemu ya Kijani: Sehemu hii inahitaji maelezo zaidi.

(Tazama Jedwali kwenye Picha)

Mara tu ukiunda faili ya zip, umepata checksum ya faili ya zip na saizi ya faili, sasa unaweza kupakia faili ya zip mahali. Utahitaji kuweka URL hiyo kwenye uwanja wa 'url'. Ikiwa jina au maelezo yoyote hapo juu si sahihi, bodi yako maalum itashindwa kusakinisha.

Hakikisha pia kupakia faili yako ya package_boardname_index.json kwenye eneo la umma kwenye wavuti. GitHub ni chaguo nzuri.

Faili ya bodi ya desturi ya Robo HAT MM1 inaweza kupatikana hapa.

Hatua ya 9: Hatua ya Mwisho - Sakinisha Bodi yako ya Kawaida

Hatua ya Mwisho - Sakinisha Bodi yako ya Desturi!
Hatua ya Mwisho - Sakinisha Bodi yako ya Desturi!
Hatua ya Mwisho - Sakinisha Bodi yako ya Desturi!
Hatua ya Mwisho - Sakinisha Bodi yako ya Desturi!

Yote yanaenda vizuri, sasa unapaswa kuweza kuingiza faili yako ya JSON katika Arduino IDE na usakinishe bodi yako ya kawaida.

Ikiwa ni pamoja na faili ya JSON ni rahisi! Katika Arduino IDE - nenda tu kwenye "Faili"> "Mapendeleo" na unakili na ubandike mahali (URL) ya package_boardname_index.json yako kwenye sehemu ya "URL za Meneja wa Bodi za Ziada" chini ya menyu ya Mapendeleo.

(Tazama Picha)

Kisha piga sawa.

Tumia maagizo kutoka hapo juu ya kufunga bodi mpya ikiwa umesahau. Kumbuka kutafuta bodi yako ya kawaida wakati huu!

(Tazama Picha)

Kwa maelezo zaidi kusanikisha bodi mpya: Adafruit wana mafunzo mazuri hapa ambayo inaelezea jinsi ya kusanikisha bodi zao za M0.

Hatua ya 10: Hitimisho

Hitimisho
Hitimisho
Hitimisho
Hitimisho

Hii imekuwa ya kufurahisha kuunda bodi za kawaida za Arduino. Bado kuna mengi kwangu ya kujaribu baadaye (kuongeza bandari za ziada za serial) lakini imekuwa uzoefu mzuri wa kujifunza!

Hakikisha kuangalia pia kampeni ya Ugavi wa Umati. Inamalizika mnamo Juni 11 2019.

www.crowdsupply.com/robotics-masters/robo-…

Natumahi hii ilikusaidia au ukafurahi kusoma pamoja!

Asante!

Ilipendekeza: