Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Lego и электроника. Raspberry Pi, Arduino, датчики, двигатели и многое другое для применения и программирования

Покупка
Артикул: 767880.01.99
Доступ онлайн
799 ₽
В корзину
В этой книге вы узнаете, как с помощью электроники и программирования оживить ваши наборы LEGO. Вы сможете собрать роботов с помощью кирпичиков LEGO, использовать готовую модель LEGO или сконструировать проект из совсем иных деталей - главное, чтобы робот был достаточно большим для встраивания описанных электронных компонентов. Роботы приводятся в движение при помощи микрокомпьютеров Arduino и Raspberry Pi. Издание предназначено школьникам старших классов, их родителям, а также всем энтузиастам робототехники.
Каффка, Т. Lego и электроника. Raspberry Pi, Arduino, датчики, двигатели и многое другое для применения и программирования : практическое руководство / Т. Каффка ; пер. с нем. Е. А. Ледниковой. - Москва : ДМК Пресс, 2020. - 300 с. - ISBN 978-5-97060-685-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/1840447 (дата обращения: 26.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Томас Каффка

LEGO и электроника

Thomas Kaffka

LEGO und Elektronik

Raspberry Pi, Arduino,  
Sensoren, Motoren 
und vieles  
mehr einsetzen 
und programmieren

Томас Каффка

LEGO и электроника

Raspberry Pi, Arduino,  
датчики, двигатели  
и многое другое  
для применения  
и программирования

Москва, 2020

УДК 004.94
ББК 32.971.9
К12

Каффка Т.
К12
LEGO и электроника / пер. с нем. Е. А. Ледниковой. – М.: ДМК Пресс, 
2020. – 300 с.: ил.

ISBN 978-5-97060-685-8

В этой книге вы узнаете, как с помощью электроники и программирования 
оживить ваши наборы LEGO. Вы сможете собрать роботов с помощью кирпичиков LEGO, использовать готовую модель LEGO или сконструировать проект 
из совсем иных деталей – главное, чтобы робот был достаточно большим для 
встраивания описанных электронных компонентов. Роботы приводятся в движение при помощи микрокомпьютеров Arduino и Raspberry Pi.
Издание предназначено школьникам старших классов, их родителям, а также 
всем энтузиастам робототехники.

УДК 004.94
ББК 32.971.9

First published as LEGO und Elektronik by Thomas Kaffka. © 1nd edition 2017 by MITP Verlag 
GmbH&Co, KG. All rights reserved. Published with arrangements made by Maria Pinto-Peuckmann, 
Literary Agency-World Copyright Promotion, Kaufering. Germany.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой 
бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.

ISBN 978-3-95845-414-9 (нем.)
Copyright © 2017 mitp Verlags GmbH & Co. KG, Frechen
ISBN 978-5-97060-685-8 (рус.)
© Оформление, издание, перевод, ДМК Пресс, 2020

Моей дочери Пиа Хелене

Опыт – это пародия на идею.

Вольный перевод 
Иоганна Вольфганга Гете

Содержание

Предисловие..................................................................... 10

Введение............................................................................ 12

Конструктор LEGO для сборки роботов .................. 20

1.1. Оснащение LEGO электронными компонентами.... 22
1.2. Изменяем собранную модель LEGO.......................... 26

Знакомство с Arduino Uno........................................... 28

2.1. Устройство .................................................................. 28
2.2. Устанавливаем среду разработки.............................. 29
2.3. Интерфейс................................................................... 30
2.4. Исходный код программы для Arduino .................... 32

Знакомство с Raspberry Pi ........................................... 33

3.1. Устройство .................................................................. 33
3.2. Интерфейс GPIO ......................................................... 35
3.3. Задаем конфигурацию Raspberry Pi.......................... 37
3.4. Интерфейс программного обеспечения................... 43

1

2

3

Содержание

7

Сборка цепи...................................................................... 52

4.1. Сборка датчика освещенности.................................. 53
4.2. Сборка линейного датчика........................................ 54
4.3. Сборка датчика касания ............................................ 56
4.4. Сборка дополнительной платы для Arduino ............ 56
4.5. Сборка дополнительной платы для Raspberry Pi ..... 60
4.6. Сборка источника питания........................................ 66

Использование моторов .............................................. 68

5.1. Моторы-редукторы .................................................... 68
5.2. Моторы LEGO.............................................................100
5.3. Задание и решение....................................................107

Использование датчиков............................................109

6.1. Реагирование на яркость ..........................................109
6.2. Измерение расстояний .............................................123
6.3. Обнаружение препятствий.......................................138
6.4. Обработка стороны света .........................................151
6.5. Задания и решения ...................................................157

Применение других компонентов ..........................161

7.1. Применение светодиодов .........................................161
7.2. Управление звуком....................................................170
7.3. Распознавание цвета.................................................181
7.4. Воспроизведение музыки с помощью  
Raspberry Pi.......................................................................188
7.5. Вывод информации на ЖК-дисплей ........................190
7.6. Задания и решения....................................................196

Робот, который не падает со стола  
и управляется с помощью Raspberry Pi .................198

8.1. Робот...........................................................................199
8.2. Датчики......................................................................202

4

5

6

7

8

Содержание

8

8.3. Программа .................................................................203
8.4. Параметризация........................................................205
8.5. Программа для Arduino.............................................206

Выход из лабиринта с помощью экспертной  
системы и Arduino ........................................................208

9.1. Для начала немного теории......................................208
9.2. Робот...........................................................................211
9.3. Датчики......................................................................214
9.4. Программа ................................................................218
9.5. Параметризация........................................................224
9.6. Выход из лабиринта с помощью Raspberry Pi .........225

Робот, который следует по линиям  
благодаря нейронной сети под управлением
Raspberry Pi......................................................................226

10.1. Краткое введение в нейронную сеть......................226
10.2. Робот.........................................................................228
10.3. Линейный датчик....................................................231
10.4. Стандартная программа для следования  
по линиям.........................................................................231
10.5. Обучение следованию по линиям  
с помощью нейронной сети............................................237
10.6. Следование по линиям с помощью  
нейронной сети................................................................242
10.7. Робот, который следует по линиям  
и управляется с помощью Arduino .................................243

Дистанционное управление роботом  
с помощью Raspberry Pi ..............................................245

11.1. Робот.........................................................................245
11.2. Дистанционное управление с помощью  
приложения Raspberry SSH..............................................247
11.3. Дистанционное управление посредством  
веб-сервера и PHP............................................................251

9

10

11

Содержание

9

11.4. Усовершенствование робота...................................256
11.5. Дистанционное управление роботом  
с помощью Arduino..........................................................257

Сбор стаканчиков роботом под управлением
Raspberry Pi и модуля BrickPi+..................................258

12.1. Робот.........................................................................259
12.2. Распознавание стаканчиков через камеру............261
12.3. Другие датчики........................................................262
12.4. Сбор стаканчиков ...................................................264
12.5. Параметризация программы .................................265

Модернизация имеющейся модели LEGO............267

13.1. Робот под управлением Arduino.............................268
13.2. Робот под управлением Raspberry Pi......................270
13.3. Датчики....................................................................271
13.4. Перспективы............................................................271

Приложение.....................................................................272

А.1. Небольшие фрагменты программ  
для отдельных компонентов...........................................272
А.2. Язык программирования С(++)................................276
А.3. Язык программирования Python.............................281
А.4. Справочник компаний-поставщиков .....................285
А.5. Настройка сервера VNC для Raspberry Pi ................286
А.6. О нейронной сети .....................................................287

Предметный указатель................................................296

12

13

Предисловие

Тайна компьютерных программ

Компьютерная программа представляет собой машину. 
Разумеется, для вас это звучит, по крайней мере, странно. 
Давайте сначала рассмотрим сам компьютер, например 
ваш стационарный компьютер или ноутбук. Компьютер – 
это машина. Все понимают это. Теперь предположим, что 
у нашего компьютера нет операционной системы, такой 
как Windows, и других программ. Мы имеем дело только 
с аппаратным обеспечением и пустым жестким диском. 
Что произойдет, если мы включим такой компьютер? В его 
запоминающем устройстве находятся какие-то случайные 
числа. Микропроцессор будет пытаться обработать эти случайные числа и в один прекрасный момент просто прекратит работу, и дальше ничего не произойдет. Не появится 
изображение на мониторе, жесткий диск не будет издавать 
никаких звуков, и не будет видно указателя мыши. Все тихо. 
И что же представляет собой компьютер сейчас? Так как он 
в данный момент не может выполнять никаких действий, 
хотя мог бы загрузить и обработать любую программу, мы 
назовем его «универсальной машиной».

Компьютер без программ – это универсальная машина.
Из универсальной машины вы можете сделать все, что 
угодно. Ваш компьютер мог бы выполнять программу, обрабатывающую тексты, и тогда он был бы текстовым редактором. Он мог бы управлять токарным станком на производстве, и тогда он был бы управляющим устройством. 
Или он мог бы управлять роботом на Марсе, и был бы тогда 
центральным пунктом управления роботом. Это означает, 
что ваш компьютер благодаря программированию может 
стать специализированной машиной. 

Предисловие

11

Компьютер для решения одной задачи или узкого круга задач – это специализированная машина.
Так как с помощью соответствующей программы ваш 
компьютер можно превратить практически во все, что 
угодно, то сам по себе каждый компьютер – изначально 
универсальная машина. 
Итак, вернемся к компьютерной программе. Компьютерная 
программа говорит компьютеру, что ему делать. И поэтому 
не будет ошибкой, если мы будем рассматривать компьютерную программу как машину, а точнее, как специализированную машину. Ваша компьютерная программа придает смысл значениям в запоминающем устройстве. И микропроцессор теперь знает абсолютно точно, что ему нужно 
делать. Раз мы в этой книге будем говорить про роботов, то 
ваша программа будет говорить вашему микрокомпьютеру 
Raspberry Pi или Arduino, какие моторы ему нужно крутить 
и показатели каких датчиков (например, датчика касания) 
нужно считывать. 
Теперь вы, пока еще не научились программировать, больше не будете удивляться, почему компьютерная программа внутри выглядит так непонятно. Если вы просто прочтете код компьютерной программы сверху вниз, то вы не 
поймете, что она делает. Компьютерная программа – это 
не рассказ, это машина, и вам нужно ее исследовать, чтобы 
понять, что она должна делать.
Есть еще момент, который нужно учесть. В тематических 
сообществах в интернете программы для Arduino называются «скетчи» (англ. Sketch), а программы для Raspberry Pi – 
«сценарии» или «скрипты» (англ. Script). Чтобы придерживаться в этой книге единой терминологии, я буду использовать понятие «программа». 

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

Введение

В настоящее время робототехника стала неотъемлемой  
частью нашего мира и нашей жизни. Сначала роботы использовались, например, в автомобильной индустрии, чтобы способствовать автомобилестроению. У роботов есть такое преимущество, что они могут выполнять монотонную 
работу без потери точности. Кроме того, они, однократно 
запрограммированные, выполняют одни и те же действия 
с одинаковой точностью. Сегодня можно приобрести роботов даже для домашнего хозяйства, и они будут косить 
газон в саду или пылесосить пол в квартире. И это только 
начало. В будущем роботы возьмут на себя такие обременительные для нас занятия, как мойка посуды, приготовление еды или глажка. Почему бы вам не стать автором одного из таких изобретений и не проснуться однажды богатым 
и знаменитым? 
В этой книге вы узнаете, как с помощью различных электронных компонентов и соответствующего программирования оживить ваши кирпичики LEGO (или даже готовые модели LEGO). В книге описывается несколько роботов, которые 
смогут выполнять различные увлекательные задания. И не 
важно, из каких компонентов состоит сам робот. Вы можете собрать роботов из книги с помощью кирпичиков LEGO, 
использовать готовую модель LEGO или сконструировать робота из совсем иных деталей. Важно только то, что робот должен быть достаточно большим, для того чтобы в него можно 
было встроить описанные электронные детали. 
Роботы приводятся в движение при помощи микрокомпьютеров Arduino и Raspberry Pi. Каждый проект в книге может 
быть воплощен как с электронными деталями LEGO, так 
и с любыми другими имеющимися в продаже электронны
Введение

13

ми компонентами, такими как датчики, моторы и т. д. Таким образом, вы можете сами решать, какие компоненты 
хотите использовать. Все проекты можно также реализовать с помощью платы BrickPi+1 компании Dexter.
Некоторые проекты можно реализовать только на одном 
из двух микрокомпьютеров. Так, лишь для Arduino предназначен проект «Выход из лабиринта» (глава 10).
И только для Raspberry Pi подходят следующие проекты:
¾
«Следование по линиям» (глава 9);

¾
«Дистанционное управление роботом» (глава 11);

¾
«Сбор стаканчиков из-под йогурта» (глава 12, с использованием BrickPi+). 
В этой книге речь пойдет об основах того, как вы будете 
комбинировать LEGO с электронными компонентами и как 
будете программировать своих роботов, чтобы они смогли 
выполнять различные задачи, передвигаться в своей среде 
и реагировать на нее. 
В главе 1 я представлю компоненты, которые вы будете использовать в ходе реализации своих проектов по этой книге. При этом будут описаны как технические компоненты 
производства компании LEGO, так и «сторонние» технические компоненты (назовем их так). Под ними мы будем 
понимать компоненты других производителей (не LEGO), 
которые вы также можете применять. 
В главе 2 вы познакомитесь с микрокомпьютером Arduino, 
его способностями и используемой средой разработки.
Глава 3 посвящена микрокомпьютеру Raspberry Pi. В этой 
главе речь пойдет о его возможностях и среде разработки.
В главе 4 мы будем паять. Мы создадим различные платы, 
которые будем применять в последующих главах. Среди 
прочего будут созданы две платы, которые вам понадобятся для обоих микрокомпьютеров, чтобы подключить сторонние компоненты. Операции пайки очень легко выполнимы, и с ними справятся даже начинающие. 
Глава 5 посвящена установке моторов. Я остановлюсь на 
моторах LEGO, а также на сторонних моторах, которые могут приводить в движение наших роботов. 

1
Плата расширения для Raspberry Pi (на базе Arduino), позволяющая подключать LEGO-датчики и управлять LEGO-двигателями 
+ кейс с крепежными отверстиями, совместимыми с конструктором LEGO. Приобрести с доставкой в Российскую Федерацию 
можно на сайте www.modmypi.com/raspberry-pi/robotics-and-motor-controllers-392/robot-kits-1018/dexter-brickpi3-base-kit.

Доступ онлайн
799 ₽
В корзину