Kazalo:

Arduino IDE: Ustvarjanje plošč po meri: 10 korakov
Arduino IDE: Ustvarjanje plošč po meri: 10 korakov

Video: Arduino IDE: Ustvarjanje plošč po meri: 10 korakov

Video: Arduino IDE: Ustvarjanje plošč po meri: 10 korakov
Video: Leap Motion SDK 2024, Junij
Anonim
Arduino IDE: Ustvarjanje plošč po meri
Arduino IDE: Ustvarjanje plošč po meri
Arduino IDE: Ustvarjanje plošč po meri
Arduino IDE: Ustvarjanje plošč po meri
Arduino IDE: Ustvarjanje plošč po meri
Arduino IDE: Ustvarjanje plošč po meri

V zadnjih šestih mesecih sem porabil veliko časa za prenos različnih knjižnic na ploščo Robo HAT MM1, ki jo je razvil Robotics Masters. To je pripeljalo do odkrivanja veliko o teh knjižnicah, njihovem delovanju v ozadju in kar je najpomembneje - kaj storiti za dodajanje novih plošč v prihodnosti.

To je prvo v nizu zapisov, s katerimi bom pomagal drugim, ki želijo prenašati knjižnice za svoje deske. Številni viri informacij so lahko nejasni ali jih tujci težko razumejo. Upam, da bom 'demistificiral' in razložil, kako doseči uspešno pristanišče za vse.

Danes si bomo ogledali platformo Arduino. Ima več kot 700.000 različnih različic plošč po vsem svetu in je ena izmed najbolj priljubljenih elektronskih platform za izobraževanje, industrijo in izdelovalce.

Po številnih Googlovih iskanjih sem lahko našel zelo omejene vire informacij o tem, kako to storiti. Zato sem mislil, da bom podrobno pisal o tem, kako sem to naredil.

Tukaj smo!

Korak: Preden začnete

Preden začnete s prenosom knjižnice programske opreme ali vdelane programske opreme na tablo, morate poznati nekaj ključnih točk o tehnologiji, ki jo uporabljate, in znati odgovoriti na spodnja vprašanja.

  1. Kateri procesor uporabljate?
  2. Kakšno arhitekturo uporablja?
  3. Ali imam dostop do podatkovnega lista za ta mikroprocesor?
  4. Ali obstaja na trgu podobna plošča, ki uporablja isti mikroprocesor?

Ti so zelo pomembni. To bo vplivalo na številne vidike vašega pristopa k razvojnemu procesu.

Plošče Arduino običajno uporabljajo omejeno število tipov in arhitektur procesorjev. Najpogostejša je paleta ATMEGA z arhitekturo AVR (Arduino Uno). Nove generacije Arduinosov postajajo vse pogostejše z uporabo procesorjev SAMD (ARM) in drugih močnejših procesorjev. Zato je pomembno, da preverite, katero uporabljate.

Podatkovni list za mikroprocesor je bistvenega pomena za zagotovitev, da se plošča odzove po pričakovanjih pri sestavljanju vdelane programske opreme. Brez tega ne boste mogli nastaviti pravilnih izhodnih funkcij pin ali konfigurirati serijskih vrat.

Ko imate vse potrebne informacije o procesorju, ki ga uporabljate, lahko začnete gledati programsko opremo in jo spreminjati tako, da bo delovala za vašo ploščo po meri.

2. korak: Pregled

Najtežji del vsakega projekta je najti dobro izhodišče. To ni nič drugače. Težko sem našel dobre vaje z dovolj podrobnostmi o tem, kako ustvariti plošče po meri za Arduino. Večina vadnic vam pokaže, kako "dodate ploščo po meri", ne pa tudi, kako "ustvarite ploščo po meri". Tukaj je kratek povzetek tega, kar je vključeno.

  1. Prenesite obstoječe definicije odbora in kopirajte
  2. Posodabljanje datotek definicije (variant.h, varient.cpp)
  3. Ustvari vnos na ploščo (board.txt)
  4. Posodobi različico plošče (platform.txt)
  5. Priprava na namestitev (json)
  6. Namestitev plošče v Arduino IDE

Vsak korak bo spodaj podrobno razložen. Potekala bo tudi obsežna razprava o tem, kako vsaka datoteka medsebojno sodeluje, da bi razjasnili, kako vse deluje za Arduino IDE.

V tej vadnici vam bom pokazal, kako ustvariti ploščo po meri za procesorje SAMD. Natančneje, SAMD21G18A - mikroprocesor, ki se uporablja na plošči Robo HAT MM1, ki sem jo prenašal.

Predvidevam tudi, da ste že prenesli Arduino IDE 1.8 ali novejšo različico. V času pisanja sem uporabljal Arduino 1.8.9.

3. korak: Prenesite obstoječe plošče

Prenos obstoječih plošč
Prenos obstoječih plošč
Prenos obstoječih plošč
Prenos obstoječih plošč
Prenos obstoječih plošč
Prenos obstoječih plošč

Prvi korak je, da prenesete najbližjo različico plošče Arduino, ki ustreza vaši plošči. Za plošče SAMD je to Arduino Zero.

Od Arduino IDE 1.6 je bil način nalaganja novih plošč v okolje dodajanje posebnih datotek JSON, ki jih ponujajo razvijalci programske opreme, in nato namestitev plošč po meri z uporabo »Upravitelja plošč«. Prejšnje različice Arduino IDE so uporabljale drugačno metodo, o kateri danes ne bomo razpravljali. Kasneje v tej vadnici bomo ustvarili lastno datoteko JSON, vendar moramo najprej s to metodo dodati ploščo Arduino Zero.

Na našo srečo plošča, ki jo želimo prenesti, ne potrebuje datoteke JSON, ker je datoteka JSON vnaprej združena z Arduino IDE - zato moramo ploščo samo namestiti iz »Upravitelja plošč«.

Če želite to narediti, pojdite na »Orodja« in nato razširite meni »Board«. Na vrhu menija »Board« bo »Upravitelj odborov«. Kliknite to možnost menija, da odprete Upravitelja odborov.

(Glej slike)

Ko se upravitelj plošč odpre, si bo ogledal vse datoteke JSON, ki jih je shranil v Arduino IDE, in nato prenesel nastavitve iz datoteke. Videti bi morali dolg seznam razpoložljivih Arduino plošč, ki jih lahko namestite.

(Glej slike)

Za to vadbo nas zanima samo plošča »Arduino SAMD plošče (32-bitni ARM Cortex-M0+)«, vendar bi lahko na tej točki odstopili in namestili ploščo, ki jo potrebujete. Poiščite in namestite ploščo »Arduino SAMD plošče (32-bitni ARM Cortex-M0+)«. To lahko storite s klikom na besedilo s seznama, ki mu sledi gumb »Namesti« na desni strani, ki se prikaže, ko kliknete besedilo. Namestitev bo trajala nekaj minut.

Za več podrobnosti o namestitvi novih plošč: Adafruit ima tukaj odličen vodič, ki pojasnjuje, kako namestiti njihove plošče Feature M0.

Zdaj, ko so datoteke plošče nameščene, jih lahko kopiramo, tako da jih lahko spremenite za svojo ploščo po meri.

4. korak: Iskanje in kopiranje datotek na plošči

Iskanje in kopiranje datotek na plošči
Iskanje in kopiranje datotek na plošči
Iskanje in kopiranje datotek na plošči
Iskanje in kopiranje datotek na plošči
Iskanje in kopiranje datotek na plošči
Iskanje in kopiranje datotek na plošči

V sistemu Windows so datoteke Board (ne pozabite spremeniti uporabniškega imena v svoje uporabniško ime):

C: / Uporabniki / uporabniško ime / AppData / Local / Arduino15 / paketi

V tej mapi morate iti malo globlje, da pridete do datotek, ki jih morate kopirati, da jih spremenite. Za to vadnico bomo dobili datoteke plošče Arduino Zero, ki bodo nameščene na (ne pozabite spremeniti uporabniškega imena v svoje uporabniško ime):

C: / Users / username / AppData / Local / Arduino15 / packages / arduino / hardware / samd

Kopirajte mapo z oštevilčeno različico, ki se nahaja v tem imeniku, v novo mapo v mapi Dokumenti ali po vaši izbiri. Za namene te vadnice jih bom dal v novo mapo z imenom »deske po meri« v dokumentu.

Mapa vsebuje številne mape in imenike. Tiste, ki jih bomo uporabljali, so zapisane v tabeli na posnetku zaslona.

5. korak: Ustvarjanje variante

Ustvarjanje variante
Ustvarjanje variante
Ustvarjanje variante
Ustvarjanje variante
Ustvarjanje variante
Ustvarjanje variante
Ustvarjanje variante
Ustvarjanje variante

