Sadržaj:

Arduino IDE: Izrada prilagođenih ploča: 10 koraka
Arduino IDE: Izrada prilagođenih ploča: 10 koraka

Video: Arduino IDE: Izrada prilagođenih ploča: 10 koraka

Video: Arduino IDE: Izrada prilagođenih ploča: 10 koraka
Video: CS50 2014 - Week 9 2024, Srpanj
Anonim
Arduino IDE: Stvaranje prilagođenih ploča
Arduino IDE: Stvaranje prilagođenih ploča
Arduino IDE: Stvaranje prilagođenih ploča
Arduino IDE: Stvaranje prilagođenih ploča
Arduino IDE: Stvaranje prilagođenih ploča
Arduino IDE: Stvaranje prilagođenih ploča

U posljednjih šest mjeseci proveo sam dosta vremena prenoseći različite knjižnice na ploču Robo HAT MM1 koju je razvila tvrtka Robotics Masters. To je dovelo do otkrivanja mnogo o tim knjižnicama, o njihovom radu iza kulisa i što je najvažnije - što učiniti za dodavanje novih ploča u budućnosti.

Ovo je prvo u nizu zapisivanja koje ću učiniti kako bih pomogao drugima koji žele prenijeti knjižnice na svoje ploče. Mnogi izvori informacija mogu biti nejasni ili ih strani teško razumiju. Nadam se da ću ‘demistificirati’ i objasniti kako postići uspješnu luku za sve.

Danas ćemo gledati Arduino platformu. Ima više od 700 000 različitih varijanti ploča diljem svijeta i jedna je od najpopularnijih elektroničkih platformi za obrazovanje, industriju i proizvođače.

Tek nakon brojnih Google pretraživanja mogao sam pronaći vrlo ograničene izvore informacija o tome kako to učiniti. Pa sam mislio da ću detaljno napisati kako sam to napravio.

Idemo!

Korak 1: Prije nego počnete

Prije nego što započnete s prijenosom softverske biblioteke ili firmvera na ploču, morate znati nekoliko ključnih točaka o tehnologiji koju koristite i moći odgovoriti na pitanja u nastavku.

  1. Koji procesor koristite?
  2. Koju arhitekturu koristi?
  3. Imam li pristup podatkovnom listu za ovaj mikroprocesor?
  4. Postoji li slična ploča na tržištu koja koristi isti mikroprocesor?

To su vrlo važne. To će utjecati na mnoge aspekte vašeg pristupa razvojnom procesu.

Arduino ploče obično koriste ograničen broj procesora i arhitektura. Najčešći je raspon ATMEGA koji koristi AVR arhitekturu (Arduino Uno). Novije generacije Arduina postaju sve češće korištenjem SAMD procesora (ARM) i drugih moćnijih procesora. Zato je važno provjeriti koji koristite.

Tehnički list za mikroprocesor je od iznimne važnosti kako bi se osiguralo da ploča reagira prema očekivanjima prilikom sastavljanja firmvera. Bez toga nećete moći postaviti ispravne izlazne funkcije pin -a niti konfigurirati serijske portove.

Nakon što dobijete sve potrebne informacije o procesoru koji koristite, možete početi pregledavati softver i mijenjati ga kako bi radio na vašoj prilagođenoj ploči.

Korak 2: Pregled

Najteži dio svakog projekta je pronaći dobro polazište. Ovo se ne razlikuje. Trudio sam se pronaći dobre vodiče s dovoljno detalja o tome kako stvoriti prilagođene ploče za Arduino. Većina vodiča pokazuje vam kako "dodati prilagođenu ploču", ali ne i kako "stvoriti prilagođenu ploču". Evo kratkog sažetka o čemu se radi.

  1. Preuzmite postojeće definicije odbora i kopirajte ih
  2. Ažuriranje datoteka definicije (variant.h, varient.cpp)
  3. Izradi unos na ploči (board.txt)
  4. Ažuriraj verziju ploče (platform.txt)
  5. Priprema za instalaciju (json)
  6. Instaliranje ploče u Arduino IDE

U nastavku će svaki korak biti detaljno objašnjen. Također će biti opsežna rasprava o tome kako svaka datoteka međusobno djeluje kako bi se razjasnilo kako sve funkcionira iza Arduino IDE -a.

U ovom vodiču pokazat ću vam kako stvoriti prilagođenu ploču za SAMD procesore. Točnije, SAMD21G18A - koji je mikroprocesor koji se koristio na ploči Robo HAT MM1 koju sam prenosio.

Također pretpostavljam da ste već preuzeli Arduino IDE 1.8 ili noviji. Koristio sam Arduino 1.8.9 u vrijeme pisanja.

Korak 3: Preuzimanje postojećih ploča

Preuzimanje postojećih ploča
Preuzimanje postojećih ploča
Preuzimanje postojećih ploča
Preuzimanje postojećih ploča
Preuzimanje postojećih ploča
Preuzimanje postojećih ploča

Prvi korak je preuzimanje najbliže varijante Arduino ploče koja odgovara vašoj ploči. Za SAMD ploče ovo je Arduino Zero.

Od Arduino IDE 1.6, način preuzimanja novih ploča u okruženje bio je dodavanjem posebnih JSON datoteka koje pružaju programeri softvera, a zatim instaliranje prilagođenih ploča pomoću "Upravitelja ploča". Prethodne verzije Arduino IDE -a koristile su drugačiju metodu o kojoj danas nećemo raspravljati. Kasnije u ovom vodiču stvarat ćemo vlastitu JSON datoteku, međutim, ovu metodu prvo moramo dodati Arduino Zero ploču.

Srećom po nas, ploča koju želimo preuzeti ne treba JSON datoteku jer je JSON datoteka unaprijed u paketu s Arduino IDE - tako da je potrebno samo instalirati ploču iz "Upravitelja ploča".

Da biste to učinili, idite na "Alati", a zatim proširite izbornik "Ploča". Na vrhu izbornika "Uprava" bit će "Upravitelj odbora". Kliknite na ovu opciju izbornika da biste otvorili Upravitelja odbora.

(Vidi slike)

Kad se upravitelj ploča otvori, pregledat će sve JSON datoteke koje je pohranio u Arduino IDE, a zatim preuzeti postavke iz datoteke. Trebali biste vidjeti dugačak popis dostupnih Arduino ploča koje možete instalirati.

(Vidi slike)

Zanima nas samo ploča “Arduino SAMD ploče (32-bitni ARM Cortex-M0+)” za ovaj vodič, ali u ovom trenutku možete odstupiti i instalirati ploču koja vam je potrebna. Potražite i instalirajte ploču “Arduino SAMD ploče (32-bitni ARM Cortex-M0+)”. To možete učiniti klikom na tekst s popisa nakon čega slijedi gumb "Instaliraj" s desne strane koji će se pojaviti nakon što kliknete na tekst. Instalacija će potrajati nekoliko minuta.

Za više detalja o instaliranju novih ploča: Adafruit ovdje ima odličan vodič koji objašnjava kako instalirati njihove ploče Feature M0.

Sada kada su datoteke ploče instalirane, možemo ih kopirati tako da se mogu izmijeniti za vašu prilagođenu ploču.

Korak 4: Pronalaženje i kopiranje datoteka ploče

Pronalaženje i kopiranje datoteka ploče
Pronalaženje i kopiranje datoteka ploče
Pronalaženje i kopiranje datoteka ploče
Pronalaženje i kopiranje datoteka ploče
Pronalaženje i kopiranje datoteka ploče
Pronalaženje i kopiranje datoteka ploče

Za Windows datoteke datoteka na ploči nalaze se u (ne zaboravite promijeniti korisničko ime u svoje korisničko ime):

C: / Korisnici / korisničko ime / AppData / Lokalni / Arduino15 / paketi

U ovoj mapi morate otići malo dublje da biste došli do datoteka koje morate kopirati za izmjenu. Za ovaj vodič ćemo otići po datoteke Arduino Zero ploče na koje će se instalirati (ne zaboravite promijeniti korisničko ime u svoje korisničko ime):

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

Kopirajte mapu s oznakom verzije koja se nalazi u ovom direktoriju u novu mapu u mapi Dokumenti ili mapu po vašem izboru. Za potrebe ovog vodiča stavit ću ih u novu mapu pod nazivom "prilagođene ploče" unutar Dokumenata.

Mapa sadrži niz mapa i direktorija. One koje ćemo koristiti navedene su u tablici na snimci zaslona.

Korak 5: Stvaranje varijante

Stvaranje varijante
Stvaranje varijante
Stvaranje varijante
Stvaranje varijante
Stvaranje varijante
Stvaranje varijante
Stvaranje varijante
Stvaranje varijante

Sada smo spremni za početak stvaranja prilagođenog unosa na ploči. U ovom ću tutorijalu kao primjer koristiti Robo HAT MM1. Kao što je već spomenuto, radi se o ploči temeljenoj na SAMD -u koja je najbliža Arduino Zero verziji.

Počet ćemo tako što ćemo otići u mapu varijanti i kopirati mapu arduino_zero koja se tamo nalazi. Novu varijantu ploče preimenovat ćemo u „robohatmm1“. Možete nazvati svoje kako god želite.

(Vidi sliku)

Unutar mape robohatmm1 bit će dva pina koja nam trebaju za početak uređivanja: variant.cpp i variant.h. Otvorite oboje.

Trebalo mi je neko vrijeme da to riješim pa ću to objasniti ovdje kako bih vam uštedio vrijeme. Datoteka variant.cpp sadrži vrlo veliki niz pinova na koje se upućuje u cijeloj varijanti.h. Sve reference pin -ova u variant.h upućuju na konfiguraciju pin -a na određenom mjestu u nizu variant.cpp.

(Pogledajte snimak zaslona s dvije datoteke)

Dakle, većina vaših uređivanja dogodit će se u obje ove datoteke, ali morate biti sigurni da ako promijenite redoslijed pinova u variants.cpp - morate promijeniti reference u datoteci zaglavlja (variants.h). Za Robo HAT MM1 samo sam trebao promijeniti neke pinove i funkcije. To je učinjeno u varijantama.h. Dodao sam neke nove PWM pinove budući da SAMD21 može obraditi 12 PWM kanala. Pravim funkcijama - poput SPI, UART i I2C - dodao sam i neke nazive za Servos, Signale (umjesto ADC/Digital) i prilagođeno mapiranje.

Važno je napomenuti da morate dvaput provjeriti da li se reference niza koje koristite za funkcije navedene u variants.h podudaraju s onima pin -a u varaints.cpp - što ćemo sada pogledati.

Variants.cpp je vrlo moćna i važna datoteka. Čini sav naporan posao u postavljanju pinova tako da odgovaraju hardverskim postavkama. To ćete najlakše objasniti primjerom i objašnjenjem svakog dijela.

(Pogledajte tablicu na snimci zaslona)

Primjer (izvadak iz variants.cpp)

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

Ovo je prvi pin u nizu variants.cpp za Robo HAT MM1. Tablica iz podatkovnog lista data je kao slika (siva tablica).

(Vidi slike)

Ovaj se pin koristi za I2C funkciju pin podataka. Gledajući tablicu, možemo vidjeti da se ovaj pin može koristiti kao I2C SDA pin (dobar početak!). Pin je nazvan “PA22”, što je kratica od PORTA na pin 22. Odmah možemo postaviti PORT i broj pina za ovaj pin.

Sljedeće što moramo učiniti je postaviti pin kao serijski komunikacijski port. Pin ima serijsku komunikaciju dostupnu putem funkcije C (PIO_SERCOM) pomoću SERCOM 3 i D pomoću SERCOM5 (PIO_SERCOM_ALT). Za potrebe Robo HAT MM1, koristimo SERCOM3 za I2C komunikaciju. Ovo je na funkciji C; aka. PIO_SERCOM za varijante.cpp.

Budući da ovaj pin namjeravamo koristiti samo kao I2C SDA, nema potrebe za postavljanjem bilo koje druge funkcije. Svi se mogu postaviti kao opcije "Ne" ili "Ne" iz prethodne tablice. Međutim, ako smo htjeli koristiti druge funkcije - mogli bismo prijeći preko podatkovne tablice i sve ih staviti u točne prostore. Sve je u podatkovnoj tablici.

Izmjena datoteka varijante može potrajati. Budite oprezni i uvijek trostruko provjeravajte.

Korak 6: Stvorite definiciju ploče

Izradite definiciju ploče
Izradite definiciju ploče

Nakon što pripremite datoteke s varijantama, odavde biste trebali krenuti naprijed. Većina posla bit će kopiranje i lijepljenje ili mijenjanje i ažuriranje datoteka.

Počevši od board.txt.

(Vidi sliku)

Morat ćete kopirati i zalijepiti definiciju ploče koja je već tamo. Opet bih preporučio Arduino Zero.

Radi jednostavnosti, promijenite samo naziv ploče (prvi redak), usb_product, usb_manufacturer i varijantu (robohat). Ostale argumente možete kasnije prilagoditi svojim potrebama - poput prilagođenog pokretača za pokretanje ili različitih USB VID/PID -ova za identifikaciju vaše ploče.

Varijanta ploče mora odgovarati imenu datoj mapi stvorenoj na početku. Za ovaj vodič sam ga nazvao 'robohatmm1'.

Također bi bilo preporučljivo promijeniti prvi dio svakog retka kako bi odgovarao imenu vaše ploče. Na snimci zaslona promijenjeno je u "robo_hat_mm1". Trebali biste odabrati naziv za svoju ploču s istim formatom.

To je sve za board.txt osim ako kasnije ne želite napraviti daljnje gore navedene izmjene.

Korak 7: Ažurirajte verziju ploče

Ažurirajte verziju ploče
Ažurirajte verziju ploče

U platform.txt promijenite naziv u naziv svoje prilagođene ploče. Promijenite i broj verzije. Zapamtite na što ste ovo postavili, trebat će nam kasnije.

Korak 8: Izradite datoteku paketa JSON

Izradite datoteku paketa JSON
Izradite datoteku paketa JSON
Izradite datoteku paketa JSON
Izradite datoteku paketa JSON

Da biste instalirali svoju ploču u Arduino IDE, morat ćete stvoriti JSON datoteku koju ćete uvesti. JSON datoteka govori Arduino IDE -u gdje nabaviti datoteke za instaliranje ploče, koji su dodatni paketi potrebni i nekoliko drugih bitova metapodataka.

Vrlo je važno da ovu datoteku spremite izvan mape u kojoj smo upravo radili.

Većina datoteke može se kopirati i zalijepiti u vašu datoteku. Morat ćete promijeniti samo odjeljak "ploče" i ostale metapodatke pri vrhu datoteke. Pogledajte snimku zaslona što treba ažurirati.

(Vidi sliku)

  • Crveni odjeljak: Ovo su metapodaci koje korisnici mogu koristiti za pronalaženje pomoći. Ima vrlo malu tehničku važnost.
  • Plavi odjeljak: Sve je ovo važno. Prikazuju se u Arduino IDE -u. Ime, arhitektura i verzija bit će prikazani svima koji pokušavaju instalirati paket. Ovdje trebate unijeti broj verzije s platforme.txt. Drugi plavi odjeljak je popis ploča koje su uključene u paket. Možete imati više ploča.
  • Zeleni odjeljak: Ovaj odjeljak treba dodatno objasniti.

(Vidi tablicu na slikama)

Nakon što ste stvorili zip datoteku, dobili kontrolnu sumu zip datoteke i veličinu datoteke, sada možete prenijeti zip datoteku na mjesto. Taj ćete URL morati unijeti u polje "url". Ako naziv ili neki od gore navedenih podataka nisu točni, vaša prilagođena ploča neće se instalirati.

Svakako prenesite i datoteku package_boardname_index.json na javno mjesto na internetu. GitHub je dobra opcija.

Datoteka prilagođene ploče Robo HAT MM1 može se pronaći ovdje.

Korak 9: Posljednji korak - instalirajte svoju prilagođenu ploču

Posljednji korak - instalirajte svoju prilagođenu ploču!
Posljednji korak - instalirajte svoju prilagođenu ploču!
Posljednji korak - instalirajte svoju prilagođenu ploču!
Posljednji korak - instalirajte svoju prilagođenu ploču!

Sve ide dobro, sada biste trebali moći uključiti svoju JSON datoteku u Arduino IDE i instalirati svoju prilagođenu ploču.

Uključivanje JSON datoteke jednostavno je! U Arduino IDE -u - samo idite na “Datoteka”> “Postavke” i kopirajte i zalijepite lokaciju (URL) svog package_boardname_index.json u odjeljak “Dodatni URL -ovi upravitelja ploča” na dnu izbornika Postavke.

(Vidi sliku)

Zatim pritisnite OK.

Prođite kroz gore navedene upute za instaliranje novih ploča ako ste zaboravili. Ne zaboravite ovaj put potražiti svoju prilagođenu ploču!

(Vidi sliku)

Za više detalja o instaliranju novih ploča: Adafruit ovdje ima odličan vodič koji objašnjava kako instalirati njihove ploče Feature M0.

Korak 10: Zaključak

Zaključak
Zaključak
Zaključak
Zaključak

Bilo je zabavno stvarati prilagođene Arduino ploče. Moram još puno eksperimentirati u budućnosti (dodavanjem dodatnih serijskih portova), ali to je bilo sjajno iskustvo učenja!

Svakako provjerite i kampanju Crowd Supply. Završava 11. lipnja 2019.

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

Nadam se da vam je ovo pomoglo ili ste se zabavili čitajući!

Hvala!

Preporučeni: