# Arduino

Arduino|  |
| --- |
|  |
| Տեսակ | տեխնոլոգիական ընկերություն, բիզնես ձեռնարկություն և open source microcontroller? |
| Հեղինակ | Մասսիմո Բանցի |
| Գրված է՝ | Սի, C++, ՋավաՍկրիպտ, ասեմբլեր և MicroPython? |
| Լույս տեսավ՝ | 2005 |
| Պլատֆորմ | Atmel AVR? |
| Կայք | arduino.cc |
|  Arduino (hardware) Վիքիպահեստում |

**Arduino՝** համակարգչային և ծրագրային ապահովման ապրանքային նշան, պարզ ավտոմատացման համակարգերի և ռոբոտների ստեղծման համար, որոնք նախատեսված են ոչ պրոֆեսիոնալ օգտվողների համար։

**Ծրագրային** մասը բաղկացած է անվճար ծրագրային խմբագրիչից (IDE-Integrated Development Environment, Ինտեգրված Ծրագրավորման միջավայր)՝ ծրագրեր գրելու և սարքավորումներ ծրագրավորելու համար։ **Տեխնիկական** մասը իրենից ներկայացնում է տպասալերի հավաքածու, որոնք արտադրվում են ինչպես պաշտոնական, այնպես էլ կողմնակի արտադրողների կողմից։

Arduino-ն կարող է օգտագործվել ինչպես ավտոմատ ինքնասպասարկվող օբյեկտներ ստեղծելու, այնպես էլ համակարգչի ծրագրային ապահովմանը ստանդարտ լարային և անլար ինտերֆեյսներով միանալու համար։

Arduino-ի օգտագործման հաճախակի միջոց
## Պատմություն

### Հիմնադրում

Arduino նախագիծը սկսվել է Ivrea-ի փոխազդեցության դիզայնի ինստիտուտում (IDII) Իվրեայում, Իտալիա[2]: Այն ժամանակ ուսանողներն օգտագործել են BASIC Stamp միկրոկառավարիչը՝ 50 դոլար արժողությամբ։ 2003 թվականին Էրնանդո Բարագանը ստեղծեց Wiring զարգացման հարթակը որպես մագիստրոսական թեզի նախագիծ IDII-ում՝ Մասսիմո Բանզիի և Քեյսի Ռեասի ղեկավարությամբ։ Քեյսի Ռիասը հայտնի է Բեն Ֆրայի հետ համատեղ ստեղծելով Processing-ի զարգացման հարթակը։ Ծրագրի նպատակն էր ստեղծել պարզ, էժան գործիքներ ոչ ինժեներների կողմից թվային նախագծեր ստեղծելու համար։ Wiring պլատֆորմը բաղկացած էր տպագիր տպատախտակից (PCB) ATmega128 միկրոկառավարիչով, IDE, որը հիմնված է Processing-ի և գրադարանային գործառույթների վրա՝ միկրոկառավարիչը հեշտությամբ ծրագրավորելու համար։ 2005թ.-ին Մասիմո Բանզին IDII-ի մեկ այլ ուսանող Դեյվիդ Մելիսի և Դեյվիդ Կուարտիելեսի հետ ընդլայնեցին Wiring-ը՝ ավելացնելով աջակցություն ավելի էժան ATmega8 միկրոկառավարիչին։ Նոր նախագիծը, որը պատառաքաղված էր Wiring-ից, կոչվում էր Arduino:

Arduino-ի սկզբնական հիմնական թիմը բաղկացած էր Մասիմո Բանզիից, Դեյվիդ Կուարտյելեսից, Թոմ Իգոյից, Ջանլուկա Մարտինոյից և Դեյվիդ Մելիսից։

Պլատֆորմի ավարտից հետո ավելի թեթև և էժան տարբերակները տարածվեցին բաց կոդով համայնքում։ 2011 թվականի կեսերին հաշվարկվել է, որ ավելի քան 300,000 պաշտոնական Arduinos-ն արտադրվել է կոմերցիոն եղանակով, իսկ 2013 թվականին 700,000 պաշտոնական տախտակներ եղել են օգտատերերի ձեռքում։

## Կառուցվածք

Arduino ֆիրմային անվանումով արտադրվել է միկրոկոնտրոլլեր ունեցող մի քանի տպասալեր ( անգլ.  boards), և վահանակ-սարքավար (անգլ. shields): Միկրոկոնտրոլլերով աշխատող սալիկների մեծամասնությունը համալրված են մինիմալ անհրաժեշտ պարագաներով միկրոկոնտրոլլերի նորմալ աշխատանքի համար։

Arduino-ի կոնցեպտում կորպուսային սարքեր չկան։ Օգտագործողը ինքն է ընտրում տպասալի մեխանիկան պաշտպանության մեթոդը կամ դիմում է կողմնակի ընկերությունների։ Կողմնակի արտադրողները նույնպես թողարկում են ռոբոտաշինական սարքերի հավաքածուներ, որոնք աշխատում են Arduino-ի հետ միասին։ Անկախ արտադրողների թողարկած զգայունակներն (անգլ․ sensors) ու սարքերը նույնպես կարող են աշխատել Arduino-ի հետ միասին։

### Դասական

Arduino-ի Դասական միացում նրա ղեկավարման վահանակներով
Դասական Arduino տպասալը և Arduino-ի հետ համատեղելի վահանակները նախագծված են այնպես, որպեսզի օգտագործողը կարողանա միացնել դրանք իրար pin-երի եւ jumper-ների միջոցով(հաղորդիչները, որոնցով միացվում են pin-երը իրար)։ Այսպիսով, հիմնական միկրոպրոցեսորային տպասալը համալրվում է անհրաժեշտ ծայրամասային սարքերով և արտաքին միացումներով։

Գոյություն ունի ստանդարտ չափերի տպասալերի հավաքածու («Uno», «Pro», «Leonardo») և ընդլայնված տեղայնացումով տպասալերի հավաքածու («Mega», «Due»):

### Փոքրածավալ կառուցվածքներ

«Nano» տպասալը տեղայնացման սալիկի վրա
Փոքր չափերի առանձին տպասալերը (օրինակ, «Nano», «Micro») արտադրվում են միկրոսխեմաների DIP փաթեթների չափով։ Նրանց համար նախատեսված վահանակներ չկան

#### Կողմնակի նախագծեր

Բացի Arduino- ի ստանդարտ կառուցվածքներից, կողմնակի արտադրողներ ստեղծել են բազմաթիվ կլոններ, պահպանելով միայն ճարտարապետական և ծրագրային ապահովման համատեղելիությունը։ Այդ կլոնների շարքում առանձնանում է **Microduino** ապրանքային շարքը : Շարքը պարունակում է կառուցվածքային համատեղելի պրոցեսորային մոդուլներ, կապի մոդուլներ, սենսորներ եւ դերակատորներ։

Femtoduino տպասալը
Ամենափոքր կլոնը թողարկվել է **Femtoduino** ապրանքանիշի ներքո : Դրա չափերը կազմում են ընդամենը 15 \* 20 մմ, ներառյալ միկրո USB միակցիչ, լարման կայունացուցիչ և ամբողջ Arduino Uno I / O հավաքածու։ Նույն ընկերությունը թողարկել է **IMUduino** ապրանքանիշի տակ առավելագույնս «հագեցած» կլոն։ Սա Arduino Leonardo- ի կլոնն է USB Host-ի օժանդակությամբ (ստեղնաշարի և մկնիկ), Bluetooth 4 Low Energy, վեց առանցքով գիրոսկոպ / աքսելոմետր, մագնիսաչափ ( կողմնացույց ), բարոմետր ։ Սարքի չափը 16 \* 40 մմ է։

