- PVSM.RU - https://www.pvsm.ru -
Сегодня хочу сделать небольшой обзор как можно использовать Arduino и Processing для сбора статистических данных, а также обрабатывать их с помощью R.
Для демонстрации сбора статистики я с помощью ультразвукового датчика HC-SR04 [1] фиксирую, когда коллеги проходят перед моим рабочим столом. Некоторую полезную информацию как скрестить Arduino, Processing и R я взял отсюда [2].
Вот схема для Arduino Uno
Если кто-то проходит перед столом срабатывает спикер (и лампочка).
Скетч для Arduino находится здесь [3].
Нужно учесть несколько моментов
В этом проекте Processing 2 [5] я буду использовать исключительно для считывания данных с серийного порта (USB) и дописывание их в CSV файл. Вы можете также использовать Processing для визуализации своих данных, но здесь графики я буду рисовать с помощью R.
Среда Processing очень похожа на среду Arduino, но язык Java-подобный. Универсальный скетч для считывания данных с Arduino здесь [6].
Вам нужно сначала запустить скетч, он выведет в консоль список всех доступных сериальных портов, найдите порт, на котором работает Arduino, возьмите его порядковый номер (нумерация начинается с нуля) и пропишите его в константу mySerialPort. Обратите также внимание, куда пишутся данные
String filePath = sketchPath("../../data/data.csv");
Функция sketchPath создаст путь относительно папки в которой находится скетч. Если файл нет он создастся, если уже есть в него будут добавляться строки. Автоматически первым элементом в каждой строке CSV файла будеть timestamp (колличество миллисекунд после 1970-01-01).
Для обработки данных и отображения графиков я использую статистический пакет R [7].
После инсталляции R системы можно войти в интерактивный режим с помощью однобуквенной комманды R. (Чтобы выйти с интеактивного режима введите q().
Я написал небольшой скрипт [8], который
Для запуска всего этого сделайте следующее:
setwd("/home/solvek/projects/electronics/counter/data")
source("../plotchart.R")
Здесь путь к скрипту относительно вышезаданного каталогоа данных
Возможно вы обратили внимание на то, что спикер издает сигнал с тональностью, зависящей от расстояния проходящего от датчика. Таким образом с Arduino можно создать примитивный музыкальный инструмент:
Всех с Новым Годом!
Автор: sergi
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/arduino/78511
Ссылки в тексте:
[1] ультразвукового датчика HC-SR04: http://www.instructables.com/id/Simple-Arduino-and-HC-SR04-Example/?ALLSTEPS
[2] отсюда: http://www.r-bloggers.com/connecting-the-real-world-to-r-with-an-arduino/
[3] здесь: https://github.com/solvek/electronics/blob/master/counter/counter.ino
[4] NewPing: http://playground.arduino.cc/Code/NewPing
[5] Processing 2: https://processing.org/
[6] здесь: https://github.com/solvek/electronics/tree/master/counter/ReadSerial
[7] статистический пакет R: http://www.r-project.org/
[8] небольшой скрипт: https://github.com/solvek/electronics/blob/master/counter/plotchart.R
[9] Источник: http://habrahabr.ru/post/247163/
Нажмите здесь для печати.