Подключение Arduino по USB под Mac OS X / Linux

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Ответить
bartleby
Сообщения: 10
Зарегистрирован: Сб июн 29, 2013 8:30 am
Благодарил (а): 0
Поблагодарили: 1 раз

Подключение Arduino по USB под Mac OS X / Linux

Сообщение bartleby » Вс июн 30, 2013 1:02 am

Всем привет, есть ардуина, есть мак, (далее планируется перенести на росбери под линухом)
хочется запустить и попробовать систему, но выходит пока с трудом =)
1) поставил MAMP под мак, закинул туда систему
2) открыл терминал и запустил cycle.php - bartleby$ php ./cycle.php
и че дальше? у меня даже задачи по таймеру не выполняются, хотя вроде как должна ардуина определиться т.к cycle_arduino_direct.php
по идее запускается через cycle.php, но если задачи не выполняются то что то не так =)
---------
вопрос, что не так? мож в настройках php нужно где-то что-то нашаманить? или еще что?
как определить ардуину? она у меня зовется /dev/tty.usbmodemfa411 во как =)
bartleby
Сообщения: 10
Зарегистрирован: Сб июн 29, 2013 8:30 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Подключение Arduino по USB под Mac OS X / Linux

Сообщение bartleby » Вс июн 30, 2013 1:33 am

не нашел кнопку "редактировать" =)
и еще вопрос, можно ли будет полноценно общаться с ардуиной через эту систему умного дома?
т.е получать данные по запросу(например температуру), отправлять команды на ардуину, (вкл. свет)
------
еще один вопрос сразу, Алиса это прикольно, но беда в том что я ее ни разу не слышал, че сделать нужно?
и еще такой вопрос, вот выполнить команду есть, например в разделе "Задания" что за команды? где описания найти?
bartleby
Сообщения: 10
Зарегистрирован: Сб июн 29, 2013 8:30 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Подключение Arduino по USB под Mac OS X / Linux

Сообщение bartleby » Вс июн 30, 2013 12:26 pm

нашел кнопку "Правка" =))) - но уже поздно =)
---------
вообщем пока жду ответа гуглю на тему общения arduino with php
и вот что нарыл, при fopen ардуина перезагружается и на это ей нужно время. (причем перезагружается на каждой команде!!!)
что бы не перезагружалась нужно воткнуть кондецатор на 10 микрофарад между ресетом и землей (RESET - GND)
я не стал рисковать =) но понял что ппц полнейший...
ардуина игнорирует все пока не перезагрузится, в том числе и команды и fclose в итоге все благополучно подвисает =) и ардуина (думает что она общается с кем то) и (сервер тоже самое думает) =))) тк fclose не прошел...
наверное вариант такой, запустить ардуину, открыть порт через систему умный дом и общаться с ней сможет только она, ну и естественно кондер воткнуть.
при этом нужно написать класс через который будет происходить все общение, и протокол реализовать с методами общения... ну и прошивку для ардуины.

но если не дай боже сервак глюканет, то глюканет и все...
это мое виденье взаимодействия, могу ошибаться, и надеюсь даже на это =)))
жду ваших мыслей!
bartleby
Сообщения: 10
Зарегистрирован: Сб июн 29, 2013 8:30 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Подключение Arduino по USB под Mac OS X / Linux

Сообщение bartleby » Вс июн 30, 2013 1:20 pm

ага! извиняюсь если это флуд... но так как описания нет ни где по файлу cycle_arduino_direct.php я поясню его для других
на сколько я понял он открывает порт на ардуину (но как то странно... проверяя на наличее устройства которое начинается на /dev/ttyACM мое же зовется /dev/tty.usbmodemfa411)
и слушает его на наличие команд (определенных!!! нужна особая прошивка которая передает состояние открыты или закрыты ворота гаража!)
а я как дурак сижу жду когда чудом отобразится ардуина и я смогу настроить общение с ней =)))) жесть...
вообщем в планах переписать этот демон и воткруть туда принятие всех команд на основе протокола.
так же написать класс взаимодействия с ардуиной по тому же протаколу.
вот только тогда можно будет нормально общаться с ардуиной, сейчас это невозможно! (печаль...)

но так как в php я не особо гений =) есть попрос, можно ли использовать синглтон патерн, в php и забрать объект который создаст cycle_arduino_direct.php ?
bartleby
Сообщения: 10
Зарегистрирован: Сб июн 29, 2013 8:30 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Подключение Arduino по USB под Mac OS X / Linux

Сообщение bartleby » Вс июн 30, 2013 5:49 pm

вообщем выявил я что у меня бесконечный цикл в cycle.php
вот дальше чем первый цикл я не ухожу

Код: Выделить всё

while(!$connected) 
{
   $connected = @mysql_connect(':/Applications/MAMP/tmp/mysql/mysql.sock', DB_USER, DB_PASSWORD);
   sleep(5);
}
так и крутится тут...
поменял в место 'localhost' прописал ':/Applications/MAMP/tmp/mysql/mysql.sock'
начал проходить этот цикл, но дальше следующей строчки опять не ухожу, выдает вот такую ошибку
(выдает в терминал html я его собрал и вот картинка)
Вложения
Снимок экрана 2013-06-30 в 18.43.31.png
Снимок экрана 2013-06-30 в 18.43.31.png (22.92 КБ) 11491 просмотр
bartleby
Сообщения: 10
Зарегистрирован: Сб июн 29, 2013 8:30 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Подключение Arduino по USB под Mac OS X / Linux

Сообщение bartleby » Вс июн 30, 2013 9:10 pm

и с этой проблемой разобрался... в файле mysql.class.php в методе Connect сделал вот такую проверку

Код: Выделить всё

  if($this->port != '')
  {
  	$this->dbh=@mysql_connect($this->host.":".$this->port, $this->user, $this->password);
  }else
  {
  	$this->dbh=@mysql_connect($this->host, $this->user, $this->password);
  }
иначе имя хота говнилось, а оно у нас специфическое =))
так, что теперь, а теперь ряд еще ошибок и генерятся они в файле threads.php

начинаеются вот отсюда, из файла Cycle.php

Код: Выделить всё

while (false !== ($result = $threads->iteration())) 
{
   if (!empty($result))  echo $result."\r\n";
}
и посыпались вот такие вот штуки

Код: Выделить всё

ALL CYCLES STARTED
<html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<br />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html><html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br>
22:04:42 Closing thread: php -q ./scripts/cycle_onewire.php --params "a:0:{}"<html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><html><style>body {font-family:tahoma, arial}</style><body>&nbsp;<br><table border=0 cellspacing=2 cellpadding=15 bgcolor=#FF0000 align=center width=600><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Sorry, page is temporary unavailable.<br><br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<b<br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<b<br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<b<br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<b<br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<b<br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<b<br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<b<br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<b<br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<b<br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<b<br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<b<br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<b<br>Please try again later.</b></font></p><p align='center'><a href='#' onClick='history.go(-1);'><<< Back to previous page</a></a></td></tr><tr><td bgcolor='#FFFFFF'><p align=center><font color=red><b>Jun 30, 2013 22:04:41 http://<br />
Error:<br />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>r />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>r />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>r />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>r />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>r />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>r />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>r />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>r />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>r />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>r />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>r />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>r />
2002: No such file or directory<br></b></font></p></td></tr></table>&nbsp;</body></html>
22:04:42 Closing thread: php -q ./scripts/cycle_bluetooth.php --params "a:0:{}"
22:04:42 Closing thread: php -q ./scripts/cycle_execs.php --params "a:0:{}"
22:04:42 Closing thread: php -q ./scripts/cycle_main.php --params "a:0:{}"
22:04:42 Closing thread: php -q ./scripts/cycle_onewire_starred.php --params "a:0:{}"
22:04:42 Closing thread: php -q ./scripts/cycle_ping.php --params "a:0:{}"
22:04:42 Closing thread: php -q ./scripts/cycle_rss.php --params "a:0:{}"
22:04:42 Closing thread: php -q ./scripts/cycle_scheduler.php --params "a:0:{}"
22:04:42 Closing thread: php -q ./scripts/cycle_skype.php --params "a:0:{}"
22:04:42 Closing thread: php -q ./scripts/cycle_snmp.php --params "a:0:{}"
22:04:42 Closing thread: php -q ./scripts/cycle_states.php --params "a:0:{}"
22:04:42 Closing thread: php -q ./scripts/cycle_watchfolders.php --params "a:0:{}"
22:04:42 Closing thread: php -q ./scripts/cycle_webvars.php --params "a:0:{}"
22:04:42 Closing thread: php -q ./scripts/cycle_zwave.php --params "a:0:{}"iMac-Bartleby:htdocs bartleby$ 

скорее всего на этом форуме только я =))) но все же, малоли... есть идеи?
Sicness
Сообщения: 57
Зарегистрирован: Сб май 12, 2012 1:42 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Подключение Arduino по USB под Mac OS X / Linux

Сообщение Sicness » Пн июл 01, 2013 6:02 am

Не знаю как делают другие, но я общался с ардуина на majordomo через веб запросы. То есть либо через ethernet модуль, либо на компе стоит ПО, которая считывает serial и делает соответствующие web запросы на обновление состояния.

MajorDomo не плохо работает без копания в коде. Попробуйте сделать по инструкции.
bartleby
Сообщения: 10
Зарегистрирован: Сб июн 29, 2013 8:30 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Подключение Arduino по USB под Mac OS X / Linux

Сообщение bartleby » Пн июл 01, 2013 9:21 am

Sicness писал(а):Не знаю как делают другие, но я общался с ардуина на majordomo через веб запросы. То есть либо через ethernet модуль, либо на компе стоит ПО, которая считывает serial и делает соответствующие web запросы на обновление состояния.

MajorDomo не плохо работает без копания в коде. Попробуйте сделать по инструкции.
задача стоит "заставить работать MajorDomo с ардуино по усб в оба конца" я сам пишу на objc и легко могу написать прогу под мак которая будет слушать ардуину и
отправлять запросы в MajorDomo, и че дальше? я не собираюсь ее использовать с мак, мне нужно настроить полноценное общение, а потом перенести на малину с минимальными правками.
php позволяет отправлять/получать данные на/с ардуину, да и вообще вопрос уже не в этом =)
вопрос в том что не работаем как нужно Cycle.php не может найти файлы, и походу это файлы скриптов, и валится именно вот тут (файл Threads.php)

Код: Выделить всё

if (feof($stream) || ($contents = fread($stream, 255))==false)
хотя собрал пример с хабрахабра, (на который линк в заголовке) он отрабатывает без проблем...
очень хотелось бы услышать именно Сергея как разработчика.
bartleby
Сообщения: 10
Зарегистрирован: Сб июн 29, 2013 8:30 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Подключение Arduino по USB под Mac OS X / Linux

Сообщение bartleby » Пн июл 01, 2013 10:24 am

все решил проблему!
bartleby
Сообщения: 10
Зарегистрирован: Сб июн 29, 2013 8:30 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Подключение Arduino по USB под Mac OS X / Linux

Сообщение bartleby » Пн июл 01, 2013 6:24 pm

запарился я уже, но уже интегрировал, правда без прокси не обойтись, но не проблема будет собрать под любую платформу!
когда полностью закончу интеграцию и описание протокола, выложу инструкцию как интегрировать ардуину по усби
так же сделаю инструкцию по настройке под мак и MAMP
Сергей, я там немного влез в команды, создал метод для общения с ардуиной, что бы было проще, но пока не разбирался как добавить в блоки (графическое программирование от гугл) свои методы, ты уже я смотрю добавлял =) хочу и туда ардуину запихать, что бы удобнее было.
подскажи че к чему там?

Сергей, ты потом прикрепи или лучше вообще на сайт закинь и репу обнови с кодом который я скину.
Должно быть здорово!
Ответить