- PVSM.RU - https://www.pvsm.ru -
В среде Arduino удобно иметь доступ к Bluetooth с профилем серийного порта BT SPP (Bluetooth Serial port profile), чтобы реагировать на команды, посылаемые через последовательный Bluetooth порт. Во многих Arduino проектах используется эта возможность, чтобы удаленно управлять устройством. Раньше вам был нужен дополнительный Bluetooth шилд или Bluetooth набор, чтобы получить такую возможность на Intel Galileo. А так как сейчас на Intel Edison есть встроенная поддержка Bluetooth, то достаточно просто использовать Arduino-адаптер, чтобы создать такое Arduino устройство. Никаких дополнительных шилдов не потребуется.
Статья «Connecting the Intel Edison board to your Android Phone with Serial Port Profile (SPP)» [3] описывает, как подсоединить плату Intel Edison к Android телефону с SPP. Тем не менее, вы не сможете получить данные от SPP в коде Arduino. В статье «Подключаемся к Intel Edison через Android с Bluetooth LE (BLE)» [4] объясняется, как подключить Bluetooth через Arduino, но там требовался дополнительный Bluetooth шилд.
Но так как у нас есть встроенный Bluetooth, почему бы не использовать это преимущество? Здесь я предлагаю пример библиотеки, чтобы это сделать.
Один из эффективных способов общения между Arduino и Linux на Intel Edison, это использование mmap(). Об этом мы рассказывали в предыдущей статье Эффективное взаимодействие между нативными процессами Arduino и Linux [5]. Тем не менее, совсем не просто использовать блокировку в разделяемой памяти между процессом питона и Arduino процессом.
Таким образом, я выбрал именованные каналы (named pipes) как простейший способ организовать IPC (межпроцессорное взаимодействие) между процессом скетчем Arduino и Python процессом c Bluetooth SPP.
1. Скачайте файл bluetooth-service.tar.gz [6].
2. Скопируйте файл bluetooth-service.tar.gz в папку /home/root/Bluetooth и распакуйте:
mkdir /home/root/bluetooth
cd /home/root/bluetooth
mv /home/root/bluetooth-service.tar.gz ./
tar -xvf bluetooth-service.tar.gz
3. Скопируйте файл bluetooth-spp-pin.service в папку /lib/systemd/system/:
cp bluetooth-spp-pin.service /lib/systemd/system
4. Включите сервис systemd:
systemctl enable bluetooth-spp-pin
5. Перезапустите ваше устройство:
reboot
6. Ещё раз проверьте сервис:
systemctl status bluetooth-spp-pin
Теперь у вас есть Bluetooth устройство с фиксированным пин-кодом, которое поддерживает SPP. Вы можете подключаться к нему так же просто, как и к Bluetooth колонкам. Bluetooth заработает автоматически сразу после включения, и даже не надо подсоединяться к устройству через терминал. Вы можете получить доступ к BT SPP в вашем Arduino коде, рассматривая его как последовательное устройство. И присоединится к Edison проекту через Android телефон с BT SPP приложением. Это означает, что вы можете управлять вашим проектом на Edison удаленно и делать, что вы хотите. Основываясь на этой работе, вы можете разрабатывать большое количество интересных приложений, используя встроенный Bluetooth на Intel Edison. Получайте удовольствие и делитесь с нами вашими проектами.
Итак, мы только реализовали способ посылать команды с вашего BT SPP устройства на Edison. Вы можете добавить fifo чтобы посылать команды с Edison’а обратно на ваше BT SPP устройство. Так как это fifo, то ваше Linux приложение также получит преимущество, посылая команды в среду Arduino. Это действительно простой способ увеличить возможности взаимодействия с Arduino. Например, вы можете обрабатывать звук в Linux и посылать команды на Arduino через fifo. Или вы можете получать твиты из Node.js и затем посылать JSON на Arduino, чтобы взаимодействовать с существующими Arduino шилдами. Сейчас всё соединено! Вы также можете написать ваше собственное Android BT SPP приложение с большей интерактивностью!
Автор: varerysan
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/diy-ili-sdelaj-sam/97631
Ссылки в тексте:
[1] Image: http://geektimes.ru/company/intel/blog/261114/
[2] Get started with Intel® Edison technology: https://software.intel.com/en-us/iot/library/edison-getting-started
[3] «Connecting the Intel Edison board to your Android Phone with Serial Port Profile (SPP)»: https://software.intel.com/en-us/articles/connecting-the-intel-edison-board-to-your-android-phone-with-serial-port-profile-spp
[4] «Подключаемся к Intel Edison через Android с Bluetooth LE (BLE)»: http://habrahabr.ru/company/intel/blog/252919/
[5] Эффективное взаимодействие между нативными процессами Arduino и Linux: http://geektimes.ru/company/intel/blog/261350/
[6] bluetooth-service.tar.gz: https://software.intel.com/sites/default/files/managed/6c/16/bluetooth-service.tar.gz
[7] Intel-Edison-BT-SPP-Library.zip: https://software.intel.com/sites/default/files/managed/a7/45/Intel-Edison-BT-SPP-Library.zip
[8] BLE_SPP_PRO: https://play.google.com/store/apps/details?id=mobi.dzs.android.BLE_SPP_PRO
[9] Источник: http://geektimes.ru/post/261114/
Нажмите здесь для печати.