openframeworks: подключение внешних датчиков с помощью arduino

22
Разработка интерактивных систем на OpenFrameworks Подключение внешних датчиков с помощью Arduino УрГУ / ИММ весна 2011 лекции и объявления: вопросы отправляйте на адрес www.uralvision.blogspot.com [email protected] http://dkds.ciid.dk/wp-content/uploads/2009/02/2970549282_a49c822cd4.jpg

Upload: denis-perevalov

Post on 27-Jul-2015

1.844 views

Category:

Documents


4 download

DESCRIPTION

Лекция про Arduino + OpenFrameworks

TRANSCRIPT

Разработка интерактивных систем на OpenFrameworks

Подключение внешних датчиков

с помощью Arduino

УрГУ ИММ весна 2011лекции и объявления вопросы отправляйте на адрес wwwuralvisionblogspotcom perevalovdsgmailcom

httpdkdsciiddkwp-contentuploads2009022970549282_a49c822cd4jpg

Виды датчиков

Рассмотрим только некоторые

Кнопки потенциометры слайдеры

httpwwwdjtechtoolscomwp-contentuploads200811nano-slidersjpg

httpwwwitsahitcomrikardRestorationsimagesJP6uncleanpcbpotsandalljpg

ИК датчики движения

Активныестоит излучатель и приемник

acroname Sharp IR (в России пока не нашел) - меряет также расстояние

Autonics BA2M-DDT - по типу реле выдает бинарный сигнал если объект ближе некоторого расстояния

Проблемы - если объект черный то могут не сработать так как они рассчитаны на то что объект отражает свет Показатель расстояния зависит от цвета объекта

ПассивныеИспользутся в охранных системахОснованы на измерении (теплового) ИК-излучения от объектов

Ультразвуковой датчик расстояния - сонар Maxbotix LV-MAXSONAR-EZ1 Компактный недорогой используется энтузиастами-любителями в частности для экспериментальной робототехники Проблемы для применения в интерактивных системах - недостаточно точный и не будет работать за стеклом

Принцип работы - посылает ультразвуковой сигнал и меряет время через которое приходит отраженный сигнал

Подключение датчиков с помощью Arduino

Общее описаниеArduino mdash аппаратная вычислительная платформа основными компонентами которой являются простая плата вводавывода и среда разработки на языке ProcessingWiring Arduino может работать как автономная микропроцессорная плата Также может подключаться через USB к компьютеру и интегрироваться с программным обеспечением выполняемым на компьютере Например Flash Processing MaxMSP Pure Data SuperCollider OpenFrameworks АппаратураПлата Arduino состоит из микроконтроллера Atmel AVR а также элементов обвязки для программирования и интеграции с другими схемами Программирование Для Arduino создана интегрированная среда разработки на Java включающая в себя редактор кода компилятор и модуль передачи прошивки в плату Запускается сразу без установки

Freeduino - клон Arduino

Несмотря на то что документация на аппаратную часть и программный код опубликованы под лицензией laquocopyleftraquo разработчики выразили желание чтобы название laquoArduinoraquo (и производные от него) было торговой маркой для официального продукта и не использовалось для производных работ без разрешения В официальном документе об использовании названия Arduino подчеркивается что проект открыт для всех желающих работать над официальным продуктом

Результатом защиты названия стало ответвление от версии платы Arduino Diecimila сделанное группой пользователей что привело к выпуску эквивалентной платы названной Freeduino Название Freeduino не является торговой маркой и может использоваться в любых целях

Freeduino 2009 - полный аналог Arduino Duemilanove

Freeduino 2009

Микроконтроллер ATmega168 (ATmega328) Цифровые порты вводавывода 14 портов (из них 6 с ШИМ-сигналом) Аналоговые порты ввода 6 портов ППЗУ (Flash Memory) 16 K (32 К) из них 2 К используются загрузчиком ОЗУ (SRAM) 1 Кбайт (2 Кбайт) ПЗУ (EEPROM) 512 байт (1024 байт) Тактовая частота 16 МГц Интерфейс с ПК USB Питание от USB либо от внешнего источника выбор автоматический

httpwwwfreeduinoru

Программа для мигания встроенным светодиодом Запустить Arduinoexe затем в меню выбрать File - Examples - Digital - Blink int ledPin = 13 LED connected to digital pin 13 - это также выводит и на встрламп The setup() method runs once when the sketch startsvoid setup() initialize the digital pin as an output pinMode(ledPin OUTPUT)

the loop() method runs over and over again as long as the Arduino has powervoid loop() digitalWrite(ledPin HIGH) set the LED on delay(1000) wait for a second digitalWrite(ledPin LOW) set the LED off delay(1000) wait for a second

Программа для мигания внешним светодиодом Подключим светодиод к цифровому выходу 12 и AREF (он подключен к питанию) (С точки зрения радиоэлектроники не очень корректно - надо еще резистор но для примера нормально) В предыдущей программе изменить строкуint ledPin = 12

Тут Arduino работает как независимое устройство Можно выключить USB-шнур и подключить внешний источник питания Но нас больше интересует как ввести данные для использования в OpenFrameworks Займемся этим

Программа для мигания внешним светодиодом

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Виды датчиков

Рассмотрим только некоторые

Кнопки потенциометры слайдеры

httpwwwdjtechtoolscomwp-contentuploads200811nano-slidersjpg

httpwwwitsahitcomrikardRestorationsimagesJP6uncleanpcbpotsandalljpg

ИК датчики движения

Активныестоит излучатель и приемник

acroname Sharp IR (в России пока не нашел) - меряет также расстояние

Autonics BA2M-DDT - по типу реле выдает бинарный сигнал если объект ближе некоторого расстояния

Проблемы - если объект черный то могут не сработать так как они рассчитаны на то что объект отражает свет Показатель расстояния зависит от цвета объекта

ПассивныеИспользутся в охранных системахОснованы на измерении (теплового) ИК-излучения от объектов

Ультразвуковой датчик расстояния - сонар Maxbotix LV-MAXSONAR-EZ1 Компактный недорогой используется энтузиастами-любителями в частности для экспериментальной робототехники Проблемы для применения в интерактивных системах - недостаточно точный и не будет работать за стеклом

Принцип работы - посылает ультразвуковой сигнал и меряет время через которое приходит отраженный сигнал

Подключение датчиков с помощью Arduino

Общее описаниеArduino mdash аппаратная вычислительная платформа основными компонентами которой являются простая плата вводавывода и среда разработки на языке ProcessingWiring Arduino может работать как автономная микропроцессорная плата Также может подключаться через USB к компьютеру и интегрироваться с программным обеспечением выполняемым на компьютере Например Flash Processing MaxMSP Pure Data SuperCollider OpenFrameworks АппаратураПлата Arduino состоит из микроконтроллера Atmel AVR а также элементов обвязки для программирования и интеграции с другими схемами Программирование Для Arduino создана интегрированная среда разработки на Java включающая в себя редактор кода компилятор и модуль передачи прошивки в плату Запускается сразу без установки

Freeduino - клон Arduino

Несмотря на то что документация на аппаратную часть и программный код опубликованы под лицензией laquocopyleftraquo разработчики выразили желание чтобы название laquoArduinoraquo (и производные от него) было торговой маркой для официального продукта и не использовалось для производных работ без разрешения В официальном документе об использовании названия Arduino подчеркивается что проект открыт для всех желающих работать над официальным продуктом

Результатом защиты названия стало ответвление от версии платы Arduino Diecimila сделанное группой пользователей что привело к выпуску эквивалентной платы названной Freeduino Название Freeduino не является торговой маркой и может использоваться в любых целях

Freeduino 2009 - полный аналог Arduino Duemilanove

Freeduino 2009

Микроконтроллер ATmega168 (ATmega328) Цифровые порты вводавывода 14 портов (из них 6 с ШИМ-сигналом) Аналоговые порты ввода 6 портов ППЗУ (Flash Memory) 16 K (32 К) из них 2 К используются загрузчиком ОЗУ (SRAM) 1 Кбайт (2 Кбайт) ПЗУ (EEPROM) 512 байт (1024 байт) Тактовая частота 16 МГц Интерфейс с ПК USB Питание от USB либо от внешнего источника выбор автоматический

httpwwwfreeduinoru

Программа для мигания встроенным светодиодом Запустить Arduinoexe затем в меню выбрать File - Examples - Digital - Blink int ledPin = 13 LED connected to digital pin 13 - это также выводит и на встрламп The setup() method runs once when the sketch startsvoid setup() initialize the digital pin as an output pinMode(ledPin OUTPUT)

the loop() method runs over and over again as long as the Arduino has powervoid loop() digitalWrite(ledPin HIGH) set the LED on delay(1000) wait for a second digitalWrite(ledPin LOW) set the LED off delay(1000) wait for a second

Программа для мигания внешним светодиодом Подключим светодиод к цифровому выходу 12 и AREF (он подключен к питанию) (С точки зрения радиоэлектроники не очень корректно - надо еще резистор но для примера нормально) В предыдущей программе изменить строкуint ledPin = 12

Тут Arduino работает как независимое устройство Можно выключить USB-шнур и подключить внешний источник питания Но нас больше интересует как ввести данные для использования в OpenFrameworks Займемся этим

Программа для мигания внешним светодиодом

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Кнопки потенциометры слайдеры

httpwwwdjtechtoolscomwp-contentuploads200811nano-slidersjpg

httpwwwitsahitcomrikardRestorationsimagesJP6uncleanpcbpotsandalljpg

ИК датчики движения

Активныестоит излучатель и приемник

acroname Sharp IR (в России пока не нашел) - меряет также расстояние

Autonics BA2M-DDT - по типу реле выдает бинарный сигнал если объект ближе некоторого расстояния

Проблемы - если объект черный то могут не сработать так как они рассчитаны на то что объект отражает свет Показатель расстояния зависит от цвета объекта

ПассивныеИспользутся в охранных системахОснованы на измерении (теплового) ИК-излучения от объектов

Ультразвуковой датчик расстояния - сонар Maxbotix LV-MAXSONAR-EZ1 Компактный недорогой используется энтузиастами-любителями в частности для экспериментальной робототехники Проблемы для применения в интерактивных системах - недостаточно точный и не будет работать за стеклом

Принцип работы - посылает ультразвуковой сигнал и меряет время через которое приходит отраженный сигнал

Подключение датчиков с помощью Arduino

Общее описаниеArduino mdash аппаратная вычислительная платформа основными компонентами которой являются простая плата вводавывода и среда разработки на языке ProcessingWiring Arduino может работать как автономная микропроцессорная плата Также может подключаться через USB к компьютеру и интегрироваться с программным обеспечением выполняемым на компьютере Например Flash Processing MaxMSP Pure Data SuperCollider OpenFrameworks АппаратураПлата Arduino состоит из микроконтроллера Atmel AVR а также элементов обвязки для программирования и интеграции с другими схемами Программирование Для Arduino создана интегрированная среда разработки на Java включающая в себя редактор кода компилятор и модуль передачи прошивки в плату Запускается сразу без установки

Freeduino - клон Arduino

Несмотря на то что документация на аппаратную часть и программный код опубликованы под лицензией laquocopyleftraquo разработчики выразили желание чтобы название laquoArduinoraquo (и производные от него) было торговой маркой для официального продукта и не использовалось для производных работ без разрешения В официальном документе об использовании названия Arduino подчеркивается что проект открыт для всех желающих работать над официальным продуктом

Результатом защиты названия стало ответвление от версии платы Arduino Diecimila сделанное группой пользователей что привело к выпуску эквивалентной платы названной Freeduino Название Freeduino не является торговой маркой и может использоваться в любых целях

Freeduino 2009 - полный аналог Arduino Duemilanove

Freeduino 2009

Микроконтроллер ATmega168 (ATmega328) Цифровые порты вводавывода 14 портов (из них 6 с ШИМ-сигналом) Аналоговые порты ввода 6 портов ППЗУ (Flash Memory) 16 K (32 К) из них 2 К используются загрузчиком ОЗУ (SRAM) 1 Кбайт (2 Кбайт) ПЗУ (EEPROM) 512 байт (1024 байт) Тактовая частота 16 МГц Интерфейс с ПК USB Питание от USB либо от внешнего источника выбор автоматический

httpwwwfreeduinoru

Программа для мигания встроенным светодиодом Запустить Arduinoexe затем в меню выбрать File - Examples - Digital - Blink int ledPin = 13 LED connected to digital pin 13 - это также выводит и на встрламп The setup() method runs once when the sketch startsvoid setup() initialize the digital pin as an output pinMode(ledPin OUTPUT)

the loop() method runs over and over again as long as the Arduino has powervoid loop() digitalWrite(ledPin HIGH) set the LED on delay(1000) wait for a second digitalWrite(ledPin LOW) set the LED off delay(1000) wait for a second

Программа для мигания внешним светодиодом Подключим светодиод к цифровому выходу 12 и AREF (он подключен к питанию) (С точки зрения радиоэлектроники не очень корректно - надо еще резистор но для примера нормально) В предыдущей программе изменить строкуint ledPin = 12

Тут Arduino работает как независимое устройство Можно выключить USB-шнур и подключить внешний источник питания Но нас больше интересует как ввести данные для использования в OpenFrameworks Займемся этим

Программа для мигания внешним светодиодом

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

ИК датчики движения

Активныестоит излучатель и приемник

acroname Sharp IR (в России пока не нашел) - меряет также расстояние

Autonics BA2M-DDT - по типу реле выдает бинарный сигнал если объект ближе некоторого расстояния

Проблемы - если объект черный то могут не сработать так как они рассчитаны на то что объект отражает свет Показатель расстояния зависит от цвета объекта

ПассивныеИспользутся в охранных системахОснованы на измерении (теплового) ИК-излучения от объектов

Ультразвуковой датчик расстояния - сонар Maxbotix LV-MAXSONAR-EZ1 Компактный недорогой используется энтузиастами-любителями в частности для экспериментальной робототехники Проблемы для применения в интерактивных системах - недостаточно точный и не будет работать за стеклом

Принцип работы - посылает ультразвуковой сигнал и меряет время через которое приходит отраженный сигнал

Подключение датчиков с помощью Arduino

Общее описаниеArduino mdash аппаратная вычислительная платформа основными компонентами которой являются простая плата вводавывода и среда разработки на языке ProcessingWiring Arduino может работать как автономная микропроцессорная плата Также может подключаться через USB к компьютеру и интегрироваться с программным обеспечением выполняемым на компьютере Например Flash Processing MaxMSP Pure Data SuperCollider OpenFrameworks АппаратураПлата Arduino состоит из микроконтроллера Atmel AVR а также элементов обвязки для программирования и интеграции с другими схемами Программирование Для Arduino создана интегрированная среда разработки на Java включающая в себя редактор кода компилятор и модуль передачи прошивки в плату Запускается сразу без установки

Freeduino - клон Arduino

Несмотря на то что документация на аппаратную часть и программный код опубликованы под лицензией laquocopyleftraquo разработчики выразили желание чтобы название laquoArduinoraquo (и производные от него) было торговой маркой для официального продукта и не использовалось для производных работ без разрешения В официальном документе об использовании названия Arduino подчеркивается что проект открыт для всех желающих работать над официальным продуктом

Результатом защиты названия стало ответвление от версии платы Arduino Diecimila сделанное группой пользователей что привело к выпуску эквивалентной платы названной Freeduino Название Freeduino не является торговой маркой и может использоваться в любых целях

Freeduino 2009 - полный аналог Arduino Duemilanove

Freeduino 2009

Микроконтроллер ATmega168 (ATmega328) Цифровые порты вводавывода 14 портов (из них 6 с ШИМ-сигналом) Аналоговые порты ввода 6 портов ППЗУ (Flash Memory) 16 K (32 К) из них 2 К используются загрузчиком ОЗУ (SRAM) 1 Кбайт (2 Кбайт) ПЗУ (EEPROM) 512 байт (1024 байт) Тактовая частота 16 МГц Интерфейс с ПК USB Питание от USB либо от внешнего источника выбор автоматический

httpwwwfreeduinoru

Программа для мигания встроенным светодиодом Запустить Arduinoexe затем в меню выбрать File - Examples - Digital - Blink int ledPin = 13 LED connected to digital pin 13 - это также выводит и на встрламп The setup() method runs once when the sketch startsvoid setup() initialize the digital pin as an output pinMode(ledPin OUTPUT)

the loop() method runs over and over again as long as the Arduino has powervoid loop() digitalWrite(ledPin HIGH) set the LED on delay(1000) wait for a second digitalWrite(ledPin LOW) set the LED off delay(1000) wait for a second

Программа для мигания внешним светодиодом Подключим светодиод к цифровому выходу 12 и AREF (он подключен к питанию) (С точки зрения радиоэлектроники не очень корректно - надо еще резистор но для примера нормально) В предыдущей программе изменить строкуint ledPin = 12

Тут Arduino работает как независимое устройство Можно выключить USB-шнур и подключить внешний источник питания Но нас больше интересует как ввести данные для использования в OpenFrameworks Займемся этим

Программа для мигания внешним светодиодом

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Ультразвуковой датчик расстояния - сонар Maxbotix LV-MAXSONAR-EZ1 Компактный недорогой используется энтузиастами-любителями в частности для экспериментальной робототехники Проблемы для применения в интерактивных системах - недостаточно точный и не будет работать за стеклом

Принцип работы - посылает ультразвуковой сигнал и меряет время через которое приходит отраженный сигнал

Подключение датчиков с помощью Arduino

Общее описаниеArduino mdash аппаратная вычислительная платформа основными компонентами которой являются простая плата вводавывода и среда разработки на языке ProcessingWiring Arduino может работать как автономная микропроцессорная плата Также может подключаться через USB к компьютеру и интегрироваться с программным обеспечением выполняемым на компьютере Например Flash Processing MaxMSP Pure Data SuperCollider OpenFrameworks АппаратураПлата Arduino состоит из микроконтроллера Atmel AVR а также элементов обвязки для программирования и интеграции с другими схемами Программирование Для Arduino создана интегрированная среда разработки на Java включающая в себя редактор кода компилятор и модуль передачи прошивки в плату Запускается сразу без установки

Freeduino - клон Arduino

Несмотря на то что документация на аппаратную часть и программный код опубликованы под лицензией laquocopyleftraquo разработчики выразили желание чтобы название laquoArduinoraquo (и производные от него) было торговой маркой для официального продукта и не использовалось для производных работ без разрешения В официальном документе об использовании названия Arduino подчеркивается что проект открыт для всех желающих работать над официальным продуктом

Результатом защиты названия стало ответвление от версии платы Arduino Diecimila сделанное группой пользователей что привело к выпуску эквивалентной платы названной Freeduino Название Freeduino не является торговой маркой и может использоваться в любых целях

Freeduino 2009 - полный аналог Arduino Duemilanove

Freeduino 2009

Микроконтроллер ATmega168 (ATmega328) Цифровые порты вводавывода 14 портов (из них 6 с ШИМ-сигналом) Аналоговые порты ввода 6 портов ППЗУ (Flash Memory) 16 K (32 К) из них 2 К используются загрузчиком ОЗУ (SRAM) 1 Кбайт (2 Кбайт) ПЗУ (EEPROM) 512 байт (1024 байт) Тактовая частота 16 МГц Интерфейс с ПК USB Питание от USB либо от внешнего источника выбор автоматический

httpwwwfreeduinoru

Программа для мигания встроенным светодиодом Запустить Arduinoexe затем в меню выбрать File - Examples - Digital - Blink int ledPin = 13 LED connected to digital pin 13 - это также выводит и на встрламп The setup() method runs once when the sketch startsvoid setup() initialize the digital pin as an output pinMode(ledPin OUTPUT)

the loop() method runs over and over again as long as the Arduino has powervoid loop() digitalWrite(ledPin HIGH) set the LED on delay(1000) wait for a second digitalWrite(ledPin LOW) set the LED off delay(1000) wait for a second

Программа для мигания внешним светодиодом Подключим светодиод к цифровому выходу 12 и AREF (он подключен к питанию) (С точки зрения радиоэлектроники не очень корректно - надо еще резистор но для примера нормально) В предыдущей программе изменить строкуint ledPin = 12

Тут Arduino работает как независимое устройство Можно выключить USB-шнур и подключить внешний источник питания Но нас больше интересует как ввести данные для использования в OpenFrameworks Займемся этим

Программа для мигания внешним светодиодом

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Подключение датчиков с помощью Arduino

Общее описаниеArduino mdash аппаратная вычислительная платформа основными компонентами которой являются простая плата вводавывода и среда разработки на языке ProcessingWiring Arduino может работать как автономная микропроцессорная плата Также может подключаться через USB к компьютеру и интегрироваться с программным обеспечением выполняемым на компьютере Например Flash Processing MaxMSP Pure Data SuperCollider OpenFrameworks АппаратураПлата Arduino состоит из микроконтроллера Atmel AVR а также элементов обвязки для программирования и интеграции с другими схемами Программирование Для Arduino создана интегрированная среда разработки на Java включающая в себя редактор кода компилятор и модуль передачи прошивки в плату Запускается сразу без установки

Freeduino - клон Arduino

Несмотря на то что документация на аппаратную часть и программный код опубликованы под лицензией laquocopyleftraquo разработчики выразили желание чтобы название laquoArduinoraquo (и производные от него) было торговой маркой для официального продукта и не использовалось для производных работ без разрешения В официальном документе об использовании названия Arduino подчеркивается что проект открыт для всех желающих работать над официальным продуктом

Результатом защиты названия стало ответвление от версии платы Arduino Diecimila сделанное группой пользователей что привело к выпуску эквивалентной платы названной Freeduino Название Freeduino не является торговой маркой и может использоваться в любых целях

Freeduino 2009 - полный аналог Arduino Duemilanove

Freeduino 2009

Микроконтроллер ATmega168 (ATmega328) Цифровые порты вводавывода 14 портов (из них 6 с ШИМ-сигналом) Аналоговые порты ввода 6 портов ППЗУ (Flash Memory) 16 K (32 К) из них 2 К используются загрузчиком ОЗУ (SRAM) 1 Кбайт (2 Кбайт) ПЗУ (EEPROM) 512 байт (1024 байт) Тактовая частота 16 МГц Интерфейс с ПК USB Питание от USB либо от внешнего источника выбор автоматический

httpwwwfreeduinoru

Программа для мигания встроенным светодиодом Запустить Arduinoexe затем в меню выбрать File - Examples - Digital - Blink int ledPin = 13 LED connected to digital pin 13 - это также выводит и на встрламп The setup() method runs once when the sketch startsvoid setup() initialize the digital pin as an output pinMode(ledPin OUTPUT)

the loop() method runs over and over again as long as the Arduino has powervoid loop() digitalWrite(ledPin HIGH) set the LED on delay(1000) wait for a second digitalWrite(ledPin LOW) set the LED off delay(1000) wait for a second

Программа для мигания внешним светодиодом Подключим светодиод к цифровому выходу 12 и AREF (он подключен к питанию) (С точки зрения радиоэлектроники не очень корректно - надо еще резистор но для примера нормально) В предыдущей программе изменить строкуint ledPin = 12

Тут Arduino работает как независимое устройство Можно выключить USB-шнур и подключить внешний источник питания Но нас больше интересует как ввести данные для использования в OpenFrameworks Займемся этим

Программа для мигания внешним светодиодом

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Общее описаниеArduino mdash аппаратная вычислительная платформа основными компонентами которой являются простая плата вводавывода и среда разработки на языке ProcessingWiring Arduino может работать как автономная микропроцессорная плата Также может подключаться через USB к компьютеру и интегрироваться с программным обеспечением выполняемым на компьютере Например Flash Processing MaxMSP Pure Data SuperCollider OpenFrameworks АппаратураПлата Arduino состоит из микроконтроллера Atmel AVR а также элементов обвязки для программирования и интеграции с другими схемами Программирование Для Arduino создана интегрированная среда разработки на Java включающая в себя редактор кода компилятор и модуль передачи прошивки в плату Запускается сразу без установки

Freeduino - клон Arduino

Несмотря на то что документация на аппаратную часть и программный код опубликованы под лицензией laquocopyleftraquo разработчики выразили желание чтобы название laquoArduinoraquo (и производные от него) было торговой маркой для официального продукта и не использовалось для производных работ без разрешения В официальном документе об использовании названия Arduino подчеркивается что проект открыт для всех желающих работать над официальным продуктом

Результатом защиты названия стало ответвление от версии платы Arduino Diecimila сделанное группой пользователей что привело к выпуску эквивалентной платы названной Freeduino Название Freeduino не является торговой маркой и может использоваться в любых целях

Freeduino 2009 - полный аналог Arduino Duemilanove

Freeduino 2009

Микроконтроллер ATmega168 (ATmega328) Цифровые порты вводавывода 14 портов (из них 6 с ШИМ-сигналом) Аналоговые порты ввода 6 портов ППЗУ (Flash Memory) 16 K (32 К) из них 2 К используются загрузчиком ОЗУ (SRAM) 1 Кбайт (2 Кбайт) ПЗУ (EEPROM) 512 байт (1024 байт) Тактовая частота 16 МГц Интерфейс с ПК USB Питание от USB либо от внешнего источника выбор автоматический

httpwwwfreeduinoru

Программа для мигания встроенным светодиодом Запустить Arduinoexe затем в меню выбрать File - Examples - Digital - Blink int ledPin = 13 LED connected to digital pin 13 - это также выводит и на встрламп The setup() method runs once when the sketch startsvoid setup() initialize the digital pin as an output pinMode(ledPin OUTPUT)

the loop() method runs over and over again as long as the Arduino has powervoid loop() digitalWrite(ledPin HIGH) set the LED on delay(1000) wait for a second digitalWrite(ledPin LOW) set the LED off delay(1000) wait for a second

Программа для мигания внешним светодиодом Подключим светодиод к цифровому выходу 12 и AREF (он подключен к питанию) (С точки зрения радиоэлектроники не очень корректно - надо еще резистор но для примера нормально) В предыдущей программе изменить строкуint ledPin = 12

Тут Arduino работает как независимое устройство Можно выключить USB-шнур и подключить внешний источник питания Но нас больше интересует как ввести данные для использования в OpenFrameworks Займемся этим

Программа для мигания внешним светодиодом

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Freeduino - клон Arduino

Несмотря на то что документация на аппаратную часть и программный код опубликованы под лицензией laquocopyleftraquo разработчики выразили желание чтобы название laquoArduinoraquo (и производные от него) было торговой маркой для официального продукта и не использовалось для производных работ без разрешения В официальном документе об использовании названия Arduino подчеркивается что проект открыт для всех желающих работать над официальным продуктом

Результатом защиты названия стало ответвление от версии платы Arduino Diecimila сделанное группой пользователей что привело к выпуску эквивалентной платы названной Freeduino Название Freeduino не является торговой маркой и может использоваться в любых целях

Freeduino 2009 - полный аналог Arduino Duemilanove

Freeduino 2009

Микроконтроллер ATmega168 (ATmega328) Цифровые порты вводавывода 14 портов (из них 6 с ШИМ-сигналом) Аналоговые порты ввода 6 портов ППЗУ (Flash Memory) 16 K (32 К) из них 2 К используются загрузчиком ОЗУ (SRAM) 1 Кбайт (2 Кбайт) ПЗУ (EEPROM) 512 байт (1024 байт) Тактовая частота 16 МГц Интерфейс с ПК USB Питание от USB либо от внешнего источника выбор автоматический

httpwwwfreeduinoru

Программа для мигания встроенным светодиодом Запустить Arduinoexe затем в меню выбрать File - Examples - Digital - Blink int ledPin = 13 LED connected to digital pin 13 - это также выводит и на встрламп The setup() method runs once when the sketch startsvoid setup() initialize the digital pin as an output pinMode(ledPin OUTPUT)

the loop() method runs over and over again as long as the Arduino has powervoid loop() digitalWrite(ledPin HIGH) set the LED on delay(1000) wait for a second digitalWrite(ledPin LOW) set the LED off delay(1000) wait for a second

Программа для мигания внешним светодиодом Подключим светодиод к цифровому выходу 12 и AREF (он подключен к питанию) (С точки зрения радиоэлектроники не очень корректно - надо еще резистор но для примера нормально) В предыдущей программе изменить строкуint ledPin = 12

Тут Arduino работает как независимое устройство Можно выключить USB-шнур и подключить внешний источник питания Но нас больше интересует как ввести данные для использования в OpenFrameworks Займемся этим

Программа для мигания внешним светодиодом

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Freeduino 2009

Микроконтроллер ATmega168 (ATmega328) Цифровые порты вводавывода 14 портов (из них 6 с ШИМ-сигналом) Аналоговые порты ввода 6 портов ППЗУ (Flash Memory) 16 K (32 К) из них 2 К используются загрузчиком ОЗУ (SRAM) 1 Кбайт (2 Кбайт) ПЗУ (EEPROM) 512 байт (1024 байт) Тактовая частота 16 МГц Интерфейс с ПК USB Питание от USB либо от внешнего источника выбор автоматический

httpwwwfreeduinoru

Программа для мигания встроенным светодиодом Запустить Arduinoexe затем в меню выбрать File - Examples - Digital - Blink int ledPin = 13 LED connected to digital pin 13 - это также выводит и на встрламп The setup() method runs once when the sketch startsvoid setup() initialize the digital pin as an output pinMode(ledPin OUTPUT)

the loop() method runs over and over again as long as the Arduino has powervoid loop() digitalWrite(ledPin HIGH) set the LED on delay(1000) wait for a second digitalWrite(ledPin LOW) set the LED off delay(1000) wait for a second

Программа для мигания внешним светодиодом Подключим светодиод к цифровому выходу 12 и AREF (он подключен к питанию) (С точки зрения радиоэлектроники не очень корректно - надо еще резистор но для примера нормально) В предыдущей программе изменить строкуint ledPin = 12

Тут Arduino работает как независимое устройство Можно выключить USB-шнур и подключить внешний источник питания Но нас больше интересует как ввести данные для использования в OpenFrameworks Займемся этим

Программа для мигания внешним светодиодом

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Программа для мигания встроенным светодиодом Запустить Arduinoexe затем в меню выбрать File - Examples - Digital - Blink int ledPin = 13 LED connected to digital pin 13 - это также выводит и на встрламп The setup() method runs once when the sketch startsvoid setup() initialize the digital pin as an output pinMode(ledPin OUTPUT)

the loop() method runs over and over again as long as the Arduino has powervoid loop() digitalWrite(ledPin HIGH) set the LED on delay(1000) wait for a second digitalWrite(ledPin LOW) set the LED off delay(1000) wait for a second

Программа для мигания внешним светодиодом Подключим светодиод к цифровому выходу 12 и AREF (он подключен к питанию) (С точки зрения радиоэлектроники не очень корректно - надо еще резистор но для примера нормально) В предыдущей программе изменить строкуint ledPin = 12

Тут Arduino работает как независимое устройство Можно выключить USB-шнур и подключить внешний источник питания Но нас больше интересует как ввести данные для использования в OpenFrameworks Займемся этим

Программа для мигания внешним светодиодом

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Программа для мигания внешним светодиодом Подключим светодиод к цифровому выходу 12 и AREF (он подключен к питанию) (С точки зрения радиоэлектроники не очень корректно - надо еще резистор но для примера нормально) В предыдущей программе изменить строкуint ledPin = 12

Тут Arduino работает как независимое устройство Можно выключить USB-шнур и подключить внешний источник питания Но нас больше интересует как ввести данные для использования в OpenFrameworks Займемся этим

Программа для мигания внешним светодиодом

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Тут Arduino работает как независимое устройство Можно выключить USB-шнур и подключить внешний источник питания Но нас больше интересует как ввести данные для использования в OpenFrameworks Займемся этим

Программа для мигания внешним светодиодом

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Как передать данные от Arduino в PC - Serial PortArduino обменивается с PC данными через последовательный COM-порт Мы подключили через USB - в этом случае COM-порт эмулируется Подключим к Arduino сонар и будем просто печатать в порт приходящие значения В среде программирования для Arduino есть возможность смотреть данные с порта а также посылать туда значения

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Подключение сонара к аналоговому входу Arduino3 контакта - питание земля и аналоговый вход 0

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Подключение сонара к аналоговому входу Arduinoconst int analogInPin = 0 Analog input pin that the potentiometer is attached toint sensorValue = 0 value read from the port

void setup() initialize serial communications at 9600 bps Serialbegin(9600)

void loop() read the analog in value sensorValue = analogRead(analogInPin) print the results to the serial monitor Serialprint(sensor = ) Serialprintln(sensorValue) wait 10 milliseconds before the next loop for the analog-to-digital converter to settle after the last reading delay(10)

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Подключение сонара к аналоговому входу ArduinoСкомпилировав и закачав эту программу в устройствонужно в Arduino IDE нажать кнопку Serial Monitorи появится список считанных значенийsensor = 50sensor = 50sensor = 143sensor = 143sensor = 140sensor = 140sensor = 50sensor = 48

ПРИМЕЧАНИЕ Повышение точности измерений сонара Если в Setup() добавить analogReference(INTERNAL) то будет измерение точнее - так как сравнивать не с 5 В а 11В (другие значения - DEFAULT = 5В EXTERNAL - внешний сравнение с AREF)

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Протокол Firmata Мы рассмотрели пример как с помощью класса ofSerial можно работать с последовательным портом Это позволяет обмениваться данными с Arduino Обычно это делается синхронно - посылаем в Arduino управляющий сигнал (например произвольный 1 байт) а в ответ ждем пачку данных

Неудобство для каждой новой конфигурации датчиков нужно перепрограммировать и отлаживать Arduino и процедуру обмена данными в OpenFrameworks

Решение использовать протокол Firmata специально созданный для упрощения операций вводавывода данныхА на стороне Arduino программа она не меняется все настройки делаются через OpenFrameworks

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Протокол FirmataFirmata is a generic protocol for communicating with microcontrollers from software on a host computer It is intended to work with any host computer software package Right now there is a matching object in a number of languages It is easy to add objects for other software to use this protocol Basically this firmware establishes a protocol for talking to the Arduino from the host software The aim is to allow people to completely control the Arduino from software on the host computer httpfirmataorg Класс ofArduino в OpenFrameworks использует Firmata и имеет простые команды для подключения к Arduino и ввода-вывода данных с портов Arduino например

int getAnalog(int pin) - считать данные с аналогового входа номер pinint getDigital(int pin) - считать данные с цифрового входа номер pin Чтобы этим пользоваться надо поставить в Arduino программу работы с Firmata см далее

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Пример обмена данными OpenFrameworks - Firmata - Arduino1 На стороне Arduino закачать программу Firmata - StandartFirmata2 На стороне OpenFrameworks запустить пример FirmataExample предварительно указав в нем в строке используемый порт (это могут быть COM4 COM6 COM7 и тд) ardconnect(COM6 57600)

(3 Если работа идет с тем же сонаром - стоит в Arduino - Setup() добавить analogReference(INTERNAL) для повышения точности измерений см примечание выше)

Как узнать порт - программа пишет при старте в отладочном окне список имеющихся портов Если же список портов на экран не вывелся то при включенном устройстве можно посмотреть его в Диспетчере Устройств

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Пример обмена данными OpenFrameworks - Firmata - Arduino

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Проект с увеличивающимся квадратомЦель исследование точности и устойчивости измерений сонара На основе примера firmataExample сделать проект в котором рисуется квадрат размеры которого зависят от измеренного расстояния

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001

Проект управление генератором звука с помощью сонараИдея использовать значения сонара для изменения высоты генерируемого звука 1 Генерацию звука рекомендуется делать на основе примера audioOutputExample

2 Данные приходящие с сонара стоит сглаживатьПростейший фильтрfiltered = f value + (1-f) filtered

где filtered - сглаженное значение value - новое значение f - коэффициент фильтра от 0 до 1 например 02 или 001