Робототехника: быстрый старт. Т.В. Гурьянова,
Д.В. Гурьянов

Мы благодарны:  Петру Ширкову (университет г. Дубна), Сергею Никифорову, Андрею Мурашко,  Ольге Радько (Softech Solutions),  Александру Радько (БГУ), Артёму Канцельсону (СШ 61 г. Минска) и иерею Александру Веремейчику (Свято-Петропавловский собор г. Минска) за пройденный совместный путь в результате которого вышло это учебное пособие.

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

Управление вручную

ардвино

Задание. Нужно собрать схемку, чтобы при нажатии на кнопку, загоралась лампочка-светодиод:

 

knopka modem

Дополнительное задание. a ) Починить модем. (Отломайте какую-нибудь часть, предложите «починить» модем без паяльника).

b) Запустите самую простую модель вертолета (без управления поворотами), используя смартфон или пульт от Arduino .

Автоматическое управление

Замыкать и размыкать цепь, измерять напряжение также можно, не вручную, а автоматически, по заданному алгоритму при помощи запрограммированного микроконтроллера.

Для новичка удобно использовать готовые платы или, как ещё говорят, вычислительные платформы. Они делают процесс взаимодействия с микроконтроллером очень простым. Типичным представителем этого семейства являются платы Arduino.

Вариант спецификации Arduino, с которого неплохо начинать обучение: http://csc.minsk.by/beta/?p=848

Установка и настройка Arduino в ОС Windows. (официальный сайт https://www.arduino.cc/)

Можно также работать с Arduino под Scratch (это принесет больше пользы в изучении Arduino людям, мало знакомым с программированием).

Для этого нужно скачать дистрибутив S4A (так называется программа, работающая с Arduino под Scratch) и скетч S4AFirmware16, который нужно предварительно открыть и откoмпилировать в программе Arduino (с подключенной платой):

arduino_scratch

И скетч, и программу можно скачать отсюда .

Вот видеоуроки по программированию Arduino на Scratch

 

Вот первые мини-проекты с Arduino:

Эксперимент 1. Маячок

Эксперимент 2. Маячок с нарастающей яркостью

Эксперимент 3. Терменвокс

Рекомендуем выполнить все проекты с сайта amperka.ru

Видео по части проектов тут.

Неплохо так же в начале поделать собственные схемки на макетике без использования скетчей.

Полезно также поэкспериментировать, совместно используя Arduino  и электронный конструктор Знаток

После того, как вы проделаете большую часть экспериментов, имеет смысл выполнить первый прикладной проект. Например, сделать макет автополива почвы.

Начать можно с такой конструкции:

IMG_2104

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

Скетч для запуска моторчика при достижении порога сухости  (определяется датчиком влажности) на занятиях информатики:
#define sens A0
int in1 = 2;
int in2 = 3;
int in3 = 4;
int in4 = 5;
const int dl = 1;
int hum;
void setup() {
 hum=0;
 Serial.begin(9600);
 pinMode(in1, OUTPUT);
 pinMode(in2, OUTPUT);
 pinMode(in3, OUTPUT);
 pinMode(in4, OUTPUT);
}

void loop() {
 hum = analogRead(sens);
 Serial.print("Humidity: ");
 Serial.println(hum);
 if(hum>500){
 digitalWrite( in1, LOW );
 digitalWrite( in2, LOW );
 digitalWrite( in3, HIGH );
 digitalWrite( in4, HIGH );
 delay(dl);

 digitalWrite( in1, LOW );
 digitalWrite( in2, LOW );
 digitalWrite( in3, HIGH );
 digitalWrite( in4, LOW );
 delay(dl);

 digitalWrite( in1, LOW );
 digitalWrite( in2, HIGH );
 digitalWrite( in3, HIGH );
 digitalWrite( in4, LOW );
 delay(dl);

 digitalWrite( in1, LOW );
 digitalWrite( in2, HIGH );
 digitalWrite( in3, LOW );
 digitalWrite( in4, LOW );
 delay(dl);

 digitalWrite( in1, HIGH );
 digitalWrite( in2, HIGH );
 digitalWrite( in3, LOW );
 digitalWrite( in4, LOW );
 delay(dl);

 digitalWrite( in1, HIGH );
 digitalWrite( in2, LOW );
 digitalWrite( in3, LOW );
 digitalWrite( in4, LOW );
 delay(dl);

 digitalWrite( in1, HIGH );
 digitalWrite( in2, LOW );
 digitalWrite( in3, LOW );
 digitalWrite( in4, HIGH );
 delay(dl);

 digitalWrite( in1, LOW );
 digitalWrite( in2, LOW );
 digitalWrite( in3, LOW );
 digitalWrite( in4, HIGH );
 delay(dl);
 }
}

Затем можно перейти к прикладным проектам.

С помощью реле 11rel1-228x228

можно управлять электроприборами, питающимися от сети 220В.

Так, например, с помощью водонасоса можно сделать управляемый фонтанчик: на 5 секунд включается подача воды, на 5 отключается:

IMG_2140 IMG_2141

fontan

Пример 1. Автоматизированный полив почвы

С помощью системы проектирования и программы разработки электронных устройст fritzing можно создать проект, а затем воплотить его с помощью конструктора Arduino

 

avtopoliv_with_relay_schema avtopoliv_with_relay

 

После этого можно поставить задачу прошить микроконтроллер на плате Arduino, а затем спаять конструкцию автоматизированного полива на паечной плате, с использованием необходимых радиодеталей (кварцевого резонатора, транзистора,…):

iazyfih1isg aZref3E7P7g

На следующем этапе предложить добавить в эту конструкцию возможность обратной связи: произведен полив — на мобильник пришла смс о факте полива. Таким образом, сделать введение в основы электроники и в изучение радиотехнических систем передачи информации.

Полезно сравнить сделанную систему с самым простым вариантом полива на радиодеталях:

poliv3

 

Можно также предложить написать программу для мобильного телефона под ОС Андроид, которая бы  считывала смс с выбранного телефонного номера, и создавала список, в котором были бы даты  и, например,
количества полученных смс.  Для управления можно обойтись всего двумя кнопками: «меню/настройки» — выбирает номер для смс, и «обновить» — перечитывает заново все смс на телефоне и пересоздает список дат.

4-iCGZexZyI

Ссылка на github с исходниками.
Релизная apk.
Затем рассмотреть возможность написания такой программки для других ОС телефонов.

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

Следующим этапом можно попробовать добавить обратную связь — с телефона сделать возможным контролировать интенсивность полива и частоту, меняя соответствующие настройки.

Пример 2. Роболабораторные. Используя конструктор Arduino, а также детали детских конструкторов, машинок, пробок от пластиковых бутылок, можно выполнять огромное количество заданий и лабораторных, приобретая навыки, как в робототехнике, так и в программировании и алгоритмике. Очень помогают в этом проводимые в регионах соревнования по робототехнике и робофесты.

Приведем пример одной из роболабораторных (см., например, задания из группы в ВК Роболабы), которую можно выполнить, используя детали из предложенной спецификации.

Задача

«Пушка» должна определить источник света на вертикальной поверхности.

Полигон

Полигон представляет собой поверхность размером 1600х1200 мм. Вдоль ее короткого края устанавливается задняя стена, выполненная из черного пенокартона размерами 1000х1200 мм. С двух сторон от этой стены устанавливаются боковые стены размером 800х1000 мм каждая. На задней стене в произвольном месте размещается яркий светодиод «пиранья» белого цвета (5000 мКд). Полигон устанавливается таким образом, чтобы в полусфере, соответствующей задней стене, не было других источников света. См. рис 1.2., 1.3

Рисунок 1.2.

poligon

Рисунок 1.3.

 

poligon2

 

Робот
Конструкция робота произвольная. На роботе должен быть установлен лазерный модуль, луч которого будет указывать на цель. Также на роботе должно быть обозначение перпендикуляра к задней стене и стороны, которую робот в состоянии исследовать. Робот может быть как стационарным, так и мобильным. Робот выполняет задачу автономно.
Испытания
 Перед каждой попыткой член жюри устанавливает робота в произвольном месте на серединном перпендикуляре условной линии, разделяющей «открытую» и «закрытую» (ограниченную боковыми стенами) части полигона, на «открытой» половине, и ориентирует его согласно указанному в пункте «робот» обозначению.
 Попытка начинается по команде члена жюри, после которой участник дотрагивается до робота, чтобы запустить его.
 Попытка прекращается по истечении 3 минут или по сигналу участника команды. Во втором случае сигнал принимается, если на момент его подачи робот прекратил движение.
 Попытка также прекращается, если участник вмешался в работу робота до истечения 3 минут или робот, являясь мобильным, покинул поле. Возможность повтора попытки остается на усмотрение жюри.
 Если по истечении 3 минут робот не прекратил движение, член жюри дает команду участнику остановить робота, после чего участник имеет право дотронуться до робота в целях его остановки, не меняя его положения.
 Применение дистанционного управления недопустимо.
Оценка
После окончания попытки жюри замеряет расстояние от точки лазерного целеуказателя до края источника света или начисляет максимальный балл, если точка указателя находится на источнике.
Каждой команде дается 3 попытки. В зачет принимаются два лучших результата.
Второстепенным критерием является время выполнения задачи.

 Пример 3. «Самодельное» электронное пианино.

В этом примере слово «самодельное» нами взято в кавычки, поскольку самодельным оно будет лишь отчасти, поскольку в качестве датчиков звука в нем будет использоваться функциональная часть от профессионального электронного пианино Kawai-CN3. В качестве исходных отправных теоретических сведений — Service Manual к этому пианино и несколько записанных нами видео:

VzVNtE3Gmzg

( нумерация может отличаться от указанного нами порядка)

8-15 — строки.

ris_piano

Сопротивление от 0 Ом (клавиша не нажата) до 0,3 кОм (максимальная степень нажатия).

Запитать эту конструкцию можно через 1 или 2 провод (зелененькие на видео), затем идет 8 аналоговых входов в АЦП (что бы смотреть, что происходит на строках).

+ 5 Вт — определялось опытным путем при отпущенной клавише (0,8-0,7 — при нажатой).

Далее 5 логических выходов на выбор столбцов (22 варианта).

Задача.  Написать программу, которая бы по нажатию клавиши генерировала бы звук (вывод на колонки, подключенные к компьютеру), предварительно собрав соответсвующую конструкцию и подключив ее к ПК.

Ещё одна актуальное ответвление занятий по робототехнике состоит в том, чтобы научиться пользоваться готовыми, а в идеале, писать свои чат-роботы. Начинать, по нашему мнению, следует с
изучения настройки автоматического чат-робот SiteHeart. Его легко настроить, зарегистрировавшись на сайте, а затем полученный скрипт вставить в html-код вашего сайта. При загрузке сайта появляется диалоговое окно, в котором, в зависимости от ключевых слов, введённых пользователем, будет разворачиваться тот или иной сценарий ответов.

Продолжение следует…

 

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>