Китайский робот и ScratchDuino 2.0

Материал из robbo
Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Захаров Леонид Сергеевич


Китайский робот и ScratchDuino 2.0

Поскольку я являюсь не педагогом, а инженером, у меня возникла мысль, что направленность технических интересов у людей, в том числе и подросткового возраста, может быть совершенно разная. Первый опыт — написание руководств пользователя для ScratchDuino. Лаборатория и ScratchDuino.Робоплатформа ([[1]]) оказался удачным — они размещены на портале проекта ScratchDuino и входят в комплект робота и лаборатории. Однако кому-то интересно непосредственно программирование, а кому-то — конструирование. Всё это основывается, конечно, на собственном личном опыте. У меня - это опыт авиамоделиста. По моему мнению, конструирование роботов может быть интересно как учителям в школе, так и педагогам дополнительного образования.

В проекте свободной робототехники ScratchDuino есть примерный план работы кружка: 1) начинается программа с изучения языка ScratchDuino 2.0., 2) представления о датчиках ученики получают при изучении ScratchDuino.Лаборатории, 3) ScratchDuino.Робоплатформа позволяет устраивать соревнования, 4) завершается первый год обучения на кружке робототехники получением навыков 3D моделирования в ScetchUp (FreeCad) и опытом 3D печати. На второй год работы кружка можно предложить ученикам на выбор: программирование готовых роботов и/или конструирование своего робота. Важно, чтобы свой робот был бюджетным, возможно превосходил по некоторым позициям прототип ScratchDuino.Робоплатформу и в качестве преемственности программировался в ScratchDuino 2.0.

После освоения ScratchDuino.Робоплатформы, сборки 3D принтера МС5 D.R.O.V.A (Этот проект описан в учебно-методическом пособии, которое готовится к изданию. Есть публикации на эту тему на Галактике Ю.Винницкого), получения некоторых навыков 3D моделирования в Scetchup и FreeCad, в качестве примера такого направления обучения, появилась мысль приспособить купленный по случаю на Aliexpress КИТ для сборки китайского робота, стоимостью 1,5 т.р. для работы под управлением программы ScratchDuino 2.0. с оригинальной прошивкой ScratchDuino.Робоплатформы.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Сразу стало понятно, что из комплекта понадобятся: 1. Моторы с редукторами и колесами. 2. Плата-клон Arduino, которая называется UNO. 3. Плата-шилд (хотя можно было обойтись и без нее, но раз уж есть...). 4. Драйвер для моторов. Прикрутив к имеющейся платформе моторы, установив колеса, включая поворотное и осмотрев получившееся безобразие, сразу желание использовать платформу пропало. Поэтому решено было нарисовать робота целиком в ScetchUp, затем, вычленяя детали методом удаления лишнего, распечатать их на 3D принтере.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Платформы вырезаны из оргстекла толщиной 4 мм. Резка выполнена на самодельном станке с числовым программным управлением (ЧПУ). О том, как был собран этот станок на мебельных направляющих и с прикрученным вместо рабочего инструмента гравёром-дремелем, можно написать отдельный пост. В кабинете инженера за шкафом нашёлся лист оргстекла подходящей толщины. Можно воспользоваться строительной фанерой и ручным лобзиком.

С чего начать? Важно нарисовать в ScetchUp сразу всего объект целиком. Этот метод был уже ранее опробован при конструировании своего варианта 3D принтера и показал хорошие результаты. Главным преимуществом моделирования в 3D редакторе готовой модели является то, что впоследствии, при сборке, все детали прекрасно подходят друг к другу. Секрет успеха при совпадении деталей, напечатанных на 3D принтере, - оставлять допуски 0,2-0,3 мм.

Датчики для робота было решено использовать следующие: 1. Датчик линии на базе TCRT5000L.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

2. Датчик касания на базе микропереключателя, но обязательно с колесиком на нажимном рычаге.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

3. Датчик дальности — использовать китайский Gp2y0a21yk0f.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

4. Датчик освещенности собрать на фоторезисторе gl5516 (потому что он имеется в наличии в местном магазине радиодеталей). Поставив на него красный светофильтр, будем останавливать механизм на красный свет светофора.

Электроника У ScratchDuino.Робоплатформы, согласно схеме, взятой с сайта производителя, драйвер двигателей L293 управляется с помощью логической микросхемы 74HC00D.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Таким образом, нам потребуется спаять дополнительную плату. В столе инженера всегда можно найти что-то полезное. Например, завалявшуюся в углу плату К155ЛА3. Конечно, это не совсем аналог, но те же 4 логических элемента И-НЕ. Воспользовавшись схемой ScratchDuino.Робоплатформы, нарисуем печатную плату, причем так, чтобы не заниматься травлением, а просто прорезать поле с помощью фрезы, установленной в дремель. Размеры платы получились 21х43,5мм.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Сенсоры Поскольку в ScratchDuino 2.0. значения датчиков должны красиво светиться нулевыми значениями, необходимо в соответствии с вышеприведенной схемой установить между линией сигнала и GND резистор 100кОм. Поэтому решено было сделать еще один маленький шилд, к которому будут подключаться датчики, напаяв на нем эти резисторы, заодно разместив его в удобном для оперативного подключения месте. Использовал для этого одноштырьковые контакты от Arduino. Размер платы получился 19,6х21,5мм. Хотелось бы заметить, что, вероятно, удобнее использовать какие-то разъемы, которые не позволят разночтений при подключении датчиков, но использовал то, что было под рукой.

Соответственно, если бы не стояла задача работать с роботом из-под ScratchDuino 2.0., то изготовление этих плат было бы излишним. Сенсоры решено было сделать универсальные, совмещающие в себе датчик линии и датчик касания, просто поставив концевой переключатель в разрыв линии сигнала. Таким образом, при использовании нижеприведенной схемы подключения, датчик линии работает в диапазоне значений приблизительно 20-80, а концевой выключатель дает при срабатывании значение «0», но будем на всякий случай писать при программировании «<1». Для этих датчиков тоже для удобства изготовим платы 20х20мм, подключив их по схеме. Впаяв датчик, резисторы и провода просто напаял внакладку.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения
Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Методом вращения переменного резистора подобрал сопротивление для датчика освещенности, подключив его по схеме. Для него просто впаял резисторы в провода, прикрыв все термоусадкой.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения
Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Далее, нарисовав робота в ScetchUp, вычленил отдельные детали, распечатал, нарезал, сходил в магазин за необходимыми винтиками и собрал робота. Для сборки потребовались саморезы с потайной головкой диаметром 2,5мм, длиной 6, 10 и 13мм, а также винты 3мм длиной 35мм - 2шт, 40мм — 2шт, с гайками, винты для моторов штатные, для удобства крепления датчиков использованы барашковые винты 4х20мм с гайками.

При пробном запуске выявились некоторые проблемы. О некоторых можно было подумать и раньше. 1. Скорость робота несколько выше, чем у ScratchDuino.Робоплатформы (колеса нужно было изготовить самому, у колес из набора диаметр больше). 2. Если включить робота с уже подключенным датчиком дальности, ScratchDuino 2.0. распознает устройство как ScratchDuino.Лабораторию со всеми вытекающими последствиями. Если датчик подключить после, все вроде бы работает, но надо тестировать дополнительно. 3. Поскольку на рабочем компьютере установлен Linux, то эта проблема выявилась только после попытки подключения робота к компьютеру с Windows. Не хочет ScratchDuino 2.0. замечать робота с китайским клоном вместо Arduino. Причем Windows видит устройство как HC340, определяется СОМ-порт, а вот ScratchDuino 2.0. робота не видит. А в Linux все хорошо, никаких проблем.

По мере устранения проблем, напишу продолжение...