Indholdsfortegnelse:

Arduino IDE: Oprettelse af brugerdefinerede tavler: 10 trin
Arduino IDE: Oprettelse af brugerdefinerede tavler: 10 trin

Video: Arduino IDE: Oprettelse af brugerdefinerede tavler: 10 trin

Video: Arduino IDE: Oprettelse af brugerdefinerede tavler: 10 trin
Video: Lesson 02 Arduino IDE Software | Robojax Arduino Step By Step Course 2024, Juli
Anonim
Arduino IDE: Oprettelse af brugerdefinerede tavler
Arduino IDE: Oprettelse af brugerdefinerede tavler
Arduino IDE: Oprettelse af brugerdefinerede tavler
Arduino IDE: Oprettelse af brugerdefinerede tavler
Arduino IDE: Oprettelse af brugerdefinerede tavler
Arduino IDE: Oprettelse af brugerdefinerede tavler

I løbet af de sidste seks måneder har jeg brugt meget tid på at overføre forskellige biblioteker til Robo HAT MM1 -kortet udviklet af Robotics Masters. Dette har ført til at opdage meget om disse biblioteker, hvordan de fungerer bag kulisserne og vigtigst af alt - hvad man skal gøre for at tilføje nye bestyrelser i fremtiden.

Dette er det første i en række opskrivninger, jeg vil gøre for at hjælpe andre, der ønsker at overføre biblioteker til deres bestyrelser. Mange af informationskilderne kan være vage eller vanskelige at forstå for udenforstående. Jeg håber at 'afmystificere' og forklare, hvordan man opnår en succesfuld havn for alle.

I dag vil vi se på Arduino -platformen. Det har over 700.000 forskellige tavlevarianter rundt om i verden og er en af de mest populære elektronikplatforme til uddannelse, industri og producenter.

Jeg kunne kun finde meget begrænsede informationskilder om, hvordan man gør dette efter mange Google -søgninger. Så jeg tænkte, at jeg ville skrive om, hvordan jeg gjorde det i detaljer.

Nu sker det!

Trin 1: Inden du begynder

Inden du begynder med at overføre et softwarebibliotek eller firmware til dit board, skal du kende et par vigtige punkter om den teknologi, du bruger, og kunne besvare spørgsmålene herunder.

  1. Hvilken processor bruger du?
  2. Hvilken arkitektur bruger den?
  3. Har jeg adgang til databladet til denne mikroprocessor?
  4. Er der et lignende kort på markedet, der bruger den samme mikroprocessor?

Disse er meget vigtige. Det vil påvirke mange aspekter af din tilgang til udviklingsprocessen.

Arduino -plader bruger normalt et begrænset antal processortyper og arkitekturer. Den mest almindelige er ATMEGA -serien ved hjælp af AVR -arkitekturen (Arduino Uno). Der er nyere generationer af Arduinos, der bliver mere almindelige ved hjælp af SAMD -processorer (ARM) og andre mere kraftfulde processorer. Så det er vigtigt at kontrollere, hvilken du bruger.

Databladet til en mikroprocessor er helt afgørende for at sikre, at kortet reagerer som forventet, når du kompilerer firmwaren. Uden det vil du ikke være i stand til at indstille de korrekte pin output -funktioner eller konfigurere serielle porte.

Når du har alle de oplysninger, du har brug for om den processor, du bruger, kan du begynde at se på softwaren og ændre den til at fungere til dit brugerdefinerede bord.

Trin 2: Oversigt

Den sværeste del af ethvert projekt er at finde et godt udgangspunkt. Dette er ikke anderledes. Jeg kæmpede for at finde gode tutorials med nok detaljer om, hvordan man opretter brugerdefinerede boards til Arduino. De fleste tutorials viser dig, hvordan du 'tilføjer et brugerdefineret board', men ikke hvordan du 'opretter et brugerdefineret board'. Her er en kort opsummering af, hvad der er involveret.

  1. Download eksisterende bestyrelsesdefinitioner og kopi
  2. Opdatering af definitionsfiler (variant.h, varient.cpp)
  3. Opret Board Entry (board.txt)
  4. Opdater bordversion (platform.txt)
  5. Forberedelse til installation (json)
  6. Installationskort i Arduino IDE

Hvert trin vil blive forklaret detaljeret nedenfor. Der vil også være omfattende diskussion om, hvordan hver fil interagerer med hinanden for at hjælpe med at afklare, hvordan alt fungerer bag Arduino IDE.

I denne vejledning viser jeg dig, hvordan du opretter et brugerdefineret kort til SAMD -processorer. Mere specifikt SAMD21G18A - som er mikroprocessoren, der blev brugt på Robo HAT MM1 -kortet, som jeg portede.

Jeg går også ud fra, at du allerede har downloadet Arduino IDE 1.8 eller nyere. Jeg brugte Arduino 1.8.9 i skrivende stund.

Trin 3: Download af eksisterende bestyrelser

Download af eksisterende bestyrelser
Download af eksisterende bestyrelser
Download af eksisterende bestyrelser
Download af eksisterende bestyrelser
Download af eksisterende bestyrelser
Download af eksisterende bestyrelser

Det første trin er at downloade den nærmeste variant Arduino board, der matcher dit board. For SAMD -boards er dette Arduino Zero.

Siden Arduino IDE 1.6 har metoden til download af nye boards i miljøet været ved at tilføje specielle JSON -filer, som softwareudviklere leverer og derefter installere de brugerdefinerede boards ved hjælp af "Boards Manager". Tidligere versioner af Arduino IDE brugte en anden metode, som vi ikke vil diskutere i dag. Vi opretter vores egen JSON -fil senere i denne vejledning, men vi skal først tilføje Arduino Zero -kortet ved hjælp af denne metode.

Heldigvis for os har det board, vi ønsker at downloade, ikke brug for en JSON -fil, fordi JSON -filen er forudbundt med Arduino IDE - så vi skal bare installere kortet fra "Boards Manager".

For at gøre dette skal du gå til "Værktøjer" og derefter udvide menuen "Board". Øverst i menuen "Board" er "Boards Manager". Klik på denne menuindstilling for at få vist Boards Manager.

(Se billeder)

Når Boards Manager åbnes, vil den se på alle de JSON -filer, den har gemt i Arduino IDE, og derefter downloade indstillingerne fra filen. Du bør se en lang liste over tilgængelige Arduino -tavler, som du kan installere.

(Se billeder)

Vi er kun interesseret i "Arduino SAMD Boards (32-bit ARM Cortex-M0+)" -kortet til denne vejledning, men du kan afvige og installere det kort, du har brug for på dette tidspunkt. Søg efter og installer "Arduino SAMD Boards (32-bit ARM Cortex-M0+)" -kortet. Dette kan gøres ved at klikke på teksten fra listen efterfulgt af knappen "Installer" i højre side, som vises, når du klikker på teksten. Det vil tage et par minutter at installere.

For flere detaljer om installation af nye tavler: Adafruit har en fantastisk vejledning her, der forklarer, hvordan de installerer deres Feature M0 -tavler.

Nu hvor tavlefilerne er installeret, kan vi kopiere dem, så de kan ændres til dit brugerdefinerede bord.

Trin 4: Find og kopier tavlefiler

Find og kopier tavlefiler
Find og kopier tavlefiler
Find og kopier tavlefiler
Find og kopier tavlefiler
Find og kopier tavlefiler
Find og kopier tavlefiler

For Windows er bestyrelsesfilerne placeret i (husk at ændre brugernavn til dit brugernavn):

C: / Brugere / brugernavn / AppData / Local / Arduino15 / pakker

I denne mappe skal du gå lidt dybere for at komme til de filer, du skal kopiere for at ændre. Til denne vejledning vil vi gå og hente Arduino Zero -kortfiler, som vil blive installeret til (husk at ændre brugernavn til dit brugernavn):

C: / Brugere / brugernavn / AppData / Local / Arduino15 / pakker / arduino / hardware / samd

Kopier mappen med versionsnummer i dette bibliotek til en ny mappe i mappen Dokumenter eller den valgte mappe. I forbindelse med denne vejledning vil jeg lægge dem i en ny mappe med navnet 'brugerdefinerede tavler' inde i dokumenter.

Mappen indeholder et antal mapper og mapper. Dem, vi vil bruge, er noteret i tabellen på skærmbilledet.

Trin 5: Oprettelse af variant

Oprettelse af variant
Oprettelse af variant
Oprettelse af variant
Oprettelse af variant
Oprettelse af variant
Oprettelse af variant
Oprettelse af variant
Oprettelse af variant

Vi er nu klar til at begynde at oprette en brugerdefineret tavlepost. Til denne vejledning bruger jeg Robo HAT MM1 som eksemplet. Som tidligere nævnt er det et SAMD -baseret board, der er tættest matchet Arduino Zero -bygningen.

Vi starter med at gå ind i varianter -mappen og kopiere arduino_zero -mappen derinde. Vi omdøber den nye tavlevariant ‘robohatmm1’. Du kan kalde din, hvad du vil.

(Se billede)

Inde i robohatmm1 -mappen er de to pins, som vi skal begynde at redigere: variant.cpp og variant.h. Åbn dem begge.

Dette tog mig et stykke tid at træne, så jeg vil forklare det her for at spare tid. Varianten.cpp -filen indeholder et meget stort udvalg af stifter, som der refereres til i hele variant.h. Alle stiftreferencer i variant.h er en reference til stiftkonfigurationen på en bestemt position i variant.cpp -arrayet.

(Se Skærmbillede med to filer)

Så de fleste af dine redigeringer vil forekomme i begge disse filer, men du skal sikre dig, at hvis du ændrer rækkefølgen af benene i variants.cpp - skal du ændre referencerne i overskriftsfilen (variants.h). Til Robo HAT MM1 behøvede jeg kun at ændre nogle af benene og funktionerne. Dette blev gjort i varianter. H. Jeg tilføjede nogle nye PWM -pins, da SAMD21 er i stand til at håndtere 12 PWM -kanaler. Jeg tilføjede også nogle navne til Servoer, Signaler (i stedet for ADC/Digital) og brugerdefineret kortlægning til de rigtige funktioner - såsom SPI, UART og I2C.

Den vigtige ting at bemærke er at dobbelttjekke, at de array -referencer, du bruger til funktionerne, der er skitseret i variants.h, matcher stiften i varaints.cpp - som vi nu vil se på.

Variants.cpp er en meget kraftfuld og vigtig fil. Det gør alt det hårde arbejde med at indstille stifterne, så de matcher hardwareindstillingerne. Den nemmeste måde at forklare dette på er med et eksempel og forklaring på hver del.

(Se tabel i skærmbillede)

Eksempel (uddrag fra variants.cpp)

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

Dette er den første pin i variants.cpp -arrayet til Robo HAT MM1. Tabellen fra databladet er givet som et billede (grå tabel).

(Se billeder)

Denne særlige pin bruges til I2C Data Pin -funktionen. Når vi ser på tabellen, kan vi se, at denne pin kan bruges som en I2C SDA -pin (god start!). Stiften hedder "PA22", som er en forkortelse for PORTA på pin 22. Lige med det samme kan vi indstille PORT og pin -nummeret til denne pin.

Den næste ting, vi skal gøre, er at indstille stiften som en seriel kommunikationsport. Stiften har seriel kommunikation tilgængelig via funktion C (PIO_SERCOM) ved hjælp af SERCOM 3 og D ved hjælp af SERCOM5 (PIO_SERCOM_ALT). I forbindelse med Robo HAT MM1 bruger vi SERCOM3 til I2C -kommunikation. Dette er på funktion C; aka. PIO_SERCOM for varianter.cpp.

Da vi planlægger kun at bruge denne pin som en I2C SDA, er det ikke nødvendigt at indstille nogen af de andre funktioner. De kan alle indstilles som "Nej" eller "Ikke" fra den foregående tabel. Men hvis vi ville bruge de andre funktioner - kunne vi gå på tværs af databladet og sætte dem alle i de korrekte mellemrum. Det er alt i databladet.

Det kan tage noget tid at ændre variantfilerne. Vær forsigtig og tredobbelt check altid.

Trin 6: Opret en bestyrelsesdefinition

Opret en bestyrelsesdefinition
Opret en bestyrelsesdefinition

Når du har dine variantfiler klar, skal den være lige herfra. Det meste af arbejdet vil være at kopiere og indsætte eller ændre og opdatere filer.

Starter med boards.txt.

(Se billede)

Du vil gerne kopiere og indsætte en bestyrelsesdefinition, der allerede er der. Jeg vil anbefale Arduino Zero igen.

For enkelheds skyld skal du kun ændre tavlenavnet (første linje), usb_product, usb_producent og variant (robohat). Du kan tilpasse de andre argumenter senere, så de passer til dine behov - f.eks. En brugerdefineret bootloader eller forskellige USB VID/PID'er til at identificere dit board.