Zdaj smo pripravljeni na ustvarjanje vnosa na desko po meri. Za to vadnico bom kot primer uporabil Robo HAT MM1. Kot smo že omenili, gre za ploščo na osnovi SAMD, ki je najbližje ugradnji Arduino Zero.

Začeli bomo tako, da gremo v mapo variants in kopiramo mapo arduino_zero, ki se nahaja tam. Novo različico plošče bomo preimenovali v "robohatmm1". Svojega lahko pokličete, kot želite.

(Glej sliko)

Znotraj mape robohatmm1 bosta dva zatiča, ki ju moramo začeti urejati: variant.cpp in variant.h. Odprite oba.

To mi je vzelo nekaj časa, da sem telovadil, zato vam bom tukaj razložil, da vam prihranim nekaj časa. Datoteka variant.cpp vsebuje zelo veliko paleto zatičev, na katero se sklicuje celotna varianta.h. Vse reference pin v variant.h so sklicevanje na konfiguracijo pin na določenem mestu v nizu variant.cpp.

(Glejte posnetek zaslona z dvema datotekama)

Večina vaših urejanj bo torej v obeh datotekah, vendar se morate prepričati, da morate, če spremenite vrstni red zatičev v variants.cpp, spremeniti sklice v datoteki z glavo (variants.h). Za Robo HAT MM1 sem moral spremeniti le nekaj zatičev in funkcij. To je bilo storjeno v variantah.h. Dodal sem nekaj novih PWM nožic, saj SAMD21 zmore 12 PWM kanalov. Pravim funkcijam sem dodal nekaj imen za servomotorje, signale (namesto ADC/Digital) in preslikavo po meri - na primer SPI, UART in I2C.

Pomembno je opozoriti, da morate dvakrat preveriti, ali se sklice na matriko, ki jih uporabljate za funkcije, opisane v variants.h, ujemajo s tistimi iz zatiča v varaints.cpp - ki jih bomo zdaj pogledali.

Variants.cpp je zelo močna in pomembna datoteka. Opravlja vse trdo delo pri nastavljanju zatičev tako, da ustrezajo nastavitvam strojne opreme. To najlažje razložite s primerom in razlago vsakega dela.

(Glejte tabelo na posnetku zaslona)

Primer (izvleček iz variants.cpp)

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

To je prvi pin v nizu variants.cpp za Robo HAT MM1. Tabela iz podatkovnega lista je podana kot slika (siva tabela).

(Glej slike)

Ta poseben pin se uporablja za funkcijo podatkovnega pin I2C. Če pogledamo tabelo, lahko vidimo, da se ta pin lahko uporablja kot pin I2C SDA (dober začetek!). Pin ima ime "PA22", kar je okrajšava za PORTA na zatiču 22. Takoj lahko nastavimo PORT in številko za ta pin.

Naslednja stvar, ki jo moramo storiti, je, da pin nastavimo kot serijska komunikacijska vrata. Pin ima serijsko komunikacijo, ki je na voljo prek funkcije C (PIO_SERCOM) z uporabo SERCOM 3 in D z uporabo SERCOM5 (PIO_SERCOM_ALT). Za namene Robo HAT MM1 uporabljamo SERCOM3 za komunikacijo I2C. To je na funkciji C; aka. PIO_SERCOM za variante.cpp.

Ker nameravamo ta pin uporabiti samo kot I2C SDA, drugih funkcij ni treba nastaviti. Vse lahko nastavite kot možnosti »Ne« ali »Ne« iz prejšnje tabele. Če pa bi želeli uporabiti druge funkcije - bi lahko šli čez podatkovni list in jih vse vnesli v pravilne prostore. Vse je v podatkovnem listu.

Spreminjanje datotek z različicami lahko traja nekaj časa. Bodite previdni in vedno trojno preverite.

6. korak: Ustvarite definicijo odbora

Ustvarite definicijo odbora
Ustvarite definicijo odbora

Ko imate pripravljene datoteke z različicami, bi morale biti od tu naravnost naprej. Večina dela bo kopiranje in lepljenje ali spreminjanje in posodabljanje datotek.

Začenši z board.txt.

(Glej sliko)

Kopirati in prilepiti boste želeno definicijo plošče. Še enkrat bi priporočil Arduino Zero.

Zaradi poenostavitve spremenite samo ime plošče (prva vrstica), usb_product, usb_manufacturer in različico (robohat). Druge argumente lahko kasneje prilagodite svojim potrebam - na primer zagonski nalagalnik po meri ali različni VID/PID USB za identifikacijo vaše plošče.

Različica plošče se mora ujemati z imenom mape, ustvarjene na začetku. Za to vadnico sem jo poimenoval "robohatmm1".

Priporočljivo je tudi, da prvi del vsake vrstice spremenite tako, da se ujema z imenom vaše plošče. Na posnetku zaslona je bil spremenjen v "robo_hat_mm1". Izbrati morate ime za svojo tablo z enako obliko.

To je vse za board.txt, razen če želite kasneje narediti zgoraj omenjene spremembe.

7. korak: Posodobite različico plošče

Posodobi različico plošče
Posodobi različico plošče

V platform.txt spremenite ime v ime svoje deske po meri. Spremenite tudi številko različice. Ne pozabite, na kaj ste to nastavili, potrebovali jo bomo kasneje.

8. korak: Ustvarite datoteko paketa JSON

Ustvarite datoteko paketa JSON
Ustvarite datoteko paketa JSON
Ustvarite datoteko paketa JSON
Ustvarite datoteko paketa JSON

Če želite ploščo namestiti v Arduino IDE, morate ustvariti datoteko JSON, ki jo boste uvozili. Datoteka JSON pove Arduino IDE, kje dobiti datoteke za namestitev plošče, kateri dodatni paketi so potrebni in nekaj drugih kosov metapodatkov.

Zelo pomembno je, da to datoteko shranite izven mape, v kateri smo pravkar delali.

Večino datoteke lahko kopirate in prilepite v svojo. Spremeniti boste morali le razdelek »deske« in druge metapodatke na vrhu datoteke. Oglejte si posnetek zaslona, kaj je treba posodobiti.

(Glej sliko)

  • Rdeči odsek: to so metapodatki, ki jih uporabniki lahko uporabijo za iskanje pomoči. Ima zelo malo tehničnega pomena.
  • Modri odsek: Vse to je pomembno. Prikazujejo se v Arduino IDE. Ime, arhitektura in različica bodo prikazani vsem, ki poskušajo namestiti paket. Tukaj morate vnesti številko različice iz platform.txt. Drugi modri del je seznam plošč, ki so vključene v paket. Lahko bi imeli več plošč.
  • Zeleni odsek: Ta razdelek potrebuje dodatno razlago.

(Glej tabelo na slikah)

Ko ustvarite datoteko zip, dobite kontrolno vsoto datoteke zip in velikost datoteke, lahko datoteko zip naložite na mesto. Ta URL boste morali vnesti v polje »url«. Če ime ali katera od zgornjih podrobnosti ni pravilna, se plošča po meri ne bo namestila.

Prav tako naložite datoteko package_boardname_index.json na javno lokacijo v internetu. GitHub je dobra izbira.

Datoteko plošče po meri Robo HAT MM1 najdete tukaj.

9. korak: Zadnji korak - Namestite svojo tablo po meri

Zadnji korak - Namestite svojo tablo po meri!
Zadnji korak - Namestite svojo tablo po meri!
Zadnji korak - Namestite svojo tablo po meri!
Zadnji korak - Namestite svojo tablo po meri!

Vse je v redu, zdaj bi morali vključiti datoteko JSON v Arduino IDE in namestiti svojo ploščo po meri.

Vključitev datoteke JSON je enostavna! V Arduino IDE - pojdite na »Datoteka«> »Nastavitve« in kopirajte in prilepite lokacijo (URL) svojega package_boardname_index.json v razdelek »URL -ji dodatnega upravitelja plošč« na dnu menija Nastavitve.

(Glej sliko)

Nato pritisnite OK.

Če ste pozabili, upoštevajte zgornja navodila za namestitev novih plošč. Tokrat ne pozabite poiskati svoje deske po meri!

(Glej sliko)

Za več podrobnosti o namestitvi novih plošč: Adafruit ima tukaj odličen vodič, ki pojasnjuje, kako namestiti njihove plošče Feature M0.

10. korak: Zaključek

Zaključek
Zaključek
Zaključek
Zaključek

Ustvarjanje Arduino plošč po meri je bilo zabavno. V prihodnosti moram še veliko eksperimentirati (dodati dodatna serijska vrata), vendar je bila to odlična učna izkušnja!

Oglejte si tudi akcijo Crowd Supply. Konča se 11. junija 2019.

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

Upam, da vam je to pomagalo ali ste se zabavali ob branju!

Hvala!

Priporočena: