Innehållsförteckning:
- Steg 1: Innan du börjar
- Steg 2: Översikt
- Steg 3: Ladda ner befintliga kort
- Steg 4: Hitta och kopiera kortfiler
- Steg 5: Skapa variant
- Steg 6: Skapa en kortdefinition
- Steg 7: Uppdatera kortversion
- Steg 8: Skapa JSON -paketfil
- Steg 9: Det sista steget - Installera ditt anpassade kort
- Steg 10: Slutsats
Video: Arduino IDE: Skapa anpassade kort: 10 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Under de senaste sex månaderna har jag ägnat mycket tid åt att porta olika bibliotek till Robo HAT MM1 -kortet utvecklat av Robotics Masters. Detta har lett till att man har upptäckt mycket om dessa bibliotek, hur de fungerar bakom kulisserna och viktigast av allt - vad man ska göra för att lägga till nya tavlor i framtiden.
Detta är det första i en serie uppskrivningar jag kommer att göra för att hjälpa andra som vill portbibliotek för sina styrelser. Många av informationskällorna kan vara vaga eller svåra att förstå för utomstående. Jag hoppas kunna ‘avmystifiera’ och förklara hur man uppnår en framgångsrik hamn för alla.
Idag kommer vi att titta på Arduino -plattformen. Den har över 700 000 olika kortvarianter runt om i världen och är en av de mest populära elektronikplattformarna för utbildning, industri och tillverkare.
Jag kunde bara hitta mycket begränsade informationskällor om hur man gör detta efter många Google -sökningar. Så jag tänkte skriva om hur jag gjorde det i detalj.
Nu kör vi!
Steg 1: Innan du börjar
Innan du börjar med att överföra ett programvarubibliotek eller firmware till ditt kort måste du känna till några viktiga punkter om den teknik du använder och kunna svara på frågorna nedan.
- Vilken processor använder du?
- Vilken arkitektur använder den?
- Har jag tillgång till databladet för denna mikroprocessor?
- Finns det ett liknande kort på marknaden som använder samma mikroprocessor?
Dessa är mycket viktiga. Det kommer att påverka många aspekter av hur du närmar dig utvecklingsprocessen.
Arduino -kort använder vanligtvis ett begränsat antal processortyper och arkitekturer. Det vanligaste är ATMEGA -intervallet med AVR -arkitekturen (Arduino Uno). Det finns nyare generationer av Arduinos som blir vanligare med SAMD -processorer (ARM) och andra kraftfullare processorer. Så det är viktigt att kontrollera vilken du använder.
Databladet för en mikroprocessor är helt avgörande för att säkerställa att kortet reagerar som förväntat när du kompilerar firmware. Utan det kommer du inte att kunna ställa in korrekta utgångsfunktioner eller konfigurera seriella portar.
När du har all information du behöver om processorn du använder kan du börja titta på programvaran och ändra den för att fungera för ditt anpassade kort.
Steg 2: Översikt
Den svåraste delen av något projekt är att hitta en bra utgångspunkt. Detta är inte annorlunda. Jag kämpade för att hitta bra handledning med tillräckligt med detaljer om hur man skapar anpassade brädor för Arduino. De flesta självstudier visar hur du "lägger till ett anpassat kort" men inte hur du "skapar ett anpassat kort". Här är en kort sammanfattning av vad det handlar om.
- Ladda ner befintliga bräddefinitioner och kopiera
- Uppdatera definitionsfiler (variant.h, varient.cpp)
- Skapa Board Entry (board.txt)
- Update Board Version (platform.txt)
- Förbereda för installation (json)
- Installationskort i Arduino IDE
Varje steg kommer att förklaras i detalj nedan. Det kommer också att bli en omfattande diskussion om hur varje fil interagerar med varandra för att hjälpa till att klargöra hur allt fungerar bakom Arduino IDE.
För denna handledning kommer jag att visa dig hur du skapar ett anpassat kort för SAMD -processorer. Mer specifikt SAMD21G18A - som är mikroprocessorn som används på Robo HAT MM1 -kortet som jag portade.
Jag antar också att du redan har laddat ner Arduino IDE 1.8 eller senare. Jag använde Arduino 1.8.9 i skrivande stund.
Steg 3: Ladda ner befintliga kort
Det första steget är att ladda ner den närmaste varianten Arduino -bräda som matchar din bräda. För SAMD -kort är detta Arduino Zero.
Sedan Arduino IDE 1.6 har metoden för nedladdning av nya kort till miljön varit genom att lägga till speciella JSON -filer som mjukvaruutvecklare tillhandahåller och sedan installera de anpassade korten med "Boards Manager". Tidigare versioner av Arduino IDE använde en annan metod som vi inte kommer att diskutera idag. Vi kommer att skapa vår egen JSON -fil senare i denna handledning, men vi måste först lägga till Arduino Zero -kortet med den här metoden.
Tur för oss att det kort vi vill ladda ner inte behöver en JSON -fil eftersom JSON -filen är förpackad med Arduino IDE - så vi behöver bara installera kortet från "Boards Manager".
För att göra detta, gå till "Verktyg" och expandera "Board" -menyn. Högst upp på "Board" -menyn kommer "Boards Manager". Klicka på det här menyalternativet för att få fram Boards Manager.
(Se bilder)
När Boards Manager öppnas kommer den att titta på alla JSON -filer som den har lagrat i Arduino IDE och sedan ladda ner inställningarna från filen. Du bör se en lång lista med tillgängliga Arduino -kort som du kan installera.
(Se bilder)
Vi är bara intresserade av “Arduino SAMD Boards (32-bitars ARM Cortex-M0+)” -kortet för den här självstudien, men du kan avvika och installera kortet du behöver vid denna tidpunkt. Sök efter och installera "Arduino SAMD Boards (32-bitars ARM Cortex-M0+)" -kortet. Detta kan göras genom att klicka på texten från listan följt av "Installera" -knappen på höger sida som visas när du klickar på texten. Det tar ett par minuter att installera.
För mer information om installation av nya brädor: Adafruit har en bra handledning här som förklarar hur man installerar deras Feature M0 -kort.
Nu när kortfilerna har installerats kan vi kopiera dem så att de kan ändras för ditt anpassade kort.
Steg 4: Hitta och kopiera kortfiler
För Windows finns styrelsefilerna i (kom ihåg att ändra användarnamn till ditt användarnamn):
C: / Användare / användarnamn / AppData / Local / Arduino15 / paket
I den här mappen måste du gå lite djupare för att komma till de filer som du behöver kopiera för att ändra. För denna handledning kommer vi att hämta Arduino Zero -kortfiler som kommer att installeras till (kom ihåg att ändra användarnamn till ditt användarnamn):
C: / Användare / användarnamn / AppData / Local / Arduino15 / paket / arduino / hardware / samd
Kopiera den versionsnumrerade mappen som finns i den här katalogen till en ny mapp i mappen Dokument eller den mapp du väljer. För den här självstudien lägger jag dem i en ny mapp med namnet "anpassade tavlor" inuti dokument.
Mappen innehåller ett antal mappar och kataloger. De vi kommer att använda noteras i tabellen på skärmdumpen.
Steg 5: Skapa variant
Vi är nu redo att börja skapa en anpassad tavla. För denna handledning kommer jag att använda Robo HAT MM1 som exemplet. Som tidigare nämnts är det ett SAMD -baserat kort som är närmast matchat Arduino Zero -byggnaden.
Vi börjar med att gå in i mappen varianter och kopiera arduino_zero -mappen där. Vi kommer att byta namn på den nya kortvarianten ‘robohatmm1’. Du kan kalla din vad du vill.
(Se bild)
Inuti mappen robohatmm1 kommer de två stiften som vi behöver för att börja redigera: variant.cpp och variant.h. Öppna dem båda.
Det tog mig ett tag att träna, så jag ska förklara det här för att spara lite tid. Varianten.cpp -filen innehåller ett mycket stort antal stift som det refereras till i hela variant.h. Alla stiftreferenser i variant.h är en referens till stiftkonfigurationen vid en viss position i varianten. Cpp -arrayen.
(Se Skärmdump med två filer)
Så de flesta av dina redigeringar kommer att förekomma i båda dessa filer, men du måste se till att om du ändrar stifternas ordning i variants.cpp - måste du ändra referenserna i rubrikfilen (variants.h). För Robo HAT MM1 behövde jag bara ändra några av stiften och funktionerna. Detta gjordes i varianter. H. Jag har lagt till några nya PWM -stift eftersom SAMD21 kan hantera 12 PWM -kanaler. Jag har också lagt till några namn för Servos, Signaler (istället för ADC/Digital) och anpassad mappning till rätt funktioner - som SPI, UART och I2C.
Det viktiga att notera är att dubbelkolla att matrisreferenserna du använder för funktionerna som beskrivs i variants.h stämmer överens med stiftet i varaints.cpp - som vi nu kommer att titta på.
Variants.cpp är en mycket kraftfull och viktig fil. Det gör allt hårt arbete med att ställa in stiften så att de matchar maskinvaruinställningarna. Det enklaste sättet att förklara detta är med ett exempel och förklaring av varje del.
(Se tabell i skärmdump)
Exempel (utdrag från variants.cpp)
{PORTA, 22, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE}, // SDA
Detta är den första stiftet i variants.cpp -arrayen för Robo HAT MM1. Tabellen från databladet har tillhandahållits som en bild (grå tabell).
(Se bilder)
Denna speciella pin används för I2C Data Pin -funktionen. Om vi tittar på tabellen kan vi se att denna stift kan användas som en I2C SDA -stift (bra start!). Stiftet heter "PA22" som är en förkortning för PORTA på stift 22. Direkt kan vi ställa in PORT och pin -nummer för denna pin.
Nästa sak vi behöver göra är att ställa in stiftet som en seriell kommunikationsport. Stiftet har seriell kommunikation tillgänglig via funktion C (PIO_SERCOM) med SERCOM 3 och D med SERCOM5 (PIO_SERCOM_ALT). För Robo HAT MM1 använder vi SERCOM3 för I2C -kommunikation. Detta är på funktion C; aka. PIO_SERCOM för varianter.cpp.
Eftersom vi planerar att bara använda denna pin som en I2C SDA, behöver du inte ställa in någon av de andra funktionerna. Alla kan ställas in som "Nej" eller "Inte" från föregående tabell. Men om vi ville använda de andra funktionerna - kunde vi gå över databladet och placera dem alla i rätt utrymmen. Det finns allt i databladet.
Det kan ta lite tid att ändra variantfilerna. Var försiktig och tredubbla alltid.
Steg 6: Skapa en kortdefinition
När du har dina variantfiler redo bör det vara rakt fram härifrån. Det mesta av arbetet kommer att vara att kopiera och klistra in eller ändra och uppdatera filer.
Börjar med boards.txt.
(Se bild)
Du vill kopiera och klistra in en kortdefinition som redan finns där. Jag skulle rekommendera Arduino Zero igen.
För enkelhetens skull, ändra bara kortnamnet (första raden), usb_product, usb_manufacturer och variant (robohat). Du kan anpassa de andra argumenten senare för att passa dina behov - till exempel en anpassad bootloader eller olika USB VID/PID för identifiering av ditt kort.
Kortvarianten måste matcha namnet på mappen som skapades i början. För denna handledning kallade jag det 'robohatmm1'.
Det rekommenderas också att ändra den första delen av varje rad för att matcha ditt styrelsens namn. På skärmdumpen har den ändrats till ‘robo_hat_mm1’. Du bör välja ett namn på din tavla med samma format.
Det är allt för boards.txt om du inte vill göra ytterligare ändringar som nämns ovan senare.
Steg 7: Uppdatera kortversion
I platforms.txt ändrar du namnet till namnet på ditt anpassade kort. Ändra även versionsnummer. Kom ihåg vad du ställde in det här, vi kommer att behöva det senare.
Steg 8: Skapa JSON -paketfil
För att installera ditt kort i Arduino IDE måste du skapa en JSON -fil som du kommer att importera. JSON -filen berättar för Arduino IDE var filerna ska installeras för att installera kortet, vilka extra paket som behövs och några andra bitar metadata.
Det är mycket viktigt att du sparar den här filen utanför den mapp vi just har arbetat i.
Det mesta av filen kan kopieras och klistras in i din. Du behöver bara ändra avsnittet "tavlor" och de andra metadata högst upp i filen. Se skärmdump för vad som ska uppdateras.
(Se bild)
- Röd sektion: Detta är metadata som användare kan använda för att hitta hjälp. Det har mycket liten teknisk relevans.
- Blå sektion: Alla dessa är viktiga. De visas i Arduino IDE. Namn, arkitektur och version kommer alla att visas för alla som försöker installera paketet. Det är här du måste ange versionsnumret från platforms.txt. Den andra blå sektionen är listan över brädor som ingår i paketet. Du kan ha flera kort.
- Grönt avsnitt: Detta avsnitt behöver ytterligare förklaring.
(Se tabell i bilder)
När du har skapat zip -filen, fått zip -filens kontrollsumma och filstorlek kan du nu ladda upp zip -filen till en plats. Du måste ange den webbadressen i "url" -fältet. Om namnet eller någon av ovanstående uppgifter är felaktiga kommer ditt anpassade kort inte att installeras.
Se till att även ladda upp filen package_boardname_index.json till en offentlig plats på internet. GitHub är ett bra alternativ.
Robo HAT MM1 anpassad kortfil hittar du här.
Steg 9: Det sista steget - Installera ditt anpassade kort
Allt går bra, du borde nu kunna inkludera din JSON -fil i Arduino IDE och installera ditt anpassade kort.
Det är enkelt att inkludera JSON -filen! I Arduino IDE - gå bara till "File"> "Preferences" och kopiera och klistra in platsen (URL) för ditt package_boardname_index.json till avsnittet "Extra Boards Manager URLs" längst ned på menyn Preferences.
(Se bild)
Tryck sedan på OK.
Kör igenom instruktionerna ovan för att installera nya kort om du har glömt. Kom ihåg att leta efter din anpassade tavla den här gången!
(Se bild)
För mer information om installation av nya brädor: Adafruit har en bra handledning här som förklarar hur man installerar deras Feature M0 -kort.
Steg 10: Slutsats
Det har varit roligt att skapa anpassade Arduino -brädor. Det finns fortfarande mycket för mig att experimentera med i framtiden (lägga till ytterligare seriella portar) men det har varit en stor lärandeupplevelse!
Var noga med att kolla in Crowd Supply -kampanjen också. Den slutar den 11 juni 2019.
www.crowdsupply.com/robotics-masters/robo-…
Jag hoppas att detta hjälpte dig eller att du hade kul att läsa!
Tack!
Rekommenderad:
Skapa anpassade kartor för din Garmin GPS: 8 steg (med bilder)
Skapa anpassade kartor för din Garmin GPS: Om du har en Garmin GPS avsedd för vandring och andra utomhusaktiviteter (inklusive GPSMAP, eTrex, Colorado, Dakota, Oregon och Montana -serien, bland några andra) behöver du inte nöja dig med bara benkartorna som kom förinstallerade på den. E
Skapa anpassade åtgärder för Google Assistant: 12 steg
Skapa anpassade åtgärder för Google Assistant: Eftersom jag såg potentialen hos Google Assistant som den presenterades i Google I/O 18 samt Volvo Cars i deras infotainmentsystem kunde jag inte låta bli att testa den. Jag återanvände ett av mina äldre projekt, VasttraPi och kopplade det till Google Assistant.
Gör anpassade Pokémon -kort på GIMP: 7 steg
Skapa anpassade Pokémon -kort på GIMP: Här är en handledning för att göra anpassade Pokémon med GIMP -programmet! Ovan är en anpassad Raichu LV. X jag gjorde mig själv! Ha kul att skapa
Skapa en laserdrivrutin från ett Arduino -kort: 6 steg (med bilder)
Skapa en laserdrivrutin från ett Arduino -kort.: Denna instruerbara är att bygga upp en laserdrivrutin från en Arduino -baserad bräda för en 5 mW Adafruit -laser. Jag valde ett Arduino -kort eftersom jag kanske vill fjärrstyra lasern från min dator i framtiden. Jag kommer också att använda provet Arduino -kod för att
Lägga till anpassade kort till Arduino IDE: 3 steg
Lägga till anpassade kort till Arduino IDE: Version 1.6.4 av Arduino IDE introducerade officiellt stöd för att lägga till arduino -kompatibla kort från tredje part till Arduino Board Manager. Detta stöd för tillägg är en bra nyhet, eftersom det tillåter användare att snabbt lägga till anpassade brädor med bara ett klick