CrowBot BOLT — это умный программируемый автомобиль, основанный на беспроводном микроконтроллере ESP32 и предназначенный для образовательного рынка с возможностью программирования робота с помощью визуального программирования, Arduino или MicroPython.
Компания Elecrow прислала нам образец комплекта CrowBot BOLT для оценки, поэтому мы рассмотрим оборудование, покажем, как его собрать, продемонстрируем функции встроенной прошивки и продемонстрируем, как программировать робота с помощью визуального программирования Arduino и MicroPython, используя некоторые из предоставленных примеров кода.
Распаковка CrowBot BOLT
На коробке перечислены некоторые из основных моментов с 16 учебными курсами, поддержкой нескольких платформ программирования, масштабируемостью с помощью разъемов Grove и включением джойстика, который также программируется.
CrowBot BOLT поставляется в виде комплекта, поэтому для сборки робота потребуется некоторая работа, но пайка не требуется (подробнее об этом позже).
В руководстве пользователя объясняется, как собрать робота и использовать пульт дистанционного управления для управления им с установленной по умолчанию/заводской прошивкой.
Другая сторона пользователя — это карта отслеживания, которую робот может использовать для отслеживания линии.
Сборка умного программируемого автомобиля CrowBot BOLT
Во-первых, нам нужно подключить держатель батарей (4x AAA) к основной плате на базе беспроводного модуля ESP32-WROVER-B, подключив его к разъему BAT. Обратите внимание, что хотя это и не показано на фотографии ниже, вам также необходимо будет установить аккумулятор.
После этого нам нужно собрать акриловые пластины и закрепить их с помощью прилагаемых прокладок и винтов.
Затем мы можем вставить два колеса в оси двигателей…
… прежде чем вставлять ультразвуковой датчик в его 4-контактный разъем.
Вот и все. Таким образом, передняя часть робота оснащена ультразвуковым датчиком, двумя светодиодами, ИК-приемником и двумя датчиками следования по линии (под платой).
В задней части автомобиля есть кнопка питания, несколько светодиодов и порт USB Type-C для программирования.
Мы обнаружили третье колесо внизу вместе с DIP-переключателем для включения/отключения WiFi и/или Bluetooth, а также два разъема Grove для добавления I2C или аналоговых модулей.
Джойстик также поставляется в комплекте с материнской платой на базе беспроводного модуля ESP32-C3-WROOM-02, некоторыми кнопками, OLED-дисплеем, а также передней и задней панелями. Значок «оборудование с открытым исходным кодом» можно увидеть как на печатной плате устройства, так и на печатной плате джойстика, поскольку схемы печатной платы Eagle и PDF, а также макет печатной платы доступны для загрузки со страницы магазина, на которую мы дадим ссылку в конце этого обзора.
Сборка довольно проста, но, к сожалению, мы получили дисплей в сломанном состоянии.
Джойстик питается от двух батареек тип ААА. Таким образом, вам потребуется подготовить шесть батареек тип ААА, четыре для робота, две для джойстика, а также одну плоскую круглую батарейку CR2025 для инфракрасного пульта дистанционного управления.
После завершения сборки у нас остается программируемый автомобиль CrowBot BOLT, джойстик CrowBot, пульт дистанционного управления, два кабеля Grove, отвертка и кабель USB-A-USB-C для программирования.
Демонстрация умного программируемого автомобиля с заводской прошивкой
Программируемый автомобиль готов к использованию после завершения сборки, вам вообще не нужно его программировать, чтобы попробовать его с различными демонстрациями, включенными в прошивку, а именно: предотвращение препятствий, отслеживание линии, воспроизведение музыки, следование за светом, а также демонстрация 3-в-1, сочетающая в себе музыку, следование по линии и избегание препятствий. Вам просто нужно нажать несколько клавиш на ИК-пульте дистанционного управления, как описано в прилагаемом руководстве пользователя. Вы можете проверить все пять демонстраций в видео ниже.
Также можно управлять CrowBot BOLT вручную с помощью клавиш со стрелками, включать зуммер или включать и выключать свет. Обратите внимание, что демонстрация отслеживания линии работала только в помещении. Если бы мы попробовали устройство на нашем крыльце (например, для демонстрации уклонения от препятствий), оно бы просто пошло назад, и то же самое под солнцем. Фотодиоды должны работать только при определенных условиях освещения.
Затем мы попытались использовать джойстик, так как прошивка по умолчанию может подключаться через Bluetooth, но это не сработало даже после того, как мы включили Bluetooth с помощью DIP-переключателя, но это из-за конденсатора, и компания советует своим клиентам припаять другой конденсатор. чтобы заставить его работать… Это кажется безумием, они не удосужились переработать свою плату и решили предоставить это покупателям, но что есть, то есть… Может быть, это часть образовательного опыта 🙂
Программирование CrowBot BOLT
Компания предоставляет дополнительную информацию на Wiki, чтобы помочь людям начать программирование. Кроме того, вы можете найти весь код, включая заводскую прошивку, а также уроки визуального программирования Letscode, Arduino или MicroPython в zip-файле .
Letscode визуальное программирование
Мы уже использовали программу Letscode при обзоре ноутбуков CrowPi L и CrowPi 2 на базе Raspberry Pi 4 SBC, но их у нас больше нет. Поэтому нам пришлось скачать его, чтобы установить на наш компьютер. К сожалению, программа доступна только для Windows и macOS или Raspberry Pi, а у нас ноутбук с Ubuntu 20.04. Мы были удивлены, что это работает на Linux для Arm (Raspberry Pi), а не на Linux x86-64, но компания подтвердила это по электронной почте.
Поэтому мы использовали мини-ПК с Windows 11 для установки Letscode.
Затем мы загрузили образец проекта Activate Bolt.sb3 из кода урока и щелкнули «Установить драйвер» в верхнем меню, чтобы установить «USB-драйвер Arduino». Мы также подключили программируемый автомобиль Crowbot BOLT к мини-ПК с помощью USB-кабеля и включили его, и появился порт COM3.
Наконец, мы щелкнули значок «Загрузить код», чтобы загрузить прошивку на робота, и после завершения нажали кнопку «Сброс», чтобы увидеть текст «Hello World» в последовательном терминале.
Пример показывает, что мы можем запрограммировать робота, но это не весело, так как мы не используем его электродвигатели. Всего 16 уроков:
Давайте перейдем к уроку 3: Dreamy Dance Move, так как в нем есть несколько блоков для управления моторами.
Мы могли бы загрузить программу в робота, как и раньше, но цикл будет запущен только в том случае, если контакт 18 установлен на ноль. В коде нет ни комментариев, ни документации в ZIP-файле с кодом, и нам пришлось открыть схему, чтобы узнать, что контакт 18 подключен к пользовательской кнопке, и как только мы нажимаем ее, робот плавно «танцует» на столе с тихим звуком зуммера. Сначала мы не были впечатлены тем, что нам пришлось открыть схемы, чтобы узнать, но потом мы заметили, что Elecrow написал «руководство для начинающих» для Letscode на Crowbot BOLT.
Как подключать пользовательскую кнопку к GPIO 18 говорится в уроке 2. Так что в целом все не плохо. Вероятно, было бы неплохо включить PDF вместе с кодом, как они сделали для Arduino IDE.
Программирование Arduino
Те же 16 уроков для Arduino плюс руководство пользователя и библиотеки.
Вернемся к нашему ноутбуку с Ubuntu 20.04, чтобы установить последнюю версию IDE Arduino 2.0.2. Документация говорит нам перейти в Файл -> Настройки, чтобы добавить следующие файлы JSON в поле URL-адреса менеджера дополнительных плат:
1 2 |
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json |
для установки поддержки плат ESP32, но она уже была установлена в нашей системе, хотя у нас нет файлов JSON, указанных выше. Установлена версия 2.0.0 без возможности обновить его, поэтому мы удалили его, добавили две строки выше и установили последнюю версию 2.0.5, в которой есть поддержка модуля ESP32-WROOM-DA, так или иначе нужного для робота.
Давайте сначала попробуем скетч «Activate Bolt» после выбора модуля ESP32-WROOM-DA и /dev/ttyUSB0 в IDE:
После того, как мы нажмем сброс, чтобы перезапустить плату, откроем последовательный монитор в Arduino IDE и нажмем пользовательскую кнопку, мы получим вывод Hello World или, скорее, «Hello, master», как и ожидалось.
Давайте теперь откроем образец, который управляет двигателями умного программируемого автомобиля, а именно 8.Obstacle_Avoidance_Robot.ino:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
int distance = 0, Ultrasonic_Pin = 27, Button_pin = 18; void setup() { for (int i = 12; i <= 15; i++) { ledcSetup(i, 255, 8); ledcAttachPin(i, i); } while (digitalRead(Button_pin) == 1); } void Get_Distance() { pinMode(Ultrasonic_Pin, OUTPUT); digitalWrite(Ultrasonic_Pin, HIGH); delayMicroseconds(20); digitalWrite(Ultrasonic_Pin, LOW); pinMode(Ultrasonic_Pin, INPUT); int Time_Echo_us = pulseIn(Ultrasonic_Pin, HIGH); distance = Time_Echo_us / 58; } void Motor(int L1, int L2 , int R1, int R2) { ledcWrite(12, L1); ledcWrite(13, L2); ledcWrite(14, R1); ledcWrite(15, R2); } void loop() { Get_Distance(); if (distance < 20) { Motor(255, 0,0, 255); } else { Motor(0,255, 0, 255); } } |
Мы ожидали, что придется импортировать какие-то библиотеки и более сложный код, но пример обхода препятствий невероятно прост… Хотелось бы еще, чтобы в коде были какие-то комментарии.
Так что нам пришлось выключить робота, отсоединить USB-кабель, положить Crowbot BOLT на пол, включить его и нажать пользовательскую кнопку, чтобы начать. Поведение программируемого автомобиля было точно такое же поведение, как и в заводской прошивке, продемонстрированной в предыдущем видео.
Программирование Crowbot BOLT с помощью MicroPython
У нас есть те же 16 уроков в каталоге Python, а также прошивка MicroPython и руководство по программированию.
Для программирования используют Thonny IDE, и мы тоже. У нас были проблемы с Thonny 3.3.3, установленном на нашем компьютере, так как он не мог найти последовательный порт, поэтому мы обновили его до версии 4.0.1 с помощью:
1 |
pip install --upgrade thonny |
Мы могли выбрать «MicroPython (ESP32)» и последовательное устройство (/dev/ttyUSB0) после перехода в Инструменты->Параметры:
Но установить прошивку MicroPython на робота нам пока не удалось, так как не был установлен esptool. Его можно добавить, перейдя в Инструменты-> Управление плагинами и выполнив поиск esptool.
Как только это будет сделано, мы можем вернуться к предыдущему окну и выбрать «Установить или обновить MicroPython».
Появится новое всплывающее окно, в котором мы можем выбрать порт и файл прошивки «esp32-20220618-v1.19.1.bin», предоставленный Elecrow, прежде чем нажать кнопку «Установить» , чтобы завершить процесс. У нас все еще были некоторые проблемы с ошибкой «esptool not found», поэтому мы снова установили esptool из командной строки:
1 2 |
pip3 install esptool |
и на этот раз мы смогли успешно установить прошивку MicroPython.
Итак, мы загрузили образец Activate Bolt:
1 2 3 4 5 6 7 8 9 10 11 |
from machine import Pin import time button=Pin(18,Pin.IN,Pin.PULL_UP) print("Hello, master!") while True: if button.value() == 1: pass else: if button.value() == 1: print("Hello, master!") print("I'm Bolt, I've activated!") |
Вывод последовательной консоли, как и ожидалось, после нажатия кнопки пользователя:
Затем мы загрузили программу отслеживания линий:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
from machine import Pin,PWM,ADC import utime button = Pin(18, Pin.IN) QTI_L=Pin(39,Pin.IN,Pin.PULL_UP) QTI_R=Pin(36,Pin.IN,Pin.PULL_UP) def motor(L12,L13,R14,R15): PWM(Pin(12)).duty(L12) PWM(Pin(13)).duty(L13) PWM(Pin(14)).duty(R14) PWM(Pin(15)).duty(R15) if __name__ == '__main__': while button.value() == 1: pass else: while True: QTI_MAX = QTI_L.value() * 2 + QTI_R.value() if QTI_MAX == 0: motor(800,0,800,0) elif QTI_MAX == 1: motor(0,800,0,400) elif QTI_MAX == 2: motor(0,400,0,800) elif QTI_MAX == 3: motor(0,1000,0,1000) |
Мы ожидали чего-то более сложного. Тем не менее, некоторые комментарии в коде были бы не лишними, так как код может быть не очевиден на 100%… Поскольку программу неудобно тестировать на нашем рабочем столе, мы сохраняем скрипт Micrpython в роботе, нажав «Сохранить как» , и затем кнопку устройства MicroPython .
и сохраняем его как boot.py на устройстве.
Затем мы выключили робота, отсоединили USB-кабель, поместили Crowbot BOLT на карту отслеживания, включили его и нажали пользовательскую кнопку, чтобы начать. Все было так же, как и при заводской прошивке, продемонстрированной в предыдущем видео.
Заключительные слова
Crowbot BOLT от Elecrow — это недорогой программируемый автомобиль для образовательного рынка, который может помочь детям понять различные компоненты, необходимые для этого типа робота, и научиться программированию с помощью IDE визуального программирования, а также Arduino IDE или Python IDE, такой как Thonny. Есть некоторая документация для 16 уроков визуального программирования Letscode, но хотелось бы получить более подробную информацию о том, как это работает, поскольку в учебном пособии не объясняются такие основы, как ШИМ и работа двигателей. Уроки MicroPython и Arduino Python предназначены для использования после изучения визуального программирования, а документация ограничивается установкой и настройкой IDE для работы с роботом, а в коде отсутствуют комментарии, чтобы четко понять, что происходит.
Несмотря на несколько недостатков, мы все еще думаем, что Crowbot BOLT может быть интересным набором для обучения STEM, тем более что он продается всего за 34,90 долларов США плюс доставка или 57,80 долларов США с джойстиком, как в этом наборе, но будьте готовы к тому, что придется модифицировать аппаратное обеспечение для работы Bluetooth, как указано в этом руководстве.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.