I et nylig indlæg talte jeg om at udnytte den “blå pille” STM32-modul med Arduino IDE. Jeg er ikke en stor fan af Arduino IDE, men jeg vil indrømme, at det er nemt at udnytte, hvilket gør det godt for enkle ting.

Jeg er ikke en stor fan af integrerede fremskridtsmiljøer (IDE), generelt. Jeg har udnyttet masser af dem, især når de er tæt forbundet med det værktøj, jeg forsøger at udnytte på det tidspunkt. Men når jeg ikke laver noget særligt, har jeg en tendens til bare at komponere min kode i Emacs. At tro på det, antager jeg, at jeg virkelig ikke har noget imod et IDE, hvis det har værktøjer, der virkelig hjælper mig. Men hvis det bare er en teksteditor samt introducerer et par kommandoer, kan jeg gøre det fra Emacs eller en mere redaktør for mit valg. De muligheder, som dit foretrukne IDE skal have så meget redigeringsevne såvel som personalisering, da Emacs er tæt på nul. Selvom du ikke kan lide Emacs, hvorfor opdage en mere editor, hvis der ikke er en fjernelse for at gøre det?

Der er selvfølgelig måder at udnytte andre værktøjer med Arduino såvel som andre rammer såvel som jeg besluttede at begynde at se på dem. Når alt kommer til alt, præcis hvor svært kan det være at udvikle arduino kode? Hvis du vil hoppe direkte til stempellinjen, kan du inspicere videoen nedenfor.

Viser sig…

Det viser sig, at Arduino IDE gør meget mere end at give en bare-knogler editor samt introducere et par kommandolinjeværktøjer. Det håndterer ligeledes en ekstremt konvolut udviklingsproces. Udviklingsprocessen slutter sig til en masse dine data sammen, tilføjer overskrifter baseret på, hvad det mener, at du gør, samt generelt kompilerer en stor fil, medmindre du udtrykkeligt har inkluderet .cpp eller .c data i din bygning.

Det betyder bare at kopiere din typiske arduino kode (jeg ikke kan lide til statsskitse) giver dig ikke noget, du kan udvikle med en typisk kompilator. Mens der er masser af makefile-baserede løsninger, er der ligeledes et værktøj kaldet platformio, der er til at være en generel løsning til bygning på store tilbud af indlejrede platforme, herunder Arduino.

Om platformio.

Selvom Platformio erklærer at være et IDE, er det virkelig et plugin til Open Source Atom Editor. Det har dog ligeledes plugins for en stor del af andre id’er. Interessant nok understøtter det endda Emacs. Jeg forstår ikke, at alle værdsætter Emacs, så jeg besluttede at undersøge nogle af de andre muligheder. Jeg taler heller ikke om vim.

Jeg afviklede eksperimentering med to ides: Atom samt Microsoft Visual Studio Code. Da Platformio har deres 2,0 version i preview, besluttede jeg at prøve det. Du kan blive overrasket over, at jeg bruger Microsofts kodeværktøj. Overraskende løber det på Linux samt understøtter mange ting med plugins, herunder et arduino-modul og selvfølgelig platformio. Det tilbydes endda som kilde under en MIT-licens. De to redaktører ser virkelig en hel del ens, som du kan se.

Platformio understøtter et svimlende antal brædder, der spænder fra Arduino til ESP82666 til MBED-brædder til Raspberry PI. Det understøtter også forskellige rammer såvel som ides. Hvis du er som mig, såvel som ligesom at være på kommandolinjen, kan du bruge platformio core, som er kommandolinjetrevet.

Faktisk er det en af ​​de ting, du selv første bemærkning om platformio er, at det ikke kan vælge, om det er et GUI-værktøj eller et kommandolinjeværktøj. Jeg formoder, at et par af det er i IDE-valget, også. For eksempel, med kode, skal du køre projektionsinitialiseringsværktøjet i en shell-prompt. Givet, kan du åbne en shell inde-kode, men det er stadig en kommandolinje. Selv på platformen IDE (faktisk atom), ændrer den blå pilleramme fra Arduino til MBED at åbne en INI-data samt ændre det. Indstilling af uploadvejen for en FRDM-KL46 havde brug for den nøjagtige samme type ændring.

Er det nemt?

Gør mig ikke forkert. Jeg har ikke noget imod at redigere en data eller udstede en kommando fra en prompt. Det forekommer dog, at denne type værktøj hovedsagelig vil charme til nogen, der gør det. Jeg kan godt lide, at kommandolinjeværktøjerne findes. Men det gør det til at virke underligt, når nogle modifikationer udføres i en GUI, såvel som nogle er færdige fra kommandolinjen.

Det er selvfølgelig repareret. Jeg har dog endnu en klage, som jeg føler mig dårlig til at voicere, da jeg ikke har en meget bedre løsning. Platformio gør så meget meget. I teorien er det staminens udholdenhed. I can compose my code as well as not care exactly how the mBed libraries are written or the Arduino tools munge my source code. I don’t even have to set up a tool chain since PlatformIO downloads whatever I requirement the very first time I utilize it.

When that works it is truly great. The issue is when it doesn’t. For example, on the older version of PlatformIO, I had difficulty getting the mBed libraries to develop for a different target. I dug around as well as discovered the problem however it wasn’t easy. had I developed the toolchain as well as been in manage ofProcessen, jeg ville have forstået meget bedre præcis, hvordan man fejlfinding.

I sidste ende skal du også fejlfinding. Platformio sigter mod at flytte mål. Hver gang Arduino IDE eller MBED-rammerne eller noget andet ændrer sig, er der en stor mulighed, det vil bryde noget. Når det gør det, skal du arbejde for at reparere det, indtil designere reparerer det for dig. Hvis du kan gøre det, er det en udgift i tide. Men jeg formoder, at de mennesker, der vil mest tænke på platformio, vil være mindst i stand til at reparere det, når det bryder.

Bundlinie

Hvis du vil eksperimentere med en anden metode til bygningsprogrammer – såvel som endnu vigtigere, skal en enkelt metode til at producere såvel som udvikle – du bør give platformio et spin. Når det virker, fungerer det godt. Lige her er et par links til at komme i gang:

Platformio IDE (kræver atom)

Platformio Core (ikke nødvendig, hvis du opretter en IDE-pakke)

Visual Studio Code (Installer platformio fra IDE)

Bundlinjen, når det virker, fungerer det godt. Når det ikke er det, er det smertefuldt. Skal du bruge det? Det er praktisk, der er ingen tvivl om det. Integrationen med kode er ret minimal. Atomintegrationen – mens ikke perfekt – er meget mere sømløs. Men hvis du opdager at udnytte kommandolinjeværktøjerne, betyder det næsten ikke noget. Udnyt uanset editor du kan lide, såvel som jeg gør sådan. Hvis du udnytter det, håber det bare, at det ikke bryder såvel som måske en backup plan, hvis det gør det.

Leave a Reply

Your email address will not be published. Required fields are marked *