Разработчик | arduino.cc |
---|---|
Производитель | Ардуино |
Тип | Одноплатный микроконтроллер |
Операционная система | Нет (по умолчанию) / Xinu |
Процессор | Atmel AVR (8-разрядный), ARM Cortex-M0 + (32-разрядный), ARM Cortex-M3 (32-разрядный), Intel Quark ( x86 ) (32-разрядный) |
объем памяти | SRAM |
Место хранения | Вспышка , EEPROM |
Веб-сайт | www |
Arduino ( / ɑː г д ж я н oʊ / ) является открытым исходным кодом аппаратной и программного обеспечения компания, проект, и сообщество пользователей , которые разрабатывают и производят одноплатные микроконтроллеры и микропроцессорные комплекты для построения цифровых устройств. Его аппаратные продукты лицензированы по лицензии CC-BY-SA , а программное обеспечение - по лицензии GNU Lesser General Public License (LGPL) или GNU General Public License (GPL), [1]разрешение на производство плат Arduino и распространение программного обеспечения кем угодно. Платы Arduino можно приобрести на официальном сайте или у официальных дистрибьюторов.
В конструкциях плат Arduino используются различные микропроцессоры и контроллеры. Платы оснащены наборами цифровых и аналоговых контактов ввода / вывода (I / O), которые могут быть подключены к различным платам расширения («экранам») или макетам (для прототипирования) и другим схемам. Платы оснащены интерфейсами последовательной связи, в том числе универсальной последовательной шиной (USB) на некоторых моделях, которые также используются для загрузки программ. Микроконтроллеры могут быть запрограммированы с использованием языков программирования C и C ++ с использованием стандартного API, также известного как «язык Arduino». В дополнение к использованию традиционных инструментальных средств компилятора , проект Arduino предоставляет интегрированную среду разработки (IDE) и инструмент командной строки, разработанный на Go .
Проект Arduino начался в 2005 году как инструмент для студентов Института дизайна взаимодействия Ивреа , Италия [2], с целью предоставить недорогой и простой способ для новичков и профессионалов создавать устройства, которые взаимодействуют с окружающей средой с помощью датчиков и исполнительных механизмов . Распространенными примерами таких устройств, предназначенных для начинающих любителей, являются простые роботы , термостаты и датчики движения .
Название Arduino происходит от бара в Ивреа , Италия, где раньше встречались некоторые из основателей проекта. Бар был назван в честь Ардуина Ивреа , который был маркграфом в марте Иврее и король Италии от 1002 до 1014. [3]
Проект Arduino был начат в Interaction Design Institute Ivrea (IDII) в Ивреа , Италия. [2] В то время студенты использовали микроконтроллер BASIC Stamp за 50 долларов. В 2003 году Эрнандо Барраган создал платформу для разработки Wiring в качестве проекта магистерской диссертации в IDII под руководством Массимо Банци и Кейси Реаса . Кейси Реас известен тем, что вместе с Беном Фраем создал платформу разработки Processing . Целью проекта было создание простых и недорогих инструментов для создания цифровых проектов не инженерами. Платформа проводки состояла из печатной платы (PCB) с ATmega.168, IDE, основанная на функциях обработки и библиотеки, позволяющая легко программировать микроконтроллер. [4] В 2005 году Массимо Банци вместе с Дэвидом Меллисом, другим студентом IDII, и Дэвидом Куартьелесом расширили проводку, добавив поддержку более дешевого микроконтроллера ATmega8. Новый проект, разветвленный от Wiring, назывался Arduino . [4]
Первоначальная основная команда Arduino состояла из Массимо Банци, Дэвида Куартиэльеса, Тома Иго, Джанлуки Мартино и Дэвида Меллиса. [2]
После завершения работы над платформой в сообществе разработчиков ПО с открытым исходным кодом были распространены более легкие и менее дорогие версии. По оценкам, в середине 2011 года было коммерчески произведено более 300 000 официальных плат Arduinos [5], а в 2013 году в руках пользователей находилось 700 000 официальных плат. [6]
В начале 2008 года пять соучредителей проекта Arduino создали компанию Arduino LLC [7] для хранения товарных знаков, связанных с Arduino. Изготовлением и продажей плат должны были заниматься сторонние компании, и ООО «Ардуино» получало от них гонорар. В уставе Arduino LLC указано, что каждый из пяти учредителей передает право собственности на бренд Arduino вновь созданной компании. [ необходима цитата ]
В конце 2008 года компания Джанлуки Мартино, Smart Projects, зарегистрировала торговую марку Arduino в Италии и держала это в секрете от других соучредителей около двух лет. Это стало известно, когда компания Arduino попыталась зарегистрировать товарный знак в других регионах мира (первоначально они регистрировались только в США) и обнаружила, что он уже зарегистрирован в Италии. Переговоры с Мартино и его фирмой о передаче торговой марки под контроль исходной компании Arduino провалились. В 2014 году Smart Projects стали отказываться от выплаты роялти. Затем они назначили нового генерального директора Федерико Мусто, который переименовал компанию в Arduino SRL и создал веб-сайт arduino.org , скопировав графику и макет оригинального arduino.cc.. Это привело к расколу в команде разработчиков Arduino. [8] [9] [10]
В январе 2015 года компания Arduino LLC подала иск против Arduino SRL. [11]
В мае 2015 года компания Arduino LLC создала всемирную торговую марку Genuino , которая используется как торговая марка за пределами США. [12]
1 октября 2016 года на выставке World Maker Faire в Нью-Йорке соучредитель и генеральный директор Arduino LLC Массимо Банци и генеральный директор Arduino SRL Федерико Мусто объявили о слиянии двух компаний. [13] Примерно в то же время Массимо Банци объявил, что в дополнение к компании будет запущен новый Arduino Foundation как «новое начало для Arduino», но это решение было отозвано позже. [14] [15]
В апреле 2017 года Wired сообщил, что Мусто «сфабриковал свою академическую успеваемость ...». На веб-сайте своей компании, в личных учетных записях LinkedIn и даже в итальянских деловых документах Мусто до недавнего времени значился как обладатель докторской степени Массачусетского института медицины. Технологии. В некоторых случаях в его биографии также говорилось о степени магистра делового администрирования Нью-Йоркского университета ". Wired сообщил, что ни один из университетов не имел сведений о посещаемости Мусто, и позже Мусто признался в интервью Wired, что он никогда не получал этих степеней. [16] Споры вокруг Мусто продолжились, когда в июле 2017 года он, как сообщается, вытащил множество лицензий, схем и кода с открытым исходным кодом с веб-сайта Arduino, что вызвало критику и протесты. [17]
К 2017 году Arduino AG владела многими торговыми марками Arduino. В июле 2017 года BCMI, основанная Массимо Банци, Дэвидом Куартиелесом, Дэвидом Меллисом и Томом Айго, приобрела Arduino AG и все торговые марки Arduino. Фабио Виоланте - новый генеральный директор, сменивший Федерико Мусто, который больше не работает в Arduino AG. [18] [19]
В октябре 2017 года Arduino объявила о партнерстве с ARM Holdings (ARM). В объявлении, в частности, говорилось: «ARM признала независимость основной ценностью Arduino ... без какой-либо привязки к архитектуре ARM ». Arduino намерена продолжать работать со всеми поставщиками технологий и архитектурами. [20]
Под руководством Виоланте компания снова начала расти и выпускать новые дизайны. Торговая марка Genuino была отклонена, и все продукты снова были помечены именем Arduino. По состоянию на февраль 2020 года сообщество Arduino насчитывало около 30 миллионов активных пользователей на основе загрузок IDE. [21]
В августе 2018 года Arduino анонсировала свой новый инструмент командной строки с открытым исходным кодом ( arduino-cli ), который можно использовать в качестве замены IDE для программирования плат из оболочки. [22]
В феврале 2019 года Arduino анонсировала свой облачный сервис IoT Cloud как расширение онлайн-среды Create. [23]
Arduino - это оборудование с открытым исходным кодом . Эталонные образцы оборудования распространяются по лицензии Creative Commons Attribution Share-Alike 2.5 и доступны на веб-сайте Arduino. Также доступны файлы макета и производства [24] для некоторых версий оборудования.
Хотя оборудование и программное обеспечение свободно доступны по лицензиям с авторским левом, разработчики попросили, чтобы название Arduino использовалось исключительно для официального продукта и не использовалось для производных работ без разрешения. В официальном политическом документе по использованию названия Arduino подчеркивается, что проект открыт для включения других работ в официальный продукт. [25] Некоторые коммерчески выпущенные продукты, совместимые с Arduino, избегают названия проекта, используя различные названия, оканчивающиеся на -duino . [26]
Большинство Arduino платы состоят из Atmel 8-битного AVR микроконтроллера (ATmega8, [28] ATmega168, ATmega328 , ATmega1280 или ATmega2560) с различными количествами флэш - памяти, булавки, и особенности. [29] 32-битная Arduino Due , основанная на Atmel SAM3X8E, была представлена в 2012 году. [30] На платах используются одно- или двухрядные контакты или гнездовые разъемы, которые упрощают подключение для программирования и встраивания в другие схемы. Они могут соединяться с дополнительными модулями, называемыми щитами . Несколько и, возможно, уложенные друг на друга экраны могут иметь индивидуальную адресацию через последовательную шину I²C. . Большинство плат включает линейный регулятор на 5 В и кварцевый генератор на 16 МГц или керамический резонатор . Некоторые конструкции, такие как LilyPad, [31], работают на частоте 8 МГц и обходятся без встроенного регулятора напряжения из-за особых ограничений форм-фактора.
Микроконтроллеры Arduino предварительно запрограммированы с загрузчиком, который упрощает загрузку программ во встроенную флэш-память . Загрузчиком Arduino Uno по умолчанию является загрузчик Optiboot. [32] Платы загружаются программным кодом через последовательное соединение с другим компьютером. Некоторые последовательные платы Arduino содержат схему сдвига уровня для преобразования между логическими уровнями RS-232 и сигналами уровня транзисторно-транзисторной логики (TTL). Современные платы Arduino программируются через универсальную последовательную шину (USB), реализованную с помощью микросхем переходника USB-to-serial, таких как FTDI FT232. Некоторые платы, такие как платы Uno более поздних моделей, заменяют FTDI.чип с отдельной микросхемой AVR, содержащей прошивку USB-to-serial, которая перепрограммируется через собственный заголовок ICSP . В других вариантах, таких как Arduino Mini и неофициальный Boarduino, используется съемная плата или кабель адаптера USB-последовательный порт, Bluetooth или другие методы. При использовании с традиционными инструментами микроконтроллера вместо Arduino IDE используется стандартное программирование в системе AVR (ISP).
Плата Arduino предоставляет большую часть контактов ввода-вывода микроконтроллера для использования другими схемами. Diecimila , [а] Duemilanove , [Ь] и текущий Uno [с] обеспечивает 14 цифровых выводов ввода / вывода, шесть из которых могут производить широтно-импульсной модуляцией сигналов, а также шесть аналоговых входов, которые также могут быть использованы в качестве шести цифровых входов / O штифты. Эти контакты находятся в верхней части платы через разъемы 0,1 дюйма (2,54 мм). Также коммерчески доступны несколько подключаемых экранов приложений. Платы Arduino Nano и Arduino Bare Bones Board [33] и Boarduino [34] могут иметь штыревые разъемы на нижней стороне платы, которые можно вставлять в беспаечныемакеты .
Существует множество плат, совместимых с Arduino и производных от Arduino. Некоторые из них функционально эквивалентны Arduino и могут использоваться взаимозаменяемо. Многие улучшают базовую Arduino, добавляя драйверы вывода, часто для использования в школьном образовании [35], чтобы упростить создание багги и маленьких роботов. Другие электрически эквивалентны, но меняют форм-фактор, иногда сохраняя совместимость с экранами, иногда нет. В некоторых вариантах используются разные процессоры с разной совместимостью.
Оригинальное оборудование Arduino было произведено итальянской компанией Smart Projects. [36] Некоторые платы под брендом Arduino были разработаны американскими компаниями SparkFun Electronics и Adafruit Industries . [37] По состоянию на 2016 год [Обновить]коммерчески выпущено 17 версий оборудования Arduino.
Arduino RS232 [38]
(штыри)
Arduino Diecimila [39]
Arduino Duemilanove [40]
(версия 2009b)
Arduino Uno R2 [41] [42]
Arduino Uno SMD R3 [43]
Ардуино Леонардо [44]
Arduino micro (AtMega 32U4)
Arduino pro micro (AtMega32U4)
Arduino Pro [45]
(без USB)
Arduino Mega [46]
Arduino Nano [47]
(посадочное место DIP-30)
Arduino LilyPad 00 [48]
(версия 2007 г.) (без USB)
Робот Arduino [49]
Ардуино Эсплора [50]
Arduino Ethernet [51]
(AVR + W5100)
Arduino Yún [52]
(AVR + AR9331)
Arduino Due [53]
( ядро ARM Cortex-M3 )
Платы, совместимые с Arduino и Arduino, используют платы расширения для печатных схем, называемые щитами , которые подключаются к обычно поставляемым разъемам контактов Arduino. [54] Shields может обеспечивать управление двигателем для 3D-печати и других приложений, GNSS (спутниковая навигация), Ethernet, жидкокристаллического дисплея (ЖКД) или макетирования ( прототипирования ). Несколько щитов также можно сделать своими руками (DIY). [55] [56] [57]
Некоторые щиты предлагают штабелируемые заголовки, которые позволяют размещать несколько щитов поверх платы Arduino. Здесь прототипный щит установлен на двух моторных щитах Adafruit V2.
Защитный экран с винтовыми клеммами в форме крылышка, позволяющий подключать неизолированные провода к плате без использования специальных контактов.
Adafruit Datalogging Shield со слотом для карт Secure Digital (SD) и микросхемой часов реального времени (RTC), а также с некоторым пространством для добавления компонентов и модулей для настройки.
Adafruit Motor Shield с винтовыми клеммами для подключения к двигателям. Официально снятый с производства, этот щит все еще может быть доступен по неофициальным каналам.
В моторном щите Adafruit V2 используется I²C , что требует значительно меньшего количества цифровых контактов ввода-вывода, чем подключение каждого двигателя напрямую.
Экран хоста USB, который позволяет плате Arduino взаимодействовать с USB-устройством, таким как клавиатура или мышь.
Разработчики) | Программное обеспечение Arduino |
---|---|
Стабильный выпуск | 1.8.16 / 6 сентября 2021 г . [58] |
Написано в | Java , C , C ++ |
Операционная система | Windows , macOS , Linux |
Платформа | IA-32 , x86-64 , ARM |
Тип | Интегрированная среда разработки |
Лицензия | Лицензия LGPL или GPL |
Веб-сайт | www .arduino .cc / en / Main / Программное обеспечение |
Программа для оборудования Arduino может быть написана на любом языке программирования с компиляторами, которые производят двоичный машинный код для целевого процессора. Atmel предоставляет среду разработки для своих 8-разрядных микроконтроллеров на базе AVR и 32-разрядных ARM Cortex-M : AVR Studio (более ранняя версия) и Atmel Studio (более новая). [59] [60] [61]
Интегрированная среда разработки (IDE) Arduino - это кроссплатформенное приложение (для Windows , macOS и Linux ), написанное на языке программирования Java . Он возник из среды IDE для языков Processing и Wiring . Он включает в себя редактор кода с такими функциями, как вырезание и вставка текста, поиск и замена текста, автоматическое создание отступов, сопоставление скобок и подсветка синтаксиса , а также обеспечивает простое использование одним щелчком мыши.механизмы для компиляции и загрузки программ на плату Arduino. Он также содержит область сообщений, текстовую консоль, панель инструментов с кнопками для общих функций и иерархию меню операций. Исходный код IDE выпущен под лицензией GNU General Public License , версия 2. [62]
IDE Arduino поддерживает языки C и C ++ с использованием специальных правил структурирования кода. Arduino IDE предоставляет библиотеку программного обеспечения из проекта Wiring , которая предоставляет множество общих процедур ввода и вывода. Написанный пользователем код требует только двух основных функций, для запуска скетча и основного цикла программы, которые скомпилированы и связаны с программной заглушкой main () в исполняемую циклическую исполнительную программу с помощью инструментальной цепочки GNU , также включенной в дистрибутив IDE. В Arduino IDE используется программа avrdude. для преобразования исполняемого кода в текстовый файл в шестнадцатеричной кодировке, который загружается в плату Arduino программой-загрузчиком в прошивке платы.
18 октября 2019 года была выпущена Arduino Pro IDE (альфа-версия). Позже, 1 марта 2021 года, была выпущена бета-версия, переименованная в IDE 2.0. Система по-прежнему использует Arduino CLI (интерфейс командной строки), но улучшения включают более профессиональную среду разработки, поддержку автозаполнения и интеграцию с Git. [63] Интерфейс приложения основан на IDE Eclipse Theia с открытым исходным кодом. В новой версии доступны следующие основные функции: [64]
Эскиз представляет собой программу , написанную с Arduino IDE. [65] Эскизы сохраняются на компьютере разработчика в виде текстовых файлов с расширением .ino . Программное обеспечение Arduino (IDE) до 1.0 сохраняло эскизы с расширением .pde .
Минимальная программа Arduino C / C ++ состоит всего из двух функций: [66]
setup()
: Эта функция вызывается один раз, когда скетч запускается после включения или сброса. Он используется для инициализации переменных, режимов входных и выходных выводов и других библиотек, необходимых в скетче. Аналог функции main()
. [67]loop()
: После setup()
выхода из функции (завершения) loop()
функция повторно выполняется в основной программе. Он управляет платой до тех пор, пока плата не отключится или не будет перезагружена. Аналог функции while(1)
. [68]Большинство плат Arduino содержат светоизлучающий диод (LED) и токоограничивающий резистор, подключенный между контактом 13 и землей, что является удобной функцией для многих тестов и программных функций. [69] Типичная программа, используемая новичками, похожая на Hello, World! , это «мигание», которое многократно мигает встроенным светодиодом на плате Arduino. Эта программа использует функции pinMode()
, digitalWrite()
и delay()
, которые предоставляются внутренними библиотеками, включенными в среду IDE. [70] [71] [72] Эта программа обычно загружается производителем в новую плату Arduino.
#define LED_PIN 13 // Номер контакта, подключенного к светодиоду.void setup () { pinMode ( LED_PIN , ВЫХОД ); // Настройте вывод 13 как цифровой выход. } void loop () { digitalWrite ( LED_PIN , HIGH ); // Включаем светодиод. задержка ( 1000 ); // Ждем 1 секунду (1000 миллисекунд). digitalWrite ( LED_PIN , LOW ); // Выключаем светодиод. задержка ( 1000 ); // Подождите 1 секунду. }
Открытый исходный код проекта Arduino облегчил публикацию многих библиотек бесплатного программного обеспечения, которые другие разработчики используют для расширения своих проектов.
Существует Xinu порт ОС для ATmega328P (Arduino Uno и другие с тем же чипом), которая включает в себя большинство основных функций. [73] Исходный код этой версии находится в свободном доступе. [74]
Существует также инструмент для нарезания резьбы под названием Protothreads. Протопотоки описываются как «... чрезвычайно легкие потоки без стека, разработанные для систем с жесткими ограничениями памяти, таких как небольшие встроенные системы или узлы беспроводной сенсорной сети. Протопотоки обеспечивают линейное выполнение кода для систем, управляемых событиями, реализованных на C. Протопотоки могут использоваться с или без базовой операционной системы ". [75]
Протопоточность использует оператор C switch () неочевидным образом, аналогично устройству Даффа . [76] Ниже приведен скелетный код протопотоков:
#include "pt.h" struct pt pt ; struct timer timer ; PT_THREAD ( пример ( struct pt * pt )) { PT_BEGIN ( пт ); в то время как ( 1 ) { if ( initiate_io ()) { timer_start ( & timer ;); PT_WAIT_UNTIL ( балл , io_completed () || timer_expired ( & timer ;)); read_data (); } } PT_END ( пт );}
Проект Arduino получил почетное упоминание в категории «Цифровые сообщества» на конкурсе Prix Ars Electronica 2006 года . [81]
Инженерный комплект Arduino получил премию Бетта за «Цифровые услуги для высшего и дополнительного образования» в 2020 году. [82]
Викискладе есть медиафайлы по теме Arduino . |