Arduino

Arduino er en gratis hardware-platform baseret på en plade med en microcontroller og et udviklingsmiljø designet til at lette brugen af ​​elektronik i tværfaglige projekter.

Hardwaren består af en plade med en Atmel AVR microcontroller og input / output. De mest almindeligt anvendte microcontrollere er Atmega168, ATmega328, Atmega1280, ATmega8 for sin enkelhed og lave omkostninger muliggøre udviklingen af ​​flere design. På den anden side er en software udviklingsmiljø, som gennemfører den sprogbehandling / Wiring programmering og boot loader, der udføres på pladen.

Siden oktober 2012 er Arduino også bruges med microcontroladoras CortexM3 32-bit ARM, som sameksistere med den mere begrænsede, men også økonomisk AVR 8-bit. ARM og AVR ikke binært kompatible platforme, men kan programmeres med samme Arduino og få programmer til at kompilere uændret på begge platforme. Selvfølgelig CortexM3 microcontroladoras bruge 3.3V modsætning til de fleste af pladerne anvender typisk 5V AVR. Men som tidligere Arduino bestyrelser med Atmel AVR tog til 3.3V som Arduino Fio Arduino kompatibel og der Nano og Pro som Meduino der kan skifte spænding.

Arduino kan bruges til at udvikle enkeltstående interaktive objekter eller kan tilsluttes software som Adobe Flash, Processing, Max / MSP, pure data. Pladerne kan samles med hånden eller købes. Den frie integrerede udviklingsmiljø kan downloades gratis.

Arduino kan tage oplysninger fra miljøet gennem deres analoge og digitale indgange, kan styre lys, motorer og andre aktuatorer. Arduino mikrocontroller er programmeret ved hjælp af Arduino programmeringssproget og Arduino udviklingsmiljø. Projekterne lavet med Arduino kan køre uden at oprette forbindelse til en computer.

Arduino-projektet fik en hædrende omtale i Digital Fællesskabers kategori Prix Ars Electronica 2006.

Historie

Arduino begyndte i 2005 som et projekt for studerende i IVREA Institute i Ivrea. På det tidspunkt de studerende brugte BASIC Stamp microcontroller, hvis omkostninger var US $ 100, som blev anset for dyrt for dem. På det tidspunkt en af ​​grundlæggerne af Arduino, Massimo Banzi, underviste på Ivrea.

Projektet navn stammer fra navnet på Bar di Re Arduino hvor Massimo Banzi tilbragte nogle timer. På starten, han hjalp den colombianske studerende Hernando Barragán, som udviklede PCB Ledningsføring, programmeringssproget og udviklingsplatform. Ved afslutningen af ​​platformen, forskerne arbejdet på at gøre det lettere, billigere og tilgængelig for open source-fællesskabet. Skolen endeligt lukket sine døre, så forskere, herunder David Cuartielles spansk, fremmet ideen. Banzi bekræfter år senere, at projektet aldrig dukket op som en forretningsidé, men en nødvendighed for at overleve den forestående lukning af Interactive Design Institut Ivrea. Det er, for at skabe et produkt af åben hardware, kunne det ikke garneret.

Senere Google hjalp med at udvikle Android ADK Kit, en Arduino stand til at kommunikere direkte med smartphones under Android OS-telefon plade til at styre lys, motorer og sensorer tilsluttet Arduino.

Til masseproduktion af den første version blev taget i betragtning, at omkostningerne ikke overstiger 30 euro, som blev samlet i en blå plade, skal være Plug and Play og arbejde med alle computer platforme såsom MacOSX, Windows og GNU / Linux. De første 300 enheder blev givet til de studerende på instituttet IVRAE, at bevise, at og begyndte at designe deres første prototyper.

I 2005 sluttede han holdet Professor Tom Igoe, der havde arbejdet i fysisk computing, efter at finde ud det samme via internettet. Han tilbød støtte til at udvikle projektet i stor skala og skabe kontakter til fordeling kortene på amerikansk jord. På messen Fair Maker 2011 dukkede den første 32-bit Arduino til at arbejde tungere opgaver.

Producere

Modellerne ved salg af Arduino er kategoriseret i 4 forskellige produkter: borde, skjolde, kits og tilbehør; at være i hver: Tabeller:

  • Arduino Uno
  • Arduino Leonardo
  • Arduino Due
  • Yun Arduino
  • Arduino Tre
  • Arduino Zero
  • Arduino Micro
  • Arduino Esplora
  • Arduino Mega ADK
  • Arduino Ethernet
  • Arduino Mega 2560
  • Arduino Robot
  • Arduino Mini
  • Arduino Nano
  • Lilypad Arduino Simple
  • Arduino Lilypad SimpleSnap
  • Lilypad Arduino
  • Lilypad Arduino USB
  • Arduino Pro Mini
  • Arduino Fio
  • Arduino Pro

Shields:

  • Arduino GSM Shield
  • Arduino Ethernet Shield
  • Arduino WiFi Shield
  • Arduino Wireless SD Shield
  • Arduino USB Host Shield
  • Arduino Motor Shield
  • Arduino Trådløs Proto Shield
  • Arduino Proto Shield

Kits:

  • Arduino Starter Kit
  • 101 Arduino Matters

Tilbehør:

  • TFT LCD-skærm
  • USB / Seriel Light adapter
  • Arduino ISP
  • Mini USB / seriel adapter

Applikationer

Arduino modulet har været brugt som en base i forskellige elektroniske applikationer:

  • Xoscillo: Oscilloskop open source.
  • Videnskabeligt udstyr til forskning.
  • Arduinome: En MIDI controller-enhed.
  • OBDuino: En econometer ved hjælp af en diagnostisk interfacekort, som er i moderne biler.
  • Humane Reader: elektronisk enhed med lave omkostninger tv-signalet output, der kan håndtere et bibliotek på 5000 titler på et hukommelseskort.
  • Humane PC: computer, der bruger en Arduino-modul til at emulere en personlig computer med en tv-skærm og tastatur til din computer.
  • ArduPilot: software og hardware ubemandede fly.
  • ArduinoPhone: en mobiltelefon bygget på en Arduino modulet.
  • 3D-printere.

Ledningsdiagram

Indgange og udgange

Diecimila eksempel sætte modulet, det har 14 digitale indgange kan konfigureres som input og / eller udgange, der opererer på 5 volt. Hver kontakt kan give eller modtage maksimalt 40 mA. Kontakterne 3, 5, 6, 9, 10 og 11 kan give en PWM output. Hvis noget er forbundet til kontakterne 0 og 1, som interfererer med USB-kommunikation. Diecimila har også 6 analoge indgange, der giver en opløsning på 10 bit. Som standard, accept af 0-5 volt, men du kan ændre det øverste niveau ved hjælp af kontaktoplysningerne Aref og nogle lavniveau-kode.

Specs

Specifikationerne for de forskellige modeller af Arduino boards er opsummeret i den følgende tabel:

De Diecimila Arduino Duemilanove og Arduino Mega modeller er baseret på ATmega168, ATmega328 og ATmega1280 microcontrollere

Arduino sprog

Arduino-platformen er programmeret ved hjælp af et sprog, baseret på programmeringssproget Processing højt niveau. Det er imidlertid muligt at anvende andre programmeringssprog og applikationer populære Arduino, fordi Arduino bruger den serielle datatransmission støttes af de fleste af ovennævnte sprog. For dem, der ikke understøtter indbygget serie-format, kan du bruge middleware til at oversætte de beskeder, der sendes fra begge sider for at tillade jævn kommunikation. Nogle eksempler er:

  • 3DVIA Virtools: interaktive og real-time applikationer.
  • Adobe Director
  • BlitzMax
  • C
  • C ++
  • C #
  • Kakao / Objective-C
  • Blitz
  • Rejer
  • Isadora
  • Øjeblikkelig Reality
  • Java
  • Liberlab
  • Mathematica
  • Matlab
  • MaxMSP: grafisk programmeringsmiljø til musikprogrammer, lyd og multimedier
  • Minibloq: grafisk programmeringsmiljø, også kører på OLPC computere
  • Perl
  • Php
  • Fysisk Etoys: grafisk programmeringsmiljø bruges til uddannelsesmæssige robotteknologi projekter
  • Behandling
  • Pure data
  • Python
  • Rubin
  • Scratch til Arduino: grafisk programmeringsmiljø, ændre miljø for børn Scratch, MIT
  • Knirke: fri implementering af Smalltalk
  • SuperCollider Synthesis lyd i realtid
  • VBScript
  • Visuelle Basic.NET
  • VVVV: Syntese af video i realtid

Funktioner og operatører

Arduino er baseret på C og understøtter alle standard C funktioner og nogle C ++. Følgende opsummerer struktur og sprog syntaks vist Arduino:

Grundlæggende syntaks

  • Skilletegn:;, {}
  • Kommentarer: //, / * * /
  • Headers #define, #include
  • Aritmetiske operatorer: +, -, *, /,%
  • Opgave: =
  • Sammenligning operatører: == ,! =, & gt; & lt; & lt; =, & gt; =!
  • Booleske operatorer: & amp; & amp;, || ,!
  • Adgang operatører pejlemærker: *, & amp;
  • Bitvise operatører: & amp;, |, ^, ~, & lt; & gt; & lt; & gt;
  • Sammensatte operatører:
    • Variabel tilvækst og formindske ++ -
    • Tildeling og drift: + = - =, * =, / =, Y =, | =

Kontrolstrukturer

  • Betinget: Hvis, hvis ... ellers, switch-statement
  • Loops: for, mens, do ... mens
  • Grene og hopper: pause fortsætter, afkast, goto

Variable

Med hensyn til behandlingen af ​​variablerne deler også en stærk lighed med sproget C.

Konstanter
  • HØJ / LAV: repræsenterer de høje og lave niveauer af input og output-signaler. Høje niveauer er de med 3 volt eller mere.
  • INPUT / OUTPUT: input eller output.
  • falsk: signal, der repræsenterer logikken nul. I modsætning til de høje / lave signaler, er hans navn skrevet med små bogstaver.
  • sandt: Signal hvis definition er bredere end falsk. Alle ikke-nul heltal er "sand" som Boolean algebra, som i tilfældet med -200, -1 eller 1. Hvis nul, er "falsk".
Datatyper
  • ugyldig, boolean, char, unsigned char, byte, int, usignerede int, ord, lange, usigneret lang, float, double, string, array.
Typekonvertering

Disse funktioner modtager som argument en variabel af enhver type og returtype omdannes til den ønskede variabel.

  • char, byte, int, ord, lange, float
Kvalifikationskampe og omfanget af variabler
  • statisk, flygtige, const
Hjælpeprogrammer
  • sizeof

Grundlæggende funktioner

Digital I / S
  • pinMode
  • digitalWrite
  • int digitalRead
Analog I / S
  • analogReference
  • int analogRead
  • analogWrite
E / S Avanceret
  • SHIFTOUT
  • usignerede lang pulseIn
Tid
  • usignerede lang Millis
  • usignerede lange mikroer
  • forsinkelse
  • delayMicroseconds
Matematik
  • min, max, abs, begrænse, Kort, pow, sqrt
Trigonometri
  • sin, cos, tan
Tilfældige tal
  • randomSeed, tilfældig lang, lang tilfældig
Bits og bytes
  • Lowbyte, highbyte, bitRead, bitWrite, BitSet, bitClear, bit
Eksterne afbryder
  • attachInterrupt
  • detachInterrupt
Afbrydelser
  • interrupts, noInterrupts
Seriel port kommunikation

De ledelsesfunktioner i den serielle port, skal indledes med ordet "Serial", men behøver ikke nogen erklæring i overskriften på programmet. De mente derfor grundlag af sproglige funktioner. Det er de funktioner for seriel transmission:

  • begynder, til rådighed, læse, flush, print, println, skriver

Port håndtering

Records porte tillader manipulation laveste niveau og hurtigere kontakter / O mikrocontroller Arduino bestyrelser. De elektriske kontakter Arduino boards er delt mellem B, C og D. Ved hjælp af disse variabler optegnelser skal overholdes, og ændret deres status:

  • DDR: Data Direction Registrer Port B, C eller D er en variabel læse / skrive kontakter bruges til at angive, hvilke vil blive brugt som input og output.
  • PORT: Data Register Port B, C eller D er en variabel læse / skrive.
  • PIN: Input Pins Tilmeld Port B, C eller D. Variabel skrivebeskyttet.

