Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Arduino: Установка программного обеспечения

Статья проплачена кошками - всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.

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

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

Сначала небольшое отступление. Существует настоящая плата Arduino, сделанная в Италии. Но не стоит думать, что все остальные являются подделками. Разработчики Arduino выложили в открытый доступ все свои наработки и разрешили всем создавать свои платы по созданным схемам. Единственная просьба - не использовать само имя Arduino, поэтому можно встретить альтернативные названия, типа Freeduino, Genuino, Seeeduino, Adafruit 32UT, SparkFun Pro и прочее. Поэтому по поведению китайские платы ничем не отличаются от итальянской (хотя бывают небольшие различия).

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

Установка программы и драйверов за несколько лет упростилась. Microsoft решила подружиться с Arduino и в версиях Windows 8/10 плата опознаётся без проблем. В Windows 7 нужно немного поработать ручками (описание в нижней части страницы).

Кроме самой платы Uno (или любой другой), нам понадобится USB-кабель типа A-B (у других плат могут быть другие кабели). У меня он шёл в комплекте с набором. Это стандартный кабель, который обычно прилагается к принтерам и другим устройствам, его можно купить в компьютерных магазинах.

Далее нужно скачать среду разработки, в которой мы будем писать код. Последнюю версию Arduino IDE можно скачать с этой страницы. Вам необходимо выбрать ссылку, соответствующую вашей операционной системе (например, Windows) и скачать архив (около 180 Мб).

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

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

Если вы успешно преодолели данный шаг, то переходим к следующему этапу - запускаем программу Arduino (arduino. exe). У вас появится окно разработки под Arduino. Сама программа написана на Java и я видел обсуждения, что иногда программа требует установить файлы исполнения Java. У меня они были изначально, так как на этом языке пишу программы для Android.

Когда я устанавливал на Windows 8/10, то проблем с драйвером не возникло и всё установилось автоматически. При работе с некоторыми китайскими платами следует также установить драйвера, информацию о драйверах и установке ищите самостоятельно под свою плату (у меня и китайские платы установились автоматически).

Набираемся мужества и подключаем с помощью USB-кабеля плату с компьютером. На плате должна загореться зелёная светодиодная лампочка (помечена надписью ON). Запускаем Arduino IDE и в меню Tools | Board выбираем свою плату. После этого выбираем порт Tools | Port. Обычно это COM3, COM4.

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

01.Basics: BareMinimum

Приступать к настоящей работе с платой страшновато, вдруг что-то сгорит. Поэтому пока отложим его в сторону от греха подальше и запустим Arduino IDE. Разработчики платы подготовили серию простых примеров, которые следует изучить, чтобы заложить фундамент для будущих проектов. Найти их можно в меню File | Examples. В разделе 01.Basics находятся самые простые примеры. А самый примитивный из них - скетч BareMinimum. Вам даже не понадобится плата.

На языке Arduino проекты с листингом называются скетчами (sketch) и имеют расширение INO.

Давайте изучим первый скетч: File | Examples | 01.Basics | BareMinimum. Откроется окно с следующим кодом:


void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly: 
  
}

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

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

Функция loop() в бесконечном цикле последовательно раз за разом исполняет команды, которые описаны в её теле. Иными словами после завершения функции снова произойдёт её вызов.

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

Запоминать код и записывать его в тетрадочку не нужно. Когда вы будете создавать собственный скетч через File | New, то появится точно такой же код. И вы можете создавать свои проекты и сохранять их.

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

Установка Android IDE под Windows 7

Для старых версий нужно установить драйвер самостоятельно. При первом подключении Windows самостоятельно попытается установить драйвер, хотя мы его и не просили. Самоуверенная Windows признается, что ей не удалось установить драйвер. Чтобы убедиться в этом, идём в Пуск→Панель управления→Система (а можно было просто нажать клавиши Win+Pause Break) и выбираем слева ссылку Диспетчер устройств. Там увидим, что напротив Arduino Uno стоит желтый предупреждающий значок.

Ничего страшного не произошло. Сейчас мы исправим ситуацию. Щёлкаем мышкой на данной записи и выбираем из контекстного меню пункт

Обновить драйверы.... Далее выбираем опцию Выполнить поиск драйверов на этом компьютере, чтобы вручную указать местоположение драйверов. Сам драйвер ArduinoUNO.inf находится в подпапке Drivers той самой папки Arduino, о которой говорилось выше.

Теперь Windows сможет правильно установить драйвер и все будет тип-топ.

Реклама

Page not found - Лаборатория проектов школы 169

Unfortunately the page you're looking doesn't exist (anymore) or there was an error in the link you followed or typed. This way to the home page.


Blog

  • 02/25/2021 - Новое пособие "Дизайн компьютерных игр"
  • 01/22/2021 - Snap4Arduino и проекты "виртуальной" робототехники
  • 01/21/2021 - Cеминар "Программирование микроконтроллеров в визуальных средах. От учебных проектов к профессиональным"
  • 01/18/2021 - Дистанционная внеурочка, материалы занятий по темам Робототехника и Дизайн компьютерных игр
  • 12/01/2020 - Лекция-демонстрация "Комплект на базе робота Makeblock mBot в школе и дома"
  • 11/24/2020 - Профессиональный и личностный успех в проектах технической направленности как фактор формирования социальных установок обучающихся
  • 11/23/2020 - Виртуальная робототехника на Scratch и Snap4arduino
  • 11/16/2020 - Цифровая образовательная среда. Проблемы, решения и влияние на социальные установки. Начало.
  • 11/11/2020 - Представляем 5 главу книги "Scratch и Arduino для юных программистов и конструкторов"
  • 08/25/2020 - Программа физического моделирования Algodoo, первые шаги
  • 08/19/2020 - Средства визуального программирования микроконтроллеров, краткий обзор обновлений
  • 08/04/2020 - Готовим дидактические материалы для внеурочки в условиях продолжающейся пандемии
  • 06/01/2020 - Шаг за шагом моделируем в Scratch гармонические колебания и упругое взаимодействие объектов
  • 04/27/2020 - Шаг за шагом моделируем столкновения объектов в среде Snap4arduino
  • 04/18/2020 - Шаг за шагом моделируем поведение робота в среде Snap4arduino
  • 04/04/2020 - Создание домашних заданий в TRIK Studio
  • 03/27/2020 - Дистанционное обучение робототехнике на платформе TRIK Studio
  • 03/05/2020 - Открытая учебная робоплатформа нового поколения
  • 02/25/2020 - Преемственность учебных материалов в робототехнике, альтернативы mBot
  • 12/12/2019 - Методы распределённой разработки как учебный инструмент в робототехнике
  • 12/10/2019 - Приглашаем на городской семинар «Современные микроконтроллеры и ранняя инженерная профориентация в школе»
  • 12/02/2019 - Открытые зимние состязания Санкт-Петербурга по робототехнике 2019
  • 11/22/2019 - Наш УМК по робототехнике - Победитель конкурса инновационных продуктов!
  • 10/22/2019 - Сборка робота на основе конструктива из набора "Ресурсный набор Lego Mindstorms EV3 (45560)"
  • 09/20/2019 - Наш УМК выставлен на участие в региональном конкурсе инновационных продуктов
  • 09/12/2019 - Семинар "Техносфера современной школы: создание и перспективы использования"
  • 09/01/2019 - Перевод регламента соревнований makeX 2019 года
  • 05/29/2019 - Апробация плат от Elecfreaks
  • 05/26/2019 - 2 место в категории "Следовании по линиии экстремал"
  • 05/15/2019 - Образовательный робонабор под нашу книжку.
  • 04/24/2019 - ME-Sensors 3D (модели для печати защитных пластин)
  • 04/18/2019 - Региональный круглый стол в 169-ой
  • 04/07/2019 - Поздравляем победителей открытых состязаний Санкт-Петербурга по робототехнике 6-7 апреля 2019
  • 03/31/2019 - Открытые соревнованиях по робототехнике Центрального района
  • 03/28/2019 - ИТНШ 2019. «Ноу-хау» на основной площадке конференции.
  • 03/27/2019 - ИТНШ 2019. Выездной семинар в 169-ой
  • 02/22/2019 - 3D-печать на занятиях. Из опыта работы.
  • 02/18/2019 - Fischertechnik. BT Стартовый набор. Пробуем ROBO Pro Light
  • 02/11/2019 - Образовательные продукты Makeblock - традиции, инновации и открытые стандарты
  • 02/02/2019 - Курсы робототехники в 169-ой
  • 01/30/2019 - Первый шаг в мир микроконтроллеров
  • 01/27/2019 - Городские соревнования "Юный конструктор"
  • 12/25/2018 - Обзор визуальных средств программирования микроконтроллеров (часть 2)
  • 12/20/2018 - Городской семинар "Scratch-подобные визуальные среды программирования микроконтроллеров: обзор, сравнение, расширение возможностей, опыт использования"
  • 12/19/2018 - Обзор визуальных средств программирования микроконтроллеров (часть 1)
  • 12/14/2018 - Игрофикация в робототехнике, плюсы и минусы
  • 12/14/2018 - Fischertechnik. BT Стартовый набор. Начинаем апробацию.
  • 12/05/2018 - MakeBlock Ranger. 3D модели для сборки. Вариант 1.
  • 11/22/2018 - Наш УМК - лауреат конкурса инновационных продуктов!
  • 11/21/2018 - Поздравляем нашего выпускника!
  • 10/23/2018 - В 169-ой переведен регламент MakeX Robotics Competition Blue Planet 2018
  • 10/18/2018 - Новое поколение микроконтроллеров и программных средств, в чем отличие?
  • 10/14/2018 - Зачем и как мы учим программировать микроконтроллеры. Как?
  • 10/06/2018 - Робофинист 2018: ведем мастер-классы, представляем новые продукты.
  • 10/05/2018 - Ура! В издательстве БХВ вышла наша новая книжка про роботов!
  • 09/28/2018 - 3D печать в школе - несколько зарисовок из опыта работы.
  • 09/22/2018 - Договор с MakeBlock Co.Ltd и ООО "ЦС Импэкс" о совместных исследованиях!
  • 06/08/2018 - Advanced Arduino Extension - расширение для mBlock3 от А.Григорьева
  • 04/24/2018 - Встреча: MakeBlock, DIGIS, БХВ и 169-ая))
  • 03/28/2018 - ИТНШ 2018. Выездной семинар в 169-ой.
  • 03/27/2018 - ПОФ 2018. Ярмарка «Успешных практик реализации ФГОС»
  • 03/20/2018 - mBot. Собираем оптимальную конфигурацию учебного робота.
  • 03/15/2018 - ПРОБЛЕМЫ ВНЕДРЕНИЯ УЧЕБНЫХ ПРОГРАММ ПО НАПРАВЛЕНИЮ "РОБОТОТЕХНИКА" В ОБЩЕОБРАЗОВАТЕЛЬНОЙ ШКОЛЕ
  • 03/08/2018 - 7-8 марта. Выступление на Робофесте 2018 в Москве.
  • 03/06/2018 - Новый видеоролик о mBot: "лягушка" и "жук"
  • 02/14/2018 - ОПЫТ ПРЕПОДАВАНИЯ РОБОТОТЕХНИКИ В ОБЩЕОБРАЗОВАТЕЛЬНОЙ ШКОЛЕ
  • 01/31/2018 - вебинар "Опыт школ по внедрению Инженерного инновационного класса"
  • 01/30/2018 - Семинар по программированию микроконтроллеров и технологиям "Интернет-вещей"
  • 01/18/2018 - Робототехника и экология. Выступление в Туле.
  • 12/09/2017 - "Робоняша" в 169-ой
  • 12/08/2017 - Новый ролик в видеоблоге: Робот mBot от компании Makeblock. ч.3-1. Расширение: шестиногий робот.
  • 11/30/2017 - Межрайонный мастер-класс
  • 11/25/2017 - 169-ой школе исполнилось 80 лет!
  • 11/18/2017 - Практиканты "Петровского колледжа" в 169-ой
  • 11/15/2017 - Новая книга!
  • 11/07/2017 - Проект "Знакомимся, mBot!"
  • 10/06/2017 - "Умные вещи", новый виток развития технологий
  • 10/05/2017 - Как связать два микроконтроллера по Bluetooth. Настраиваем HC-05 для работы в режиме Master
  • 10/04/2017 - СПО в школе. Давайте вместе заполним список! Часть 1. Поддержка робототехники и конструирования
  • 10/03/2017 - Робототехника... без роботов. Scratch и имитационное программирование. Движение по линии
  • 10/02/2017 - Стандарты для Arduino-роботов как возможность занять правильную нишу в образовательной робототехнике.
  • 10/02/2017 - Использование распределенных ресурсов сетевых партнеров для формирования современной техносферы образовательной организации
  • 10/02/2017 - Визуальное программирование микроконтроллеров в образовании

«Мир Ардуино»

1. ВВОДНОЕ ЗАНЯТИЕ (2 часа: теория 1 часов, практика 1 час)

Теория. Вводное занятие (Знакомство с программой, целями и задачами курса, техника безопасности).

Практика: Показ видеороликов (современная робототехника и микроэлектроника).

2. ОСНОВЫ ПРОЕКТИРОВАНИЯ ЭЛЕКТРОННОГО УСТРОЙСТВА НА БАЗЕ ARDUINO (92 часа: теория 26 часов, практика 66 часов).

Теория. Плата и язык программирования Arduino. Широтно-импульсная модуляция ( ШИМ). Аналоговые и цифровые входы и выходы. Арифметические операции и математические функции. Типы данных. Монитор последовательного порта. Условный оператор. Операторы сравнения. Циклические конструкции, датчик случайных чисел. Кнопка. Особенности подключения, устранение шумов и дребезга. Цветовые модели. RGB-куб. Смешение цветов (синтез). Подпрограммы. Локальные и глобальные переменные. Логические переменные. Константы, логические операции. Термистор (терморезистор). Программирование: объекты, объект String, цикл while, оператор выбора case. Библиотеки: использование, установка. Библиотека math.h. Управление двигателями. Управление серводвигателем: библиотека Servo.h. Сенсоры и датчики Arduino. Ультразвуковой датчик расстояния – модуль HC-SR04. Пироэлектрический инфракрасный (PIR) датчик движения. Микросхемы. Сдвиговый регистр. Цифровые индикаторы. Семисегментный индикатор (назначение, устройство, принципы действия, управление, программирование: массивы данных). Датчик цвета TCS34725. Подключение. Подключение микрофона. Использование Serial Monitor для передачи текстовых сообщений на Ардуино. Управление Ардуино через USB. Жидкокристаллический экран. Библиотека LiquidCrystal. Вывод сообщений на экран. Бегущая строка. Вывод своих символов на экран. Сенсорная кнопка Catalex. Подключение, настройка. Цифровой датчик температуры DS18B20. Датчики температуры и влажности DHT11 и DHT22. Датчик уровня влажности почвы.

Практика: Управление светодиодом на макетной плате. Аналоговые и цифровые входы и выходы. Проекты «Маячок», «Маячок с убывающей и нарастающей яркостью», «Ночной светильник», «Светофор». Монитор последовательного порта. Проект «Светильник с управляемой яркостью». Условный оператор. Операторы сравнения. Проекты «Железнодорожный семафор», «Светофоры на перекрестке», «Моделируем пламя свечи». Кнопка. Особенности подключения, устранение шумов и дребезга. Проекты Кнопочный переключатель«, «Светильник с кнопочным управлением», Мерзкое пианино«, «Кнопочные ковбои», «RGB светодиод», «Хамелеон». Подпрограммы. Проекты «Терменвокс», «Термометр». Программирование: объекты, объект String, цикл while, оператор выбора case. Проект «Управляемая гирлянда». Библиотеки: установка. Управление двигателями. Управление серводвигателем: библиотека Servo.h. Проекты «Миксер», Проект «Пантограф». Ультразвуковой датчик расстояния. Датчик движения. Проекты «Охранная сигнализация», «Робот-охранник», «Управляемый цвет». Программирование с использованием сдвигового регистра. Проекты «Много светодиодов», «Бегущий огонек», «Пульсар», «Перетягивание каната». Семисегментный индикатор, программирование. Проекты «Секундомер», «Таймер», «Счётчик нажатий». Датчик цвета TCS34725. Установка библиотеки. Проект «Сортировщик». Подключение микрофона. Проект «Умный светильник». Использование Serial Monitor для передачи текстовых сообщений на Ардуино. Проект «Светильник, управляемый по USB». Текстовые функции. Вывод сообщений на экран. Бегущая строка. Вывод своих символов на экран. Проекты «Тестер батареек», «Сенсорная клавиатура», «Комнатный термометр», «Метеостанция», "Автоматический полив".

 3. ОСНОВЫ РОБОТОТЕХНИКИ НА БАЗЕ ARDUINO. (36 часов: теория 14 часов, практика 22 часа).

Теория. Сборка мобильного робота на основе двухмоторной платформы Turtle (Черепаха). Платы расширения – шилды (Arduino shield). Подключение двигателей. Типы движения робота. Программное управление движением платформы по сложной траектории (движение по кругу, по спирали). Подключение инфракрасного дальномера. Управление с обратной связью. Движение вдоль стены. Алгоритм выхода из лабиринта. Аналоговые и цифровые датчики (преимущества и недостатки цифровых и аналоговых датчиков). Обнаружение белых и черных участков поверхности (усреднение аналогового сигнала). Движение робота в пределах границ (танец в круге, между двумя параллельными линиями). Обнаружение перекрестков. Движение робота по сложным траекториям (программирование). Обзор регуляторов. Пропорциональное управление. Пропорционально-дифференциальное управление. Пропорционально-интегрально-дифференциальное управление. Подключение модуля Bluetooth HC-06.

Практика: Сборка мобильного робота на основе двухмоторной платформы Turtle (Черепаха). Подключение двигателей. Управление без обратной связи (движение вперед, назад). Регулировка скорости движения. Программное управление движением платформы по сложной траектории (движение по кругу, по спирали). Движения по различным траекториям (по контуру геометрических фигур, змейке). Подключение инфракрасного дальномера. Управление с обратной связью. Алгоритм выхода из лабиринта. Подключение датчика линии (белый-черный). Обнаружение белых и черных участков поверхности (усреднение аналогового сигнала). Движение робота вдоль черной линии. Движение робота в пределах границ (танец в круге, между двумя параллельными линиями). Обнаружение перекрестков. Инверсная линия. Основы теории автоматического управления. Движение робота по сложным траекториям (реализация программы). Пропорциональное управление. Пропорционально-дифференциальное управление. Пропорционально-интегрально-дифференциальное управление. Создание программы управления роботом через пульт.

4. Индивидуальная проектная деятельность. (12 часов: теория 2 часа, практика 10 часов)

Теория. Работа над индивидуальным проектом (обсуждение идей, темы проектов, информации). Разработка плана (формулирование цели проекта, составление графика работы над проектом). Алгоритм подготовки выступления. Подготовка выступления.

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

 5. ИТОГОВОЕ занятие (2 часа: теория 0 часов, практика 2 часа).

Практика: Защита индивидуальных и коллективных проектов.

Основы программирования микроконтроллеров (на базе платы Arduino)

Целевая аудитория: Студенты бакалавриата 1 курса, владеющие базовыми знаниями в области программирования на каком-либо языке ( (C/C++, Pascal, Delphi, Java, Python, Matlab и т. п.)

Время проведения занятий: Четверг 9:50 – 11:20. Начало занятий 28.02.2019

Максимальная численность группы: 10 человек

Преподаватель курса: Инженер каф. САУ Петрова Карина Андреевна

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

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

Программа курса

  1. Знакомство со структурой программы для Arduino, изучение основных типов данных, функций, организация передачи данных по последовательному соединению для вывода отладочной информации в монитор порта.
  2. Изучение устройства беспаечной макетной платы, сборка простых схем с использованием светодиодов, кнопок, резисторов; работа с цифровыми выводами; RGB-светодиод
  3. Изучение работы с внешними библиотеками и основ объектно-ориентированного программирования с использованием внешнего LCD-дисплея
  4. Управление светодиодными матрицами, семисегментными индикаторами
  5. Использование АЦП для получения данных с датчиков освещенности, уровня воды, шума; использование библиотек для получения информации с цифрового датчика температуры и влажности воздуха.
  6. Подключение матричной клавиатуры, джойстика, зумера.
  7. Управление сервоприводом и шаговым двигателем.
  8. Подключение ИК-приемника, дистанционное управление проектом с помощью пульта.
  9. Подключение RFID, модуля часов реального времени

Руководство по интегрированной среде разработки Arduino *

Необходимое оборудование:

  • Galileo плата Intel®
  • Источник питания (включен в комплект)
  • USB-кабель Micro (тип B)
  • Установленный и сконфигурированный программный обеспечение Arduino * версии v 1.5.3

Образец эскиза

Когда вы создаете файл в программном обеспечении Arduino *, он открывает набросок с базовой разметкой программы Arduino. Ниже представлен пользовательский интерфейс:

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

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

ПримечаниеИзображение — это программный интерфейс Arduino, озаглавленный Бареминимум, который находится в разделе примеры файлов > > 0,1 основы. Ознакомьтесь с другими примерами и поэкспериментируем.

 

Комментарии

Две косые черты (между знаком "{" и "}") представляют начало комментария встроенного кода. После загрузки вашего кода на доску компилятор игнорирует текст после двух косых черт. Комментарий с помощью встроенного кода позволяет оставлять заметок для себя, а также для людей, считывающих ваш программный код. Кроме того, можно писать многострочные комментарии, запустив комментарий с/* и заканчивая знаками */.

/* You are reading an
example of a comment
that has many lines. */

Переменные

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

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

Примере: double light_sensitivity;

Где объявляется double объявляемая переменная, light_sensitivity которая является именем переменной. Чтобы сослаться на переменную в вашем коде, просто используйте ее имя.

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

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

 

Для получения дополнительной информации о типах данных и переменных перейдите на страницу справочника по Arduino.

Функции

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

Функция установки — это где вы можете добавить такие вещи, как объявления переменных и инициализации режимов закрепления.

Функция Loop — это сердце вашей программы. В этом поле представлено название, которое будет циклически непрерывно работать с основной логикой программы.

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


Введение
Приступая к работе
Интегрированная среда разработки Arduino
Всем привет
Переключить вверх

Структура программы Ардуино и типы данных

Структура программы Ардуино  достаточно проста и в минимальном варианте состоит из двух частей setup() и loop().

void setup()  { 

//  код выполняется один раз при запуске программы 

}

void loop()  {

// основной код, выполняется в цикле 

}

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

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

Первоначальные правила синтаксиса языка C.

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

z = x + y; 

z = x      

+ y     ;

{   }  фигурные скобки определяют блок функции или выражений. Например, в функциях setup() и loop().

/* … */ блок комментария, обязательно закрыть.

/* это блок      комментария  */

// однострочный комментарий, закрывать не надо, действует до конца строки.

// это одна строка комментария

Переменные и типы данных.

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

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

Среда программирования RobotON Studio

СКАЧАТЬ ПРОГРАММУ

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

Скриншот программы «RobotON Studio»

Зачем мы создали данный софт? Дело в том, что графическое ПО открывает двери в мир робототехники для студентов любого уровня (особенно для новичков!). Необходимость изучать синтаксис программного кода, искать мелкие ошибки в огромных программах, состоящих из страниц кода, – все это часто приводит к падению интереса у обучающихся, особенно у детей. Обратное происходит, если ребенок сразу видит результат своих действий, интерес в таком случае возрастает многократно!

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

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

RobotON Studio в наших кружках робототехники

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

Что дает RobotON Studio
  • Возможность программирования Arduino без начальных знаний и навыков программирования
  • Возможность результативного использования детьми от 7 лет
  • Широкий спектр поддерживаемых плат, моторов, датчиков итд.
  • Бесплатное использование для наших учеников
  • Простой и понятный интерфейс
Установка RobotON Studio

Скачать RobotON Studio можно по ссылке. Программа сама устанавливает все необходимые драйвера и настраивает ваш компьютер на работу с любыми платами класса Arduino и китайскими аналогами.

По вопросам получения лицензии, обращайтесь в личные сообщения в группу в ВК или на почту [email protected]

Стоимость лицензии на использование ПО «RobotON Studio»:

Arduino Project Hub

Все productsAmazon Alexa Официальный Arduino SkillArduino 101Arduino 4 Реле ShieldArduino ADK Rev. 3Arduino DueArduino EsploraArduino Ethernet Rev. 3Arduino Ethernet Shield 2Arduino GemmaArduino GSM щит V2Arduino IDEArduino IoT CloudArduino ISPArduino LCD ScreenArduino LeonardoArduino Leonardo С HeadersArduino LilyPad Главная BoardArduino LilyPad USBArduino Mega 2560Arduino MicroArduino Mini 05Arduino Mini USB серийный adapterArduino MKR1000Arduino MKR2UNO adapterArduino МКР 485 ShieldArduino МКР CAN ShieldArduino МКР ENV ShieldArduino МКР Fox 1200Arduino МКР GSM 1400Arduino МКР IoT BundleArduino МКР IoT Bundle 1010Arduino МКР IoT Prime BundleArduino МКР NB 1500Arduino МКР Прото Большой ShieldArduino МКР Прото ShieldArduino МКР реле Прото ShieldArduino MKR SD Proto ShieldArduino MKR Vidor 4000Arduino MKR WAN 1300Arduino MKR WAN 1310Arduino MKR WiFi 1010Arduino MKR ZeroArduino MotorShield Rev3Arduino Nano 33 BLEArduino Nano 33 BLE SenseArduino Nano 33 IoTArduino Nano EveryArduino Nano R3Arduino Oplà IoT KitArduino Portenta H7Arduino Pro Mini 328 - 3. 3V / 8MHzArduino Pro Mini 328 - 5V / 16MHzArduino Proto ShieldArduino YOUGY YYY SIM KitArduino UNOArduino UNO Rev3Arduino UNO Wifi Rev.2Arduino USB 2 Serial microArduino USB Host ShieldArduino Web EditorArduino Wi-Fi ShieldArduino Wi-Fi ShieldArduino Wi-Fi Shield ShieldArduino ZeroEMoRo Basic Robot kitIndustruino Proto KitLilypad Arduino SimpleMateria 101MKR Motor CarrierRoad to Santa Claus KitRural Hack Kit

Все категорииАудио и звукЛетающие вещиГаджеты, игры и игрушкиДом и автоматизацияУстановки, Интернет вещей, Bluetooth, спорт и беспроводные дисплеи

Последнее обновлениеСамое популярноеСамое недавнееСамое уважаемоеТенденции

Любая сложностьПростойСреднийПродвинутыйСверхсложный

Любой типРуководство по началу работыДемонстрацияProtipTeardownУчебникРабота в процессе

Все, что вам нужно знать о коде Arduino

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

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

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

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

Среда кодирования Arduino и основные инструменты

Какой язык представляет собой Arduino?

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

Arduino IDE

Интегрированная среда разработки Arduino (IDE) - это основная программа редактирования текста, используемая для программирования Arduino. Здесь вы будете набирать код, прежде чем загружать его на доску, которую хотите запрограммировать. Код Arduino обозначается как , эскизы .

Примечание. Важно использовать последнюю версию Arduino IDE.Время от времени проверяйте обновления здесь.

Пример кода Arduino

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

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

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

Последовательный монитор и последовательный плоттер

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

В коде, который вы загружаете с сайта circuito.io, есть тестовый раздел, который помогает вам тестировать каждый компонент с помощью последовательного монитора, как вы можете видеть на снимке экрана ниже:

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

Отладка кода и оборудования Arduino

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

Используя класс Serial, вы можете печатать на мониторе последовательного порта, отлаживать комментарии и значения переменных. На большинстве моделей Arduino будут использоваться последовательные контакты 0 и 1, подключенные к USB-порту.

Структура кода

Библиотеки

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

Чтобы импортировать новую библиотеку, вам нужно перейти в Sketch> Import Library

Кроме того, в верхней части вашего файла .ino вам необходимо использовать «#include» для включения внешних библиотек. Вы также можете создавать собственные библиотеки для использования в изолированных эскизах.

Определения выводов

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

‘#define pinName pinNumber’.

Функциональные возможности являются входными или выходными и определяются с помощью метода pinMode () в разделе настройки.

Объявления

Переменные

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

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

Экземпляры

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

Setup ()

Каждый скетч Arduino должен иметь функцию настройки.Эта функция определяет начальное состояние Arduino при загрузке и запускается только один раз.

Здесь мы определим следующее:

  1. Функциональность контактов с использованием функции pinMode
  2. Начальное состояние контактов
  3. Инициализация классов
  4. Инициализация переменных
  5. Логика кода

Loop ()

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

Например:

Примечание. Использование термина «void» означает, что функция не возвращает никаких значений.

Как программировать Arduino

Базовая логика кода Arduino представляет собой структуру «если-то» и может быть разделена на 4 блока:

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

Вход - в начале цикла прочитать входы.Эти значения будут использоваться в качестве условий («если»), таких как показания внешнего освещения от LDR с помощью analogRead ().

Manipulate Data - этот раздел используется для преобразования данных в более удобный вид или выполнения вычислений. Например, AnalogRead () дает значение 0-1023, которое может быть сопоставлено с диапазоном 0-255, который будет использоваться для ШИМ. (См. AnalogWrite ())

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

Библиотеки кода Arduino

Структура библиотеки

Библиотека - это папка, состоящая из файлов с файлами кода C ++ (.cpp) и заголовочными файлами C ++ (.h).

Файл . h описывает структуру библиотеки и объявляет все ее переменные и функции.

Файл .cpp содержит реализацию функции.

Импорт библиотек

Первое, что вам нужно сделать, это найти библиотеку, которую вы хотите использовать, из множества библиотек, доступных в Интернете. После загрузки на свой компьютер вам просто нужно открыть Arduino IDE и нажать Sketch> Include Library> Manage Libraries. Затем вы можете выбрать библиотеку, которую хотите импортировать в IDE. После завершения процесса библиотека будет доступна в меню эскиза.

В коде, предоставленном circuito.io, вместо добавления внешних библиотек, как упоминалось ранее, мы предоставляем им папку с прошивкой.В этом случае IDE знает, как их найти при использовании #include.

От программного обеспечения к аппаратному обеспечению

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

Код → Компилировать → Загрузить → Выполнить

В основе Arduino лежит возможность компилировать и запускать код.

После написания кода в IDE вам необходимо загрузить его в Arduino.Нажатие кнопки «Загрузить» (значок стрелки вправо) скомпилирует код и загрузит его, если он прошел компиляцию. После завершения загрузки программа запустится автоматически.

Вы также можете сделать это шаг за шагом:

  1. Сначала скомпилируйте код. Для этого просто щелкните значок проверки (или щелкните эскиз> Проверить / Компилировать в строке меню.

Как видите, значок проверки находится в верхнем левом углу под тегом «Файл» в разделе меню.

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

Как видите, зеленая линия внизу страницы сообщает вам, что вы «закончили компиляцию». Если ваш код не запускается, вы получите уведомление в том же разделе, а проблемный код будет выделен для редактирования.

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

  1. Выберите последовательный порт, к которому в настоящее время подключена ваша Arduino.Для этого щелкните в меню Инструменты> Последовательный порт, чтобы указать выбранный вами последовательный порт (как показано выше). Затем вы можете загрузить скомпилированный эскиз.
  2. Чтобы загрузить эскиз, щелкните значок загрузки рядом с галочкой. В качестве альтернативы вы можете перейти в меню и щелкнуть Файл> Загрузить. Светодиоды Arduino будут мигать после передачи данных.

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

Настройка IDE

Для подключения платы Arduino к компьютеру вам понадобится USB-кабель.При использовании Arduino UNO USB передает данные программы прямо на вашу плату. USB-кабель используется для питания вашего Arduino. Вы также можете запустить Arduino от внешнего источника питания.

Перед загрузкой кода необходимо настроить некоторые параметры.

Выберите свою плату. Вам необходимо указать, какую плату Arduino вы собираетесь использовать. Сделайте это, щелкнув Инструменты> Доска> Ваша доска.

Выберите свой процессор - существуют определенные платы (например, Arduino pro-mini), для которых нужно указать, какая у вас модель процессора.В разделе инструменты> процессор> выберите имеющуюся модель.

Выберите свой порт - чтобы выбрать порт, к которому подключена ваша плата, перейдите в Инструменты> Порт> COMX Arduino (это последовательный порт Arduino).

Как установить сторонние платы (например, NodeMCU)

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

Для установки другой платы, такой как NodeMCU, вам необходимо:

  1. Нажмите «Инструменты»> «Платы»> «Менеджер плат»
  2. Найдите плату, которую вы хотите добавить, в строке поиска и нажмите «установить».

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

  1. Щелкните «Файлы»> «Настройки».
  2. . В поле «Диспетчер дополнительных плат» вставьте URL-адрес установочного пакета вашей платы. Например, для nodeMCU добавьте следующий URL-адрес: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. Нажмите OK
  4. Перейдите в инструменты> Доски> Диспетчер плат
  5. Найдите плату, которую вы хотите добавить в строке поиска и нажмите «установить».

После того, как вы завершите этот шаг, вы увидите установленные платы в списке плат под инструментами.

Примечание: процесс может незначительно отличаться для разных плат.

Arduino: чрезвычайно универсальная платформа

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

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

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

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

С чего начать - Real Python

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

Платформа Arduino

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

С ростом популярности Maker Movement и концепции Интернета вещей, Arduino стала одной из основных платформ для электронного прототипирования и разработки MVP.

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

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

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

Оборудование Arduino

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

  1. Arduino Uno или другая совместимая плата
  2. Стандартный светодиод любого цвета
  3. Кнопка A
  4. Потенциометр 10 кОм
  5. А Резистор 470 Ом
  6. Резистор 10 кОм
  7. Макет
  8. Перемычки разных цветов и размеров

Давайте подробнее рассмотрим некоторые из этих компонентов.

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

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

Компоненты 5 и 6 - это резисторы . Большинство резисторов идентифицируются цветными полосами в соответствии с цветовым кодом. Как правило, первые три цвета представляют значение резистора , а четвертый цвет представляет его допуск . Для резистора 470 Ом первые три цвета - желтый, фиолетовый и коричневый. Для резистора 10 кОм первые три цвета - коричневый, черный и оранжевый.

Компонент 7 - это макетная плата , которую вы используете для подключения всех других компонентов и сборки схем.Хотя макетная плата не требуется, рекомендуется получить ее, если вы собираетесь начать работать с Arduino.

Программное обеспечение Arduino

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

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

  1. Подключите плату к ПК
  2. Установите и откройте Arduino IDE
  3. Сконфигурируйте настройки платы
  4. Напишите код
  5. Нажмите кнопку на IDE, чтобы загрузить программу на плату

Чтобы установить Arduino IDE на свой компьютер, загрузите соответствующую версию для своей операционной системы с веб-сайта Arduino. Инструкции по установке см. В документации:

  • Если вы используете Windows , используйте установщик Windows, чтобы убедиться, что вы загрузили необходимые драйверы для использования Arduino в Windows. Обратитесь к документации Arduino для получения более подробной информации.
  • Если вы используете Linux , возможно, вам придется добавить своего пользователя в некоторые группы, чтобы использовать последовательный порт для программирования Arduino. Этот процесс описан в руководстве по установке Arduino для Linux.
  • Если вы используете macOS , вы можете установить Arduino IDE, следуя руководству по установке Arduino для OS X.

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

Теперь, когда вы установили Arduino IDE и собрали все необходимые компоненты, вы готовы приступить к работе с Arduino! Затем вы загрузите сообщение «Hello, World!» программу на вашу доску.

«Привет, мир!» С Arduino

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

Загрузка примера скетча Blink

Для начала подключите плату Arduino к компьютеру с помощью USB-кабеля и запустите Arduino IDE. Чтобы открыть пример эскиза Blink, войдите в меню Файл и выберите Примеры , затем 01.Основы и, наконец, Blink :

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

Чтобы настроить плату, войдите в меню Tools и затем Board . Для Arduino Uno вы должны выбрать Arduino / Genuino Uno :

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

Имена портов могут отличаться в зависимости от вашей операционной системы. В Windows порты будут называться COM4 , COM5 или что-то подобное. В macOS или Linux вы можете увидеть что-то вроде / dev / ttyACM0 или / dev / ttyUSB0 . Если у вас возникли проблемы с настройкой порта, загляните на страницу устранения неполадок Arduino.

После того, как вы настроили плату и порт, все готово для загрузки скетча в Arduino.Для этого вам просто нужно нажать кнопку Загрузить на панели инструментов IDE:

Когда вы нажимаете Загрузить , IDE компилирует скетч и загружает его на вашу доску. Если вы хотите проверить наличие ошибок, вы можете нажать Проверить перед Загрузить , что скомпилирует только ваш скетч.

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

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

Подключение внешних компонентов

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

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

  • Оранжевый прямоугольник: Это 13 цифровых контактов , которые можно использовать как входы или выходы.Они предназначены только для работы с цифровыми сигналами, которые имеют 2 разных уровня:
    1. Уровень 0: , представленный напряжением 0 В
    2. Уровень 1: представлен напряжением 5В
  • Зеленый прямоугольник: Это 6 аналоговых контактов , которые можно использовать в качестве аналоговых входов. Они предназначены для работы с произвольным напряжением от 0 до 5 В.
  • Синий прямоугольник: Это 5 контактов питания . В основном они используются для питания внешних компонентов.

Чтобы начать работу с внешними компонентами, вы подключите внешний светодиод, чтобы запустить пример скетча Blink. Встроенный светодиод подключается к цифровому выводу № 13 . Итак, давайте подключим к этому контакту внешний светодиод и проверим, мигает ли он. (Стандартный светодиод - это один из компонентов, которые вы видели в списке ранее.)

Прежде чем что-либо подключать к плате Arduino, рекомендуется отключить это от компьютера. Отключив USB-кабель, вы сможете подключить светодиод к своей плате:

Обратите внимание, что на рисунке показана плата с цифровыми контактами, обращенными к вам.

Использование макета

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

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

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

  • Подключите одно отверстие на красной линии к источнику питания.
  • Подключите одно отверстие на синей линии к земле.

Затем вы можете легко подключить компоненты к источнику питания или заземлению, просто используя другие отверстия на красной и синей линиях. Отверстия в середине макета соединены, как показано цветами. Вы будете использовать их для соединения компонентов схемы.Эти две внутренние секции разделены небольшим углублением, через которое вы можете подключать интегральные схемы (ИС).

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

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

Когда вы подключаете светодиод к выводу Arduino, вам всегда понадобится резистор, чтобы ограничить его ток и избежать преждевременного выгорания светодиода. Здесь для этого используется резистор 470 Ом. Вы можете проследить за подключениями и убедиться, что схема такая же:

  • Резистор подключен к цифровому выводу 13 на плате Arduino.
  • Анод светодиода подключен к другому выводу резистора.
  • Катод светодиода подключен к земле (GND) через синюю линию отверстий.

Для более подробного объяснения, посмотрите Как использовать макетную плату.

После завершения подключения снова подключите Arduino к ПК и повторно запустите скетч Blink:

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

«Привет, мир!» С Arduino и Python

В предыдущем разделе вы загрузили скетч Blink на свою плату Arduino. Эскизы Arduino написаны на языке, похожем на C ++, и компилируются и записываются во флеш-память микроконтроллера при нажатии кнопки Загрузить . Хотя вы можете использовать другой язык для непосредственного программирования микроконтроллера Arduino, это нетривиальная задача!

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

Чтобы управлять Arduino с ПК, вам нужно разработать протокол для связи между ПК и Arduino. Например, вы можете рассмотреть протокол с такими сообщениями, как:

  • ЗНАЧЕНИЕ КОНТАКТА 13 ВЫСОКОЕ: используется для сообщения ПК о состоянии цифровых входных контактов
  • SET PIN 11 LOW: используется для указания Arduino установить состояния выходных контактов

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

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

Arduino IDE включает готовые эскизы, которые будут управлять Arduino через Python с протоколом Firmata. На стороне ПК есть реализации протокола на нескольких языках, включая Python. Чтобы начать работу с Firmata, давайте воспользуемся ею, чтобы реализовать «Hello, World!» программа.

Загрузка эскиза фирмы

Перед тем, как написать программу Python для управления Arduino, вы должны загрузить скетч Firmata, чтобы вы могли использовать этот протокол для управления платой. Эскиз доступен во встроенных примерах Arduino IDE. Чтобы открыть его, войдите в меню Файл , затем Примеры , затем Firmata и, наконец, StandardFirmata :

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

  1. Подключите кабель USB к ПК.
  2. Выберите соответствующую плату и порт в среде IDE.
  3. Нажмите Загрузить .

После завершения загрузки вы не заметите никакой активности на Arduino. Чтобы управлять им, вам все еще нужна программа, которая может связываться с платой через последовательное соединение. Для работы с протоколом Firmata в Python вам понадобится пакет pyFirmata, который можно установить с помощью pip :

После завершения установки вы можете запустить эквивалентное приложение Blink, используя Python и Firmata:

  1импорт pyfirmata
 2время импорта
 3
 4board = pyfirmata. Ардуино ('/ dev / ttyACM0')
 5
 6 пока Верно:
 7 board.digital [13] .write (1)
 8 раз. Сон (1)
 9 board.digital [13] .write (0)
10 раз. Сон (1)
  

Вот как работает эта программа. Вы импортируете pyfirmata и используете его для установления последовательного соединения с платой Arduino, которая представлена ​​объектом board в строке 4. Вы также настраиваете порт в этой строке, передавая аргумент pyfirmata.Arduino () . Вы можете использовать Arduino IDE, чтобы найти порт.

board.digital - это список, элементы которого представляют собой цифровые контакты Arduino. У этих элементов есть методы read () и write () , которые будут читать и записывать состояние контактов. Как и большинство программ для встраиваемых устройств, эта программа в основном состоит из бесконечного цикла:

  • В строке 7 включен цифровой вывод 13 , который включает светодиод на одну секунду.
  • В строке 9, этот вывод выключен, что выключает светодиод на одну секунду.

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

Чтение цифровых входов

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

Значение уровень Напряжение
0 Низкий 0V
1 Высокая

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

Вы можете заметить, что светодиод подключен к Arduino на цифровом выводе 13, как и раньше. Цифровой вывод 10 используется как цифровой вход. Чтобы подключить кнопку, вы должны использовать резистор 10 кОм, который действует как понижающий в этой цепи. Понижающий резистор гарантирует, что цифровой вход получит 0 В при отпускании кнопки.

Когда вы отпускаете кнопку, вы размыкаете соединение между двумя проводами на кнопке. Поскольку через резистор не протекает ток, контакт 10 просто подключается к земле (GND). Цифровой вход получает 0 В, что соответствует состоянию 0 (или low ). Когда вы нажимаете кнопку, вы прикладываете 5 В как к резистору, так и к цифровому входу. Через резистор протекает ток, и на цифровом входе напряжение 5 В, что соответствует состоянию 1 (или high ).

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

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

  1импорт pyfirmata
 2время импорта
 3
 4board = pyfirmata.Arduino ('/ dev / ttyACM0')
 5
 6it = pyfirmata.util.Iterator (доска)
 7it.start ()
 8
 9board.digital [10] .mode = pyfirmata.INPUT
10
11 пока Верно:
12 sw = доска.цифровой [10] .read ()
13, если sw имеет значение True:
14 board.digital [13] .write (1)
Еще 15:
16 board.digital [13] .write (0)
17 раз. Сон (0,1)
  

Давайте пройдемся по этой программе:

  • Строки 1 и 2 импортируют pyfirmata и time .
  • Строка 4 использует pyfirmata.Arduino () для установки соединения с платой Arduino.
  • Строка 6 назначает итератор, который будет использоваться для чтения состояния входов схемы.
  • Строка 7 запускает итератор, который поддерживает выполнение цикла параллельно с вашим основным кодом. Цикл выполняет board.iterate () для обновления входных значений, полученных с платы Arduino.
  • Строка 9 устанавливает вывод 10 как цифровой вход с pyfirmata.INPUT . Это необходимо, поскольку по умолчанию в качестве выходов используются цифровые выводы.
  • Строка 11 запускает бесконечный цикл и . Этот цикл считывает состояние входного контакта, сохраняет его в sw и использует это значение для включения или выключения светодиода путем изменения значения контакта 13.
  • Строка 17 ждет 0,1 секунды между итерациями цикла и . В этом нет строгой необходимости, но это хороший прием, позволяющий избежать перегрузки процессора, который достигает 100% нагрузки, когда в цикле нет команды ожидания.

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

  1импорт pyfirmata
 2время импорта
 3
 4board = pyfirmata.Ардуино ('/ dev / ttyACM0')
 5
 6it = pyfirmata.util.Iterator (доска)
 7it.start ()
 8
 9digital_input = board.get_pin ('d: 10: i')
10led = board.get_pin ('d: 13: o')
11
12 пока правда:
13 sw = digital_input.read ()
14, если sw имеет значение True:
15 светодиодов. Запись (1)
Еще 16:
17 светодиодов. Запись (0)
18 раз. Сон (0,1)
  

В этой версии вы используете board.get_pin () для создания двух объектов. digital_input представляет состояние цифрового входа, а светодиод представляет состояние светодиода.Когда вы запускаете этот метод, вы должны передать строковый аргумент, состоящий из трех элементов, разделенных двоеточиями:

  1. Тип штифта ( a для аналогового или d для цифрового)
  2. Номер шпильки
  3. Режим контакта ( i для входа или o для выхода)

Поскольку digital_input является цифровым входом, использующим контакт 10, вы передаете аргумент 'd: 10: i' . Состояние светодиода устанавливается на цифровой выход с помощью контакта 13, поэтому аргумент led равен 'd: 13: o' .

Когда вы используете board.get_pin () , нет необходимости явно настраивать контакт 10 в качестве входа, как вы делали раньше с pyfirmata.INPUT . После установки контактов вы можете получить доступ к состоянию цифрового входного контакта с помощью read () и установить состояние цифрового выходного контакта с помощью write () .

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

Чтение аналоговых входов

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

Для считывания аналогового напряжения Arduino использует аналого-цифровой преобразователь (АЦП) (АЦП) , который преобразует входное напряжение в цифровое число с фиксированным количеством бит. Это определяет разрешение преобразования. Arduino Uno использует 10-битный АЦП и может определять 1024 различных уровня напряжения.

Диапазон напряжения для аналогового входа кодируется числами от 0 до 1023. Когда подается 0 В, Arduino кодирует его до числа 0 . Когда подается напряжение 5 В, кодируется номер 1023 . Все промежуточные значения напряжения кодируются пропорционально.

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

В этой схеме светодиод настроен так же, как и раньше.Концевые клеммы потенциометра подключены к заземлению (GND) и контактам 5 В. Таким образом, центральный терминал (курсор) может иметь любое напряжение в диапазоне от 0 В до 5 В в зависимости от его положения, которое подключено к Arduino на аналоговом контакте A0.

Используя макетную плату, можно собрать эту схему следующим образом:

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

  1импорт pyfirmata
 2время импорта
 3
 4board = pyfirmata.Ардуино ('/ dev / ttyACM0')
 5it = pyfirmata.util.Iterator (доска)
 6it.start ()
 7
 8analog_input = board.get_pin ('a: 0: i')
 9
10 пока правда:
11 аналоговое_значение = аналоговый_ввод.read ()
12 печать (аналоговое_значение)
13 time. sleep (0,1)
  

В строке 8 вы устанавливаете analog_input как аналоговый входной вывод A0 с аргументом 'a: 0: i' . Внутри бесконечного цикла while вы читаете это значение, сохраняете его в analog_value и выводите вывод на консоль с помощью print () .Когда вы перемещаете потенциометр во время работы программы, вы должны вывести примерно следующее:

  0,0
0,0293
0,1056
0,1838
0,2717
0,3705
0,4428
0,5064
0,5797
0,6315
0,6764
0,7243
0,7859
0,8446
0,9042
0,9677
1.0
1.0
  

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

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

  1импорт pyfirmata
 2время импорта
 3
 4board = pyfirmata. Ардуино ('/ dev / ttyACM0')
 5it = pyfirmata.util.Iterator (доска)
 6it.start ()
 7
 8analog_input = board.get_pin ('a: 0: i')
 9led = доска.get_pin ('d: 13: o')
10
11 пока Верно:
12 аналоговое_значение = аналоговый_ввод.read ()
13, если analog_value не None:
14 задержка = аналоговое_значение + 0,01
15 светодиодов. Запись (1)
16 time.sleep (задержка)
17 светодиодов. Запись (0)
18 time.sleep (задержка)
19 еще:
20 раз. Сон (0,1)
  

Здесь вы вычисляете задержку как analog_value + 0.01 , чтобы избежать нулевой задержки . В противном случае обычно получается analog_value из None во время первых нескольких итераций. Чтобы избежать ошибки при запуске программы, вы используете условие в строке 13, чтобы проверить, равно ли analog_value None . Затем вы контролируете период мигания светодиода.

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

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

Использование аналоговых выходов

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

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

Не все цифровые выводы Arduino могут использоваться в качестве выходов ШИМ. Те, которые можно обозначить, обозначены тильдой ( ~ ):

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

Когда на светодиод подается сигнал ШИМ, его яркость изменяется в соответствии с рабочим циклом сигнала ШИМ. Вы собираетесь использовать следующую схему:

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

Вы можете использовать макетную плату для сборки схемы следующим образом:

Собрав схему, вы можете управлять светодиодом с помощью ШИМ с помощью следующей программы:

  1импорт pyfirmata
 2время импорта
 3
 4board = pyfirmata. Arduino ('/ dev / ttyACM0')
 5
 6it = pyfirmata.util.Iterator (доска)
 7it.start ()
 8
 9analog_input = board.get_pin ('a: 0: i')
10led = доска.get_pin ('d: 11: p')
11
12 пока правда:
13 аналоговое_значение = аналоговый_вход.читать()
14, если analog_value не None:
15 led.write (аналоговое_значение)
16 раз. Сон (0,1)
  

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

  1. В строке 10 вы устанавливаете led в режим ШИМ, передавая аргумент 'd: 11: p' .
  2. В строке 15 вы вызываете led.write () с analog_value в качестве аргумента. Это значение от 0 до 1, считываемое с аналогового входа.

Здесь вы можете увидеть поведение светодиода при перемещении потенциометра:

Чтобы показать изменения в рабочем цикле, осциллограф подключается к контакту 11. Когда потенциометр находится в нулевом положении, вы можете видеть, что светодиод не горит, поскольку на выходе контакта 11 имеется 0 В. Когда вы поворачиваете потенциометр, светодиод становится ярче по мере увеличения рабочего цикла ШИМ. Когда вы поворачиваете потенциометр до упора, рабочий цикл достигает 100%. Светодиод горит постоянно с максимальной яркостью.

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

Использование датчика для запуска уведомления

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

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

Чтобы отобразить уведомление на ПК, вы собираетесь использовать Tkinter, стандартный набор инструментов Python GUI. При нажатии кнопки появится окно сообщения. Чтобы получить более подробное представление о Tkinter, ознакомьтесь с Python GUI Programming With Tkinter.

Вам потребуется собрать ту же схему, что и в примере цифрового входа:

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

  1импорт pyfirmata
 2время импорта
 3импорт tkinter
 4 из окна сообщений импорта tkinter
 5
 6root = tkinter.Tk ()
 7root.withdraw ()
 8
 9board = pyfirmata.Arduino ('/ dev / ttyACM0')
10
11it = pyfirmata.util.Iterator (доска)
12it.start ()
13
14digital_input = board.get_pin ('d: 10: i')
15led = доска.get_pin ('д: 13: о')
16
17 пока Верно:
18 sw = digital_input.read ()
19, если sw имеет значение True:
20 светодиодов.  Запись (1)
21 messagebox.showinfo («Уведомление», «Была нажата кнопка»)
22 root.update ()
23 светодиода. Запись (0)
24 time.sleep (0,1)
  

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

  • Строки 3 и 4 импортируют библиотеки, необходимые для настройки Tkinter.
  • Строка 6 создает главное окно Tkinter.
  • Строка 7 указывает Tkinter не показывать главное окно на экране. В этом примере вам нужно только увидеть окно сообщения.
  • Строка 17 запускает , а цикл :
    1. Когда вы нажимаете кнопку, загорается светодиод, и messagebox.showinfo () отображает окно сообщения.
    2. Цикл приостанавливается, пока пользователь не нажмет OK . Таким образом, светодиод будет гореть, пока сообщение находится на экране.
    3. После того, как пользователь нажмет OK , root. update () очищает окно сообщения с экрана, и индикатор гаснет.

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

  1импорт pyfirmata
 2время импорта
 3импорт smtplib
 4импорт SSL
 5
 6def send_email ():
 7 порт = 465 # для SSL
 8 smtp_server = "smtp.gmail.com"
 9 sender_email = "<ваш адрес электронной почты>"
10 Receiver_email = "<адрес электронной почты получателя>"
11 пароль = "<пароль>"
12 message = "" "Тема: Уведомление Arduino \ n Переключатель был включен."" "
13
14 контекст = ssl.create_default_context ()
15 с smtplib.SMTP_SSL (smtp_server, port, context = context) в качестве сервера:
16 print («Отправка электронного письма»)
17 server.login (sender_email, пароль)
18 server.sendmail (sender_email, получатель_email, сообщение)
19
20board = pyfirmata.Arduino ('/ dev / ttyACM0')
21 год
22it = pyfirmata.util.Iterator (доска)
23it.start ()
24
25digital_input = доска. get_pin ('d: 10: i')
26
27 пока Верно:
28 sw = digital_input.read ()
29, если sw имеет значение True:
30 send_email ()
31 раз.сон (0,1)
  

Вы можете узнать больше о send_email () в разделе «Отправка писем с помощью Python». Здесь вы настраиваете функцию с учетными данными почтового сервера, которые будут использоваться для отправки электронного письма.

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

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

Если вы хотите использовать Firmata для взаимодействия с более сложными приложениями, попробуйте некоторые из этих проектов:

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

Заключение

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

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

Вы узнали, как:

  • Разработка приложений с помощью Arduino и Python
  • Используйте протокол Firmata
  • Управление аналоговыми и цифровыми входами и выходами
  • Интеграция датчиков с приложениями Python более высокого уровня

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

Дополнительная литература

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

  • REST API: Они широко используются для интеграции различных приложений. Вы можете использовать REST с Arduino для создания API, которые получают информацию от датчиков и отправляют команды исполнительным механизмам.Чтобы узнать о REST API, ознакомьтесь с Python REST API с Flask, Connexion и SQLAlchemy.

  • Альтернативный графический интерфейс: В этом руководстве вы использовали Tkinter для создания графического приложения. Однако есть и другие графические библиотеки для настольных приложений. Чтобы увидеть альтернативу, прочтите статью Как создать приложение Python с графическим интерфейсом пользователя с помощью wxPython.

  • Threading: Бесконечный цикл и , который вы использовали в этом руководстве, является очень распространенной особенностью приложений Arduino.Однако использование потока для запуска основного цикла позволит вам одновременно выполнять другие задачи. Чтобы узнать, как использовать потоки, ознакомьтесь с «Введение в потоки в Python».

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

Наконец, есть и другие способы использования Python в микроконтроллерах, помимо Firmata и Arduino:

  • pySerial: Arduino Uno не может запускать Python напрямую, но вы можете создать свой собственный эскиз Arduino и использовать pySerial для установления последовательного соединения. Затем вы можете управлять Arduino с помощью Python, используя свой собственный протокол.

  • MicroPython: Если вы заинтересованы в запуске Python непосредственно на микроконтроллере, ознакомьтесь с проектом MicroPython.Он обеспечивает эффективную реализацию Python для выполнения на некоторых микроконтроллерах, таких как ESP8266 и ESP32.

  • SBC: Другой вариант - использовать одноплатный компьютер (SBC), такой как Raspberry Pi, для запуска Python. SBC - это полноценные компьютеры размером с Arduino, которые могут работать под управлением операционной системы на базе Linux, что позволяет использовать ванильный Python. Поскольку большинство SBC имеют входные и выходные контакты общего назначения, вы можете использовать их для замены Arduino в большинстве приложений.

Программируйте свой Arduino как профессионал с помощью Eclipse C / C ++ IDE

Я давно занимаюсь разработкой инструментов. Все началось чуть более 20 лет назад, когда я работал в Nortel и принес необычный инструмент моделирования под названием ObjecTime Developer, который помог нам построить систему OA&M для нового компонента их знаменитого коммутатора телефонной станции. Я так хорошо провел время, что вскоре после этого присоединился к ObjecTime и никогда не оглядывался назад.

За прошедшие с тех пор 20 лет я создал инструменты для разработчиков встраиваемых систем, начиная с Developer, который со временем превратился в Rational Rose RealTime.В конце концов, я немного разочаровался в инструментах моделирования и перешел в среду IDE, работая над Eclipse CDT. Мне действительно повезло, что я попал в эти проекты, и я очень горжусь тем, чего мы достигли с ними.

Но одна вещь все время была в моей голове. Я практически не занимался разработкой встраиваемых систем со времен Nortel. Я создавал инструменты для разработчиков встраиваемых систем и толком не знал, каково быть ими. Примерно тогда же началось увлечение Arduino, и я нашел свой путь, в котором я мог бы прыгнуть с моим первым Arduino Uno. Было очень весело работать с датчиками и светодиодами и создавать простые небольшие проекты Интернета вещей. Это был такой отличный познавательный опыт.

Став разработчиком Arduino, я не мог не разочароваться в Arduino IDE. Я помню, как задавался вопросом, что это за комбинация клавиш помощи по содержанию, просто чтобы узнать, у нее нет поддержки по содержанию. Какие? Это была одна из первых функций, которые мы добавили в CDT, когда у нас появился синтаксический анализатор C ++. Это заставило меня задуматься. Насколько сложно было бы расширить CDT для программирования Arduino? Это заняло некоторое время, но в октябре прошлого года я наконец-то дошел до того момента, когда был готов сделать его доступным для сообщества.В этой статье описывается IDE Arduino C ++ и то, как она использует возможности Eclipse C / C ++ IDE.

Почему C ++?

Первое, что следует отметить, это то, что IDE Arduino C ++ - это именно C ++. Он не поддерживает эскизы INO, которые поддерживает официальная среда разработки Arduino. В этих эскизах используется «Wiring», который является «языком программирования», основанным на более ранней работе под названием «Processing». Wiring - это, по сути, библиотека C ++ и небольшое подмножество языка C ++. Единственное отличие состоит в том, что вам не нужно включать системные файлы заголовков, т.е.е. Arduino.h, и вам не нужно пересылать объявления о своих функциях.

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

Начало работы

IDE Arduino C ++ доступна на Eclipse Marketplace. Для начала пользователям необходимо загрузить Eclipse C ++ IDE со страницы загрузок Eclipse.C ++ IDE можно установить с помощью нового установщика Eclipse или загрузить пакет C ++ напрямую. После настройки клиент Marketplace можно использовать для поиска и установки IDE Arduino C ++. На рынке есть и другие IDE Arduino, поэтому поищите логотип CDT, чтобы найти тот, о котором я пишу здесь.

После того, как плагины установлены, вам необходимо установить «Платформу». Платформа Arduino - это, по сути, комплект для разработки программного обеспечения (SDK), который включает основные библиотеки и набор инструментов, используемых для создания приложений для набора плат.Создатели Arduino IDE сделали очень интересную вещь и имеют общедоступные метаданные, которые описывают SDK и предоставляют достаточно информации для загрузки всего, что вам нужно. Eclipse Arduino C ++ IDE использует это и представляет эту информацию в диспетчере загрузок Arduino.

Список URL-адресов файлов package.json, содержащих эту информацию, поддерживается на страницах настроек Arduino. Эти файлы метаданных предоставляются поставщиками плат, а неофициальный список можно найти на вики-странице Arduino.

Существует эквивалент для библиотек, хотя в этом случае поставщики IDE Arduino поддерживают полный список, а IDE Arduino C ++ ссылается на него напрямую. Сюда входят библиотеки для различных периферийных устройств, таких как NeoPixels или Wifi-чипы, а также библиотеки для многоразовых функций, таких как протокол MQTT.

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

Панель запуска Eclipse

Первый шаг - сообщить Eclipse о плате, с которой вы хотите работать.Это будет стимулировать процессы сборки и запуска, чтобы ваши проекты заработали. Чтобы упростить этот процесс, мы будем использовать новую панель запуска Eclipse.

Панель запуска была создана моей командой здесь, в QNX, и внесена в Eclipse для использования в других проектах сообщества. Основная цель - упростить процесс запуска, сведя к минимуму необходимость для пользователей открывать диалоговые окна конфигурации запуска. Если подключаемые модули настроены правильно, а подключаемый модуль Arduino C ++ IDE делает это, вы должны иметь возможность выбрать проект, который хотите запустить, и цель, в которой вы хотите его запустить, и нажать кнопку «Запуск».

Он также позволяет установить режим запуска, но, поскольку Arduino не поддерживает отладку (пока), у нас доступен только Run.

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

После создания платы вы можете приступить к созданию проекта Arduino. Вы можете получить доступ к мастеру для создания из меню верхнего уровня «Файл», «Новый проект Arduino» или «Новый проект C / C ++» и выбрать Arduino C ++ Sketch в качестве шаблона. Это создаст минимальный проект Arduino, который имеет функцию настройки и функцию цикла. Добавьте код Blinky и нажмите кнопку Launch (средняя) на панели запуска, чтобы запустить свой скетч.

Монитор последовательного порта

Как и при обычном программировании Arduino, вы можете запрограммировать последовательный порт для печати сообщений обратно в IDE.К сожалению, это все еще основной способ отладки программ Arduino. Для просмотра сообщений мы подключили последовательный порт к Eclipse Console View. Чтобы открыть его, найдите свою доску в представлении «Подключения» (возможно, сначала вам потребуется открыть это представление). Пункт меню «Открыть командную оболочку» в соединении создаст новую консоль для отображения вывода с этой платы.

Дополнительная справка

Я создал скринкаст на YouTube, который описывает весь этот процесс, включая дополнительные шаги по использованию библиотек в вашем проекте.Посмотреть видео можно здесь:

Форум CDT - лучшее место, чтобы задать вопросы, хотя я получил вопросы отовсюду, в том числе на странице YouTube и в разделе MarketPlace.

https://www.eclipse.org/forums/index.php?t=thread&frm_id=80

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

https: // ошибки.eclipse.org/bugs/enter_bug.cgi?product=CDT

Направления будущего

IDE Arduino C ++ - это довольно полная IDE. Я использовал его для создания демонстраций для конференций Eclipse, и мне нравится, что я могу использовать всю мощь Eclipse C / C ++ IDE для этих хобби-проектов. Но есть еще пара вещей, которые необходимо сделать.

Во-первых, я не уверен, что мне действительно нравится, когда Serial Monitor находится в режиме консоли. Это был своего рода эксперимент. Для Oxygen, следующего выпуска Eclipse, я подключу Serial Monitor к Eclipse Terminal View, что обеспечит более стандартный рабочий процесс.

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

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

Об авторах

Программирование Arduino из Raspberry Pi

Решение

IDE Arduino доступна для Raspberry Pi. Это немного медленно, но можно использовать. Используйте эти команды для его установки:

 $ sudo apt-get update
$ sudo apt-get install arduino 

На момент написания это устанавливает версию 1.0.1, которая не является последней версией, но подходит для Arduino Uno; Однако он не будет работать с новыми платами, такими как Leonardo и Due. Их все еще можно использовать с Raspberry Pi, но вам понадобится другой компьютер, чтобы запрограммировать их перед подключением к Raspberry Pi.

После установки вы найдете группу «Электроника» в меню «Программы» (рисунок 10-1).

Рисунок 10-1. IDE Arduino, работающая на Raspberry Pi

IDE Arduino подключается к Raspberry Pi через USB-кабель для его программирования. Это соединение также требует, чтобы последовательная консоль была отключена. Вы можете выполнить «Освобождение последовательного порта», чтобы сделать это, но второй вариант - запустить сценарий, созданный Кевином Осборном, который отключает последовательную консоль и настраивает последовательные порты и профили Arduino, необходимые для работы.Это имеет то преимущество, что он также настраивает плату aLaMode, чтобы она была готова к использованию («Начало работы с платой aLaMode и Raspberry Pi»).

Чтобы загрузить и запустить этот сценарий, выполните следующие действия:

 $ wget https://github. com/wyolum/alamode/blob/master/bundles
  /alamode-setup.tar.gz?raw=true -O alamode-setup.tar.gz
$ tar -xvzf alamode-setup.tar.gz
$ cd alamode-setup
$ sudo ./setup 

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

 $ sudo reboot 

Теперь вы можете подключить Arduino к Raspberry Pi. В меню «Инструменты» выберите «Плата» и установите тип платы «Arduino Uno». Затем в опции «Последовательный порт» выберите / dev / ttyACM0 . Чтобы загрузить тестовую программу, которая заставит светодиод на Arduino мигать, выберите меню «Файл», затем нажмите «Примеры, основные» и, наконец, нажмите «Мигать». Щелкните стрелку вправо на панели инструментов, чтобы начать процесс компиляции и загрузки. Если все в порядке, вы должны увидеть сообщение «Done Uploading» в области состояния в нижней части окна IDE.

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

Обсуждение

Чтобы получить максимальную отдачу от использования Arduino с Raspberry Pi, вам нужно немного изучить программирование Arduino. С уважением, вы можете найти книгу Programming Arduino: Getting Started with Sketches (McGraw-Hill / Tab Books), очень полезной.

Однако вы можете использовать Arduino без необходимости писать какой-либо код на стороне Arduino, используя проект PyFirmata. «Настройка PyFirmata для управления Arduino с Raspberry Pi» объясняет, как использовать PyFirmata.

Tweaking4All.com - Часть 1, Программирование Arduino для начинающих

Обзор этой главы

Полный обзор этого курса можно найти здесь: Обзор курса .

Что такое Ардуино?

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

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

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

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

Микросхема

Atmel AVR ATMega328p

Вот почему организация / компания под названием « Arduino » создала плату, чтобы облегчить жизнь… и за эти годы они разработали множество моделей и вариаций этих плат, некоторые меньше, некоторые быстрее, некоторые с большим объемом памяти и т. Д.

Arduino Uno R3

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

Какую модель мы будем использовать для программирования Arduino?

Для программирования Arduino я выбрал Arduino Uno R3, который доступен по цене и является одним из самых распространенных Arduino на момент написания этой статьи.Вы можете найти их, например, на Amazon или eBay, но во многих других магазинах они также есть в продаже. Также обратите внимание, что eBay не всегда является самым дешевым источником для получения вашего Arduino, и обратите внимание, что вы можете купить «только» Arduino Uno R3 или комплекты, которые включают кабель USB или полный стартовый комплект со всеми видами дополнительных услуг. Выбор за вами, с чего вы хотите начать.

Обратите внимание, что нам нужен кабель USB A - USB B для подключения Arduino к нашему компьютеру.

Кабель USB с разъемами типа A и типа B

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

Мы рекомендуем подлинный Arduino Uno R3 для ваших первых опытов с Arduino

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

Arduino Uno R3 - вид спереди и сзади

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

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

Arduino UNO R3 - стандартный (слева) и SMD (справа)

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

Что такое IDE и что такое компилятор?

IDE - это то, что они называют интегрированной средой I evelopment E , что означает «все инструменты, необходимые для программирования, в одном пакете». Тот факт, что все необходимые инструменты объединены в один пакет, упрощает начало работы, и организация Arduino предлагает этот программный пакет бесплатно - вы можете загрузить его здесь .

У нас также есть версия, доступная на Tweaking4All, но имейте в виду, что она может быть устаревшей.

СКАЧАТЬ - Arduino Windows
Имя файла: arduino-ide-windows.exe
Платформа: Microsoft Windows
Версия: 1,8,8
Размер: 110,7 МБ
Дата: 2018-01-02

Прямая ссылка: https: // www.tweaking4all. com/downloads/arduino-ide-windows.exe
Загрузить сейчас

СКАЧАТЬ - Arduino MacOS X
Имя файла: arduino-ide-macosx.zip
Платформа: Apple, macOS
Версия: 1.8,8
Размер: 189,7 МБ
Дата: 2018-01-02

Прямая ссылка: https://www. tweaking4all.com/downloads/arduino-ide-macosx.zip
Загрузить сейчас

СКАЧАТЬ - Arduino Linux 32 бит
Имя файла: arduino-ide-linux32.tar.xz
Платформа: Linux
Версия: 1,8,8
Размер: 124,1 МБ
Дата: 2018-01-02

Прямая ссылка: https://www. tweaking4all.com/downloads/arduino-ide-linux32.tar.xz
Загрузить сейчас

СКАЧАТЬ - Arduino Linux 64 бит
Имя файла: arduino-ide-linux64.tar.xz
Платформа: Linux
Версия: 1,8,8
Размер: 121.7 МБ
Дата: 2018-01-02

Прямая ссылка: https://www. tweaking4all.com/downloads/arduino-ide-linux64.tar.xz
Загрузить сейчас

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

Языки перевода

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

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

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

Переводчик - Переводите на лету

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

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

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

Компилятор - Переведите перед использованием

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

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

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

То же самое и с нашим компьютером: перевод всего нашего кода занимает немного больше времени, но результат быстрее, и вам не нужно иметь под рукой «интерпретатор», что делает вещи немного меньше и проще.

В среде Arduino IDE используется КОМПИЛЯТОР .

Как настроить IDE Arduino?

После того, как вы загрузили Arduino IDE, подходящую для вашего компьютера, пора установить и правильно настроить.

Загрузите и установите IDE

Для установки используйте обычную установку приложения для вашей системы.
Пользователи Windows дважды щелкните EXE-файл и следуйте инструкциям. Пользователи Mac и Linux должны сначала распаковать архив, прежде чем они смогут установить приложение.После этого пользователи Mac OS X перетаскивают приложение Arduino IDE в свои приложения.

После этого запустите приложение Arduino, которое будет немного отличаться в каждой операционной системе, но «основное» представление одинаково для всех (молодцы, команда Arduino!). Как обычно, меню MacOS X находится в верхней панели экрана, а в Linux и Ubuntu их меню находится в верхней части окна приложения.

Подключите Arduino к компьютеру с помощью кабеля USB!

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

Программное обеспечение

Arduino под MacOS X, Ubuntu и Windows

Начальная конфигурация программного обеспечения Arduino

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

Windows пользователей

Сначала нам нужно подключиться к нужному устройству.
Откройте меню «Инструменты». «Последовательный порт» и выберите соответствующий порт «Com» (устройство USB), это будет сильно зависеть от вашего компьютера, но это может быть, например, COM4.Большинство новых компьютеров больше не имеют встроенных стандартных COM-портов, поэтому в таких случаях это может быть даже COM1.

Далее нам нужно указать, какой тип платы Arduino мы используем.
В меню «Инструменты» «Плата» выберите имеющуюся у вас плату Arduino, в моем случае «Arduino Uno».

Linux пользователя

Сначала нам нужно выбрать правильное устройство.
Откройте меню «Инструменты». «Последовательный порт» и выберите последовательное устройство для USB-подключения к Arduino (в моей настройке Ubuntu это было / dev / ttyMCA0 , ваше может быть другим).

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

Mac OS X пользователя

Mac не имеет com-портов, поэтому нам нужно выбрать правильный порт устройства для нашей Arduino.
В меню выберите «Инструменты» «Порт» и найдите что-то вроде этого (если у вас Uno): /dev/cu.usbmodem1421 (Arduino Uno) и выберите его.

Далее нам нужно выбрать наш тип Arduino в меню «Инструменты». «Плата», в моем случае «Arduino Uno».

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

Протестируйте нашу установку

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

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

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

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2312 20 913 912 21
24

/ *
Мигает
Многократно включает светодиодный индикатор на одну секунду, затем выключается на одну секунду.

Этот пример кода находится в открытом доступе.
* /

// К выводу 13 подключен светодиод на большинстве плат Arduino.
// дайте ему имя:
int led = 13;

// процедура настройки запускается один раз при нажатии кнопки сброса:
void setup () {
// инициализирует цифровой вывод как выход.
pinMode (светодиод, ВЫХОД);
}

// процедура цикла выполняется снова и снова бесконечно:
void loop () {
digitalWrite (led, HIGH); // включаем светодиод (HIGH - уровень напряжения)
delay (1000); // ждем второй
digitalWrite (led, LOW); // выключаем светодиод, сделав напряжение LOW
delay (1000); // ждем второй
}

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

В верхней части Arduino IDE вы увидите 5 кнопок или ярлыков, как показано ниже на рисунке 7.

После вставки текста в текстовом редакторе нажимаем кнопку «B».

Программное обеспечение Arduino - Полезные ярлыки

Полезные горячие клавиши Arduino
Кнопка быстрого доступа Назначение
A Проверить - Проверить код
B Загрузить - проверить, скомпилировать и загрузить в Arduino
К Новое - Создать новый эскиз
D Открыть - открыть существующий эскиз
E Сохранить - Сохранить эскиз

Как видно из таблицы, кнопка « A » используется только для проверки правильности нашего кода.
Кнопка « B » также сделает это, но она также скомпилирует и загрузит нашу программу, если код был успешно проверен.

Кнопки « C », « D » и « E » - это обычные файловые операции, такие как создание нового файла (C), открытие существующего файла (D) и сохранение файла (E).

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

Arduino Исходный код в файле называется ЭСКИЗ

После того, как вы нажмете кнопку «B», ваша программа будет загружена на ваш Arduino - индикаторы будут мигать несколько раз, пока загрузка не завершится и наша программа не запустится. В этом случае он включит свет ( LED = Light Emitting Diode), обозначенный на рисунке ниже: 1 секунда ВКЛ, 1 секунда ВЫКЛ, 1 секунда ВКЛ, 1 секунда ВЫКЛ и т. Д.

Arduino Uno: светодиод на выводе 13

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

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

Следующая глава: Программирование Arduino для начинающих - Часть 2: Вывод

.

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

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