Ардуино

от Уикипедия, свободната енциклопедия
Ардуино
Arduino Uno Revision 3
ТипЕдноплатков микроконтролер
Уебсайтwww.arduino.cc
Ардуино в Общомедия

Ардуино е проект с отворен код и едноименна компания, произлязла от него, както и свързаното с него потребителско общество. Основната цел е проектиране и производство на електронна платформа с лесен за ползване свободен хардуер и софтуер, позволяващи постигането на интерактивност за неспециалисти.[1] Електронните платки „Ардуино“ могат да бъдат закупени или готови, или като „направи си сам“ комплекти, като схемите им са свободно достъпни за всеки, който би искал да ги сглоби сам. Проектът е основан на семейство платки с микроконтролери, произвеждани главно от SmartProjects, Италия[2], както и редица други доставчици, които използват различни 8-битови (AVR) микроконтролери или 32-битови (ARM) процесори Atmel. Осигурени са групи от цифрови и аналогови щифтове за вход-изход (I/O), които позволяват свързване с други платки и вериги. Платките включват сериен комуникационен интерфейс, а при някои модели и USB, за зареждане на програми. С оглед програмирането на микроконтролерите „Ардуино“ платформата предоставя интегрирана среда за разработка (IDE), основана на проекта Processing, който поддържа програмните езици C и C++. Първата платка „Ардуино“ е представена през 2005 г. Екипът на проекта иска да предостави на любители, ученици и професионалисти евтин и лесен начин да създават устройства, способни да взаимодействат с околната среда чрез сензори и изпълнителни устройства. Обичайни примери са създаването на прости роботи, термостати и датчици за движение. В средата на 2011 година са произведени приблизително 300 000 комерсиални „Ардуино“ устройства[3], а през 2013 година броят им нараства до 700 000[4].

История[редактиране | редактиране на кода]

През 2001 г. Кейси Рийс и Бенджамин Фрай стартират проекта Processing, чиято цел е да дадат възможност на непрограмисти да визуалзират графики на екран бързо и лесно. Той вдъхновява други подобни проекти, като един от тях е проектът „Уайринг“ (на английски: Wiring – в буквален превод: електрическа инсталация), насочен към потребители като художници, дизайнери и други хора с различно от техническото образование. Негов автор е колумбийския студент Ернандо Бараган (на испански: Hernando Barragán), който през 2003 г. прилага принципите на Processing, за да създаде платформа за изработване на електронни прототипи, състояща се от програмен език, интегрирана среда за разработка и едноплатков микроконтролер. За разлика от Processing, ориентиран към визуалните изкуства, „Уайринг“ е проектиран да увлича хората към електрониката. Тази платка е предшественик на „Ардуино“.

„Ардуино“ е свързан с Висшето училище за интерактивен дизайн в Иврея, Италия (Interaction Design Institute Ivrea), в което обучението се фокусира върху човешкото взаимодействие с цифровите продукти и системи и тяхното обратно въздействие върху потребителите. През 2005 г. група студенти създава проект на име „Ардуино“, подобен на „Уайринг“. Името идва от бар, наречен на свой ред на маркграф и крал Ардуин от Иврея[5], където част от основателите обичали да се събират. Други имена на проекта са Margrave of Ivrea и King of Italy.

Ядрото на групата е съставено от Масимо Банци (Massimo Banzi), Дейвид Куартелие (David Cuartielles), Том Иго (Tom Igoe), Джанлука Мартино (Gianluca Martino), Дейвид Мелис (David Mellis)[6].

От 2008 г. обаче в групата настъпва разцепление. Джанлука Мартино регистрира друга компания, регистрира търговска марка Arduino в някои страни и започва продажби на нов сайт arduino.org Архив на оригинала от 2017-06-27 в Wayback Machine., докато първоначалната компания контролира продажбите на сайта arduino.cc.[7][8][9] Наборът от изделия на двата сайта е различен. Съществуват и две разклонения на Arduino IDE, поддържащи различни платки и библиотеки. Еднаквите названия и номера на версиите на IDE внасят силно объркване.

Хардуер[редактиране | редактиране на кода]

Официално „Ардуино Уно“ с обозначение на местата за вход и изход.
Една от ранните „Ардуино“ платки с RS-232 сериен интерфейс (горе вляво) и Амтел ATmega8 микроконтролер (долу вляво); 14-те цифрови конектора за вход и изход се намират отгоре и 6-те аналогови входа са долу вляво

Arduino се състои от 8-битов Atmel AVR микроконтролер с допълващи се компоненти, които улесняват програмирането и включването в други вериги. Важен аспект на Arduino платформата е наличието на стандартни конектори, които позволяват на потребителите да свързват CPU платката към голям набор от различни, взаимозаменяеми модули, наречени разширения (шилдове на английски: shields). Някои комуникират с Arduino директно, посредством различни конектори. Благодарение на I2C шина, няколко разширения могат да бъдат прикачени и използвани паралелно.

Повечето Arduino платформи функционират с 5V работно напрежение и разполагат с 14 цифрови входно-изходни порта, 6 аналогови входа, 16 MHz кварцов резонатор (въпреки че някои проекти работят с 8 MHz), четири светодиода, USB конектор, захранващ куплунг, бутон за рестартиране и ICSP конектор. Свързването с компютър става посредством USB кабел USB-A/USB-B.

Микроконтролерът на Arduino е снабден с буутлоудър, който опростява качването на програми във флаш паметта на устройството. Това прави използването на Arduino значително по-просто, като позволява програмиране с помощта на обикновен компютър.

На концептуално ниво, при използване на софтуерния стек на Arduino, всички платки се програмират посредством RS-232 сериен порт, но начинът варира според хардуерните особености на устройството.

На пазара се предлагат различни сменяеми шилдове, които могат да бъдат прикачени към Arduino, някои от които Arduino Nano, Bare Bones Board и Boarduino. Има много Arduino-съвместими и Arduino-производни платки.

Официални платки[редактиране | редактиране на кода]

Arduino, освен система с отворен код, е и отличителна търговска марка и за да гарантира качеството и надеждността на продуктите, пълен екип професионалисти от компанията стриктно проверява новите платки преди да бъдат пуснати в търговските мрежи. Официалните платки могат да се разпознаят винаги първо по името – Arduino Pro, Fio или Lilypad, например. Други, неофициални платки, често включват в името си Arduino compatible (в превод: съвместим с „Ардуино“) или for Arduino (в превод: за „Ардуино“). Друг начин за разпознаване на оригиналните платки е по брандирането – те са тюркоазени на цвят и някъде по тях имат изобразен символа за безкрайност, последван от официалния сайт на производителя.

Други компании също произвеждат платки, които се приемат като официални, например следните брандове: Adafruit Industries и SparkFun Electronics.

Поради това, че Arduino е с отворен код и схеми, има много неофициални варианти на платките, които хората са създали за свои собствени нужди. Обикновено те са базирани на същите микроконтролерни чипове и са съвместими със софтуера на Arduino, но изискват повече грижи, за да работят коректно. Например Seeeduino (от Seeed studio) е базирана на Arduino Duemilanove и е на 100% съвместима, но добавя допълнителни методи за свързване, допълнителни суичове и сокети.

Официалната платка е идеален избор за начинаещи, заради множеството онлайн примери и документации, предоставени от Arduino. Това е причината те да са така широко разпространени и всяка грешка или „бъг“ в дизайна им се премахва или поне добре документира в следващите версии.

  • Arduino Leonardo – Леонардо е една от най-новите платки на Arduino. Има същия вид като останалите, но микроконтролерният чип е различен. Той дава предимството платката да бъде разпозната като клавиатура или мишка от дадения компютър.
  • Arduino Uno – микроконтролерна развойна платка с ATmega328P AVR микроконтролер. Има 14 цифрови входно-изходни (I/O) порта, 6 аналогови входа, 16 MHz кварцов резонатор, четири светодиода (един потребителски, свързан на 13-и цифров I/O порт и три, които индикират работата на платката: ON, Tx и Rx), USB конектор, захранващ куплунг, бутон за рестартиране и ICSP конектор. Шест от цифровите I/O порта могат да се използват като PWM (ШИМ) изходи. Свързването с компютър се осъществява чрез USB кабел USB A – USB B. Uno може да се захранва през USB порта на компютъра или от външен източник, като превключването между различните начини за захранване е автоматично. Външният източник на захранване може да е DC адаптер 7-12V или батерия.
  • Arduino Mega 2560 R3 – както подсказва името ѝ, тази платка е по-голяма от Uno варианта. Създадена е за хора, които изискват повече – повече входове, повече изходи и повече процесорна сила.
  • Arduino Mega ATD – тази платка е същата като Arduino Mega 2560, но е проектирана за работа с мобилни устройства с Андроид. Когато се споделя информация между Андроид устройствата (телефони или таблети), Arduino разширява обхвата на всяко едно от тях.
  • Arduino Nano 3.0 – Arduino Nano копира Uno, но е с размери само 1,8 cm x 4,3 cm. Този размер е идеален за направата на по-малки проекти. Нано има цялата спецификация на Arduino Uno, използва същия ATMega328 микроконтролер, но е по-оптимизирана като размер и това го прави идеалния прототип.
  • Arduino Mini R5 – както подсказва името, Мини вариантът на Arduino е по малък и от Nano. Тази платка също използва микроконтролерния чип ATMega328, но от към дизайн е още по-оскъдна, защото са премахнати всички колекторни щифтове, както и Mini-USB конектора на Nano варианта. Тази платка е идеалният избор, ако мястото е приоритет, но създава много грижи при свързване, защото едно грешно свързване може да унищожи платката.
  • Arduino Ethernet – е като Arduino Uno, но е специално пригодена за свързване с Интернет. Може да се настрои за автоматичен достъп без значение на трафика от данни. Уеб браузърите интерпретират зададения текст точно както се изобразява на екрана ви (например: подравняване, форматиране, използване на изображения и т.н.). Ако въведените команди са познати, Arduino Ethernet има достъп до текста директно и може да бъде използван и за други цели. За използването на тази платка могат да се намери много документация онлайн.
  • Arduino BT – тази платка позволява свързване с Bluetooth устройства в обхвата ѝ и дава възможност за взаимодействие с мобилни телефони, таблети и други устройства, притежаващи тази екстра.

„Ардуино“ разширения[редактиране | редактиране на кода]

Предлагат се платки за разширение на възможностите, които се включват към нормалните куплунги. Те могат да осигурят контрол на мотори, връзка с GPS, Ethernet, LCD и др. Те могат да бъдат изработени и по метода „направи си сам“.[10][11][12]

Софтуер[редактиране | редактиране на кода]

Arduino Software IDE
Екранна снимка на Arduino IDE с програмата Blink, проста програма за начинаещи
Информация
РазработчикArduino Software
Последна версия1.8.7
Програмен езикJava, C и C++
Операционна системамултиплатформена
Вид софтуеринтегрирана среда за разработка
ЛицензLGPL или GPL лиценз
Уебсайтarduino.cc
Ардуино в Общомедия

Интегрираната среда за разработка на „Ардуино“ е мултиплатформено приложение, написано на програмния език Java и произлиза от езика за програмиране Processing и проекта Wiring. Конструирана е така, че да улесни програмирането от хора, които не са запознати с писането на софтуер. Съдържа редактор на код с функции като:

  • syntax highlighting (показване на текст в различен цвят в зависимост от принадлежността на термините)
  • brace matching (функция, която следи отварящите и затварящите скоби с цел по-лесна навигация през програмния код),
  • автоматично подравняване

и също така е способен да компилира и да качва програми към устройството с един клик.

Програма, написана за „Ардуино“, се нарича „скеч“ и е на програмните езици C и C++. Средата за разработка „Ардуино“ идва със софтуерна библиотека Wiring (името идва от оригиналния Wiring проект), което улеснява много входни/изходни операции.

За да направят циклично изпълняваща се програма, потребителите трябва да дефинират само две функции,:

  • Setup(): Функция, която се изпълнява веднъж в началото на програмата и може да инициализира настройки;
  • Loop(): Функция, която не спира да се извиква докато „Ардуино“ не се изключи.

Типична първа програма за микроконтролер е просто примигваща LED светлинка. В средата за разработка на „Ардуино“ потребителят може да напише програма като:

#define LED_PIN 13

void setup() {
    pinMode(LED_PIN, OUTPUT);       // Enable pin 13 for digital output
}

void loop() {
    digitalWrite(LED_PIN, HIGH);    // Turn on the LED
    delay(1000);                    // Wait one second (1000 milliseconds)
    digitalWrite(LED_PIN, LOW);     // Turn off the LED
    delay(1000);                    // Wait one second
}

Предимството на повечето „Ардуино“ платформи е, че имат светлинен индикатор и специфичен резистор, свързани между (pin 13 и земя), което е доста удобно за прости тестове. Горният код не може да бъде видян от стандартен C++ компилатор като валидна програма, затова, когато потребителят кликне бутона Upload to I/O board в средата за разработка, копие на кода се записва във временен файл, в който се добавя функцията main(), за да се валидира кода. Средата за разработка на „Ардуино“ използва GNU toolchain и AVR Libc, за да компилира програми и използва Avrdude, за да качва програмите на устройството. Вследствие на това, че „Ардуино“ използва Atmel микроконтролери, средата за разработка на Atmel AVR Studio може също да се използва за писане на софтуер за „Ардуино“.[13][14]

Разработка[редактиране | редактиране на кода]

„Ардуино“ е свободен хардуер: хардуерната референция на проекта са разпространени под Creative Commons Attribution Share-Alike 2.5 лиценз и са достъпни на сайта на „Ардуино“. Планове и производствени досиета за някои версии на „Ардуино“ са също достъпни. Изходният код за интегрираната среда за разработка (IDE) е достъпен и издаден под GNU General Public License, версия 2.

Въпреки че хардуерните и софтуерните скици са достъпни безплатно под copyleft лицензи, разработчиците са поискали името „Ардуино“ да бъде уникално само за официалния продукт и да не се използва за производни работи без разрешение. Официалният политически документ по използването на „Ардуино“ името гласи, че проектът е отворен да обединява работата на други в официалния продукт. Няколко комерсиално пуснати „Ардуино“ съвместими продукта избягват името „Ардуино“, като използват само „-дуино“ завършека като варианти за име.

Приложения[редактиране | редактиране на кода]

Източници[редактиране | редактиране на кода]

  1. Arduino Project introduction // Архивиран от оригинала на 2015-01-06. Посетен на 2015-04-18.
  2. arduino.cc
  3. How many Arduinos are “in the wild?” About 300 000 // Adafruit Industries, 15 май 2011. Посетен на 26 май 2013.
  4. Arduino FAQ – With David Cuartielles // Malmö University, 5 април 2013. Архивиран от оригинала на 2017-09-06. Посетен на 24 март 2014.
  5. Justin Lahart. Taking an Open-Source Approach to Hardware // The Wall Street Journal. 27 ноември 2009. Посетен на 7 септември 2014.
  6. David Kushner. The Making of Arduino // IEEE Spectrum. 26 Oct 2011.
  7. Allan, Alasdair. Arduino Wars: Group Splits, Competing Products Revealed? // makezine.com. Maker Media, Inc., 6 март 2015. Посетен на 21 април 2015.
  8. Banzi, Massimo. Massimo Banzi: Fighting for Arduino // makezine.com. Maker Media, Inc., 19 март 2015. Посетен на 21 април 2015.
  9. Williams, Elliot. Arduino SRL To Distributors: “We’re The REAL Arduino” // Hackaday.com. Hackaday.com, 28 март 2015. Посетен на 21 април 2015.
  10. "Arduino breadboard shield: US$10 & 10 mins". todbot.com, архив на оригинала от 16 септември 2017, https://web.archive.org/web/20170916165155/http://todbot.com/blog/2006/07/11/arduino-breadboard-shield/, посетен на 18 април 2015 
  11. Igoe, Tom (April 4, 2006). "Arduino Shields for Prototyping". tigoe.net, архив на оригинала от 2 юли 2017, https://web.archive.org/web/20170702144039/http://www.tigoe.net/pcomp/code/arduinowiring/26/, посетен на 18 април 2015 
  12. Jonathan Oxer. Arduino Shield list // Посетен на 5 Nov 2013.
  13. Using Atmel Studio for Arduino development // Megunolink.com. Архивиран от оригинала на 2013-01-28. Посетен на 18 януари 2013.
  14. Using AVR Studio for Arduino development // Engblaze.com. Архивиран от оригинала на 2012-08-28. Посетен на 18 януари 2013.
  15. xoscillo – A software oscilloscope that acquires data using an arduino or a parallax (more platforms to come). – Google Project Hosting // Code.google.com. Посетен на 18 януари 2013.
  16. Pearce, Joshua M. 2012. "Building Research Equipment with Free, Open-Source Hardware". Science 337 (6100): 1303–1304. (open access)
  17. ArduinoPhone. Instructables.com (2013-07-17). Посетен на 4 август 2013.
  18. Raspberry Pi Spy. Introducing The GertDuino Add-on Board For Raspberry Pi. Посетен на 9 ноември 2014.
  19. Bas Wijnen, G. C. Anzalone and Joshua M. Pearce, Open-source mobile water quality testing platform. Journal of Water, Sanitation and Hygiene for Development, 4(3) pp. 532 – 537 (2014). doi:10.2166/washdev.2014.137 open access

Допълнителна литература[редактиране | редактиране на кода]

  • Getting Started with Arduino; Massimo Banzi, Michael Shiloh; 262 pages; 2014; ISBN 1-4493-6333-4.
  • Arduino For Dummies; John Nussey; 446 pages; 2013; ISBN 978-1-118-44637-9.
  • Programming Arduino Next Steps: Going Further with Sketches; Simon Monk; 2013; ISBN 978-0-07-183025-6.
  • Exploring Arduino: Tools and Techniques for Engineering Wizardry; Jeremy Blum; 384 pages; 2013; ISBN 978-1-118-54936-0.
  • Arduino Workshop: A Hands-On Introduction with 65 Projects; John Boxall; 392 pages; 2013; ISBN 978-1-59327-448-1.
  • Beginning C for Arduino: Learn C Programming for the Arduino and Compatible Microcontrollers; Jack Purdum; 280 pages; 2012; ISBN 978-1-4302-4776-0.
  • Programming Arduino: Getting Started With Sketches; Monk Simon; 162 pages; 2011; ISBN 978-0-07-178422-1.
  • Make: Electronics (Learning by Discovery); Charles Platt; 352 pages; 2009; ISBN 978-0-596-15374-8.
  Тази страница частично или изцяло представлява превод на страницата Arduino в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​