HRP-N3 - серия источников питания с максимальной пиковой мощностью в 350% от MEAN WELL
РадиоЛоцман - Все об электронике

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

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

Maria Guerra

Electronic Design

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Во время посещения проходившей в Нью-Йорке выставки 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 сообщений):Полный вариант обсуждения »
  • Это как сказать. Я 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, но забросил ввиду отсутствия перспектив лично для меня. Не нравилось возится с тем, результат работы чего я видел только в веб-браузере. О серверах крутящихся внутри микроконтроллеров и рулящих разного рода железяками кнопками с веб страниц в те времена еще даже не помышляли.
  • Посмотрел тему . я работаю с pic18, pic32 . Ардуино не использую . На pic18 уже можно реализовать простой веб управления и настройки устройства. А уж на pic32 получается очень достойный веб со скриптами , красивым оформлением , и что главное грузится все за пару секунд после подачи питания. А по поводу преимуществ Wi-Fi перед проводным интернетом , так их практически нет. Есть только одна ниша для Wi-Fi - это переносные устройства с батарейным питанием БЕЗ подключения внешних устройств по каким либо ПРОВОДАМ. Как только появляются внешние провода или блок питания, все преимущества Wi-Fi сразу проходят. Поэтому ESP32 хороша сама по себе , сама платка на которой стоит какойто датчик с батарейным питанием . Дальше все - ее использование не рентабельно . Похожие задачи можно решить другими способами на тех же мк pic18, pic32 с более красивым если надо веб и большими возможностями .
  • Если отбросить в сторону рентабельность, но посмотреть на универсальность и "большие возможности", то одноплатники из года в год становятся всё доступнее. Raspberry Pi 4, Orange Pi, свежий Nvidia Jetson Nano и т.д. И почти всё open source.
  • Я бы сказал , что одноплатники отходят в сторону РС, но возможности по управлению железом , особенно нестандартным , не имеющих стандартных высокоскоростных интерфейсов снижается. Так что микроконтроллеры общего назначения всегда будут в почете и занимать свою нишу.
  • Согласен. Но вот сейчас работаю с STM32F407, причем железо проектировал не я. В девайсах несколько физических сетевых подключений, не считая пары-тройки I2C, CAN и т.п. Плюс внешняя память, потому что и графика иногда нужна. И многое другое. И вот думается мне, что если бы разработчики этого железа посмотрели в сторону одноплатников, то многое решалось бы значительно проще, без унылого допиливания связок RTOS -> низкоуровневые драйвера, IMHO. А так, люблю Atmega. Какие-то они "ламповые", если Вы меня понимаете. С ПИКами такой связи как-то не наладилось, хоть и работал некогда с PIC12, 18, 24. Но все это субъективно, конечно. Кому-то нужно низкое энергопотребление, кому-то обилие аппаратных интерфейсов, кому-то просто лень осваивать новую архитектуру.
  • HTTP сервер на PIC32 делаю без RTOS. Аналогично и к PICам отношусь. По мне приятней иметь дело с железом , схемотехникой и низкоуровневым программированием. Сама себе конструктор, схемотехник , разводка плат и программирование. нравится сделать девайс от начала до конца.
  • У PICов среда разработки PIC ccs какая то замароченная , может другие понятнее...?
  • По мне другие не менее замороченные... Это кому как ... А на PIC32 есть очень классные девайсы с веб интерфейсом и облачным сервисом , например вот эта линейка продукции [url]http://cvg.ru/tovar_list/diga/[/url]
  • Что будет дальше с Arduino? Вспомнил известного юмориста: "Что будет , если что нибудь будет? Сначало будет очередь , а потом снова ничего не будет"
Полный вариант обсуждения »