Arduino software | |
---|---|
| |
Type | Integreret udviklingsmiljø |
Udvikler | Arduino software |
Skrevet i | C++ |
Operativ system | Cross-platform |
Hardware platform | AVR |
nyeste version | 1.8.19 [1] ( 20. december 2021 ) |
Licens | LGPL eller GPL |
Internet side | arduino.cc |
Mediefiler på Wikimedia Commons |
Arduino er et mærke af hardware- og softwareværktøjer til bygning og prototyping af simple systemer, modeller og eksperimenter inden for elektronik , automatisering , procesautomatisering og robotteknologi .
Softwaredelen består af en gratis softwareskal ( IDE ) til at skrive programmer, kompilere dem og programmere hardware. Hardwaredelen er et sæt samlede printplader , der sælges af både den officielle producent og tredjepartsproducenter. Systemets helt åbne arkitektur giver dig mulighed for frit at kopiere [2] eller tilføje til Arduino-produktlinjen.
Det bruges både til at skabe selvstændige objekter og oprette forbindelse til software via kablede og trådløse grænseflader. Velegnet til nybegyndere med en minimumsindgangstærskel for viden inden for elektronikudvikling og programmering.
Programmering udføres udelukkende gennem dens egen gratis software shell Arduino IDE (distribueret under betingelserne i GPLv2) [3] [4] . Denne shell indeholder en teksteditor , en projektleder, en præprocessor , en compiler og værktøjer til at indlæse programmet i mikrocontrolleren. Skallen er skrevet i Java baseret på Processing- projektet og kører på Windows , Mac OS X og Linux . Arduino-bibliotekssættet bruges (under LGPL-licensen) [4] [5] .
Arduino programmeringssproget hedder Arduino C og er et C++ sprog med Wiring frameworket [6] , det har nogle forskelle i forhold til at skrive kode som er kompileret og bygget ved hjælp af avr-gcc , med funktioner der gør det nemmere at skrive en fungerende program - der er et sæt biblioteker, inklusive funktioner og objekter. Når et program kompileres, opretter IDE en midlertidig * .cpp -fil .
Sådan ser den fulde tekst af det enkleste program (skitse) med at blinke en LED forbundet til den 13. pin (ben) på Arduino controlleren ud med en periode på 2 sekunder (en halv periode, dvs. 1 sekund LED er tændt, en halv periode er slukket) [7] . Den er tilgængelig i udviklingsmiljøet på Sketch>Eksempler>Standard>Blink.
ugyldig opsætning () { pinMode ( 13 , OUTPUT ); // Tildel port 13 som outputport } void loop () { digitalWrite ( 13 , HØJ ); // Indstil port 13 til tilstand "1", LED tænder forsinkelse ( 1000 ); // Forsinkelse med 1000 millisekunder digitalWrite ( 13 , LOW ); // Indstil port 13 til tilstand "0", LED slukker forsinkelse ( 1000 ); // Forsinkelse 1000 millisekunder }Alle funktioner, der bruges i dette eksempel, er biblioteksfunktioner. Arduino IDE kommer med mange indbyggede prøveprogrammer. Der findes en oversættelse af Arduino-dokumentationen til russisk [8] [9] .
Programmet indlæses i Arduino-mikrocontrolleren gennem en forprogrammeret speciel bootloader (alle Arduino-mikrocontrollere sælges med denne bootloader). Bootloaderen er baseret på Atmel AVR Application Note AN109. Indlæseren kan arbejde via RS-232 , USB eller Ethernet -grænseflader, afhængigt af sammensætningen af periferien af et bestemt processorkort. Nogle varianter, såsom Arduino Mini eller den uofficielle Boarduino, kræver en separat adapter til programmering.
Brugeren kan selvstændigt programmere bootloaderen til en ren mikrocontroller. Til dette er programmørsupport integreret i IDE baseret på AVRDude- projektet . Flere typer populære billige programmører understøttes.
Populariteten, åbenheden og enkelheden af Arduino-platformen har forårsaget en stor bølge af tredjeparts softwareløsninger. Dybest set er disse løsninger omkring integration af Arduino-kompileren og bootloaderen (loader) i eksisterende skaller til programmører (IDE'er). En stor liste over disse værktøjer er tilgængelig her . Blandt dem er både professionelle værktøjer som Proccesing , Eclipse [10] , Microsoft Visual Studio [11] , Atmel Studio og værktøjer til børn som Scratch til Arduino .
Grafiske programmeringssprogMinibloq
Scratch til Arduino
Snap4Arduino
Fritzing
Fritzing
Fritzing
Under Arduino-mærket produceres flere tavler med en mikrocontroller ( engelske boards ) og ekspansionskort (de såkaldte shields [13] - translitteration fra engelske shields ). De fleste tavler med en mikrocontroller er udstyret med det mindst nødvendige bindingssæt til mikrocontrollerens normale drift (strømstabilisator, kvartsresonator, nulstillingskæder osv.).
Arduino-konceptet inkluderer ikke et kabinet eller monteringsstruktur. Udvikleren vælger metoden til installation og mekanisk beskyttelse af pladerne på egen hånd eller ved hjælp af tredjepartsvirksomheder. Tredjepartsproducenter producerer også sæt af robotelektromekanik, fokuseret på at arbejde sammen med Arduino-kort [14] . Uafhængige producenter producerer også en lang række forskellige sensorer og aktuatorer, der er mere eller mindre kompatible med Arduino.
Klassiske Arduino og Arduino-kompatible boards er designet til stabling via pin-headers. Således er det grundlæggende mikroprocessorkort suppleret med de nødvendige perifere enheder og eksterne forbindelser.
Der er boards Uno [15] , Pro, Leonardo [16] , Mega 2560 [17] , Due [18] og boards som Zero [19] med et udvidet sæt pin-headers til dem. Udvidelseskort af standardlængde kan også installeres i udvidede processorkort.
Separate mindre boards fås - Nano [20] , Nano Every [21] og Micro [22] - i dimensionerne for DIP - pakkerne med mikrokredsløb. De er designet til at blive installeret på brødbrætter. Der er ingen udvidelseskort til dem.
Senere blev Arduino MKR-linjen [23] udgivet i et lignende design. De har et lille sæt perifere udvidelseskort.
SideprojekterUd over standard Arduino-konstruktionerne har tredjepartsudviklere skabt mange miniature-kloner, der kun bevarer arkitektonisk og softwarekompatibilitet. Blandt disse kloner skiller Microduino-produktlinjen [24] [25] sig ud . Linjen indeholder et komplet sæt af konstruktivt kompatible processormoduler, kommunikationsmoduler, sensorer og aktuatorer, praktisk talt ikke ringere end rækken af klassiske Arduino-moduler. Ligesom Arduino er brædder samlet i stakke. Linjen er designet i to originale designs:
Den mindste klon blev frigivet under varemærket Femtoduino [26] . Dens dimensioner er kun 15*20 mm, inklusive mikro -USB-stik , spændingsregulator og komplet Arduino Uno I/O-kit. Det samme firma udgav den mest "fyldte" miniatureklon under IMUduino-varemærket. Dette er en Arduino Leonardo-klon med USB Host-understøttelse (tastatur og mus), Bluetooth 4 Low Energy, seks-akset gyroskop / accelerometer , tre -akset magnetometer ( kompas ), barometer . Enhedens størrelse er 16*40 mm. Projektet tilbyder i øjeblikket ikke pinout-kompatible udvidelseskort.
Muligheden for at bruge Arduino-produkter i kritisk industriel automatisering er genstand for heftig debat. Intet forhindrer dig dog i at udstyre Arduino-baserede produkter med små automatiserings- eller dataindsamlingsobjekter. For at lette sådanne opgaver producerer en række tredjepartsvirksomheder strukturelt komplette moduler udstyret med traditionelle klemrækker til automatisering, DIN- skinnehuse , elektrisk beskyttede eller galvanisk isolerede I/O-faciliteter.
Arduino fremstiller ikke selv sådanne produkter, men sælger produkter fra Industrial Shields i sin butik . Også kendte produkter fra virksomheden Archiduino . Begge virksomheders løsninger er baseret på AVR-processorer. Virksomhederne tilbyder et sæt DIN-skinneskabe, hvori en designer kan installere en række perifere moduler. Industruino tilbyder produkter med både AVR og SAMD21. Under varemærket CONTROLLINO produceres en linje af Arduino MEGA 2560 kloner i et industrielt design med kablet Ethernet. NORVI tilbyder industrielt design til både AVR- og ESP32-processorer.
Ud over producenter af hobbyudstyr slutter store virksomheder med speciale i industriel automation sig også til Arduinos open source-bevægelse. For eksempel har AutomationDirect udgivet en serie af industrielle controllere og I/O-moduler, der er kompatible med Arduino MKR-linjen, både programmæssigt og på niveau med udvidelseskort. [27] Virksomheden udgav også en tilføjelse til Arduino IDE med et grafisk programmeringssprog og et sæt automatiseringsbiblioteker. [12]
Mikrocontrollere til Arduino er kendetegnet ved tilstedeværelsen af en bootloader, der er forhåndsflashet ind i dem ( engelsk bootloader ) . Med denne bootloader uploader brugeren deres program til mikrocontrolleren uden brug af traditionelle separate hardware- programmører , selvom nogle Arduino-modeller ikke gør det. Bootloaderen er forbundet til computeren via USB-interfacet (hvis tilgængeligt på kortet) eller ved hjælp af en separat UART -USB-adapter. Bootloader-understøttelse er indbygget i Arduino IDE og kan gøres med kun et klik.
I tilfælde af at overskrive bootloaderen eller købe en mikrocontroller uden en bootloader, giver udviklerne mulighed for at flashe bootloaderen ind i mikrocontrolleren på egen hånd. For at gøre dette har Arduino IDE indbygget understøttelse af flere populære billige programmører, og de fleste Arduino-kort har en pin-header til in-circuit programmering ( ICSP for AVR , JTAG eller SWD [en] for ARM ).
Arduino IDE har den indbyggede evne til at skabe dine egne hardware- og softwareplatforme. Denne mulighed bruges af tredjepartsvirksomheder, der tilføjer deres sæt boards og compiler-loadere til Arduino IDE.
AVRI den klassiske serie af Arduino-enheder bruges Atmel AVR - mikrocontrollere hovedsageligt . Følgende MK'er kan findes på disse fælles bestyrelser:
Nogle boards kan have forskellige tilgængelige porte og clockhastigheder.
ARMEfterhånden begyndte ARM-processorer at dukke op i rækken af boards. I starten var det AT91SAM3X8E på et klassisk designtavle (Due). Senere dukkede en række Arduino MKR-kort op i DIP -design , udstyret med en SAMD21 -controller ( Cortex-M0 , 48 MHz, 256 Kb Flash, 32 Kb RAM).
Siden 2020 er Portenta-moduler med ARM Cortex-M7 (STM32H747 @ 480 MHz) dukket op i den samme MKR-konstruktion. [28]
Forsyningsspændingen til ARM-processorer på Arduino-kort er 3,3 volt. Sensorerne til disse tavler skal være klassificeret til samme spænding.
ESP8266Tredjepartsudviklere har overført understøttelse af den populære ESP8266 Wi-Fi- mikrocontroller og dens ESP12-klon til Arduino. Nu kan du kompilere og uploade firmware til ESP8266 med dine skitser og Wi-Fi-understøttelse direkte fra Arduino IDE og få et enkeltkortskredsløb med Wi-Fi-understøttelse.
Boards med en ESP8266 fastspændt sælges under Wemos-mærket, har 2 formfaktorer (den ene er ligesom Uno, den anden er en mindre) og to generationer i hver formfaktor (R1 og R2).
En detaljeret russisksproget beskrivelse af installationsprocessen og den tilgængelige API er her , et eksempel på hvordan det virker er her .
Intel x86Som en del af et samarbejde med tredjeparter er understøttelse af noget Intel x86-hardware inkluderet i Arduino IDE. Intel Galileo(Intel Quark X1000 400 MHz-processor), Intel Edisonog Arduino 101 [29] - Arduino-kompatible kort baseret på Intel x86-arkitekturen. Pladerne er mekanisk og elektrisk kompatible med Arduino perifere boards. Tavlerne kører deres eget Linux OS , oven på det kører en applikation, der giver dig mulighed for at downloade og udføre Arduino-skitser. [tredive]
Nogle modeller af mikrocontrollerkort Se også Liste over Arduino-kompatible boards.Nogle modeller af mikrocontrollerkort: [31]
Liste over populære mikrocontrollertavler i Arduino-projektetArduino | MK | Forsyningsspænding | Flash-hukommelse , KB |
EEPROM , KB |
SRAM , KB |
Binære input/outputs |
…c PWM |
Analoge indgange |
USB interface | Andre grænseflader |
Mål, mm |
---|---|---|---|---|---|---|---|---|---|---|---|
På grund | Atmel SAM3X8E ARM Cortex-M3 | 3,3 V | 512 | Ikke | 256 | 54 | 12 | 12+2 DAC'er | ATmega16U2 | CAN , JTAG , I2C | 101,6 × 53,3 |
ADK | ATmega2560 | 5 V | 256 | fire | otte | 54 | fjorten | 16 | ATmega8U2 | MAX3421E USB-vært |
101,6 × 53,3 |
BT (Bluetooth) | ATmega328 | 5 V | 32 | en | 2 | fjorten | fire | 6 | Ikke | Bluegiga WT11 Bluetooth | |
Diecimila | ATmega168 | 5 V | 16 | 0,5 | en | fjorten | 6 | 6 | FTDI | 68,6 × 53,3 | |
duemilanove | ATmega168/328P | 5 V | 16/32 | 0,5/1 | 1/2 | fjorten | 6 | 6 | FTDI | 68,6 × 53,3 | |
ethernet | ATmega328 | 5 V | 32 | en | 2 | fjorten | fire | 6 | Ikke | Wiznet Ethernet MicroSD |
|
Fio | ATmega328P | 3,3 V | 32 | en | 2 | fjorten | 6 | otte | Ikke | 40,6×27,9 | |
Leonardo | Atmega32u4 | 5 V | 32 | en | 2 | fjorten | 6 | 12 | Atmega32u4 | 68,6 × 53,3 | |
LilyPad | ATmega168V eller ATmega328V | 2,7-5,5V | 16 | 0,5 | en | fjorten | 6 | 6 | Ikke | 50 ⌀ | |
Mega | ATmega1280 | 5 V | 128 | fire | otte | 54 | fjorten | 16 | FTDI | 101,6 × 53,3 | |
Mega2560 | ATmega2560 | 5 V | 256 | fire | otte | 54 | fjorten | 16 | ATmega8U2 ATmega16U2 | 101,6 × 53,3 | |
Nano | ATmega168 eller ATmega328 | 5 V | 16/32 | 0,5/1 | 1/2 | fjorten | 6 | otte | FTDI | 43×18 | |
Uno | ATmega328P | 5 V | 32 | en | 2 | fjorten | 6 | 6 | ATmega8U2 ATmega16U2 | 68,6 × 53,3 |
Input-output-portene på mikrocontrollere er designet i form af stiftstænger. Som regel er der ingen buffering , beskyttelse, niveaukonvertering. Mikrocontrollere drives af 5V eller 3,3V afhængigt af printmodellen. Følgelig har portene det samme område af tilladte indgangs- og udgangsspændinger. Programmøren har adgang til nogle specielle funktioner i mikrocontroller I/O-porte, såsom pulsbreddemodulation ( PWM ), analog-til-digital konverter ( ADC ), UART , SPI , I2C-grænseflader . Antallet og mulighederne for I/O-porte bestemmes af den specifikke version af mikroprocessorkortet.
Ud over porte installeres periferiudstyr nogle gange på mikrocontrollerkort i form af USB- eller Ethernet-grænseflader. Det valgfrie sæt eksterne enheder på udvidelsesmoduler inkluderer [32] :
Tredjepartsproducenter producerer en bred vifte af sensorer og aktuatorer, der forbinder til Arduino. For eksempel gyroskoper , kompasser , trykmålere , hygrometre , termometre , relæmoduler, indikatorer, tastaturer osv.
FPGADer er Arduino-kompatible processorkort, der har en programmerbar logisk chip (FPGA) som en perifer enhed . For eksempel producerer Arduino-virksomheden selv Arduino MKR Vidor 4000-kortet, hvorpå der udover processoren er installeret Intel Cyclone FPGA. En programmør i Arduino-miljøet kan indlæse forudindstillede funktioner i FPGA'en, såsom arbejde med billeder, lyd, ekstra porte UART , SPI , PWM osv. Der er dog ikke gratis programmering af FPGA'en fra Arduino-miljøet, til dette kan du skal bruge FPGA-producentens udviklingsmiljø — Intel Quartus.
Der er også Papilio-projektet [36] , som udvikler en Arduino-kompatibel serie af kort med Xilinx programmerbar logik som periferiudstyr. Udover færdige løsninger til brug af FPGA som en perifer enhed tilbyder projektet integration af Arduino programmeringsmiljøet og Xilinx ISE skematiske editor FPGA programmeringsmiljøet. Brugeren kan redigere FPGA'en på samme måde som ved at tegne elektriske kredsløb.
Navnet på virksomheden og platformen kommer fra navnet på vingården Ivrea af samme navn , der frekventeres af grundlæggerne af projektet, som igen blev opkaldt efter kongen af Italien, Arduin af Ivrea [37] .
Projektets historie begynder med menneske-maskine interface kurser under mærket Interaction Design Institute Ivreader fandtes i begyndelsen af 2000'erne i byen Ivrea i Italien . Moduler under BASIC Stamp -mærket blev brugt til træning, som koster omkring 50 USD. I 2003 skaber Hernando Barragán den første version af den nye Wiring hardware- og softwareplatform som en del af hans studier.. Målet med projektet var at skabe et billigt og nemt miljø for den indledende indlæring af programmering. Samme år fordelte Massimo Banzi (leder af Hernando Barragana), David Mellis og David Cuartillier Wiring og kaldte det Arduino.
Det originale Arduino-hold bestod af Massimo Banzi, David Cuartillier, Tom Igo, Gianluca Martino og David Mellis. I begyndelsen af 2008 skabte de fem medstiftere af Arduino-projektet Arduino LLC, som ejer virksomhedens amerikanske ophavsrettigheder og varemærker. [38] Andre virksomheder var involveret i produktionen og betalte Arduino LLC betalinger for brugen af copyright. Samme år registrerer Gianluca Martino, hemmeligt fra sine partnere, for sit firma Smart Projects (senere omdøbt til Arduino SRL) en del af Arduino-varemærkerne i nogle lande. I 2015 indledte Arduino LLC retssager mod Arduino SRL. I 2016 bliver konflikten løst ved at fusionere begge virksomheder til Arduino AG.
Kernen i Arduinos udviklingsteam er: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, Nicholas Zambetti og Valery Shumyatsky (Valeriy Shymatskiy).
Siden 2008 begyndte en splittelse i virksomheden. Gianluca Martino registrerede et andet firma, som han formåede at ophavsretligt beskytte Arduino-varemærket i nogle lande. Det nye firma har oprettet en alternativ salgsafdeling for originale Arduino-produkter på arduino.org . Det oprindelige firma kontrollerer salget gennem webstedet arduino.cc [39] [40] [41] . Sættet af nye produkter på webstederne varierede. Der var også to grene af Arduino IDE, der understøttede et andet sæt boards og biblioteker. De samme navne og overlappende IDE-versionsnumre var forvirrende. Den 1. oktober 2016, på World Maker Faire i New York , annoncerede lederne af Arduino LLC og Arduino SRL fusionen af virksomhederne [42] .
Arduino-dokumentation, firmware og tegninger er licenseret under en Creative Commons Attribution ShareAlike 3.0-licens og er tilgængelige på den officielle Arduino-websted. En PCB-tegning for nogle Arduino-versioner er også tilgængelig. [31] Kildekoden til IDE er blevet offentliggjort og er tilgængelig under GPLv2 -licensen . [43] Bibliotekerne bruger LGPL-licensen.
Selvom hardwaredokumentationen og koden er udgivet under en " copyleft "-licens, har udviklerne udtrykt ønske om, at navnet "Arduino" (og afledte heraf) er varemærkebeskyttet for det officielle produkt og ikke bruges til afledte værker uden tilladelse. Hvidbogen om brugen af Arduino-navnet understreger, at projektet er åbent for alle, der ønsker at arbejde på et officielt produkt. [44]
Den officielle repræsentant for Arduino i Rusland er Linuxcenter- virksomheden.
Arduino-projektet blev tildelt en hæderlig omtale ved Prix Ars Electronica 2006-priserne i kategorien Digital Communities. [45] [46]
I sociale netværk | ||||
---|---|---|---|---|
Foto, video og lyd | ||||
Tematiske steder | ||||
Ordbøger og encyklopædier | ||||
|
Enkeltbordscomputere | |
---|---|
Ambient Intelligence | |
---|---|
Begreber |
|
Teknologi |
|
Platforme | |
Ansøgning |
|
De første opdagelsesrejsende |
|
se også |
|