### Արդյունաբերական կառուցվածքներ

Պատասխանատու արդյունաբերական ավտոմատացման մեջ Arduino արտադրանքի օգտագործումը թեժ քննարկումների առարկա է։ Նման խնդիրների լուծմանը նպաստելու համար մի շարք կողմնակի ընկերություններ արտադրում են կառուցվածքային ամբողջական մոդուլներ։

Arduino ընկերությունը չի արտադրում նման ապրանքներ, բայց իր խանութում վաճառում է **Indudtrial Shields** ըկերության արտադրանքը ։ Ընկերության հայտնի արտադրանքը **Archiduino- ն է** ։ Երկու ընկերությունների լուծումներն էլ հիմնված են AVR պրոցեսորների վրա։

## Միկրոկոնտրոլլեր

Arduino-ի միկրոկոնտրոլլերները տարբերվում են դրանցում ներկառուցված բեռնիչով ( անգլ.   bootloader ): Օգտագործելով այս բեռնիչը, օգտագործողը իր ծրագիրը ներդնում է միկրոկտրոլերի մեջ առանց ավանդական առանձին սարքային ծրագրավորողների օգտագործման ։ Բեռնիչը միանում է համակարգչին USB ինտերֆեյսով (եթե այն գտնվում է սալիկում) կամ օգտագործելով առանձին UART-USB ադապտեր։

Arduino IDE-ում հնարավորություն է տրվում ստեղծել սեփական ծրագրային-սարքային հարթակներ։ Այս հնարավորությունն օգտագործվում է կողմնակի ընկերությունների կողմից, որոնք ավելացնում են Arduino IDE- ին իրենց սեփական կոմպլեկտները և դրանց կոմպիլյատոր բեռնիչները։

### AVR

Arduino սարքերի դասական գծում հիմնականում օգտագործվում են Atmel AVR- ի միկրոկոնտրոլլերները։

Որոշ սալիկներում առկա port-երի կազմը կարող են տարբեր լինել։

### ARM

Սալիկների շարքում աստիճանաբար սկսեցին հայտնվել ARM պրոցեսորները։ Սկզբնական շրջանում այն եղել է **AT91SAM3X8E** դասական կառուցվածքի սալիկի վրա։ Ավելի ուշ ի հայտ եկավ Arduino սալիկների «MKR» շարքը DIP կառուցվածքով և **SAMD21** վերահսկիչով ( Cortex-M0, 48 MHz, 2ց56k Flash, 32k RAM):

### Մոկրոկոնտրոլլերային սալիկների մի քանի մոդելներ

Մոկրոկոնտրոլլերային սալիկների մի քանի մոդելներ.

| Arduino | ՄԿ | Սնուցման լարումը | Ֆլեշ հիշողություն, ԿԲ | EEPROM, ԿԲ | SRAM, ԿԲ | Երկուական մուտքեր/ելքեր | …c ԼԻՄ | Անալոգային մուտքեր | USB-ինտերֆեյս | Այլ ինտերֆեյսեր | Չափսը, մմ |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Due | Atmel SAM3X8E ARM Cortex-M3 | 3.3 Վ | 512 | - | 256 | 54 | 12 | 12 + 2ԹԱՓ | ATmega16U2 | CAN, JTAG, I2C | 101,6 × 53.3 |
| ADK  | ATmega2560 | 5 Վ | 256 | 4 | 8 | 54 | 14 | 16 | ATmega8U2 | MAX3421E USB хост | 101,6 × 53.3 |
| BT (Bluetooth)  | ATmega328 | 5 Վ | 32 | 1 | 2 | 14 | 4 | 6 | - | Bluegiga WT11 Bluetooth |  |
| Diecimila  | ATmega168 | 5 Վ | 16 | 0.5 | 1 | 14 | 6 | 6 | FTDI |  | 68,6 × 53.3 |
| Duemilanove  | ATmega168/328P | 5 Վ | 16/32 | 0.5/1 | 1/2 | 14 | 6 | 6 | FTDI |  | 68,6 × 53.3 |
| Ethernet  | ATmega328 | 5 Վ | 32 | 1 | 2 | 14 | 4 | 6 | - | Wiznet Ethernet MicroSD |  |
| Fio Արխիվացված 2011-05-26 Wayback Machine | ATmega328P | 3.3 Վ | 32 | 1 | 2 | 14 | 6 | 8 | - |  | 40,6 × 27.9 |
| Leonardo | Atmega32u4 | 5 Վ | 32 | 1 | 2 | 14 | 6 | 12 | Atmega32u4 |  | 68,6 × 53.3 |
| LilyPad | ATmega168V կամ ATmega328V | 2.7-5.5 Վ | 16 | 0.5 | 1 | 14 | 6 | 6 | - |  | 50 ⌀ |
| Mega | ATmega1280 | 5 Վ | 128 | 4 | 8 | 54 | 14 | 16 | FTDI |  | 101,6 × 53.3 |
| Mega2560 | ATmega2560 | 5 Վ | 256 | 4 | 8 | 54 | 14 | 16 | ATmega8U2 ATmega16U2 |  | 101,6 × 53.3 |
| Nano | ATmega168 կամ ATmega328 | 5 Վ | 16/32 | 0.5/1 | 1/2 | 14 | 6 | 8 | FTDI |  | 43 × 18 |
| Uno | ATmega328P | 5 Վ | 32 | 1 | 2 | 14 | 6 | 6 | ATmega8U2 ATmega16U2 |  | 68,6 × 53.3 |

## Ծրագրավորման սկզբունքը

Ծրագրավորումն իրականացվում է ամբողջովին իր սեփական ծրագրային շերտով (IDE), որն անվճար է և հասանելի է Arduino-ի կայքում։ Այս շերտը պարունակում է տեքստային խմբագիր, նախագծերի մենեջեր, պրեպրոցեսսոր, կոմպիլյատոր եւ գործիքներ այլագիրը միկրոկտրոլեր ներբեռնելու համար։

Arduino գրադարանային փաթեթը օգտագործվում է LGPL լիցենզիայի տակ)

### Ծրագրավորման լեզու

Arduino- ի ծրագրավորման լեզուն համարվում է սովորական C ++-ը որոշ առանձնահատկություններով, որոնք հեշտացնում են սկսնակներին առաջին աշխատանքային ծրագիրը գրելու համար։

* Arduini IDE միջավայրում գրված ծրագրերը կոչվում են *սքետչ*եր (անգլ. *sketch* ) և պահպանվում են \*.io ընդլայնմամբ։
* `main()` Arduino պրոցեսորը, որը պահանջվում է C ++- ում, ստեղծում է անհրաժեշտ «կոպիտ» գործողություններ։
* Ծրագրավորողը պետք է գրի երկու, որոնք պահանջում են Arduino ֆունկցիաներ `setup()` եւ `loop()` : Առաջինը կոչվում է մեկ անգամ, երկրորդը կատարվում է անսահման հանգույցի մեջ։
* Տեքստը ծրագրի (sketch) ծրագրավորող **չի** պահանջվում է տեղադրել header ֆայլերը օգտագործվում են ստանդարտ գրադարանների. Այս վերնագրի ֆայլերը կավելացնեն Arduino պրոցեսոր `ըստ ծրագրի կոնֆիգուրացիայի։ Այնուամենայնիվ, օգտվողների գրադարանները պետք է նշվեն։
* Arduino IDE ծրագրի մենեջերը ունի ոչ ստանդարտ գրադարան ավելացնել մեխանիզմ։ Գրադարանները որպես C ++ ստանդարտ տեքստեր ավելացվում են IDE աշխատանքային գրացուցակում հատուկ թղթապանակում։ Այս դեպքում գրադարանի անունը ավելացվել է IDE ցանկի մեջ գրադարանային ցուցակում։ Ծրագրավորողը նշում է անհրաժեշտ գրադարանները եւ դրանք ավելացվում են կազմման ցանկում։
* The Arduino IDE- ն չի առաջարկում որեւէ կոմպյուտերային պարամետրեր եւ նվազեցնում է այլ կարգավորումներ, որոնք հեշտացնում են սկսնակների համար սկսվող աշխատանքը եւ նվազեցնում խնդիրները։

```
void setup () {
 pinMode (13, OUTPUT); // կոնտակտի համարի (pin 13) ելքային մուտքի հայտարարում
}

