72
Лабиринт на Arduino Вадим Ипполитов vadipp HackNsk.org

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

  • Upload
    devday

  • View
    641

  • Download
    6

Embed Size (px)

DESCRIPTION

Все мы привыкли писать программы, результаты работы которых можно увидеть и услышать. Хотите, чтобы их можно было ещё и потрогать? На примере создания электронной игры «Лабиринт» вы увидите, как не имея знаний и опыта сделать первый шаг в мир hardware.

Citation preview

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

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

vadippHackNsk.org

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

В Parallels: автотесты, JavaВ НГУ: сетевые технологии

На досуге: Scala, Haskellи электроника

Мечта: Хакспейс в Новосибирске

Я

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

1. Что такое Arduino

2. Идея и реализация

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

1. Что такое Arduino

2. Идея и реализация

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

1. Аппаратная платформа

2. Простая IDE

3. Стандартная библиотека

Arduino

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

1. Аппаратная платформа

2. Простая IDE

3. Стандартная библиотека

Arduino

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

USB

Питание до 16В

Аналоговые входы

Цифровые входы/выходы

Микроконтроллер

Кнопка сброса

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

1. процессор2. ПЗУ для кода

3. ОЗУ для данных4. выводы для общения с периферией

Микроконтроллер

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

1. процессор2. ПЗУ для кода

3. ОЗУ для данных4. выводы для общения с периферией

Микроконтроллер

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

1. питание2. цифровые входы/выходы

3. аналоговые входы4. последовательный порт

5. I2C, SPI

Выводы

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

1. питание2. цифровые входы/выходы

3. аналоговые входы4. последовательный порт

5. I2C, SPI

Выводы

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

Цифровой сигналНапряжение

Время

5 вольт

0 вольт

} “1”

} “0”

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

1. питание2. цифровые входы/выходы

3. аналоговые входы4. последовательный порт

5. I2C, SPI

Выводы

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

Аналоговый сигналНапряжение

Время

5 вольт

0 вольт

3.1 вольт

1 вольт

0 попугаев

1023 попугая

205 попугаев

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

1. свет2. звук

3. кнопки4. сервы, моторы

5. позиционирование6. кабельная связь

7. беспроводная связь

Периферия

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

1. дискретные компонентысоединяем проводами

2. платы расширения (shields)принцип бутерброда

Подключение периферии

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

Arduino

Ethernet shield

LED strip shield

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

1. Аппаратная платформа

2. Простая IDE

3. Стандартная библиотека

Arduino

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

Открыть терминал

Результат компиляциии прошивки

Код С / С++

Прошить

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

Альтернативные IDE

1. Eclipse2. Netbeans

3. Visual Studio4. vim + Makefile

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

1. Аппаратная платформа

2. Простая IDE

3. Стандартная библиотека

Arduino

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

Стандартная библиотека

1. управление выводами2. таймеры

3. протоколы для периферии4. ввод/вывод с терминала

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

Управление выводами

digitalWrite(5, HIGH);

int intensity = analogRead(A3);

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

Сторонние библиотеки

дисплейакселерометрGPS-модульWiFi-модуль

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

1. Что такое Arduino

2. Идея и реализация

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

Реализация

1. механика2. электроника3. программа

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

Реализация

1. механика2. электроника3. программа

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

Механика

конструкциякак шевелится

материалы

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

Конструкция лабиринта

плоская платформалабиринт с шариком сверху

наклоняющий механизм под ней

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

Как наклонять?

две оси

два сервопривода

тяги из проволоки

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

20 мс

Page 35: Лабиринт на Arduino, Вадим Ипполитов
Page 36: Лабиринт на Arduino, Вадим Ипполитов
Page 37: Лабиринт на Arduino, Вадим Ипполитов

FAIL

Page 38: Лабиринт на Arduino, Вадим Ипполитов
Page 39: Лабиринт на Arduino, Вадим Ипполитов
Page 40: Лабиринт на Arduino, Вадим Ипполитов

Механика

конструкциякак шевелится

материалы

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

Материалы

основа — ДВПплощадка — текстолит

болты & гайкитяги — проволока

шарик !стенки лабиринта — ?

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

Стенки лабиринта

3D-моделированиеSketchUp

3D-печатьPrint And Play

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

Инструменты

ножножовка по металлудрель-шуруповёрт

плоскогубцы

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

Реализация

1. механика2. электроника

3. программа

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

Arduino

ServoX ServoYДатчик старта

Датчик финиша

Пульт Дисплей

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

Пульт

цифровой трёхосевой акселерометр

гравитационное ускорение

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

{MPU-6050:акселерометр + гироскоп

I2C

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

Датчик старта / финиша

700 Ом2500 Ом

5 вольт

0 вольт

на аналоговый вход

Page 51: Лабиринт на Arduino, Вадим Ипполитов
Page 52: Лабиринт на Arduino, Вадим Ипполитов
Page 53: Лабиринт на Arduino, Вадим Ипполитов
Page 54: Лабиринт на Arduino, Вадим Ипполитов

Реализация

1. механика2. электроника3. программа

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

Где брать?

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

Цены

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

Смета (электроника)Arduino Nano 180р Дисплей 130р

Аксель 150р Резисторы 19x1р

Серва 2x80р Макетная плата 120р

Светодиод 4x7р Провода 20р

Фоторезистор 4x5р Итого 830р

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

Смета (механика)Стеклотекстолит 120р ДВП 0р

Болты/гайки 20р Шарик 0р

Уголок 2x20р 3D печать ?

Суперклей 20р Итого 200р?

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

Итого:≈ 1000р + 3D печать

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

Что дальше?

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

ПробуйтеГуглите