roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 08:33

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Arduino C# управление двигателями с консоли ПК
СообщениеДобавлено: 22 июл 2010, 21:05 
Не в сети

Зарегистрирован: 09 янв 2009, 13:02
Сообщения: 41
прог. языки: C/C++/Assembler/С#
Возникла следующая задача : написать программу ,которая управляет электро-двигателями (обыкновенными),через консоль.

Что имеется : платка 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-порт ,чтобы управлять двигателями?Если да ,то какие байты нужно слать?

Заранее спасибо за ответы!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino C# управление двигателями с консоли ПК
СообщениеДобавлено: 22 июл 2010, 21:57 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Слаботочным мотором можно прямо с COM управлять, но так никто не делает.

Вы можете проверить прогой Com port tool kit что шлет ваша прога в COM а можете без проги из терминала посылать символы управления мотором.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino C# управление двигателями с консоли ПК
СообщениеДобавлено: 22 июл 2010, 22:04 
Не в сети
Аватара пользователя

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

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino C# управление двигателями с консоли ПК
СообщениеДобавлено: 22 июл 2010, 22:14 
Не в сети

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

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

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

Вот если бы слать ,напрямую ,из программы (на C#) управляющие инструкции ,было бы вообще шикарно=)Но в гугле не нашел таких вещей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino C# управление двигателями с консоли ПК
СообщениеДобавлено: 22 июл 2010, 22:50 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Да и в прогое ардуины при обоих символах однаковое действие выполняется.

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

Код:
void loop()

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

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

}     


Если моторы заработают, то добавляейте управление.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino C# управление двигателями с консоли ПК
СообщениеДобавлено: 23 июл 2010, 00:02 
Не в сети

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

теперь займусь написание гуи на шарпах=)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino C# управление двигателями с консоли ПК
СообщениеДобавлено: 23 июл 2010, 09:36 
Не в сети
Аватара пользователя

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

_________________
Роботы, уже среди нас...
Прошу прощения за аватар, никак схему динамической индикации не могу настроить :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO