8-900-374-94-44
[email protected]
Slide Image
Меню

Arduino thread: Как выполнять параллельные задачи (Threads) в программе для Arduino

Совместимая с Arduino плата ASME TIGER поддерживает Thread на базе NXP Kinetis KW41Z WiSoC — CNXSoft- новости Android-приставок и встраиваемых систем

Новая плата Arrow ASME Tiger является последним дополнением к линейке ASME, ориентированной на аппаратное прототипирование IoT. На плате установлены два микроконтроллера для разных типов разработки в зависимости от потребностей операторов. Плата готова к работе с Thread и WiFi, а также Tiger совместим с Arduino.

MCU следующие:

      • Микроконтроллер ATSAMD21J18A-64 со сверхнизким энергопотреблением, использующий 32-разрядный процессор ARM Cortex-M0 +.
      • WiSoC — это KW41Z, сверхнизкое энергопотребление, высокоинтегрированное одночиповое устройство, которое обеспечивает низкое энергопотребление Bluetooth® v4.2 и IEEE® 802.15.4 RF для портативных встраиваемых систем с чрезвычайно низким энергопотреблением.

Рабочий блок предназначен для приложений с очень низким энергопотреблением.  Встроенный балун снижает стоимость системы и площадь платы, а датчики многочисленны и легко доступны. Вы найдете руководство пользователя (PDF), а также загрузчик и пример кода на Github.

Технические характеристики для SMART SAMD21

Объем памяти
  • 256 КБ встроенной в систему самопрограммируемой Flash-памяти
  • 8KB Flash-памяти — раздел для чтения и записи
  • Основная память 32KB SRAM
  • 8KB SRAM Память с низким энергопотреблением

Тактовая частота
  • Кварцевый генератор 32,768 кГц (XOSC32K)

Соответствие Arduino
  • Цифровые выводы ввода/вывода: 20
  • PWM контакты: все, кроме 2 и 7
  • USART: 2 (USB и TTL Digital)
  • Выводы аналогового входа: 6, 12-битный ЦАП
  • Выводы аналогового выхода: 1, 10-битный ЦАП
  • Внешние прерывания: все контакты, кроме контакта 4

Технические характеристики для KW41Z WiSoC

KW41Z — это микроконтроллер NXP ARM Cortex-M0 +, одночиповое устройство со сверхнизким энергопотреблением, обеспечивающее низкое энергопотребление Bluetooth (BLE) v4. 2 и IEEE 802.15.4 RF для легкой переносимости и встраиваемых систем с чрезвычайно низким энергопотреблением.

KW41Z включает приемопередатчик 2,4 ГГц, который полностью поддерживает модуляции FSK/GFSK и OQPSK, с процессором ARM Cortex-M0 +, флэш-памятью объемом до 512 КБ, 128 КБ SRAM, пакетным процессором 802.15.4.Безопасность периферийных устройств и оборудования оптимизирована для соответствии с требованиями приложений-прототипов IoT, а также других приложений.

Блок-схема

Плата крепкая и легко монтируется, компоновка подходит для разработки прототипа, порты и входы/выходы размещены на внешних краях для легкого доступа. ASME Tiger имеет множество применений, и это дополнение может быть значительно расширено в отрасли IoT. Если вам нужна дополнительная информация, ее можно найти на странице продукта на веб-сайте Midatronics , а также на странице Arrow, если вы собираетесь приобрести плату.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software. com.

Оригинал статьи вы можете прочитать здесь.

Программирование

— Многопоточность с Arduino

спросил

Изменено 6 лет, 2 месяца назад

Просмотрено 5к раз

Ну вот я только начал изучать концепцию многопоточности с C++ и сразу в голову пришла куча вопросов о возможности использования многопоточности с микроконтроллерами вообще и Arduino в частности.

Итак, можно ли использовать многопоточность на любом типе плат Arduino?

  • программирование
  • С++

2

В Cosa вы можете найти следующую поддержку параллельного программирования:

  1. События, подпрограммы обслуживания прерывания интерфейса
  2. Задания, отложенные, периодические или тревожные функции с нами, таймеры уровня мс и секунд (сторожевой таймер, RTT или RTC).
  3. FSM, функция состояния объекта
  4. ProtoThreads, указатель состояния объекта
  5. Потоки, семафоры и т. д., несколько стеков
  6. UML Capsules and Connectors, программирование на основе зависимостей

Существует множество примеров их использования. Хорошей отправной точкой являются наброски Blink. Существует даже многопоточный пример Blink с потоком, который включает/выключает светодиод, и потоком контроллера, который периодически меняет период мигания. Размер стека потока составляет всего 64 байта, и он работает даже на ATtiny.

Со всеми внутренними аппаратными модулями AVR (такими как SPI, TWI, UART и т. д.) существует множество возможностей для параллелизма.

Также доступна библиотека планировщика для ядра Arduino. Это порт Cosa Threads. Пожалуйста, смотрите github для получения дополнительной информации.

Ура!

2

Самый быстрый ответ — «может быть» — это зависит от того, что вы подразумеваете под «Arduino» и что вы подразумеваете под «потоком».

Ответ, вероятно, будет отличаться для Arduino на базе AVR (Uno и др.) по сравнению с Arduino на базе ARM (Due и др.) — я ожидаю, что аппаратная поддержка «настоящих» потоков на процессорах ARM будет намного лучше. . Еще один вопрос, на который вы хотели бы ответить: «Почему потоки?» Вы хотите, чтобы абстракция помогла вам организовать ваш код? Или вам действительно нужны «настоящие» темы?

До того, как появилась поддержка аппаратных потоков (например, в середине 80-х), существовали реализации пользовательских потоков, и вполне возможно, что их можно будет адаптировать для работы даже на AVR. Я ожидал, что это будет что-то вроде проекта.

Существует пакет потоков под названием Protothreads, который может быть интересен. В описании говорится: «Протопотоки — это чрезвычайно легкие бесстебельные потоки, разработанные для систем с жестким ограничением памяти». Я нашел еще один вопрос о простом использовании Protothreads, поэтому кажется, что вы можете найти других пользователей пакета.

Вы также можете найти полезную информацию в этом вопросе Stack Exchange о потоках. Быстрый поиск «потоки пользователей C» нашел эту реализацию на первой странице – и я уверен, что их гораздо больше.

Поиск по теме «Arduino threads» нашел еще несколько интересных ссылок:

  • Как создать несколько запущенных потоков?
  • Пакет Arduino Thread на GitHub
  • http://www.kwartzlab.ca/2010/09/arduino-multi-threading-librar/
  • http://forums.trossenrobotics.com/showthread.php?5923-многопоточность-(параллельные циклы)-на-Arduino

Если вам нужны только потоки, небольшая и недорогая плата и контакты ввода-вывода, возможно, стоит подумать о Raspberry Pi — в Linux есть поддержка потоков.

3

Есть один Arduino-подобный продукт, который, безусловно, может поддерживать многопоточность, поскольку он многоядерный: Shield Buddy TC275.

Итак, в основном у вас есть три функции setup() и три loop() функций. Настоящая многопоточность.

4

Я использую Atomthreads на Atmega128, он очень легкий с минимальными накладными расходами. Есть планировщик задач, мьютекс, семафоры и очередь. Код является переносимым, но может потребоваться некоторая настройка для использования с Arduino IDE (я использую Atmel Studio). Я в основном использую планировщик задач, никогда не было проблем. Только что проверил, разработка еще активна.

1

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

.

Возможность подключения к Интернету вещей

  • Дом
  • Учебники
  • Возможность подключения к Интернету вещей

≡ Страниц

Авторы: РБЕРЛИА

Избранное Любимый 26

Thread — это открытый стандарт для надежной, экономичной, маломощной беспроводной связи D2D (устройство-устройство). Он был разработан специально для подключенных домашних приложений.

Возникла в 2014 году, когда была создана Thread Group. Теперь у него есть крупные организации, такие как Google, Samsung, Qualcomm и ARM, для проектирования и разработки протокола Thread.

Источник: thread.org

Nest использует сеть Thread для своих продуктов Thermostat и Nest Cam.

Thread разработан с учетом требований домашней автоматизации — чтобы устройства можно было легко настраивать и подключать, иметь низкое энергопотребление для увеличения срока службы батареи и быть в безопасности!

Основан на стандартной архитектуре 802.15.4 (6loWPAN). Самое приятное в Nest то, что это открытый протокол со встроенным интернет-протоколом версии 6 (IPv6).0005

Устройства в потоке

Протокол потока определяет три основных типа устройств в сети:

  • Пограничные маршрутизаторы
  • Маршрутизаторы и конечные устройства, соответствующие требованиям маршрутизатора
  • Конечные устройства Sleepy

Источник: Основы стека потоков, 2015 г. , Wi-Fi, Ethernet). Если один граничный маршрутизатор выходит из строя, другой маршрутизатор в сети может взять на себя роль граничного маршрутизатора, обеспечивая надежность протокола Thread.

Маршрутизаторы

Маршрутизаторы, как следует из названия, предоставляют услуги маршрутизации для сетевых устройств. Они используются при вводе в эксплуатацию новых устройств в сети. Как правило, маршрутизаторы всегда активны, но их можно понизить до статуса REED (конечные устройства, соответствующие требованиям маршрутизатора). Эти устройства используются не для маршрутизации или передачи данных в сети Thread, а в качестве резервной конечной точки, которую можно вызвать, чтобы при необходимости взять на себя роль маршрутизатора.

Sleepy End Devices

Это конечные точки сети Thread, также называемые хост-устройствами. Хост-устройства — это индивидуальное функциональное оборудование с IP-адресом, такое как термостаты, камеры видеонаблюдения, обогреватели и т. д. Эти устройства также можно назвать сонными детьми или сонными узлами. Маршрутизатор, подключенный напрямую к спящему устройству, называется родительским. Спящие устройства (конечные точки) проводят большую часть времени в спящем режиме и просыпаются только для передачи данных. Они общаются только через родительское устройство (например, термостат Nest — это сонливое оконечное устройство).

Типичный цикл отправки для устройства может быть следующим:
  • Выход из спящего режима.
  • Выполните любой необходимый запуск и инициализацию радио.
  • Перейдите в режим приема и проверьте, разрешена ли передача.
  • Перейти в режим передачи.
  • Передача данных.
  • Получите соответствующее подтверждение.
  • Сон.

В отличие от WiFi, в котором используется режим инфраструктуры, Thread использует специальный режим сети.

Преимущества:
  • На основе IP, что упрощает подключение к другим сетям на базе IP. Поскольку он основан на 802.15.4, существующие устройства, такие как ZigBee и 6loWPAN, могут легко перейти на Thread.
  • Архитектура не имеет единой точки отказа, поскольку она способна адаптироваться к условиям сети. Он поддерживает полную топологию сети на основе ячеистой сети.
  • Работа с низким энергопотреблением, так как предлагает спящие устройства
  • Безопасность

Примечание.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *