Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 22
  1. #1
    Пользователь Аватар для Kitam1n
    Регистрация
    03.04.2012
    Сообщений
    24
    Вес репутации
    160

    По умолчанию Arduino <=> PC: прямое удобное управление

    Здравствуйте,

    Есть ли открытые программы для прямого управления с ПК Arduino-подобными платами?
    Необходимо управлять гусеничным вездеходом (2 электромотора) с web-камерой на двух сервоприводах, в общем все как на видео.




  2. #2
    Пользователь Аватар для Kitam1n
    Регистрация
    03.04.2012
    Сообщений
    24
    Вес репутации
    160

    По умолчанию Re: Arduino <=> PC: прямое удобное управление

    Ни одного ответа
    Я понимаю, раздавать готовую программу над которой сам кропотливо работал ни кто не будет, сбился с ног в поисках такой.
    Давайте тогда разбираться вместе с самого низа?
    Вот например такой простой скетч для Arduino:
    PHP код:
    int ledPin 13;
    int ledPin2 12;

    void setup() 
    {
      
    Serial.begin(9600);
      
      
    pinMode(ledPinOUTPUT);
      
    pinMode(ledPin2OUTPUT);
    }

    void loop()
    {
      while (
    Serial.available() == 0);
      
      
    int val Serial.read() - '0';
      
      if (
    val == 1)
      {
        
    digitalWrite(ledPinHIGH);
        
    delay(1000); 
        
    digitalWrite(ledPinLOW);
      }

      if (
    val == 2)
      {
        
    digitalWrite(ledPin2HIGH);
        
    delay(1000); 
        
    digitalWrite(ledPin2LOW);
      }
      
        if (
    val == 3)
      {
        
    digitalWrite(ledPinHIGH);
        
    digitalWrite(ledPin2HIGH);
        
    delay(1000); 
        
    digitalWrite(ledPinLOW);
        
    digitalWrite(ledPin2LOW);
      }

      
    Serial.flush(); //это я не знаю для чего, не стал удалять


    Скетч писал сам, из подобных примеров, поэтому сильно палками не бейте, лучше поправьте. Суть в том что при отправке (по СериалМонитору) "1" – горит один светодиод, "2" – другой, "3" - оба. Ничего не отправляешь - ничего не горит!
    Ну вот и первый пример: нужна визуализация трех кнопок, при нажатии и удержании которых (без фиксации) будут отправляться циферки в COM.
    1. В соседней теме разбирались очень не плохие примеры с кнопками на Processing.
    2. Куда еще стоит начать копать? Delphi?
    Последний раз редактировалось Kitam1n; 13.04.2012 в 15:37.

  3. #3
    Пользователь Аватар для Kitam1n
    Регистрация
    03.04.2012
    Сообщений
    24
    Вес репутации
    160

    По умолчанию Re: Arduino <=> PC: прямое удобное управление

    Опять тишина, ну ладно, может кому будет интересно: значит нашел работующий пример с кнопками, надобовлял своих, вроде ничего получается . Вот не знаю как сделать управление сервами ползунками
    Подскажите? Ни одного примера с исходником не найду
    Если кому нужны исходники для экспериментов говорите!
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	1.JPG 
Просмотров:	10678 
Размер:	30.8 Кб 
ID:	14287  

  4. #4
    Пользователь Аватар для Kitam1n
    Регистрация
    03.04.2012
    Сообщений
    24
    Вес репутации
    160

    По умолчанию Re: Arduino <=> PC: прямое удобное управление

    И по прежнему тишина
    Люди, HELP!!! Помогите сделать управление сервами при помощи ползунка plz!!!
    А то кнопками это очень уж грубо и не удобно.

    Выкладываю исходники и видушку того что есть! Подтягивайтесь!


    Сорри за качество, но под рукой только телефон
    Вложения Вложения

  5. #5
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    400

    По умолчанию Re: Arduino <=> PC: прямое удобное управление

    Я бы как-то так сделал:
    PHP код:
    #include <Servo.h> // включаем библиотеку Серво  

    Servo myservo// вводим myservo
    Servo myservo2// вводим myservo2

    int val 0;       // variable to store the data from the serial port
    int ledPin1 2;   // LED connected to digital pin 2
    int ledPin2 3;   // LED connected to digital pin 3
    int ledPin3 4;   // LED connected to digital pin 4
    int ledPin4 5;   // LED connected to digital pin 5
    int ledPin5 6;   // LED connected to digital pin 6

    void setup() 
      {
      
    myservo.attach(9);  //присваиваем myservo 9-й пин
      
    myservo2.attach(10);  //присваиваем myservo2 10-й пин
      
    pinMode(ledPin1,OUTPUT);    // declare the LED's pin as output
      
    pinMode(ledPin2,OUTPUT);    // declare the LED's pin as output
      
    pinMode(ledPin3,OUTPUT);    // declare the LED's pin as output
      
    pinMode(ledPin4,OUTPUT);    // declare the LED's pin as output
      
    pinMode(ledPin5,OUTPUT);    // declare the LED's pin as output
     
      
    Serial.begin(9600);        // connect to the serial port
      
    }

    void loop () 
    {
      if (
    Serial.available() > 1)
      { 
        
    Serial.read();  
        
    Serial.read();
        
    с Serial.read();
        if(
    a==255)//управляем сервами
        
    {
          if(
    b==0myservo.write(c);
          if(
    b==1myservo2.write(c);
        }
        if(
    a==127)//управляем диодами
        
    {
          switch (
    b)
          {
            case 
    0:
              
    digitalWrite(ledPin1,HIGH); //левый двигатель
              
    digitalWrite(ledPin2,HIGH); //правый двигатель
            
    break;
            case 
    1:
              
    digitalWrite(ledPin1,LOW);// оба стоп
              
    digitalWrite(ledPin2,LOW);
            break;
            case 
    2:
               
    //ну и так далее
            
    break;
          }
        }
      }

    С делфи ничем помочь не могу. Есть вариант на С. В архиве.
    Вложения Вложения

  6. #6
    Пользователь Аватар для Kitam1n
    Регистрация
    03.04.2012
    Сообщений
    24
    Вес репутации
    160

    По умолчанию Re: Arduino <=> PC: прямое удобное управление

    manu_245, спасибо, но при верификации IDE ругается А я не врубаю в чем дело.
    Курю инструкции по программированию Aurdino.

  7. #7
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    400

    По умолчанию Re: Arduino <=> PC: прямое удобное управление

    а, точно

    1. if (Serial.available() > 2)
    2.byte a,b,c; в этой же функции
    3. еще ругается на строку с = Serial.read(); там "c" на анлгийском надо вписать. совсем плох я, забыл раскладку переключить.
    После этого должно нормально компилироваться.
    Последний раз редактировалось manu_245; 16.04.2012 в 01:44.

  8. #8
    Пользователь Аватар для Kitam1n
    Регистрация
    03.04.2012
    Сообщений
    24
    Вес репутации
    160

    По умолчанию Re: Arduino <=> PC: прямое удобное управление

    Спасибо!
    1. поменял
    2.что такое byte? в скетче этого вообще нет
    3. с английскую поставил

    Теперь ругается на то что a, b и c was not declared in this scope

    PHP код:
    #include <Servo.h> // включаем библиотеку Серво  

    Servo myservo// вводим myservo
    Servo myservo2// вводим myservo2

    int val 0;       // variable to store the data from the serial port
    int ledPin1 2;   // LED connected to digital pin 2
    int ledPin2 3;   // LED connected to digital pin 3
    int ledPin3 4;   // LED connected to digital pin 4
    int ledPin4 5;   // LED connected to digital pin 5
    int ledPin5 6;   // LED connected to digital pin 6

    void setup() 
      {
      
    myservo.attach(9);  //присваиваем myservo 9-й пин
      
    myservo2.attach(10);  //присваиваем myservo2 10-й пин
      
    pinMode(ledPin1,OUTPUT);    // declare the LED's pin as output
      
    pinMode(ledPin2,OUTPUT);    // declare the LED's pin as output
      
    pinMode(ledPin3,OUTPUT);    // declare the LED's pin as output
      
    pinMode(ledPin4,OUTPUT);    // declare the LED's pin as output
      
    pinMode(ledPin5,OUTPUT);    // declare the LED's pin as output
     
      
    Serial.begin(9600);        // connect to the serial port
      
    }

    void loop () 
    {
      if (
    Serial.available() > 2)
      { 
        
    Serial.read();  
        
    Serial.read();
        
    Serial.read();
        if(
    a==255)//управляем сервами
        
    {
          if(
    b==0myservo.write(c);
          if(
    b==1myservo2.write(c);
        }
        if(
    a==127)//управляем диодами
        
    {
          switch (
    b)
          {
            case 
    0:
              
    digitalWrite(ledPin1,HIGH); //левый двигатель
              
    digitalWrite(ledPin2,HIGH); //правый двигатель
            
    break;
            case 
    1:
              
    digitalWrite(ledPin1,LOW);// оба стоп
              
    digitalWrite(ledPin2,LOW);
            break;
            case 
    2:
               
    //ну и так далее
            
    break;
          }
        }
      }


  9. #9
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    400

    По умолчанию Re: Arduino <=> PC: прямое удобное управление

    надо объявить переменные.
    После
    if (Serial.available() > 2)
    {
    вставить строку byte a,b,c;

  10. #10
    Пользователь Аватар для Kitam1n
    Регистрация
    03.04.2012
    Сообщений
    24
    Вес репутации
    160

    По умолчанию Re: Arduino <=> PC: прямое удобное управление

    manu_245, спасибо что на пальцах!!!

    компиляция прошла, залил! Теперь думаю, а что это дало? управлять то как теперь? что слать на Arduino?

    Ушел курить инфу о byte, switch и case...



    PHP код:
    #include <Servo.h> // включаем библиотеку Серво  

    Servo myservo// вводим myservo
    Servo myservo2// вводим myservo2

    int val 0;       // variable to store the data from the serial port
    int ledPin1 2;   // LED connected to digital pin 2
    int ledPin2 3;   // LED connected to digital pin 3
    int ledPin3 4;   // LED connected to digital pin 4
    int ledPin4 5;   // LED connected to digital pin 5
    int ledPin5 6;   // LED connected to digital pin 6

    void setup() 
      {
      
    myservo.attach(9);  //присваиваем myservo 9-й пин
      
    myservo2.attach(10);  //присваиваем myservo2 10-й пин
      
    pinMode(ledPin1,OUTPUT);    // declare the LED's pin as output
      
    pinMode(ledPin2,OUTPUT);    // declare the LED's pin as output
      
    pinMode(ledPin3,OUTPUT);    // declare the LED's pin as output
      
    pinMode(ledPin4,OUTPUT);    // declare the LED's pin as output
      
    pinMode(ledPin5,OUTPUT);    // declare the LED's pin as output
     
      
    Serial.begin(9600);        // connect to the serial port
      
    }

    void loop () 
    {
      if (
    Serial.available() > 2)
      { 
        
    byte a,b,c
        
    Serial.read();  
        
    Serial.read();
        
    Serial.read();
        if(
    a==255)//управляем сервами
        
    {
          if(
    b==0myservo.write(c);
          if(
    b==1myservo2.write(c);
        }
        if(
    a==127)//управляем диодами
        
    {
          switch (
    b)
          {
            case 
    0:
              
    digitalWrite(ledPin1,HIGH); //левый двигатель
              
    digitalWrite(ledPin2,HIGH); //правый двигатель
            
    break;
            case 
    1:
              
    digitalWrite(ledPin1,LOW);// оба стоп
              
    digitalWrite(ledPin2,LOW);
            break;
            case 
    2:
               
    //ну и так далее
            
    break;
          }
        }
      }

    Последний раз редактировалось Kitam1n; 16.04.2012 в 12:12.

Страница 1 из 3 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)

Ваши права

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