Управление Arduino через com (usb) порт

giliann13
Offline
Зарегистрирован: 27.03.2011

Доброго времени суток, такой вопрос: Нужно передать в Arduino из серийного порта какие либо данные, и взависимости от этих данных зажечь или потушить диод. Проблема в Serial monitor, если он включен тоесть информация в него выводится, то все работает. Если отключен, то arduino мигает служебными лампочками, и не выполняет ничего. 
Arduino UNO
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
if(incomingByte==49)
digitalWrite(13,HIGH);
else
digitalWrite(13,LOW);
}
}
все идиально работает при включенном Серийном мониторе, как сделать так чтобы работало без монитора?
Спасибо

Zaliv
Offline
Зарегистрирован: 05.03.2011

 Не очень понятен вопрос, если ничего не посылаешь через серийный порт, то программа ничего и не делает, т.к. ждет байта 49 чтобы зажечь светодиод судя по коду.
Или я чего-то не понял? перефразируй пожалуйста.

icms
Offline
Зарегистрирован: 22.03.2011

Скорее всего если не включён Serial monitor то комп вообще ничего не шлёт, порт вероятно закрыт. Чем в порт шлёш? Какая скорость? 

giliann13
Offline
Зарегистрирован: 27.03.2011

Через серийный порт данные посылаю, посредством php_serial_class или pySerial,  но они обрабатываются arduino только в случае с запущенным serial monitor.
 
Попробую перефразировать задачу, надо написать скрипт (на любом языке), который выполняется и на ардуино зажигается диод. Как это реализовать? 

giliann13
Offline
Зарегистрирован: 27.03.2011

Да, похоже на правду, но как по другому можно открыть порт?
Слал и из bash и просто вывод в порт аля 1 >> /dev/ttyACM0, посредством pySerial (в этом случае рабьотало но требовало постоянно активного соединения с портом, т.е без возможности открыть порт, отправить данные, закрыть порт) с помощью php_serial_class 
Скорость 9600 хотя пробовал на разных, но снова все привязывалось к serial monitor

icms
Offline
Зарегистрирован: 22.03.2011

Могу только через делфю додсказать, смотри сдесь http://www.delphisources.ru/pages/faq/base/serial_port_read_write.html 

Modular
Offline
Зарегистрирован: 05.03.2011

icms пишет:

Могу только через делфю додсказать, смотри сдесь 

Ссылка битая похоже
 
На питоне человечек делал вывод на ардуино сообщений из твиттера. Я не силен в питоне, но у него как раз там есть закрытие и открытие соединения.
http://dispersiontechgroup.com/2011/01/13/putting-arduino-uno-to-work-tw...
 

fox7812
Offline
Зарегистрирован: 09.04.2012

Использовал php_serial_class. На Винде работает отправка данных, но получение не реализовано. На Линуксе столкнулся с проблемой, что  php_serial_class ждет устройство типа /dev/ttyS0 или /dev/ttyS1, а не /dev/ttyACM0. Удалось реализовать пока только на питоне довольно легко. Кто-нибудь решил проблему с /dev/ttyACM0 на php?

Rimidalw
Offline
Зарегистрирован: 04.04.2012

fox7812 пишет:

Использовал php_serial_class. На Винде работает отправка данных, но получение не реализовано. На Линуксе столкнулся с проблемой, что  php_serial_class ждет устройство типа /dev/ttyS0 или /dev/ttyS1, а не /dev/ttyACM0. Удалось реализовать пока только на питоне довольно легко. Кто-нибудь решил проблему с /dev/ttyACM0 на php?

Я решил, как допишу статью у себя в блоге выложу с примерами с исходниками.

fox7812
Offline
Зарегистрирован: 09.04.2012

Сделал сим ссылку с /dev/ttyACM0 на /dev/ttyS8 - не помогло. Видимо проблема не в этом. Сначала класс не мог пройти проверку на stty --version===0, что то вроде этого. Теперь рушится с unable serial port.

vworld
vworld аватар
Offline
Зарегистрирован: 26.09.2011

тут рассматривается вопрос по работе с СОМ портом...возможно вам поможет....