Sadržaj:

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

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

Video: Arduino IDE: Kreiranje prilagođenih ploča: 10 koraka
Video: Lesson 10: Conditional Statement in Arduino and Using Array | SunFounder Robojax 2024, Juli
Anonim
Arduino IDE: Kreiranje prilagođenih ploča
Arduino IDE: Kreiranje prilagođenih ploča
Arduino IDE: Kreiranje prilagođenih ploča
Arduino IDE: Kreiranje prilagođenih ploča
Arduino IDE: Kreiranje prilagođenih ploča
Arduino IDE: Kreiranje prilagođenih ploča

U posljednjih šest mjeseci proveo sam dosta vremena prenoseći različite biblioteke na ploču Robo HAT MM1 koju je razvila kompanija Robotics Masters. To je dovelo do otkrivanja mnogo o ovim bibliotekama, njihovom radu iza kulisa i što je najvažnije - što učiniti kako bi se u budućnosti dodale nove ploče.

Ovo je prvo u nizu pisanja koje ću učiniti kako bih pomogao drugima koji žele prenijeti biblioteke za 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 preko 700 000 različitih varijanti ploča širom 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 pisati o tome kako sam to uradio.

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 tačaka o tehnologiji koju koristite i biti u mogućnosti 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?

Ovo je veoma važno. To će utjecati na mnoge aspekte vašeg pristupa razvojnom procesu.

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

Tehnički list za mikroprocesor je apsolutno bitan kako bi se osiguralo da ploča reagira prema očekivanjima prilikom kompajliranja firmvera. Bez toga nećete moći postaviti ispravne izlazne funkcije pin -a ili konfigurirati serijske portove.

Kada 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. Nije ništa drugačije. 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. Kreiraj unos na ploči (board.txt)
  4. Ažurirajte verziju ploče (platform.txt)
  5. Priprema za instalaciju (json)
  6. Instaliranje ploče u Arduino IDE

Svaki korak će u nastavku biti detaljno objašnjen. Također će biti opsežne rasprave 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. Preciznije, SAMD21G18A - koji je mikroprocesor koji se koristi na Robo HAT MM1 ploči koju sam prenosio.

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 odbora
Preuzimanje postojećih odbora
Preuzimanje postojećih odbora
Preuzimanje postojećih odbora
Preuzimanje postojećih odbora
Preuzimanje postojećih odbora

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, prvo moramo dodati Arduino Zero ploču pomoću ove metode.

Srećom po nas, ploči koju želimo preuzeti nije potrebna JSON datoteka 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 menija „Odbor“bit će „Upravitelj odbora“. Kliknite na ovu opciju izbornika da biste otvorili Upravitelja odbora.

(Pogledajte slike)

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

(Pogledajte 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. Molimo potražite i instalirajte ploču “Arduino SAMD ploče (32-bitni ARM Cortex-M0+)”. To možete učiniti klikom na tekst sa popisa, a zatim sa desne strane na dugme „Instaliraj“koje ć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 se nalaze 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 dođete do datoteka koje morate kopirati da biste ih izmijenili. 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 fasciklu označenu verzijom koja se nalazi u ovom direktoriju u novu fasciklu u fascikli Dokumenti ili fasciklu 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 brojne mape i direktorije. One koje ćemo koristiti navedene su u tabeli na snimku ekrana.

Korak 5: Kreiranje varijante

Kreiranje varijante
Kreiranje varijante
Kreiranje varijante
Kreiranje varijante
Kreiranje varijante
Kreiranje varijante
Kreiranje varijante
Kreiranje varijante

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

Počet ćemo tako što ćemo otići u fasciklu sa varijantama i kopirati fasciklu 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 kroz variant.h. Sve reference pin -ova u variant.h su referenca na pin konfiguraciju na određenom položaju u nizu variant.cpp.

(Pogledajte snimak ekrana sa 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. Dodao sam i neke nazive za Servos, Signale (umjesto ADC/Digital) i prilagođeno mapiranje pravim funkcijama - poput SPI, UART i I2C.

Važno je napomenuti da je potrebno dvaput provjeriti da li se reference niza koje koristite za funkcije navedene u variants.h podudaraju s pin -om 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. Najlakši način da to objasnite je primjerom i objašnjenjem svakog dijela.

(Pogledajte tabelu na snimku ekrana)

Primjer (izvod 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. Tabela iz lista sa podacima data je kao slika (siva tabela).

(Pogledajte slike)

Ovaj pin se koristi za funkciju I2C 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 skraćenica od PORTA na pinu 22. Odmah možemo postaviti PORT i broj pina za ovaj pin.

Sljedeća stvar koju moramo učiniti je postaviti pin kao serijski komunikacijski port. Pin ima serijsku komunikaciju dostupnu preko 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 variants.cpp.

Budući da ovaj pin planiramo koristiti samo kao I2C SDA, nema potrebe za postavljanjem bilo koje druge funkcije. Svi oni se mogu postaviti kao opcije „Ne“ili „Ne“iz prethodne tabele. Međutim, ako smo htjeli koristiti druge funkcije - mogli bismo prijeći tablicu s podacima i sve ih staviti u ispravne prostore. Sve se nalazi u tehničkom listu.

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

Korak 6: Kreirajte definiciju ploče

Kreirajte definiciju odbora
Kreirajte definiciju odbora

Nakon što pripremite svoje varijantne datoteke, 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 red), usb_product, usb_manufacturer i varijantu (robohat). Ostale argumente kasnije možete 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 fascikli stvorenoj na početku. Za ovaj vodič sam to nazvao "robohatmm1".

Takođe bi se preporučilo da prvi dio svakog retka promijenite tako da odgovara imenu vaše ploče. Na snimku zaslona promijenjeno je u "robo_hat_mm1". Trebali biste izabrati naziv za svoju ploču istog formata.

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

Korak 7: Ažurirajte verziju ploče

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

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

Korak 8: Kreirajte datoteku paketa JSON

Kreirajte JSON datoteku paketa
Kreirajte JSON datoteku paketa
Kreirajte JSON datoteku paketa
Kreirajte JSON datoteku paketa

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 dijelova metapodataka.

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

Većina datoteka se može kopirati i zalijepiti u vašu datoteku. Morat ćete promijeniti samo odjeljak "ploče" i ostale metapodatke pri vrhu datoteke. Pogledajte snimak ekrana za informacije o tome šta 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 ovo je 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 sa platforme.txt. Drugi plavi odjeljak je lista ploča koje su uključene u paket. Možete imati više ploča.
  • Zeleni odjeljak: Ovaj odjeljak treba dodatno objašnjenje.

(Pogledajte tabelu na slikama)

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

Obavezno prenesite i datoteku package_boardname_index.json na javnu lokaciju 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 je jednostavno! U Arduino IDE - 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. Ima još mnogo toga za eksperimentiranje u budućnosti (dodavanje dodatnih serijskih portova), ali to je bilo odlično iskustvo učenja!

Obavezno provjerite i kampanju Crowd Supply. Završava se 11. juna 2019.

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

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

Hvala!

Preporučuje se: