Лабиринт на Arduino 
Вадим Ипполитов 
vadipp 
HackNsk.org
Я 
В Parallels: автотесты, Java 
В НГУ: сетевые технологии 
На досуге: Scala, Haskell 
и электроника 
Мечта: Хакспейс в Новосибирске
1. Что такое Arduino 
2. Идея и реализация
1. Что такое Arduino 
2. Идея и реализация
Arduino 
1. Аппаратная платформа 
2. Простая IDE 
3. Стандартная библиотека
Arduino 
1. Аппаратная платформа 
2. Простая IDE 
3. Стандартная библиотека
USB 
Питание 
до 16В 
Цифровые входы/выходы 
Микроконтроллер 
Аналоговые входы 
Кнопка сброса
Микроконтроллер 
1. процессор 
2. ПЗУ для кода 
3. ОЗУ для данных 
4. выводы для общения с периферией
Микроконтроллер 
1. процессор 
2. ПЗУ для кода 
3. ОЗУ для данных 
4. выводы для общения с периферией
Выводы 
1. питание 
2. цифровые входы/выходы 
3. аналоговые входы 
4. последовательный порт 
5. I2C, SPI
Выводы 
1. питание 
2. цифровые входы/выходы 
3. аналоговые входы 
4. последовательный порт 
5. I2C, SPI
Цифровой сигнал 
Напряжение 
Время 
5 вольт 
0 вольт 
} “1” 
} “0”
Выводы 
1. питание 
2. цифровые входы/выходы 
3. аналоговые входы 
4. последовательный порт 
5. I2C, SPI
Аналоговый сигнал 
Напряжение 
1023 попугая 
205 попугаев 
Время 
5 вольт 
3.1 вольт 
1 вольт 
0 вольт 
0 попугаев
Периферия 
1. свет 
2. звук 
3. кнопки 
4. сервы, моторы 
5. позиционирование 
6. кабельная связь 
7. беспроводная связь
Подключение периферии 
1. дискретные компоненты 
соединяем проводами 
2. платы расширения (shields) 
принцип бутерброда
LED strip shield 
Ethernet shield 
Arduino
Arduino 
1. Аппаратная платформа 
2. Простая IDE 
3. Стандартная библиотека
Открыть терминал 
Результат 
компиляции 
и прошивки 
Код С / С++ 
Прошить
Альтернативные IDE 
1. Eclipse 
2. Netbeans 
3. Visual Studio 
4. vim + Makefile
Arduino 
1. Аппаратная платформа 
2. Простая IDE 
3. Стандартная библиотека
Стандартная библиотека 
1. управление выводами 
2. таймеры 
3. протоколы для периферии 
4. ввод/вывод с терминала
Управление выводами 
digitalWrite(5, HIGH); 
int intensity = analogRead(A3);
Сторонние библиотеки 
дисплей 
акселерометр 
GPS-модуль 
WiFi-модуль
1. Что такое Arduino 
2. Идея и реализация
Реализация 
1. механика 
2. электроника 
3. программа
Реализация 
1. механика 
2. электроника 
3. программа
Механика 
конструкция 
как шевелится 
материалы
Конструкция лабиринта 
лабиринт с шариком сверху 
плоская платформа 
наклоняющий механизм под ней
Как наклонять? 
две оси 
два сервопривода 
тяги из проволоки
20 мс
FAIL
Механика 
конструкция 
как шевелится 
материалы
Материалы 
основа — ДВП 
площадка — текстолит 
болты & гайки 
тяги — проволока 
шарик ! 
стенки лабиринта — ?
Стенки лабиринта 
3D-моделирование 
SketchUp 
3D-печать 
Print And Play
bit.ly/arduinomaze
Инструменты 
нож 
ножовка по металлу 
дрель-шуруповёрт 
плоскогубцы
Реализация 
1. механика 
2. электроника 
3. программа
Пульт Дисплей 
Arduino 
Датчик Датчик 
старта 
финиша 
ServoX ServoY
Пульт 
цифровой трёхосевой акселерометр 
гравитационное ускорение
{ MPU-6050: 
акселерометр + гироскоп 
I2C
Датчик старта / финиша 
270500 0О Омм 
5 вольт 
0 вольт 
на аналоговый 
вход
Реализация 
1. механика 
2. электроника 
3. программа
bit.ly/arduinomaze
bit.ly/arduinomaze
bit.ly/arduinomaze
bit.ly/arduinomaze
bit.ly/arduinomaze
bit.ly/arduinomaze
bit.ly/arduinomaze
bit.ly/arduinomaze
bit.ly/arduinomaze
Где брать?
В магазинах 
devicter.ru 
radiosfera.org 
... 
ebay.com 
hobbyking.com 
...
Цены
Смета (электроника) 
Arduino Nano 180р Дисплей 130р 
Аксель 150р Резисторы 19x1р 
Серва 2x80р Макетная плата 120р 
Светодиод 4x7р Провода 20р 
Фоторезистор 4x5р Итого 830р
Смета (механика) 
Стеклотекстолит 120р ДВП 0р 
Болты/гайки 20р Шарик 0р 
Уголок 2x20р 3D печать ? 
Суперклей 20р Итого 200р?
Итого: 
≈ 1000р + 3D печать
Что дальше?
Пробуйте 
Гуглите
Приходите к нам! 
hacknsk.org 
hello@hacknsk.org

Лабиринт на Arduino, Вадим Ипполитов