android и arduino nano
- Войдите на сайт для отправки комментариев
Втр, 23/09/2014 - 21:39
Добрый вечер, может кто нибудь посказать куда монтируется устройство arduino nano в андройде то есть tty* не как не могу понять. Цель получить данные с arduino nano через терминал в андройде, для дальнейшей их обработки в tasker, то есть нужно cat /dev/tty* но вот куда монтируется устройсво не как не найти.
Через специальные приграммы по типу serialMonitor данные с arduino nano получаю
В линуксах это обычно /dev/ttyACM0
Только работать с ним надо не через утилиту cat, а через серийный терминал типа minicom
ttyACM0 в обще отсутвует, при подключении arduino не каких новых tty* не появляется ((
Что за задумка? (если не секрет)
дубль(тырнет тупит)
Задумка простая есть arduino nano с датчиками температуры, все это должно находится удаленно в котельной, соеденено с планшетом по usb, планшет находится в сети и должен данные датчиков отправлять через wifi в сеть. Вот как это сделать? Я вижу следующею схему командой шел читаю показания датчиков, эту команду пехаю в таскер и уже обрабатываю им её как угодно. Но все уперлось в то что не могу найти как через команду шел прочитать данные ардуины или хотя бы приложение которое будет читать ардуину и записывать данные в файл, а уж из файла таскером я прочитаю ))
Понимаю что все это кажется довольно странным, правильно делать напрямую через сетевой shield но увы таких не имеем
Меня терзают смутные сомнения в том, что планшет имеет внутри себя USB-HUB и может в себя подключать другие устройства.
Не с подключением arduino к планшету проблем нет, на маркете полно софта который выводит данные с ардуины, но вот кроме вывода этих данных более не чего, и тот же таскер не может видеть эти данные что бы их отправить.
В таком случае dmesg или /var/log/messages совершенно точно содержит записи о появлении нового переферийного устройства при втыкании ардуинки в планшет.
dmesg есть упоминания про usb как воткнешь но куда монтируется нет
01
<6>[ 1774.089228] tegra-otg tegra-otg: SUSPEND --> HOST
02
<6>[ 1774.109772] phy->instance = 0, phy->xcvr_setup_value = 57
03
<4>[ 1774.109978] create_regulator: fixed_reg_en_avdd_hdmi_usb_a01: Failed to create debugfs directory
04
<6>[ 1774.110258] tegra_usb_phy_open instance 0 MAX77663_IRQ_ACOK_RISING
05
<6>[ 1774.114248] tegra-ehci tegra-ehci.0: Tegra EHCI Host Controller
06
<6>[ 1774.114571] tegra-ehci tegra-ehci.0:
new
USB bus registered, assigned bus number 2
07
<6>[ 1774.140720] tegra-ehci tegra-ehci.0: irq 52, io mem 0x7d000000
08
<6>[ 1774.160620] tegra-ehci tegra-ehci.0: USB 2.0 started, EHCI 1.00
09
<6>[ 1774.161730] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
10
<6>[ 1774.163828] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
11
<6>[ 1774.164110] usb usb2: Product: Tegra EHCI Host Controller
12
<6>[ 1774.164587] usb usb2: Manufacturer: Linux 3.1.10-g1e42d16 ehci_hcd
13
<6>[ 1774.164851] usb usb2: SerialNumber: tegra-ehci.0
14
<6>[ 1774.172952] hub 2-0:1.0: USB hub found
15
<6>[ 1774.173100] hub 2-0:1.0: 1 port detected
16
<6>[ 1774.173827] Wake39
for
irq=52
17
<6>[ 1774.174042] Enabling wake39
18
<6>[ 1774.500563] usb 2-1:
new
full speed USB device number 2
using
tegra-ehci
19
<6>[ 1774.554996] usb 2-1: New USB device found, idVendor=0403, idProduct=6001
20
<6>[ 1774.555520] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
21
<6>[ 1774.556020] usb 2-1: Product: FT232R USB UART
22
<6>[ 1774.556291] usb 2-1: Manufacturer: FTDI
23
<6>[ 1774.556558] usb 2-1: SerialNumber: A70051T6
24
<6>[ 1774.690503] INOK=L
25
<5>[ 1774.690881] smb347_charger: [cable_type_detect] Reg39 : 0x11
26
<5>[ 1774.691141] smb347_charger: [cable_type_detect] Reg3F : 0x00
27
<6>[ 1774.691252] USBIN=0
папка var в обще отсутвует и messages не смог найти поиском
Вот тут чел описывает похожий девайс. Попробуй так же погрепать tty, может глазами просто не заметил
http://stackoverflow.com/questions/22277441/serial-comm-connection-on-linux
На андроидном устройсве очень желателен Busybox. Команда head -n 1 /dev/ttyACM0 считает из порта одну строку,
команда echo " " > /dev/ttyACM0 отправит текст в кавычках и перевод строки в порт,
команда stty -F /dev/ttyACM0 9600 sane выполнит настройку порта на стандартные параметры и скорость 9600 бод
Вот тут чел описывает похожий девайс. Попробуй так же погрепать tty, может глазами просто не заметил
http://stackoverflow.com/questions/22277441/serial-comm-connection-on-linux
dmesg | grep-i tty
не чего не выдает. Да и сто раз перепроверял не создается не каких tty
На андроидном устройсве очень желателен Busybox. Команда head -n 1 /dev/ttyACM0 считает из порта одну строку,
команда echo " " > /dev/ttyACM0 отправит текст в кавычках и перевод строки в порт,
команда stty -F /dev/ttyACM0 9600 sane выполнит настройку порта на стандартные параметры и скорость 9600 бод
Проблема вся в том что /dev/ttyACM0 нету и других не появляется при подключении
список всех консольных устройсв можно увидеть командой ls /sys/class/tty
а то что там dmesg пишет это не значит что ядро сопоставила какой то драйвер этому устройству
у меня на планшете при подключение PL2303 появляется ttyUSB0, вот и у вас тоже должно появится, драйвера обычно собраны в ядро, но могут быть подключенны внешними модулями(собранными для вашей версии ядра, что весьма непросто)
Если сразу не увидел - значит не будет работать. В андроиде также можно работать напрямую с USB, что и делает большинство програм(драйвером является приложение андроид и функции доступны только в нем)
список всех консольных устройсв можно увидеть командой ls /sys/class/tty
а то что там dmesg пишет это не значит что ядро сопоставила какой то драйвер этому устройству
у меня на планшете при подключение PL2303 появляется ttyUSB0, вот и у вас тоже должно появится, драйвера обычно собраны в ядро, но могут быть подключенны внешними модулями(собранными для вашей версии ядра, что весьма непросто)
Если сразу не увидел - значит не будет работать. В андроиде также можно работать напрямую с USB, что и делает большинство програм(драйвером является приложение андроид и функции доступны только в нем)
впрочем этой коммандой то же не чего не меняется с включеной ардуиной и без
01
u0_a88@grouper:/ $ su
02
root@grouper:/ # ls /sys/
class
/tty
03
console
04
ptmx
05
tty
06
ttyGS0
07
ttyGS1
08
ttyGS2
09
ttyGS3
10
ttyHS1
11
ttyHS2
12
ttyHS3
13
ttyHS4
14
ttyS0
15
ttyS1
16
ttyS2
17
ttyS3
18
root@grouper:/ # ls /sys/
class
/tty
19
console
20
ptmx
21
tty
22
ttyGS0
23
ttyGS1
24
ttyGS2
25
ttyGS3
26
ttyHS1
27
ttyHS2
28
ttyHS3
29
ttyHS4
30
ttyS0
31
ttyS1
32
ttyS2
33
ttyS3
34
root@grouper:/ #
То есть не получится командами терминала вывести данные? как же мне для таскера их получить?
Кстати FT232 мой планшет тоже не видит, а PL2303 спокойно - попробуйте другой чип RS232-USB
ttyS0 ... ttyS3 это хардварные порты, некоторые из них могут иметь контактные площадки на плате планшета.
да если и пробовать другое устройство ардуину то уж сразу с wifi shield что бы в обще не с таскером пусть wifi shield сам шлет данные на сервер, но увы в наличии только cararduino(nano) другое прибудет uno+TI CC3000 только через месяц, пока хотелось на nano сделать
Либо найти драйвер(модуль ядра отвечающий за обработку нужных устройств) ft232.ko для вашей версии ядра и подключить его командой modprobe ft232.ko
или
http://www.ftdichip.com/Android.htm
правите исходник, запускаете в режим сервиса шлете куда вам надо из приложения андроид.
В общем нашол прошивку для планшета в которой устройство теперь определяется как ttyUSB0
но столкнулся с проблемай использую вот такой скетч для вывода температуры с датчика
01
#include <DallasTemperature.h>
02
03
DallasTemperature tempSensor;
04
05
void
setup
(
void
)
06
{
07
Serial
.begin(115200);
08
tempSensor.begin(12);
//Вешаем Датчик на 12 порт
09
}
10
11
void
loop
(
void
)
12
{
13
switch
(tempSensor.isValid())
14
{
15
case
1:
16
Serial
.println(
"Invalid CRC"
);
17
tempSensor.reset();
// сбросить девайс
18
return
;
19
case
2:
20
Serial
.println(
"Invalid device"
);
21
tempSensor.reset();
// сбросить девайс
22
return
;
23
}
24
Serial
.print(tempSensor.getTemperature());
//отправить температуру
25
Serial
.println();
//перенос строки
26
}
Как бы все нормально но в на андройде в терминале данные идут через строку то есть команда head /dev/ttyUSB0 выдает к примеру
23.5
23.5
23.5
А нужно что бы не было пустой строки
23.5
23.5
пробовал убрать из скетча
Serial.println();
Serial.println();
Serial.println();
Serial.println() но тогда андройд в обще не получает данные ((в прочем проблема в том что head -n1 /dev/ttyUSB0 запущенная через таскер получает 0 то есть пустую строку
Возможно проблема в том что println наверно посылает "\r\n" что линух считает двумя переводами строки.
Попробуйте заменить на
1
Serial
.print(
"\n"
);
и для тесту лучше запустить cat /dev/ttyUSB0 в отдельном терминальном окне(обычное чтение без деления на строки).
Странный метод, слушать порт во внезапный момент времени, когда могут прилететь не все данные, а только кусок. Особенно часто это происходит, когда шлёшь по ком-порту не 4 символа, а строки из десятков символов. Вот тогда каждая инициализация соединения с портом и текст прилетает с середины строки. Так что я бы советовал повесить на модем отдельный обработчик на каком-нить питоне, который будет уже в лог или ещё куда передавать последние данные с порта.
Да согласен, что это извращение, но изначально писал что нужно собрать из того что есть, а есть только nano и два датчика DS18B20. Все это мне нужно было в основном для тренировки и обучения самого себя.
Получилось следущее, подключено два датчика DS18B20 к arduino nano, сам ардуина по usb подключена к планшету. Приложение в планшете Tasker читает порт, отсылает данные на сайт, на сайте данные датчиков созраняются в mysql и выводятся на экран. Так же Tasker сохраняет данные в файл, далее в другом задании чиает их из файла и выводит на виджеты на экране. То есть по сути планшет играет роль роутера wifi по отсылке данных и в то же время как сенсорный экран для arduino и резервный источник питания. С учетом того что планшеты сейчас можно купить и по 1.5 рубля помему достойное универсальное пременение с ардуиной, можно и выводить данные и отсылать ардуине, главно что бы в ядре были модули для ардуины ))
Да согласен, что это извращение, но изначально писал что нужно собрать из того что есть, а есть только nano и два датчика DS18B20. Все это мне нужно было в основном для тренировки и обучения самого себя.
Мне тоже тут многие сказали фу за использование ардуинки вместе с распберри, а стуация примерно как у тебя. Купил одну ардуинку, потом кучу датчиков, потом ещё и распберри подвернулась, благо идей миллион как это использовать. Вот я щас малинку юзаю примерно в тех же целях, в которых ты юзаеш планшет.
Получилось следущее, подключено два датчика DS18B20 к arduino nano, сам ардуина по usb подключена к планшету. Приложение в планшете Tasker читает порт, отсылает данные на сайт, на сайте данные датчиков созраняются в mysql и выводятся на экран. Так же Tasker сохраняет данные в файл, далее в другом задании чиает их из файла и выводит на виджеты на экране. То есть по сути планшет играет роль роутера wifi по отсылке данных и в то же время как сенсорный экран для arduino и резервный источник питания. С учетом того что планшеты сейчас можно купить и по 1.5 рубля помему достойное универсальное пременение с ардуиной, можно и выводить данные и отсылать ардуине, главно что бы в ядре были модули для ардуины ))
Я бы на твоём месте взял в руки питон и нафигачил бы на pyserial логгер, который клал бы в базу приходящие данные.
Я бы на твоём месте взял в руки питон и нафигачил бы на pyserial логгер, который клал бы в базу приходящие данные.
Ну делать на питоне это нужен комп, у меня же ардуина удаленно сейчас и комуникации к ней нет не какой, кроме что wifi сеть покрывает её, ну а планшет и с играл роль клиента wifi для ардурины. Так уже искитая едет уно с wifi шейлдом.
Но тема с планшетом мне кажется очень практичной, даже если его просто повесить на стене и использовать как экран управления и вывода все йнформации, по сути с планшета можно и голосовое управление ардуиной организавать без какого либо гемороя и лишних датчиков, а ардуино повесить удаленно с тем же роутером теплинком.
Кстати питон работает и на андроиде(для тех кто в танке) QPython
просто повесить на стене и использовать как экран управления и вывода все йнформации, по сути с планшета можно и голосовое управление ардуиной организавать без какого либо гемороя и лишних датчиков, а ардуино повесить удаленно с тем же роутером теплинком.
Прикол в том, что кроме логгирования в базу, питон может так же выводить на экран всё что нужно, а при особом желании можно и голосовые команды им же распознавать и выполнять.
Прикол в том, что кроме логгирования в базу, питон может так же выводить на экран всё что нужно, а при особом желании можно и голосовые команды им же распознавать и выполнять.
Ой. А накой вообще питон и прочий зоопарк? Если при особом желании ардуино сама способна и выводить и распознавать. Или просто валяется на дороге питон, давайте его куда нибудь прикрутим?
Как ардуина сама способна выводить данные кроме LCD? и восколько встанет сие удовольствие то есть дисплей, распознование голоса и тд и сколько это затребует усилий в реальзации? не проще планшет за 1500-2000р в результате полный комплект без дополнительных плат и гемороя в виде кодинга? врезультате получить дружественный, графический, сенсорный дисплей с кучей возможностей
Как ардуина сама способна выводить данные кроме LCD? и восколько встанет сие удовольствие то есть дисплей, распознование голоса и тд и сколько это затребует усилий в реальзации? не проще планшет за 1500-2000р в результате полный комплект без дополнительных плат и гемороя в виде кодинга? врезультате получить дружественный, графический, сенсорный дисплей с кучей возможностей
гыыы самое смешное что все уложится в 15 баксов :) а вот планшет за 1500-2000 рублей это будет дружественый, графический и сенсорный ГЕМОРОЙ! ибо глючят они так, что ну его нафиг.
Как ардуина сама способна выводить данные кроме LCD? и восколько встанет сие удовольствие то есть дисплей, распознование голоса и тд и сколько это затребует усилий в реальзации? не проще планшет за 1500-2000р в результате полный комплект без дополнительных плат и гемороя в виде кодинга? врезультате получить дружественный, графический, сенсорный дисплей с кучей возможностей
гыыы самое смешное что все уложится в 15 баксов :) а вот планшет за 1500-2000 рублей это будет дружественый, графический и сенсорный ГЕМОРОЙ! ибо глючят они так, что ну его нафиг.
Если несложно приведите пример железа за 15$ что бы организовать удаленное упраление ардуиной с выводом данных? Ну может за 1500-2000р глючат планшеты фигзнает сейчас уже с неделю тестирую на nexus7 глюков нет, но конечно он стоит не 2000р :-)
погуглите сами.
ардуино + экранчик с тачем (шильд не нужен ни одному экранчику) + колонка с усилителем + микрофон с усилителем+ ну и что там вам для удаленого соединения больше нравится.
погуглите сами.
ардуино + экранчик с тачем (шильд не нужен ни одному экранчику) + колонка с усилителем + микрофон с усилителем+ ну и что там вам для удаленого соединения больше нравится.
Нашёл, да действительно не очень дорогие, но опять же нужно тогда две ардуины что с экраном будет, что удаленно, два беспроводных модуля, ну и для голосового, как то все грамозко получается. Ну и самое главное куча знаний что бы сделать графический интерфейс и с него рулить, лично пока не представляю как это делается особенно с учётом что в ардуине памяти маловато. Тяжеловато все это будет новичку который только начал осваивать это дело. С планшетом все гораздо проще одна ардуина, wifi шейлд или роутер ни и скетч, ну и планшет с таскером где знаний программирования и не нужно совсем, только выставляй действия по событиям
где знаний программирования и не нужно совсем
вот с этого и нужно было начинать.. ЧТО ЗНАНИЙ НОЛЬ И УЧИТЬСЯ НЕХОЧУ!
Как на ардуинке, без специального шилда в три цены ардуинки, сделать распознавание речи?
Как на ардуинке, без специального шилда в три цены ардуинки, сделать распознавание речи?
загуглите :) вам понравится.
там правда все элементарно, если разобраться. но у меня нет желания разжовывать вам все, начиная с элементарного поиска в гуглях. :Р