Obsah:

Arduino IDE: Vytváření vlastních desek: 10 kroků
Arduino IDE: Vytváření vlastních desek: 10 kroků

Video: Arduino IDE: Vytváření vlastních desek: 10 kroků

Video: Arduino IDE: Vytváření vlastních desek: 10 kroků
Video: Arduino návody | Create webové vývojové prostředí 2024, Červenec
Anonim
Arduino IDE: Vytváření vlastních desek
Arduino IDE: Vytváření vlastních desek
Arduino IDE: Vytváření vlastních desek
Arduino IDE: Vytváření vlastních desek
Arduino IDE: Vytváření vlastních desek
Arduino IDE: Vytváření vlastních desek

Za posledních šest měsíců jsem strávil spoustu času přenášením různých knihoven na desku Robo HAT MM1 vyvinutou společností Robotics Masters. To vedlo k odhalení mnoha informací o těchto knihovnách, o tom, jak fungují v zákulisí, a co je nejdůležitější - co dělat, abyste v budoucnu přidali nové desky.

Toto je první ze série zápisů, které udělám, abych pomohl ostatním, kteří si přejí portovat knihovny pro své desky. Mnoho zdrojů informací může být vágních nebo těžko pochopitelných pro lidi zvenčí. Doufám, že to „demystifikuji“a vysvětlím, jak dosáhnout úspěšného přístavu pro všechny.

Dnes se podíváme na platformu Arduino. Má více než 700 000 různých variant desek po celém světě a je jednou z nejpopulárnějších elektronických platforem pro vzdělávání, průmysl a výrobce.

Po mnoha vyhledáváních Google jsem našel jen velmi omezené zdroje informací o tom, jak to udělat. Tak jsem si řekl, že napíšu o tom, jak jsem to udělal podrobně.

Tady jsme!

Krok 1: Než začnete

Než začnete s přenosem softwarové knihovny nebo firmwaru na desku, musíte znát několik klíčových bodů o technologii, kterou používáte, a umět odpovědět na níže uvedené otázky.

  1. Jaký procesor používáte?
  2. Jakou architekturu používá?
  3. Mám přístup k datovému listu tohoto mikroprocesoru?
  4. Existuje na trhu podobná deska, která používá stejný mikroprocesor?

Ty jsou velmi důležité. Bude to mít dopad na mnoho aspektů vašeho přístupu k vývojovému procesu.

Desky Arduino běžně používají omezený počet typů procesorů a architektur. Nejběžnější je řada ATMEGA využívající architekturu AVR (Arduino Uno). Existují novější generace Arduinos, které se stávají běžnějšími pomocí procesorů SAMD (ARM) a dalších výkonnějších procesorů. Je tedy důležité zkontrolovat, který používáte.

Datový list mikroprocesoru je naprosto zásadní pro zajištění toho, aby deska při kompilaci firmwaru reagovala podle očekávání. Bez toho nebudete moci nastavit správné funkce výstupu pinů ani konfigurovat sériové porty.

Jakmile budete mít všechny potřebné informace o procesoru, který používáte, můžete se začít dívat na software a upravovat jej tak, aby fungoval pro vaši vlastní desku.

Krok 2: Přehled

Nejtěžší na každém projektu je najít dobrý výchozí bod. Není tomu jinak. Snažil jsem se najít dobré návody s dostatečným množstvím podrobností o tom, jak vytvořit vlastní desky pro Arduino. Většina výukových programů ukazuje, jak „přidat vlastní nástěnku“, ale nikoli „vytvořit vlastní nástěnku“. Zde je krátké shrnutí toho, o co jde.

  1. Stáhněte si stávající definice desky a zkopírujte je
  2. Aktualizace definičních souborů (variant.h, varient.cpp)
  3. Vytvořit záznam na palubě (board.txt)
  4. Aktualizovat verzi nástěnky (platform.txt)
  5. Příprava na instalaci (json)
  6. Instalace desky do Arduino IDE

Každý krok bude podrobně vysvětlen níže. Proběhne také rozsáhlá diskuse o vzájemné interakci každého souboru, aby se objasnilo, jak vše funguje za IDE Arduino.

V tomto tutoriálu vám ukážu, jak vytvořit vlastní desku pro procesory SAMD. Přesněji řečeno, SAMD21G18A - což je mikroprocesor používaný na desce Robo HAT MM1, kterou jsem portoval.

Předpokládám také, že již máte stažené Arduino IDE 1.8 nebo novější. V době psaní jsem použil Arduino 1.8.9.

Krok 3: Stažení existujících desek

Stahování stávajících desek
Stahování stávajících desek
Stahování stávajících desek
Stahování stávajících desek
Stahování stávajících desek
Stahování stávajících desek

Prvním krokem je stažení nejbližší varianty desky Arduino, která odpovídá vaší desce. U desek SAMD je to Arduino Zero.

Od Arduino IDE 1.6 je metodou stahování nových desek do prostředí přidávání speciálních souborů JSON, které vývojáři softwaru poskytují, a poté instalace vlastních desek pomocí „Správce desek“. Předchozí verze Arduino IDE používaly jinou metodu, o které dnes nebudeme diskutovat. Později v tomto tutoriálu vytvoříme vlastní soubor JSON, nejprve však musíme pomocí této metody přidat desku Arduino Zero.

Naštěstí pro nás deska, kterou chceme stáhnout, nepotřebuje soubor JSON, protože soubor JSON je předem dodáván s Arduino IDE - stačí tedy desku nainstalovat z „Boards Manager“.

Chcete -li to provést, přejděte na „Nástroje“a rozbalte nabídku „Deska“. V horní části nabídky „Board“bude „Boards Manager“. Kliknutím na tuto možnost nabídky vyvoláte Správce desek.

(Viz obrázky)

Když se otevře Správce desek, podívá se na všechny soubory JSON, které má uložené v Arduino IDE, a poté stáhne nastavení ze souboru. Měli byste vidět dlouhý seznam dostupných desek Arduino, které můžete nainstalovat.

(Viz obrázky)

Pro tento výukový program nás zajímá pouze deska „Arduino SAMD Boards (32-bit ARM Cortex-M0+)“, ale v tuto chvíli se můžete odchýlit a nainstalovat desku, kterou potřebujete. Vyhledejte a nainstalujte desku „Arduino SAMD Boards (32-bit ARM Cortex-M0+)“. To lze provést kliknutím na text ze seznamu následovaným tlačítkem „Instalovat“na pravé straně, které se zobrazí po kliknutí na text. Instalace bude trvat několik minut.

Další podrobnosti o instalaci nových desek: Adafruit má skvělý tutoriál, který vysvětluje, jak nainstalovat jejich desky Feature M0.

Nyní, když jsou soubory desky nainstalovány, je můžeme zkopírovat, aby je bylo možné upravit pro vaši vlastní desku.

Krok 4: Hledání a kopírování souborů desky

Hledání a kopírování souborů rady
Hledání a kopírování souborů rady
Hledání a kopírování souborů rady
Hledání a kopírování souborů rady
Hledání a kopírování souborů rady
Hledání a kopírování souborů rady

Ve Windows jsou soubory Board umístěny v (nezapomeňte změnit uživatelské jméno na uživatelské jméno):

C: / Users / uživatelské jméno / AppData / Local / Arduino15 / packages

V této složce musíte jít trochu hlouběji, abyste se dostali k souborům, které potřebujete zkopírovat a upravit. Pro tento tutoriál půjdeme a získáme soubory desky Arduino Zero, do kterých se nainstaluje (nezapomeňte změnit uživatelské jméno na uživatelské jméno):

C: / Users / uživatelské jméno / AppData / Local / Arduino15 / packages / arduino / hardware / samd

Zkopírujte složku s čísly verzí umístěnou v tomto adresáři do nové složky ve složce Dokumenty nebo složce podle vašeho výběru. Pro účely tohoto tutoriálu je vložím do nové složky s názvem „vlastní desky“uvnitř Dokumentů.

Složka obsahuje řadu složek a adresářů. Ty, které budeme používat, jsou uvedeny v tabulce na snímku obrazovky.

Krok 5: Vytvoření varianty

Vytváření varianty
Vytváření varianty
Vytváření varianty
Vytváření varianty
Vytváření varianty
Vytváření varianty
Vytváření varianty
Vytváření varianty

Nyní jsme připraveni začít vytvářet vlastní záznam na tabuli. Pro tento tutoriál použiji jako příklad Robo HAT MM1. Jak již bylo zmíněno, je to deska založená na SAMD, která je nejblíže sestavení Arduino Zero.

