Raspberry Pi с датчиками Vernier и Wolfram Language
Оценка пользователей: / 4
ПлохоОтлично 
Raspberry Pi - Vernier- Wolfram Сегодня мы рассмотрим, как организовать взаимодействие внешних датчиков от Vernier Software&Technology с Pi, используя язык Wolfram.
Даже при том, что язык Wolfram на Raspberry Pi появилась всего несколько месяцев назад, автор статьи Боб LeSuer уже опытный пользователь. Он адъюнкт-профессор химии в государственном университете Чикаго и, естественно, большой поклонник включения технологий в свои исследования.
Ключ
В своих лабораторных классах Боб LeSuer использует инструменты компании Vernier, которая создает широкий спектр датчиков для сбора данных, от акселерометров и барометров с датчиками СО2 и рН. Но, что особенно задело нашу заинтересованность, это то, что Боб придумал идею подключить эти датчики к Raspberry Pi, используя язык Wolfram!
Поэтому, конечно, мы должны этим поделиться с Вами.
Оборудование, которое Вам понадобится:
Вообще, датчики имеют собственный разъем, однако Вы можете купить адаптер под названием Go!Link для подключения датчиков через порт USB:
Raspberry Pi - Vernier- Wolfram -1
Разработчики из Vernier обеспечили открытый SDK, который позволяет конечным пользователям включать датчики Vernier в любое количество приложений.
После установки SDK (в котором необходимо выполнить несколько тонких настроек) и обучению немного больше программированию на C, чем автор знал до этого, он смог получить ряд датчиков, функционирующих на RPi.
Установка SDK
Во-первых, загрузите с Vernier Software Development Kit для Linux.
Самой трудной частью этого проекта является компиляция библиотеки GoIO, которая, к сожалению, не работает на RPi сразу. Следуйте инструкциям по распаковке сжатого файла, но перед запуском скрипта нужно сделать две изменения.
Нужно добавить несколько строк кода, чтобы заставить его работать на RPi.
В config.in добавить строку:
AC_CONFIG_MACRO_DIR([m4])
И одну строку добавить в Makefile.am:
ACLOCAL_AMFLAGS= -I m4
После того, как сделаете эти изменения, можно запускать компиляцию и будьте терпеливы, потому что компиляция на RPi очень медленная.
Построение библиотеки MathLink
SDK поставляется с примером программы, которуя можно использовать для чтения с датчика. Автор использует большую часть этой программы, чтобы сделать программу с поддержкой MathLink, которая содержит три функции: getLibVersion, getDeviceInfo и getSimpleMeasurement. Первая предоставляет Вам версию SDK (например, 2,53). Вторая предоставляет название датчика, подключенного в данный момент к соединению Go!Link и включает в себя единицы измерения значения, которые будут сообщены getSimpleMeasurement.
Если заинтересованы в том, чтобы прямо сейчас проверить, что система работает, то настройте SimpleMeasurement читать от датчика в течение 1 секунды и сообщать среднее значение.
Были использованы код C и код шаблона MathLink для создания функций getLibVersion, getDeviceInfo и getSimpleMeasurements, которыми можно воспользоваться в Mathematica. Загрузите два файла и компилируйте их с помощью следующей команды:
mcc -o vernier vernier.c vernier.tm -I/usr/include/GoIO -lGoIO
Убедитесь, что библиотека GoIO привязана и каталог /usr/include/GoIO входит в путь поиска.
Простой интерфейс Mathematica
А теперь, переход на язык Wolfram, и Вы сможете динамически обновлять показания сенсора с помощью следующего кода:
Raspberry Pi - Vernier- Wolfram -2
Raspberry Pi - Vernier- Wolfram-2a
Обратите внимание, что код также постоянно обновляется с соответствующими показаниями, как только Вы поменяете датчики!
Кроме того, Вы можете сделать обновление диаграммы в режиме реального времени, как показано ниже, используя, к примеру, датчик освещенности:
info = StringSplit[getDeviceInfo[], ","]
Dynamic@ListPlot[data, PlotLabel -> info[[4]],
Frame -> {True, True, False, False}, FrameLabel -> "Time (s)",
"Light " <> info[[5]]]

Raspberry Pi - Vernier- Wolfram-3
Raspberry Pi - Vernier- Wolfram-3a
Вершина айсберга
Ясно, что это только начало чего-то очень интересного. Автор еще играет с оптимизацией кода, чтобы ускорить измерения, и много работы предстоит сделать для визуализации и с данным после их получения.
Вы заметили, что автор берет как должное тот факт, что он вообще никогда не делает калибровки на любом из своих датчиков. Это одно из преимуществ использования датчиков Vernier - SDK содержит информацию калибровки и позволяет конечному пользователю непосредственно заняться сбором данных.
(По материалам EN: bobthechemist.com)
 
>
КнигаНовости Практика поискаПартнерыО нас
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting