«ШКОЛА РОБОТОВ» УРОК №1

«ШКОЛА РОБОТОВ» УРОК №1

Первое, что приходит на ум при слове «робот», — это фантастические фильмы, промышленные манипуляторы и космическое оборудование. На самом деле роботы уже повсюду: они помогают нам в быту, используются в строительных работах и на транспорте, на производствах, в медицине и в армии. И это одно из наиболее перспективных и приоритетных направлений развития современной науки, без которого невозможно будущее. «Завтра будет сегодня!» — под этим девизом мы запускаем совместный проект журнала и ЦТПО «МГТУ «СТАНКИН», посвященный робототехнике, и надеемся, что он найдет своих читателей.

Термин «робот» был введен в обиход в 1920 году чешским писателем Карелом Чапеком в пьесе «Rossumovi univerzalni roboti (R.U.R)». Тем не менее, механические конструкции, послужившие прообразом современных роботов, появились намного ранее, еще много веков назад, поэтому первый урок нашей школы мы начнем с небольшого исторического экскурса.

МЕХАНИЧЕСКИЕ ИГРУШКИ ПРОШЛОГО

В эпоху расцвета Древней Греции Филон Византийский описал механическую женщину-слугу, которая наливала из кувшина вино в стакан. Архит Тарентский изобрел деревянного голубя, который запускался в небо с помощью паровой катапульты. В городе Александрия, на знаменитом Фаросском маяке громадные женские статуи могли указывать направление ветра, движение Солнца и Луны, показывать время и предупреждать моряков об опасности во время шторма или тумана громкими звуками трубы. А создателем первого боевого робота считается Архимед. Его «коготь», размещенный на крепостной стене, захватывал длинным крюком осаждавшие город римские корабли, приподнимал их и переворачивал.

«Коготь» Архимеда был, по сути, первым манипулятором
«Коготь» Архимеда был, по сути, первым манипулятором

Герон Александрийский автоматизировал очень популярный в Древней Греции театр. Его тележка вывозила на сцену механизированные марионетки. Она дистанционно управлялась с помощью хитроумной системы, состоящей из веревок и колышков, благодаря чему тележке можно было задавать любую траекторию движения.

Согласно свидетельствам, еще раньше, две тысячи лет до н.э., в Древнем Египте упоминалось о статуе, которая поднятием руки указывала на наследника фараона во время религиозных церемоний. А в записках великого мудреца Лао-Цзы сохранились описания механического человека при дворе китайского императора.

И даже мрак средневековья не помешал развитию технической мысли. По воспоминаниям современников тех времен, Альберт Великий (13 век н.э.) сконструировал «механическую служанку», способную самостоятельно двигаться и даже говорить. Виллара де Онекура (13 век н.э.) в своих записях рассказывает о механизмах в виде зверей, а также о фигуре ангела, поворачивающейся вслед за движением солнца. К тому же временному этапу относится и сад в поместье графа Роберта II Д’Артуа, где были автоматические обезьяны, птицы и фонтаны, меняющие режимы работы без участия человека.

Восток тоже не отставал. Известно, например, что в Византии возле царского трона стояли два металлических льва. Они издавали рев и били хвостами, а на деревьях сидели механические птицы, каждая из которых исполняла свою песню. В 9 веке н.э. братья Бану Муса создали механического флейтиста, а ученый Али ибн Халаф аль-Маради в своей «Книге тайн» описал около трех десятков подобных конструкций.

Средневековый арабский изобретатель Аль-Джазари спроектировал в 13 веке музыкальный автомат — четырех механических кукол, которые плавали в лодке по озеру, играя на цимбалах и барабанах.

Музыкальный автомат Аль-Джазари (13 век). На старинном чертеже показан принцип его действия: бегущая из бака вода приводит во вращение колесо и связанный с ним продольный вал, который соединен тягами с руками музыкантов
Музыкальный автомат Аль-Джазари (13 век). На старинном чертеже показан принцип его действия: бегущая из бака вода приводит во вращение колесо и связанный с ним продольный вал, который соединен тягами с руками музыкантов

Не «хлебали лаптем щи» и в России. Из писем голландского купца Йохана Вема известно, что при дворе Ивана Грозного был некий «железный мужик», созданный русскими мастерами, который подавал царю чашу с вином, кафтан, подметал пол, кланялся гостям и даже «побивал медведя».

Ну и нельзя, конечно, не вспомнить Леонардо да Винчи. Его механический рыцарь в латах, который умел двигать руками, поворачивать голову и садиться, был показан при дворе Людовика Сфорца, герцога Миланского, в 1495 году. Сохранилось также множество зарисовок, чертежей и описаний самых разнообразных автоматических устройств, созданных или разработанных на уровне проекта гениальным изобретателем.

Рыцарь Леонардо да Винчи, созданный мастером в 1495 году
Рыцарь Леонардо да Винчи, созданный мастером в 1495 году

А использование новых накопителей энергии — пружины и маятника — стало настоящим прорывом в миниатюризации автоматических механизмов. Наиболее прославился на этом поприще мастер Жак де Вокансон (18 век). Самые известные его работы — механическая утка, способная взмахивать крыльями, клевать зерно с руки и даже испражняться, и автоматический музыкант, наигрывающий различные мелодии на флейте и свирели.

Механическая утка Жака де Вокансона была наделена многими функциями живого организма. Сегодня тоже есть куклы, которых надо кормить и даже менять грязные подгузники
Механическая утка Жака де Вокансона была наделена многими функциями живого организма. Сегодня тоже есть куклы, которых надо кормить и даже менять грязные подгузники

Живший в то же время швейцарец Пьер Жаке Дро, основавший знаменитую часовую компанию Jaquet Droz, прославился не только своими хронометрами, но и множеством сложнейших механических устройств, среди которых особо стоит отметить три настоящих шедевра. «Писарь» — автоматическая фигура мальчика, содержащая более 4000 (!) деталей, была способна написать любой текст из 40 знаков, самостоятельно обмакивая перо в чернильницу. Похожий на него «художник» вместо текста наносил на бумагу различные рисунки, портреты людей и изображения животных. А «девушка-музыкант» — автомат в виде органистки — наигрывала на небольшом органе пять мелодий, при этом двигала головой и телом, а в конце выступления изящно кланялась.

Механические куклы Пьера Жаке Дро умели музицировать, писать и рисовать. В конструкции «Писаря»использовалось более 4000 деталей

Механические куклы Пьера Жаке Дро умели музицировать, писать и рисовать. В конструкции «Писаря» (вверху) использовалось более 4000 деталей
Механические куклы Пьера Жаке Дро умели музицировать, писать и рисовать. В конструкции «Писаря» использовалось более 4000 деталей

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

Но уже в начале 20 века применение электричества обеспечило все условия для создания более совершенных конструкций. Электрический ток стал не только источником энергии двигателей, которые приводили их в движение, но и использовался для получения, передачи и обработки информации. Сейчас вряд ли возможно точно сказать, когда появился самый первый робот в современном понимании этого слова. Многие компании и отдельные изобретатели вели работу в области создания подобных машин, и примерно 100 лет назад были разработаны первые механизмы, вполне отвечающие требованиям настоящей робототехники.

РОБОТОТЕХНИКА СЕГОДНЯ

А что же представляет собой современная робототехника? В общих словах, это наука, которая занимается разработкой автоматизированных технических систем, составляющих техническую основу развития производства. Она включает в себя такие дисциплины, как механика, электроника, информатика и кибернетика. Человек, работающий в этой сфере, должен обладать широким объемом знаний и нестандартным мышлением.

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

НЕОБХОДИМЫЙ ЛИКБЕЗ

Ну а теперь, закончив вступительную часть, перейдем к более практическим занятиям. И в качестве первого опыта научимся… мигать светодиодом! Это, конечно, еще не создание искусственного интеллекта, но тоже довольно интересно. Но для начала вам нужно вспомнить или узнать, что такое электричество, сила тока и напряжение, поскольку в основе любого современного робота находится электронная начинка. С этих базовых знаний и начнем. Не бойтесь, мы постараемся объяснить это на простом языке, уйдя от аксиом физики и понимания первооснов материи.

Как известно, ток — это направленное движение заряженных частиц. Хотя нет, давайте проще. Представьте обычный водопровод. Это тот же провод. По нему «бегут электроны» — это вода, которая течет по трубам. И еще пара важных определений из курса физики: сила тока и напряжение. В нашем наглядном примере, сила тока — это объем воды, протекший за секунду, а напряжение — это ее напор (тот самый поток электронов). Ток измеряется в амперах, напряжение в вольтах.

Напор воды в трубах мы можем увеличить с помощью насоса — это источник питания. В электрике у него есть два полюса, положительный и отрицательный, которые принято называть «плюсом» и «минусом». Считается, что ток течет от «плюса» к «минусу».

Следующий важный вопрос — как регулировать ток? Для этого используют различные элементы электрических цепей. Есть, например, резистор и диод. Резистор имеет такую способность, как сопротивление. Предположим, что электрический провод — это труба с нормальным диаметром, а резистор — это труба с меньшим диаметром. Очевидно, что за единицу времени через трубку резистора пройдет ровно столько воды, сколько позволяет ее диаметр. Соответственно, чем он меньше, тем больше сопротивление. В электронике сопротивление резистора измеряется в омах.

Еще есть диод. Проводя дальнейшую аналогию с сантехникой, это клапан, пропускающий ток (поток воды) в одном направлении. От анода к катоду. Это и есть те самые полюсы источника питания: анод — «плюс», катод — «минус».

Оглянитесь и поищите глазами светодиод, вы его наверняка увидите. Подсказка: это такая миниатюрная «лампочка». Они встречаются сейчас практически повсеместно. В пультах телевизоров, в светофорах, в стоп-сигналах автомобилей и сотовых телефонах, в фотокамерах и игрушках. Изобретение этого полупроводникового прибора было очень важным. Светодиод — это тот же диод, то есть клапан, пропускающий ток в одном направлении, но который при прохождении через него тока еще и светится.

Работа светодиода определяется силой тока. Чем больше ток, тем ярче горит светодиод. Но слишком высокий ток вызывает его перегрев, что может привести к выходу из строя. Также существует понятие пробойного напряжения, разрушающего светодиод. Так как этот элемент имеет незначительное сопротивление, то небольшое напряжение создаст большой ток. Чтобы решить эту проблему, к светодиоду подключают резистор, ограничивающий максимальный ток при некотором напряжении. Это обязательно! Если же через светодиод пройдет высокий ток, то он перестанет работать, попросту — перегорит. А с каким сопротивлением взять резистор — нам поможет закон Ома: сила тока в проводнике прямо пропорциональна напряжению и обратно пропорциональна сопротивлению (I = U / R, где I — сила тока, U — напряжение, R — сопротивление). Однако, высчитывать мы ничего, конечно же, не будем, а воспользуемся готовыми значениями. Для используемых нами светодиодов GNL-3012, GNL-3014 или подобных вполне подойдут резисторы с сопротивлением 220 Ом.

Кстати, если несколько электрических компонентов, тот же резистор, диод и светодиод, например, объединить в едином небольшом корпусе, пластиковом или керамическом, то получается микросхема.

ОТ СЛОВ — К ДЕЛУ!

Но вернемся к светодиоду. Чтобы он зажегся, на него необходимо подать ток. Источник питания определим чуть позже, а пока попробуем разобраться, какая ножка у него катод («минус»), а какая анод («плюс»). Если внимательно присмотреться, то можно увидеть чашечку, и от нее идет короткий провод, так вот это и есть катод.

Не забыли, что к светодиоду нужно обязательно подключить резистор? Но паяльник, флюс и припой нам не понадобятся. Все гораздо проще. Будем использовать специальную доску для прототипирования, еще ее называют макетной платой, или бредбордом. Как же она устроена? Слева и справа идут вертикальные ряды «плюсов» и «минусов», то есть под каждым вертикальным рядом гнезд по всей длине уложен провод, и если подать на одну из точек ряда напряжение 5 В, то оно будет на всех точках этого ряда. По центру же расположены горизонтальные ряды. Общий «минусовой» провод обычно называют «землей» схемы.

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

Важнейший компонент любого робота — его «мозг». В нашем случае его роль будет выполнять электронная плата Arduino, в основе которой находится микроконтроллер (на схеме это длинный горизонтальный темный прямоугольник).

Микроконтроллер — это небольшая микросхема, объединяющая процессор, оперативную память и флэш-память. По сути, микроконтроллер это и есть тот самый «мозг», на который поступают сигналы, там они обрабатываются, что приводит к выполнению какого-либо действия. Микроконтроллеры используются почти в любой электронике. Им можно задавать логику поведения, то есть программировать.

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

Опустим пока принципы работы платы Arduino, на данном этапе достаточно понимания, что у нее есть выходы и входы, которые называются пинами. Есть пины, которые могут подавать напряжение на другие пины по команде, или же считывать информацию, если на них подано напряжение. Эти пины пронумерованы от 0 до 13. На них в нужный момент подаются 5 вольт. А еще есть пин, на который всегда подается 5 вольт (5v), и пин «земля» (GND).

Схема нашего устройства на макетной плате
Схема нашего устройства на макетной плате

Переходим к самому интересному — запрограммируем нашу плату. Для этого используется видоизмененный язык C++. Чтобы написать программу (она называется скетчем), нам понадобится среда программирования — это приложение, в котором разрабатывается программное обеспечение. У Arduino она есть, и называется Arduino IDE. В ней мы и создадим программу мигания светодиодом.

Вот она:

void setup(){ pinMode(13, OUTPUT);

}

void loop(){ digitalWrite(13, HIGH); delay(lOOO); digitalWrite(13, LOW); delay(lOOO);

}

Пока просто перепишите ее в Arduino IDE, запущенную на компьютере, и подсоедините к нему плату. Прежде чем загрузить программу, ее нужно проверить. Кликните на галочку в верхнем левом углу среды программирования. Если у вас все правильно, то появится сообщение, что «компиляция завершена». В противном случае стоит проверить верность написания программы. Также перед загрузкой в меню «Инструменты» нужно выбрать нашу плату (Arduino Uno) и порт, к которому вы подключили плату. Далее для загрузки программы следует нажать на стрелочку в левом верхнем углу, и ваша программа окажется на плате. Что-то изменилось? На плате замигал светодиод? Значит, вы молодец!

ПРАКТИКА И ТЕОРИЯ

А теперь давайте разберем нашу программу для Arduino более подробно.

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

Что такое void setup() и void 1оор()? Это процедуры, они выполняют функции, которые вы им укажите. Вот так выглядит процедура в общем виде:

void названиепроцедуры(){

}

Дойдя до процедур, микроконтроллер выполняет команды, указанные в фигурных скобках. Любая программа в Arduino состоит из двух процедур — setup и loop, которые микроконтроллер будет выполнять первым делом. Сначала — процедура setup. Arduino выполнит команды, записанные в setup один раз. Далее будут выполняться команды, написанные в процедуре loop. И это будет происходить бесконечно долго и сверху вниз, так как loop — цикличен.

В чем смысл нашей программы, предназначенной для управления морганием светодиода? Микроконтроллер должен некоторое время подавать напряжение на него, и некоторое время не подавать. То есть, получаем следующий алгоритм: 1 -включить светодиод (подать напряжение на пин); 2 — дать время светодиоду быть включенным; 3 — выключить светодиод (не подавать напряжение на пин); 4 — дать время светодиоду быть выключенным.

Чтобы реализовать такую программу нам понадобится рассмотреть некоторые функции.

Функция pinMode (номер пина, РЕЖИМ РАБОТЫ) — она настраивает режим работы пина. Очевидно, что номер пина — это пин, к которому вы подсоединили свой электронный компонент. А режимов работы всего три: OUTPUT, INPUT и INPUT_PULLUP. В нашем случае мы воспользовались только OUTPUT. Это означает, что пин будет работать на выход (на него будет подаваться 5 В). Функцию pinMode прописывают в setup, чтобы настроить пин один раз.

Одна из версий плат Arduino, в данном случае - это исполнение Uno. Еще есть Mega, Nano и Mini - они отличаются размерами и некоторыми нюансами, но в целом функционально взаимозаменяемы
Одна из версий плат Arduino, в данном случае — это исполнение Uno. Еще есть Mega, Nano и Mini — они отличаются размерами и некоторыми нюансами, но в целом функционально взаимозаменяемы

Функция digitalWrite (номер пина, ВЕЛИЧИНА НАПРЯЖЕНИЯ) — она подает напряжение на пин. В этой функции указываются такие аргументы, как номер пина и величина напряжения. Номер пина, понятно, тот, на который вы хотите подать напряжение (в нашей программе 13-й пин — это пин, идущий к светодиоду на плате). А величин напряжений всего две: HIGH (5В) и LOW (0В). Эту функцию обычно используют в loop.

И последняя функция — delay (время в мс) — она останавливает микроконтроллер. Это функция задержки, выполнив которую программа останавливается на месте на некоторое время, указанное в миллисекундах. Этой функции присваивается один аргумент — время.

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

Антон ЛОМОНОСОВ,

Азизжон УЛЬМАСОВ,

Сергей МОТИН

(ЦТПО «МГТУ «СТАНКИН»)

Рекомендуем почитать

  • ПОГРЕБ НА БАЛКОНЕПОГРЕБ НА БАЛКОНЕ
    «Позвонил мне не так давно главный инженер одного из заводов, выпускающих холодильники, В. В. Ульяновский. Как оказалось, его заинтересовал построенный мною термостат для хранения зимой на...
  • С лодкой на… велосипедеС лодкой на… велосипеде
    Наша промышленность выпускает различные надувные и складные лодки для рыбаков, охотников, туристов-водников. Однако они не во всем удовлетворяют взыскательным вкусам потребителей, поэтому...
Тут можете оценить работу автора: