roboforum.ru

Технический форум по робототехнике.


Arduino C# управление двигателями с консоли ПК

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Arduino C# управление двигателями с консоли ПК

Сообщение getbraine » 22 июл 2010, 21:05

Возникла следующая задача : написать программу ,которая управляет электро-двигателями (обыкновенными),через консоль.

Что имеется : платка Arduino, MotorShiled

так же скрипт ,который читает данные с ком-порта и управляет двигателями:
Код: Выделить всёРазвернуть
#include <AFMotor.h>;
int outputPin = 13;                //здесь храним номер контакта
int val;
AF_DCMotor motorL(1);
AF_DCMotor motorR(2);

void setup()
{
  Serial.begin(9600);              //установка порта на скорость 9600 бит/сек
  pinMode(outputPin, OUTPUT);      //устанавливаем 13 контакт в режим вывода
}

void loop()
{
  if (Serial.available()) {         //если есть принятый символ,
    val = Serial.read();            //  то читаем его и сохраняем в val
    if (val == 'L') {               //  если принят симовол 'H',...
      motorL.run(FORWARD);
      motorL.setSpeed(128);
    }
    if (val == 'R') {               //  если принят симовол 'L',
      motorR.run(FORWARD);
      motorR.setSpeed(128);
    }
  }
}

сама программ на C# ,которая шлет данные в com-порт
Код: Выделить всёРазвернуть
static void Main(string[] args)
        {
            SerialPort port = new SerialPort("COM1", 9600);
            port.Open();
            while (true)
            {
                String s = Console.ReadLine();
                if (s.Equals("exit"))
                {
                    break;
                }
                port.Write(s + '\n');
            }
            port.Close();
        }


Что я сделал:
0)подключил платку к ПК, плату MotorShiled к Arduino , а двигатели к портам M1 и M2
1)загрузил скрипт в Arduino
2)запустил программу(C#)

4)..
5)нифига не вышло=)

Подскажите ,в чем проблема?Можно ли обойтись ,без загрузки скрипта в Arduino и просто слать необходимый набор байтов на com-порт ,чтобы управлять двигателями?Если да ,то какие байты нужно слать?

Заранее спасибо за ответы!
getbraine
 
Сообщения: 41
Зарегистрирован: 09 янв 2009, 13:02
прог. языки: C/C++/Assembler/С#

Re: Arduino C# управление двигателями с консоли ПК

Сообщение avr123.nm.ru » 22 июл 2010, 21:57

Слаботочным мотором можно прямо с COM управлять, но так никто не делает.

Вы можете проверить прогой Com port tool kit что шлет ваша прога в COM а можете без проги из терминала посылать символы управления мотором.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Arduino C# управление двигателями с консоли ПК

Сообщение noonv » 22 июл 2010, 22:04

попробуйте сначала писать в порт команды не из своей программы, а через терминал.
Аватара пользователя
noonv
 
Сообщения: 600
Зарегистрирован: 21 май 2007, 22:57
Откуда: Калининград
прог. языки: C++

Re: Arduino C# управление двигателями с консоли ПК

Сообщение getbraine » 22 июл 2010, 22:14

Нашел ошибку в программе :

нужно было вместо COM1 СOM3 написать
но все равно не получилось

я пробовал напрямую в COM-порт слать данные через Arduino-IDE и получалось управлять двигателями.

Вот если бы слать ,напрямую ,из программы (на C#) управляющие инструкции ,было бы вообще шикарно=)Но в гугле не нашел таких вещей.
getbraine
 
Сообщения: 41
Зарегистрирован: 09 янв 2009, 13:02
прог. языки: C/C++/Assembler/С#

Re: Arduino C# управление двигателями с консоли ПК

Сообщение avr123.nm.ru » 22 июл 2010, 22:50

Да и в прогое ардуины при обоих символах однаковое действие выполняется.

в Ардуине просто поверьте моторы вот так:

Код: Выделить всёРазвернуть
void loop()

motorL.run(FORWARD);     
motorL.setSpeed(128);

motorR.run(FORWARD);     
motorR.setSpeed(128);

}     


Если моторы заработают, то добавляейте управление.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Arduino C# управление двигателями с консоли ПК

Сообщение getbraine » 23 июл 2010, 00:02

спасибо за ответ!
все работает через консоль.

теперь займусь написание гуи на шарпах=)
getbraine
 
Сообщения: 41
Зарегистрирован: 09 янв 2009, 13:02
прог. языки: C/C++/Assembler/С#

Re: Arduino C# управление двигателями с консоли ПК

Сообщение vadinator » 23 июл 2010, 09:36

Шлите символы управления, без перевода строки '\n'
просто port.Write('R');port.Write('L');
и учитывайте разницу между строчными и заглавными буковками...
Роботы, уже среди нас...
Прошу прощения за аватар, никак схему динамической индикации не могу настроить :)
Аватара пользователя
vadinator
 
Сообщения: 979
Зарегистрирован: 19 янв 2010, 14:51
Откуда: Петрозаводск
прог. языки: C, FBD, Wiring-Processimg,,,LD, SFC, ST...
ФИО: Вадим


Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7