Кружок по робототехнике. Занятие #2. Lego Mindstorms NXTAlexander Kolotov
This slide deck is used as the first part of the second lesson for kids who started robotics courses for the first year. It familiarizes kids with LEGO Mindstorms NXT kit.
Кружок по робототехнике. Занятие #2. Lego Mindstorms NXTAlexander Kolotov
This slide deck is used as the first part of the second lesson for kids who started robotics courses for the first year. It familiarizes kids with LEGO Mindstorms NXT kit.
Комплект для хакатона Edison Arduino Kit + Grove Starter Kit
Перечисление датчиков в Grove Starter Kit
Датчики в разных сферах
Критерии судейства
Примеры проектов с прошедших хакатонов
This document provides information about Raspberry Pi including where to purchase models, guides for getting started, Linux distributions, games and demos, and estimated costs. Key points include:
- The Raspberry Pi Model B boards are now made in the UK and available for purchase from various retailers including Newark and Adafruit.
- Quick start guides and books are available from the Raspberry Pi website to help new users get up and running.
- Popular Linux distributions for Raspberry Pi include the official Raspbian as well as customized versions from Adafruit and Arch Linux ARM.
- Example programs mentioned include Doom, a penguin puzzle graphics demo, and estimated costs to assemble a basic Raspberry Pi system are under
Нескучная гирлянда на новогодние праздники и приятная подсветка в течение года. Программируем ардуино со смартфона по блютусу.
Материалы со встречи:
https://getdev.net/Event/arduino
Este documento describe conceptos básicos de modelamiento y gestión de bases de datos como tablas, primary keys y foreign keys. Explica las herramientas para la administración de bases de datos como Oracle Universal Installer, Database Configuration Assistant y Oracle Enterprise Manager. También cubre la arquitectura básica de una base de datos Oracle incluyendo la instancia, System Global Area, Program Global Area y la estructura de almacenamiento en tablespaces y datafiles.
This document provides information about resistors and color coding systems used to identify resistor values and tolerances. It explains that most resistors are too small to print their exact values, so a color coding system was developed using colored bands to represent numbers and tolerances. It also provides examples of calculating resistances from the color bands and discusses LEDs, including how they work, their components, and different types of LEDs.
Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде ArduinoAnton Moiseev
Методические указания проведения лабораторных работ по программированию микроконтроллеров на Arduino-совместимой платформе PIC32 ChipKIT Uno32.
Составители: Автомобильный Институт (АМИ), Нижегородский государственный технический университет им Р.Е. Алексеева.
This presentation is a about a solution to an irritating office problem: regular coffee machines’ water tank refilling and prevention of their breakdowns. For this purpose a project named Refilla emerged.
In this presentation Andrii Zakharov (Software Engineer, GlobalLogic) explains how much data we can get just by measuring water in the machine, and why a coffeemaker had to be upgraded and turned into an IoT thing.
The presentation was delivered at GlobalLogic Embedded TechTalk Kyiv on July 22, 2015.
Время - самый главный и невосполнимый человеческий ресурс. Им невозможно управлять. Его можно только тратить. Кто-то это делает неосознанно и размеренно, кто-то пытается сохранить баланс между безделием и "жопой в огне", а кто-то и вовсе выжимает из 24 часов ядерный концентрат из эмоций и действий их приносящих. Но все неизменно сходятся в одном - бессмысленно и глупо тратить собственный жизненный ресурс на вещи, которые приносят боль и возвращают нас назад в прошлое.
Через призму продюсирования, я рассказываю о том, как такая банальная вещь, как "планирование" поможет вам осознанно начать управлять своей жизнью. Копнув глубже я говорю о цикле Деминга и философии Кайдзен, как о процессе непрерывного анализа и совершенствования своих способностей, рассказываю о процессе расстановки приоритетов с помощью матрицы Эйзенхауэра и прохожу все стадии борьбы с самим собой, определив оптимальную стратегию поведения в зависимости от ситуации.
Подборка лучших мировых диджитал-продакшн студий и агентствSasha Kulam
Нужно обязательно следить за проектами этих компаний, а лучшие кейсы этих продакшн-студий и агентств нужно обязательно разбирать на кусочки и перенимать их опыт.
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & ArduinoAndri Yadi
In Echelon Indonesia 2016, April 5, I talked about what IoT and Arduino are all about, technological perspective in IoT, and some opportunities around IoT where we can innovate. I also gave my view on IoT market and players in Indonesia.
It's exciting time!
Internet of Things - Technological PerspectiveAndri Yadi
When I was asked to go back to my campus and share about Internet of Things, I found that it's a broad topic. So I limit the talk only from technological standpoint while still giving a bit about business opportunities. So this is the deck used for that talk.
Arduino projects list about 2342 arduino list of projects use arduino for p...Ashraf11111
The document is a list of Arduino projects with titles and URLs. There are over 2,000 projects listed ranging from simple LED circuits and sensors to more complex robots, 3D printers, and animatronic builds. The list is filterable and searchable. An introduction notes that the full PDF of the Arduino project list is available for download on the listed website.
CodeRage XI international Conference: Arduino + Delphi Mobile Apps Vic Fernandes
This is the playback of my CodeRage XI international Conference lecture speaking about Arduino + Delphi Mobile Apps
This presentation was done in 9 cities around Brazil for the ExtremeDelphi event during 2016 and also in Rome-Italy at the ITDevCon event.
Very happy to be speaking for the first time at the CodeRage!!! Only great speakers and hundreds of attendees from all around the world! Wow!
Arduino и бионика (Bionic Arduino). Часть 4. ШИМ, сервомашинки, I2C, акселеро...Tatiana Volkova
•Про ШИМ
•Управление сервомашинками
•Про шину I2C
•Использование I2C с Arduino
•Про акселерометры
•Нунчак Nintendo Wii как устройство ввода
Все скетчи и файлы одним архивом:
http://robofreak.ru/bionic_arduino_rus.zip
Arduino и бионика (Bionic Arduino). Часть 3. Моторы, транзисторы, Processing,...Tatiana Volkova
• О моторах постоянного тока
• Транзисторы как выключатели
• Управление моторами постоянного тока
• Введение в Processing
• Управление компьютером с помощью Arduino
• Пьезо-пищалки в качестве сенсоров
Все скетчи и файлы одним архивом:
http://robofreak.ru/bionic_arduino_rus.zip
Комплект для хакатона Edison Arduino Kit + Grove Starter Kit
Перечисление датчиков в Grove Starter Kit
Датчики в разных сферах
Критерии судейства
Примеры проектов с прошедших хакатонов
This document provides information about Raspberry Pi including where to purchase models, guides for getting started, Linux distributions, games and demos, and estimated costs. Key points include:
- The Raspberry Pi Model B boards are now made in the UK and available for purchase from various retailers including Newark and Adafruit.
- Quick start guides and books are available from the Raspberry Pi website to help new users get up and running.
- Popular Linux distributions for Raspberry Pi include the official Raspbian as well as customized versions from Adafruit and Arch Linux ARM.
- Example programs mentioned include Doom, a penguin puzzle graphics demo, and estimated costs to assemble a basic Raspberry Pi system are under
Нескучная гирлянда на новогодние праздники и приятная подсветка в течение года. Программируем ардуино со смартфона по блютусу.
Материалы со встречи:
https://getdev.net/Event/arduino
Este documento describe conceptos básicos de modelamiento y gestión de bases de datos como tablas, primary keys y foreign keys. Explica las herramientas para la administración de bases de datos como Oracle Universal Installer, Database Configuration Assistant y Oracle Enterprise Manager. También cubre la arquitectura básica de una base de datos Oracle incluyendo la instancia, System Global Area, Program Global Area y la estructura de almacenamiento en tablespaces y datafiles.
This document provides information about resistors and color coding systems used to identify resistor values and tolerances. It explains that most resistors are too small to print their exact values, so a color coding system was developed using colored bands to represent numbers and tolerances. It also provides examples of calculating resistances from the color bands and discusses LEDs, including how they work, their components, and different types of LEDs.
Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде ArduinoAnton Moiseev
Методические указания проведения лабораторных работ по программированию микроконтроллеров на Arduino-совместимой платформе PIC32 ChipKIT Uno32.
Составители: Автомобильный Институт (АМИ), Нижегородский государственный технический университет им Р.Е. Алексеева.
This presentation is a about a solution to an irritating office problem: regular coffee machines’ water tank refilling and prevention of their breakdowns. For this purpose a project named Refilla emerged.
In this presentation Andrii Zakharov (Software Engineer, GlobalLogic) explains how much data we can get just by measuring water in the machine, and why a coffeemaker had to be upgraded and turned into an IoT thing.
The presentation was delivered at GlobalLogic Embedded TechTalk Kyiv on July 22, 2015.
Время - самый главный и невосполнимый человеческий ресурс. Им невозможно управлять. Его можно только тратить. Кто-то это делает неосознанно и размеренно, кто-то пытается сохранить баланс между безделием и "жопой в огне", а кто-то и вовсе выжимает из 24 часов ядерный концентрат из эмоций и действий их приносящих. Но все неизменно сходятся в одном - бессмысленно и глупо тратить собственный жизненный ресурс на вещи, которые приносят боль и возвращают нас назад в прошлое.
Через призму продюсирования, я рассказываю о том, как такая банальная вещь, как "планирование" поможет вам осознанно начать управлять своей жизнью. Копнув глубже я говорю о цикле Деминга и философии Кайдзен, как о процессе непрерывного анализа и совершенствования своих способностей, рассказываю о процессе расстановки приоритетов с помощью матрицы Эйзенхауэра и прохожу все стадии борьбы с самим собой, определив оптимальную стратегию поведения в зависимости от ситуации.
Подборка лучших мировых диджитал-продакшн студий и агентствSasha Kulam
Нужно обязательно следить за проектами этих компаний, а лучшие кейсы этих продакшн-студий и агентств нужно обязательно разбирать на кусочки и перенимать их опыт.
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & ArduinoAndri Yadi
In Echelon Indonesia 2016, April 5, I talked about what IoT and Arduino are all about, technological perspective in IoT, and some opportunities around IoT where we can innovate. I also gave my view on IoT market and players in Indonesia.
It's exciting time!
Internet of Things - Technological PerspectiveAndri Yadi
When I was asked to go back to my campus and share about Internet of Things, I found that it's a broad topic. So I limit the talk only from technological standpoint while still giving a bit about business opportunities. So this is the deck used for that talk.
Arduino projects list about 2342 arduino list of projects use arduino for p...Ashraf11111
The document is a list of Arduino projects with titles and URLs. There are over 2,000 projects listed ranging from simple LED circuits and sensors to more complex robots, 3D printers, and animatronic builds. The list is filterable and searchable. An introduction notes that the full PDF of the Arduino project list is available for download on the listed website.
CodeRage XI international Conference: Arduino + Delphi Mobile Apps Vic Fernandes
This is the playback of my CodeRage XI international Conference lecture speaking about Arduino + Delphi Mobile Apps
This presentation was done in 9 cities around Brazil for the ExtremeDelphi event during 2016 and also in Rome-Italy at the ITDevCon event.
Very happy to be speaking for the first time at the CodeRage!!! Only great speakers and hundreds of attendees from all around the world! Wow!
Arduino и бионика (Bionic Arduino). Часть 4. ШИМ, сервомашинки, I2C, акселеро...Tatiana Volkova
•Про ШИМ
•Управление сервомашинками
•Про шину I2C
•Использование I2C с Arduino
•Про акселерометры
•Нунчак Nintendo Wii как устройство ввода
Все скетчи и файлы одним архивом:
http://robofreak.ru/bionic_arduino_rus.zip
Arduino и бионика (Bionic Arduino). Часть 3. Моторы, транзисторы, Processing,...Tatiana Volkova
• О моторах постоянного тока
• Транзисторы как выключатели
• Управление моторами постоянного тока
• Введение в Processing
• Управление компьютером с помощью Arduino
• Пьезо-пищалки в качестве сенсоров
Все скетчи и файлы одним архивом:
http://robofreak.ru/bionic_arduino_rus.zip
Arduino и бионика (Bionic Arduino). Часть 1. Введение, цифровые входы, перекл...Tatiana Volkova
Представляю Вашему вниманию свой перевод презентаций Bionic Arduino. Её автор — Тод Курт, известный по сайту и книге Hacking Roomba. Я считаю Bionic Arduino самой лучшей обучающей презентацией по основам программирования микроконтроллеров. Название «Arduino и бионика» не должно никого вводить в заблуждение — видимо, Тод выбрал его как наиболее интригующее, вся «бионика» там только в первой презентации и сводится к вопросу о киборгах.
Введение в Arduino
• Установка среды разработки
• Ваш первый скетч на Arduino
• Цифровые и аналоговые выходы
• Цифровые входы
• Как помигать светодиодом
• Как воспринять нажатие кнопки и узнать состояние переключателя
Все скетчи и файлы одним архивом:
http://robofreak.ru/bionic_arduino_rus.zip
Тестирование на проникновение сетей телекоммуникационных компаний является одной из наиболее сложных, но и интересных задач подобного рода. Миллионы IP-адресов, десятки тысяч узлов, сотни Web-серверов всего лишь месяц времени. Какие вызовы ожидают аудитора при тестировании сети телекома? На что стоит обратить внимание? Как наиболее эффективно использовать отведенное на работу время? Почему абонент опасней хакера? Почему подрядчик опасней абонента? Как связать уязвимость и финансовые потери? Об этом, а также о самых показательных и забавных случаях тестирования на проникновения телекоммуникационных сетей будет рассказано в докладе Сергея Гордейчика.
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)Ontico
HighLoad++ 2017
Зал «Мумбай», 7 ноября, 10:00
Тезисы:
http://www.highload.ru/2017/abstracts/2899.html
На каждой конференции мы слушаем интереснейшие доклады про CI/CD, service discovery, docker, kubernetes и т.д. Практически все эти доклады рассказывают нам о "разработческой" стороне проблемы: как собрать образ контейнера, быстро его протестировать и задеплоить, как контейнеры друг о друге узнают, как добавится новый upstream в конфиг nginx и т.д.
Но никто нам не рассказал, как потом с этим "облачным" счастьем жить (тем более под нагрузкой).
...
Sound Art in Russia by sergey kasich (2014)srgksch
презентация к лекции, прочитанной в Калининграде на фестивале SoundAround 2014 и во время Посольства SoundArtist.ru в городе Севастополь в августе 2014.
this is the slides for the lecture on Russian Sound Arts presented at Sound Around festival in april 2014 in Kaliningrad and during sound-art embassy in Sevastopol in August 2014.
This document provides a summary of experimental sound and technological art projects from 1922 to 2012. It mentions early pioneers like Arseniy Avraamov who presented a symphony of sirens in 1923. It also discusses later inventors and their creations, such as the Variophone by Evgeniy Sholpo in the 1930s and the ANS developed by Evgeniy Murzin from 1938 to 1958. More recent projects mentioned include the Room-Sketch installation from 2010, LIQUID~DO from 2011, and Voice of Freedom from 2012.
SA))_VPWeeks: Визуальное Программирование в MAX (by sergey kasich)srgksch
Презентация подготовлена для вводного занятия воркшопа по Max\Msp\Jitter в рамках курса Визуального Программирования Мультимедиа от SoundArtist.ru (SA))_VPWeeks). Октябрь 2013. Москва. Составил sergey kasich.
The document discusses open source and how it has grown from being niche to mainstream. It then talks about Arduino as an open source hardware platform that has enabled knowledge sharing. The author notes that as the first hackerspace in China, there is a question around how hacker culture can help drive innovation in China. The concept of "Shanzhai" is then introduced, which follows rules of rapid, small innovation and sharing knowledge widely similar to open source. The author realizes Shanzhai sounds very similar to open source.
1. Arduino и бионика
Введение в микроконтроллеры с Arduino
Занятие 4
20 ноября 2007 - machineproject — Тод Е. Курт
Перевод на русский язык
13 апреля 2012 — robofreak.ru — Татьяна Волкова
2. Программа на сегодня
• Про ШИМ
• Управление сервомашинками
• Про шину I2C
• Использование I2C с Arduino
• Про акселерометры
• Нунчак Nintendo Wii как устройство ввода
3. Повторение:
мигающий светодиод
Удостоверьтесь, что всё
по-прежнему работает
компиляция
загрузка
Загрузите TX/RX мигают
«File/Sketchbook/Examples/Digital/Blink»
скетч
стартует
Измените значение в «delay()», чтобы изменить частоту мигания
4. Широтно-импульсная
модуляция
• Часто называется просто «ШИМ»
• Компьютеры не могут выдавать
аналоговое напряжение
• Только цифровое (0 вольт либо 5 вольт)
• Но вы можете его изобразить
• если усредните цифровой сигнал,
скачущий между напряжениями
• Например...
6. ШИМ
• Используется везде
• Регуляторы яркости ламп, управление
скоростью мотора, подача питания,
создание звука
• Три характеристики ШИМ-сигнала
• Ширина импульса (мин/макс)
• Период импульса
(= 1/число импульсов в сек.) ширина
• Уровни напряжения
(к примеру, 0-5В) высота
период
Вы уже делали схемы с использованием ШИМ.
7. Сервомоторы
•Могут принимать
положение
от 0 до 180º (обычно)
• Внутренняя схема
с обратной связью
и редуктором
сама делает всё
сложное за Вас
• Простой интерфейс
ШИМ 5В из 3-х
проводов
Точнее, это сервомашинки, используемые в авиамоделировании, энтузиастами в качестве
хобби.
Вообще говоря, «сервомотор» - это мотор с внутренним механизмом обратной связи,
который позволяет отправлять команды «принять позицию» без необходимости Вам
считывать текущую позицию.
8. Сервомашинки прекрасны
• Мотор постоянного тока
• Редуктор с большим моментом
• Потенциометр,
считывающий позицию
• Схема с обратной связью
считывает потенциометр
и управляет мотором
• Всё встроено, Вам только
нужно скормить ей ШИМ-сигнал
У таких небольших синих сервомашинок можно посмотреть на внутренности.
9. Для чего хороши сервы?
• Они в ходу у робототехников, авторов
киноспецэффектов и марионеточников
• Везде, где Вам нужно управляемое,
повторяемое движение.
• Можно превратить вращение в
линейное движение при помощи
хитрых механических рычагов.
Даже в одежде сейчас используются сервы:
http://www.technologyreview.com/read_article.aspx?id=17639&ch=infotech :
10. Сервомашинки
• Бывают всех размеров
• От сверх-миниатюрных 9г
• до двигающих-машину
• Но у всех один и тот же
3-проводной интерфейс
• Сервы определяются через:
Вес: 9 г
Скорость: 12с/60° @ 6В
Момент: 1.5кг/см @ 6В
157 г
Напряжение: 4.6~6В
Размер: 21x11x28 мм
http://rctoys.com/
http://hobbypeople.net/
11. Крепление и
удлинение сервы
Множество способов
прикрепить серву
И превратить её
вращательное движение
в другие типы движения
Скоба для крепления: http://www.sierragiant.com/prod28.html
12. Управление сервой
Земля (0В)
180º Питание (+5В)
Управление
(ШИМ)
• Частота ШИМ - 50 Гц (каждые 20 мс)
• Ширина импульса от 1 до 2 миллисекунд
• 1 мс = крайняя позиция против часовой
• 2 мс = крайняя позиция по часовой
13. Движение сервы
0 градусов 90 градусов 180 градусов
1000 микросекунд 1500 микросекунд 2000 микросекунд
На практике ширина импульса может быть от 500
до 2500 микросекунд
(добавим метку из провода к серве, как на картинке выше)
Поставьте красную «руку» на Вашу серву. Для этого нужна отвёртка.
Многие покупные серводрайверы имеют калибровку, чтобы справляться с различными
сервами.
14. Серва и Arduino
Добавьте несколько проводов к разъёму сервы
Земля
Питание
ШИМ-управление
Советую подбирать цвета проводов согласно общепринятой маркировке, насколько это
возможно.
16. Двигаем сервомашинку
“ServoSimple”
Перемещает серво-
машинку в доступных
ей пределах
Функцией
delayMicroseconds()
задаётся ширина импульса
Функцией
delay()
задаётся частота импульса
Скетч есть в раздаточном материале
Написана специальная функция для выдачи импульсов на сервомашинку.
Новая функция “delayMicroseconds()”. Как “delay()”, но задержка в микросекундах (µs), а
не миллисекундах (ms).
На самом деле, просто ждать 20 миллисекунд не вполне правильно. Должно быть:
20 — (ширина_импульса/1000)
(1000 микросекунд = 1 миллисекунда, и 1000 миллисекунд = 1 секунда)
17. Серва, управляемая через
последовательный порт
“ServoSerialSimple”
Управляйте
сервомашинкой,
нажимая на клавиши
с цифрами.
Последний пример с
сервомашинкой, к
которому добавлен
стандартный
последовательный ввод
Скетч есть в раздаточном материале.
Зачем этот цикл «for»? Потому что сервомашинке требуется время, чтобы перейти на
нужную позицию, а памяти у неё нет.
18. Шаг в сторону:
управление Arduino
• Любая программа на компьютере, не
только программы для Arduino, могут
управлять платой Arduino
• В Unix-системах, таких как Mac OS X и
Linux, можно даже из командной строки:
demo% export PORT=/dev/tty.usbserial-A3000Xv0
demo% stty -f $PORT 9600 raw -parenb -parodd cs8 -hupcl -cstopb clocal
demo% printf "1" > $PORT # rotate servo left
demo% printf "5" > $PORT # go to middle
demo% printf "9" > $PORT # rotate servo right
Unix — это нереально круто.
19. Идея роботизированной
игрушки для кошки
Приклейте скотчем ёршик, и,
используя случайное поведение,
аналогичное «пламени свечи»,
сделайте случайно двигающуюся
игрушку для кошки
Удостоверьтесь, что надёжно закрепили сервомашинку перед тестовыми запусками. У
кошек очень хорошо получается разбирать электронные прототипы.
20. Проблемы со временем
• Две проблемы с последним скетчем
• Когда выполняется servoPulse(),
ничто другое выполняться не может
• Серве не выдаются периодические
импульсы для удержания позиции
• Нужно выполнять две разных “задачи”:
• Считывание с последовательного порта
• Управление сервомашинкой
Если серве не говорят постоянно, что делать, она расслабляется и не
поднимает/толкает/тянет.
21. Более продвинутый
вариант управления сервой
“ServoSerialBetter”
Работает как
ServoSerialSimple
(но лучше)
Обновляет позицию
сервы, когда нужно,
а не просто в
момент вызова.
Вызывает “millis()”,
чтобы узнать время
Скетч в раздаточном материале.
Жертвует временем (дополнительные переменные) ради более удобной логики.
Можно вызывать updateServo() как угодно часто, серва перемещается только тогда,
когда это необходимо.
22. Несколько сервомашинок
• Технология updateServo() может
применяться к нескольким сервам
• Единственное ограничение — число
свободных цифровых выходов
• Проблемы начинаются, когда количество
сервомашинок превышает 8
23. «Многозадачность»
Концепция updateServo()
полезна, когда нужно «делать много
дел одновременно» в скетче Arduino:
• Определите задачу
• Разбейте её на несколько частей, основываясь на
времени выполнения («кванты времени»)
• Поместите эти участки кода в отдельные функции
• С помощью millis() определяйте, какой участок
должен сейчас выполняться
• Вызывайте функции из loop()
Внутри участков кода избегайте использования delay(), циклов for и других языковых
конструкций, которые заставляют код выполняться слишком долго внутри кванта времени.
Это называется “кооперативная многозадачность”, и так работали ОС в 80-е.
24. ШИМ в Arduino
почему всё программно, разве
в Arduino нет ШИМ?
• В Arduino есть встроенный ШИМ
• На выходах 9, 10, 11
• Используйте analogWrite(pin,value)
• частоте (поэтому не годен для серв)
Работает на высокой, фиксированной
• светодиодов и моторов
Но отлично подходит для
• чипа ATmega8 -» не нужно дополнительного
Использует встроенные электрические цепи ШИМ
программирования
Частота ШИМ, используемая в analogWrite() в настоящий момент по умолчанию равна
450Гц или 30 кГц. Я точно не помню, но её нельзя изменить, пока Вы не поймёте на более
глубоком уровне работу AVR.
Так что при программировании AVR-чипов вне среды Arduino, скорость ШИМ может быть
назначена практически любой.
26. Последовательная
коммуникация
Асинхронная коммуникация Синхронная коммуникация
TX RX такт
данные A->B
Устройство А Устройство B Устройство А Устройство B
данные B->A
RX TX
асинхронный – без тактирования синхронный – с тактированием
Данные передаются установкой Данные передаются установкой
уровней HIGH/LOW в нужное время HIGH/LOW, когда изменяется
тактовый сигнал
Один провод для тактирования
Разные провода для передачи и приёма
и провод для каждого направления,
передачи данных, как и раньше
Оба устройства должны иметь Ни одному из устройств не нужен устойчивый
устойчивый «ритм» ритм, но одно из них является дирижёром
Какой из них лучше? Зависит от конкретного приложения. Асинхронный хорош, когда
имеются только два устройства, и они заранее настроены так, чтобы быть согласованными
по скорости (как в ваших скетчах Arduino).
Синхронный в целом лучше для высоких скоростей (потому что не требуется точное
тактирование, достаточно лишь следить за тактовым проводом).
27. I2C, также известная как
«Два провода» (Two-wire)
Синхронная последовательная шина
с общей линией данных
маленькая сеть для Ваших устройств
SCK такт
Ведущее
устройство
SDA данные
Перифе- Перифе- Перифе-
рийное рийное ••• рийное
устр-во 1 устр-во 2 устр-во N
•До 127 устройств на одной шине
•Скорость передачи данных до 1Мб/сек
•Очень простой протокол (по сравнению с USB,Ethernet, и т.д)
•Встроен во многие микроконтроллеры
Общая линия данных означает, что устройства должны соглашаться о том, когда их
очередь «говорить». Как в радиосвязи гражданского диапазона (CB), когда Вы говорите
«Приём», чтобы показать, что Вы закончили говорить и готовы слушать собеседника.
См. “Введение в I2C”: http://www.embedded.com/story/OEG20010718S0073
“I2C” расшифровывается как “Inter-Integrated Circuit”, но никто её так не называет
И если Ваш микроконтроллер не имеет встроенной аппаратной поддержки I2C, можно
запрограммировать её вручную
(это всё равно приходится делать для управляющих устройств)
28. Множество устройств с I2C
энергонезависимая
память
датчик
компас
касания
FM-передатчик
И многие другие
(гироскопы,клавиатуры,
моторы,...) датчик
ЖК-дисплей температуры
и влажности
Изображения со Sparkfun.com, кроме ЖК-экрана с matrixorbital.com
29. Обязательная
реклама BlinkM
Умный светодиод с I2C
Сам делает всю сложную работу по генерации ШИМ
Это можно купить со Sparkfun.com.
30. Нунчак Nintendo Wii
• Стандартный интерфейс I2C
• 3-осевой акселерометр
с 10-битным разрешением
• 2-осевой аналоговый джойстик
с 8-битным А/Ц преобразователем
• 2 кнопки
• $20
Если Вы взглянете на архитектуру Nintendo Wii и периферийные устройства, Вы увидите нехарактерное
для Nintendo следование стандартам. Wii-контроллер - самый яркий пример. Подключение к нему
осуществляется через стандартную шину I2C.
Дистанционные Wii-устройства общаются через Bluetooth HID с приставкой Wii (или Mac, или PC).
Нунчак легко соединить с Arduino, Basic Stamp и с большинством других микроконтроллеров, так как
он использует стандартный интерфейс I2C.
См: http://www.wiili.org/index.php/Wiimote/Extension_Controllers/Nunchuk
и: http://www.windmeadow.com/node/42
и: http://todbot.com/blog/2007/10/25/boarduino-wii-nunchuck-servo/
Обратите внимание на Wii Remote - кроме Bluetooth HID-интерфейса, в нём есть ещё акселерометры,
кнопки, динамик, память, и он является ведущим (master) в шине I2C.
31. Акселерометр?
• Измеряет ускорение
(изменение скорости)
• Как в машине, когда вас
вдавливает в кресло
• Сила притяжения — тоже ускорение
• Поэтому, в том числе, измеряет наклон
горизонтально наклон вправо наклон влево
32. Акселерометр в Нунчаке
Оси акселерометра
Wii-пульта и Нунчака
Я не уверен, что правильно изобразил оси Нунчака..
Изображение осей Wiimote с сайта: http://www.wiili.org/index.php/Wiimote
33. I2C в Arduino
• I2C встроен в чип Arduino
ATmega168
• Используйте библиотеку
“Wire” для доступа к нему
• Аналоговый вход 4 —
сигнал SDA
• Аналоговый вход 5 —
сигнал SCK
34. Библиотека Arduino “Wire”
Отправление данных
Загрузить
библиотеку Wire
Подключиться
к шине I2C
(как ведущий (master))
Начать посылку
Послать данные
Закончить посылку
О том, что делают разные команды, можно прочитать в инструкции/документации к
конкретному устройству.
35. Библиотека Arduino “Wire”
Получение данных
Подключиться
к шине I2C
(как ведущий (master))
Запросить данные
с устройства
Получить данные
Типы возможных взаимодействий зависят от устройства, с
которым Вы общаетесь
У большинства устройств есть несколько “команд”
А о том, что делают разные команды, можно прочитать в инструкции/документации к
конкретному устройству.
36. Подключение Нунчака
Мы можем отрезать разъём и подключиться
непосредственно к проводам
Но вместо этого,
используем эту
маленькую
плату-адаптер
37. Адаптер Wii-Нунчака
Расположение Расположение
выводов Нунчака выводов адаптера
SCK GND
n/c GND SDA
n/c +V SCK
+V SDA
(если смотреть внутрь
разъёма Нунчака)
Внимание! На адаптере есть обозначения, но они неправильные. Так что Вам придётся
положиться на вышеприведённые диаграммы.
40. Пробуем Нунчак
“NunchuckPrint”
Считываем показания
Нунчака каждую
1/10-ю секунды
и выводим на экран
все данные:
- положение джойстика (x,y)
- акселерометр (x,y,z)
- кнопки Z,C
Использует основы библиотеки Arduino, которую я сейчас пишу.
41. Добавляем сервомашинку
“NunchuckServo”
Перемещайте
серву движением
своей руки
Вы - киборг!
Нажимайте кнопку Z,
чтобы мигать светодиодом
на 13-м выводе
Используется разделение на кванты времени, упомянутое ранее.
43. Эмулятор Сегвэя
В основе — тот же код, что и в NunchuckServo.
Подробнее: http://todbot.com/blog/2007/10/25/boarduino-wii-nunchuck-servo/
44. Идём дальше
• Сервомашинки
• Соедините их вместе - получится
рука робота с несколькими
степенями свободы.
• Сделайте “серво-запись”: переводите
движения руки в положения сервы,
и затем проигрывайте эти записи.
• Отлично годится для развлекательной
аниматроники
45. Идём дальше
• Устройства с I2C
• Попробуйте другие устройства
• Подключите их к тем же проводам,
что и Нунчак.
• Кооперативная многозадачность
• Попробуйте сделать терменвокс
из Нунчака и пьезоэлемента
• Можно ли заставить предыдущие
примеры реагировать быстрее?
46. Идём дальше
• Нунчак
• Пространственный датчик движения.
Управляйте чем угодно, как если бы
Вы махали волшебной палочкой!
• Как насчёт джойстика? У нас даже не
было времени с ним поиграть.
• Альтернативное устройство ввода
для Вашего компьютера: управляйте
программами на Processing и т.д.
47. В итоге
Вы изучили множество разных физических деталей
переключатели/кнопки
резистивные датчики
светодиоды
пьезоэлементы
моторы акселерометры сервомашинки
48. В итоге
И вы изучили множество программных деталей
коммуникация через
последовательный порт
широтно-импульсная
модуляция I2C
аналоговый ввод-вывод
управляемый цифровой ввод-вывод
данными код
(data driven частотная
code) модуляция
многозадачность
49. В итоге
Надеемся, Вам понравилось, продолжайте
играть с Arduino!
Не стесняйтесь писать мне,
чтобы пообщаться обо всем этом.
50. КОНЕЦ занятия 4
http://todbot.com/blog/bionicarduino/
Тод Е. Курт
tod@todbot.com
Не стесняйтесь писать мне на почту, если есть вопросы