Site Loader

Содержание

Плата расширения для Arduino с защищенными 24-вольтовыми ключами Infineon семейства PROFET

27 мая

Компания Infineon представила плату расширения для Arduino c 24-вольтовыми ключами PROFET™+24V (BTT6xxx).

Данное семейство ключей верхнего плеча с защитами предназначено для управления резистивными, емкостными и индуктивными нагрузками (лампы автомобилей, реле, двигатели, клапаны, светодиоды, конденсаторы). Использование платы расширения для Arduino с 24-вольтными защищенными ключами ускоряет создание прототипов и позволяет с минимальными затратами проводить тестирование совместимых по распиновке ключей PROFET™+24V.

На плате расширения установлены три защищенных силовых MOSFET-ключа из линейки PROFET™+24V: два BTT6030-2EKA и один BTT6020-1EKA, которыми можно управлять с платы Arduino (Uno, Duo) либо с помощью оценочных плат на базе ARM-микроконтроллеров Infineon XMC™, совместимых по форм-фактору с Arduino.

Управление силовыми ключами осуществляется через входные контакты INx. Вывод DEN (Diagnosis ENable) разрешает измерение тока нагрузки, значение которого можно считывать на выводе IS. Для двухканальных ключей измеряемый канал выбирается выводом DSEL (Diagnosis SELect). Для считывания измеренного тока вывод IS каждого ключа подключается к отдельному каналу АЦП микроконтроллера.

К плате расширения можно подключить не более пяти нагрузок 24 В с номинальными токами от 4 до 5 А и осуществлять управление сигналами постоянного напряжения или с помощью ШИМ. Номинальное Uвх. составляет от 8 до 36 В (максимальный диапазон – от 5 до 48 В). Величина Iномин. ограничена печатной платой и составляет до 5 А на канал, при этом максимальный ток для BTT6020-1EKA может достигать 7 А.

Интегрированные силовые ключи верхнего плеча BTT6030-2EKA и BTT6020-1EKA – часть линейки PROFET™+24V. Эти изделия построены на базе N-канального вертикального силового MOSFET с поддержкой Charge Pump и поставляются в корпусе DSO-14. Установленный на плате IPD50P04P4L-11 предназначен для блокировки обратного тока.

Схема подключения платы расширения к микроконтроллерной плате

Ключевые особенности:

  • Совместимость с платами Arduino и оценочными микроконтроллерными платами Infineon XMC™;
  • Возможность ШИМ до 400 Гц;
  • Поддержка логических уровней на входах;
  • Возможность измерения тока нагрузки для диагностики;
  • Защита нагрузки и схемы управления от перегрева, перегрузки по току, от статического разряда.

Главные преимущества:

  • Быстрое и бюджетное создание схем управления нагрузкой 24 В;
  • Возможность измерения тока для диагностики нагрузки;
  • Защелкивание при отключении по перегреву.

Применения:

  • Подходит для автомобильного и промышленного применения;
  • Может использоваться для всех типов резистивных, индуктивных и емкостных нагрузок;
  • Подходит для нагрузок с большими и малыми токами: лампы, клапаны, реле, светодиоды;
  • Заменяет электромеханические реле, предохранители и дискретные схемы.

Основные параметры:

  • Соответствует RoHS и требованиям AEC;
  • Диапазон рабочего напряжения от 5 до 48 В;
  • Низкое потребление в режиме ожидания: <0,5 мкА;
  • Защита от статического разряда и оптимизированная ЭМС;
  • Поддержка логических уровней 3,3 и 5 В на входах;
  • Улучшенный отвод тепла корпуса DSO.

Функции диагностики:

  • Пропорциональное измерение тока нагрузки;
  • Обнаружение отключения нагрузки при открытии и закрытии;
  • Обнаружение перегрева;
  • Предупредительный сигнал в случае короткого замыкания;
  • Повышенная точность коэффициента измерения тока k
    ILIS
    с возможностью калибровки.

Функции защиты:

  • Выдерживает броски напряжения до 65 В;
  • Защита от тока короткого замыкания;
  • Защелкивание при перегреве;
  • Улучшенная работа при коротком замыкании;
  • Защита от потери заземления/питания;
  • Стабильность работы при пониженном напряжении;
  • Защита от перенапряжения.

Таблица. 24-вольтовые ключи семейства PROFET™+24V

Наименование RDS(on) (тип.), мОм Номинальный ток нагрузки, A IL (SC) (тип.), A Количество каналов Корпус
Исполнение для автопрома
BTT6010-1EKA 10 9 115 1 DSO-14
BTT6020-1EKA 20 7 74 1 DSO-14
BTT6030-1EKA 30 6 70 1 DSO-14
BTT6030-2EKA 30 2х4 70 2 DSO-14
BTT6050-1EKA 50 4,5 47 1 DSO-14
BTT6050-2EKA 50 2х3 47 2 DSO-14
BTT6100-2EKA 100 2х2,2 25 2 DSO-14
BTT6200-1EJA 200 1,5
11
1 DSO-8
BTT6200-4EMA 200 4х1 11 4 SSOP-24
Специальные устройства PROFET™+24V со сниженным током ограничения (основное применение: коммутационные кабели длиной > 20 м)
BTT6010-1EKB 10 10 86 1 DSO-14
BTT6030-2EKB 30 2х4 60 2 DSO-14
BTF6070-2EKV 70 2х2,3 11 2 DSO-14

•••

Наши информационные каналы

Arduino и совместимые языки программирования | GeekBrains

Для тех, кто не разделяет железо и код.

https://gbcdn.mrgcdn.ru/uploads/post/1017/og_cover_image/d546216a36e4dcd612076245e1060f61

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

Что такое Arduino

Если называть вещи своими именами, то Arduino — это конструктор для тех, кому надоело созидать бесполезные образы и захотелось хоть немного наделить их жизнью. В самом простейшем случае Arduino — печатная плата, на которой расположен контроллер, кварцевый генератор, АЦП/ЦАП, несколько разъёмов, диодов и кнопок. Остальное — дело рук хозяина: хотите — создавайте робота, хотите — программно-аппаратную платформу для «умного» дома, ну или забудьте про практическую пользу и развлекайтесь.

Конечно, в зависимости от того. насколько далеко вы хотите зайти в своих экспериментах, хотите ли вы получать фильтрованное удовольствие или сделать из Arduino платформу для собственного заработка, вам придётся совершенствоваться и в проектировании железа, и в изучении языков программирования. О последнем сегодня чуть подробнее.

Arduino достаточно ограниченная платформа в плане возможностей программирования, особенно в сравнении с Raspberry Pi. В силу того, что порог входа неприлично низкий (базовый Tutorial занимает 3 листа формата A4), то рассчитывать на изобилие языков без подключения дополнительных модулей не приходится. За основу здесь принят C/C++, но с использованием различных IDE и библиотек вы получите доступ к оперированию Python, C#, Go, а также таким детским развлечениям, как Snap! и ArduBlock. О том как, когда и кому их использовать, поговорим далее.

C/C++

Базовый язык платформы Arduino, который с некоторыми доработками и упрощениями используется в стандартной программной оболочке. Найти все доступные команды «для новичка» можно здесь, но никто не мешает вам воспользоваться исходными возможностями языка C++, никаких надстроек не потребуетс. Если же есть желание поиграть с «чистым» C, то к вашим услугам программа WinAVR, предназначенная, как следует из названия, для взаимодействия ОС Windows и МК серии AVR, которые и используются на Arduino. Более подробное руководство можете прочитать вот здесь.

Использование C/C++ рекомендуется тем, кто уже имеет представление о программировании, выучил в школе пару языков и хочет создать на Arduino что-то большее, чем светодиодную «мигалку» или простую машинку.

Ardublock

Временно отойдем от языков взрослых к любимому ребятней языку Scratch, а вернее к его адаптации — Ardublock. Здесь всё тоже самое, но с адаптацией к вашей платформе: цветные блоки, конструктор, русские названия, простейшая логика. Такой вариант здорово подойдет даже тем, кто с программированием не знаком вовсе. Подобно тому, как в языке Logo вы можете перемещать виртуальную черепашку по виртуальной плоскости, здесь с помощью нехитрых операций вы можете заинтересовать ребенка реальной интерпретацией его программных действий.

Да, кстати, для использования необходимо на вашу стандартную среду Arduino IDE установить плагин. Последние версии лучше не хватать, они довольно сложные, для начала подойдет датированная концом 2013 года. Для установки скачанный файл переименовываем в «ardublock-all» и запихиваем в папку «Мои документы/Arduino/tools/ArduBlockTool/tool». Если её не существует — создаем. Если что-то не поняли, то вот здесь более подробно.

Snap!

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

Для того, чтобы использовать этот язык, придется сходить на сайт snap4arduino.org и скачать необходимые компоненты для вашей ОС. Инструкции по установке, использованию и видеопримеры ищите здесь же.

Рекомендуется младшей возрастной группе, тем, кто учил программирование так давно, что уже ничего не помнит и тем, кто хочет завлечь своего ребенка в IT через Scratch и Snap!.

Python

Формально программировать на Arduino вы можете используя хоть язык Piet, просто потому что при должном упорстве вы скомпилируете в машинный код что угодно. Но в силу того, что Python — один из наиболее популярных языков с практически оптимальным сочетанием сложность\возможности, то обойти стороной его применяемость в Arduino было бы нелепо. Начать изучение Python вы можете с нашего бесплатного интенсива «Основы языка Python».

Итак, для этого вам понадобится библиотеки PySerial (ранее, возможно, вы использовали её для общения с портами компьютера) и vPython. О том, как правильно всё настроить и заставить в конечном счёте работать, можете соответственно почитать здесь и здесь.

Go и другие языки.

Подобно тому, как Arduino взаимодействует с Python через библиотеку PySerial, он может взаимодействовать и с Go, и c Java, и с HTML, и с чем только захотите. Arduino — достаточно популярная платформа, чтобы такой банальный вопрос, как выбор удобного языка, не остановил очередного исследователя. Единственное, что требуется от владельца этой маленькой платы — задумать что-нибудь удивительно интересное, а удобный инструмент неизбежно найдётся.

Arduino: с чего начать? | Класс робототехники

У всех новичков, впервые взявших в руки Arduino, часто возникают одни и те же вопросы: «Как загрузить программу на Arduino? Нужен ли для этого программатор? Что такое Arduino IDE?». На этом небольшом уроке мы разберемся с этими вопросами раз и навсегда.

Начнем со второго вопроса, ответ на который прост: никакого так называемого программатора не нужно. Контроллер Arduino отличается от «голых» микроконтроллеров тем, что он адаптирован для загрузки программ через обычный USB-порт компьютера! Исключение составляют версии Arduino Pro Mini, где требуется специальное внешнее устройство USB-UART мост, которое, впрочем, всё так же просто подключается по USB.

1. Что такое Arduino IDE?

Arduino IDE — это приложение, которое позволяет составлять программы в удобном текстовом редакторе, компилировать их в машинный код, и загружать на все версии Arduino. Приложение является полностью бесплатным, а скачать его можно на официальном сайте сообщества Arduino:

https://www.arduino.cc/en/Main/Software

Arduino IDE можно установить на любую операционную систему: Windows, Linux, Mac OS X. Для скачивания нужной версии необходимо выбрать её в правой колонке, и на следующей форме нажать кнопку «JUST DOWNLOAD».

2. Установка Arduino IDE

После того как дистрибутив программы успешно загружен с сайта, попробуем установить Arduino IDE на компьютер. Рассмотрим установку на примере версии для Windows. Как и любое другое приложение, установка состоит из нескольких шагов. Первый шаг — лицензионное соглашение. Жмем «I Agree».

Второй шаг — выбор опций установки. Если вы устанавливаете Arduino IDE первый раз, ставим все галки и жмем «Next».

Следующий шаг — выбор целевой папки. Здесь также можно все оставить по-умолчанию.

Когда скопируются все основные компоненты Arduino IDE, инсталлятор предложит вам установить драйвера для Arduino. Соглашаемся.

В общем то, сразу после установки драйверов, инсталлятор сообщит о завершении процедуры установки Arduino IDE. Можно приступать к изучению возможностей редактора, и пробовать загружать программы на контроллер.

3. Интерфейс Arduino IDE

Окно редактора можно условно разделить на 6 блоков, как на картинке:

Первый блок — это меню программы. Через меню можно получить доступ ко всем функциям Arduino IDE.

Второй блок — панель иконок, на которой размещены часто используемые функции. Слева направо:

  • галочка — проверить программу на ошибки;
  • стрелочкой вправо — загрузить программу на Arduino;
  • страничка — создать новую программу;
  • стрелочка вверх — открыть ранее сохраненную программу;
  • стрелочка вниз — сохранить программу на компьютер;
  • лупа — открыть окно монитора порта.

Третий блок — файлы проекта. Каждая вкладка означает один из файлов проекта. Самые простые программы могут состоять только из одного файла.

Четвертый блок — поле текстового редактора. Здесь составляется код программы.

Пятый блок — поле для отображения служебных сообщений. Например, уведомлений об успешной загрузке программы.

Наконец, шестой блок — окно отображения информации о ходе компиляции и об ошибках в программе.

4. Загрузка первой программы

Попробуем открыть готовый пример программы, которая заставит Arduino мигать светодиодом. Для этого выберем в меню:

Файл/ Примеры/ Basics.01/ Blink

В результате откроется еще одна копия редактора, примерно с такой программой:

Следующее, что необходимо сделать — подключить Arduino через свободный USB порт. Обычно, после подключения новой Arduino к компьютеру, должно пройти несколько минут, чтобы устройство автоматически определилось. Должно появиться уведомление об успешной установке устройства.

Затем  настроим правильный тип платы в Arduino IDE. Для этого в меню выбираем пункт:

Инструменты/ Плата/ …

Появится список разных типов Arduino, из которого мы выбираем нужный. Этот урок посвящен Arduino Uno, так что выбираем этот вариант. Кстати, в новых версиях Arduino IDE сменилось названия для классической Arduino Uno, теперь оно выглядит так: Arduino/Genuino Uno

Теперь выбираем порт. Каждый раз, когда вы подключаете новую Arduino к компьютеру, Windows выделяет ей COM-порт с отдельным номером. Для того, чтобы выбрать правильный порт откроем пункт меню:

Инструменты/ Порт/ …

Если вы новичок, и не практикуете подключение периферийных устройств через виртуальный COM-порт, то в этом списке появится всего одна запись. Это может быть «COM1» или «COM3», или любой другой номер.

Последний шаг — загружаем программу на Arduino. Для этого жмем иконку со стрелочкой вправо. По завершению этой процедуры, в строке сообщения появится надпись: «Загрузка завершена» (на более ранних версиях — «Вгрузили»).

Заключение

После того как мы загрузили программу на Arduino, она начинает свое независимое существование. Каждый раз, когда мы подаем питание на наш контроллер, эта программа будет автоматически запускаться с самого начала.

Теперь, когда стало понятно как загружать программы, можно приступить к составлению своей первой программы. О том, как это сделать, читаем урок: «Управление светодиодом«.

Вконтакте

Facebook

Twitter

KIT | Электронные конструкторы и наборы, контроллеры, модули и датчики

ЛАБОРАТОРИЯ ЭЛЕКТРОНИКИ И ПРОГРАММИРОВАНИЯ. 77 ПРОЕКТОВ ДЛЯ ARDUINO

Образовательный конструктор с методическим пособием

● Конструктор ЛАБОРАТОРИЯ ЭЛЕКТРОНИКИ И ПРОГРАММИРОВАНИЯ выполнен в форме научно-исследовательского стенда. Все элементы конструктора закреплены на единой платформе.
● В качестве «мозга» конструктора используется модернизированная плата Arduino UNO R3 (с возможностью беспроводной передачи данных на базе Wi-Fi модуля ESP8266).
● В конструкторе представлено 77 экспериментов — ценнейшего теоретического и практического материала для обучения. Каждый эксперимент подразумевает поэтапное изучение программирования путем создания проектов на контроллере, совместимом со средой Arduino IDE. В рамках нашей программы обучения за одно занятие можно освоить и собрать полноценный проект, например, игру “Змейка”, домашнюю метеостанцию, web-опросник, бегущую строку, электронные часы с будильником, FM радио, электронный компас и многое другое!
● Для того, чтобы каждому учащемуся можно было доступно и понятно объяснить новый материал, автор использовал современные методики обучения. Тем не менее, преподаватель может на своё усмотрение отобрать проекты для своего учебного курса. Обо всём этом подробнее …

ИНТЕРНЕТ ВЕЩЕЙ ДЛЯ УМНОГО ДОМА
Элементы создания и отладки проектов по автоматизации вашего дома

 

Создание Умного дома предполагает наличие умных устройств. Но как устройство может стать «умным»?
● Первый вариант –  за счет, изменения своей конструкции: эта конструкция может быть таковой, что поведение системы может выглядеть разумным.
● Второй вариант –  за счет «интеллектуализации» (оснащения системы устройствами сбора информации, ее обработки и принятий решений). Такой подход позволяет обеспечить достаточно сложное и «разумное» поведение гораздо более простыми способами, чем за счет создания соответствующей конструкции.
● Наконец, третий вариант — поведение системы становится «разумным» за счет того, что она взаимодействует с другими системами. 
Технология IoT (Интернет вещей) как раз и предоставляет возможность каждому элементу умного дома (вещи) и всему Умному дому выйти  в пространство Интернет паутины и обмениваться информацией с другими вещами и системами. Чем же привлекателен третий вариант?  Обо всём этом подробнее …
ОТ ПРОСТОГО К СЛОЖНОМУ. УРОКИ ARDUINO

 

Урок 16:  Графический индикатор. Подключение дисплея Nokia 5110

В этом эксперименте мы рассмотрим работу графического дисплея Nokia 5110, который можно использовать в проектах Arduino для вывода графической информации.  Подробнее …

Урок 19:  Шаговый двигатель 4-фазный, с управлением на ULN2003 (L293)

В этом эксперименте мы рассмотрим подключение к Arduino шагового двигателя. Шаговые двигатели нашли широкое применение в области, где требуется высокая точность перемещений или скорости.  Подробнее …

 Урок 21:  Датчик влажности и температуры DHT11

В этом эксперименте мы рассмотрим рассмотрим работу датчика для измерения относительной влажности воздуха и температуры DHT11 и создадим проект вывода показаний датчика на экран  LCD1602. Подробнее …

Урок 23:  Ультразвуковой датчик расстояния HC-SR04. Принцип работы, подключение, пример

В этом эксперименте мы рассмотрим работу ультразвукового датчика для измерения расстояния и создадим проект вывода показаний датчика на экран ЖКИ Wh2602.  Подробнее …

 
Урок 28:  Считыватель RFID на примере RC522. Принцип работы, подключение

В этом эксперименте мы покажем, как плата Arduino получает доступ к данным RFID-карт и брелоков Mifare с помощью RFID-считывателя RC522C. Подробнее …

Урок 33:  Модуль GPS. Принцип работы, подключение, примеры

А теперь экспериментируем с модулем GPS-приемника VK16E, позволяющего определять наше местоположение с помощью глобальной системы GPS, и подключение данного приемника к плате Arduino. Подробнее …
 

10 датчиков и модулей для Arduino с Aliexpress. Предназначение и примеры использования

Всех приветствую! Хочу представить подборку модулей, с помощью которых можно придумать кучу различных устройств, от банального дальномера, автономных GPS-трекеров или вентилятора с авто поворотом к человеку до простеньких систем безопасности. Особенно подборка будет интересна студентам технических ВУЗов, поскольку датчиков на ардуино неизмеримое количество.  Иногда для выполнения курсовых/дипломных работ необходимо сделать автономного робота, который выполнял бы определенные требования, такие как: объезд препятствия, создание прототипа умного дома, теплицы, и так далее. Чем хороша Arduino — это маленькая плата с простым языком программирования, которая позволяет при установке самых простых и дешевых модулей реализовать реальную систему.

4-х разрядный семисегментный индикатор

Данный модуль необходим для вывода необходимой информации в виде цифр, букв или слов до 4-х букв. Как пример использования можно представить вывод дальности до объекта (при использовании ультразвукового датчика), скорости движения робота, угол поворота и тд.   

LCD дисплей 1602

Полноценный дисплей, который может выводить 16 символов на 1 строку и имеет 2 строки. Крайне простая в использовании, из минусов — занимается шина i2c, которая может пригодится для подключения других модулей. Доступны вариации синего и зеленого цвета дисплея, и белого или темного цветов текста.

Потенциометр

Модуль, благодаря которому есть возможность задать и изменять величину переменной. С помощью изменения положения угла поворота потенциометра можно управлять яркостью светодиодов, цветом светодиода (при использовании RGB светодиодов) или углом поворота сервопривода, что может смоделировать поведения рулевых поверхностей самолета.

Сервоприводы

Сервоприводы служат для поворота механического привода на заданный угол с заданной скоростью поворота. Крайне полезный модуль, для моделирования реальных моделей. Как пример, как писал выше, можно смоделировать модель самолета с управляемыми рулевыми поверхностями или угол поворота машинки. Сервоприводы отличаются материалами и усилием, которые могут выдержать. SG90 — самый дешевый сервопривод, имеет пластиковые шестерни, которые спустя непродолжительного времени приходят вне годность. MG90S — аналогичный прошлому, но имеет металлические шестерни, из-за чего будет работать дольше.

Ультразвуковой датчик приближения

Ультразвуковой датчик приближения (также известный как сонар), который используется как для обнаружения препятствия или объекта, а также расстояние до объекта путем посылания и принятия ультразвукового сигнала, измерив время и преобразовав его в расстояние.

Модуль акселерометра и гироскопа MPU 6050

Модуль в котором находятся датчики акселерометра, гироскопа и термометра. Служит для измерения углового ускорения и угловой скорости, которые можно преобразить в угол. Данный модуль служит для определения объекта в пространстве. Как пример использования можно привести реализацию простенького стедикама или стабилизирующего робота, который даст навыки в усвоении типичных законов систем управления.

Радио модуль NRF24L01

Крайне полезный модуль, способный передавать значения или управлять ардуино удаленно (до 100 метров при использовании данного модуля с внешней антенной, или около 10 метров без внешней антенны). Как пример использования могу привести удаленное управления созданным колесным роботом или самолетом.

Модуль двухосевого Джойстика

Модуль, с которым можно полноценно сделать рабочий джойстик для управления как колесным роботом или самолетом, так и при использовании ардуино Леонардо — геймпад для компьютера. Из минусов могу отметить то, что довольно невысокая точность стиков и присутствуют мертвые зоны

Модуль термометра и влажности

Модуль предназначен для измерения температуры и влажности с высокой точность (до 5%), с помощью которой полноценно можно реализовать теплицу или систему умного дома или проектов, где необходимо измерение как температуры, так и влажности. Модуль очень прост в использовании, поскольку имеет в себе полноценный АЦП, который преобразует аналоговый сигнал датчиков в цифровой, для «простого» восприятия контроллера

Датчик уровня шума

Датчик, которой используется для обнаружения уровня звука/шума. Имеется встроенный потенциометр, с помощью которого настраивается чувствительность микрофона. Применяют обычно в тех случаях, когда необходимо определить громкий звук: стук, хлопок, крик, после чего данные звуковые колебания преобразуются в электрический сигнал

На этом все, постарался собрать наиболее полезные модули, которые наиболее часто используются при работе с микроконтроллером Ардуино. Надеюсь, статья полезная (особенно студентам, которым необходимо создавать реальные функционирующие объекты) и кого-то вдохновит начать разбираться с Ардуино, так как это очень просто и невероятно интересно. 

Как Microsoft дружит с Arduino и другими компаниями на почве IoT – Новости и истории Microsoft

Пару месяцев назад в рамках конференции Build было объявлено о партнерстве Microsoft с несколькими компаниями в области «Интернета вещей». В частности, Windows 10 была названа первой Arduino-сертифицированной операционной системой. Почему-то этот анонс (на сайте Arduino и в официальном блоге Windows) был не очень позитивно принят сообществом любителей цифровой электроники, возбудив традиционный holywar. Давайте попробуем разобраться, что же стоит за этими объявлениями.

Самая главная позитивная новость, которую стоит услышать – Microsoft понимает важность платформы Arduino и будет прилагать усилия, чтобы соответствующие устройства хорошо взаимодействовали с устройствами на Windows 10. Представьте себе мир, в котором внешние электронные устройства на базе Arduino являются продолжением аппаратного обеспечения компьютера, работающего под управлением Windows 10, и доступны из стандартных универсальных приложений с помощью соответствующих расширений. Это позволит оптимальным образом сочетать вычислительную мощность традиционных компьютеров и облака с потенциалом микроконтроллеров по управлению устройствами, создавая целостные решения в области «Интернета вещей».

В рамках текущих анонсов было объявлено о доступности двух технологий: Windows Remote Arduino и Windows Virtual Shield for Arduino.

  • Windows Remote Arduino – это технология, которая позволяет управлять платой Arduino, подключенной по USB или Bluetooth, из универсального приложения, как если бы ее порты ввода-вывода были доступны локально. Разработчику универсального приложения становятся доступны основные команды по работе с аналоговыми и цифровыми портами, что позволяет напрямую работать с рядом датчиков. Для взаимодействия Arduino с компьютером используется протокол Firmata, а на плате запускается специальный Firmata Sketch, выполняющий приходящие от удаленного компьютера команды. Проект доступен для Windows 8.1 и Windows 10 в виде исходных текстов на GitHub.
  • Windows Virtual Shield for Arduino позволяет использовать смартфон под управлением Windows Phone 10 в качестве виртуальной платы расширения для Arduino. При этом смартфон может использоваться как текстовый экран, как гироскоп/акселерометр/GPS, в качестве распознавателя речи и т.д. Вы получаете простой доступ ко всем этим возможностям прямо из своего Arduino Sketch. В качестве примера можно посмотреть на проект Picture the Weather.

Эти проекты в настоящий момент активно дорабатываются, и стоит воспринимать их как первый шаг в правильном направлении. В следующей своей статье я подробнее и на примере познакомлю вас с тем, как работает Windows Remote Arduino.

В новом мире многие инновации делаются энтузиастами, которые любят собирать что-то своими руками – в английском языке для этого есть прекрасное слово maker. Понимая важность такого сообщества для будущих инноваций в IoT, Microsoft также объявила о партнерстве с популярным порталом Hackster.IO, на котором теперь будут представлены многие официальные примеры разработок для Windows IoT.

Если же говорить про промышленный «Интернет вещей», то здесь важной задачей является построение инфраструктуры для взаимодействия сети устройств между собой и с клиентами. Одной из таких платформ межмашинного взаимодействия является DeviceHive от компании DataArt. В результате партнерства компании с Microsoft теперь можно легко разворачивать DeviceHive в облаке прямо из магазина Azure Marketplace, что существенно упрощает создание облачных решений для «Интернета вещей».

«Интернет вещей» на текущий момент является достаточно молодым направлением. Чем больше компаний будут работать вместе над развитием этой отрасли, чем больше соглашений и промышленных стандартов типа AllJoyn – тем больше устройств будут общаться между собой и работать вместе, обеспечивая нам прекрасное технологическое будущее.

Опубликовано в блоге Microsoft на habrahabr.ru 

Tags: IoT, Partnership, Windows 10, Windows Phone

что это? — NIX Academy

Не только в Харькове, а и в Украине «Arduino» — достаточно редкий курс. Не только дети, а и многие взрослые могут не знать, что это и какие навыки развивает. Есть и те, кто занимается с платформой Arduino дома. Только эффект от обучения в домашних условиях и на курсах отличается. 

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

На курсах, в свою очередь,  ребенок всегда может обратиться к преподавателю с вопросом и быстро найти подходящее решение.  А еще у ребенка появляется группа друзей, которым нравится робототехника, механика и программирование на С++, с которыми он может поделиться своими успехами и достижениями. 

Во время занятий в классе дети развивают творческий потенциал, а также тренируют логику и воображение, решая на базе освоенного материала дополнительные задачи с полной свободой действий. Проекты, реализуемые в процессе самостоятельного обучения чаще всего остаются в пределах алгоритма: “Собрал>Скопировал>Запустил>Заработало (или нет)” и редко перерастают из области мимолетного увлечения в хобби или профессию.

Arduino как платформа программируется на языке C++,  который остается в десятке самых востребованных языков программирования и на котором можно писать программы любой сложности. Только изучение гор литературы, просмотры видео-инструкций и примеров никогда не сравнятся с живым объяснением решения задачи на примерах и в различных вариациях.

Начнем с азов: что такое Arduino?

Если вы уже знакомы с теорией — можете смело перескочить дальше. Если нет — давайте вместе выполним быстрое погружение.

Arduino — это небольшая плата с процессором и оперативной памятью. Другими словами, это мини-компьютер, оснащенный множеством входов и выходов. На сегодняшний день есть несколько видов плат Arduino c различными микроконтроллерами и характеристиками. 

Применяются они для различных целей. Самая популярная — Arduino UNO, она лучше всех подходит для начала создания различных электромеханических устройств, поэтому и самая востребованная. 

К плате можно подсоединять провода и подключать различные датчики, светодиоды, двигатели и модули связи. Если упростить максимально, то плату Ардуино можно назвать умной розеткой, которая будет автоматически включать и выключать все присоединенные девайсы в зависимости от того, как ее запрограммировал ученик.

Arduino состоит из аппаратной и программной частей. Последняя представляет собой среду разработки (программу, которую используют для написания и настройки прошивок), а также удобные библиотеки и упрощенный язык программирования.

Что дети изучают на курсах Arduino?

В описании курса вы можете прочесть «с помощью Arduino дети обучаются электротехнике, механике и программированию на С++». А что это означает на практике? 

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

Бывает и так, что на занятиях детям хочется творчества. Одна из наших групп уже через два месяца после старта обучения вместе с преподавателем курса создали орган из тыковок к Хэллоуину:

А еще дети могут создавать отдельные элементы управления домашней инфраструктурой и проекты для исследования природы и автоматизации сельского хозяйства (умные теплицы, инструменты для автоматического полива растений, умные инкубаторы, ошейники для животных и даже счетчики муравьев). В общем, разрабатывать и программировать можно что угодно и на что только хватит фантазии у юных академиков 🙂

Что касается программы нашего курса, отметим сразу, что она несколько отличается от тех, которые вы можете найти у других школ. Наши студенты учатся программировать робота-сумо на базе arduino-совместимого контроллера Atmega32U4. У этого контроллера есть второе имя, оно очень красивое и  более запоминающееся, — Ардуино Леонардо. 

С аппаратной точки зрения это дооборудованная набором датчиков, дисплеем, пищалкой, моторами и прочими элементами платформа, которая может работать как полноценный автономный робот, а также как плата Ардуино Леонардо. И как большинство плат Ардуино, Леонардо тоже имеет продублированные выводы, позволяющие подключать к ней различные внешние устройства и изменять функционал робота в зависимости от необходимых задач. 

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

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

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

Время летит быстро: сегодня ваш ребенок пришел к нам на курс Arduino, а через несколько лет запрограммировал домашнего робота, запустил свой техно-стартап или получил “да” от Boston Dynamics  в ответ на свое резюме.

Обратите внимание! здесь можно ознакомиться с полной программой нашего курса.

В каком возрасте лучше всего начать изучение Arduino?

На самом деле ребенку можно изучать Arduino тогда, когда ему интересно. А самое главное  — хочется это делать. На Youtube можно найти каналы, которые ведут дети семи и восьми лет. И им нравится осваивать программирование на Arduino в более раннем возрасте. С помощью видео они просто делятся с единомышленниками своими наработками.

В свою очередь наши эксперты рекомендуют детям приступать к изучению Arduino в 12-13 лет, руководствуясь тем, что в этом возрасте уже можно начинать осваивать С++. Кроме того, программа курса отлично дополняет школьную программу по информатике.

Если у школьника есть базовые знания по робототехнике и программированию, и ему уже хочется перейти на следующий уровень — заниматься электроникой, микроконтроллерами, работать с датчиками и умными устройствами, тогда мы советуем прийти на бесплатный урок и просто попробовать. Это самый короткий путь, чтобы понять, нравится ребенку или нет. А мы поможем ребенку полюбить мир высоких технологий и  сделать первые успешные шаги в IT сфере!

 

Библиотеки

— Справочник Arduino

Среда Arduino может быть расширена за счет использования библиотек, как и большинство платформ программирования. Библиотеки предоставляют дополнительные функции для использования в эскизах, например работа с оборудованием или манипулирование данными. К используйте библиотеку в эскизе, выберите ее из Sketch> Import Library .
Ряд библиотеки устанавливаются вместе с IDE, но вы также можете загрузить или создать свои собственные.См. Эти инструкции для получения подробной информации об установке библиотек. Есть также учебник по написанию собственного библиотеки. См. Стиль API Руководство по созданию хорошего API в стиле Arduino для вашей библиотеки.

Стандартные библиотеки

  • EEPROM — чтение и запись в «постоянное» хранилище
  • Ethernet — для подключения к Интернет с использованием Arduino Ethernet Shield, Arduino Ethernet Shield 2 и Arduino Leonardo ETH
  • Firmata — для связи с приложения на компьютере, используя стандартный последовательный протокол.
  • GSM — для подключения к GSM / GRPS сеть с экраном GSM.
  • LiquidCrystal — для управления жидкокристаллические дисплеи (ЖК-дисплеи)
  • SD — для чтения и записи SD-карт
  • Servo — для управления серводвигателями
  • SPI — для связи с устройствами с использованием шина последовательного периферийного интерфейса (SPI)
  • SoftwareSerial — для серийника связь на любых цифровых выводах.Версия 1.0 и более поздние версии Arduino включают библиотеку NewSoftSerial Микала Харта как SoftwareSerial.
  • Stepper — для управления шаговым двигателем моторы
  • TFT — для рисования текста, изображений, а также фигуры на TFT-экране Arduino
  • WiFi — для подключения к Интернету с помощью Arduino WiFi Shield
  • Wire — двухпроводной интерфейс (TWI / I2C) для отправки и получения данных через сеть устройств или датчиков.

Библиотеки Matrix и Sprite больше не являются частью основного дистрибутива.

101 Только библиотеки

  • CurieBLE — Взаимодействие со смартфонами и планшеты с Bluetooth Low Energy (BLE).
  • CurieIMU — Управление бортовым акселерометр и гироскоп.
  • CurieTimerOne — позволяет использовать Функции таймера.
  • CurieTime — позволяет контролировать и использовать внутренний RTC (часы реального времени)

Библиотеки только для оплаты

  • Аудио — Воспроизведение аудиофайлов с SD карта.

Библиотеки Due, Zero и MKR1000

  • USBHost — связь с USB периферийные устройства, такие как мыши и клавиатуры.
  • Планировщик
  • — Управление несколькими неблокирующие задачи.

Zero и все библиотеки плат MKR на базе SAMD21

  • Аудио частотомер — Сделайте выборку аудиосигнала и верните его частоту
  • AudioZero — Воспроизведение аудиофайлов с SD Card
  • RTC — Часы реального времени для планирования событий
  • ArduinoSound — простой способ воспроизводить и анализировать аудиоданные
  • I2S — Для использования протокола I2S на SAMD21

WiFi 101 и библиотека MKR1000

  • WiFi101 — только библиотека с участием Wi-Fi щит 101
  • WiFi101OTA — беспроводные обновления на MKR1000

MKR WiFi 1010, MKR VIDOR 4000, Arduino NANO 33 IoT и Arduino UNO WiFi Rev.2

  • WiFi NINA — библиотека для использования модуля WiFi Nina вышеперечисленных плат.

Arduino Nano 33 BLE, Nano 33 BLE Sense, NANO 33 IoT, Uno WiFi Rev 2, MKR WiFi 1010.

  • ArduinoBLE — библиотека для использования BLE особенности вышеперечисленных плат.

Arduino Nano 33 IoT и UNO WiFi Rev.2

  • ArduinoLSM6DS3 — библиотека для использовать 6-осевой IMU LSM6DS3, доступный в Arduino Nano 33 IoT и Arduino UNO WiFi Rev.2.

Arduino Nano 33 BLE и BLE Sense

  • ArduinoLSM9DS1 — библиотека для использовать 9-осевой IMU LSM9DS1, доступный на Arduino Nano 33 BLE и Arduino Нано 33 BLE Sense.

Arduino Nano 33 BLE Sense

  • PDM — библиотека для использования цифровых микрофон MP34DT05, наша библиотека PDM также может использоваться с нашей библиотекой ArduinoSound.
  • ArduinoAPDS9960 — библиотека для используйте датчик жестов APDS9960; он чувствует жест, цвет, атмосферу освещение и близость.
  • ArduinoLPS22HB — библиотека для использовать барометр и датчик температуры LPS22; это сверхкомпактный датчик который работает как барометр с цифровым выходом.
  • ArduinoHTS221 — используемая библиотека датчик относительной влажности HTS221; это сверхкомпактный датчик, в котором используется конструкция планарного конденсатора с полимерным диэлектриком, способная обнаруживать изменения относительной влажности, возвращенная как цифровой выход на последовательный интерфейс.

Библиотека только для автотранспортных средств MKR

MKR FOX 1200 только Библиотека

  • SigFox — библиотека для использования только с MKRFOX1200

MKR только WAN 1300 Библиотека

  • MKRWAN — библиотека для использования только с MKR WAN 1300

MKR Только GSM 1400 Библиотека

  • MKRGSM — библиотека для использования только с МКР GSM 1400

MKR Только NB 1500 Библиотека

  • MKRNB — библиотека для использования только с MKR NB 1500

MKR 1000, MKR WiFi 1010, MKR GSM 1400, MKR NB 1500, MKR RS485 Shield, UNO WiFI Rev.2, только экран Ethernet Библиотека

  • Arduino Modbus — библиотека для общаться по протоколу Modbus через RS485 и TCP с клиентами Modbus и серверы.

MKR Библиотека GPS Shield

  • ArduinoMKRGPS — библиотека должна быть используется с Arduino MKR GPS Shield

MKR RGB Shield Библиотеки

  • ArduinoMKRRGB — библиотека должна быть используется с Arduino MKR RGB Shield
  • ArduinoGraphics — библиотека с участием графические примитивы, работает также с MKR RGB Shield

MKR 485 Shield Библиотеки

  • ArduinoRS485 — библиотека, которая реализует RS485 на плате Arduino MKR RS485

MKR ENV Shield Библиотека

  • ArduinoMKRENV — библиотека для чтения все значения, измеренные датчиками Arduino MKR ENV Shield

MKR THERM Shield Библиотека

  • ArduinoMKRTHERM — библиотека для считывать датчики, подключенные к Arduino MKR THERM Shield

Библиотека только Esplora

  • Esplora — эта библиотека включает вы получите легкий доступ к различным датчикам и исполнительным механизмам, установленным на плате Esplora.

Библиотека роботов Arduino

  • Робот — эта библиотека позволяет легкий доступ к функциям робота Arduino.

Библиотека устройств Yún

  • Библиотека Bridge — включает связь между процессором Linux и микроконтроллером на Yún.
  • Библиотека
  • Ciao — стремится упростить взаимодействие между микроконтроллером и ОС Linino, позволяющее устанавливать различные соединения с наиболее распространенными протоколы

USB-библиотеки (Leonardo, Micro, Due, Zero и Esplora)

  • Клавиатура — отправлять нажатия клавиш на ан подключенный компьютер.
  • Мышь — управление перемещением курсора на подключенном компьютере.

Основана ли Arduino на C или C ++ — разработчики, дизайнеры и фрилансеры

Что такое Arduino?

Для любых начинающих читателей в электронике, позвольте нам сначала быстро понять, что такое микроконтроллер и почему вы используете комплект на основе микроконтроллера?

Микроконтроллер в основном похож на небольшой компьютер на единственной полупроводниковой микросхеме, обычно называемой интегральной схемой (IC).Он может содержать ЦП (также может быть больше CPUS), а также оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ) и несколько контроллеров устройств ввода / вывода. Эти типы микросхем подходят для встраиваемых приложений, таких как мобильный телефон, игровой контроллер, пульт дистанционного управления или даже контроллер машины. Некоторые проекты, которые уже реализованы с использованием этой платы, включают роботов, термостаты и датчики движения. Вы можете найти фрилансеров, работающих в сфере электроники, и у которых есть совместные проекты в этой сфере.

Оборудование, Компания и проект :

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

Обычно упоминаемый продукт Arduino имеет простую плату микроконтроллера и среду разработки, так что вы можете изучить свои навыки в области электроники, автоматизации и программного обеспечения с помощью этого набора.Есть несколько популярных платформ для DIY-проектов, и это одна из них. Вы также можете проверить другую платформу, известную как Raspberry Pi , которая также производит одноплатные компьютеры для экспериментов британской Raspberry Pi Foundation. На рынке доступны сотни таких продуктов, но очень немногие из них были преобразованы в крупные общественные проекты.

Дизайн Arduino:

Продукт Arduino использует на своих платах различные микропроцессоры и контроллеры.На платах есть аналоговые и цифровые порты ввода / вывода для подключения различных устройств. Вы также можете подключить основную плату к другим платам расширения (щитам), когда ваш проект начнет расти. Вы слышали о последовательном и параллельном интерфейсах? Вы получаете оба на этих платах, включая стандартные порты USB. Вы можете писать программы на своем настольном компьютере / ноутбуке и передавать их на плату через порт USB.

Программное обеспечение для Arduino и дебаты на C или C ++:

Самый важный момент, связанный с нашим обсуждением, заключается в том, что вы можете использовать как C, так и C ++ для программирования микроконтроллеров.Проект Arduino также предоставляет интегрированную среду разработки (IDE) на основе проекта языка Processing. Фактически, вы можете закодировать программу Arduino на любом языке для компилятора, который производит двоичный машинный код для целевого процессора. Когда такая совместимость есть, проблем быть не должно.

Arduino IDE — это кроссплатформенная программа, написанная на Java. Он возник из среды IDE для языков Processing и Wiring. Он включает в себя редактор кода и предоставляет простые механизмы для компиляции и загрузки программ в плату Arduino одним щелчком мыши.Он также содержит область сообщений, текстовую консоль и панель инструментов с кнопками.

Программы, разработанные с использованием этой IDE, известны как скетч. Эскизы сохраняются на компьютере разработчика в виде текстовых файлов с расширением «in». Поддержка языков C и C ++ использует определенные правила структурирования кода. Хорошо для внештатных веб-разработчиков экспериментировать с этим с известными навыками!

Выполнение кода:

У вас есть доступ к библиотеке кода из проекта Wiring, который предоставляет множество общих процедур ввода и вывода.Ваш код требует только двух основных функций для запуска скетча и основной программы. Затем он компилируется и связывается с заглушкой программы в исполняемую программу. Наряду с этим, IDE также предоставляет программу, известную как «air dude», которая преобразует исполняемый код в простой текстовый файл в шестнадцатеричной кодировке.

Поскольку ЦП понимает только этот двоичный язык, вы можете загрузить этот код во встроенное ПО платы, откуда плата получит инструкции. Это сильно отличается от обычного программирования, не так ли? Но так обстоит дело со всеми подобными электронными комплектами на базе процессоров.Если вы можете писать прямо на ассемблере, это прекрасно, но все, что находится в конце, нужно преобразовать в машинный код для загрузки на доску экспериментов.

Сообщество:

Постоянно растущее сообщество Arduino объединяет всех, от любителей и студентов до дизайнеров и инженеров со всего мира. Исходный Arduino использует свою IDE, которая поддерживает базовую версию C с дополнительной поддержкой C ++. Приложения Arduino отличаются от обычных C из-за двух методов настройки и цикла.Если вы используете C, у вас есть только основной метод.

И Wiring, и Arduino используют C / C ++ в качестве языков программирования, а Arduino использует упрощенную версию. Обработка использовала Java в качестве языка программирования, но послужила основой для Wiring, которая была основой для Arduino. Как видите, в сообществе, работающем над этими проектами, будут инженеры и разработчики из C, C ++, Java, Assemble и других навыков программирования.

Подробнее об этом проекте:

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

Аппаратное обеспечение с открытым исходным кодом:

Вы наверняка слышали о многих проектах программного обеспечения с открытым исходным кодом. Точно так же Arduino — это аппаратный проект с открытым исходным кодом. Проекты оборудования распространяются и распространяются по бесплатной лицензии и доступны на веб-сайте Arduino.Также доступен исходный код для разработки IDE.

Сводка :

С появлением этих комплектов в Италии оригинальное оборудование Arduino было произведено итальянской компанией Smart Projects. Вы можете использовать как C, так и C ++ для разработки программного обеспечения для этих плат. Там были платы от американских компаний SparkFun Electronics и Adafruit Industries. По состоянию на прошлый год было доступно 17 версий оборудования Arduino. Поищите советы фрилансеров по такого рода проектам, чтобы развить нишевые навыки.Этот проект является большим преимуществом и базой для всех инновационных профессий в области аппаратного и программного обеспечения.

Китти Гупта — менеджер по контенту и сообществу FreelancingGig. У нее многолетний опыт написания статей для авторитетных платформ, а также ее инженерный и коммуникационный опыт.

Последние сообщения Китти Гупта (посмотреть все)

Платформа Arduino и программирование на C

Arduino — это компьютерная аппаратная / программная платформа с открытым исходным кодом для создания цифровых устройств и интерактивных объектов, которые могут воспринимать физический мир вокруг них и управлять им.В этом классе вы узнаете, как работает платформа Arduino с точки зрения физической платы и библиотек, а также IDE (интегрированная среда разработки). Вы также узнаете о щитах, которые представляют собой меньшие платы, которые подключаются к основной плате Arduino для выполнения других функций, таких как обнаружение света, тепла, GPS-слежение или обеспечение отображения пользовательского интерфейса. Курс также будет охватывать программирование Arduino с использованием кода C и доступ к контактам на плате через программное обеспечение для управления внешними устройствами.Обратите внимание, что этот курс не включает форумы для обсуждения.

Основы эскизов Arduino и Embedded C

Предыдущее руководство включало обсуждение инструментов и компонентов, необходимых для начала работы с Arduino . Однако, прежде чем начинать работу с Arduino UNO (или любой другой платой Arduino) — и экспериментировать с проектами оборудования на различных датчиках, исполнительных механизмах и модулях — важно ознакомиться с основами эскизов Arduino и встроенного C для кодирования, совместимого с Arduino.

Термин «Arduino-совместимое кодирование» относится ко всем Arduino и Arduino-совместимым платам микроконтроллеров, которые могут быть запрограммированы и загружены с помощью Arduino IDE.

Платы

Arduino запрограммированы на «C». C — популярный язык системного программирования, который имеет минимальное время выполнения на оборудовании по сравнению с другими языками программирования высокого уровня. По этой причине большинство операционных систем и несколько языков программирования построены на C.

.

Как и другие микроконтроллеры, микроконтроллеры AVR, размещенные на платах Arduino, запрограммированы в подмножестве C.Общий термин для таких подмножеств — «Встроенный C», потому что они применяются к программированию встроенных контроллеров. Язык, на котором программируется Arduino, является подмножеством C и включает только те функции стандарта C, которые поддерживаются IDE Arduino.

Это не означает, что Arduino C где-то отстает, потому что это подмножество C. Большинство недостающих функций стандартного C можно легко обойти. Скорее, Arduino C — это гибрид C и C ++, что означает, что он функциональный и объектно-ориентированный.

Структура скетчей
По сути, пустой скетч Arduino выполняет две функции:

1. Setup ()
2. loop ()

Когда скетч Arduino начинает выполняться, сначала вызывается функция setup (). Он выполняется только один раз и должен использоваться для инициализации переменных, установки pinModes, настройки компонентов оборудования, использования библиотек и т. Д.

Функция loop () находится рядом с функцией setup () и повторяется бесконечно.Любые другие пользовательские функции должны вызываться внутри функции цикла. Вот как микроконтроллеры выполняют свой код прошивки, повторяя свой код бесконечное количество раз, пока они остаются включенными.

Если пользователи запрограммировали другие микроконтроллеры (например, 8051, AVR, PIC или RX), можно сравнить код внутри функции setup () с кодом вне цикла main () встроенной программы на C, что может были написаны для инициализации переменных и настройки оборудования.Функции setup () и loop () имеют типы возврата void.

Программа для микроконтроллера должна иметь такую ​​же структуру, как и ее функции. Микроконтроллер должен «знать» о своей аппаратной среде и знать, как с ней взаимодействовать.

Микроконтроллер может взаимодействовать с другими аппаратными компонентами или устройствами только этими пятью способами:

1. Цифровой вход. Это может быть получено в цифровом формате LOW или HIGH от других устройств. Это будут логические уровни TTL или напряжения, преобразованные в логические уровни TTL перед подачей на GPIO.
2. Цифровой выход. Это может быть цифровой НИЗКИЙ или ВЫСОКИЙ выход по сравнению с другими устройствами. Опять же, на выходе будут логические уровни TTL.
3. Аналоговый вход. Может «определять» аналоговое напряжение от других устройств. Измеренное напряжение преобразуется в цифровое значение с помощью встроенного аналого-цифрового преобразователя.
4. Аналоговый выход. Может выводить аналоговое напряжение на другие устройства. Этот аналоговый выход представляет собой не аналоговое напряжение, а сигнал ШИМ, который приближается к аналоговым уровням напряжения.
5. Последовательная связь. Он может передавать, получать или принимать данные с другими устройствами последовательно в соответствии со стандартным протоколом последовательной передачи данных, таким как UART, USART, I2C, SPI, микропровод, 1-провод, CAN и т. Д. Последовательная связь с другими устройствами может быть одноранговым (UART / USART), полудуплексным (I2C) или полнодуплексным (SPI).

Пользователи, которые знают, как выполнять эти пять типов взаимодействия с микроконтроллером, могут сопрягать с ним любое оборудование.

Программа Arduino или любая программа микроконтроллера должна сначала иметь код для инициализации.Это может включать:

  • Определение переменных и констант
  • Настройка pinModes
  • Настройка каналов АЦП / ШИМ
  • Инициализация настроек для последовательной связи

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

В отличие от настольных приложений, программы µc не предназначены для завершения. Эти программы повторяются бесконечное количество раз, пока система не будет выключена или пока не произойдет сбой. После отключения питания Arduino или любой микроконтроллер перезагружается при «возобновлении питания» и начинает выполнение своей программы с самого начала.

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

1. Инициализация
2. Вход — он должен включать код для проверки данных и обработки неверных или неожиданных входящих данных
3. Обработка — это должен включать код для непредвиденных сбоев или исключений, возникающих при обработке данных
4. Выход — это может включать код для проверки ожидаемых результатов, если сопряженное устройство также может обмениваться данными с микроконтроллером

Комментарии
Комментарии в Arduino C аналогичны комментариям в стандарте C.Однострочные комментарии начинаются с пары косых черт (//) и заканчиваются в конце строки (EOL). Многострочные комментарии начинаются с пары косая черта и звездочка (/ *) и заканчиваются парой звездочка-косая черта (* /).

Это примеры однострочных и многострочных комментариев:

// Это однострочный комментарий
/ * Это

a
многострочный
комментарий * /

Типы данных Arduino C
Эти типы данных поддерживаются в Arduino C.

Стоит отметить, что «строковые» и «строковые объекты» — разные вещи. Тип данных строки определяет простой массив символов, а тип данных строки определяет объект строки.

Arduino C поддерживает следующие встроенные функции для управления строковыми объектами:

Идентификаторы
Идентификаторы — это имена, присвоенные переменным, функциям, константам, классам, методам и другим объектам в программе. В Arduino C идентификаторы должны содержать только буквенно-цифровые символы, тире (-) или подчеркивание (_).Идентификатор может начинаться только с символа подчеркивания или буквы.

Ключевые слова
Ключевые слова — это константы, переменные или имена функций, которые нельзя использовать в качестве идентификаторов.

Arduino C имеет следующие ключевые слова:

Переменные
Переменные — это ссылки в программе, значения которых могут изменяться во время выполнения программы. Переменные могут иметь имена, которые должны быть идентификаторами.

Например, в Arduino C каждая переменная должна быть явно определена с указанным типом данных, прежде чем она будет использована в коде.

  • Если в операторе кода переменная была создана с помощью типа данных, но ей не присвоено значение, переменная считается определенной, но не объявленной.
  • Если ему также присвоено значение в том же или другом утверждении, оно считается объявленным.

Ячейка памяти, в которой значение переменной хранится во время выполнения, называется ее «lvalue» или значением местоположения. Значение, хранящееся в ячейке памяти переменной, называется ее «rvalue» или значением регистра.

Определенная переменная имеет lvalue, но не rvalue. Объявленная переменная имеет lvalue и rvalue.

Это допустимое определение переменной:
int num1;

Это действительное объявление переменной:
int num1 = 0;

Или…
int num1;
число1 = 0;

Константы
Константы — это ссылки в программе, значение которых не изменяется во время выполнения программы.Целочисленные константы и константы с плавающей запятой могут быть объявлены в Arduino C с помощью ключевого слова const или директивы #define. Т

Это пример действительного объявления целочисленной константы:
const int RXPIN = 0;

Некоторые встроенные константы: HIGH, LOW, INPUT, OUTPUT, INPUT_PULLUP, LED_BUILTIN, true и false. Директива #define позволяет объявлять константы перед компиляцией программы.

Это действительное объявление константы с использованием директивы #define:
#define LEDPin 3

Операторы
Эти операторы доступны в Arduino C:

1. Арифметика — сложение (+), умножение (*), вычитание (-), деление (/) и модульное деление (%)

2. Назначение (=)

3. Сравнение — равно (==), не равно (! =), Меньше (<), больше (>), меньше или равно (<=) и больше чем или равно (> =)

4.), побитовое не (~), левый битовый сдвиг (<<) и правый битовый сдвиг (>>)

5. Логическое — и (&&), или (||), а не (!)

6. Соединение — приращение (++), декремент (-), сложное сложение (+ =), составное вычитание (- =), составное умножение (* =), составное деление (/ =), составное побитовое и (& =), и составное побитовое или (| =)

7. Cast — Эти операторы переводят текущий тип переменной в другой тип. Приведение типов можно применить к переменной, указав новый тип данных в скобках перед появлением переменной.

Например:
i = (int) f

8. sizeof — Оператор sizeof возвращает размер массива в байтах.

9. Тройной (:?)

10. Указатель — оператор разыменования (*) и оператор ссылки (&)

Операторы и блоки операторов
Оператор — это полная инструкция C для процессора. Все операторы C заканчиваются точкой с запятой (;).Блок операторов — это группа операторов, заключенная в фигурные скобки ({,}). Блок операторов также рассматривается компилятором как единый оператор.

Приоритет операторов
В этой таблице показан приоритет операторов в Arduino C в порядке убывания:

Управляющие структуры
Arduino C поддерживает следующие управляющие структуры:

  • если
  • если… иначе…
  • для
  • корпус переключателя
  • , а
  • делать… пока…
  • перерыв
  • продолжить
  • перейти
  • возврат

Пользовательские функции
Функции — это вызываемые блоки операторов.Программисты также могут писать свои собственные функции. Функции — это идеальный способ организовать код в соответствии с функциональностью блоков операторов в программе.

Определение функции имеет следующий синтаксис:
тип_функции имя_функции (аргументы) {
тело_функции
}

Тип функции может быть любым типом данных, включая void. Ожидается, что функция вернет значение того же типа через оператор return. Этот оператор должен быть последним в теле функции (любые операторы, сделанные после оператора return, не будут выполнены).

Функция завершается после оператора возврата. Если тип функции недействителен, она не должна возвращать никакого значения. Имя функции может быть любым идентификатором и может нуждаться в аргументах, а может и не нуждаться. Аргументы — это переменные, связанные с функцией.

Тело функции — это блок операторов. Этот блок операторов выполняется всякий раз, когда вызывается функция.

Это действительный пример определяемой пользователем функции C:
int add_inputs (int a, int b, int c) {
return a + b + c;
}

Функция вызывается по имени, за которым следует скобка.Любые позиционные аргументы должны быть заключены в круглые скобки.

Это допустимый пример вызова функции:
add_inputs (5, 2, 14)

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

Область действия переменной
Область действия переменной относится к видимости и времени жизни переменной в программе.Например, переменные:

  • Только видимая внутри функции имеет локальную область видимости.
  • Видны все функции программы, имеющие глобальную область видимости.

Переменная, имеющая глобальную область видимости, должна быть определена или объявлена ​​вне любой функции, включая функции setup () и loop (). Если локальная переменная определена как статическая (с использованием ключевого слова static), она остается видимой только для одной функции. Однако он не уничтожается и будет существовать после вызова функции, сохраняя свои данные между вызовами функций.

Если переменная (локальная или глобальная) определена как энергозависимая, она сохраняется в ОЗУ, а не в регистрах хранения. Переменная должна быть определена как изменчивая, если она может быть изменена вне контроля кода (например, в случае прерванной процедуры обслуживания).

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


В рубрике: Arduino, Учебники
С тегами: Arduino

Программирование на C с помощью Arduino — Elektor

Программирование на C с помощью Arduino — Elektor

Магазин не будет работать корректно, если куки отключены.

Похоже, в вашем браузере отключен JavaScript. Для наилучшего взаимодействия с нашим сайтом обязательно включите Javascript в своем браузере.

  • Скидка 10% для участников
  • Продукты, одобренные лабораторией Elektor
  • 2000+ Электронных продуктов

Программирование на C с помощью Arduino

Обзор

Технологии постоянно меняются.Новые микроконтроллеры становятся доступными каждый год. Единственное, что осталось неизменным, — это язык программирования C, используемый для программирования этих микроконтроллеров. Если вы хотите изучить этот стандартный язык для программирования микроконтроллеров, эта книга для вас!

Arduino — это аппаратная платформа, используемая для обучения языку программирования C, поскольку платы Arduino доступны по всему миру и содержат популярные микроконтроллеры AVR от Atmel.

Обзор

Технологии постоянно меняются.Новые микроконтроллеры становятся доступными каждый год. Единственное, что осталось неизменным, — это язык программирования C, используемый для программирования этих микроконтроллеров. Если вы хотите изучить этот стандартный язык для программирования микроконтроллеров, эта книга для вас!

Arduino — это аппаратная платформа, используемая для обучения языку программирования C, поскольку платы Arduino доступны по всему миру и содержат популярные микроконтроллеры AVR от Atmel.

40 евро.46

Не члены: Обычная цена € 44,95

Срок доставки: 3 раб. Дня

Детали

Технологии постоянно меняются. Новые микроконтроллеры становятся доступными каждый год.Единственное, что осталось неизменным, — это язык программирования C, используемый для программирования этих микроконтроллеров. Если вы хотите изучить этот стандартный язык для программирования микроконтроллеров, эта книга для вас!

Arduino — это аппаратная платформа, используемая для обучения языку программирования C, поскольку платы Arduino доступны по всему миру и содержат популярные микроконтроллеры AVR от Atmel.

Atmel Studio используется в качестве среды разработки для написания программ на языке C для микроконтроллеров AVR.Это полнофункциональная интегрированная среда разработки (IDE), которая использует программные инструменты GCC C для микроконтроллеров AVR и может быть загружена бесплатно.

Коротко:
  • Начните учиться программировать с самой первой главы
  • Опыт программирования не требуется
  • Учимся на практике — набираем и запускаем примеры программ
  • Интересный способ изучить язык программирования C
  • Идеально подходит для любителей электроники, студентов и инженеров, желающих изучить язык программирования C во встроенной среде на микроконтроллерах AVR.
  • Используйте бесплатное полнофункциональное программное обеспечение Atmel Studio IDE для Windows
  • Написание программ C для 8-битных микроконтроллеров AVR, как на платах Arduino Uno и MEGA.
  • Пример кода работает на платах Arduino Uno и Arduino MEGA 2560 и может быть адаптирован для работы на других микроконтроллерах AVR или платах
  • Используйте программатор / отладчик AVR Dragon вместе с Atmel Studio для отладки программ на языке C

Технические характеристики

Дополнительная информация
17574
Английский
Elektor
Уорвик А.Смит
343
17 x 23,5 см (Мягкая обложка)
978-1-

0-46-2

Отзывы (5)

Ваш отзыв о Программирование на C с помощью Arduino

Напишите отзыв сами {{/ thumbnail_url}} {{{_highlightResult.name.value}}}

{{#categories_without_path}} в {{{category_without_path}}} {{/ category_without_path}} {{# _highlightResult.color}} {{# _highlightResult.color.value}} {{#categories_without_path}} | {{/ category_without_path}} Цвет: {{{_highlightResult.color.value}}} {{/_highlightResult.color.value}} {{/ _highlightResult.цвет}}

Разработка

Arduino с CLion: от хобби к профессиональному проекту. Часть I

Советы и хитрости

В наши дни многие разработчики играют с проектами на базе Arduino. Начать работу с Arduino легко, и увидеть результат ваших усилий по кодированию в мигающем свете или в движении робота просто восхитительно.Но большинство этих разработчиков Arduino не продвигаются вперед. Они продолжают работать над своими проектами как воины на выходных, относясь к ним просто как к маленькому хобби и побочным проектам. В этой серии сообщений блога мы хотели бы изучить, как вы можете вывести свои любимые проекты на более профессиональный уровень и как IDE, такие как CLion, могут помочь вам в этом.

Что мы собираемся построить

Мы поставили перед собой амбициозную цель. Мы собираемся создать электронный барограф — устройство, которое измеряет атмосферное давление и наносит его на карту, чтобы предсказывать погодные условия на следующие несколько часов.Это более полезно, чем классический барометр, поскольку изменения давления важнее отслеживать, чем абсолютное значение. Устройство должно работать от батарейки и проработать несколько недель без подзарядки.

Мы начнем с создания классического проекта — барометра, сделанного своими руками, — и будем использовать:

  • Датчик давления воздуха Bosch BMP085 . Мы будем использовать модуль GY-65 , хотя его можно заменить на BMP180 ( GY-68 ).
  • Плата Arduino Uno.Мы используем DFRduino UNO R3 из-за его красочных разъемов 🙂
  • Электронный бумажный экран Waveshare с диагональю 4,2 дюйма.
  • Провода, USB-кабель, несколько пластиковых стоек для печатных плат, болты M3 и гайки.
  • Пластиковая подставка для планшета IKEA, для крепления всех частей прототипа вместе.

Звучит весело? Давайте начнем!

Начиная с прототипа

Настройка электроники

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

Экранный модуль e-Paper использует однонаправленный интерфейс SPI (CS, MOSI, SCK), два входных управляющих сигнала (RESET, DC) и выходной сигнал BUSY. Модуль поставляется вместе с 8-проводным кабелем, который я подключил к Arduino с помощью краевых контактных разъемов 2,54 мм. Чтобы свести к минимуму количество используемых заголовков, мы подключаем линии питания дисплея к выводам питания заголовка внутрисхемного последовательного программирования (ICSP) Atmega8.Датчик давления использует интерфейс I2C (SCA, SCL) и подключается с помощью стандартных перемычек F-M.

Все подключения описаны в таблице ниже:

Пришло время написать код нашего прототипа Arduino.

Вывести датчик давления в онлайн

Официальное руководство Arduino подробно объясняет разработку эскиза Arduino. Итак, мы просто кратко рассмотрим настройку:

  1. Создайте новый проект и дайте ему имя.
  2. Затем добавьте библиотеку Adafruit_BMP085 с помощью пункта меню Sketch -> Include Library… -> Manage Libraries… .
  3. Пришло время добавить реальный код, например этот.
  4. После этого вы можете подключить свой Arduino, загрузить эскиз и убедиться, что он работает, с помощью последовательного монитора Arduino.

Вывести экран онлайн

Для этого проекта я использовал код, предоставленный WaveShare, поставщиком экранов, на GitHub, и я добавил еще несколько кодов для запуска и запуска нашего экрана. Вы можете посмотреть окончательный код проекта здесь. А теперь давайте запустим!

Эскизы Arduino

«Скетч» — это имя, которое Arduino использует для программы.Это единица кода, которая загружается и запускается на плате Arduino. В скетчах Arduino используются языки C и C ++. Точнее, можно написать набор функций C / C ++, а затем он подвергнется некоторой предварительной обработке, как, например, при добавлении одного или нескольких специфичных для Arduino предложений #include . Результат, наконец, передается непосредственно компилятору C / C ++ (avr-g ++). Вы можете прочитать о процессе сборки Arduino в официальной документации.

Поскольку в конечном итоге используется только C ++, для написания кода можно использовать любую универсальную среду разработки C ++.Использование IDE, отличного от Arduino, требует некоторых ручных действий, которые вы можете извлечь из официального описания процесса сборки. Но давайте посмотрим, сможете ли вы получить взамен какую-то выгоду!

Как CLion может помочь

Если вас интересует встраиваемая разработка и вы ищете проект, чтобы опробовать его, Arduino — хорошее место для начала. У него огромное и гостеприимное сообщество, богатая инфраструктура и десятки различных примеров кода и библиотек. Он идеально подходит для тех, кто хочет сделать свои первые шаги во встроенном мире, или для тех, кто хочет воплотить в жизнь простую идею.По мере роста проекта он начинает требовать больше усилий, более сложный код, более высокую производительность встроенного процессора, больше памяти MCU и больше периферийных устройств. На этом этапе инструменты разработки, такие как IDE, становятся полезными для поддержания качества нашего кода и помогают нам развиваться более продуктивно. Давайте посмотрим, чем может помочь CLion.

Более умный редактор кода с широким охватом

Если вы не знакомы с этим, CLion — это универсальная кроссплатформенная IDE для C и C ++.Он понимает код на C и C ++ и использует эти знания для предоставления действий в редакторе. Действия навигации, которые могут выполнять поиск использований контекста или переходить к классу, файлу или символу одним нажатием клавиши, интеллектуальное быстрое всплывающее окно документации и подсказки по именам параметров помогают разработчикам читать и лучше понимать код . Автозаполнение, живые шаблоны, рефакторинг (например, извлечение функции, параметра или переменной, встроенный и, конечно, переименование и изменение сигнатуры) — все это поможет вам, , быстрее писать код .А когда дело доходит до качества кода , встроенные инструменты статического анализа и динамического анализа являются незаменимыми помощниками. Цена ошибки в мире разработки встраиваемых систем может быть намного выше, чем где-либо еще, поскольку ошибки часто обнаруживаются во время выполнения, когда программное обеспечение работает на оборудовании. Таким образом, обнаружение ошибок прямо во время ввода кода, очевидно, сокращает количество хлопот, с которыми вы можете столкнуться.

Еще одна прекрасная возможность, которую предоставляет CLion, — это возможность отлаживать ваш код.Он позволяет вам построчно следить за выполнением кода, проверять значения переменных, следить за содержимым периферийных регистров и т. Д. Все это можно сделать либо в эмуляторе, либо прямо на реальном MCU, в зависимости от того, существует ли правильный эмулятор и каковы возможности отладки MCU.

Вы можете загрузить CLion с нашего сайта и следовать этому руководству по быстрому запуску, чтобы легко начать работу с ним. Также есть два видеоролика, с которых мы рекомендуем начать — CLion Quick Tour и это более подробное (и, следовательно, более длинное) демо по продуктивности.

Вы также можете узнать, как настроить CLion в Windows, включая необходимые инструменты для компиляции и отладки, из этого специального руководства. В нашем случае с Arduino вам потребуется установить MinGW.

Поделитесь своими проектами со всем миром

По мере развития хобби-проекта его обычно публикуют на GitHub, GitLab, Bitbucket или где-то еще, что позволяет присоединиться большему количеству участников. Публикация в VCS, обработка запросов на вытягивание, распределение работы между несколькими ветвями — все это основные задачи можно выполнять прямо в CLion.Что касается редактирования кода, незафиксированные изменения выделяются в редакторе, и доступны аннотации авторов. Все эти функции уменьшают потребность в переключении контекстов, экономя ваше время на проработку новых идей.

Есть хороший обзорный видеоролик о поддержке VCS во всех IDE на основе IntelliJ, таких как CLion.

Между прочим, при публикации в VCS не забудьте добавить файл Readme.md , который позволит другим узнать, о чем идет речь в проекте, и подробно расскажет, как с ним работать (какая настройка требуется, какой набор инструментов использовать и т. д.). CLion поставляется с поддержкой Markdown из коробки, поэтому вы легко получите предварительный просмотр своего файла Readme.md :

Миграция на PlatformIO

PlatformIO.org — это обширная экосистема для встраиваемой разработки, которая поддерживает различные типы целевого оборудования, компиляторы и фреймворки, включая проекты Arduino.

Давайте посмотрим, как вы можете начать работу с PlatformIO в CLion:

  1. Прежде всего, вам необходимо установить PlatformIO Core.
  2. И плагин PlatformIO для CLion (Настройки / Предпочтения | Плагины).

Теперь мы готовы создать новый проект PlatformIO, и в нашем случае мы выберем Arduino Uno. Нажмите File-> New Project и выберите Arduino Uno в качестве цели вместе с местоположением проекта. Поскольку в списке много досок, вы можете начать просто набирать «Uno», а затем использовать клавиши со стрелками для навигации по списку досок. Во избежание сбоев в дальнейшем мы не рекомендуем использовать в локации международные символы, специальные символы или пробелы.

Следующим шагом будет включение нашей библиотеки датчиков.Откройте platformio.ini в редакторе CLion и добавьте строку « lib_deps = Adafruit BMP085 Library » в раздел [env: uno] , затем вызовите Tools | PlatformIO | Повторная инициализация.

Пришло время добавить код в наш проект. Скопируйте все файлы заголовков из папки эскиза Arduino в папку проекта include и скопируйте все исходные файлы и файлы .ino из папки эскиза Arduino в папку проекта src . Вы можете удалить пустой файл main.c — нам это не нужно.

Поскольку мы не полагаемся на Arduino IDE для преобразований препроцессора, связанных с Arduino, нам необходимо выполнить некоторые дополнительные шаги вручную:

  1. Преобразуйте скетч в C ++. Для этого вы можете просто переименовать (Shift + F6) основной файл .ino в .cpp . В этом случае файлы CMake будут соответствующим образом обновлены CLion. А после вам нужно только перезагрузить проект CMake: Инструменты | CMake | Перезагрузите проект CMake .
  2. Откройте arduino-barograph.cpp и добавьте #include в самое начало файла.

Теперь вы можете собрать проект! Приступим.

Подключите электронное устройство к компьютеру, затем запустите конфигурацию запуска Platformio Upload . Прошивка теперь прошита на MCU, и наше устройство снова работает. Это было просто!

Давайте сделаем шаг назад и посмотрим, чего нам удалось достичь на данный момент:

  1. Мы начали использовать дополнительное программное обеспечение (PlatformIO, CLion), чтобы получить более мощную встраиваемую среду и воспользоваться преимуществами продуктивных функций C ++ IDE.
  2. Благодаря подходу PlatformIO приложение можно легко перенести на многие другие аппаратные платформы с ограниченными усилиями.
  3. Мы сделали обслуживание жизненного цикла проекта более удобным, используя интеграцию VCS и поддержку Markdown в CLion.

Контроль над проектом

PlatformIO был действительно полезен, но что, если вы хотите получить полный контроль над проектом и настроить шаги сборки? Теперь мы преобразуем наш проект в чистый проект CMake.Это потребует использования CLion IDE, системы сборки CMake, набора инструментов GCC для AVR и утилиты для прошивки avrdude .

Мы продолжим использовать библиотеки Arduino. Инструментарий AVR можно загрузить с сайта Microchip, а утилиту avrdude — из Саванны.

В CLion набор инструментов и профиль CMake настроены следующим образом:


Код самого проекта можно найти на GitHub. Это тот же код PlatformIO с библиотеками Arduino, вручную скопированными в исходники проекта.Не стесняйтесь клонировать и использовать его. Однако вы должны быть осторожны, когда дело доходит до этих зависящих от пользователя параметров в файле CMakeLists.txt:

  • avrdude расположение
  • Имя COM-порта Arduino
  • Специальная цель сборки FLASH .

Когда все настроено правильно, вы можете запустить действие Build в CLion (не Run!), И оно попытается прошить ваш Arduino:

Давайте посмотрим, как это соотносится с нашей предыдущей настройкой с PlatformIO:

  1. Нам нужно позаботиться о дополнительных настройках, таких как имена COM-портов, местоположение avrdude и т. Д.
  2. Теперь мы полностью контролируем процесс сборки и можем настроить его в соответствии с нашими потребностями.
  3. Приложение можно перенести на другие аппаратные платформы (даже те, которые не поддерживаются PlatformIO).

Что дальше?

Теперь у нас есть ранний прототип, который использует минимальное количество компонентов и имеет ограниченные функциональные возможности. Как мы можем это улучшить?

  1. Лучшее представление
    На этом большом экране текущие данные о погоде и времени могут отображаться с использованием гораздо более крупных цифр.Это требует больше ПЗУ для шрифтов. У Arduino по-прежнему довольно много свободной флэш-памяти, и мы, вероятно, сможем реализовать более крупный шрифт с текущими настройками оборудования.
  2. График давления
    Атмосферное давление важно для прогнозирования погоды, но отслеживание его изменений во времени на самом деле даже более полезно. У нас довольно большой экран, и график давления на него точно помещается. Чтобы нарисовать такую ​​диаграмму, нам нужна схема часов реального времени (RTC), потому что встроенный генератор недостаточно точен для измерения времени.
    Arduino имеет только 2 КБ памяти, но черно-белый экран 400 * 300 требует 15 КБ памяти (400 * 300/8 = 15 КБ) для манипуляций с графикой вне экрана. Это дает нам идею заменить MCU. Обратите внимание, что некоторые современные микроконтроллеры действительно недороги и содержат как ОЗУ, так и RTC на кристалле.
  3. Питание от аккумулятора
    Устройство такого типа можно оптимизировать по потребляемой мощности, и если все сделано правильно, очень маленькая батарея может позволить ему проработать несколько месяцев подряд. К сожалению, у Arduino есть переходник USB-UART и постоянно светящийся индикатор питания.Итак, чтобы уменьшить потребление, нам нужно либо сделать нашу собственную плату, либо сделать некоторые аппаратные модификации платы, которая у нас уже есть. Если мы изменим электронику, мы сможем переключиться на другой MCU или плату, которые будут более энергоэффективными. Микроконтроллеры AVR были разработаны некоторое время назад, и современные электронные технологии намного лучше с точки зрения энергопотребления.
  4. Процесс разработки
    Для поддержки всех упомянутых выше улучшений нам нужно написать дополнительный код. И нам обязательно нужно это проверить! Как правило, микроконтроллеры Arduino и AVR дают нам возможность отправлять диагностические данные только через UART.Однако многие другие микроконтроллеры в настоящее время могут предложить здесь больше вариантов. Например, встроенные функции отладки позволяют разработчику следить за выполнением кода и значениями переменных, пока код выполняется на реальном MCU.

Продолжение следует…

Эта серия будет продолжена. Вскоре мы обсудим дальнейшее продвижение этого проекта с помощью другой платы разработки и попытаемся использовать лучшие из ее возможностей. Так что следите за обновлениями! И дайте нам знать в комментариях, какие аспекты встроенной разработки в целом и Arduino в частности вы хотели бы выделить.

Ваша команда CLion
JetBrains
Стремление к развитию

Бесплатный онлайн-курс: Платформа Arduino и программирование на C от Coursera

Arduino — это компьютерная аппаратная / программная платформа с открытым исходным кодом для создания цифровых устройств и интерактивных объектов, которые могут определять физический мир вокруг них и управлять им. В этом классе вы узнаете, как работает платформа Arduino с точки зрения физической платы и библиотек, а также IDE (интегрированная среда разработки).Вы также узнаете о щитах, которые представляют собой меньшие платы, которые подключаются к основной плате Arduino для выполнения других функций, таких как обнаружение света, тепла, GPS-слежение или обеспечение отображения пользовательского интерфейса. Курс также будет охватывать программирование Arduino с использованием кода C и доступ к контактам на плате через программное обеспечение для управления внешними устройствами. Обратите внимание, что этот курс не включает форумы для обсуждения.

По завершении этого курса вы сможете:
1. Обрисовать состав платы разработки Arduino
2.Опишите, что означает программирование прошивки платы
3. Прочтите схему платы
4. Установите Arduino IDE
5. Опишите, что такое «щиты» и как они используются
6. Укажите роль библиотек в использовании щитов
7 Скомпилируйте и запустите программу
8. Назовите переменные и типы C
9. Назовите общие операторы C
10. Используйте условные выражения и циклы
11.

alexxlab

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

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