- Installation och konfiguration Arduino CLI i Windows, Linux och Raspberry Pi, med YAML-fil och nyckelsökvägar.
- Kärnhantering (officiell och tredjeparts), FQBN, sammanställning och uppladdning av skisser från terminala.
- Bibliotekssökning/installation, daemonläge med gRPC och Prometheus-mätvärden för integrationer.
- Bästa praxis för Linux/Raspberry Pi-terminaler som komplement till CRI och ökar produktiviteten.
Om du är intresserad av att styra ditt Arduino-ekosystem från terminalen är Arduino CLI precis vad du letar efter: en uppsättning verktyg för att kompilera, ladda upp och hantera kort och bibliotek utan att öppna IDE:n. Denna praktiska guide sammanför det viktigaste med det avancerade så att du kan integrera det i ditt arbetsflöde, oavsett om det är på Windows, Linux, Raspberry Pi eller i din favoritredigerare.
Till skillnad från en grafisk IDE förlitar sig CLI på kommandon som du kan kedja, automatisera eller anropa från andra verktyg (som VS Code eller skript), och lägger till servicelägen som gRPC- och Prometheus-mätvärden. Du kommer att se hur man skapar skisser, upptäcker kort, installerar kärnor, lägger till bibliotek och till och med exponerar tjänster. för mer sofistikerade integrationer.
Vad är Arduino CLI och varför ska man använda det?
Arduino CLI koncentrerar viktiga funktioner i det officiella ekosystemet: kort- och bibliotekshanterare, skisskompilator, feldetektering, hårdvara och programladdare, allt i ett kommandoradsverktyg. Även om den inte alltid har 1:1-paritet med IDE:n, täcker de flesta behov och är även hjärtat i officiella produkter som Arduino IDE och Arduino Web Editor.
CLI är organiserat som en "kommandobehållare" (underkommandon), där varje kommando har hjälp tillgänglig via hjälp. Denna modulära design gör det enkelt att upptäcka alternativ och anpassa verktyget till automatiseringar, CI/CD eller reproducerbara flöden.
Utöver interaktiv användning kan den köras som en gRPC-tjänst med stöd för Prometheus-mätvärden, vilket öppnar dörren för programmatiska integrationer och observerbarhet. Det är en allt-i-ett-lösning för Arduino-kompatibla kort och för tredjepartsplattformar genom ytterligare index.
Installation på Windows, Linux och Raspberry Pi (och WSL-överväganden)
På Linux är ett rent sätt att använda skript officiell installation från din användarmapp, och utnyttja ~/.local/bin för att undvika administratörsrättigheter. Från din hemkatalog, kör:
cd ~/.local
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
På macOS finns ett paket tillgängligt via Homebrew, medan du på Windows kan ladda ner den körbara filen som publicerats av Arduino och placera den i en mapp som ingår i din PATH. I Windows, lägg till EXE-mappen i miljövariabeln PATH att anropa den från vilken terminal som helst.
På Raspberry Pi körs CLI särskilt smidigt och lätt jämfört med IDE, vilket gör att du kan redigera med Geany eller Code OSS utan att ladda Java. Upplevelsen i Pi är oftast bättre än med den traditionella IDE:n för förbrukning och hastighet.
Med klassisk WSL (WSL1) misslyckas ofta kortidentifiering, så även om CLI är installerat kommer du inte enkelt att kunna ladda upp till kortet; i WSL2 kan resultatet vara liknande beroende på konfigurationen. USB. För att undvika problem, kör uppladdningen från inbyggt Windows eller Linux med faktisk åtkomst till serieporten..
Komma igång: inbyggd hjälp och konfigurationsfil
CLI organiserar sina funktioner i underkommandon med kontextkänslig hjälp. Så här visar du global hjälp eller hjälp med underkommandon:
arduino-cli help
arduino-cli <comando> --help
En konfigurationsfil krävs inte, men den sparar skrivkraft och gör beteendet mer förutsägbart. Initiera en baskonfiguration med:
arduino-cli config init
Det här steget genererar en YAML (t.ex. arduino-cli.yaml eller .cli-config.yml) med viktiga nycklar. Justera dessa två alternativ specifikt:
- skissbok_sökväg: din Arduino-anteckningsbokkatalog (där du lagrar skisser, manualbibliotek och ytterligare hårdvara).
- arduino_data: plats där CLI lagrar data för forumhanteraren och biblioteket (normalt behöver detta inte ändras).
Dessutom kan du definiera ytterligare paketindex (tredjepartskärnor) under board_manager och anpassa metriska parametrar om du använder daemon-läge. Genom att centralisera dessa rutter undviks inkonsekvenser mellan IDE och CLI..
Skapa och redigera en ny skiss
För att generera strukturen för ett projekt kan CLI skapa en mapp och en .ino med det grundläggande skelettet. Använd den moderna varianten av delkommandot sketch:
arduino-cli sketch new MiPrimerSketch
Du hittar också referenser till det klassiska kommandot new; i båda fallen får du en katalog med MyFirstSketch.ino redo att redigeras. Öppna .ino-filen i din favoritredigerare och ändra den ursprungliga koden efter behov.
Om du föredrar att ange en explicit sökväg, inkludera hela katalogen i slutet av kommandot. CLI-kommandot kommer att respektera din sketchbook_path när du inte anger absoluta sökvägar.
Identifiera din registreringsskylt, uppdatera index och förstå FQBN
Efter en nyligen genomförd installation är det lämpligt att uppdatera cachen för tillgängliga plattformar och bibliotek. Springa:
arduino-cli core update-index
arduino-cli lib update-index
Anslut kortet via USB och kontrollera om systemet upptäcker det. Listplattor kopplade till:
arduino-cli board list
Om ditt kort visas med sitt FQBN (Fully Qualified Board Name), vet du redan vilken kärna du ska installera och vilken identifierare du ska använda för att kompilera/ladda upp. FQBN följer formatet manufacturer:architecture:board, till exempel arduino:avr:uno.
När systemet visar Okänd som registreringsskylt kan du fortfarande gå ombord om du vet rätt FQBN. För att se alla kort som stöds och deras FQBN:er:
arduino-cli board listall
Installera lämplig kärna (exempel Arduino: Samd)
Om ditt kort tillhör SAMD-familjen (som MKR1000), installera dess kärna. Till exempel:
arduino-cli core install arduino:samd
Kontrollera att den är korrekt installerad genom att lista tillgängliga plattformar. Kontrollera installationen med:
arduino-cli core list
När rätt kärna är installerad kan du kompilera och ladda upp för den kortfamiljen med dess FQBN. Detta steg är viktigt före den första sammanställningen.
Lägg till tredjepartskärnor (ESP8266, ESP32, NRF52, etc.)
För forum som stöds av externa communities, lägg till ytterligare index-URL:er i CLI-konfigurationen under board_manager.additional_urls. Exempel med ESP8266 (lägger till kärnans offentliga URL):
board_manager:
additional_urls:
- https://arduino.esp8266.com/stable/package_esp8266com_index.json
Om du har lokala index kan du inkludera filsökvägar istället för URL:er. Till exempel, för ett NRF52832-paket som lagras på din dator:
board_manager:
additional_urls:
- file:///ruta/a/tu/package_nrf52_index.json
Från och med den tidpunkten kommer kommandon som körs på dessa kärnor automatiskt att använda de ytterligare källor som definierats i YAML. Som ett punktligt alternativ, lägg till alternativet –additional-urls till varje kommando:
arduino-cli core install esp8266:esp8266 --additional-urls https://arduino.esp8266.com/stable/package_esp8266com_index.json
Du kan också använda filsökvägar med –additional-urls för lokala paket. Kom ihåg att upprepa alternativet i varje kommando som påverkar den kärnan. om du inte har lagt in det i konfigurationsfilen.
Användbar information om populär hårdvara: ESP32-familjen integrerar lågenergi-WiFi och Bluetooth (med Xtensa LX6/LX7 eller RISC-V CPU-varianter, enkel- eller dubbelkärnig), och har RF-frontend och strömhantering. Det är ett vanligt mål för CLI på grund av dess makt/pris-balans..
Sammanställ och ladda upp en skiss
För att kompilera, ange mål-FQBN; du kan kompilera från sketch-mappen eller genom att skicka sökvägen. Exempel för Arduino Uno:
arduino-cli compile --fqbn arduino:avr:uno "C:/Users/tu.usuario/Documents/Arduino/cli_test"
Lägg till -v för större utförlighet eller definiera en artefaktkatalog med –build-path (i Windows, absolut sökväg). Användbara flaggor: -vy –bygg-sökväg för att spara .hex och objekt.
För att ladda upp, ange serieporten med -p bredvid FQBN. Exempel på Windows (COM18):
arduino-cli upload -p COM18 --fqbn arduino:avr:uno "C:/Users/tu.usuario/Documents/Arduino/cli_test"
På Linux ser den typiska porten ut som /dev/ttyACM0 eller /dev/ttyUSB0. Kontrollera dina användares behörigheter på seriellenheten om ett åtkomstfel uppstår.
Sök och installera bibliotek
Innan du uppfinner hjulet på nytt, utforska bibliotekshanteraren – det finns tusentals färdiga att använda. Sök efter nyckelord med:
arduino-cli lib search debouncer
Om du gillar en, installera den med namn. Till exempel för en tryckknappsavkopplare som FTDebouncer. Installera med:
arduino-cli lib install FTDebouncer
Dessa bibliotek görs sedan tillgängliga för dina skisser och kommer att integreras av CLI under kompileringen. Håll index uppdaterade med lib update-index för att se vad som är nytt.
Daemonläge, gRPC och Prometheus-mätvärden
CLI kan fungera som en gRPC-server, idealisk för integrationer från andra program eller tjänster. Kasta den med:
arduino-cli daemon
I det officiella arkivet hittar du en client_example-katalog med exempelkod för att använda API:et. gRPC-referensdokumenten innehåller tillgängliga tjänster och meddelanden om du vill implementera din egen klient.
Daemon-läget exponerar en mätvärdesslutpunkt på http://localhost:9090/metrics, redo för Prometheus att hämta. Måttalternativ hanteras i mätvärdesavsnittet i konfigurationsfilen., så att du kan justera dem utan att kompilera om.
Integrera Arduino CLI med VS Code
Ett mycket bekvämt användningsområde är att anropa CLI från VS Code med uppgifter att kompilera och ladda upp, samtidigt som en modern redigeringsupplevelse bibehålls. Konfigurera uppgifter som anropar kompilering och uppladdning med din FQBN och port, och du kommer att ha kortkommandon för allt.
Om CLI inte kan hitta din skissbok eller IDE-hanterare, hjälper YAML-konfigurationsfilen till att lösa sökvägar. Kom ihåg att ställa in sketchbook_path och arduino_data så att miljön är enhetlig mellan IDE, CLI och editor.
I Windows kan den nedladdade binärfilen ha ett långt versionsnamn; byt namn på den till arduino-cli.exe om du föredrar det och placera den i en mapp i din PATH. Att undvika namn med mellanslag förenklar uppgifter och skript som åkallar honom.
Grunderna i Linux och Raspberry Pi Användbara för Arduino CRI
Eftersom du ska använda en terminal är det en bra idé att uppdatera de grundläggande kommandona för GNU/Linux och Raspbian (Debian för Raspberry Pi). Dessa genvägar gör dig mer flexibel med CLI och med systemadministration.
Koncept: GNU/Linux är ett fritt, plattformsoberoende, multitasking-operativsystem med Linuxkärnan och verktyg från GNU-projektet; Raspbian (nu Raspberry Pi OS) är dess variant designad för Raspberry Pi SBC. Rekommenderad dokumentationTLDP, Raspberry Pi-guider och wikipedia på filhierarkin.
Komma igång med kommandoraden (Terminal): Öva på filnavigering och filhantering. Användbara kommandon för att komma igång:
- Navigering: ls, cd, lösenord.
- Kataloger och filer: mkdir, rm, mv, cp.
- Se/läs: katt, mer, mindre, svans.
- Behörigheter och ägare: chmod, chown.
- System och information: w, free, df, ps, uname, kill.
- Terminalredigerare: vi, vim, emacs, nano.
Rekommenderad övning: skapa en info.txt med en kort text, spara den och läs den från terminalen med cat or less. Du kommer att konsolidera redigerings-, läs- och grundläggande behörigheter på ett praktiskt sätt.
Allmänna och administrativa kommandon på Raspberry Pi: från att uppdatera systemet till boot av den grafiska miljön. Några viktiga saker:
- apt-get update och apt-get upgrade för att underhålla paket.
- rensa för att rensa skärmen, datum för att visa datumet.
- hitta / -namn test.txt för att hitta filer.
- nano test.txt för snabb redigering.
- avstängning, omstart, avstängning -h nu eller vid en viss tidpunkt.
- raspi-config för Raspberry Pi-alternativ.
- startx för att starta det grafiska gränssnittet.
Arbeta med filsystemet: förstå sökvägar, behörigheter och filöverföringar. Vanliga kommandon och exempel:
- cat prueba.txt för att se innehållet.
- cd /abc/xyz för att byta katalog.
- cp file.txt /home/pi/file.txt att kopiera.
- ls -l för att lista med detaljer och behörigheter.
- mkdir test_folder för att skapa mappar.
- mv file.txt /home/pi för att flytta eller byta namn.
- rm test.txt och rmdir test_folder som ska raderas.
- scp user@10.0.0.32:/path/file.txt att kopiera via SSH.
- tryck för att skapa en tom fil.
Nätverk och anslutning: gränssnittsdiagnostik och nätverksskanning. Viktiga verktyg:
- ifconfig/iwconfig för att kontrollera IP-adress och trådlös status.
- iwlist wlan0 skanna (och med grep ESSID) efter tillgängliga nätverk.
- nmap för att skanna enheter och portar i ditt nätverk.
- Pinga 8.8.8.8 eller pinga http://www.google.es för att kontrollera anslutningen.
- wget http://www.miweb.com/prove.txt till descargas via HTTP.
System- och paketinformation: Övervaka resurser och versioner för att undvika överraskningar vid kompilering eller uppladdning. Referenskommandon:
- cat /proc/meminfo, /proc/partitions och /proc/version för systeminformation.
- df -hy df / för diskutrymme.
- dpkg –get-selections | grep XXX för att visa relaterade installerade paket.
- ledigt för tillgängligt minne, högst för realtidsprocesser.
- värdnamn -I för IP, lsusb för USB-enheter.
- vcgencmd measure_temp och vcgencmd get_mem arm/gpu på Raspberry Pi.
- Uppåtpil (UPP) för att hämta det senaste kommandot.
Användare och grupper: Kontrollera behörigheter och sudo för att hantera seriella enheter och distributioner. Skapande och kontroller av användare:
- useradd -c "Användarnamn" -g grupp -d /home/användare -s /bin/bash användarnamn
- su – användarnamn för att logga in som den användaren
- whoami, who och lastlog för grundläggande granskning
Kärna och tjänster: Kom ihåg att kärnan hanterar minne, CPU och kringutrustning, och du kan uppdatera den på Pi enligt den officiella dokumentationen. För moderna tjänster är systemd referensen (se Raspberry Pi-guiden).
Bash for Productivity: Flikifyllning och historik sparar massor av tid, och skript möjliggör automatisering. historiken listar de senaste kommandona och du kan skapa alias eller omdirigeringar enligt TLDP-guiden.
Cron-automatisering: Schemalägg återkommande uppgifter för nattliga byggen eller distributioner. Viktigt: Använd crontab -e istället för att redigera /etc/crontab direkt; kolla loggar om något går fel och följ bästa praxis.
Webmin: Om du gillar webbläsaradministration kan du installera det och hantera användare, Apache, PHP, MySQL, DNS, Samba, DHCP, etc. Efter att du har installerat beroenden, gå till https:// :10000 att använda gränssnittet.
Extra tips och snabba resurser
- Officiell dokumentation: CLI länkar till installationsguider, kom igång- och gRPC-referenser; det är värt att läsa för att lära sig alla flaggor. Kombinationen av inbyggd hjälp och onlinedokument accelererar inlärningen.
- Arbeta i Windows: Om den nedladdade binärfilen har ett långt versionsnamn (t.ex. arduino-cli-0.2.2-alpha…) kan du byta namn på den till arduino-cli.exe och placera den i C:\Program Files\Arduino CLI eller liknande. Lägg till den mappen i systemets eller användarens PATH.
- Blandade miljöer: Även om WSL inte är idealiskt för uppladdning till forum, kan du bygga in WSL och uppladda från Windows, eller flytta artefakter mellan maskiner. Dela och härska om ditt flöde kräver det (bygg i CI, ladda upp lokalt).
- Ytterligare index: När du arbetar med ESP8266/ESP32/NRF52, ange additional_urls i YAML för att undvika att –additional-urls upprepas varje gång. Ta hand om dubbletter och indexordning för att undvika konflikter mellan versioner.
- Kontinuerlig integration: Daemon-läge och gRPC-gränssnittet låter dig orkestrera byggen och uppladdningar i pipelines. Att visa mätvärden på http://localhost:9090/metrics gör det enklare att övervaka ditt system. och upptäcka flaskhalsar.
Med den här grunden kommer du att kunna gå vidare med lätthet: från att skapa och kompilera skisser, installera officiella eller tredjepartskärnor, till att ladda upp via serieport och automatisera hela flöden med gRPC och mätvärden. Att hoppa till CLI ger dig finjusterad kontroll, reproducerbarhet och kraftfull integration med dina redigerare och skript., både på Windows och Linux eller Raspberry Pi.
Passionerad författare om bytesvärlden och tekniken i allmänhet. Jag älskar att dela med mig av min kunskap genom att skriva, och det är vad jag kommer att göra i den här bloggen, visa dig alla de mest intressanta sakerna om prylar, mjukvara, hårdvara, tekniska trender och mer. Mitt mål är att hjälpa dig att navigera i den digitala världen på ett enkelt och underhållande sätt.