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

среда, 14 ноября 2018 г.

Первые итоги кружка

Прошло два месяца заседаний кружка Робототехника и можно подвести первые итоги. В связи с определенными обстоятельствами материальной базы - конструкторов в нашем распоряжения нет, поэтому мы занимаемся робототехникой с помощью виртуальной лаборатории TINKERCAD (https://www.tinkercad.com/#/), которая позволяет разработать систему управления роботом состоящую, как из виртуальных объектов управления, так и программного кода который можно загрузить в реальный контроллер (Arduino Uno) реальной системы управления
Виртуальный робот светофор, для которого был разработан алгоритм управления реализованный на языке С (ИС Дракон-С) и затем внедренный в виртуальную лабораторию
Следующие задание выполненное членами кружка (клуба)  это создание виртуальной системы управления простейшим роботом - автомобилем, который должен останавливаться при наезде на препятствие. Задача ребят было создать систему управления двигателем состоящую из двух элементов питания, выключателя и контактной кнопки инвертора (кнопка + электромагнитное реле работающие на размыкание контакта), а также аналогичную схему управления но с добавлением в виртуальную схему контроллера. 

Работы членов клуба Робототехника

Рабочий стол одного из членов клуба

Выполненная работа 13.11.18
автор Клосинский Александр 5-г класс

Выполненная работа 13.11.18
автор Утенков Александр 5-г класс

Наиболее активные члены клуба Клосинский Александр, Трещалин Григорий, Алексеев Евгений, Лисичкина Ульяна, Трибулович Тимофей, Китов Тимофей, Потолов Владимир

вторник, 13 ноября 2018 г.

суббота, 10 ноября 2018 г.

ПРАКТИЧЕСКАЯ РАБОТА №1

Практическая работа направлена на составления алгоритма с использованием элемента "ВСТАВКА" и с последующим созданием скрипта в программе Scretch2.0




четверг, 8 ноября 2018 г.

Конструируем машинку робота

Робот должен подъезжать к препятствию и останавливаться, при обнаружении препятствия должен мигать светодиод. Так как мы будем конструировать виртуального робота на базе лаборатории  Tinkercad то нам необходимы сведения о компонентах нашего робота - датчиках и актюаторов. Датчиками нашего робота может быть датчик касания (кнопка) или ультрозвуковой дальномер. Актюаторами будет электропривод и светодиод.
Электропривод довольно мощный актютор, поэтому его как правило подсоединяют через специальную плату управления электроприводами

Плата управления электроприводом
  

Эта плата управляется микросхемой L293D, которая показана ниже. Несомненным плюсом данной микросхемы является раздельное питание логической части микросхемы, напряжение питания которой лежит в приделах 4.5-5 вольт (VSS), и силовой части питания двигателей (VS). 
Используя данную микросхему мы можем управлять двигателями с довольно широким диапазоном питающего напряжения от 4.5 до 36 вольт, но при этом, L293D может выдать всего лишь 600mА продолжительного тока нагрузки на каждый канал. Пиковый (максимальный) ток может кратковременно подскочить до 1.2A.
Так же из положительных сторон данной микросхемы следует отметить её непривередливость к напряжению входных сигналов подаваемых на выводы INPUT.
Логический "0" распознается микросхемой когда входное напряжение <1.5Вольт.
Логическая "1" появляется при входном напряжении лежащем в пределах от 2.3 до 7Вольт. 
Диапазон рабочих температур от -40°C до +150°C
Скорость переключения до 5 kHz
Итак, разберем по полочкам левый борт. Вывод ENABLE1 это главная фигура в управлении левым каналом, без лога единицы на его выводе (или ШИМ, об этом чуть позже) ничего работать не будет, вне зависимости от того что творится на выводах INPUT1 и INPUT2.
Выводы INPUT1 и INPUT2 задают направление вращения мотора. Их можно сравнить с рулем машины, тем более, что в данном случае сравнение подходит идеально, ведь мы не можем повернуть руль сразу в две стороны, а необходимо выбирать одну из двух. Из вышесказанного следует, что для поворота нам надо подать логическую единицу на вывод INPUT1, а на INPUT2 подать логический ноль. Для смены направления поменять местами INPUT1 "0", INPUT2 "1".
При подаче одинаковых логов мотор вращаться не будет, следовательно вращение можно остановить либо подачей логического нуля на вывод ENABLE1, при любой конфигурации IN1 и IN2, либо одинаковыми логами на IN1 и IN2, не изменяя конфигурации вывода EN1 (данный вариант мы и рассмотрим ниже).
Контакты GND соединяются с отрицательным полюсом источника питания (земля).
Оставшиеся выводы OUTPUT1 и OUTPUT2 служат непосредственно для подключения мотора.
Правый канал работает абсолютно идентично.
Теперь о самом электроприводе.  Простейший двигатель, являющийся машиной постоянного тока, состоит из постоянного магнита на индукторе (статоре), одного электромагнита с явно выраженными полюсами на якоре (двухзубцового якоря с явно выраженными полюсами и с одной обмоткой), щёточноколлекторного узла с двумя пластинами (ламелями) и двумя щётками.
 На динамической иллюстрации показан простейший электромотор. В однородном магнитном поле вертикально располагаем проволочную рамку и пропускаем по ней ток. Что происходит? Рамка проворачивается и по инерции двигается какое-то время до достижения горизонтального положения. Это нейтральное положение – мёртвая точка — место, где воздействие поля на проводник с током равно нулю. Чтобы движение продолжилось, нужно добавить ещё хотя бы одну рамку и обеспечить переключение направление тока в рамке в нужный момент. На обучающем видео  хорошо виден этот процесс.



Электродвигатель постоянного тока (ДПТ) — электрическая машина постоянного тока, преобразующая электрическую энергию постоянного тока в механическую энергию.

По материалам
https://masterok.livejournal.com/1225507.html
http://zelectro.cc/L293D



воскресенье, 28 октября 2018 г.

ДРАКОН, СКРЕтЧ, С и виртуальная лаборотория

Виртуальная лаборатория Tinercad предоставляет возможность в режиме реального времени создавать виртуальную систему управления на микроконтроллера Arduino Uno, а так же позволяет создать текст программы для загрузки в реальный контроллер. Язык программирования скретч. Также возможно тестирование программы управления написанной на языке СИ в сторонних приложениях.
Рассмотрим сильные и слабые стороны способов создания пограммы управления.
Штатный способ - это разработка программы управления штатной системой разработки на языке скретч. Созданная программа автоматически получает: настройки задействованных портов контроллера, подключения сторонних библиотек для некоторого подключенного оборудования. Минус данного подхода заключается в сложности создания алгоритма управления максимально адаптированного для конкретных условий применения изделия, а также некоторыми ограничениями языка СКРЕТЧ.
Для разработки алгоритма управления очень хорошо подходит язык ДРАКОН, благодаря которому алгоритм управления становиться максимально понятным и который может легко показать пути оптимизации управления. Так же ДРАКОН позволяет разработанный алгоритм преобразовывать в текст программы управления, путём подключения к нему языка программирования.
Таким образом у нас есть возможность создавать свою программу управления и тестировать её на созданном в виртуальной лаборатории устройстве в режиме реального времени. Одним из недостатком этого метода видится необходимость обладание знаниями языка программирование С, а также структуры скрипта - программы загружаемый в контроллер.
 Есть ли возможность обойти некоторые выше указанные проблемы? Да они есть. Один из способов это создание электронной справочной системы команд управления портами контроллера(файл со схемами ГНОМ содержащий команды на языке СИ, как для заголовочной части скрипта, так и тела скрипта). Также возможно создать заголовочную часть скрипта в автоматическом режиме используя возможности виртуальной лаборатории, а так как для созданной схемы подключения устройств заголовочная часть неизменна, то ее можно скопировать и использовать в дракон-схемы в иконке МОДУЛЬ.

суббота, 20 октября 2018 г.

ДРАКОН, СКРЕТЧ и язык С

Для обучения основам управления рассмотрим робота регулирующего пешеходный переход через автомагистраль, оснащенного кроме раздельными светофорами, шлагбаумом для пешеходов ультрозвуковым дальномером для контроля пешеходного перехода.
Создав робота в виртуальной лаборатории мы получили возможность проверки алгоритма управления в режиме реального времени, а также возможность написать скрипт не только на языке С, но и с помощью языка скретч, что значительно упрощает написание полноценной программы управления.
Для достижения заданной цели мы сначала разработаем алгоритм управления, затем реализуем по возможности на языке скретч и только потом рассмотрим, как такую программу написать на языке программирования С. 
 Алгоритм для управления роботом светофором на Arduino Uno создадим используя ИС ДРАКОН в режиме создания алгоритма.
общая схема алгоритма
Используя полученный ранее алгоритм запишем его на вкладке КОД(режим блоки) с помощью встроенного редактора СКРЕТЧ. Проверив его робото-способность вспомним структуру скрипта.
из схемы видно, что написанный нами алгоритм управления помещается в тело скрипта, таким образом если мы будем вносить только программные изменения в робота то верхняя часть скрипта остается неизменной. Запомним. Протестировав виртуального робота получаем рабочую программу на скретч, которую можно сохранить в текстовом формате на языке С(файл *.ino). Собственно на  этом можно и остановиться, но в ходе тестирования выясняется, что скретч функционально ограничен и иногда нужную нам опцию в управлении роботом можно написать только на языке С в текстовом режиме. Для реализации этого начинания (срочное прерывание режима "переход" вне зависимости от показаний ультрозвукового датчика) перейдем в ИС ДРАКОН и внесем соответствующие изменения в дракон-схему. Осталось переписать программу в ручном режиме на С. Для этого:

  1. Добавим схему ГНОМ и выберем иконку МОДУЛЬ. 
  2. Перейдем в виртуальную лабораторию откроем вкладку код в режиме блок+текст. В крайне правом окне мы увидим нашу программу на языке С в текстовом режиме. Скопируем в буфер обмена текст от начала до void loop(). 
  3. Переходим в ИС ДРАКОН и устанавливаем режим "программирование". 
  4. Переходим к иконке модуль. Щелкаем мышкой в третий квадрат (считаем слева на право под иконкой) и вставляем из буфера обмена скопированну часть скрипта. 
  5. Далее с новой строчке вносим служебные строчки ИС ДРАКОН
      //Shema
      //
   6. В саму иконку модуль необходимо поместить:
      \swetoforka_C.ino
     затем ниже поместить копию ссылки из колонтитула         дракон-схемы.
   7. Начинаем работу с дракон-схемой. Третий квадрат  в колонтитуле дракон-схемы заполняется следующим образом:
      void loop()
      {
       //Shema
       //
      }
остальные третьи квадратики заполняются командами на языке С(список команд  файле "команды для ардуино.drt" папка ДРАКОН_С).
   8. Далее нажимаем клавишу F9 и если все правильно заполнено то получаем текстовик программы, который для проверки можно скопировать в виртуальную лабораторию(вкладка КОД режим текст) заменив им предыдущий текст скрипта.

Таким образом при разработки скрипта для  робота мы смогли объединить три программы, которые позволили нам написать скрипт на низкоуровневом языке программирования совершенно не зная его основ.  

среда, 17 октября 2018 г.

Графический язык для алгоритма на СКРИПТ

Вы читаете о роботах и программировании и думаете: «Было бы здорово сделать что-то подобное самому!» Теми, кем эта идея овладевает чуть больше просто мыслей смотрят кто и как делал своего робота. Читают статьи, смотрят видео. На картинках все понятно. В видеороликах тоже обычно показываются уже готовые продукты, а также сжато показываются технологии их изготовления. И вроде бы то же всё понятно: отпилил, прикрутил, припаял, соединил, запрограммировал вон на той программе вот этим кодом. 
Для решения поставленных задач человечество создает искусственные языки. Основное их отличие от естественны языков на которых строится общение между людьми, это строго ограниченный запас слов(семантика) и очень строгие правила синтаксиса.  В графических искусственных языках это форма графического элемента, его расположение, способы связи одного элемента с другим. Какое либо своеволие в изображении элементов графического языка НЕДОПУСТИМО.
Для создания программ(скетчей), часто используются графические языки программирования, такие например как ДРАКОН, Sketchware,  Язык последовательных функциональных схем SFC (Sequential Function Chart),  App Inventor и так далее. 
Для нужд школьников был разработан простой графический язык(СКРИПТ) в виде вертикального графа задача которого организовать работу школьника в семействе программ Sketch 

иконки языка СКРИПТ


структура языка СКРИПТ

алгоритм записанный на языке СКРИПТ