А программировать надо уметь?
Если умеете, создание первого робота окажется, возможно, даже слишком легким делом. Если не умеете — отличный повод научиться. Дело в том, что программирование робота — штука очень наглядная: вот вы написали код и сразу же загорелась лампочка. Вам нужно, чтобы ваш робот разворачивался, когда до стены осталось меньше 5 см, значит, в программе надо прописать такое условие, всё логично. Именно поэтому детей часто начинают учить программированию на примере робототехники: здесь вместо скучных абстракций сразу получается осязаемый результат в реальном мире. На этом принципе строится обучение по программе «Робототехника». Все участники сразу же могут применить полученные знания на практике.
Начало
Создание проекта на Arduino состоит из 3 главных этапов: написание кода, прототипирование (макетирование) и прошивка. Для того, чтоб написать код а потом прошить плату нам необходима среда разработки. На самом деле их есть немало, но мы будем программировать в оригинальной среде – Arduino IDE. Сам код будем писать на С++, адаптированным под Arduino. Скачать можно на официальном сайте. Скетч (набросок) – программа, написанная на Arduino. Давайте посмотрим на структуру кода:
Важно заметить, что обязательную в С++ функцию процессор Arduino создаёт сам. И результатом того, что видит программист есть:. Давайте разберёмся с двумя обязательными функциями
Функция вызывается только один раз при старте микроконтроллера. Именно она выставляет все базовые настройки. Функция — циклическая. Она вызывается в бесконечном цикле на протяжении всего времени работы микроконтроллера
Давайте разберёмся с двумя обязательными функциями. Функция вызывается только один раз при старте микроконтроллера. Именно она выставляет все базовые настройки. Функция — циклическая. Она вызывается в бесконечном цикле на протяжении всего времени работы микроконтроллера.
Слабо ли мы используем пароли?
Кредит изображения: designer491 / DepositPhotos
Конечно, эта атака полностью зависит от того, кто использует часто используемый пароль в своей учетной записи. Однако в наши дни и в каком возрасте кто-то может использовать один из этих паролей?
К сожалению, наши привычки паролей не улучшились за эти годы. NCSC провела исследование желающих организаций, чтобы проверить, насколько они подвержены атаке распыления. Они обнаружили, что у 75% организаций была хотя бы одна учетная запись, которая использовала пароль в 1000 лучших паролей, а у 87% была по крайней мере одна учетная запись с паролем в первых 10000.
Это недостаток безопасности, который стремятся использовать распылители паролей. Все, что требуется, это чтобы один пользователь в организации использовал слабый пароль для атаки с помощью распыления. Как только хакер войдет в эту учетную запись, он сможет использовать этот рычаг, чтобы глубже проникнуть в систему.
4Чем может управлять Arduino
В итоге такое количество «рук» у Arduino позволяет подключать к нему огромное количество различных периферийных устройств. Среди них, например:
- кнопки, герконы и джойстики,
- светодиоды и фотодиоды,
- микрофоны и динамики,
- электродвигатели и сервоприводы,
- ЖК дисплеи,
- считыватели радиометок (RFID и NFC),
- bluetooth, WiFi и Ethernet модули,
- считыватели SD карт,
- радиоприёмники и радиопередатчики,
- GPS и GSM модули…
А также десятки различных датчиков:
- освещённости,
- магнитного поля,
- ультразвуковые и лазерные дальномеры,
- гироскопы и акселерометры,
- датчики дыма и состава воздуха,
- датчики давления, температуры и влажности…
И ещё многое, многое другое
Разнообразные датчики, которые можно подключить к Arduino
На фотографии показана лишь крохотная часть периферийных устройств, которые можно подключить к Arduino. На самом деле их гораздо, гораздо больше.
Зачем изучать Ардуино?
Итак, вы знаете, что Arduino проста в использовании. Но зачем вам тратить время на изучение того, как использовать эту плату микроконтроллера? Ну, он невероятно гибкий. С Arduino вы можете делать все, от управления роботом до управления проектом домашней автоматизации, и многое другое.
Основные преимущества изучения Arduino:
- Вы можете создавать потрясающие проекты
- Arduino отлично подходит для программирования
- Вы легко выучите электронику
- Это дешевое хобби, чтобы начать
- Arduino может подойти вам лучше, чем Raspberry Pi
Давайте подробнее рассмотрим, почему мы все должны использовать Arduino.
Зачем нужны соревнования по робототехнике?
Основатель фонда «Вольное дело» Олег Дерипаска говорит, что вся техника, которая окружает нас сегодня, придумана и создана инженерами, у которых было любопытство, желание узнавать неизведанное. «Именно от инженеров и технических специалистов зависит то, каким будет наш завтрашний день. Их идеи, основанные на творческом подходе, прочных знаниях и постоянном стремлении к новаторству, заставляют мир двигаться вперед», — считает он.
Будущее российской и мировой робототехники сейчас находится в руках детей, которые интересуются этой наукой, создают свои первые проекты, привозят их на соревнования, чтобы показать свои работы и посмотреть на чужой опыт.
Здесь трудно переоценить вклад программы «Робототехника» фонда «Вольное дело», в рамках которой с 2009 года организуются общероссийские инженерно-технические соревнования, которые завершаются всероссийским фестивалем PROFEST (до 2017-го он назывался «Робофест») . Победители PROFEST уже отправляются представлять нашу страну на международных соревнованиях. Глава фонда «Вольное дело» Олег Дерипаска считает, что результат невозможен без опыта — развития, тренировки ума и талантов:
Сейчас в программе «Робототехника» участвует более 15 тысяч школьников и студентов из 69 регионов России. За десять с лишним лет создано 500 ресурсных региональных центров, подготовлено более тысячи аттестованных инструкторов. С программой сотрудничают 27 вузов и 8 предприятий-партнеров.
За время существования программы в фестивале PROFEST участвовали более 100 тысяч школьников. Каждый третий из них впоследствии поступил в технический вуз.
Анастасия Сигинова вспоминает своих подопечных на детских соревнованиях, которых годы спустя она встречала в Сколково на конкурсах по созданию автономного беспилотного автомобиля, в составе команд крупных компаний или в качестве студентов факультетов робототехники. «Это очень приятно», — делится она.
Причина 4. Вы сами выбираете отрасль: от финансов до медицины
Высокий спрос позволяет выбирать задачи, которые вам действительно интересны. Например, если горите образовательными проектами, можно с головой уйти в эту сферу и разрабатывать приложения для университетов: от простого календаря лекций до полноценной платформы проверки знаний.
Если же близка тема медицины, создавайте приложения, которые, допустим, помогают записаться на прием в поликлинику или рассказать о тревожных симптомах своему врачу, чтобы он выдал направление на анализы.
Пока не определились со сферой? Тогда пробуйте себя в разных: меняйте e-commerce на образование, медицину на финансы и так далее. Так зерокодинг позволит вам собрать богатое портфолио и с каждым разом браться за еще более крутые проекты.
Создаем девайс и подключаем библиотеку #
Давайте взглянем на библиотеку от Adafruit. И в первую очередь нас интересуют конструкторы класса:
Она имеет три конструктора для разных способов подключения: HardwareSPI, HardwareI2C и SoftwareSPI. Давайте остановимся на втором варианте и создадим девайс для этого типа подключения:
Создадим новый патч “pn532-device”. Название патча станет названием нового кастомного типа, который мы будем передавать в ноды-действия
Обратите внимание на device в названии. По конвенции, любые ноды, которые создают новый тип данных для работы с устройствами, мы называем .
Поставим ноду , т.к
нам потребуется создать экземпляр класса из C++ библиотеки.
Поставим ноду , задав ей label: Благодаря этому особому терминалу мы объявим кастомный тип. После этого будут автоматически сгенерированы терминалы и . Их вы можете найти в Браузере Проекта.
Поставим один терминал для указания порта прерывания: . Это один из двух портов требуемых в конструкторе класса. По нему модуль будет сообщать Arduino что обнаружена карта. Второй пин (reset) нам не потребуется, т.к. Он нужен для перезагрузки модуля в случае если вы работаете с ним на низком уровне и что-то сделали не так. За нас все это делает проверенная библиотека, так что перезагружать модуль нам не придется.
Откроем редактор C++ кода и напишем на первой строчке:
Note
В данный момент подключение сторонних библиотек возможно только с GitHub из master-ветки. Если вы хотите подключить библиотеку из другой ветки или с правками — сделайте fork и подключайте его.
Это особая строка, сообщающая XOD-у, что этой ноде потребуется сторонняя C++ библиотека. При первой же компиляции XOD проверит ее наличие в вашем workspace и если не найдет ее, то предложит скачать и установить ее просто нажав на кнопку в самой IDE.
Note
После установки нужно будет запустить компиляцию еще раз.
Таким образом мы установим библиотеку и теперь сможем ей пользоваться. Давайте подключим её и создадим экземпляр класса:
Мы подключили библиотеку и создали экземпляр класса. Осталось инициализировать NFC сканер и начать работать с ним. Для этого нам потребуется создать ноды-действия. Приступим.
Полезные страницы
- Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
- Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
- Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
- Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
- Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
- Поддержать автора за работу над уроками
- – сообщить об ошибке в уроке или предложить дополнение по тексту ()
5Общение с Arduino
Как же процессор узнаёт, что именно ему следует делать? Вы должны рассказать ему это. Написание сообщений для Arduino называется программирование. Существует язык для общения с микроконтроллером, упрощённый и адаптированный специально для Arduino. Освоить этот язык совсем не сложно при желании и определённой настойчивости, даже если вы никогда раньше не программировали.
И для упрощения этого процесса разработана специальная программная среда – Arduino IDE. В её состав включены десятки примеров хороших, работающих программ. Изучив их, вы очень быстро многое узнаете о языке общения с Arduino.
Внешний вид среды разработки для программирования Ардуино – Arduino IDE
Arduino позволит вашим программам выйти из виртуального мира в мир реальный. Вы сможете увидеть, как написанные вами программы заставляют мигать светодиод или вращать вал двигателя, а затем делать и более сложные и полезные вещи. Arduino позволит вам узнать много нового и интересного и в электронике, и в программировании. В итоге это может послужить вам отличным хобби, увлекательным занятием с детьми, замечательным и полезным времяпровождением.
Ну и напоследок, посмотрите, какие разные и замечательные проекты можно воплотить с помощью Ардуино!
Установка библиотек
Библиотека – несколько файлов с кодом, облегчающим работу с датчиками и другими модулями. К моим проектам библиотеки идут в архиве (об этом ниже). Рассмотрим все способы загрузки и установки библиотек.
Менеджер библиотек
Большинство Ардуино-библиотек можно установить автоматически из встроенного в программу менеджера библиотек:
- Скетч/Подключить библиотеку/Управлять библиотеками…
- Комбинация клавиш Ctrl+Shift+I
Нужную библиотеку можно найти в поиске по названию и нажать Установка, библиотека будет автоматически установлена в папку с библиотеками. Arduino IDE проверяет обновления библиотек при запуске и предложит обновиться, если найдёт обновления.
Скачивание с GitHub
Не все существующие библиотеки есть в менеджере библиотек и скачать их можно только с GitHub. Есть два способа: скачать весь репозиторий и скачать релиз. Весь репозиторий со всеми “лишними” служебными файлами можно скачать одним архивом вот так, нажав Code/Download ZIP
Если у библиотеки есть релизы – справа будет отмечен последний (свежий) релиз. Нажимаем на него:
И в новом окне нажимаем Source code (zip) – начнётся загрузка архива. Скачивание релиза более предпочтительно, так как содержит только файлы библиотеки.
В обоих случаях библиотека скачается как .zip архив.
Автоматическая установка
Скачанный .zip архив можно установить в автоматическом режиме через Скетч/Подключить библиотеку/Добавить .ZIP библиотеку… В открывшемся окне выбрать скачанный архив, библиотека будет установлена по указанному в настройках пути.
Ручная установка
Для начала нужно распаковать архив (стандартный архиватор Windows или WinRAR). Чтобы Arduino IDE смогла использовать библиотеку, нам нужно положить её туда, где программа будет её искать. Таких мест три (на примере Windows):
- Документы/Arduino/libraries/
-
Папка с программой/libraries/
- C/Program Files/Arduino/libraries/ (Windows 32)
- C/Program Files (x86)/Arduino/libraries/ (Windows 64)
- В портативной версии IDE желательно держать библиотеки в Папка с программой/libraries
Рекомендуется держать все библиотеки в одном месте, чтобы не было путаницы. Лично я устанавливаю все библиотеки в папку с программой (в Program Files), но для этого могут потребоваться права администратора (зависит от версии и настроек Windows). Если у вас возникли с этим проблемы – устанавливайте в Документы/Arduino/libraries/. На скриншотах показана установка скачанной с GitHub библиотеки в папку с программой и в документы. Ставить нужно в одно место, я просто показываю оба варианта.
Чистый Си? Писать без библиотек?
Очень многие считают, что эффективный код нужно писать без библиотек, чистым полотном. Это полнейшая чушь, потому что:
Современные микроконтроллеры имеют достаточно памяти для того, чтобы разработчик мог позволить себе сэкономить время и использовать готовые инструменты. Более того, серьёзные разработки делаются с использованием операционных систем реального времени, которые сами по себе являются огромной тяжёлой библиотекой. Никто не пишет на ассемблере, за окном не 1980 год.
Компилятор “вырежет” неиспользуемый код из библиотеки.
Если писать крупный проект чисто голым кодом – это будет полотно на несколько тысяч строк, в котором невозможно будет разобраться. Программу разбивают на файлы – по сути на те же самые библиотеки! Некоторые алгоритмы и части программы изначально удобно обернуть в независимую библиотеку и использовать в том числе для других проектов, чтобы не писать заново
Так что писать без библиотек невозможно в принципе, неважно скачаете ли вы её с интернета или напишете сами.
Если у вас в проекте одна кнопка – нет большой разницы, описывать её вручную или использовать библиотеку. Но как только появляется ещё одна кнопка – с точки зрения памяти гораздо эффективнее использовать библиотеку, потому что код обработки не будет дублироваться
К этому мы вернёмся в уроке про создание крупных проектов.
Если вы новичок, то в 99% библиотека из интернета будет написана и оптимизирована в разы лучше, чем ваш код.
Программирование ЖК
Обычно мы сейчас начинаем длительный процесс кодирования, но, поскольку мы используем Xod, мы не будем его писать. В браузере проекта выберите Текст-LCD-16 × 2— вы найдете это под XOD / общее аппаратное обеспечение, Перетащите его в свою программу и используйте инспектор, чтобы установить его с помощью штифтов, как показано на рисунке.
L1 это первая строка ЖК-дисплея, и L2 это второе, на данный момент мы жестко закодировали «Hello World», чтобы проверить, все ли работает. Разверните свою программу на Arduino, чтобы увидеть, как она работает. Если ваш текст плохо виден, попробуйте повернуть потенциометр 10 Кб, чтобы отрегулировать контрастность ЖК-дисплея.
Теперь нужно настроить датчик расстояния и заставить его разговаривать на ЖК-экране.
Знакомство с интерфейсом Ардуино
Одним из основных элементов ардуино является главное меню программы, которое позволяет получить доступ ко всем доступным функциям нашей программы.
Ниже расположена панель с иконками, которые отображают наиболее используемые функции Arduino IDE:
Следующим по важности элементом является вкладка с файлами проекта. Если это простой скетч, то файл будет всего один
Однако сложные скетчи могут состоять из нескольких файлов. В таком случае на панели вкладок можно быстро переключить просмотр с одного файла на другой. Это очень удобно.
Самым большим из блоков является поле редактора наших скетчей. Тут мы можем просмотреть и, при необходимости, отредактировать нужный нам программный код. Отдельно реализовано поле для вывода системных сообщений. С его помощью можно убедиться, что сохранение вашего скетча или его загрузка были проведены успешно, и вы можете приступать к следующим действиям. Также в программе существует окно, отображающее наличие в ходе компиляции вашего скетча.
Отсутствие «реальной» отладки
Когда в Arduino использовался ATmega328, у разработчика не было порта отладки. Теперь появилась серия плат Due, и отладочные порты имеют микроконтроллеры Microchip (Atmel) от серии tiny (DebugWire) до серии XMEGA (PDI и JTAG), однако пользователям Arduino этот мощный набор инструментов по-прежнему недоступен. Думаю, что при использовании правильно настроенного отладчика время разработки приложений у меня снижается процентов на 30. Поэтому ARM интересен хотя бы тем, что может использовать реализацию OpenOCD, предоставляющую разработчику широкие возможности отладки и программирования. Несколько точек останова дают очень быструю индикацию выполняемого кода и возникающих ошибок. Меня приводят в восторг все новые наборы разработки ARM с интегрированным аппаратным отладчиком. Добавьте поддержку arm-gdb и OpenOCD, и вы на вершине! Настройка этих инструментов может оказаться немного затруднительной, но полностью стоит того, чтобы попытаться создать достойное встроенное приложение.
Язык программирования
Язык программирования Ардуино довольно прост в освоении, так как основной целевой аудиторией его применения являются любители. Однако считается одним из самых лучших языков для программирования микроконтроллеров.
Arduino IDE является бесплатной программой, скачать которую может любой желающий. На нашем сайте вы можете скачать любую подходящую для вас версию среды. Также доступ к скачиванию IDE предоставлен на официальном сайте компании, а при желании, разработчиков можно отблагодарить, сделав денежный перевод.
Среда IDE поддерживается такими операционными системами, как Windows, MacOs и Linux. На официальном сайте компании указанно, что данный язык программирования написан на Wiring, но на самом деле его не существует и для написания используется C++ с небольшими изменениями.
Как подключить контроллер Nintendo Switch Pro к ПК через Bluetooth
Если вы предпочитаете беспроводную дорогу, это сложнее настроить. Однако после завершения беспроводных игр на ПК у вас под рукой.
Чтобы начать, вы должны сказать своему компьютеру, чтобы начать поиск устройств Bluetooth. Если вы используете Windows 10, вы можете сделать это, нажав Начните кнопку, набрав «Bluetooth», затем нажмите на Добавить Bluetooth или другое устройство в появившемся окне. Затем нажмите на блютуз,
Как только ваш компьютер ищет новые устройства, вам нужно указать контроллеру, что нужно искать компьютер. Для этого найдите кнопку, расположенную рядом с портом USB в верхней части контроллера. Вы ищете два круга с каждой стороны гнезда; нажмите на больший круг. Вам может понадобиться ручка или другой тонкий предмет, чтобы нажать кнопку вниз.
Через некоторое время вы должны увидеть Pro Controller появиться в списке Bluetooth. Нажмите на него, чтобы связать контроллер с ПК.
Использование контроллера Nintendo Switch Pro с играми Steam
Соединить контроллер с вашим компьютером сложно; заставить его хорошо играть с вашими играми — это нечто другое. К счастью, если вы захотите поиграть в игры Steam, вы обнаружите, что Steam уже поддерживает ваш контроллер Nintendo Switch Pro.
Чтобы активировать поддержку Nintendo Switch Pro, откройте Steam. В верхнем левом углу нажмите на Пар, затем настройки,
Когда появится меню настроек, нажмите контроллер, затем Общие настройки контроллера,
В появившемся окне установите флажок рядом с Поддержка конфигурации Switch Pro, Если вам нравится, вы также можете нажать Использовать макет кнопки Nintendo чтобы сделать вещи менее запутанными.
Использование контроллера Nintendo Switch Pro с другими играми
Если вы хотите использовать его в играх, которых нет в Steam, все становится еще сложнее. Вам понадобится программное обеспечение, такое как XInput, чтобы правильно сопоставить входы вашего контроллера с действиями в игре. Этот поток Reddit предлагает несколько полезных драйверов для работы Pro Controller, поэтому обязательно проверьте его, если вы не хотите устанавливать его вручную.
Другие языки программирования, подходящие для Ардуино
Какие ещё языки программирования используются в Ардуино? Есть среды разработки, в которых можно задействовать JavaScript (для него среда — Espruino WEB IDE), либо Basic (среда — B4R). А в XOD программы пишутся с помощью специальных блоков.
Ardublock
По сути, Ardublock – детский язык, представляющий собой адаптированный Scratch. Всё, что тут есть – подстроено под вашу платформу (блоки разных цветов, названия на русском языке, конструктор, упрощённые блоки). Данной адаптацией может пользоваться кто угодно, не имея вообще никаких представлений о программировании. В Logo, например, вы задаёте движение для виртуальной черепашки по виртуальной плоскости. Так и здесь можно показать ребенку, каким образом интерпретируются те либо иные действия в программе.
Для стандартной среды Arduino IDE потребуется установка плагина. Выбирайте версии примерно конца 2013 года, потому что более поздние – гораздо сложнее. Как устанавливать? Скачать файл, переименовать его на «ardublock-all» и положить в папку «Мои документы/Arduino/tools/ArduBlockTool/tool». Если изначально такой нет, значит нужно создать.
Snap!
Тут уже есть возможности использования функций, списков, имеются дополнительные блоки, которые отсутствуют в Ardublock. В общем, по своему функционалу уже более «взрослый» язык программирования для использования в Ардуино, хотя по сути – это всё тот же конструктор.
Чтобы его задействовать, придется дополнить свою операционку необходимыми компонентами (скачать на snap4arduino.org). Как устанавливать и пользоваться – смотрите на этом же сайте, там же есть и видеопримеры.
Узнай, какие ИТ-профессии входят в ТОП-30 с доходом от 200 000 ₽/мес
Команда GeekBrains совместно с международными специалистами по развитию карьеры
подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в
IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее
будущее!
Скачивайте и используйте уже сегодня:
Александр Сагун
Эксперт GeekBrains
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ ресурсов об IT-сфере
Только лучшие телеграм-каналы, каналы Youtube, подкасты, форумы и многое другое для того, чтобы узнавать новое про IT
ТОП 50+ сервисов и приложений от Geekbrains
Безопасные и надежные программы для работы в наши дни
Скачать подборку бесплатно
pdf 3,7mb
doc 1,7mb
Уже скачали 20921
Snap! подходит для младшей возрастной группы, либо тех, кто обучался программированию, но успел многое подзабыть. Либо если вам хочется вовлечь ребенка в ITсферу посредством знакомства с Scratch и Snap!.
Python
Ардуино работает на любом языке программирования, формально – даже на Piet можно скомпилировать любые операции в машинный код. Однако всё-таки Python лучше сбалансирован с точки зрения сложности и возможностей, недаром он считается одним из самых популярных языков. И, разумеется, он применяется в Arduino.
Что для этого нужно? Собственно, vPython и библиотеки PySerial (может они у вас уже есть, и вы применяли их для взаимодействия с портами компьютера).
Go и другие языки
Посредством библиотеки PySerial Аурдино может общаться не только с Python, но вообще с чем угодно, в частности, с Go, Java, HTML и проч. Платформа Arduino пользуется большой популярностью, и необходимость выбирать язык вряд ли остановит тех, кто хочет ею пользоваться. И уж если у вас в руках оказалась эта небольшая плата, придумайте с ней действительно нечто интересное. А инструментария для этого — предостаточно.