Микроконтроллер Arduino был создан в 2005 году для быстрого обучения студентов работе с электронными проектами. Сейчас он стал очень популярен, однако, на мой взгляд, Arduino имеет заметно более высокий порог вхождения по сравнению с BBC micro:bit.
Прежде всего, для программирования Arduino используется не самый простой в изучении язык С++. Вам также придется установить на свой компьютер Arduino IDE, либо использовать онлайн редактор Arduino Web Editor.
Изучение языков С и С++ очень полезно в плане профессиональной работы с микроконтроллерами, однако на первом этапе при использовании micro:bit можно получить представление о робототехнике и без знаний этих языков программирования.
Далее, на плате Arduino нет таких устройств, как на micro:bit. Предполагается, что для подключения различной периферии (датчиков, например) вы будете приобретать платы расширения (Arduino Shield или шилды). Эти платы и устройства можно подключить к плате Arduino через разъем GPIO.
В продаже имеется очень много плат расширения Arduino Shield самого разного назначения, однако все их нужно покупать дополнительно.
Что касается энергопотребления, то сам по себе микрокомпьютер Arduino довольно экономичен. Плата Arduino Uno требует питание 9 В, потребляя при этом порядка 50 мА. Есть и более экономный вариант – Arduino Pro Mini. Он может использовать для питания напряжение 3,3 В (как micro:bit), и при этом потребляет всего несколько десятков мкA. Тем не менее, следует учитывать энергопотребление дополнительных модулей (как и в случае micro:bit), а оно может быть довольно значительным.
Конечно, платформу Arduino можно использовать для создания своей модели марсохода и других проектов, однако мы начнем с платформы BBC micro:bit, как более легкой в освоении.
В то время как Arduino представляет собой платформу для обучения и любительских разработок, в профессиональной области большое распространение получили микроконтроллеры STM32 производства STMicroelectronics https://www.st.com/.
Платформа STM32 Nucleo F401RE, совместимая с модулями расширения Arduino, представляет намного больше возможностей по сравнению с платформой Arduino и micro:bit.
C точки зрения применения в робототехнике у микроконтроллеров на базе STM32 намного больше возможностей, чем у Arduino или micro:bit.
Однако все имеет свою цену. И если роботы на базе micro:bit можно разрабатывать с применением очень простых средств блочного визуального программирования, то при использовании Arduino и STM32 не обойтись без знаний языков программирования С или С++. Кроме того, архитектура процессоров STM32 достаточно сложна, а в полном руководстве по моделям STM32 насчитывается более 1700 страниц!
Тем не менее, вам не придется читать это руководство на первом этапе знакомства. Имеются средства программирования для STM32, скрывающие сложность внутри готовых библиотек и программных модулей.
Для решения серьезных задач, таких как обработка данных, полученных от измерительной аппаратуры нашей модели марсохода, передачи видео «на землю», распознавание изображений, передачи данных, полученных от контроллеров умного дома через интернет и т.п. микрокомпьютеры BBC micro:bit и Arduino, к сожалению, не подойдут. В то же время относительно недорого можно приобрести миниатюрный одноплатный компьютер Raspberry Pi, способный составить конкуренцию в некоторых случаях даже настольным компьютерам.
Например, модель Raspberry Pi 4 содержит 64-разрядный 4-ядерный процессор ARMv8-A с тактовой частотой 1,5 Ггц. У него есть встроенный графический процессор GPU Broadcom VideoCore VI, беспроводные интерфейсы Bluetooth и WiFi, разъем RJ-45 Ethernet с пропускной способностью 1 Гбит, интерфейс видеокамеры, два интерфейса Micro HDMI, интерфейсы USB и другое оборудование.
К микрокомпьютеру Raspberry Pi через шину GPIO можно подключить самые разнообразные устройства, такие как измерители параметров, двигатели и пр.
Надо понимать, что для Raspberry Pi 4 нужен довольно мощный источник электропитания. Штатный блок питания, например, обеспечивает 3 А при напряжении 5 В, а это уже 15 Вт. Если устанавливать этот микрокомпьютер на макет марсохода, то для его питания (а также для питания дополнительных устройств) в течение длительного времени потребуются довольно тяжелые и емкие аккумуляторы. Будет нужно прочное шасси и мощные электродвигатели, которые сами по себе будут потреблять много электроэнергии.
Вы можете сделать на базе Raspberry Pi 4, например, сервер обработки данных, полученных от макета марсохода или контроллеров умного дома, Web-сервер для трансляции этих данных в интернете и для решения других подобных задачи. Вы можете создавать программы для Raspberry Pi с использованием практически любых языков программирования, доступных для обычных серверов, настольных компьютеров и ноутбуков.
На момент создания книги на рынке появилось очень много одноплатных микрокомпьютеров различного типа и назначения.
Это многочисленные «клоны» Arduino и Raspberry Pi, которые отличаются ценой, габаритами и потребляемой мощностью. Есть даже готовая мощная система NVIDIA Jetson Nano в миниатюрном исполнении, способная решать серьезные задачи искусственного интеллекта, компьютерного зрения и робототехники.
В продаже можно найти микрокомпьютеры с очень небольшим энергопотреблением, что будет полезно для создания нашего макета или для устройств интернета вещей IoT (Internet of Things).
Микроконтроллер micro:bit можно купить либо просто в виде платы, либо в составе набора. В минимальном варианте набор состоит из платы контроллера, корпуса для двух батареек ААА с соединительным проводом и USB-кабеля, с помощью которого можно подключить micro:bit к ноутбуку или настольному компьютеру.
В продаже также есть различные наборы модулей и аксессуаров, расширяющих возможности микроконтроллера micro:bit, и даже готовые наборы для сборки различных роботов. На первом этапе вам достаточно будет приобрести только плату micro:bit или самый простой набор.
При первом включении на micro:bit запускается демонстрационная программа. Мы заменим ее нашей программой. Чтобы наша программа заработала на micro:bit, ее нужно создать с помощью того или иного инструмента, а затем загрузить в память микроконтроллера.
Программы можно загружать в micro:bit с помощью ноутбука или стационарного компьютера, а также с помощью смартфона или планшета на базе Android или iOS. Удобнее всего работать с ноутбуком или компьютером, поэтому мы сначала рассмотрим именно такой вариант.
Итак, подключите микроконтроллер micro:bit к USB-порту ноутбука или компьютера с помощью переходника USB – микро USB (рис. 1.1). Если такой кабель не водит в набор, то вы можете приобрести его отдельно.
Рис. 1.1. Первое включение micro:bit
После подключения на экране micro:bit появится бегущая строка HELLO. Это означает, что micro:bit работает нормально, и в нем запустилась программа, установленная по умолчанию. Нашей задачей на данном этапе будет замена этой программы собственной, созданной с помощью программы Microsoft MakeCode for micro:bit.
Если micro:bit подключен к компьютеру через порт USB, то ему не требуется никакого дополнительного питания. Для автономной работы после загрузки в память контроллера нужной программы отключите кабель USB и подключите блок батарейного питания в специально предназначенный для этого разъем (рис. 1.1).
Если вам проще работать с micro:bit, не загружая на свой компьютер никакие программы, читайте ниже в этой главе раздел «Программирование в браузере».
Чтобы загрузить автономную версию программы Microsoft MakeCode for micro:bit, откройте сайт https://makecode.microbit.org/offline-app. В нижней части страницы отметьте флажок I agree to these Microsoft Software License Terms and to the Microsoft Privacy Statement. После этого вы увидите ссылки на скачивание (рис. 1.2).
Рис. 1.2. Загрузка автономной версии программы Microsoft MakeCode for micro:bit
Если вы работаете с компьютером на базе Windows, скачайте программу makecode-microbit-setup-win64.exe. Если же на ваш компьютер установлена Mac OS, вам потребуется программа makecode-microbit-mac64.zip.
Программа makecode-microbit-setup-win64.exe не требует никакой установки и начинает работать сразу после запуска (рис. 1.3).
Рис. 1.3. Главное окно программы Microsoft MakeCode for micro:bit
Щелкните в главном окне кнопку Новый проект или New Project (если все надписи показаны на английском языке). Вы увидите окно нового проекта, где мы и будем программировать наш микроконтроллер (рис. 1.4).
Рис. 1.4. Создание нового проекта
При необходимости укажите, на каком языке будут показываться все надписи в программе. Для этого щелкните изображение шестеренки в правом верхнем углу окна программы, и выберите строку Язык или Language. Затем щелкните название нужного вам языка.
Давайте посмотрим внимательно на главное окно только что созданного нами проекта.
Слева вверху находится изображение платы контроллера micro:bit, под которым расположены кнопки отладки нашей программы. С помощью этих кнопок вы можете создавать и отлаживать программы, даже не подключая контроллер micro:bit к компьютеру.
В средней части окна находятся палитры блоков, из которых можно составить программу. На рис. 1.5 мы раскрыли палитру Основное.
Рис. 1.5. Палитра компонентов Основное
Перетащите мышью блок показать светодиоды вправо, в блок постоянно. Далее проделайте эту операцию еще раз, расположив второй такой же блок под первым (рис. 1.6).
Рис. 1.6. Добавлены два блока показа светодиодов
Щелкая мышью изображения светодиодов, создайте в верхнем блоке квадрат большого размера, а в нижем – маленького, как это показано на рис. 1.6.
Теперь щелкните кнопку Скачать. После этого подготовленная нами программа загрузится в память микроконтроллера и сразу запустится на выполнение. Вы увидите, что на экране micro:bit будет попеременно отображаться то большой, то маленький квадрат (рис. 1.7).
Рис. 1.7. Наша программа работает на микроконтроллере
Справа от кнопки Скачать есть поле, в котором вы можете ввести название программы. А еще правее находится кнопка с изображением дискеты, предназначенная для сохранения программы в виде файла с расширением имени hex.
В микроконтроллере micro:bit версии 2 используется новый формат файла hex с названием Universal Hex. Файлы с этим форматом могут работать и на micro:bit версии 1.5. Обратное неверно – файлы hex старого формата можно использовать на micro:bit версии 2 только если загрузить их в редактор, а потом сохранить. При такой операции выполняется изменение формата.
Всегда сохраняйте программы, над которыми работаете, иначе есть риск потерять время, например, при случайном отключении питания компьютера или при каких-либо ошибочных действиях.
При подключении micro:bit через USB-порт в компьютере появляется дисковое устройство. Но это не настоящий диск. Если скопировать hex-файл на такой «диск», то программа загрузится в micro:bit и автоматически запустится на выполнение. После запуска она будет удалена с диска, созданного при подключении контроллера.
Итак, мы создали и запустили на выполнение нашу первую программу, которая в цикле показывает два изображения на экране микроконтроллера. Правда, это было несложно?
Теперь вы можете отсоединить micro:bit от порта USB и подключить батарейное питание. Загруженная нами программа продолжит свою работу – она остается в памяти микроконтроллера даже при отключении электропитания.
Напомним, что все программы из нашей книги можно загрузить на сайте автора по адресу http://frolov-lib.ru/books/boxrover/ в виде zip-архива. Программа, над которой вы только что работали, называется Квадрат, и ее можно найти в каталоге BoxRover/ch01/microbit-Квадрат.hex архива.
Если нет возможности или желания скачивать и устанавливать на компьютер Microsoft MakeCode for micro:bit, то вы можете программировать micro:bit с помощью браузера, открыв MakeCode Editor на сайте https://makecode.microbit.org/, а также с помощью смартфона или планшета. В этом разделе мы расскажем об использовании браузера.
Откройте сайт, и вы увидите страницу, очень похожую на главное окно программы Microsoft MakeCode for micro:bit (рис. 1.8).
Рис. 1.8. Сайт makecode.microbit.org
Повторите действия, которые мы проделали с этой программой, чтобы создать такую же программу.
Затем щелкните кнопку Скачать, и после завершения загрузки скопируйте полученный hex-файл на устройство, переместив его значок из папки загрузки на значок устройства micro:bit (рис. 1.9).
Рис. 1.9. Скачивание двоичного кода программы с сайта makecode.microbit.org
Программа Microsoft MakeCode for micro:bit удобнее тем, что не требует скачивания и копирования hex-файла программы. Она сразу загружает файл в устройство, после чего программа начинает работать. В результате вы будете быстрее создавать и отлаживать программы.
Если у вас нет ноутбука или настольного компьютера, то для программирования micro:bit можно использовать смартфон или планшет. При этом программы вы будете загружать в micro:bit при помощи беспроводного интерфейса Bluetooth.
Заметим, что с планшетом работать удобнее, т.к. у него больше размер экрана.
Прежде всего, вам нужно установить на свой планшет или смартфон приложение micro:bit. Если у вас устройство на базе Android, ищите это приложение в Google Play, а если вы пользуетесь iPhone или iPad, то вам нужен App Store.
Прежде чем вы сможете загружать программы со смартфона или планшета на micro:bit, необходимо включить на вашем мобильном устройстве Bluetooth.После включения аккумулятор будет расходоваться заметно быстрее, так что не забудьте выключить Bluetooth после завершения работы с micro:bit.
Итак, вы установили на смартфон приложение и разрешили работу Bluetooth. Теперь нужно установить соединение между смартфоном и micro:bit. К сожалению, эта процедура не такая простая, как хотелось бы. Она состоит из нескольких шагов.
Прежде всего, отключите micro:bit от USB-интерфейса компьютера, если он был подключен, и переведите micro:bit на питание от батареи. Иначе соединение установить не получится.
Далее запустите приложение micro:bit и дотроньтесь до кнопки Connect (рис. 1.10).
Рис. 1.10. Главное окно приложения micro:bit
В следующем окне приложения используйте кнопку Pair a new micro:bit. На рис. 1.11 показан случай, когда вы ранее не подключали к смартфону микрокомпьютер micro:bit.
Рис. 1.11. Подключаем micro:bit в первый раз
Теперь возьмите микрокомпьютер micro:bit в руки и нажмите одновременно кнопки A и B. Затем нажмите кнопку сброса и удерживайте некоторое время (пока на экране не высветится изображение значка Bluetooth). Далее отпустите кнопки.
В окне приложения на смартфоне вы увидите краткую инструкцию с описанием только что описанных действий (рис. 1.12).
Рис. 1.12. Инструкция по подключению к micro:bit
Как только на экране устройства micro:bit высветился значок Bluetooth, нажмите в окне приложения micro:bit на смартфоне кнопку NEXT.
При этом на экране micro:bit появится фигурка из горящих светодиодов (образец). Вам нужно нарисовать пальцем точно такую же фигурку в окне смартфона Enter the pattern, а затем нажать кнопку PAIR (рис. 1.13).
Рис. 1.13. Образец для подключения
Для завершения процесса подключения нажмите кнопку сброса на микрокомпьютере micro:bit. Теперь связь между смартфоном (планшетом) и micro:bit установлена (рис. 1.14), и можно переходить к программированию.
Рис. 1.14. Установлена связь между micro:bit и смартфоном
Учтите, что для обладателей смартфонов и планшетов с Android необходима связь с интернетом, т.к. приложение micro:bit загружает для программирования сайт https://microbit.org/code/. Здесь вам придется нажать кнопку Let’s Code, после чего вы попадете на сайт https://makecode.microbit.org/, о работе с которым мы уже рассказывали.
На рис. 1.15 мы показали пример программы, созданной на этом сайте в смартфоне.
Рис. 1.15. Программа для micro:bit создана при помощи смартфона
Создав программу, загрузите ее на смартфон с помощью кнопки, расположенной слева внизу.
Далее вернитесь на главное окно приложения micro:bit и нажмите кнопку Flash. Выберите программу для загрузки и нажмите расположенную под ее названием кнопку FLASH (рис. 1.16).
Рис. 1.16. Кнопка загрузки программы в micro:bit
Через некоторое время начнется загрузка программы в micro:bit (рис. 1.17). К сожалению, соединение Bluetooth довольно медленное, поэтому и загрузка будет продолжаться заметно дольше, чем через USB.
Рис. 1.17. Процесс загрузки программы в micro:bit
После ее завершения в окне приложения появится соответствующее сообщение (рис. 1.18).
Рис. 1.18. Загрузка программы завершена
Приложение micro:bit для iPhone или iPad работает аналогично. С его помощью вы сможете программировать свой микроконтроллер и без подключения к интернету.
Мы сохранили описанную выше программу в файле Качели. Вы сможете найти ее в zip-архиве программ на сайте http://frolov-lib.ru/books/boxrover/, в каталоге BoxRover/ch01/microbit microbit-Качели.hex.
В первой главе нашей книги мы подключили микроконтроллер micro:bit к компьютеру и загрузили в него самую первую программу при помощи программы Microsoft MakeCode for micro:bit.
Мы также научились создавать программы и загружать их в память micro:bit в браузере через сайт https://makecode.microbit.org/, а также через приложение micro:bit, установленное в смартфоне или планшете.
Начало положено, и теперь можно двигаться дальше!
Многие статьи и книги по программированию микроконтроллеров предлагают вам для начала написать программу, которая умеет мигать светодиодом, подключенным к микроконтроллеру через резистор. Справедливости ради нужно отметить, что на плате микроконтроллера Arduino уже есть один светодиод, которым можно мигать.
Что же касается платы micro:bit, то там есть экран из 25 светодиодов! И этими светодиодами можно не только мигать. В этой главе мы научим вас рисовать на экране различные значки, цифры и текст в режиме бегущей строки.
Прежде чем мы приступим к созданию программ для управления светодиодами, расскажем кратко о том, что же такое светодиод. Из названия можно догадаться, что это диод, способный излучать свет.
Полупроводниковые диоды – это электронные компоненты, которые проводят ток только в одном направлении.
У диода два вывода, один из которых называется анодом, а другой – катодом. Чтобы через диод пошел ток, к аноду необходимо подключить положительный вывод батарейки, а к катоду – отрицательный. В обратную сторону ток не пойдет (на самом деле пойдет, но очень и очень маленький, он называется током утечки диода).
Светодиод излучает свет, когда через него проходит электрический ток в прямом направлении, т.е. от анода к катоду.
Никогда не подключайте диоды и светодиоды к батарейке напрямую – через диод может пойти слишком большой ток и он в итоге выйдет из строя. Обязательно используйте токоограничительный резистор.
В продаже вы можете встретить светодиоды, допускающие прямое подключение к батарейке напряжением до 5 В без токоограничительного резистора, однако это нужно уточнить у продавца.
На рис. 2.1 мы показали, как можно подключить светодиод к батарейке с напряжением 1,5 В.
Рис. 2.1. Подключение светодиода к батарейке
При использовании батарейки с напряжением 1,5-3 В обычный светодиод нужно подключать через резистор номиналом 1 К. Этот резистор ограничивает ток, проходящий через светодиод.
Собирая такую схему самостоятельно, убедитесь, что свет излучается только при правильной полярности, т.е. когда ток через светодиод идет в прямом направлении, т.е. от анода к катоду.
Возможно, это будет для вас сюрпризом, но носители электрического тока, а именно электроны, перемещаются в обратном направлении, от минуса к плюсу – они несут отрицательный электрический заряд. До открытия электрона Томсоном в 1897 году природа электрического тока еще не была до конца изучена, поэтому было принято условное направление движения тока – от плюса к минусу. Так оно осталось и до сих пор.