void loop () {
 digitalWrite (13, HIGH); // կոնտակտի համարին (pin 13) փոխանցել 1 արժեք
 delay (2000); // 2000 միլիվայրկյան սպասման ցիկլ
 digitalWrite (13, LOW); // կոնտակտի համարին (pin 13) փոխանցել 0 արժեք
 delay (2000); // 2000 միլիվայրկյան սպասման ցիկլ
}

```
 **Այս օրինակում օգտագործվող բոլոր գործառույթները գրադարանային գործառույթներ են։**

### Ծրագրի ներբեռնումը միկրոկոնտրոլլերի մեջ

Arduino-ի ծրագրերի բեռնումը միկրոկոնտրոլլերի մեջ տեղի է ունենում հատուկ բեռնիչով (բոլոր Arduino միկրոկոնտրոլլերները վաճառվում են այս բեռնիչով)։ Բեռնիչը հիմնված է Atmel AVR Application Note AN109 վրա։ Բեռնիչը կարող է աշխատել RS-232, USB կամ Ethernet ինտերֆեյսով `կախված կոնկրետ պրոցեսորների պերիֆերիայի կազմից։ Որոշ տարբերակներում, ինչպիսիք են Arduino Mini-ն կամ ոչ պաշտոնական Boarduino-ն, ծրագրավորման համար անհրաժեշտ է առանձին ադապտեր։

#### Գրաֆիկական ծրագրավորման լեզուներ

* Minibloq
* Scratch for arduino Արխիվացված 2014-04-13 Wayback Machine
* Snap4Arduino
* Ardublock Արխիվացված 2016-12-28 Wayback Machine .
* Modkit- ը վճարովի է, մյուսների համեմատ ` ապահովում է Arduino սարքավորումներով։
* FLProg- ն անվճար է։ Այն թույլ է տալիս Ձեզ ստեղծել ծրագրային ապահովման **FBD** և **LAD** լեզուներով**: Minibloq
* Scratch for arduino
* Snap4Arduino

#### միացման սխեմա

* Fritzing- ը պարզ Arduino- ի վրա հիմնված սխեմաների նախագծման եւ փաստաթղթավորման համակարգ է։

* Fritzing
* Fritzing
* Fritzing

## Հետաքրքիր նախագծեր

* Arduinome- MIDI կոնտրոլլեր
* OBDuino- ուղեւորության համակարգիչ `ստանդարտ ավտոմեքենաների ախտորոշիչ ինտերֆեյսների միացմամբ։
* Ardupilot- ավտոպիլոտ անօդաչու սարքերի համար։

## Ընկերությունը

Ընկերության եւ պլատֆորմի անունը գալիս է Իտալիայի թագավոր Արդուին Իվրաեցու անունից

### Մշակողների թիմը

Արդուինոյի մշակողների թիմի հիմնական կազմը հետևյալն է `Մասսիմո Բանզի, Դեյվիդ Կուարտիլլյե, Թոմ Իգո, Ջիանլուա Մարտինո, Դեյվիդ Մելլիս, Նիկոլաս Զամբետտի և Վալերի Շիմանսկի և այլք։

## Ծանոթագրություններ