"Вы читаете о роботах и программировании и думаете: «Было бы здорово сделать что-то подобное самому!» Теми, кем эта идея овладевает чуть больше просто мыслей смотрят кто и как делал своего робота. Читают статьи, смотрят видео. На картинках все понятно. В видеороликах тоже обычно показываются уже готовые продукты, а также сжато показываются технологии их изготовления. И вроде бы то же всё понятно: отпилил, прикрутил, припаял, соединил, запрограммировал вон на той программе вот этим кодом."

воскресенье, 31 декабря 2017 г.

Зона Ардуино: Отладка программы управления робота и модернизация формул управления

На прошлом занятии мы добились работы всех рассмотренных узлов нашего робота, но правильного исполнения заложенного алгоритма не добились. Возможно ошибка в формулах управления. Попробуем упростить их. Итак на рисунке показана таблица возможных состояний.
Зеленым выделены наборы значений при которых черный ящик выдаст управляющие сигналы на моторы для движения вперед. Из шести наборов только два управляют возможным поворотом робота. Более того в четырех наборов присутствует 0 сигнал от препятствия спереди, что противоречит заданным условиям алгоритма, по которому черный ящик управления поворотом получает управляющие сигналы на вход, только в случае обнаружения препятствия спереди (1). Значит для упрощения формул управления мы можем исключить ненужные наборы.
BACM1M2
11100
11010
10111
10011
01101
01000
00111
00011
Таким образом формулы управления примут вид:
M1 = B & A & noC
M2 = noB & A & C
Применительно к нашей программе
M1 = BBBB & AAAA & CCC;
M2 = BBB & AAAA & CCCC;

пятница, 29 декабря 2017 г.

С Новым годом дорогие кружковцы и их родители!

Новогодний рейтинг клуба Робототехника



ФАМИЛИЯбалл
Основной состав
Шерстнев Максим Сергеевич ✮✮✮73
Старшинов Натан Владиславович ✮✮65
Рязанцев Андрей62
Глотов Глеб Андреевич ✮✮58
Свириденко Михаил Антонович ✮46
Науменко Егор Виталевич45
Ростинин Марк Ильич35
Скамейка запасных
Ровенских Дарья32
Антонов Илья Антонович32
Тентлер Никита Ильич20
Яровицын Олег Антонович17
Кравчук Лев Олегович16
Втюрин Ярослав12
Селезнев Андрей8
Веселов Федор7

пятница, 22 декабря 2017 г.

ЗОНА АРДУИНО: Логические формулы сборка скетча

На прошлом занятии мы рассмотрели алгоритм управления робота, с возможностью обходить препятствия при помощи поворота дальномера.
Вспомним основной алгоритм
Он основан на зацикливании блока движения-остановки и блока выбора поворота, при этом блок поворота запускается только тогда когда моторы движения робота на стопе.
Как отмечалось ранее блок движения-остановки был отработан на предыдущих уроках, блок выбора поворота мы начали писать на прошлом, сегодня мы должны закончить и разобраться с логикой управления моторами при выборе стороны поворота. Решающий блок выбора поворота можно представить, как черный ящик на входы которого подаются сигналы о наличии препятствия слева, спереди и справа, а на выходе сигналы о запуске моторов в ту или иную сторону вращения.
С помощью таблицы состояний мы можем составить законы управления выбора поворота. Управление левым мотором (М1) и правым мотором (М2) будет происходить по формуле основанной на законах математической логики, где 1 вращение по часовой, а 0 против часовой стрелки.
Приведем получения из таблицы состояний логическую формулу левого мотора:
 аналогично поступаем с правым мотором. 

   

среда, 20 декабря 2017 г.

Новогодний рейтинг

Вот и подошел незаметно 2018 год. Время подводить итоги, формировать основной состав команды первого года обучения и скамейку запасных. Количественный состав команды 8 человек. Есть команда, значит есть и капитан, которого вы выберете сами из основного состава, прямым тайным онлайн голосованием. Предварительно новогодний рейтинг будет опубликован 26.12.17 после проверки последнего онлайн  теста. Тогда же будет опубликован и окончательный состав команды клуба робототехники и скамейка запасных. Критерии отбора это же конечно рейтинг и почетные награды клуба (звезда робототехника) и ваше голосование за капитана команды.

понедельник, 18 декабря 2017 г.

КЛУБ: Математическая логика в управлении робота

На заседании клуба от 18.12.17 мы рассмотрели с Вами управление роботом на основе математической логики. Как пример рассматривали робота оснащенного 4-мя датчиками определения препятствий, с которыми он не должен был сталкиваться. Логическую схему робота можно представить в виде черного ящика с четырьмя входами и двумя выходами на моторы (логическая 1 вращение мотора в сторону обеспечивающие движение вперед, логический 0 - движение назад)
Логикой черного ящика мы можем управлять с помощью логически формул, которые описывают логические элементы черного ящика, построенные на основе таблицы состояний, правую часть (выходы) которой  мы задаем самостоятельно чем и задается поведение робота при приближении к препятствию. Правая часть это матрица возможных комбинаций входных сигналов о наличии препятствия со стороны датчика. 
Количество комбинаций (N) определяется количеством обрабатываемых датчиков (n) по формуле: 
N=2^n
Логические формулы управления строятся на основе построенной таблицы  состояний по строкам выходов с выходным сигналом 1. Для получения этой 1 необходимо логически перемножить состояния входов, если текущее состояние входа 0, то данный вход записываем с использованием инверсии например "А=0", записываем "не-А" или "-А". Для представленной таблицы для М1 получим следующее (& знак логического умножения, может опускаться между переменными логического выражения)
Для выхода М2 формулы и таблицу состояний записать САМОСТОЯТЕЛЬНО в тетрадь
Результирующая формула получается логическим сложением полученных формул для единичных выходов 


где OR или | - логическое ИЛИ


Таким образом, программа управления будет реализовываться на результирующих логических формулах (которые можно упростить по законам математической логики) и преобразовании полученной дистанции в сигнал о препятствии с использованием пороговых значений(пороговое значение отделяет 0 от 1). 

воскресенье, 17 декабря 2017 г.

Зона Ардуино: Алгоритм робота обходящего препятствия

На последнем уроке мы начали создания алгоритма управления движением робота, который должен по сигналу дальномера останавливался перед препятствием, с помощью поворота дальномера замерить расстояния препятствий и выбрать сторону поворота, после чего продолжить движение прямо.  
Алгоритм в общих чертах представляет замкнутый цикл состоящий из двух блоков - блока движения и логического блока поворота.
Блок движения мы отработали на предыдущих уроках и добились остановки робота перед препятствием, на время пока препятствие не будет устранено.
Логический блок поворота включает алгоритм определения дистанций, блок логики и блок поворота
Блок логики преобразует полученные дистанции в логические сигналы сравнивая с дистанцией остановки (D) и с исправленной (DO) при учете поворота дальномера. Данные дистанции вводится в блок начальных условий скетча. На выходе блока формируются  логические сигналы управления моторами (М1, М2) 
Блок поворота получив управляющие сигналы М1 и М2 запускают двигатели в ту или иную сторону и останавливают их только после того как дистанция будет превышать заданный порок
Работу моторов определяют логические функции со ставленые по логической таблице поведения. Для построения этой таблицы рассмотрим черный ящик(черный ящик это такое устройство о внутренним содержании которого, мы ничего не знаем, но знаем что подается на вход и что снимается с выхода) и зададим в правой части ожидаемые реакции моторов, где 1 вращение по часовой, а 0 вращение против часовой стрелке или вращение моторов в сторону обеспечивающих движение вперед и назад.   
По этой таблице составляются логические формулы управления моторами. Составление логических формул управления рассмотрим на следующем уроке