Машинка arduino: Страница не найдена — Ардуино РоботоТехника

Содержание

Как сделать машинку на радиоуправлении Ардуино через bluetooth своими руками

Это первый роботизированный проект, который я когда-либо делал, и если вы никогда не пробовали собрать робота, то, скорее всего, думаете что это сложно. Но Ардуино и шасси 2WD / 4WD сделают вашу сборку намного проще, и вы соберете своего первого робота с радиоуправлением на Ардуино без каких-либо мучений.

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

Файлы

Шаг 1: Нужные части и инструмент

Я воспользовался готовыми решениями, и все запчасти и инструменты были приобретены через интернет.

Запчасти:

  1. Набор шасси 4WD для робота (GearBest)
  2. Arduino Nano (GearBest)
  3. Модуль H-моста LM298 (GearBest)
  4. Модуль bluetooth HC-06 (Amazon)
  5. Литий-ионные батарейки 2 x 18650 (GearBest)
  6. Отсек для батареек 2x 18650 (GearBest)
  7. Небольшая макетная плата (GearBest)
  8. Провода сечением 0.
    5 мм2
  9. Провода с джамперами папа-мама (Amazon)
  10. Провода с джамперами мама-мама (Amazon)
  11. Малярная лента, изолента или что-то подобное (Amazon)

Для робота, объезжающего препятствия:

Ультразвуковой модуль измерения расстояния HC — SR04 (GearBest)

Необходимый инструмент :

  1. Паяльник (Amazon)
  2. Кусачки (Amazon)
  3. Стриппер для провод (GearBest)
  4. Клеевой пистолет (GearBest)

Шаг 2: Что такое робот?

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

Робот состоит из следующих компонентов:

  1. Структура / Шасси
  2. Привод / Мотор
  3. Контроллер
  4. Вводные устройства / Датчики
  5. Источник питания

В следующих шагах я опишу каждый из этих компонентов, и вы всё легко поймёте.

Шаг 3: Структура / Шасси

Структура состоит из физических компонентов. Робот имеет один или несколько физических компонентов, которые каким-либо образом двигаются для выполнения задания. В нашем случае структура робота – это шасси и колёса.

Шаг 4: Приводы

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

В нашем случае привод – это DC-мотор, скорость которого равна 3000 оборотам в минуту, а вращающий момент 0.002 Н•м. Теперь добавим к нему шестерню с передаточным числом 1:48. Новая скорость уменьшается на коэффициент 48 (в результате давая 3000/44 = 68 оборотов в минуту) и вращающий момент увеличивается на коэффициент 48 (в результате давая 0.002 x 48 = 0.096 Н•м).

Шаг 5: Подготавливаем клеммы моторчиков

Отрежьте по 4 провода красного и черного цвета длиной примерно 12-15 см. Я использовал провода сечением 0.5 мм2. Оголите концы проводов. Припаяйте провода к клеммам моторчиков.

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

Шаг 6: Устанавливаем мотор

Прикрепите две акриловые распорки к каждому мотору при помощи двух длинных болтов и двух гаек. Для наглядности вы можете посмотреть видео.

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

Шаг 7: Устанавливаем крышу

Послу установки 4 моторов нужно установить крышу. Приладьте 6 медных стоек при помощи гаек, клеммы проводов выведите сквозь отверстие в крыше.

Шаг 8: Контроллер

Теперь у нас установлены шасси и приводы, но нам не хватает контроллера. Шасси без контроллера никуда не поедут. Робот будет оставаться на месте, оставаясь безжизненным. Поэтому, для того чтобы робот перемещался, нам нужен мозг (контроллер).

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

Контроллер принимает входные данные (с датчиков, удалённо и т.д.), обрабатывает их и затем даёт команду приводам (моторам) выполнить выбранное задание.

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

Микроконтроллер можно использовать, чтобы вращать мотор в одном направлении, но если вам хочется с помощью микроконтроллера вращать мотор и вперёд, и назад, то вам нужна дополнительная схема – H-мост. В следующем шаге я объясню, что это такое.

Шаг 9: Н-мост (модуль LM 298)

Что такое Н-мост?

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

Принцип работы:
Посмотрите приложенную картинку для понимания принципа работы схемы Н-моста. Мост состоит из 4 электронных выключателей S1, S2, S3, S4 (транзисторы / MOSFET/ IGBTS).

Когда выключатели S1 и S4 закрыты, а остальные два открыты, положительное напряжение будет проходить через мотор, и он будет вращаться в прямом направлении. Таким же образом, когда закрыты выключатели S2 и S3, а S1 и S4 открыты, обратное напряжение будет даваться на мотор и он начнёт вращаться в обратном направлении.

Заметка: выключатели на одной руке (то есть S1, S2 или S3, S4) никогда не закрываются одновременно – это создаст короткое замыкание.

Н-мосты доступны в виде интегральных схем, либо можно собрать свой мост при помощи 4 транзисторов или MOSFET. В моём случае используется интегральная схема Н-моста LM298, которая позволяет управлять скоростью и направлением моторов.

Описание распиновки:

Out 1: DC мотор 1 «+» или шаговый двигатель A+
Out 2: DC мотор 1 «-» или шаговый двигатель A-

Out 3: DC мотор 2 «+» или шаговый двигатель B+
Out 4: вывод мотора B
12v: вход 12V, но можно использовать от 7 до 35V
GND: Земля
5v: выход 5V, если джампер 12V стоит на месте, идеально для питания Arduino (и т. п.)
EnA: позволяет получать сигналы PWM для мотора A (Пожалуйста, прочитайте секцию «Arduino Sketch Considerations»)
IN1: включает мотор A
IN2: включает мотор A
IN3: включает мотор B
IN4: включает мотор B
BEnB: позволяет получать сигналы PWM для мотора B (Пожалуйста, прочитайте секцию «Arduino Sketch Considerations»)

Шаг 10: Входы / Датчики

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

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

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

Шаг 11: Источник питания

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

Большинство роботов питается от батарей. Когда мы говорим о батареях, то имеем в виду множество вариантов:

  1. Алкалиновые батарейки AA (не заряжаются)
  2. Никель-металгидридные или никель-кадмиевые батарейки AA (заряжаются)
  3. Литий-ионные батареи
  4. Литий-полимерные батареи

В зависимости от ваших нужд, нужно выбрать подходящий вид батарей. По-моему мнению, нужно всегда выбирать заряжаемые батареи достаточной ёмкости. Я использовал 2 литий-ионные батареи стандарта 18650 ёмкостью 2600mAh. Если для автономности вам нужно больше мощности, используйте большой комплект батарей, например 5A turnigy.

Отсек для батарей:

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

Зарядка:
Для зарядки батарей нужен хороший зарядник. По моему опыту, эти зарядники хорошо зарекомендовали себя:

  1. PowerEx AA Charger-Analyzer (Amazon)
  2. XTAR LiIon Battery Charger (Amazon)
  3. Turnigy LiPo Battery Charger (Amazon)

Шаг 12: Установка компонентов

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

Шаг 13: Электропроводка

Для соединения модулей понадобятся провода с джамперами.
Соедините красные провода двух моторов вместе (на каждой стороне) и затем черные провода. В итоге у вас выйдет по две клеммы с каждой стороны.

MOTORA отвечает за два правых мотора, соответственно два левых мотора соединены с MOTORB.
Для соединения всех компонентов следуйте инструкции:

Соединение моторов:

Out1 -> красный провод левостороннего мотора (+ )
Out2 -> черный провод левостороннего мотора ( — )
Out3 -> красный провод правостороннего мотора ( + )
Out4 -> черный провод правостороннего мотора ( — )
LM298 — > Arduino
IN1 -> D5
IN2-> D6
IN2 ->D9
IN2-> D10
Модуль Bluetooth -> Arduino
Rx-> Tx
Tx ->Rx
GND -> GND
Vcc -> 3. 3V
Питание
12V — > красный провод батарей
GND -> черный провод батарей и пин GND на Arduino
5V -> соедините с пином 5V Arduino

Шаг 14: Логика управления

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

Шаг 15: Софт

Часть с фотом очень проста, она не требует никаких библиотек. Если вы поняли таблицу логики из прошлого шага, то сможете написать свой код. Я не тратил на код много времени и просто скопировал чей-то готовый вариант. Чтобы управлять роботом-машиной, я использую смартфон, соединённый с контроллером через модуль Bluetooth (HC-06).

Скачайте приложение. После его установки, свяжите телефон с модулем Bluetooth. Пароль «1234». Код Ардуино прикреплён ниже.

Файлы

Шаг 16: Тестирование

Чтобы проверить робота-машину, я положил её на маленькую картонную коробку. Таким образом, колёса будут крутиться, но машинка будет оставаться на месте. Проверьте работоспособность, нажимая все доступные кнопки. Если всё работает, то можно по-настоящему управлять ей.

Заметка: если моторы вращаются в противоположном направлении, то просто поменяйте местами провода.

Шаг 17: Планы на будущее

В этом руководстве я объяснил, как создать простенькую машинку. Дальше я хочу добавить в неё некоторые улучшения. Вы можете присоединить к ней различные датчики, вот некоторые идеи:

  1. Добавление ультразвукового датчика для объезда препятствий
  2. Использование модуля WiFi, например ESP8266 или Node MCU вместо Bluetooth, для удлинения дистанции управления.
  3. Добавление солнечной панели для зарядки батарей.

Как сделать машинку на радиоуправлении Ардуино через bluetooth своими руками

Это первый роботизированный проект, который я когда-либо делал, и если вы никогда не пробовали собрать робота, то, скорее всего, думаете что это сложно. Но Ардуино и шасси 2WD / 4WD сделают вашу сборку намного проще, и вы соберете своего первого робота с радиоуправлением на Ардуино без каких-либо мучений.

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

Файлы

Шаг 1: Нужные части и инструмент

Я воспользовался готовыми решениями, и все запчасти и инструменты были приобретены через интернет.

Запчасти:

  1. Набор шасси 4WD для робота (GearBest)
  2. Arduino Nano (GearBest)
  3. Модуль H-моста LM298 (GearBest)
  4. Модуль bluetooth HC-06 (Amazon)
  5. Литий-ионные батарейки 2 x 18650 (GearBest)
  6. Отсек для батареек 2x 18650 (GearBest)
  7. Небольшая макетная плата (GearBest)
  8. Провода сечением 0.5 мм2
  9. Провода с джамперами папа-мама (Amazon)
  10. Провода с джамперами мама-мама (Amazon)
  11. Малярная лента, изолента или что-то подобное (Amazon)

Для робота, объезжающего препятствия:

Ультразвуковой модуль измерения расстояния HC — SR04 (GearBest)

Необходимый инструмент :

  1. Паяльник (Amazon)
  2. Кусачки (Amazon)
  3. Стриппер для провод (GearBest)
  4. Клеевой пистолет (GearBest)

Шаг 2: Что такое робот?

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

Робот состоит из следующих компонентов:

  1. Структура / Шасси
  2. Привод / Мотор
  3. Контроллер
  4. Вводные устройства / Датчики
  5. Источник питания

В следующих шагах я опишу каждый из этих компонентов, и вы всё легко поймёте.

Шаг 3: Структура / Шасси

Структура состоит из физических компонентов. Робот имеет один или несколько физических компонентов, которые каким-либо образом двигаются для выполнения задания. В нашем случае структура робота – это шасси и колёса.

Шаг 4: Приводы

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

В нашем случае привод – это DC-мотор, скорость которого равна 3000 оборотам в минуту, а вращающий момент 0.002 Н•м. Теперь добавим к нему шестерню с передаточным числом 1:48. Новая скорость уменьшается на коэффициент 48 (в результате давая 3000/44 = 68 оборотов в минуту) и вращающий момент увеличивается на коэффициент 48 (в результате давая 0. 002 x 48 = 0.096 Н•м).

Шаг 5: Подготавливаем клеммы моторчиков

Отрежьте по 4 провода красного и черного цвета длиной примерно 12-15 см. Я использовал провода сечением 0.5 мм2. Оголите концы проводов. Припаяйте провода к клеммам моторчиков.

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

Шаг 6: Устанавливаем мотор

Прикрепите две акриловые распорки к каждому мотору при помощи двух длинных болтов и двух гаек. Для наглядности вы можете посмотреть видео.

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

Шаг 7: Устанавливаем крышу

Послу установки 4 моторов нужно установить крышу. Приладьте 6 медных стоек при помощи гаек, клеммы проводов выведите сквозь отверстие в крыше.

Шаг 8: Контроллер

Теперь у нас установлены шасси и приводы, но нам не хватает контроллера. Шасси без контроллера никуда не поедут. Робот будет оставаться на месте, оставаясь безжизненным. Поэтому, для того чтобы робот перемещался, нам нужен мозг (контроллер).

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

Контроллер принимает входные данные (с датчиков, удалённо и т.д.), обрабатывает их и затем даёт команду приводам (моторам) выполнить выбранное задание.

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

Микроконтроллер можно использовать, чтобы вращать мотор в одном направлении, но если вам хочется с помощью микроконтроллера вращать мотор и вперёд, и назад, то вам нужна дополнительная схема – H-мост. В следующем шаге я объясню, что это такое.

Шаг 9: Н-мост (модуль LM 298)

Что такое Н-мост?

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

Принцип работы:
Посмотрите приложенную картинку для понимания принципа работы схемы Н-моста. Мост состоит из 4 электронных выключателей S1, S2, S3, S4 (транзисторы / MOSFET/ IGBTS).

Когда выключатели S1 и S4 закрыты, а остальные два открыты, положительное напряжение будет проходить через мотор, и он будет вращаться в прямом направлении. Таким же образом, когда закрыты выключатели S2 и S3, а S1 и S4 открыты, обратное напряжение будет даваться на мотор и он начнёт вращаться в обратном направлении.

Заметка: выключатели на одной руке (то есть S1, S2 или S3, S4) никогда не закрываются одновременно – это создаст короткое замыкание.

Н-мосты доступны в виде интегральных схем, либо можно собрать свой мост при помощи 4 транзисторов или MOSFET. В моём случае используется интегральная схема Н-моста LM298, которая позволяет управлять скоростью и направлением моторов.

Описание распиновки:

Out 1: DC мотор 1 «+» или шаговый двигатель A+
Out 2: DC мотор 1 «-» или шаговый двигатель A-
Out 3: DC мотор 2 «+» или шаговый двигатель B+
Out 4: вывод мотора B
12v: вход 12V, но можно использовать от 7 до 35V
GND: Земля
5v: выход 5V, если джампер 12V стоит на месте, идеально для питания Arduino (и т.п.)
EnA: позволяет получать сигналы PWM для мотора A (Пожалуйста, прочитайте секцию «Arduino Sketch Considerations»)
IN1: включает мотор A
IN2: включает мотор A
IN3: включает мотор B
IN4: включает мотор B
BEnB: позволяет получать сигналы PWM для мотора B (Пожалуйста, прочитайте секцию «Arduino Sketch Considerations»)

Шаг 10: Входы / Датчики

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

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

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

Шаг 11: Источник питания

Чтобы управлять приводами (моторами) и питать контроллер, роботу нужен источник питания. Большинство роботов питается от батарей. Когда мы говорим о батареях, то имеем в виду множество вариантов:

  1. Алкалиновые батарейки AA (не заряжаются)
  2. Никель-металгидридные или никель-кадмиевые батарейки AA (заряжаются)
  3. Литий-ионные батареи
  4. Литий-полимерные батареи

В зависимости от ваших нужд, нужно выбрать подходящий вид батарей. По-моему мнению, нужно всегда выбирать заряжаемые батареи достаточной ёмкости. Я использовал 2 литий-ионные батареи стандарта 18650 ёмкостью 2600mAh. Если для автономности вам нужно больше мощности, используйте большой комплект батарей, например 5A turnigy.

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

Зарядка:
Для зарядки батарей нужен хороший зарядник. По моему опыту, эти зарядники хорошо зарекомендовали себя:

  1. PowerEx AA Charger-Analyzer (Amazon)
  2. XTAR LiIon Battery Charger (Amazon)
  3. Turnigy LiPo Battery Charger (Amazon)

Шаг 12: Установка компонентов

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

Шаг 13: Электропроводка

Для соединения модулей понадобятся провода с джамперами.
Соедините красные провода двух моторов вместе (на каждой стороне) и затем черные провода. В итоге у вас выйдет по две клеммы с каждой стороны.

MOTORA отвечает за два правых мотора, соответственно два левых мотора соединены с MOTORB.
Для соединения всех компонентов следуйте инструкции:

Соединение моторов:

Out1 -> красный провод левостороннего мотора (+ )
Out2 -> черный провод левостороннего мотора ( — )
Out3 -> красный провод правостороннего мотора ( + )
Out4 -> черный провод правостороннего мотора ( — )
LM298 — > Arduino
IN1 -> D5
IN2-> D6
IN2 ->D9
IN2-> D10
Модуль Bluetooth -> Arduino
Rx-> Tx
Tx ->Rx
GND -> GND
Vcc -> 3.3V
Питание
12V — > красный провод батарей
GND -> черный провод батарей и пин GND на Arduino
5V -> соедините с пином 5V Arduino

Шаг 14: Логика управления

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

Шаг 15: Софт

Часть с фотом очень проста, она не требует никаких библиотек. Если вы поняли таблицу логики из прошлого шага, то сможете написать свой код. Я не тратил на код много времени и просто скопировал чей-то готовый вариант. Чтобы управлять роботом-машиной, я использую смартфон, соединённый с контроллером через модуль Bluetooth (HC-06).

Скачайте приложение. После его установки, свяжите телефон с модулем Bluetooth. Пароль «1234». Код Ардуино прикреплён ниже.

Файлы

Шаг 16: Тестирование

Чтобы проверить робота-машину, я положил её на маленькую картонную коробку. Таким образом, колёса будут крутиться, но машинка будет оставаться на месте. Проверьте работоспособность, нажимая все доступные кнопки. Если всё работает, то можно по-настоящему управлять ей.

Заметка: если моторы вращаются в противоположном направлении, то просто поменяйте местами провода.

Шаг 17: Планы на будущее

В этом руководстве я объяснил, как создать простенькую машинку. Дальше я хочу добавить в неё некоторые улучшения. Вы можете присоединить к ней различные датчики, вот некоторые идеи:

  1. Добавление ультразвукового датчика для объезда препятствий
  2. Использование модуля WiFi, например ESP8266 или Node MCU вместо Bluetooth, для удлинения дистанции управления.
  3. Добавление солнечной панели для зарядки батарей.

2WD Arduino машинка

Колесная платформа Arduino для создания робота автомобиля трехколесная проста и удобна. Данная платформа состоит из двух электродвигателей( напряжение питания 6 – 12 вольт), помещенных в редукторы, двух больших колес и одного поворотного колеса на кронштейне. Все элементы крепятся на пластиковой панели с отверстиями и крепятся болтами. В комплекте с платформой идет отсек для четырех пальчиковых батареек.

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

Теперь более подробно разберем возможные варианты оборудования этого шасси.

1.        Управление микроконтроллером. Такой вариант самый стандартный, вам нужно дополнительно заказать Ардуино Уно, Драйвер двигателей на L293D, ультразвуковой дальномер, кронштейн для дальномера с сервоприводом набор инфракрасных датчиков, комплект проводов. Такой вариант позволяет запрограммировать автомобиль на выполнение определенного вида движения. При необходимости вы можете докупить Bluetooth модуль HC-05 для передачи команд автомобилю со смартфона.

2.       Управление автомобилем посредством Wi Fi. В этом случае вам нужно приобрести набор NodeMcu с драйвером двигателей, вместо Ардуино Уно, а остальное оборудование вы можете выбрать такое же как в первом случае. Не забудьте комплект проводов

3.       Управление автомобилем посредством Инфракрасного пульта. Для этого необходимо приобрести набор, состоящий из пульта и приемника, драйвер двигателей L293D. Получится простая дистанционно управляемая игрушка. Не забудьте провода.

4.       Вариант управления автомобилем с помощью 433 мГц пульта дистанционного управления. Этот вариант аналогичен управлению с помощью инфракрасного пульта, но он не требует прямой видимости автомобиля.

Мы рассмотрели основные варианты подключения колесной платформы Arduino Car. Но мир намного более многообразен. Вы можете в различных вариантах комбинировать начинку вашего робота. Например подключить к Arduino Uno модуль NRF24L01 с антенной и значительно увеличить дальность действия. Или поставить модуль камеры и микрокомпьютер Raspberry Pi, управлять вашим автомобилем через браузер компьютера и наслаждаться обзором камеры.

Купить машинку Ардуино вы можете в интернет – магазине Три Оси в Кирове, Москве и по России. Мы желаем вам успехов в создании роботов.

Очередная Arduino машинка + сборка простейшего варианта

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

Что нам понадобится:

1. Шасси для робота, я взял это =9,50$
2. Драйвер двигателя, например L9110s=1,22$
3. Датчик, который будет определять препятствие, я остановился на самом популярном и дешевом варианте дальномере HC-SR04=0,94$
Однако, никто не мешает воспользоваться более дорогими аналогами или чем-то подобным
4. Крепление датчика,синий, не самый лучший, но жизнеспособный вариант. =1,08$
В качестве аналогов: прозрачный, еще существует неуловимый желтый, наиболее прошаренный, но ссылку так и не нашел. Кто будет искать на вид он похож на синий, но имеет нормальные отверстия под винт м3 и 4 шурупа для крепления дальномера.
5. Плата arduino, которая будет обрабатывать данные с датчика и выдавать решение, куда ехать дальше. Остановился на UNO, как на самой удобной для моделирования на «лету» =5.88$
Эта плата выбрана из-за возможности заменить микроконтроллер в случае фатальной неудачи, так что можно купить версию в два раза дешевле

Итого я потратил примерно 19$ на самое основное

Однако дальше больше:

набор латунных стоек для удобства сборки =8,90$, провода =7,10$, дюпон разъемы (покупал давно, дешевле и для других целей, ссылка для понимания о чем речь),клищи для обжимки разъемов =13,21$, повербанк=1,15$ + по мелочи винты, шайбы, отвертки, аккумуляторы…

!!! терминалы, разъемы, клещи можно заменить набором проводов

вышеперечисленное мне понадобится позже и не раз, не обязательно так разгоняться

Парочка фото на закуску

Провода и терминалы

Стойки, болты, гайки, шайбы

Сборка

Переходим к самому интересному — к созданию Франкенштейна!
Первым делом сверлим в синем кронштейне отверстие под болт м3, потому как иного варианта крепления я не нашел

на термоклей сажаем дальномер.

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

Крепим драйвер двигателя, подключаем моторы.

Приспосабливаем повербанк вместо батарейного отсека.
Для этого делаем два отверстия под винты м3 для крепления на шасси, припаиваем два проводка «+» и «-» к USB на плате и выводим провода через еще одно просверленное отверстие. К сожалению у меня не было под руками подходящего выключателя, так что эту функцию будет выполнять отключение проводков от ардуины. Далее крепим это дело на шасси.


Ставим ардуину, подключаем провода


Удобно, что заряжается аккумулятор через повербанк.

Вставляем аккумулятор прошиваем (воспользовался средой atmel studio 6), переворачиваем, чтобы не убежала, и тестируем, что получилось.

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

Подведем итоги

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

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


мой первый обзор ^_^

Вот похожий обзор на готовый набор для сборки, а не с злостный хэндмэйд со сверлением, пайкой и термоклеем.

Конструктор Arduino Умная машинка с Bluetooth-управлением + руководство пользователя

Конструктор Arduino Умная машинка с Bluetooth-управлением — это электронный набор для создания автомобиля, который может работать в трех режимах:

  1. движение по заданной траектории;
  2. избегание препятствий;
  3. музыкальный режим.

Особенности

  • Управление моторами осуществляется с помощью драйвера L298N.
  • Инфракрасные модули слежения обеспечивают движение машинки по определенной траектории с максимальной точностью.
  • Благодаря ультразвуковому модулю машинка ловко избегает препятствия на своем пути.
  • Управлять машинкой можно при помощи Android-смартфона через Bluetooth или пультом дистанционного управления.
  • В музыкальном режиме активный зуммер будет воспроизводить песенку «Twinkle Twinkle Little Star». Вы можете изменить мелодию, переписав код.
  • Вы можете скачать пособие пользователя, подробно описывающее все этапы создания и программирования машинки.

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

Характеристики

Питание6 В-9 В
Входное напряжение7 В-12 В
Степень редукции1:48
Габариты машинки (Д × Ш)230 мм × 120 мм
Габариты упаковки300 мм × 200 мм × 200 мм
Вес с упаковкой1200 г

Комплектация

  • Плата UNO R3 — 1 шт.
  • Мотор-редуктор – 4 шт.
  • Колесо – 4 шт.
  • Акриловая пластина — 2 шт.
  • Драйвер двигателей L298N — 1 шт.
  • Cерводвигатель SG90 — 1 шт.
  • Модуль ультразвукового датчика HC-SR04 — 1 шт.
  • Активный зуммер — 1 шт.
  • Батарейный отсек + кабель питания — 1 шт.
  • Bluetooth-модуль HC-05 — 1 шт.
  • USB-кабель — 1 шт.
  • Пульт дистанционного управления — 1 шт.
  • Модуль ИК-приемника — 1 шт.
  • Одноканальный ИК-модуль слежения (датчик линии) — 3 шт.
  • Основа + держатель для ультразвукового датчика — 1 шт.
  • Комплект винтов и креплений — 4 шт.
  • Плата расширения Sensor Shield V5.0 — 1 шт.
  • Соединительные провода «мама-мама» — 40 шт.
  • Соединительные провода «папа-папа» — 2 шт.
  • Светодиодный модуль — 2 шт.

Машинка на радиоуправлении arduino | Домострой

Корпус многофункциональных часов с сенсорным дисплеем на Arduino.

Три светильника на адресных светодиодах.

Давно я уже не делал радио управляемые модели . Решил оживить свой старый проект: Радиоуправлениена Arduino + NRF24L01 + гироскоп GY-521 MPU-6050. Но не просто оживить. Но и доработать. Так как у меня есть 3D принтер . Раму для машины решил напечатать новую. Так же с кодом решил немного поработать. За это время знаний стало больше и на старые проекты уже смотрю совсем по другому. Но обо всем по порядку.

И так напечатал раму для Ардуино машинки . Фото уже выкладывал в группе в ВК. Вот что получилось:

Исходники для печати можете скачать тут.

Установил электронику: Arduino UNO, драйвер L298n, два мотор-редуктора с колесами и конечно же радио модуль nrf24l01.

Все комплектующие лучше покупать в Китае. Например на сайте aliexpress. Потратите в 2 раза меньше. И доставка у недорогих товаров бесплатная или очень маленькая. А если купить у одного проводка. То можно сэкономить на доставке . Для этого берем 1 товар с платной доставкой. А остальные с бесплатной. И вам все положат в одну посылку и ВСЕ отправят платной доставкой. Вот такой небольшой ЛайфХак.

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

Установил 2 бокса под аккумуляторы 18650. Соединил их последовательно и подключил к драйверу L298n. Так как у драйвера есть понижающий стабилизатор на 5 вольт. С соответствующих разъемов мы берм 5в и подключаем Arduino UNO. Но тут есть минус. Нужно следить, чтобы аккумуляторы не пере разрядились. Иначе они выйдут из строя. Остальная часть схемы ни чем не отличается от предыдущего проекта.

Пульт управления берем из предыдущего проекта. Схема подключения пульта управления на Arduino + NRF24L01 + гироскоп GY-521 MPU-6050 . Выглядит вот так.

Скетч тоже без изменений.

Пульт планирую переделывать. Тем более он выглядит не очень красиво.

И ребенок у меня его модернизировал. Проводки пере подключал. Я конечно все восстановил. Но работает немного не так как раньше. Смотрите в видео всем отличие.

Искать причину почему радио пульт стал так работать нет времени и желания. Как говорил все ровно его буду переделывать.

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

При отсутствии связи данные параметры были равны 0. А ноль по коду мы приводим к -100. Вращаем колесо в обратную сторону. Вот от сюда и проблема.

В итоге получилась вот такая машинка на Arduino радио модуле nrf24l01 с пультом управления. Который управляет машиной при наклоне пульта. Не нужно нажимать на кнопки.

Этот урок показывает как сделать радиоуправляемую модель машины, которую можно контролировать через смартфон. В этом руководстве мы будем использовать плату Arduino Uno.

Шаг 1. Комплектующие

Для того, чтобы сделать модель машины на радиоуправлении (RC-машина) с использованием Ардуино и с возможностью контроля через смартфон, нам понадобятся следующие детали:

  1. Комплект шасси робота 4WD
  2. Arduino Uno
  3. Модуль H-моста LM298
  4. Модуль Bluetooth HC-05
  5. Батарея Li-po 12В
  6. Провода-перемычки
  7. Провода «папа-папа»
  8. Клейкая лента или любая другая лента
  9. Смартфон

Шаг 2. Шасси

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

Шаг 3. Моторы (приводы)

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

Отрежьте 4 кусочка красного и черного провода длиной примерно от 5 до 6 дюймов (12 — 15 см). Можно использовать провода 0,5 мм. Снимите изоляцию с проводов на каждом конце. Припаяйте провода к клеммам двигателей.

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

Шаг 4. Установка двигателей

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

Шаг 5. Ардуино контроллер

Arduino UNO — это плата микроконтроллера с открытым исходным кодом, основой которой служит микроконтроллер Microchip ATmega328P и разработанная Arduino.cc.

Плата оснащена наборами цифровых и аналоговых пинов ввода/вывода (I/O), которые могут быть подключены к различным платам расширения (экранам) и другим цепям. Плата имеет 14 цифровых контактов, 6 аналоговых контактов и программируется с помощью Arduino IDE (интегрированная среда разработки) через USB-кабель типа B. Плата может питаться от USB-кабеля или от внешней 9-вольтовой батареи, хотя он принимает напряжение от 7 до 20 вольт, по аналогии с Arduino Nano и Leonardo.

Эталонный дизайн оборудования распространяется под лицензией Creative Commons Attribution Share-Alike 2.5 и доступен на веб-сайте Arduino. Макет и производственные файлы для некоторых версий оборудования также доступны. «Uno» означает один на итальянском языке и был выбран в честь выпуска Arduino Software (IDE) 1.0. Плата Uno и версия 1.0 программного обеспечения Arduino (IDE) были эталонными версиями Arduino, теперь разработанными для более новых выпусков.

Плата Uno является первой в серии плат Arduino c USB и эталонной моделью для последующих платформ. ATmega328 на Arduino Uno поставляется с предварительно запрограммированным загрузчиком, который позволяет загружать новый код без использования внешнего аппаратного программера с использованием оригинального протокола STK500. Uno также отличается от всех предыдущих плат тем, что не использует микросхему драйвера FTDI USB-to-serial. Вместо этого он использует Atmega16U2 (Atmega8U2 до версии R2), запрограммированный как преобразователь USB-to-serial.

Микроконтроллеры обычно программируются с использованием диалекта функций из языков программирования C и C++. В дополнение к использованию традиционных наборов инструментов компилятора проект Arduino предоставляет интегрированную среду разработки (IDE).

Шаг 6. H-мост (модуль LM 298)

Термин H-мост (англ. H-bridge) выведен из типичного графического представления такой схемы. Это схема, которая может приводить двигатель постоянного тока в прямом и обратном направлении, см. рисунок выше для понимания работы H-моста.

Он состоит из 4 электронных переключателей S1, S2, S3 и S4 (транзисторы / МОП-транзисторы (MOSFET) / IGBTS). Когда переключатели S1 и S4 замкнуты (а S2 и S3 разомкнуты), на двигатель идет положительное напряжение. Поэтому он вращается в прямом направлении. Аналогично, когда S2 и S3 замкнуты, а S1 и S4 открыты, обратное напряжение идет через двигатель, поэтому он вращается в обратном направлении.

H-мосты доступны в виде интегральных микросхем, или вы можете создать свой собственный, используя 4 обычных транзистора или полевых транзистора (MOSFET). В нашем случае мы используем микросхему H-моста LM298, которая позволяет контролировать скорость и направление вращения двигателей. Ниже перейдем к описанию пинов:

Выход 1: двигатель постоянного тока 1 «+» или шаговый двигатель A+

Выход 2: двигатель постоянного тока 1 «-» или шаговый двигатель A-

Выход 3: двигатель постоянного тока 2 «+» или шаговый двигатель B+

Выход 4: двигатель B выведен

12В контакт: 12В вход, но вы можете использовать от 7 до 35 В

GND: земля

Вывод 5В: выход 5 В, если перемычка 12 В на месте, идеально подходит для питания вашего Arduino

EnA: включает сигнал ШИМ для двигателя А

IN1: включить двигатель A

IN2: включить двигатель A

IN3: включить двигатель B

IN4: включить двигатель B

EnB: включает сигнал ШИМ для двигателя B

Шаг 7. Источник питания

Для нашей радиоуправляемой модели машины на основе Ардуино и с контролем через смартфон могут быть использованы следующие батареи:

  1. Щелочная батарея типа АА (не перезаряжаемая)
  2. AA NiMh или NiCd аккумулятор
  3. Литий-ионный аккумулятор
  4. Батарея LiPo

Шаг 8. Электрические соединения

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

Соединения двигателей

Out1 -> Красный провод левого бокового мотора (+)

Out2 -> Черный провод левого двигателя (-)

Out3 -> Красный провод правой стороны двигателя (+)

Out4 -> Черный провод правой стороны двигателя (-)

LM298 -> Arduino

Модуль Bluetooth -> Arduino

Питание

12V -> Подключите красный провод аккумулятора

GND -> Подключите черный провод аккумулятора и вывод Arduino GND

5V -> Подключение к контакту Arduino 5V

Шаг 9. Логика управления

Логика управления описывается в таблице ниже.

Шаг 10. Приложение для смартфона

Скачать приложение и установить в смартфон вы можете через Google Play (ссылка).

Для управления RC-автомобилем мы используем смартфон. Смартфон подключается к контроллеру через модуль Bluetooth (HC-06/05). После установки приложения необходимо настроить связь с модулем Bluetooth. Пароль для связи: «1234».

Шаг 11. Код Ардуино

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

В этом материале предлагаем узнать, как можно сделать радиоуправляемую машинку в домашних условиях.

Начать процесс изготовления советуем с просмотра авторского видеоматериала

Для изготовления машинки, нам понадобится:
— игрушечная машинка;
— две карты Arduino Uno;
— две платы радио модуля NRF24;
— конденсатор на 470 мф, 25 вольт;
— плата драйвера двигателя L298N;
— двигатель;
— сервопривод;
— аналоговый джойстик;
— аккумуляторные батарейки;
— батарейка крона;
— две кнопки включения и выключения;
— корпус.

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

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

Далее берем два уголка для мебели и проделываем два отверстия в каждом в отмеченных на рисунке местах.

Теперь необходимо проделать отверстия диаметром 4 мм в нижней части корпуса машинки и колесах.

Собираем все. Просовываем винт в колесо, и фиксируем двумя гайками.

Далее надеваем на тот же винт уголок и снова фиксируем гайками.

Просовываем еще один винт в отверстие на корпусе, фиксируем гайками.

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

Теперь необходимо соединить сервопривод к поворотной системе.

Далее нужно соединить двигатель к шасси. Для этого распиливаем ось шасси по центру. Далее вставляем в отверстия двигателя обе полуоси и приклеиваем эпоксидным клеем.

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

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

Представляем схему сборки джойстика или передатчика.

Ниже вы можете увидеть схему сборки приемника.

В конце остается собрать электронику и механику самодельного радиоуправляемого автомобиля. При включении надо сначала включить пульт управления, после чего саму машинку.

AlexGyver/IP_car: Wi-Fi машинка с камерой на Arduino

Описание проекта

Машинка с камерой и управлением через интернет на Arduino. Основана на китайской IP камере =) Страница проекта на сайте: https://alexgyver.ru/IP_car/

Особенности:
  • Фишки, унаследованные от камеры:
    • Картинка 1280×720
    • Ночной режим (с ИК подсветкой)
    • Запись видео и съёмка фото
    • Режим рации (двухсторонняя аудиосвязь)
  • Управление из родного приложения
  • Настройки скорости и продолжительности движения

Папки

ВНИМАНИЕ! Если это твой первый опыт работы с Arduino, читай инструкцию

  • libraries — библиотеки проекта. Заменить имеющиеся версии
  • firmware — прошивки для Arduino
  • schemes — схемы подключения компонентов

Схемы

Материалы и компоненты

Ссылки оставлены на магазины, с которых я закупаюсь уже не один год

Вам скорее всего пригодится

Как скачать и прошить

  • Первые шаги с Arduino — ультра подробная статья по началу работы с Ардуино, ознакомиться первым делом!
  • Скачать архив с проектом

На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

  • Установить библиотеки в
    C:\Program Files (x86)\Arduino\libraries\ (Windows x64)
    C:\Program Files\Arduino\libraries\ (Windows x86)
  • Подключить внешнее питание 5 Вольт
  • Подключить Ардуино к компьютеру
  • Запустить файл прошивки (который имеет расширение .ino)
  • Настроить IDE (COM порт, модель Arduino, как в статье выше)
  • Настроить что нужно по проекту
  • Нажать загрузить
  • Пользоваться

Настройки в коде

FRW_SPEED 120     // скорость движения вперёд (0-255)
BKW_SPEED 80      // скорость движения назад (0-255)
TURN_SPEED 95     // скорость поворота (0-255)
MOVE_TIME 3       // время, которое машинка едет после команды (секунды)
TURN_TIME 0.4     // время, которое машинка крутится после команды (секунды)

TIMEOUT 700       // таймаут опроса выхода с драйвера (длительность отправки сигнала на моторы КАМЕРЫ)
START_DELAY 100   // задержка включения, секунды (ждём калибровку камеры)

// поворот НАЛЕВО и движение НАЗАД ограничены
INVERT_X 1        // инверт горизонтальной оси
INVERT_Y 1        // инверт вертикальной оси

FAQ

Основные вопросы

В: Как скачать с этого грёбаного сайта?
О: На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

В: Скачался какой то файл .zip, куда его теперь?
О: Это архив. Можно открыть стандартными средствами Windows, но думаю у всех на компьютере установлен WinRAR, архив нужно правой кнопкой и извлечь.

В: Я совсем новичок! Что мне делать с Ардуиной, где взять все программы?
О: Читай и смотри видос http://alexgyver.ru/arduino-first/

В: Вылетает ошибка загрузки / компиляции! О: Читай тут: https://alexgyver.ru/arduino-first/#step-5

В: Сколько стоит?
О: Ничего не продаю.

Вопросы по этому проекту

Полезная информация

Arduino Portenta Machine Control

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

Благодаря своей вычислительной мощности, Portenta Machine Control позволяет выполнять широкий спектр вариантов профилактического обслуживания и использования искусственного интеллекта. Он позволяет собирать данные в реальном времени с производственного цеха и поддерживает удаленное управление оборудованием, даже из облака, когда это необходимо.

Ключевые преимущества:

  • Более короткий срок вывода на рынок

  • Дайте новую жизнь существующим продуктам

  • Добавить возможность подключения для мониторинга и управления

  • Адаптируйте его под свои нужды, каждый вывод ввода / вывода можно настроить

  • Сделайте оборудование умнее, чтобы быть готовым к революции искусственного интеллекта

  • Обеспечьте безопасность и надежность с нуля

  • Откройте новую возможность для бизнес-модели (e.грамм. сервитизация)

  • Взаимодействуйте с вашим оборудованием с помощью расширенного HMI

  • Модульная конструкция для адаптации и модернизации

Portenta Machine Control позволяет компаниям использовать новые модели «бизнес как услуга», отслеживая использование клиентами оборудования для профилактического обслуживания и предоставляя ценные производственные данные.

Arduino Machine Control позволяет управлять стандартным программным ПЛК и может подключаться к ряду внешних датчиков и исполнительных механизмов с изолированным цифровым вводом / выводом, аналоговым вводом / выводом, совместимым с 4-20 мА, 3 настраиваемыми температурными каналами и выделенным I2C. разъем.Доступны несколько вариантов сетевого подключения, включая USB, Ethernet и WiFi / BLE, в дополнение к отраслевым протоколам, таким как RS485. Все входы / выходы защищены самовосстанавливающимися предохранителями, а система управления питанием на борту была спроектирована так, чтобы обеспечить максимальную надежность в суровых условиях.

Ядро Portenta Machine Control работает на плате микроконтроллера Arduino Portenta H7 (входит в комплект), высоконадежной конструкции, работающей в промышленных диапазонах температур (от -40 ° C до +85 ° C) с двухъядерной архитектурой, не требующей каких-либо внешних охлаждение.Главный процессор предлагает возможность подключения внешних человеко-машинных интерфейсов, таких как дисплеи, сенсорные панели, клавиатуры, джойстики и мыши, для изменения конфигурации конечных автоматов на месте и прямого управления процессами.

Дизайн Portenta Machine Control рассчитан на самые разные сценарии использования. Можно настроить выбор контактов ввода / вывода с помощью программного обеспечения. Portenta Machine Control выделяется как мощный компьютер для унификации и оптимизации производства, где один-единственный тип оборудования может удовлетворить все ваши потребности.Среди других выдающихся характеристик можно выделить следующие:

  • Промышленная производительность с использованием мощности плат Arduino Portenta

  • Корпус, совместимый с DIN-рейкой

  • Цанговые зажимы для быстрого подключения

  • Компактное устройство (170 x 90 x 50 мм)

  • Надежная конструкция, работающая при промышленных температурах (от -40 ° C до +85 ° C) с двухъядерной архитектурой, не требующей внешнего охлаждения

  • Встроенные часы реального времени (RTC) для идеальной синхронизации процессов

  • Используйте встроенные возможности подключения без каких-либо внешних компонентов

  • Сертификаты CE, FCC и RoHS

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

С легкостью добавьте Portenta Machine Control к своим существующим процессам и станьте владельцем своих решений на рынке машин.

Пинбол-автомат Arduino, который играет сам! : 13 шагов (с изображениями)

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

Все инструкции по установке зависимостей можно найти на странице github README

После установки всех зависимостей вам также потребуется собрать проект.

Создать его очень просто, его также можно найти на странице github.

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

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

Четыре основных узла асинхронно обмениваются данными друг с другом для управления потоком пинбольного автомата, когда он работает в автономном режиме. Эти узлы — Input_Output.ino, track_metal.cpp, run_low_level.py и GUI.py. Когда он не работает в автономном режиме, узел track_metal.cpp может быть опущен.

Input_Output.ino — это сценарий, загруженный в Arduino, который обрабатывает все буквальные включения / выключения компонентов пинбола и считывание данных с любых переключателей игрового поля. Эти предметы включают ласты, бамперы, рогатки, фонари, переключатели, стоячие мишени, спиннер, кнопку запуска и переключатель включения / выключения автономности.Узел Input_Output.ino выполняет две основные функции: включение элементов на игровом поле и передача статуса переключателей обратно на компьютер. Эти два пункта завершаются в разделах ROS.

Узел track_metal.cpp отвечает за обнаружение мяча в реальном времени, определение местоположения ласт с заданным шагом и принятие решения о том, когда их переворачивать. Кроме того, узел track_metal.cpp принимает один ввод от узла Input_Output.ino состояния переключателя физической автономии, чтобы знать, когда он должен перевернуть ласты.

Поиск мяча в track_metal.cpp выполняется за 6 шагов:

  1. Сделайте снимок игрового поля, когда ласты опущены и в кадре нет мяча.
  2. Преобразуйте этот кадр в оттенки серого.
  3. Сравните каждый новый кадр с исходным кадром, используя двоичный порог. Это возможно, потому что каждый кадр имеет значение цвета одного пикселя, которое его определяет.
  4. Увеличьте аномалии, обнаруженные при двоичном сравнении, используя cv :: dilate ().
  5. Получите список контуров из этого двоичного сравнения, используя cv :: findContours ().
  6. Прокрутите список. Любая область контура, которая находится между некоторым порогом, будет классифицирована как шар.

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

Поиск ласт в track_metal.cpp выполняется за 6 шагов:

  1. Создайте порог HSV, между которым ласты должны находиться. Поскольку они ярко-желтые, это может быть относительно узким порогом оттенка.
  2. Увеличьте аномалии, обнаруженные при двоичном сравнении, используя cv :: dilate ().
  3. Получите список контуров из этого двоичного сравнения, используя cv :: findContours ().
  4. Найдите центр тяжести каждого контура в списке.
  5. Отсортируйте центроиды по расстоянию до центра кадра.
  6. Возвращает два самых центральных контура, если их площади находятся между определенным порогом. Они будут двумя ластами.

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

Наконец, узел track_metal.cpp сообщает системе переворачивать ласты, когда обнаруженный пинбол попадает в желаемую «зону переворота», которая прикреплена к ластам. «Зона переворота» создается путем инициализации круга в центре вращения каждого флиппера, превращения его в N-угольник с помощью специальной функции, а затем удаления большинства точек этого N-угольника для создания клина. Этот метод позволял пользователю настраивать положение центра круга, радиус круга и точки, которые нужно удалить из круга.Эта настройка позволяла делать определенные удары на игровом поле чаще или реже и отдавала предпочтение различным стилям игры.

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

В дополнение к отслеживанию всех компонентов игрового поля в режиме, близком к реальному времени, узел run_low_level.py отвечает за сообщение Arduino о необходимости включения и выключения света и соленоидов. Чтобы сделать это эффективно, мы используем пакет планирования Python под названием apscheduler. Этот пакет позволяет разработчику указать время в формате datetime для планирования выполнения команды или функции.Однако это не позволяет разработчику сказать, что он хочет, чтобы команда выполнялась «x секунд в будущем». Мы обернули эту функцию в run_low_level.py, чтобы разрешить включение света и указание на выключение через «x секунд».

run_low_level.py также предоставляет некоторые функции для отслеживания списка рекордов для ручного воспроизведения. После каждой игры пользователи могут ввести свое имя, и он будет сверять их счет по внутреннему списку. Если они попадают в первую десятку игроков, их имя попадает в список.Для хранения и извлечения этого списка использовался пакет python pickle для записи сериализованного списка в файл. Кроме того, список инициализируется набором оценок по умолчанию, если пользователь не создавал список раньше. Последний узел, GUI.py, чрезвычайно прост по сравнению с другими перечисленными. Единственное, что делает GUI.py — отображает на экране текущий счет, бонус и режим игры. Все три из них входят в GUI.py через тему ROS, которая обновляет объект GUI. Графический интерфейс был создан с использованием пакета python Tkinter.Этот пакет невероятно прост в использовании и имеет элегантный вид.

Как начать работу с машинным обучением на Arduino | от TensorFlow | TensorFlow

Гостевой пост от Сандипа Мистри и Доминика Паяка из команды Arduino

Arduino ставит перед собой задачу сделать машинное обучение достаточно простым для использования всеми. Мы работали с командой TensorFlow Lite в течение последних нескольких месяцев и рады показать вам, над чем мы работали вместе: по внедрению TensorFlow Lite Micro в Arduino Nano 33 BLE Sense.В этой статье мы покажем вам, как установить и запустить несколько новых примеров TensorFlow Lite Micro, которые теперь доступны в диспетчере библиотек Arduino.

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

Пример 1: Запуск предварительно обученного примера вывода micro_speech.

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

Пример 2: Обучение собственной модели классификации жестов.

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

Мы рады поделиться некоторыми из первых примеров и руководств и посмотреть, что вы будете строить отсюда.Давайте начнем!

Примечание: следующие проекты основаны на TensorFlow Lite для микроконтроллеров, который в настоящее время является экспериментальным в репозитории TensorFlow . Это все еще новая и развивающаяся область!

Микроконтроллеры и TinyML

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

Arduino — это платформа с открытым исходным кодом и сообщество, цель которого — сделать разработку приложений для микроконтроллеров доступной для всех. Плата, которую мы здесь используем, оснащена микроконтроллером Arm Cortex-M4, работающим на частоте 64 МГц, с 1 МБ флэш-памяти и 256 КБ ОЗУ. Это крошечный размер по сравнению с облаком, ПК или мобильным устройством, но разумный по стандартам микроконтроллеров.

Плата Arduino Nano 33 BLE Sense меньше, чем кусок резинки

Есть практические причины, по которым вы можете использовать ML на микроконтроллерах, в том числе:

  • Функция — желание, чтобы интеллектуальное устройство работало быстро и локально (независимо от Интернет).
  • Стоимость — это достигается с помощью простого и недорогого оборудования.
  • Конфиденциальность — нежелание делиться всеми данными датчиков извне.
  • Эффективность — меньший форм-фактор устройства, энергосбережение или увеличенное время автономной работы.

Есть конечная цель, к которой мы стремимся, это очень важно:

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

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

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

Arduino Nano 33 BLE Sense имеет множество встроенных датчиков, означающих потенциал для некоторых интересных приложений Tiny ML:

  • Голос — цифровой микрофон
  • Движение — 9-осевой IMU (акселерометр, гироскоп, магнитометр)
  • Окружающая среда — температура , влажность и давление
  • Свет — яркость, цвет и близость к объекту

В отличие от классической Arduino Uno, плата сочетает в себе микроконтроллер со встроенными датчиками, что означает, что вы можете решать многие задачи без дополнительного оборудования или проводки.Плата также достаточно мала, чтобы ее можно было использовать в таких конечных приложениях, как носимые устройства. Как следует из названия, он имеет соединение Bluetooth LE, поэтому вы можете отправлять данные (или результаты вывода) на ноутбук, мобильное приложение или другие платы и периферийные устройства BLE.

Совет: датчики на USB-накопителе

Подключение платы BLE Sense через USB — это простой способ сбора данных и добавления нескольких датчиков к одноплатным компьютерам без необходимости в дополнительной проводке или оборудовании — хорошее дополнение к Raspberry Пи, например.

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

  • micro_speech — распознавание речи с использованием встроенного микрофона
  • magic_wand — распознавание жестов с использованием встроенного IMU
  • person_detection — обнаружение человека с помощью внешней камеры ArduCam

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

Как запускать примеры с помощью веб-редактора Arduino Create

После подключения Arduino Nano 33 BLE Sense к настольному компьютеру с помощью кабеля USB вы сможете скомпилировать и запустить следующие примеры TensorFlow на плате, используя Arduino Create Веб-редактор:

Компиляция примера из библиотеки Arduino_TensorFlowLite

Сосредоточьтесь на примере распознавания речи: micro_speech

Одним из первых шагов с платой Arduino является мигание светодиода.Здесь мы сделаем это с изюминкой, используя TensorFlow Lite Micro для распознавания голосовых ключевых слов. В нем простой словарь «да» и «нет». Помните, что эта модель работает локально на микроконтроллере с объемом оперативной памяти всего 256 КБ, поэтому не ожидайте точности на уровне коммерческого «голосового помощника» — у нее нет подключения к Интернету и доступно примерно в 2000 раз меньше локальной оперативной памяти.

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

Выполнение примера micro_speech

Как запустить примеры с помощью Arduino IDE

В качестве альтернативы вы можете использовать те же примеры вывода с помощью приложения Arduino IDE.

Сначала следуйте инструкциям в следующем разделе Настройка Arduino IDE.

В среде Arduino IDE вы увидите примеры, доступные через меню Файл> Примеры > Arduino_TensorFlowLite в ArduinoIDE.

Выберите пример, и эскиз откроется.Чтобы скомпилировать, загрузить и запустить примеры на плате, щелкните значок стрелки:

Для опытных пользователей, предпочитающих командную строку, есть также arduino-cli.

Классификация жестов на Arduino BLE 33 Nano Sense, вывод как Emojis

Далее мы будем использовать ML, чтобы позволить плате Arduino распознавать жесты. Мы будем собирать данные о движении с платы Arduino Nano 33 BLE Sense, импортировать их в TensorFlow для обучения модели и развертывать полученный классификатор на плате.

Идея этого руководства была основана на замечательной игре Чарли Джерарда Play Street Fighter с движениями тела с использованием Arduino и Tensorflow.js . В примере Чарли плата передает все данные датчиков с Arduino на другую машину, которая выполняет классификацию жестов в Tensorflow.js. Мы идем дальше и «TinyML-ify» выполняем классификацию жестов на самой плате Arduino. В нашем случае это стало проще, поскольку используемая нами плата Arduino Nano 33 BLE Sense имеет более мощный процессор Arm Cortex-M4 и встроенный IMU.

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

Настройка Arduino IDE

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

  • Загрузите и установите Arduino IDE из https://arduino.cc/downloads
  • Откройте приложение Arduino, которое вы только что установили.
  • В меню Arduino IDE выберите Tools> Board> Boards Manager…
  • Найдите «Nano BLE» и нажмите «Установить» на плате
  • Установка займет несколько минут
  • Когда это будет сделано, закройте окно Boards Manager
  • Теперь перейдите в Диспетчер библиотек. Инструменты> Управление библиотеками…
  • Найдите и установите библиотеку Arduino_TensorFlowLite
  • Затем найдите и установите библиотеку Arduino_LSM9DS1 :
  • Наконец, подключите кабель micro USB к плате и компьютеру
  • Выберите плату Инструменты> Плата> Arduino Nano 33 BLE
  • Выберите порт Инструменты> Порт> COM5 (Arduino Nano 33 BLE)
  • Обратите внимание, что Фактическое имя порта на вашем компьютере может быть другим.

Если вам нужна помощь, на сайте Arduino есть более подробные руководства по началу работы и устранению неполадок.

Потоковая передача данных датчиков с платы Arduino

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

Платы Arduino запускают небольшие приложения (также называемые эскизами ) , которые скомпилированы из исходного кода Arduino в формате .ino и запрограммированы на плату с помощью Arduino IDE или Arduino Create.

Мы будем использовать готовый набросок IMU_Capture.ino , который выполняет следующие действия:

  • Мониторинг акселерометра и гироскопа платы
  • Запускает окно выборки при обнаружении значительного линейного ускорения платы
  • Пример в течение одной секунды при частоте 119 Гц, вывод данных в формате CSV через USB
  • Повторная петля и монитор для следующего жеста

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

Чтобы запрограммировать плату с этим скетчем в Arduino IDE:

  • Загрузите IMU_Capture.ino и откройте его в Arduino IDE
  • Скомпилируйте и загрузите его на плату с помощью Sketch> Upload

Визуализация датчика в реальном времени журнал данных с платы Arduino

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

  • В среде Arduino IDE откройте Serial Plotter Tools> Serial Plotter
  • Если вы получаете сообщение об ошибке, что плата недоступна, повторно выберите порт:
  • Tools> Port> portname (Arduino Nano 33 BLE)
  • Возьмите доску и потренируйтесь в жестах удара и сгибания
  • Вы увидите только образец в течение одной секунды окна, затем дождитесь следующего жеста
  • Вы должны увидеть живой график захвата данных датчика (см. GIF ниже)
Arduino IDE Serial Plotter покажет живой график вывода данных CSV с вашей платы

Когда вы закончите, обязательно закройте окно Serial Plotter — это важно, так как следующий шаг не будет работать иначе.

Захват данных обучения жестам

Чтобы записать данные в виде журнала CSV для загрузки в TensorFlow, вы можете использовать Arduino IDE> Инструменты> Serial Monitor , чтобы просмотреть данные и экспортировать их на свой настольный компьютер:

  • Сбросить плата, нажав маленькую белую кнопку наверху
  • Возьмите плату в одну руку (взяв ее позже, запустится выборка)
  • В Arduino IDE откройте Serial Monitor Tools> Serial Monitor
  • Если у вас получится ошибка, что плата недоступна, повторно выберите порт:
  • Инструменты> Порт> имя порта (Arduino Nano 33 BLE)
  • Сделайте жест удара платой в руке (будьте осторожны при этом!)
  • Сделайте удар наружу достаточно быстро, чтобы вызвать захват
  • Медленно вернитесь в нейтральное положение, чтобы не запускать захват снова
  • Повторите этап захвата жеста 10 или более раз, чтобы собрать больше данных 900 12
  • Скопируйте и вставьте данные из последовательной консоли в новый текстовый файл с именем punch.csv
  • Очистите вывод окна консоли и повторите все описанные выше шаги, на этот раз с жестом гибкости в файле с именем flex.csv
  • Сделайте внутреннюю гибкость достаточно быстрой, чтобы захват каждый раз возвращался медленно

первая строка ваших двух файлов csv должна содержать поля aX , aY , aZ , gX , gY , gZ

Совет Linux: , если вы предпочитаете, вы можете перенаправить датчик log вывод из Arduino прямо в файл.csv в командной строке. При закрытых окнах последовательного плоттера / последовательного монитора используйте:

 $ cat /dev/cu.usbmodem[nnnnn]> sensorlog.csv 

Обучение в TensorFlow

Мы собираемся использовать Google Colab для обучения нашей модели машинного обучения с помощью данные, которые мы собрали с платы Arduino в предыдущем разделе. Colab предоставляет блокнот Jupyter, который позволяет нам запускать обучение TensorFlow в веб-браузере.

Обучение распознаванию жестов Arduino colab

Colab проведет вас через следующее:

  • Настройка среды Python
  • Загрузите пуансон .csv и flex.csv данные
  • Анализ и подготовка данных
  • Создание и обучение модели
  • Преобразование обученной модели в TensorFlow Lite
  • Кодирование модели в файле заголовка Arduino

Последний шаг colab генерирует файл model.h для загрузки и включения в наш проект классификатора жестов Arduino IDE в следующем разделе:

Давайте откроем записную книжку в Colab и пройдемся по шагам в ячейках — arduino_tinyml_workshop.ipynb

Далее мы будем использовать файл model.h, который мы только что обучили и загрузили из Colab в предыдущем разделе нашего проекта Arduino IDE:

  1. Откройте IMU_Classifier.ino в Arduino IDE.
  2. Создайте новую вкладку в среде IDE. Когда вас спросят, назовите его model.h

3. Откройте вкладку model.h и вставьте версию, которую вы загрузили из Colab

4. Загрузите эскиз: Sketch> Upload

5. Откройте файл Монитор последовательного порта: Инструменты> Монитор последовательного порта

6.Выполните несколько жестов

7. Достоверность каждого жеста будет распечатана на последовательном мониторе (0 = низкая достоверность, 1 = высокая достоверность)

Поздравляем, вы только что обучили свое первое приложение ML для Arduino!

Для дополнительного развлечения в примере Emoji_Button.ino показано, как создать USB-клавиатуру, которая печатает символ эмодзи в Linux и macOS. Попробуйте объединить пример Emoji_Button.ino с эскизом IMU_Classifier.ino, чтобы создать клавиатуру эмодзи, управляемую жестами 👊.

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

Для получения исчерпывающей информации о TinyML и примерах приложений в этой статье мы рекомендуем новую книгу О’Рейли Пита Уордена и Дэниэла Ситунаяке «TinyML: Машинное обучение с TensorFlow на Arduino и микроконтроллерах со сверхнизким энергопотреблением»

3D-печать Arduino Sorting Machine :: Member Project |

Что, черт возьми, такое сортировочная машина Arduino, напечатанная на 3D-принтере? Это то, что происходит, когда у вас есть некоторые навыки программирования на Arduino, способность 3D-печати и сладкоежка к кеглям красного цвета! Эта машина, созданная полностью с нуля, автоматически сортирует кегли по цвету!

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

Прочтите ниже, чтобы узнать больше о его проекте … Также посмотрите его УДИВИТЕЛЬНОЕ видео на YouTube, встроенное ниже, которое шаг за шагом проведет вас через 3D-печатную сортировочную машину Arduino!

  • Arduino Uno
  • Серводвигатель
  • Потенциометр
  • Датчик освещенности
  • Адаптер переменного / постоянного тока

Какого черта вы создали сортировочную машину Arduino с 3D-печатью?

Я очень люблю Red Skittles! Кроме того, я видел этот проект некоторое время назад, и я хотел попробовать его сейчас, когда я более уверен в программировании Arduino.

Это проект для работы или для ваших личных интересов?

Пришельцы заставили меня это сделать!

Как работает ваш проект?

Сначала я сделал набросок Arduino, чтобы понять, как работает датчик TCS3200. Я просмотрел несколько видеороликов на YouTube и искал дополнительную информацию в Интернете.

Я создал начальный набросок, в котором измерил значения красного, зеленого, синего и прозрачного цветов на цветном объекте. Эта программа будет использоваться как «определяемая пользователем функция» в завершенном проекте.

После этого я сделал небольшую программу с двумя потенциометрами, чтобы найти правильные положения сервоприводов. Я использовал такие функции, как analogRead, Map & Servo library, чтобы выяснить эти значения.

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

Нажмите здесь, чтобы перейти к приведенному ниже коду!

Щелкните здесь, чтобы загрузить схему!

Что было для вас самой большой проблемой, когда вы работали над этим проектом?

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

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

Завершился ли проект так, как вы ожидали?

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

Я заменил шаговый двигатель на более мощный сервопривод, и он работал намного лучше. В будущем попробую еще раз с более мощным шаговым двигателем.

Оглядываясь назад на этот проект, что вы можете сказать, что узнали о программировании и / или электронике в процессе создания?

Я многому научился на этом проекте. Поначалу боялся даже попробовать. Я всегда говорил: «Я не готов к этому!» но после некоторой тяжелой работы и повторного просмотра некоторых уроков на П.E.A. Мне удалось добиться успеха.

Я узнал больше о определяемых пользователем функциях (модуль 9 в курсе P.E.A. Arduino для абсолютных новичков) и использовал многое из того, что узнал здесь; Карта, переключатель, оператор if, для оператора, библиотек и т. Д.

Спасибо, Майкл и ребята из P.E.A.!

Помогло ли обучение в Академии электроники программирования помочь вам развить свои навыки?

Конечно! Я очень доволен достигнутыми результатами.Никогда не думал, что смогу создать / понять программу такого типа. Впереди еще долгий путь, но этот небольшой успех побуждает меня продолжать усердно работать.

Есть ли какие-нибудь заключительные замечания по поводу представленного проекта, которые мы не рассмотрели в другом месте?

Я просто хочу еще раз поблагодарить Майкла и пригласить моих коллег / студентов Programming Electronics поделиться своими проектами, чтобы мы могли вместе узнать больше.

О Карлосе

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

У

Карлоса также есть канал на YouTube, который стоит проверить -> Electromechanical Guy.

Эскиз сортировки цветов Arduino:

 / * Программа для маленькой "Сортировочной машины по цвету"
 Эта машина будет сортировать по цветам «Кегли».
 Первый серводвигатель сделает X шагов, чтобы поставить конфету на место.
 тогда датчик цвета выполнит свою работу,
 2-й сервопривод переместится в положение цвета
 а затем шаговый двигатель снова заработает.Для проекта мы будем использовать:
 1x микро сервопривод: SG90
 1x сервопривод: MG995
 1x датчик цвета: GY31 TCS3200
 1x Arduino Uno

 На основе кода Деяна Неделковски
  https://www.youtube.com/user/DejanNedelkovski 
* /

#include < Серво  .h>

// Определяем контакты датчика цвета
#define s0 2 // Вывод S0 датчика на выводе # 2 Arduino
#define s1 3 // Вывод S1 датчика на выводе # 3 Arduino
#define s2 4 // Вывод S2 датчика на выводе 4 Arduino
#define s3 5 // Вывод S3 датчика на выводе # 5 Arduino
#define sensorOut 6 // Выходной контакт датчика на контакте №6 Arduino


// Переменная для сохранения данных, поступающих от sensorOut
int частота = 0;

// Переменная для сохранения цвета
byte identifyColor = 0;

// Объявление сервоприводов

  Servo  FeedServo;
  Servo  solutionServo;

// Объявление общих задержек
byte smallDelay_ms = 5;
byte mediumDelay_ms = 30;
байт bigDelay_ms = 1000;
byte veryBigDelay_ms = 2000;


// Удаление положения фидераServo
byte pos1FeederServo = 165;
byte pos2FeederServo = 92;
byte pos3FeederServo = 12;

// Делкаринг позиции DecisionServo
байтовое решение Servo_RED = 14;
байтовое решениеServo_ORANGE = 53;
байтовое решениеServo_GREEN = 85;
байтовое решение Servo_YELLOW = 115;
байтовое решениеServo_PURPLE = 165;

void setup () {

 // Устанавливаем контакты датчика цвета
 pinMode (s0, ВЫХОД);
 pinMode (s1, ВЫХОД);
 pinMode (s2, ВЫХОД);
 pinMode (s3, ВЫХОД);
 pinMode (sensorOut, ВХОД);

 / * Контакты S0 и S1 работают для масштабирования частоты
 L - L = отключение питания
 L - H = 2%
 H - L = 20%
 H - H = 100%
 * /
 // Использование на 100%
 digitalWrite (s0, HIGH);
 digitalWrite (s1, HIGH);

 // Присоединение сервоприводов
 feedServo.прикрепить (9);
 solutionServo.attach (11);

 // Устанавливаем последовательную связь в байтах в секунду
  Серийный . Начало (9600);

} // Закрываем настройку

void loop () {

 // Записываем "шаги" в 1 градус сервопривода до pos2 (положение датчика)
 for (int i = pos1FeederServo; i> pos2FeederServo; i--) {

 feedServo.write (i);
 задержка (mediumDelay_ms);

 } // закрываем цикл

 // Задержка для стабилизации показаний
 задержка (bigDelay_ms);

 // Запускаем функцию getTheColor
 selectedColor = getTheColor ();

 // Переключить регистр, чтобы решить, какой цвет мы читаем
 /*********ВАЖНЫЙ********
 * Пожалуйста, откалибруйте свои сервоприводы и датчик TCS3200 перед загрузкой этой программы,
 * В зависимости от механической установки положение сервоприводов может меняться
 * Также TCS3200 может дать вам другие показания по сравнению с минами.
 * из-за окружающего освещения (свет меняется в целом)
 * /
 switch (identifyColor) {

 // Футляр для красного
 Дело 1:
 решениеServo.написать (solutionServo_RED);
 перерыв;

 // Чехол для Orange
 случай 2:
 solutionServo.write (solutionServo_ORANGE);
 перерыв;

 // Дело в пользу зеленого
 случай 3:
 solutionServo.write (solutionServo_GREEN);
 перерыв;

 // Случай желтого
 случай 4:
 solutionServo.write (solutionServo_YELLOW);
 перерыв;

 // Футляр для Purple
 случай 5:
 solutionServo.write (solutionServo_PURPLE);
 перерыв;

 } // закрываем Switch Case

 // Задержка выхода из позиции
 задержка (bigDelay_ms);


 // Перемещение сервопривода подачи в позицию выхода
 for (int i = pos2FeederServo; i> pos3FeederServo; i--) {

 feedServo.написать (я);
 задержка (mediumDelay_ms);

 } // Закрытие цикла - сервопривод для выхода из позиции

 // Задержка возврата сервопривода
 задержка (bigDelay_ms);


 // Возвращаем сервопривод подачи в исходное положение
 for (int i = pos3FeederServo; i  Серийный .печать ("R =");
  Серийный  .print (redValue);
  Серийный номер  .print ("");

 задержка (50);

 // --- прочитаем зеленые значения ... S2 LOW - S3 HIGH ---
 digitalWrite (s2, LOW);
 digitalWrite (s3, HIGH);
 частота = pulseIn (sensorOut, LOW);

 int greenValue = частота;

  Серийный  .print ("G =");
  Серийный  .print (greenValue);
  Серийный номер  .print ("");

 задержка (50);


 // --- прочитаем синие значения... S2 ВЫСОКИЙ - S3 НИЗКИЙ ---
 digitalWrite (s2, HIGH);
 digitalWrite (s3, LOW);
 частота = pulseIn (sensorOut, LOW);

 int blueValue = частота;

  Серийный  .print ("B =");
  Серийный  .print (blueValue);
  Серийный номер  .print ("");

 задержка (50);


 // --- прочитаем Clear values ​​... S2 HIGH - S3 HIGH ---
 digitalWrite (s2, HIGH);
 digitalWrite (s3, HIGH);
 частота = pulseIn (sensorOut, LOW);

 int clearValue = частота;

  Серийный .печать ("C =");
  Серийный  .print (clearValue);
  Серийный номер  .println ("");

 задержка (50);


 ////////// Параметры для красного //////////
 if (redValue <38 & redValue> 14 & clearValue <58 & clearValue> = 45) {
 connectedColor = 1; // Красный
 }

 ////////// Параметры для оранжевого //////////
 if (redValue <27 & redValue> 10 & clearValue <45 & clearValue> = 35) {
 connectedColor = 2; // Апельсин
 }


 ////////// Параметры для зеленого //////////
 if (blueValue <15 & blueValue> 4 & clearValue <35 & clearValue> 20) {
 connectedColor = 3; // Зеленый
 }

 ////////// Параметры для желтого //////////
 if (redValue <20 & redValue> 8 & clearValue <24 & clearValue> 10) {
 connectedColor = 4; // Желтый
 }

 ////////// Параметры для фиолетового //////////
 if (redValue <49 & redValue> 39 & clearValue <65 & clearValue> 50) {
 connectedColor = 5; // Фиолетовый
 }


 // --- вернем найденное значение ---
 возвращаем connectedColor;

} // Закрываем функцию getTheColor

 

Что такое Ардуино? — учить.sparkfun.com

Добавлено в избранное Любимый 41 год

Введение

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

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

Это Arduino Uno

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

Это снимок экрана IDE Arduino.

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

Вы узнаете

В этом руководстве мы рассмотрим следующее:

  • Какие проекты можно реализовать с помощью Arduino
  • Что находится на типичной плате Arduino и почему
  • Различные разновидности плат Arduino
  • Некоторые полезные виджеты для использования с Arduino

Рекомендуемая литература

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

Ищете подходящую Arduino?

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

Отведи меня туда!

Для чего он нужен?

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

Для всего, от роботов и грелки для согрева рук до честных гадальных машин и даже для перчаток для бросания кубиков в Dungeons and Dragons, Arduino может использоваться как мозг практически для любого проекта в области электроники.

_Наденьте свою репутацию ботаника на рукаве … эээ, руку. _

И это действительно только верхушка айсберга — если вам интересно, где найти больше примеров проектов Arduino в действии, вот несколько хороших ресурсов для проектов на основе Arduino, которые помогут вам в творчестве:

Что на доске?

Существует множество разновидностей плат Arduino (объяснение на следующей странице), которые можно использовать для различных целей.Некоторые платы выглядят немного иначе, чем та, что представлена ​​ниже, но большинство Arduinos имеют большинство этих общих компонентов:

Питание (USB / цилиндрический разъем)

Каждой плате Arduino нужен способ подключения к источнику питания. Arduino UNO может питаться от USB-кабеля, идущего от вашего компьютера, или от настенного источника питания (например, этого), который заканчивается в цилиндрическом разъеме. На рисунке выше разъем USB обозначен (1) , а цилиндрический разъем — (2) .

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

ПРИМЕЧАНИЕ: НЕ ИСПОЛЬЗУЙТЕ источник питания с напряжением более 20 В, так как вы перегрузите (и тем самым разрушите) ваш Arduino. Рекомендуемое напряжение для большинства моделей Arduino составляет от 6 до 12 В.

контакта (5 В, 3,3 В, GND, аналоговый, цифровой, PWM, AREF)

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

  • GND (3) : сокращение от «Ground». На Arduino есть несколько контактов GND, любой из которых можно использовать для заземления вашей цепи.
  • 5 В (4) и 3,3 В (5) : Как вы могли догадаться, вывод 5 В обеспечивает питание 5 В, а вывод 3,3 В — 3.3 вольта питания. Большинство простых компонентов, используемых с Arduino, нормально работают от 5 или 3,3 вольт.
  • Аналоговый (6) : Область контактов под меткой «Аналоговый вход» (от A0 до A5 на UNO) является контактами аналогового входа. Эти контакты могут считывать сигнал с аналогового датчика (например, датчика температуры) и преобразовывать его в цифровое значение, которое мы можем прочитать.
  • Цифровой (7) : Напротив аналоговых контактов находятся цифровые контакты (от 0 до 13 на UNO). Эти контакты могут использоваться как для цифрового входа (например, для сообщения о нажатии кнопки), так и для цифрового выхода (например, для питания светодиода).
  • PWM (8) : Вы могли заметить тильду (~) рядом с некоторыми цифровыми контактами (3, 5, 6, 9, 10 и 11 на UNO). Эти контакты действуют как обычные цифровые контакты, но также могут использоваться для так называемой широтно-импульсной модуляции (ШИМ). У нас есть руководство по ШИМ, но пока подумайте об этих выводах как о способных имитировать аналоговый выход (например, включение и выключение светодиода).
  • AREF (9) : Стенды для аналогового задания. В большинстве случаев эту булавку можно оставить в покое. Иногда его используют для установки внешнего опорного напряжения (от 0 до 5 В) в качестве верхнего предела для аналоговых входных контактов.

Кнопка сброса

Как и в оригинальной Nintendo, Arduino имеет кнопку сброса (10) . Нажатие на нее временно подключит контакт сброса к земле и перезапустит любой код, загруженный на Arduino. Это может быть очень полезно, если ваш код не повторяется, но вы хотите протестировать его несколько раз. Однако, в отличие от оригинальной Nintendo, продувка Arduino обычно не решает никаких проблем.

Светодиодный индикатор питания

Справа от слова «UNO» на печатной плате есть крошечный светодиод рядом со словом «ON» (11) .Этот светодиод должен загораться всякий раз, когда вы подключаете Arduino к источнику питания. Если этот индикатор не загорается, велика вероятность, что что-то не так. Пора перепроверить вашу схему!

TX RX Светодиоды

TX — это передача, RX — прием. Эти отметки довольно часто встречаются в электронике, чтобы указать на контакты, отвечающие за последовательную связь. В нашем случае на Arduino UNO есть два места, где появляются TX и RX — один раз рядом с цифровыми выводами 0 и 1, а второй раз рядом со светодиодами TX и RX (12) .Эти светодиоды будут давать нам приятную визуальную индикацию всякий раз, когда наш Arduino получает или передает данные (например, когда мы загружаем новую программу на плату).

Основная микросхема

Черная штука со всеми металлическими ножками — это ИС или интегральная схема (13) . Думайте об этом как о мозге нашего Arduino. Основная микросхема Arduino немного отличается от типа платы к типу платы, но обычно от линейки микросхем ATmega от компании ATMEL. Это может быть важно, так как вам может потребоваться узнать тип IC (вместе с типом вашей платы), прежде чем загружать новую программу из программного обеспечения Arduino.Эту информацию обычно можно найти в письменной форме на верхней стороне ИС. Если вы хотите узнать больше о различиях между различными микросхемами, часто полезно прочитать таблицы данных.

Регулятор напряжения

Регулятор напряжения (14) на самом деле не то, с чем вы можете (или должны) взаимодействовать на Arduino. Но потенциально полезно знать, что он есть и для чего он нужен. Стабилизатор напряжения делает именно то, что он говорит — он контролирует количество напряжения, которое подается на плату Arduino.Думайте об этом как о привратнике; он отключит дополнительное напряжение, которое может повредить цепь. Конечно, у этого есть свои пределы, поэтому не подключайте Arduino к чему-либо, превышающему 20 вольт.

Семейство Arduino

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

Arduino Uno (R3)

Uno — отличный выбор для вашего первого Arduino. В нем есть все, что нужно для начала, и ничего лишнего. Он имеет 14 цифровых входов / выходов (из которых 6 могут использоваться как выходы ШИМ), 6 аналоговых входов, USB-соединение, разъем питания, кнопку сброса и многое другое. Он содержит все необходимое для поддержки микроконтроллера; просто подключите его к компьютеру с помощью кабеля USB или включите адаптер переменного тока в постоянный или аккумулятор, чтобы начать работу.

LilyPad Arduino

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

RedBoard

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

RedBoard может быть запрограммирован через кабель USB Mini-B с помощью Arduino IDE. Он будет работать в Windows 8 без изменения настроек безопасности (мы использовали подписанные драйверы, в отличие от UNO). Он более стабилен благодаря используемому нами чипу USB / FTDI, а также полностью плоский на задней панели, что упрощает встраивание в ваши проекты. Просто подключите плату, выберите «Arduino UNO» в меню платы, и вы готовы загрузить код.Вы можете подключить RedBoard через USB или через гнездо. Встроенный регулятор мощности может работать от 7 до 15 В постоянного тока.

Ардуино Мега (R3)

Arduino Mega похожа на старшего брата UNO. Он имеет множество ( 54! ) цифровых входов / выходов (14 могут использоваться как выходы ШИМ), 16 аналоговых входов, USB-соединение, разъем питания и кнопку сброса. Он содержит все необходимое для поддержки микроконтроллера; просто подключите его к компьютеру с помощью кабеля USB или включите адаптер переменного тока в постоянный или аккумулятор, чтобы начать работу.Большое количество контактов делает эту плату очень удобной для проектов, требующих большого количества цифровых входов или выходов (например, множества светодиодов или кнопок).

Ардуино Леонардо

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

Расширенная семья

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

Датчики

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

Только несколько датчиков, которые легко совместимы с Arduino

Щиты

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

Частичный выбор доступных экранов для увеличения мощности вашего Arduino

Подробнее о щитах см .:

Ресурсы и дальнейшее развитие

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

Ищете подходящую Arduino?

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

Отведи меня туда!

Учебники SparkFun

Установка библиотеки Arduino

Как установить собственную библиотеку Arduino? Это просто! В этом руководстве будет рассказано, как установить библиотеку Arduino с помощью диспетчера библиотек Arduino.Для библиотек, не связанных с Arduino IDE, мы также рассмотрим установку библиотеки Arduino вручную.

Установка Arduino IDE

Пошаговое руководство по установке и тестированию программного обеспечения Arduino в Windows, Mac и Linux.

Установка определений плат в Arduino IDE

Как установить нестандартную плату / ядро ​​Arduino? Это просто! В этом руководстве будет рассказано, как установить определение платы Arduino с помощью Arduino Board Manager.Мы также рассмотрим ручную установку сторонних ядер, таких как определения плат, необходимые для многих плат для разработки SparkFun.

Руководства по Arduino
Руководства по сравнению плат Arduino

Стандартное руководство по сравнению Arduino

Руководство по сравнению Arduino Uno или Pro Mini? Bluetooth или беспроводной? Когда дело доходит до Arduinos, есть много вариантов.Мы скомпилировали все разработки Arduino…

RedBoard против Uno

В этом руководстве мы обсуждаем различия и сходства между RedBoard и Arduino Uno (SMD и PTH). Платформы разработки

Начало работы с Arduino Shields

Шилды для Arduino v2

Обновление нашего классического руководства по Arduino Shields! Все, что Arduino экранирует.Что это такое и как их собрать.

Другие руководства по Arduino Shield

Руководство по подключению Spectrum Shield (v2)

Хотите, чтобы ваш проект реагировал на музыку? Тогда SparkFun Spectrum Shield — это продукт для вас! Начните работу в кратчайшие сроки с этим руководством по подключению.

Новичок Средний Продвинутый

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


Начинающий

Последовательная связь

Концепции асинхронной последовательной связи: пакеты, уровни сигналов, скорости передачи, UART и многое другое!

Логические уровни

Узнайте разницу между устройствами 3,3 В и 5 В и логическими уровнями.

Аналог vs.Цифровой

В этом руководстве рассматривается концепция аналоговых и цифровых сигналов в их отношении к электронике.

Типы данных в Arduino

Узнайте об общих типах данных и их значении в среде программирования Arduino.

Как работать с перемычками и дорожками на печатной плате

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

Средний

I2C

Введение в I2C, один из основных используемых сегодня протоколов встроенной связи.

Процессор прерываний с Arduino

Что такое прерывание? В двух словах, существует метод, с помощью которого процессор может выполнять свою обычную программу, непрерывно отслеживая какое-либо событие или прерывание.Есть два типа прерываний: аппаратные и программные. В этом руководстве мы сосредоточимся на аппаратных прерываниях.

Продвинутый

Установка загрузчика Arduino

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

Интегральные схемы

Введение в интегральные схемы (ИС). Вездесущие черные фишки электроники. Включает внимание к разнообразию корпусов IC.

Что такое схема?

Каждый электрический проект начинается со схемы. Не знаю, что такое схема? Мы здесь, чтобы помочь.

Как использовать макетную плату

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

Что такое электричество?

Мы можем видеть электричество в действии на наших компьютерах, освещающее наши дома, как удары молнии во время грозы, но что это такое? Это непростой вопрос, но этот урок прольет на него некоторый свет!

Электроэнергетика

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

Полярность

Введение в полярность электронных компонентов. Узнайте, что такое полярность, в каких частях она есть и как ее идентифицировать.

Как пользоваться мультиметром

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

Руководства для наших наборов для начинающих
Другие руководства, связанные с Arduino

Программируйте Arduino с государственными машинами за 5 минут

Вы когда-нибудь программировали Arduino? Вы когда-нибудь беспокоились о сложных потоках управления, написанных на чистом C? Может быть, вы уже слышали о диаграммах состояний и конечных автоматах? В этом сообщении блога я покажу вам, как запрограммировать Arduino всего за 5 минут на основе модели с помощью YAKINDU Statechart Tools (SCT).

Было несколько попыток запрограммировать Arduino с помощью YAKINDU SCT, как описано Марко Шолтиссеком или Рене Бекманном. Однако, когда я попытался научить программировать Arduino с помощью YAKINDU SCT в рамках Летней школы автомобильной программной инженерии 2016 года в Университете прикладных наук и искусств в Дортмунде, я обнаружил, что это сложно понять и реализовать без соответствующих инструментов. Итак, я сел и реализовал поддержку Arduino для YAKINDU SCT для генерации большого количества связующего кода, необходимого для запуска конечных автоматов на Arduino.

YAKINDU Statechart Tools для Arduino основан на Eclipse, YAKINDU Statechart Tools и Eclipse C / C ++ Development Tooling (CDT). Он устанавливает исходный проект, содержащий пустую диаграмму состояний, которую вам просто нужно заполнить своими собственными идеями. Единственная часть, которую вам все еще нужно программировать самостоятельно, — это соединение между диаграммой состояний и оборудованием, то есть инициализация оборудования и обновление состояния оборудования в зависимости от состояния диаграммы состояний и наоборот.

Теперь давайте посмотрим на инструменты.На скриншоте ниже вы найдете хорошо известный пример Arduino «Hello World» — мигающий светодиод, запрограммированный как диаграмма состояний. Я создал проект Arduino SCT с помощью мастера. Он открыл пустую диаграмму состояний с пустым объявлением интерфейса. Я буду использовать эту диаграмму состояний для моделирования мигающего светодиода и создания конечного автомата, работающего на плате Arduino Uno.

Светодиод имеет два состояния: включен и выключен. Поэтому я объявляю логическую переменную на , представляющую включение и выключение с ее значениями true и false в интерфейсе.В диаграмме состояний я создаю два состояния: включен, и выключен, . После развертывания на Arduino выполнение программы начинается с входа в диаграмму состояний через черную точку — состояние Entry , изображенное на диаграмме состояний. После входа в диаграмму состояний он сразу же меняет свое состояние посредством первого перехода — это стрелка из состояния Entry в состояние On . При входе в состояние On логическая переменная on устанавливается на true .Через 500 миллисекунд состояние меняется на Off , а для переменной на устанавливается значение false . Опять же, еще через 500 миллисекунд, он снова переключается на на . Это продолжается и продолжается до тех пор, пока вы не выдернете вилку из розетки.

Когда я закончу моделирование, я могу смоделировать свою модель с помощью YAKINDU SCT, чтобы узнать, работает ли она должным образом. Вы найдете более подробную информацию о моделировании и симуляции в документации YAKINDU SCT. На основе этой диаграммы состояний я генерирую конечный автомат в коде C ++, который выполняет диаграмму состояний на моем Arduino.Все, что мне еще нужно сделать, это подключить диаграмму состояний к оборудованию. Я делаю это путем редактирования методов init () и runCycle () класса BlinkConnector :

  • В методе init () я установил светодиод, встроенный в плату Arduino Uno. Этот метод вызывается один раз при запуске программы — аналог функции setup () в обычном скетче Arduino.
  • Метод runCycle () является аналогом функции loop () скетча Arduino.Он вызывается регулярно, один раз в каждом цикле выполнения диаграммы состояний. Здесь я установил вывод светодиода в соответствии с логической переменной на диаграммы состояний.

Теперь я компилирую код и загружаю его на свою плату Arduino. Вот он, мигающий светодиод через пять минут!

Хорошо, вы правы, этот пример может быть реализован на простом языке C и загружен в Arduino менее чем за пять минут. Это так просто. Но можете ли вы представить себе усилия по разработке конечного автомата на простом языке C со сложностью светофора для пешеходного перехода, показанного на рисунке ниже? И даже этот пример остается простым.Кстати, вы найдете этот пример, а также пример Blink в YAKINDU SCT для среды Arduino.

На моих страницах GitHub вы найдете полное пошаговое руководство, начиная с установки, заканчивая настройкой, моделированием, симуляцией, генерацией кода и развертыванием кода. Он также интегрирован в онлайн-справку YAKINDU Statechart Tools для Arduino.

В настоящее время YAKINDU SCT для Arduino поддерживает только микропроцессоры ATmega 168/328, используемые, например, на широко распространенных и хорошо известных платах Arduino Uno.Кроме того, по умолчанию он использует таймер 1 микропроцессора. Если какая-то библиотека, которая вам нужна, также зависит от Таймера 1, у вас проблемы. Есть еще и другие ограничения. Итак, в ближайшем будущем я планирую расширить YAKINDU SCT для инструментов Arduino для поддержки большего количества реализаций таймера и других микропроцессоров.

Следите за обновлениями!

Arduino выпускает промышленный блок управления Portenta Machine Control

Arduino Portenta Machine Control — это маломощный промышленный блок управления, работающий на плате Arduino Portenta H7 и предназначенный для управления оборудованием и механизмами через цифровые и аналоговые вводы / выводы, доступные через клеммные колодки.

Промышленный блок управления дополняет семейство Arduino Pro, которое было представлено в 2020 году с поддержкой платформы Arm Pelion IoT, запуском промышленной платы Arduino Portenta H7 с питанием от STM32H7 и присоединяется к другому специализированному решению, а именно Arduino Edge. Плата управления для интеллектуального сельского хозяйства запущена в прошлом месяце.

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

Arduino Portenta Machine Control:

  • Доска Portenta H7 с
    • MCU — TMicro STM32H747XI Cortex-M7 @ 480 МГц + M4 @ 200 МГц MCU с двухбанковской флэш-памятью 2 МБ, ОЗУ 1 МБ, графическим аппаратным ускорителем Chrom-ART
    • Системная память — 8 МБ SDRAM
    • Хранилище — 16 МБ QSPI NOR Flash
  • Возможности подключения — порт 10 / 100M Ethernet RJ45, Wi-Fi и Bluetooth LE с интерфейсом u.Антенный разъем FL
  • USB — 1x USB-порт для программирования
  • I / O через вставные клеммные колодки
      • Входы
        • 8 цифровых входов при 24 В пост. Тока
        • 2х канальные показания энкодера
        • 3 аналоговых датчика температуры PT100 / PT1000 / J / K (3-проводный кабель с компенсацией)
        • 3 аналоговых входа (4-20 мА / 0-10 В / NTC 10K)
      • Выходы
        • 8 цифровых выходов при 24 В постоянного тока до 0,5 А (защита от короткого замыкания)
        • 4 аналоговых сигнала 0-10 В (выход до 20 мА на канал)
      • 12 программируемых цифровых входов / выходов (логика 24 В)
      • CAN шина
      • RS232 / RS422 / RS485
  • Разное — Встроенный RTC
  • Источник питания — 24 В постоянного тока +/- 20% через вставные клеммы
  • Размеры — 170 x 90 x 50 мм (корпус, совместимый с DIN-рейкой)
  • Вес — 186 грамм
  • Диапазон температур — от -40 ° C до + 85 ° C
  • Сертификаты CE, FCC и RoHS
Покомпонентное изображение с платой Portenta H7, показанной под платой ввода-вывода

Portenta Machine Control может использовать структуру Arduino, включать такие функции, как профилактическое обслуживание и варианты использования искусственного интеллекта, благодаря мощному микроконтроллеру STM32H7 и функциям подключения, таким как Ethernet и Wi-Fi. , позволяют собирать данные в реальном времени и дистанционно управлять оборудованием.

Некоторое оборудование, которое может быть оснащено Arduino Portenta Machine Control, включает этикетировочные машины, машины для формования и запечатывания, картонажные машины, склеивающие машины, электрические печи, промышленные стиральные и сушильные машины, миксеры и т. Д. Промышленный блок управления Arduino теперь доступен для покупки за 279 евро / 335 долларов в магазине Arduino.

Дополнительную информацию можно найти на странице продукта на веб-сайте Arduino Pro.

Жан-Люк основал CNX Software в 2010 году, работая неполный рабочий день, прежде чем бросить работу менеджера по разработке программного обеспечения и начать писать ежедневные новости и обзоры на полную ставку позже в 2011 году.

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

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