Обзор «Робоняши». Часть 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 и дает технический минимум знаний по электронике. Комплектных датчиков и плат вполне достаточно и для дальнейших экспериментов, а новые всегда можно дозаказать. В конце концов, если не так, то как увлекать детей электроникой в современном динамичном мире? Мире, отчаянно нуждающемся в юных гиках.

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

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