Tavlevarianten skal matche navnet på mappen, der blev oprettet i starten. Til denne tutorial kaldte jeg det 'robohatmm1'.

Det vil også blive anbefalet at ændre den første del af hver linje, så den matcher dit bestyrelsesnavn. I skærmbilledet er det blevet ændret til 'robo_hat_mm1'. Du skal vælge et navn til dit board med samme format.

Det er alt for boards.txt, medmindre du vil foretage yderligere ændringer nævnt ovenfor senere.

Trin 7: Opdater bestyrelsesversion

Opdater bestyrelsesversion
Opdater bestyrelsesversion

I platforms.txt skal du ændre navnet til navnet på dit brugerdefinerede bord. Skift også versionsnummer. Husk hvad du har indstillet dette til, vi får brug for det senere.

Trin 8: Opret JSON -pakkefil

Opret JSON -pakkefil
Opret JSON -pakkefil
Opret JSON -pakkefil
Opret JSON -pakkefil

For at installere dit board i Arduino IDE skal du oprette en JSON -fil, som du vil importere. JSON -filen fortæller Arduino IDE, hvor filerne skal installeres til at installere kortet, hvilke ekstra pakker der er nødvendige og et par andre bits metadata.

Det er meget vigtigt, at du gemmer denne fil uden for den mappe, vi lige har arbejdet i.

Det meste af filen kan kopieres og indsættes i din. Du skal kun ændre sektionen “boards” og de andre metadata øverst i filen. Se skærmbillede for hvad der skal opdateres.

(Se billede)

  • Rød sektion: Dette er metadata, som brugerne kan bruge til at finde hjælp. Det har meget lidt teknisk relevans.
  • Blå sektion: Alle disse er vigtige. De vises i Arduino IDE. Navn, arkitektur og version vil alle blive vist for alle, der forsøger at installere pakken. Det er her, du skal sætte versionsnummeret fra platforms.txt. Den anden blå sektion er listen over tavler, der er inkluderet i pakken. Du kunne have flere tavler.
  • Grønt afsnit: Dette afsnit har brug for yderligere forklaring.

(Se tabel i billeder)

Når du har oprettet zip -filen, har tjekket zip -filen og filstørrelsen, kan du nu uploade zip -filen til et sted. Du bliver nødt til at sætte denne URL i feltet 'url'. Hvis navnet eller nogen af ovenstående detaljer er forkert, installeres dit brugerdefinerede bord ikke.

Sørg for også at uploade din package_boardname_index.json -fil til en offentlig placering på internettet. GitHub er en god mulighed.

Robo HAT MM1 -brugerdefineret kortfil kan findes her.

Trin 9: Det sidste trin - Installer dit brugerdefinerede bord

Det sidste trin - Installer dit brugerdefinerede bord!
Det sidste trin - Installer dit brugerdefinerede bord!
Det sidste trin - Installer dit brugerdefinerede bord!
Det sidste trin - Installer dit brugerdefinerede bord!

Alt går godt, du skulle nu kunne inkludere din JSON -fil i Arduino IDE og installere dit brugerdefinerede bord.

Det er let at inkludere JSON -filen! I Arduino IDE - bare gå til "File"> "Preferences", og kopier og indsæt placeringen (URL) for dit package_boardname_index.json til sektionen "Additional Boards Manager URLs" i bunden af menuen Preferences.

(Se billede)

Tryk derefter på OK.

Kør instruktionerne ovenfra for at installere nye tavler, hvis du har glemt det. Husk at kigge efter dit brugerdefinerede bord denne gang!

(Se billede)

For flere detaljer om installation af nye tavler: Adafruit har en fantastisk vejledning her, der forklarer, hvordan de installerer deres Feature M0 -tavler.

Trin 10: Konklusion

Konklusion
Konklusion
Konklusion
Konklusion

Det har været sjovt at lave brugerdefinerede Arduino -tavler. Der er stadig meget for mig at eksperimentere med i fremtiden (tilføjelse af flere serielle porte), men det har været en stor læringsoplevelse!

Sørg også for at tjekke Crowd Supply -kampagnen. Den slutter den 11. juni 2019.

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

Jeg håber, at dette hjalp dig, eller du havde det sjovt at læse med!

Tak!

Anbefalede: