INHOUDSOPGAWE:

Arduino IDE: Maak persoonlike borde: 10 stappe
Arduino IDE: Maak persoonlike borde: 10 stappe

Video: Arduino IDE: Maak persoonlike borde: 10 stappe

Video: Arduino IDE: Maak persoonlike borde: 10 stappe
Video: How to use up to 10 push button switch with 1 Arduino input pin ANPB-V1 2024, Julie
Anonim
Arduino IDE: skep persoonlike borde
Arduino IDE: skep persoonlike borde
Arduino IDE: Skep pasgemaakte borde
Arduino IDE: Skep pasgemaakte borde
Arduino IDE: Skep pasgemaakte borde
Arduino IDE: Skep pasgemaakte borde

Ek het die afgelope ses maande baie tyd daaraan bestee om verskillende biblioteke oor te dra na die Robo HAT MM1 -bord wat deur Robotics Masters ontwikkel is. Dit het gelei tot die ontdekking van baie oor hierdie biblioteke, hoe dit agter die skerms werk en die belangrikste - wat om te doen om nuwe borde in die toekoms by te voeg.

Dit is die eerste in 'n reeks opskrywings wat ek sal doen om ander te help wat biblioteke vir hul borde wil oordra. Baie van die inligtingsbronne kan vaag of moeilik wees vir buitestaanders om te verstaan. Ek hoop om 'te demystifiseer' en te verduidelik hoe u 'n suksesvolle poort vir almal kan bereik.

Vandag kyk ons na die Arduino -platform. Dit het meer as 700 000 verskillende bordvariante regoor die wêreld en is een van die gewildste elektroniese platforms vir onderwys, nywerhede en vervaardigers.

Ek kon slegs baie beperkte inligtingsbronne vind oor hoe om dit te doen na baie Google -soektogte. Ek het dus gedink ek sal in detail skryf oor hoe ek dit gedoen het.

Hier gaan ons!

Stap 1: Voordat u begin

Voordat u begin met die oordrag van 'n sagtewarebiblioteek of firmware na u bord, moet u 'n paar belangrike punte ken oor die tegnologie wat u gebruik en die onderstaande vrae kan beantwoord.

  1. Watter verwerker gebruik jy?
  2. Watter argitektuur gebruik dit?
  3. Het ek toegang tot die datablad vir hierdie mikroverwerker?
  4. Is daar 'n soortgelyke bord op die mark wat dieselfde mikroverwerker gebruik?

Dit is baie belangrik. Dit sal 'n uitwerking hê op baie aspekte van hoe u die ontwikkelingsproses benader.

Arduino -borde gebruik gewoonlik 'n beperkte aantal verwerktipes en argitekture. Die algemeenste is die ATMEGA -reeks met behulp van die AVR -argitektuur (Arduino Uno). Daar is nuwer generasies Arduinos wat meer en meer gebruik word met behulp van die SAMD -verwerkers (ARM) en ander kragtiger verwerkers. Dit is dus belangrik om na te gaan watter een u gebruik.

Die datablad vir 'n mikroverwerker is absoluut noodsaaklik om te verseker dat die bord reageer soos verwag wanneer u die firmware saamstel. Daarsonder kan u nie die korrekte pin -uitvoerfunksies instel of seriële poorte instel nie.

Sodra u al die inligting wat u benodig oor die verwerker wat u gebruik, benodig, kan u na die sagteware begin kyk en dit aanpas vir u pasgemaakte bord.

Stap 2: Oorsig

Die moeilikste deel van enige projek is om 'n goeie beginpunt te vind. Dit is nie anders nie. Ek het gesukkel om goeie tutoriale te vind met genoeg detail oor hoe om pasgemaakte borde vir Arduino te skep. Die meeste tutoriale wys u hoe u ''n pasgemaakte bord kan byvoeg', maar nie hoe u ''n aangepaste bord' 'kan skep nie. Hier is 'n kort opsomming van wat betrokke is.

  1. Laai bestaande definisies en kopieë af
  2. Dateer definisie -lêers op (variant.h, varient.cpp)
  3. Skep bordinskrywing (board.txt)
  4. Werk bordweergawe op (platform.txt)
  5. Berei voor vir installering (json)
  6. Installasiebord in Arduino IDE

Elke stap word hieronder in detail verduidelik. Daar sal ook uitgebreide bespreking wees oor hoe elke lêer met mekaar in wisselwerking kom om te help verduidelik hoe alles agter die Arduino IDE werk.

Vir hierdie tutoriaal sal ek u wys hoe u 'n pasgemaakte bord vir SAMD -verwerkers kan skep. Meer spesifiek, die SAMD21G18A - wat die mikroverwerker is wat gebruik is op die Robo HAT MM1 -bord wat ek oorgedra het.

Ek neem ook aan dat u reeds Arduino IDE 1.8 of later afgelaai het. Ek het Arduino 1.8.9 gebruik toe ek dit geskryf het.

Stap 3: Laai bestaande borde af

Laai bestaande besture af
Laai bestaande besture af
Laai bestaande besture af
Laai bestaande besture af
Laai bestaande besture af
Laai bestaande besture af

Die eerste stap is om die naaste variant Arduino -bord af te laai wat by u bord pas. Vir SAMD -borde is dit die Arduino Zero.

Sedert Arduino IDE 1.6, is die metode om nuwe borde in die omgewing af te laai, deur spesiale JSON -lêers by te voeg wat sagteware -ontwikkelaars verskaf en dan die pasgemaakte borde met behulp van die "Boards Manager" te installeer. Vorige weergawes van Arduino IDE het 'n ander metode gebruik wat ons nie vandag sal bespreek nie. Ons sal later in hierdie tutoriaal ons eie JSON -lêer skep, maar ons moet eers die Arduino Zero -bord met hierdie metode byvoeg.

Gelukkig het die bord wat ons wil aflaai, nie 'n JSON -lêer nodig nie, want die JSON -lêer is vooraf saam met Arduino IDE gebundel - ons hoef net die bord te installeer vanaf 'Boards Manager'.

Om dit te doen, gaan na "Tools" en brei die menu "Board" uit. Bo -aan die “Board” -kieslys is die “Boards Manager”. Klik op hierdie menu -opsie om die direksiebestuurder te open.

(Sien prente)

As die direksiebestuurder oopgemaak word, kyk dit na al die JSON -lêers wat dit in die Arduino IDE gestoor het, en laai dan die instellings uit die lêer af. U behoort 'n lang lys beskikbare Arduino -borde te sien wat u kan installeer.

(Sien prente)

Ons is slegs geïnteresseerd in die bord "Arduino SAMD Boards (32-bits ARM Cortex-M0+)" vir hierdie tutoriaal, maar u kan op hierdie stadium die bord wat u benodig, afwyk en installeer. Soek en installeer die bord "Arduino SAMD Boards (32-bits ARM Cortex-M0+)". Dit kan gedoen word deur op die teks uit die lys te klik, gevolg deur die "Installeer" -knoppie aan die regterkant wat verskyn nadat u op die teks geklik het. Dit sal 'n paar minute neem om te installeer.

Vir meer besonderhede oor die installering van nuwe borde: Adafruit het hier 'n uitstekende handleiding wat verduidelik hoe u hul Feature M0 -borde kan installeer.

Noudat die bordlêers geïnstalleer is, kan ons dit kopieer sodat dit vir u pasgemaakte bord aangepas kan word.

Stap 4: Soek en kopieer bordlêers

Soek en kopieer bordlêers
Soek en kopieer bordlêers
Soek en kopieer bordlêers
Soek en kopieer bordlêers
Soek en kopieer bordlêers
Soek en kopieer bordlêers

Vir Windows is die bordlêers geleë (onthou om gebruikersnaam na u gebruikersnaam te verander):

C: / Users / gebruikersnaam / AppData / Local / Arduino15 / packages

In hierdie gids moet u 'n bietjie dieper ingaan om by die lêers te kom wat u moet kopieer om te verander. Vir hierdie tutoriaal gaan ons die Arduino Zero -bordlêers kry wat geïnstalleer sal word (onthou om gebruikersnaam na u gebruikersnaam te verander):

C: / Gebruikers / gebruikersnaam / AppData / Local / Arduino15 / packages / arduino / hardware / samd

Kopieer die weergawe-genommerde gids wat in hierdie gids geleë is, na 'n nuwe gids in u gids of dokumente van u keuse. Vir die doeleindes van hierdie tutoriaal plaas ek dit in 'n nuwe gids met die naam 'aangepaste borde' in Dokumente.

Die gids bevat 'n aantal dopgehou en gidse. Diegene wat ons gaan gebruik, word in die tabel op die kiekie aangeteken.

Stap 5: Skep variant

Skep variant
Skep variant
Skep variant
Skep variant
Skep variant
Skep variant
Skep variant
Skep variant

Ons is nou gereed om 'n pasgemaakte bordinskrywing te begin skep. Vir hierdie tutoriaal gebruik ek die Robo HAT MM1 as voorbeeld. Soos voorheen genoem, is dit 'n op SAMD gebaseerde bord wat die naaste pas by die Arduino Zero -gebou.

Ons begin deur na die map met variante te gaan en die arduino_zero -lêergids daar te kopieer. Ons sal die nuwe bordvariant 'robohatmm1' hernoem. U kan joune noem wat u wil.

(Sien prent)

In die gids robohatmm1 is die twee penne wat ons nodig het om te begin redigeer: variant.cpp en variant.h. Maak albei oop.

Dit het my 'n rukkie geneem om uit te werk, so ek sal dit hier verduidelik om u tyd te bespaar. Die variant.cpp -lêer bevat 'n baie groot verskeidenheid penne waarna in variant.h verwys word. Al die penverwysings in variant.h is 'n verwysing na die penkonfigurasie op 'n bepaalde posisie in die variant.cpp -skikking.

(Sien skermkiekie met twee lêers)

Die meeste van u wysigings kom dus in albei hierdie lêers voor, maar u moet seker maak dat as u die volgorde van die penne in variants.cpp verander - u die verwysings in die koplêer (variants.h) moet verander. Vir die Robo HAT MM1 hoef ek net 'n paar van die penne en funksies te verander. Dit is in variante gedoen.h. Ek het 'n paar nuwe PWM -penne bygevoeg, aangesien die SAMD21 12 PWM -kanale kan hanteer. Ek het ook 'n paar name vir Servo's, Seine (in plaas van ADC/Digital) en pasgemaakte kartering by die regte funksies gevoeg - soos SPI, UART en I2C.

Die belangrikste ding om op te let, is om seker te maak dat die skikkingverwysings wat u gebruik vir die funksies in variants.h ooreenstem met die van die pen in varaints.cpp - waarna ons nou sal kyk.

Variants.cpp is 'n baie kragtige en belangrike lêer. Dit doen al die harde werk om die penne aan te pas by die hardeware -instellings. Die maklikste manier om dit te verduidelik, is met 'n voorbeeld en verduideliking van elke deel.

(Sien tabel in skermkiekie)

Voorbeeld (uittreksel uit variants.cpp)

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

Dit is die eerste pen in die variants.cpp -skikking vir die Robo HAT MM1. Die tabel uit die datablad is as 'n afbeelding (grys tabel) verskaf.

(Sien prente)

Hierdie spesifieke pen word gebruik vir die I2C Data Pin -funksie. As ons na die tafel kyk, kan ons sien dat hierdie pen as 'n I2C SDA -pen gebruik kan word (goeie begin!). Die pen word die naam "PA22" genoem, wat kort is vir PORTA op pen 22. Ons kan dadelik die PORT- en speldommer vir hierdie pen stel.

Die volgende ding wat ons moet doen, is om die pen as 'n seriële kommunikasiepoort in te stel. Die pen het seriële kommunikasie beskikbaar via funksie C (PIO_SERCOM) met SERCOM 3 en D met SERCOM5 (PIO_SERCOM_ALT). Vir die doeleindes van die Robo HAT MM1 gebruik ons SERCOM3 vir I2C -kommunikasie. Dit is op funksie C; aka. PIO_SERCOM vir variante.cpp.

Aangesien ons van plan is om hierdie pen slegs as 'n I2C SDA te gebruik, hoef u nie die ander funksies in te stel nie. Hulle kan almal as 'Nee' of 'Nie' in die vorige tabel gestel word. As ons egter die ander funksies wil gebruik - kan ons die datablad oorskry en almal in die regte spasies plaas. Dit is alles in die datablad.

Dit kan 'n rukkie neem om die variantlêers te verander. Wees versigtig en maak altyd 'n drieledige ondersoek.

Stap 6: Skep 'n borddefinisie

Skep 'n bord definisie
Skep 'n bord definisie

As u u variantlêers gereed het, moet dit van hier af reguit wees. Die meeste werk sal lêers kopieer en plak, of dit verander en opdateer.

Begin met boards.txt.

(Sien prent)

U wil 'n borddefinisie wat reeds daar is, kopieer en plak. Ek sal die Arduino Zero weer aanbeveel.

Vir eenvoud, verander slegs die bordnaam (eerste reël), usb_product, usb_fabrikant en variant (robohat). U kan die ander argumente later aanpas by u behoeftes - soos 'n aangepaste selflaaiprogram of verskillende USB VID/PID's om u bord te identifiseer.

Die bordvariant moet ooreenstem met die naam wat gegee word aan die gids wat aan die begin geskep is. Vir hierdie tutoriaal noem ek dit 'robohatmm1'.

Dit word ook aanbeveel om die eerste deel van elke reël te verander om by u bordnaam te pas. Op die kiekie is dit verander na 'robo_hat_mm1'. U moet 'n naam vir u bord met dieselfde formaat kies.

Dit is alles vir boards.txt, tensy u later hierbo genoemde wysigings wil aanbring.

Stap 7: Dateer die weergawe van die bord op

Dateer bordweergawe op
Dateer bordweergawe op

Verander in platforms.txt die naam na die naam van u pasgemaakte bord. Verander ook die weergawenommer. Onthou waarop u dit gestel het, ons sal dit later nodig hê.

Stap 8: Skep JSON -pakketlêer

Skep JSON -pakketlêer
Skep JSON -pakketlêer
Skep JSON -pakketlêer
Skep JSON -pakketlêer

Om u bord in Arduino IDE te installeer, moet u 'n JSON -lêer skep wat u sal invoer. Die JSON -lêer vertel vir Arduino IDE waar u die lêers moet kry om die bord te installeer, watter ekstra pakkette nodig is en 'n paar ander stukkies metadata.

Dit is baie belangrik dat u hierdie lêer stoor buite die gids waarin ons pas gewerk het.

Die grootste deel van die lêer kan gekopieer en in u een geplak word. U hoef slegs die afdeling "borde" en die ander metadata bo -aan die lêer te verander. Sien skermkiekie vir wat opgedateer moet word.

(Sien prent)

  • Rooi gedeelte: dit is metadata wat gebruikers kan gebruik om hulp te vind. Dit het baie min tegniese relevansie.
  • Blou afdeling: Al hierdie dinge is belangrik. Hulle wys in die Arduino IDE. Naam, argitektuur en weergawe sal almal vertoon word aan almal wat die pakket probeer installeer. Dit is waar u die weergawenommer van platforms.txt moet plaas. Die tweede blou gedeelte is die lys van borde wat in die pakket ingesluit is. U kan verskeie borde hê.
  • Groen gedeelte: Hierdie afdeling benodig verdere verduideliking.

(Sien tabel in prente)

Nadat u die zip -lêer geskep het, die kontrolesom en lêergrootte van die zip -lêer gekry het, kan u die zip -lêer na 'n plek laai. U moet die URL in die 'url' -veld plaas. As die naam of enige van die bogenoemde besonderhede verkeerd is, kan u pasgemaakte bord nie geïnstalleer word nie.

Laai ook u pakket_boardname_index.json -lêer na 'n openbare plek op die internet. GitHub is 'n goeie opsie.

Die aangepaste bordlêer van Robo HAT MM1 kan hier gevind word.

Stap 9: Die laaste stap - installeer u pasgemaakte bord

Die laaste stap - installeer u pasgemaakte bord!
Die laaste stap - installeer u pasgemaakte bord!
Die laaste stap - installeer u pasgemaakte bord!
Die laaste stap - installeer u pasgemaakte bord!

As dit goed gaan, moet u nou u JSON -lêer in Arduino IDE kan insluit en u pasgemaakte bord kan installeer.

Dit is maklik om die JSON -lêer in te sluit! Gaan in Arduino IDE na "File"> "Preferences" en kopieer en plak die plek (URL) van u package_boardname_index.json in die afdeling "Addisionele bestuurders -URL's" onderaan die voorkeure -kieslys.

(Sien prent)

Tik dan OK.

Gaan deur die instruksies van bo vir die installering van nuwe borde as u dit vergeet het. Onthou om hierdie keer na u pasgemaakte bord te soek!

(Sien prent)

Vir meer besonderhede oor die installering van nuwe borde: Adafruit het hier 'n uitstekende handleiding wat verduidelik hoe u hul Feature M0 -borde kan installeer.

Stap 10: Gevolgtrekking

Afsluiting
Afsluiting
Afsluiting
Afsluiting

Dit was lekker om aangepaste Arduino -borde te skep. Daar is nog baie om in die toekoms mee te eksperimenteer (om ekstra seriële poorte by te voeg), maar dit was 'n wonderlike leerervaring!

Kyk ook na die Crowd Supply -veldtog. Dit eindig op 11 Junie 2019.

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

Ek hoop dit het jou gehelp of jy het lekker saamgelees!

Dankie!

Aanbeveel: