Обзор «Робоняши». Часть 2: сборка

Робоняша

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

Прежде, чем перейти к основной части, нужно разобраться с самим контроллером и Troyka-модулями. Все это — собственная разработка парней из «Амперки», что вселяет оптимизм — пока что не на всем написано Made in China. Комплектующие, конечно, здесь самые разные, но вот платы и модули, насколько мне известно, делают у нас. О чем у разработчиков есть целое видео.

Плата IskraJS имеет форм-фактор Arduino и совместима с ним по размерам, отверстиям и количеству пинов. Основные цепи — 3,3В, подключение привычных 5В выполняется специальным джампером. Построена она на базе микроконтроллера STM32F405RG (ARM Cortex M4 168МГц), имеет 1МБ флеш-памяти, 192 КБ SRAM-памяти, 2 интерфейса SPI, 3 I²C и 4 UART, что весьма приятно. Подробно назначение и возможности пинов прекрасно представлены на схеме ниже.

В комплекте также идет Motor Shield с возможностью подключения литий-ионного аккумулятора и Troyka Shield для подключения Troyka-модулей. Как я уже писал в предыдущем материале, Troyka-модули — это типизированные по размеру и наборам контактов модули, для подключения которых не нужно использовать (хотя и можно) монтажные платы. Это очень удобное для прототипирования изобретение, позволяющее получить компактные цельные устройства без множества кабелей. Правда, при использовании специальных шилдов — «Робоняша» все равно оказывается опутан кабелями с головы до пят… простите, колес.

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

Робоняша

Небольшая доработка: площадка для крепления парктроника

Основное испытание — сборка колес и регулировка датчиков линии. В комплекте имеются 4 датчика: 2 цифровых и 2 аналоговых. Принцип работы у них одинаковый — ИК-диод «стреляет» вперед пучком света, а фотоэлемент пытается его уловить. В итоге цифровой датчик просто сообщает, есть сигнал или нет, а вот аналоговый умеет выдавать еще и уровень, т.е. «количество» принятого света. Например, если требуется измерить скорость колес робота, подойдет цифровой датчик: он может сообщать контроллеру, когда «видит» отверстие в колесе. Посчитав отверстия и зная их количество на один оборот колеса, а также длину его окружности, можно высчитать скорость. А вот когда потребуется измерять уровень отраженного света более плавно, на помощь придут аналоговые датчики. В экспериментах «Амперки» они применяются для отслеживания линии, по которой двигается робот, и наличия «почвы под ногами», т.е. края стола. Мы ведь не хотим, чтобы «Робоняша» упал.

Колеса крепятся к основной тележке через двигатели и при помощи «#cтруктора» — специального конструктора из ПВХ-пластика, детали которого достаточно прочно соединяются, образуя надежные и удобные для прототипирования конструкции. Моторы управляются с помощью специального Motor Shield, и запитываются от основной платы или комплектного шилда с литий-ионным аккумулятором. Так что уже к середине руководства имеется некий прототип, умеющий без внешнего питания наматывать круги по комнате. Здесь важно правильно определить детали для сборки. Дело в том, что элементы «#структора» очень похожи между собой. В руководстве некоторые изображения имеют масштаб 1:1, так что выбрать деталь можно просто приложив ее к изображению. Но часто масштаб уменьшается, так что приходится считать зубчики и отверстия. Главное — не перепутать, чтобы позднее не пришлось разбирать половину робота. Будем надеяться, в новом тираже «Амперка» исправят эту досадную оплошность.

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

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

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

Робоняша двигатели мотор шилд

Двигатели подключаются к Motor Shield кабелями потолще через специальные клеммники

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

Я решил начать с малого и выбрал пару простейших Troyka-модулей с предпоследней страницы, которые тут же заказал в ближайшем магазине (а можно и на сайте «Амперки»). Первое доп. оборудование — обычная кнопка, которая позволит стартовать программу прямо с няши без необходимости «стрелять» в него пультом. Второй модуль — пищалка для создания парктроника. В моей версии робот сможет не только узнавать о препятствии впереди, но и подавать сигнал бедствия если, например, застрянет или внезапно обнаружит преграду на пути. Здесь пригодятся оставшиеся при сборке детали «#структора». С помощью нескольких элементов можно собрать небольшую накидку сзади для крепежа модуля.

Робоняша

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

Сборка «Робоняши» занимает несколько невероятно увлекательных вечеров. Многоопытным электронщикам такого робота, конечно, будет мало. Troyka-модули Амперки отлично подходят для новичков, а вот экспертам, наверняка, куда интереснее повозится с новыми датчиками на макетке. Но учитывая возрастной рейтинг «12+», указанный на коробке, конструктор рассчитан скорее на юных инженеров. Подробное руководство в красочной форме прекрасно описывает основы программирования на JavaScript и дает технический минимум знаний по электронике. Комплектных датчиков и плат вполне достаточно и для дальнейших экспериментов, а новые всегда можно дозаказать. В конце концов, если не так, то как увлекать детей электроникой в современном динамичном мире? Мире, отчаянно нуждающемся в юных гиках.

Приобрести набор можно уже сейчас в магазинах или на сайте компании «Амперка».


Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Евгений Беляев@MorgenS (171 lvl)
Гик и геймер. Фанат ПК и чуточку консольщик. Редактор и автор.
Автор статьи в Twitter
Подписывайтесь на Age of Geeks в Twitter, Telegram, FB, ВК или Дзен, следите за актуальным там, где вам удобно! Также вы можете присылать нам свои статьи. Если вам понравился материал, поддержите проект.
Комментарии

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: