РадиоЛоцман - Все об электронике

Что будет дальше с Arduino?

Журнал РАДИОЛОЦМАН, октябрь 2017

Maria Guerra

Electronic Design

Во время посещения проходившей в Нью-Йорке выставки Maker Faire соучредитель Массимо Банци (Massimo Banzi) остановился возле офиса Electronic Design, чтобы рассказать о будущем Arduino

Arduino – открытая электронная платформа для быстрого прототипирования, помогающая макетировать и создавать свои проекты инженерам-электронщикам, намеревающимся превратить их в коммерческие продукты. Это также отличный инструмент для студентов или людей, не имеющих знаний в области электротехники – они могут изучать микроконтроллеры и программирование, используя наборы и библиотеки Arduino.

В настоящее время внимание Arduino в большей степени направлено на Интернет вещей (IoT). Серия плат MKR предоставляет различные варианты подключения к сети и управления питанием, что побуждает людей использовать их в качестве единого стандартного формата для проектов IoT. Платы MKR могут повысить уровень стандартизации процесса проектирования, облегчая жизнь разработчика, пытающегося продать свой конечный продукт на рынке. Многие конструкторы и изготовители, вероятно, воспользуются возможностью использовать один формат для своих проектов IoT.

В семействе Arduino уже есть плата с Wi-Fi, плата без связных интерфейсов и плата Sigfox (все с открытой документацией). Массимо Банци сообщил нам на Maker Faire, что Arduino начала производство двух новых плат: MKR WAN 1300 и MKR GSM 1400. Обе платы исключительно компактны и имеют размеры всего 67.64 × 25 мм.

Что будет дальше с Arduino?
Рисунок 1. Новая плата Arduino MKR WAN 1300 основана на микроконтроллере
Atmel SAM D21 с 32-битным ядром ARM Cortex-M0+.

MKR WAN 1300 поддерживает технологию LoRa (малопотребляющий беспроводной протокол для проектов IoT) и способна питаться от двух 1.5-вольтовых батареек типоразмеров AA или AAA, или от внешнего источника 5 В, подключенного через интерфейс USB (Рисунок 1). Плата MKR GSM 1400 с модулем 3G GSM предназначена для проектов, требующих подключения в любой точке мира (Рисунок 2). Она создавалась в партнерстве с u-blox для глобальной связи 3G, и помимо GSM модуля SARAU201, выпускаемого этой компанией, содержит микроконтроллер Atmel SAMD21.

Что будет дальше с Arduino?
Рисунок 2. Плата Arduino MKR GSM 1400 содержит микроконтроллер
Atmel SAM D21 и GSM модуль SARAU201.

Банци сказал: «Идея заключается в том, чтобы многократно использовать один и тот же формат при изготовлении широкого спектра модулей, шилдов, адаптеров, материнских плат и т. д.». В разработке у Arduino есть еще пара плат, которые скоро увидят пользователи. «С этими четырьмя платами, – добавил Банци, – мы охватываем большинство случаев использования» (Рисунок 3).

Что будет дальше с Arduino?
Рисунок 3. Слева направо показаны платы LoRa, GSM, Sigfox и Wi-Fi.

На вопрос о риске взлома устройств IoT он ответил: «Безопасность – это инвестиции. Вы вкладываете деньги в зависимости от того, насколько важно для вас то, что вы пытаетесь защитить». Он объяснил, как обеспечивается безопасность новых устройств IoT: «Каждый чип имеет собственные механизмы шифрования и аутентификации, поэтому в основном все пароли, которые будут использоваться для доступа к облачному сервису, не хранятся в коде; в действительности, они хранятся в чипе».

Для части облака Arduino использует веб-сервисы Amazon, надежно защищенные их сайтом. Когда плата хочет подключиться к сети, соединение фактически создается без видимого пароля в коде.

Банци сказал также, что Arduino сейчас разрабатывает облачную платформу. Некоторые части облачной платформы общедоступны в среде разработки Arduino через браузер, получивший название Arduino Create, который позволяет писать коды, получать доступ к содержимому, конфигурировать платы и обмениваться проектами. С помощью Arduino Create можно, используя лишь браузер, программировать все облачные модули, превращая их в устройства, программируемые дистанционно. Чтобы сделать программное обеспечение доступным для всех платформ, Arduino собирается работать совместно с сообществом своих пользователей. Те, кто не хотят использовать среду разработки Arduino, могут выбрать любой редактор и любое облако.

Кроме того, Arduino стремится расширить возможности преподавателей, сблизив обучение с практикой с помощью необходимых аппаратных и программных инструментов. Однако, по словам Банци, одной из самых больших проблем, с которыми сталкивается его компания при попытке использования Arduino в школах, является то, что очень трудно найти учителей, желающих создать класс Ардуино.

Чтобы помочь и без того занятым преподавателям, Arduino разработала программу, названную Креативные технологии для классов (Creative Technology for the Classrooms – CTC). Программа CTC рассчитана на срок от 12 до 19 недель. В ней есть раздел, посвященный обучению преподавателей правильной методике изложения материала. В программу, ориентированную на учащихся в возрасте от 13 до 17 лет, включены такие разделы, как программирование Arduino, робототехника и многое другое. После того, как ученики заканчивают работу над своим проектом, предлагается организовывать мини-мероприятия для показа и обсуждения результатов.

Что будет дальше с Arduino?
Рисунок 4. Набор CTC KIT 101 содержит более 25 практических экспериментов различной
степени сложности, рассчитанных на разный уровень подготовки.

В настоящее время эта программа доступна в Англии, Испании, Италии и Швеции. В зависимости от страны, приобретением классных комплектов у Arduino и поставкой их в школы могут заниматься либо местные компании, либо, в некоторых случаях, сами школы. Содержащихся в наборе компонентов достаточно для 20 учащихся, причем, зарегистрировавшись с помощью кода, ученики могут работать над проектами онлайн. Преподаватель также имеет свою платформу для онлайн обучения. В течение недель реализации программы преподаватели могут посещать вебинары, чтобы прояснить любые вопросы и решить любые проблемы. Содержание программы Arduino старается сделать гендерно-нейтральным, чтобы привлечь к ней внимание и мальчиков, и девочек. В США классный комплект доступен под названием CTC KIT 101 (Рисунок 4).

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: What's Next For Arduino?

Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения (только последние 20 сообщений):Полный вариант обсуждения »
  • Фирменный SDK на самом деле набор библиотек и make файлов. Устанавливается даже проще, чем Arduino IDE. Но среда - это FreeRTOS. Нужно с самого начала работать в мультизадачном режиме, что определенно не для новичков. Но хорошая новость - можно начать с Ардуино IDE - совершенно легко и привычно и с первого дня, если нужно, можно вызывать какие-то функции фирменной многозадачной среды, а их много. И постепенно переходить на RTOS, или остаться на Arduino среде, или остаться в *смешанном* режиме. Хорошее направление движения для того, кому Ардуино IDE уже тесно. Учтем также, что для Ардуино тоже имеется среда с make файлами и не надо морочится с ювенильным "графическим" IDE интерфейсом. Тогда перейти, или совместить обе SDK, еще проще и продуктивнее.
  • Вот именно, мне тоже не дали покоя :) и перешли на ESP32. Сначала ориентировались на At SAM21D, но куда тебе 16 MB, куда 256 kB флэш ... Правда, у SAM21 больше ВВ выводы. Тоже ESP wi-fi контроллер - совершенно меняет планы и развитие и HW и SW развойной команды. "Привязятся" слишком к какой-то архитектуре ? Да каждый производитель мечтает то-же самое, даже больше, чем Expressif. И TI и STM, не говоря от Microchip тоже к этому стремятся. Но не получается. Нужно иметь ввиду, что рано ли поздно придется перепортирование и соответственно соображать, когда пишут SW, но это несложная задача. Отмечать архитектурно зависимые участки кода, дальше открытые компиляторы и среды для всех есть. >>Ну, чтобы ногой дернуть, чужую готовую программку какую >>скомпилировать и залить Для этой задачи лучшее чем Ардуино IDE не придумано. Простое и направлено на получение гарантированного результата с первого раза. Новичку экономит разочарование, профессионалу - время. Как приступаю к "оживление" очередного узла, или библиотеки, или драйвера - обязательно запускаю Ардуино версию - она открытая, обозримая, простая, "цепкая" на процессор. Для ESP32 ли писана, или для Nano, все равно, запустится и на ESP32, такие результаты. Потом уже можно ее в структуре make файлов вставлять. Есть такая и для Arduino библиотек, и для Espressif SDK. Результат один - работающая программа для ESP32. У меня так сложилось - процессор ESP32, с ним работающее ядро RTOS, никуда не денешься, но оно не мешает, наоборот, сегодня невидимо, а в будущем пригодиться. Библиотеки, драйверы, *.h файлы со среде Ардуино, Espressif позаботились. make, make flash и поехали. Работает. Никаких заморочек с bootloader-om, даже загрузка "по воздуху" OTA сразу получилась. С AtSAM21 было гораздо труднее. Так что ESP32-DevKit, микроUSB кабель, Ардуино IDE и мигаем. Потом серийный, printf, пробуем АЦП, ввод/вывод, EEPROM, i2c и т.д, не первая же плата раскручиваем :) Получается. И wi-fi сразу запускается. Дальше - я предпочитаю makefile для сборки Arduino библиотек в ESP программу. Рекомендую, золотая середина. А то Ardunino IDE - примитивно, Eclipse - слишком сложно. Большое облекчение - не думать про памяти, про лимиты. Кстати немалая RAM расходуется - 300 KB для простого блинка, 700 KB, если подключите простейшее обращение к Wi-fi (TCP-IP стек прилинкуется). Но для приложной программе еще 800 KB, можно не беспокоится, не заполните до выхода следующей версии. И не сравнить ни с Mega, ни с Duo, ни с Zero. Скорость непривычная тоже покажется. 9-12 uS на АЦП (это с неспешащие Arduino библиотеки), прерывание таймера - меньше uS и т.н.
  • Все понял, спасибо. Начну с Arduino IDE, с которой я совершенно незнаком. Но с RTOS я знаком еще меньше. Поэтому с ESP32 SDK пока подожду.
  • Да, правильный выбор при такой расстановке ! Ардуино IDE совсем несложный. На самом деле это графический интерфейс в которой собран простенький редактор кода, конфигуратор устройств (плат), простенький менеджер версий и генератор make файлов. Немного меню, 4-5 кнопки. Написан на jave, все скрыто от пользователя. Свое дело делает отлично, а именно снижение "порога вхождения" в мире микропроцессоров до незаметного. Если что - пишите ! Успеха !
  • В принципе адуринки всего лишь отдельная разновидность элементной базы. Причем весьма перспективная. В то же время не исключает и совместного применения со 2стандартными" МК.
  • Напоследок все ведущие фирмы выпускают развойные платы **и** с возможностью подключать ардуино шильды. Ну так, на всякий случай. К тому же начавшие на ардуино годы назад уже взрослеют ...
  • Думаю, в ардуине от ардуины в скором времени вообще ничего не останется. Платы с ESP32 страшно далеки от платок на атмегах, а на смену ардуиновской IDE пришли новые, более продвинутые программы, тот же VSC с фреймворком platformio.
  • Согласен. Сравним ESP32 Wrover и Ардуино Nano - тот же размер, цена, среда программирования, удобство программирования и прототипирования. Тот же низкий "порог вхождения" и все программы с Nano работают на ESP32 . А все параметры на два порядка выше. На два порядка, в 100 раз - память, скорость, связность. От Ардуино останутся библиотеки, вставные платы, стиль программирования.
  • Это как сказать. Я PIC микроконтроллеры изучал разбирая чужие проекты, и там все было более или менее понятно, что на Асм, что на Си. И вроде чего-то добился. Нужно, мне, например, управление цифровым радиовещательным приемником. Беру PIC16xxx, создаю проект, инициализирую МК, настраиваю порты ввода-вывода, тактовый генератор, и поехали. I2C интерфейс настроил, и пиши-читай в чип радиоприемника что нужно, следуя описанию регистров из даташита. Дисплей какой есть под рукой прикрутил, знакогенератор запилил (если нужно), опрос кнопок-энкодеров огранизовал, и рули себе чипом поглядывая на дисплей, слушай радио. А тут (с ESP32) я с прошлого года туплю, не зная с какой стороны подступиться. Открываю файл main.cpp из чужого проекта, а там нихрена нету. Два десятка строчек непонятно для чего написанных, и все. И чего с этим делать? Там же реально ничего нет, что можно было бы посмотреть, разобрать, дабы понять как и что работает. Я только чужие прошивки научился заливать в ESP32, да проекты открывать, и дальше ничуть не продвинулся. Просто не понимаю, как и чего делать с программой в Ардуине (или в Visual Studio Code, или в Eclipse), чтобы, скажем, подключить ESP к WiFi роутеру. В найденных примерах не вижу чтобы как-то задействовались какие-либо регистры ESP, не вижу, чтобы что-то делалось с шинами (I2C, SPI, USART) при подключении к дисплею, не вижу работы с пинами при использовании энкодеров. Я там вообще ничего не вижу!!! Как эти программы-пустышки заставляют МК что-то выполнять???
  • Это сделано с целью "доказать" Вам "сложность" работы. Никакой ясной и понятной информации "вменяемый" продавец интеллектуальной собственности Вам передавать не будет. [url]http://www.gaw.ru/html.cgi/txt/app/micros/avr/index.htm[/url] - производитель микроконтроллеров на отдельных примерах подробно и понятно описывает работу блоков микропрограмм. Остаётся только научиться разрабатывать по ГОСТ-у Техническое Задание на алгоритмы работы микроконтроллера в соответствие с требованиями Заказчика.
  • Но люди как-то пишут прошивки для ESP32. Они готовыми библиотеками пользуются, прописывая необходимые действия которые должны выполняются в функциях прописанных в библиотеках? Наверное потому у меня такие непонятки, что я привык все функции (за исключением стандартных функций Си) прописывать самостоятельно.
  • Прошивки для ESP32 пишут программисты в группе и, возможно, выполняют эту работу по заказу от фирмы-производителя ESP32.
  • Типа, хавай что дают и на большее не рассчитывай? Если это действительно так, то я, пожалуй, буду мигрировать в сторону STM32... Свобода мне дороже мнимого комфорта.
  • "Свободу" даёт фирма-производитель микроконтроллеров, например, ATMEL, которая в свободном доступе подробно описывает все подробности программирования своей продукции. [url]http://www.gaw.ru/html.cgi/txt/app/micros/avr/index.htm[/url] Из-за отсутствия названной свободы "благополучно" в мусорную корзину попало несколько перспективных проектов. В любом случае продолжение и развитие разработанных проектов возможно только при самом подробном описании разработанных программ, а это оказалось невозможно по той же причине - "хавай что дают и на большее не расчитывай". Подробное изложение программ необходимо даже при самого себя, как оказалось впоследствии...
  • Ну, у меня вместо Атмела был Microchip, у которого тоже все в порядке с документацией, включая ерраты, а фирменная среда разработки MPLAB - удобнейший инструмент с массой полезных плюшек. Но, растущие запросы потребовали что-то более шустрое, что заставило выбирать между ESP32 и STM32. По началу ESP привлек встроенным WiFi и блютузом. Только пришедшее по мере изучения модуля понимание того, что я буду полностью зависеть от сторонних разработчиков библиотек, мне как то не улыбается... Отчего все больше склоняюсь к изучению STM32. На них есть полное описание, и фирменная среда разработки, плюс альтернативный софт для написания прошивок и отладки. Да, как оказалось, у ESP32 сравнительно медленный АЦП. Медленный по сравнению с АЦП микроконтроллеров STM и Microchip.
  • Да, АЦП у ESP32, так себе. Чтобы конкуренция не сказала, что не имеется :) И очень нелинейный. Но непросто совместить и wi-fi контроллер и АЦП в одном устройстве и оба на высшем уровне. Не тягатся же Espressif-у с другими производителями АЦП. Поэтому - берем лучшее из двух миров. Внешный АЦП. По SPI, по i2c. Работает же.
  • Если "открываете" main.cpp, значить не там попали. У ESP32 два совершенно разных мира, два разных стиля программирования. Первый, фирменный - это программирование под FreeOS. Там чтобы мигнуть LED-ом нужно объявить чуть ли не полдюжины тасков, мюутексов и очередей. Иначе не признают, вышвирнуть из общества :) Но есть и среда "Ардуино для ESP32". Там среда Arduino IDE, те же библиотеки, *.ino и *.pde файлы, те же setup-loop, просто и понятно. Поищите. Есть и то и другое. Поедет как-то и дальше не увидите никакой разницы в программирования то ли Arudino Nano, то ли ESP32-Wrover. Только скорость будет в разы больше и память покажется огромной. И вам wi-fi понравиться, всегда будет в ваших проектов.
  • Да, WiFi понравился. Особенно простота работы с ним посредством библиотек Arduino. Даже получилось свои html странички на сервере сделать, переделывая чужие примеры :) Хотя, еще не совсем догоняю, как передавать значения переменных между файлами веб-страниц и файлом ***.cpp для обработки. Придется, наверное, вплотную заняться JavaScript, к которому я всегда так несерьезно относился... Для работы с проектами заточенными под Arduino поставил Visual Studio Code, а в нем установил фреймворк PlatformIO. Вроде ничего так, и функционал гораздо гораздее чем у среды Ардуино. По этому моменту у меня особых вопросов не возникает. Вот с ESP IDF не все так радужно. Поставил Eclipse, интегрировал его с ESP IDF, скомпилировал и прошил из него несколько примеров из самого ESP IDF, но... Не нашел там примеров где было бы показано, как настраивается, скажем, тактовый генератор ESP32. Ну там чтобы биты в регистрах определенных выставить в нужное состояние, и, скажем, заставить осциллятор ESP работать с нужной частотой, с требуемым умножением частоты и т.д. и т.п. Или как вывести в порт ESP некоторое значение через регистры самого ESP, а не как в Ардуине, через запись вроде output26 = off или output26 = on. Что-то я не нашел в папках директории msys32 примеров, где можно было бы подсмотреть работу с регистрами ESP. Какие-то они ардуинообразные все. Возможно, не туда попал. Но, где же посмотреть другие примеры? Да, будете смеяться, но до меня только сейчас дошло, что разработчики ESP затачивали ее под среду программирования и плату Arduino. Делали совместимой по выводам, командам и т.д. Не сразу врубился, потому что не видел доселе, чтобы микроконтроллер под среду программирования разрабатывали, а не наоборот...
  • >Да, WiFi понравился Еще как. И сразу запускается. И потом что ни делаешь все проекты "сетевыми" думаются. >Особенно простота работы с ним посредством библиотек Arduino Да, там один хороший человек, кажется Грохотков, кажется русский, сделал небольшую SW прослойку и простые ардуиновские обращения перенаправляет на другое ядро, где работает TCP-IP стек. Хорошо работает, хотя очень вероятно, что после несколько месяцев уперетесь в ограничения. Wi-fi по сути асинхронное дело и нужно обрабатывать *события*. А ардуиновская среда, все знаем, как ни крути но по рождению последовательная. Не так страшно, просто делюсь как получилось. >Даже получилось свои html странички на сервере сделать, переделывая чужие примеры Да, тоже получилось. Примеры довольно. Даже нашли применение - устройство, скажем электромера, показывает свои результаты на страничке. Есть полезность. >как передавать значения переменных между файлами веб-страниц и файлом ***.cpp Там черная web магия, фирмверщику не понять :) Я прополз по примерам, по примерам. Механизм GET-POST http протокола. Есть например такие строки: webserv->on ("/upd" , HTTP_GET, outInfo ); И тогда по заявленной "странице", в случае "/upd" сервер исполнить функцию outInfo, а она уже: wificlient->printf ("%4s", spin); Многими выражениями, print пошлет http выражения браузеру, он покажет красивую страничку. Не очень нравится, но работает. >Придется, наверное, вплотную заняться JavaScript, к которому я всегда так несерьезно относился... То же самое. Пришлось. Точнее html языком. Из JavaScript - ну там несколько строк, чтобы страница стала самообновляющаяся. Друг подсказал, дописал. И пока оглянулись и в проекте уже 4 языка - "C", "C++", "html", "JavaScript" :) Вот тебе и "програмирование для начинающих" :) Добавим Json, Java в IDE среде, python в загрузчике ... >Для работы с проектами заточенными под Arduino поставил Visual Studio Code, а в нем установил фреймворк PlatformIO. Уважение ! Для меня кажется неподъемно ! Мое - makefile и все. >функционал гораздо гораздее чем у среды Ардуино Что вы, Ардуино IDE - самая простая из упрощенных сред, а VS - самая навороченная. В одном предложение даже нельзя упоминать. >Не нашел там примеров где было бы показано, как настраивается, скажем, тактовый генератор ESP32 Стиль общества ESP. До того не очень опускаются. Начинают на уровне "объявим несколько задач и мюутексов". Просто разные люди. >Ну там чтобы биты в регистрах определенных выставить в нужное состояние Можно конечно. Но не стоит втягиваться. Лучше остаться на более высоком (удаленном) уровне. То, что можно, не означает, что продуктивно, переносимо, перспективно. >Или как вывести в порт ESP некоторое значение через регистры самого ESP, а не как в Ардуине, через запись вроде output26 = off или output26 = on. Что-то я не нашел в папках директории msys32 примеров, где можно было бы подсмотреть работу с регистрами ESP. Не надо забывать, что работаете не на процессоре, а на настоящей задаче, таск, которая *емулирует* среду Ардуино, ну там setup-loop. А работая в таск дергать регистры - с давных времен это беспредел :) Нужно воспользоваться и идти в другом направлении - осваивать мультитаскинг, FreeRTOS, межзадачное взаимодействие. Тоже интересно, тоже полезно. >Да, будете смеяться, но до меня только сейчас дошло, что разработчики ESP затачивали ее под среду программирования и плату Arduino. У меня сложилось другое впечатление. В команде был опыт по другом микропроцессоре, забыл какой. Создали свою компанию. Поставили задачу встроить wi-fi в контроллере. Решили, получилось. По китайски наворочили параметры - память, скорость, ядра, благо силиций дешевеет. Датчик холла поставили в процессор !? Ну зачем им ? Ну так, наверное была свободная библиотекa VHDL, была площадь на кристалле, давайте попробуем. Игрушка. Тем временем АЦП, ну не очень удался. И только потом софтверной прослойкой емулировали среду Ардуино. Сам процессор и микромодуль не привязывали к Ардуино. Вот платы - да, по выводам, по общей идеей, по совместимости с шилдами. Ну, общие у меня рассуждения, извините, конечно хочется понять китайские коллеги, помагает в работе.
  • Не-не, у меня пока все очень скромно :) Дело в том, что малютка Visual Studio Code, это не ее старшая сестра Visual Studio (которая большая такая, и солидная) :) На самом деле установка и настройка Visual Studio Code занимает минимум времени. Во всяком случае, я это сделал в разы быстрее, чем с Eclipse, где замучился пути прописывать. Сам VSC это текстовый редактор, к которому можно подключить всякую всячину, в том числе фреймворк FlatformIO, который в свою очередь умеет работать с кодом и железом как Arduino, и с ESP тоже. Это плохо... Обработчик HTTP запросов мне пока не потянуть... Когда-то, на волне всеобщего увлечения веб-программированием пытался освоить хотя бы азы PHP, но забросил ввиду отсутствия перспектив лично для меня. Не нравилось возится с тем, результат работы чего я видел только в веб-браузере. О серверах крутящихся внутри микроконтроллеров и рулящих разного рода железяками кнопками с веб страниц в те времена еще даже не помышляли.
Полный вариант обсуждения »