For eksempel, for at angive kontakterne 9-13 som udgange og 8 som input tilstrækkelige bruge følgende opgave:

Som det ses, at kendskab til sproget C, tillader Arduino programmering på grund af ligheden mellem den og modersmål af projektet, hvilket indebærer at lære nogle specifikke funktioner tilgængelige sprog projekt til at håndtere forskellige parametre. Du kan bygge applikationer af enhver kompleksitet uden mange forudfattede meninger.

AVR libc

Arduino kompileret programmer er forbundet mod AVR libc så de har adgang til visse funktioner. AVR libc er et gratis software-projekt, der skal give en høj kvalitet C-biblioteket til brug med GCC compiler til Atmel AVR microcontrollere. Den består af 3 dele:

  • avr-binutils
  • avr-gcc
  • avr-libc

De fleste Arduino programmeringssprog er skrevet med konstante og AVR funktioner, og visse funktioner kan kun opnås ved hjælp af AVR.

Afbrydelser

Interrupt signaler er:

  • CLI: deaktiverer den globale interrupt
  • sei: aktivere interrupts

Dette vil påvirke timeren og seriel kommunikation. DelayMicroseconds funktionen deaktiverer interrupts, når du kører.

Timere

DelayMicroseconds funktion skaber mindst mulig forsinkelse Arduino sprog er omkring 2μs. For skal bruges mindre forsinkelser assembler kaldet "nop«. Hvert udsagn "nop" kører på en maskine cyklus om 62,5ns.

Port håndtering

Manipulering AVR havne vil være hurtigere at bruge Arduino digitalWrite funktion.

Bits sæt variabler

CBI og SBI er standard mekanismer til at indstille eller fjerne bits i PORT og andre variabler.

Forskelle Behandling

Syntaksen for Arduino programmeringssprog er en forenklet version af C / C ++ og har nogle forskelle fra Processing. Fordi Arduino er baseret på C / C ++, mens Processing er baseret på Java, er der flere forskelle i syntaks begge sprog og den måde, hvorpå programmet:

Arrangementer

Udskrivning kæder

Simpelt eksempel på programmering Arduino

Det første skridt, før du kontrollere, at installationen er korrekt og komme i gang med Arduino er at bruge praktiske eksempler, der er tilgængelige med enheden. Vi anbefaler, at åbne "led_blink" eksempel, som skaber en blinkende pr sekund på en LED forbundet til pin 13.

Den nødvendige kode er som følger:

Arduino biblioteker

Arduino standard biblioteker, der tilbyder er:

Seriel

Læsning og skrivning til den serielle port.

EEPROM

Læs og skriv i det permanente lager.

  • læse, skrive

Ethernet

Internetforbindelse med "Arduino Ethernet Shield". Det kan fungere som en server, der accepterer fjern- eller anmodninger fra klienterne. De er tilladt op til fire samtidige forbindelser. De anvendte kommandoer er som følger:

  • Server: Server, begynder, til rådighed, skrive, print, println
  • Klient: Klient, tilsluttet, tilslutte, skrive, print, println, tilgængelig, læse, flush, stop

Firmata

Det er en kommunikation bibliotek med edb-applikationer ved hjælp af standard seriel port-protokol.

LiquidCrystal

LCD-skærme styre med Hitachi HD44780 eller kompatibel chipset. Biblioteket understøtter modes 4 og 8 bit.

Servo

Bibliotek til styring servomotorer. Fra 0017-version Arduino biblioteket understøtter op til 12 motorer i de fleste Arduino boards og 48 på Arduino Mega. Disse kommandoer anvendes:

  • vedhæfte, skrive, writeMicroseconds, læse, vedhæftet, frigøre

SoftwareSerial

Seriel kommunikation i digitale kontakter. Arduino standard omfatter kun kommunikation kontakter 0 og 1, men takket være dette bibliotek denne meddelelse kan ske med resten.

Stepper

Kontrol af stepmotorer unipolar eller bipolar tempo.

  • Stepper, Stepper, setSpeed, trin

Wire

Sende og modtage data via et netværk af enheder eller sensorer med to Wire interface.

The Matrix Wiring og Sprite biblioteker er fuldt kompatible med Arduino og tjene til håndtering arrays af lysdioder. Oplysninger om forskellige biblioteker er udviklet af forskellige partnere, der tillader mange opgaver er tilgængelige.

Oprettelse biblioteker

Arduino brugere har mulighed for at skrive deres egne biblioteker. Dette tillader dig at have kode, der kan genbruges i andre projekter, føre særskilte primære kilde kode biblioteker og organiseringen af ​​programmer bygget er klarere.

Eksempel bibliotek

Følgende eksempel tillader at sende via morsekode tegn:

En bygherre (Morse), til en funktion sende 1 point (dot), og en funktion til at sende en bindestreg (bindestreg): Den Morse.h fil, der indeholder definitionen af ​​Morse klasse har 3 funktioner er oprettet. Den _pin angiver variablen tillader kontakten til at bruge.

Morse.cpp oprettes kode fil, dvs. gennemførelsen af ​​de metoder, erklærede:

Kan oprettes biblioteket og bruges af #include kommando. Hvis du ønsker at sende en anmodning om hjælp SOS ved kontakt 13 Morse nok til at kalde og udføre følgende sekvens:

Sample Code

Arduino side har en række eksempler for at begynde at forstå dens drift, baserede komponenter såsom skærme, lysdioder, potentiometre osv

Eksempel på blinkende LED


Eksempel læsning potentiometer

Installation i forskellige miljøer

Vinduer

Trinene er:

  • Download de seneste versioner af Java Runtime Environment og Arduino IDE.
  • Installer FTDI USB-controllere med Arduino tilsluttet.
  • Kør for at åbne Arduino IDE-interface og konfigurere USB-port, hvor bestyrelsen er tilsluttet.

GNU / Linux

For at installere Arduino på en GNU / Linux-system, vi har brug for de følgende programmer til at løse afhængigheder:

  • Sun Java Runtime, JRE.
  • avr-gcc compiler til AVR familie af microcontrollere fra Atmel.
  • avr-libc, gcc avr-LIBC compileren.

I nogle distributioner skal afinstallere, hvis ikke nødvendigt, "brltty" program, der giver adgang til terminalen for blinde. Afslutningsvis er for rammerne af Arduino hentet, er det dekomprimeret og henrettet.

Udvikling hold

Kernen udvikling team består Arduino Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis og Nicholas Zambetti.

Pduino

Pduino født fra sammenlægningen af ​​pure data og Arduino-projekter. Begge open source-projekter for at arbejde med grafisk brugerflade. Indlæsning af firmware Pure data til Arduino kan tilgås ved hjælp af den grafiske programmeringssprog.

Minibloq

Minibloq er et grafisk programmeringsmiljø, der kan generere native kode Arduino og skrive direkte på flash-hukommelse på brættet. Det har en funktion, der lader dig se den genererede kode, som også kan kopieres og indsættes i Arduino IDE, for brugere forsøger at gøre passagen af ​​et grafisk værktøj til programmering syntaks C / C ++. Minibloq er gratis at bruge og dens kilder er også tilgængelige gratis. Et vigtigt træk er, at det også kan køre på OLPC laptop, ved hjælp af Vin software.

Fysisk Etoys

Fysisk Etoys er en fri og gratis udvidelse, der giver forskellige elektroniske enheder såsom Lego NXT Arduino, Sphero, Kinect Wiimote Joystick plader, blandt andre, kan nemt programmeres og interagere med hinanden takket være sin blok.

For Arduino, fysisk Etoys tilbyder to programmerings tilstande:

  • Den "direkte" mode, hvor programmer der kører på brugerens computer, og ordrerne straks overføres via den serielle port.
  • Mode "samlet", hvor programmerne er oversat til C ++ og sænkes til pladen, derefter køre uafhængigt af computeren.

Den "direkte" tilstand giver dig mulighed for at ændre programmerne og se ændringerne med det samme i adfærden af ​​robotten, som gør programmering lettere, især den uerfarne bruger. Den tillader også hele tiden se sensorværdier og bruge robotten, for eksempel for at erhverve data.

Mode "kompileret", i mellemtiden, fjerner forsinkelsen indført ved kommunikation med computeren, hvilket gør det bedre for udviklingen af ​​autonome opgaver, hvor responshastigheden af ​​robotten skal være optimal.

Forrige artikel Andrey Koreshkov
Næste artikel Atriplex confertifolia