Найти в Дзене

mBot2 #36. Датчики от Arduino и т.д. Соединяем, используем концевик (датчик касания).

Вновь возник вопрос от одного из пользователей, еще раз обращаемся к теме "как использовать с mBot2 датчики сторонних производителей". Сегодня рассмотрим пример с датчиком касания, которого нет в базовом наборе mBot2, но который часто нужен для реализации каких-то заданий или проектов. Конечно, можно поискать фирменный датчик mBot2, но он явно будет не дешевым, да и в домашних условиях под рукой часто оказываются самые простые концевики от распространенных Arduino проектов. Они бывают очень разные, для нас удачнее оказались варианты с продольным расположением контактной группы и с отверстиями для крепления. Типа таких: У нас под рукой был похожий модуль от qifei. Вот такой сегодня и приделаем к mBot2. 1. Добавляем к конструктиву держатель датчика и датчик. Тут что у кого есть. Есть детали от набора с серво - отлично, есть просто металлический конструктор - тоже хорошо, можно также приспособить детали от лего, или какие то уголки пластиковые из хозяйственных магазинов. Нам нужно на
Оглавление

Вновь возник вопрос от одного из пользователей, еще раз обращаемся к теме "как использовать с mBot2 датчики сторонних производителей". Сегодня рассмотрим пример с датчиком касания, которого нет в базовом наборе mBot2, но который часто нужен для реализации каких-то заданий или проектов.

Конечно, можно поискать фирменный датчик mBot2, но он явно будет не дешевым, да и в домашних условиях под рукой часто оказываются самые простые концевики от распространенных Arduino проектов.

Они бывают очень разные, для нас удачнее оказались варианты с продольным расположением контактной группы и с отверстиями для крепления. Типа таких:

-2
-3

У нас под рукой был похожий модуль от qifei. Вот такой сегодня и приделаем к mBot2.

1. Добавляем к конструктиву держатель датчика и датчик.

Тут что у кого есть. Есть детали от набора с серво - отлично, есть просто металлический конструктор - тоже хорошо, можно также приспособить детали от лего, или какие то уголки пластиковые из хозяйственных магазинов. Нам нужно на что то установить датчик. В нашем случае - уголок от какого то набора дополнений MakeBlock

-4

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

-5

Провода присоединяем к разъему S1

-6

Почти все готово. Можно уже использовать, но рекомендую добавить упор с другой стороны, на уровне нажатого датчика касания. Опять же, вариантов исполнения может быть много. Мы использовали деталь из расширения:

-7

Обратите внимание - крепление опять выполнено клипсами. Только теперь черными, они покороче и удобнее при креплении тонких деталей между собой.

Зачем все это городить? Чтобы робот сохранял направление "прямо" при касании, иначе возможен завал в сторону. В целом, для выравнивания робота в тех же лабиринтах можно вообще использовать два датчика касания, но разъем занимать жалко, обычно в таких задачах на S2 вешается дальномер Sharp, например.

2. Выясняем, что показывает датчик.

Чаще всего, поставив датчик, стоит выяснить, что он показывает в разных состояниях, какие данные передает на порт S1.

Можно и так предположить, что у датчика касания явно показания будут 1 или 0, а потом выяснять какое нужно подставить "методом научного тыка". Но есть способ проще.

Присваиваем значения с порта переменной и смотрим, что она показывает. Для этого удобен режим ОНЛАЙН. Если решите использовать режим загрузки, придется выводить результат на экран. Тоже возможно, попробуйте.

Но в ОНЛАЙН режиме проще. Собрали простую программу, просто по ней щелкнули для запуска и смотрим на переменную. Жмем на концевик датчика - смотрим, что поменяется. Переменную создаем сами, мы назвали ее touch.

-8

В нашем варианте выяснено, что в ненажатом состоянии показывается 1, а при нажатии 0. Можно программировать касание.

3. Создаем программу.

Соберем простую программу. Задача: при нажатии на кнопку А робот едет до касания преграды. Потом чуть отъезжает и поворачивается на 90 градусов. Такой вариант можно использовать в тех же лабиринтах, особенно когда у вас один дальномер. Тогда касанием определяем препятствие, поворачиваемся и далее можно ехать вдоль стены с использованием дальномера.

Заодно в программе можно потренироваться в выводе информации на экран, а также в использовании комментариев. Напомню, что отличные блоки -комментарии создал А.Чернов, преподаватель из Москвы. Это расширение называется Comment.

-9

Программа может быть такая:

-10

Поворот на 90 можно подкорректировать, отсмотрев, как поворачивает робот. Например, у нас точнее поворот при значении 91.

Все, пожалуй. Программа не сложная. По сути можно значительно упростить, убрав часть элементов. Например, так:

-11

Попробуйте, посмотрите за роботом. Попробуйте различные варианты движения. Экспериментируйте!

Ранее в цикле: