Технические науки/11. Робототехника

Угай И.А., Заурбеков Д.Л., Турсунов И.Э., Пак И.Е.

 

Национальная научная лаборатория коллективного пользования информационных и космических технологий Казахского национального технического университета имени К.И. Сатпаева

 

СРАВНИТЕЛЬНЫЙ ОБЗОР ПРОИЗВОДИТЕЛЬНОСТИ ПЛАТ ARDUINO

 

Робототехника, как наука, появилась несколько столетий назад, за данный период времени человечеством было создано множество автоматизированных систем. Изначально роботы создавались и, использовались исключительно в производственной сфере, что позволяет снизить человеческий фактор, увеличить производительность и т.д. Однако в последнее десятилетие наблюдается рост популярности разработки и применения роботов в следующих сферах деятельности: осуществление наблюдения и охраны каких-либо территорий; осуществление военных действий; спасательные операции и т.п.

Однако, перед созданием подобных роботов, разработчики сталкиваются с проблемой выбора платформы реализации. На данный момент, наиболее дешевой и обладающей потенциально огромными возможностями является платформа Arduino. Сотрудниками Национальной научной лаборатории коллективного пользования информационных и космических технологий КазНТУ имени К.И. Сатпаева (далее – ННЛКП ИКТ), было проведено изучение данной платформы.

По данным за июнь 2014 года существуют следующие основные, управляющие платы (далее – платы/микроконтроллеры):

– Arduino UNO R3;

– Arduino DUE;

– Arduino Mega;

– Arduino Mega 2560;

– Arduino Intel Galileo.

Плата Arduino UNO R3 (рис. 1) создана компанией Arduino Software на базе микропроцессора ATmega328P. Данный микропроцессор обладает 32 Кбайтной флэш-памятью, постоянно запоминающим устройством (далее – ПЗУ) объёмом 1024 байт, статической оперативной памятью (далее – СОП) объёмом 2048 байт и тактовой частотой 16 МГц.

 

http://arduino.cc/en/uploads/Main/ArduinoUno_R3_Front_450px.jpg

Рисунок 1 – Плата Arduino UNO R3

 

Также, данная плата работает под напряжением 5 В и имеет 14 цифровых портов ввода/вывода. Для обеспечения корректной работы компанией Arduino Software рекомендуется передавать на вход от 7 до 12 В [1].

Плата Arduino DUE (рис. 2) построена на базе микропроцессора Atmel SAM3X8E ARM Cortex-M3 (далее – ARM Cortex-M3). Микропроцессор ARM Cortex-M3 флэш-памятью объёмом в 512 Кбайт, СОП – 96 Кбайт (состоит из двух блоков: 64 Кбайт и 32 Кбайт) и тактовой частотой – 84 МГц.

 

http://arduino.cc/en/uploads/Main/ArduinoDue_Front_450px.jpg

Рисунок 2 – Плата Arduino DUE

 

Аналогично ранее рассмотренной плате Arduino DUE работает под напряжением 5 В и имеет 14 цифровых портов ввода/вывода [2].

Плата Arduino Mega основана на микропроцессоре ATmega1280. Микропроцессор имеет следующие характеристики:

– флэш-память объёмом 128 Кбайт (из которых разработчику доступны 124 Кбайт);

– ПЗУ объёмом 4 Кбайт;

– СОП объёмом 8 Кбайт;

– тактовая частота – 16 МГц.

Также данная плата работает под напряжением 5 В, но в отличие от ранее рассмотренных ранее плат имеет 54 цифровых порта ввода/вывода (смотреть рис. 3) [3].

 

http://arduino.cc/en/uploads/Main/ArduinoMega.jpg

Рисунок 3 – Плата Arduino Mega

 

Плата Arduino Mega 2560 работает под управлением микропроцессора ATmega2560. Данный микропроцессор имеет работает под напряжением 5 В и имеет 54 цифровых порта ввода/вывода (смотреть рис. 4).

 

http://arduino.cc/en/uploads/Main/ArduinoMega2560_R3_Front_450px.jpg

Рисунок 4 – Плата Arduino Mega 2560

 

Микропроцессор ATmega2560 имеет следующие характеристики: флэш-память объёмом 256 Кбайт; ПЗУ объёмом 4 Кбайт; СОП объёмом 8 Кбайт; тактовой частотой 16 МГц [4].

Плата Arduino Intel Galileo основана на микропроцессоре Intel Quark SoC X1000. Данный микропроцессор имеет флэш-память объёмом 8 Мбайт, ПЗУ объёмом 11 Кбайт, СОП объёмом 512 Кбайт, динамическую оперативную память (ДОП) объёмом 256 Мбайт и тактовой частотой 400 МГц (смотреть рис. 5) [5].

 

http://arduino.cc/en/uploads/ArduinoCertified/IntelGalileo_fabD_Front_450px.jpg

Рисунок 5 – Плата Arduino Intel Galileo

 

Ознакомившись с вышеперечисленными платами Arduino, сотрудниками ННЛКП ИКТ были построены сводные диаграммы (смотреть рис. 6).

 

Рисунок 6 – Сводные данные плат Arduino

 

Согласно рис. 6 аббревиатурой CPU обозначается тактовая частота микропроцессора, на котором основана та или иная плата Arduino (приведена в МГц), а SRAM обозначает объём статической оперативной памяти (исчисляется в Кбайт).

Как видно из сводной диаграммы (рис. 6), наименьшей производительностью обладает плата Arduino UNO R3, а самой высокой производительностью обладает плата, основанная на базе микропроцессора IntelArduino Intel Galileo.

Наиболее близкими по производительности являются платы Arduino UNO R3, Arduino Mega и Arduino Mega 2560. Как видно из рис. 6, тактовая частота микропроцессоров, на которых основаны рассматриваемые платы, является одинаковой – 16 МГц. Отличительными особенностями (влияющими на производительность) между данными платами являются объём статической оперативной памяти между платами Arduino Mega, Arduino Mega 2560 (объём 8 Кбайт) и платой Arduino UNO R3 (объём 2 Кбайт), несмотря на то, что тактовая частота микропроцессоров является эквивалентной, можно наблюдать 4-х кратную разницу в объёме статической оперативной памяти. Однако флэш-память на Arduino UNO R3, Arduino Mega и Arduino Mega 2560 имеет следующий объём (соответственно): 32 Кбайт, 128 Кбайт и 256 Кбайт. Ввиду этого можно выстроить цепочку плат в соответствии с их производительностью (смотреть рис. 7).

Согласно пирамиде производительности плат Arduino (рис. 7), они расположены в порядке возрастания их производительности.

Рисунок 7 – Пирамида производительности плат Arduino

 

Заключение. Выполнив обзор плат Arduino, сотрудниками ННЛКП ИКТ были определены платы, имеющие низкую производительность и высокую производительность. Что в будущем позволит определять, какую плату применять в том или ином случае. Путём вычисления приблизительной трудоёмкости задач, которые должна выполнять плата и сравнения с её производительностью.

 

Литература:

 

1. Arduino Software, «Arduino Uno», http://arduino.cc/en/Main/ArduinoBoardUno;

2. Arduino Software, «Arduino Due», http://arduino.cc/en/Main/ArduinoBoardDue;

3. Arduino Software, «Arduino Mega», http://arduino.cc/en/Main/arduinoBoardMega;

4. Arduino Software, «Arduino Mega 2560», http://arduino.cc/en/Main/ArduinoBoardMega2560;

5. Arduino Software, «Intel Galileo», http://arduino.cc/en/ArduinoCertified/IntelGalileo.