Začneme tím, že přejdeme do složky variant a zkopírujeme do ní umístěnou složku arduino_zero. Novou variantu desky přejmenujeme na „robohatmm1“. Svému můžete říkat, jak chcete.

(Viz obrázek)

Ve složce robohatmm1 budou dva piny, které potřebujeme začít upravovat: variant.cpp a varianta.h. Otevřete oba.

Trvalo mi dlouho, než jsem se k tomu dostal, takže to zde vysvětlím, abych vám ušetřil čas. Soubor variant.cpp obsahuje velmi velké pole pinů, na které je odkazováno v rámci varianty.h. Všechny odkazy na pin ve variantě.h jsou odkazy na konfiguraci pinů na konkrétní pozici v poli variant.cpp.

(Viz Screenshot se dvěma soubory)

Většina vašich úprav tedy proběhne v obou těchto souborech, ale musíte se ujistit, že pokud změníte pořadí pinů ve variants.cpp - musíte změnit odkazy v souboru záhlaví (variants.h). U Robo HAT MM1 jsem potřeboval změnit pouze některé piny a funkce. To bylo provedeno ve variantách. H. Přidal jsem několik nových pinů PWM, protože SAMD21 je schopen zpracovat 12 kanálů PWM. Také jsem přidal některá jména pro serva, signály (místo ADC/Digital) a vlastní mapování do správných funkcí - například SPI, UART a I2C.

Důležitá věc, kterou je třeba poznamenat, je znovu zkontrolovat, zda odkazy na pole, které používáte pro funkce popsané ve variantách. H, odpovídají pinům ve varaints.cpp - na které se nyní podíváme.

Variants.cpp je velmi silný a důležitý soubor. Odvede veškerou tvrdou práci s nastavením kolíků tak, aby odpovídaly nastavení hardwaru. Nejjednodušší způsob, jak to vysvětlit, je příklad a vysvětlení každé části.

(Viz tabulka na snímku obrazovky)

Příklad (výpis z variants.cpp)

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

Toto je první kolík v poli variants.cpp pro Robo HAT MM1. Tabulka z datového listu byla poskytnuta jako obrázek (šedá tabulka).

(Viz obrázky)

Tento konkrétní pin se používá pro funkci I2C Data Pin. Když se podíváme na tabulku, zjistíme, že tento pin lze použít jako pin I2C SDA (dobrý začátek!). Pin je pojmenován „PA22“, což je zkratka pro PORTA na pinu 22. Hned pro tento pin můžeme nastavit PORT a číslo pinu.

Další věc, kterou musíme udělat, je nastavit pin jako sériový komunikační port. Pin má sériovou komunikaci dostupnou prostřednictvím funkce C (PIO_SERCOM) pomocí SERCOM 3 a D pomocí SERCOM5 (PIO_SERCOM_ALT). Pro účely Robo HAT MM1 používáme pro komunikaci I2C SERCOM3. Toto je na funkci C; aka. PIO_SERCOM pro variants.cpp.

Protože plánujeme tento pin používat pouze jako I2C SDA, není třeba nastavovat žádné další funkce. Všechny je lze v předchozí tabulce nastavit jako možnosti „Ne“nebo „Ne“. Pokud bychom však chtěli použít ostatní funkce - mohli bychom přejít přes datový list a dát je všechny do správných mezer. To vše je v datasheetu.

Úprava souborů variant může nějakou dobu trvat. Buďte opatrní a vždy třikrát zkontrolujte.

Krok 6: Vytvořte definici vývěsky

Vytvořte definici desky
Vytvořte definici desky

Jakmile budete mít připravené soubory variant, mělo by to jít přímo odtud. Většina práce bude kopírovat a vkládat nebo upravovat a aktualizovat soubory.

Počínaje boards.txt.

(Viz obrázek)

Budete chtít zkopírovat a vložit definici desky, která již existuje. Znovu bych doporučil Arduino Zero.

Pro jednoduchost změňte pouze název desky (první řádek), usb_product, usb_manufacturer a variantu (robohat). Ostatní argumenty můžete později upravit tak, aby vyhovovaly vašim potřebám - například vlastní bootloader nebo různé USB VID/PID pro identifikaci vaší desky.

Varianta desky se musí shodovat s názvem daným složce vytvořené na začátku. Pro tento tutoriál jsem to nazval „robohatmm1“.

Bylo by také doporučeno změnit první část každého řádku tak, aby odpovídala názvu vaší desky. Na snímku obrazovky byl změněn na „robo_hat_mm1“. Měli byste zvolit název desky ve stejném formátu.

To je pro boards.txt vše, pokud později nebudete chtít provést další výše zmíněné úpravy.

Krok 7: Aktualizujte verzi desky

Aktualizovat verzi desky
Aktualizovat verzi desky

V platforms.txt změňte název na název vaší vlastní desky. Změňte také číslo verze. Pamatujte, na co jste to nastavili, budeme to potřebovat později.

Krok 8: Vytvořte soubor balíčku JSON

Vytvořte soubor balíčku JSON
Vytvořte soubor balíčku JSON
Vytvořte soubor balíčku JSON
Vytvořte soubor balíčku JSON

K instalaci desky v Arduino IDE budete muset vytvořit soubor JSON, který importujete. Soubor JSON říká Arduino IDE, kde získat soubory k instalaci desky, jaké další balíčky jsou potřeba a několik dalších bitů metadat.

Je velmi důležité, abyste tento soubor uložili mimo složku, ve které jsme právě pracovali.

Většinu souboru lze zkopírovat a vložit do vašeho. Budete muset změnit pouze sekci „desky“a další metadata v horní části souboru. Co je třeba aktualizovat, najdete na snímku obrazovky.

(Viz obrázek)

  • Červená sekce: Toto jsou metadata, která mohou uživatelé použít k hledání nápovědy. Má velmi malý technický význam.
  • Modrá sekce: To vše je důležité. Zobrazují se v Arduino IDE. Jméno, architektura a verze se zobrazí každému, kdo se pokouší balíček nainstalovat. Zde je třeba zadat číslo verze z platformys.txt. Druhá modrá část je seznam desek, které jsou součástí balení. Můžeš mít více desek.
  • Zelená část: Tato část potřebuje další vysvětlení.

(Viz tabulka v obrázcích)

Jakmile vytvoříte soubor zip, získáte kontrolní součet souboru zip a velikost souboru, můžete nyní odeslat soubor zip do umístění. Tuto adresu URL budete muset zadat do pole „URL“. Pokud je název nebo některý z výše uvedených údajů nesprávný, instalace vaší vlastní desky se nezdaří.

Nezapomeňte také nahrát soubor package_boardname_index.json na veřejné místo na internetu. GitHub je dobrá volba.

Soubor vlastní desky Robo HAT MM1 naleznete zde.

Krok 9: Poslední krok - nainstalujte si vlastní nástěnku

Poslední krok - nainstalujte si vlastní nástěnku!
Poslední krok - nainstalujte si vlastní nástěnku!
Poslední krok - nainstalujte si vlastní nástěnku!
Poslední krok - nainstalujte si vlastní nástěnku!

Všechno jde dobře, nyní byste měli být schopni zahrnout váš soubor JSON do Arduino IDE a nainstalovat si vlastní desku.

Zahrnutí souboru JSON je snadné! V Arduino IDE - jednoduše přejděte na „Soubor“> „Předvolby“a zkopírujte a vložte umístění (URL) vašeho balíčku_název_balíčku_index.json do sekce „Adresy URL dalších správců desek“ve spodní části nabídky Předvolby.

(Viz obrázek)

Poté stiskněte OK.

Pokud jste zapomněli, projděte si výše uvedené pokyny pro instalaci nových desek. Nezapomeňte se tentokrát podívat po své vlastní desce!

(Viz obrázek)

Další podrobnosti o instalaci nových desek: Adafruit má skvělý tutoriál, který vysvětluje, jak nainstalovat jejich desky Feature M0.

Krok 10: Závěr

Závěr
Závěr
Závěr
Závěr

Bylo zábavné vytvářet vlastní desky Arduino. Je toho ještě hodně, s čím mohu v budoucnu experimentovat (přidání dalších sériových portů), ale byla to skvělá zkušenost s učením!

Nezapomeňte se také podívat na kampaň Crowd Supply. Končí 11. června 2019.

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

Doufám, že vám to pomohlo, nebo jste si čtení užili!

Dík!

Doporučuje: