Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Робототехника

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.03.2014, 19:48   #121
vladimirm2
Junior Member
 
Регистрация: 26.12.2013
Адрес: Хайфа
Сообщений: 10
Вес репутации: 0
vladimirm2 is an unknown quantity at this point
По умолчанию Re: Создаем робота своими руками

Может кто подскажет, что нужно изменить в коде

http://cyber-place.ru/showthread.php?p=6211#post6211

для того, чтобы управлять роботом при помощи вот этой программы - Bluetooth RC Controller

_https://play.google.com/store/apps/details?id=braulio.calle.bluetoothRCcont roller

Хочу использовать акселерометр мобильного устройства. Подскажите пожалуйста!
vladimirm2 вне форума   Ответить с цитированием
Старый 10.03.2014, 20:34   #122
cyberlab
Senior Member
 
Регистрация: 25.11.2013
Сообщений: 116
Вес репутации: 0
cyberlab is an unknown quantity at this point
По умолчанию Re: Создаем робота своими руками

Так там же есть ссылка на скетч
PHP код:
char dataIn 'S';        //Character/Data coming from the phone.
int pinForwardBack 13;     //Pin that controls the car's Forward-Back motor.
int pinLeftRight 12;       //Pin that controls the car's Left-Right motor.
int pinBrakeLeftRight 9;  //Pin that enables/disables Left-Right motor.
int pinBrakeForwardBack 8;  //Pin that enables/disables Forward-Back motor.
int pinLeftRightSpeed 3;    //Pin that sets the speed for the Left-Right motor.
int pinForwardBackSpeed 11;  //Pin that sets the speed for the Forward-Back motor.
int pinfrontLights 4;    //Pin that activates the Front lights.
int pinbackLights 7;    //Pin that activates the Back lights.
char determinant;         //Used in the check function, stores the character received from the phone.
char det;                 //Used in the loop function, stores the character received from the phone.
int velocity 0;    //Stores the speed based on the character sent by the phone.

void setup() 
{       
//*************NOTE: If using Bluetooth Mate Silver use 115200 btu
//                   If using MDFLY Bluetooth Module use 9600 btu
Serial.begin(115200);  //Initialize serial communication with Bluetooth module at 115200 btu.
pinMode(pinForwardBackOUTPUT);
pinMode(pinLeftRightOUTPUT);
pinMode(pinBrakeLeftRightOUTPUT);
pinMode(pinBrakeForwardBackOUTPUT);
pinMode(pinLeftRightSpeed OUTPUT);
pinMode(pinForwardBackSpeed OUTPUT);
pinMode(pinfrontLights OUTPUT);
pinMode(pinbackLights OUTPUT);
}

void loop()

    
det check();
      while (
det == 'F')   //if incoming data is a F, move forward
      
{     
          
digitalWrite(pinForwardBackLOW); 
          
digitalWrite(pinBrakeForwardBackLOW);
          
analogWrite(pinForwardBackSpeed,velocity);
          
analogWrite(pinLeftRightSpeed,0);  //To make the Left/Right Motor not move, you just need to make its speed 0.    
          
det check();          
      }  
      while (
det == 'B')   //if incoming data is a B, move back
      
{    
          
digitalWrite(pinForwardBackHIGH); 
          
digitalWrite(pinBrakeForwardBackLOW);
          
analogWrite(pinForwardBackSpeed,velocity); 
          
analogWrite(pinLeftRightSpeed,0);         
          
det check();          
      } 

      while (
det == 'L')   //if incoming data is a L, move wheels left
      
{     
          
digitalWrite(pinLeftRightHIGH);
          
digitalWrite(pinBrakeLeftRightLOW);
          
digitalWrite(pinForwardBackLOW);
          
analogWrite(pinForwardBackSpeed,0);    //To make the Forward/Back Motor not move, you just need to make its speed 0.
          
analogWrite(pinLeftRightSpeed,255);        
          
det check();          
      }  
      while (
det == 'R')   //if incoming data is a R, move wheels right
      
{    
          
digitalWrite(pinLeftRightLOW);
          
digitalWrite(pinBrakeLeftRightLOW);
          
digitalWrite(pinForwardBackLOW);
          
analogWrite(pinForwardBackSpeed,0);
          
analogWrite(pinLeftRightSpeed,255);         
          
det check();          
      }
     
      while (
det == 'I')   //if incoming data is a I, turn right forward
      
{     
          
digitalWrite(pinLeftRightLOW);
          
digitalWrite(pinForwardBackLOW);          
          
digitalWrite(pinBrakeLeftRightLOW); 
          
digitalWrite(pinBrakeForwardBackLOW);  
          
analogWrite(pinForwardBackSpeed,velocity);
          
analogWrite(pinLeftRightSpeed,255);                  
          
det check();          
      }  
      while (
det == 'J')   //if incoming data is a J, turn right back
      
{      
          
digitalWrite(pinLeftRightLOW);
          
digitalWrite(pinForwardBackHIGH);         
          
digitalWrite(pinBrakeLeftRightLOW); 
          
digitalWrite(pinBrakeForwardBackLOW);
          
analogWrite(pinForwardBackSpeed,velocity);
          
analogWrite(pinLeftRightSpeed,255);          
          
det check();          
      }          
      while (
det == 'G')   //if incoming data is a G, turn left forward
      

          
digitalWrite(pinLeftRightHIGH);       
          
digitalWrite(pinForwardBackLOW);
          
digitalWrite(pinBrakeLeftRightLOW); 
          
digitalWrite(pinBrakeForwardBackLOW); 
          
analogWrite(pinForwardBackSpeed,velocity);
          
analogWrite(pinLeftRightSpeed,255);          
          
det check();          
      }    
      while (
det == 'H')   //if incoming data is a H, turn left back
      
{
          
digitalWrite(pinLeftRightHIGH);
          
digitalWrite(pinForwardBackHIGH); 
          
digitalWrite(pinBrakeLeftRightLOW); 
          
digitalWrite(pinBrakeForwardBackLOW);
          
analogWrite(pinForwardBackSpeed,velocity);
          
analogWrite(pinLeftRightSpeed,255);          
          
det check();                                              
      }   
      while (
det == 'S')   //if incoming data is a S, stop
      
{
          
digitalWrite(pinForwardBackLOW); 
          
digitalWrite(pinLeftRightLOW);
          
analogWrite(pinForwardBackSpeed,0);
          
analogWrite(pinLeftRightSpeed,0);          
          
det check(); 
      }
      while (
det == 'U')   //if incoming data is a U, turn ON front lights
      
{
          
digitalWrite(pinfrontLightsHIGH);          
          
det check(); 
      }
      while (
det == 'u')   //if incoming data is a u, turn OFF front lights
      
{
          
digitalWrite(pinfrontLightsLOW);          
          
det check(); 
      }
      while (
det == 'W')   //if incoming data is a W, turn ON back lights
      
{
          
digitalWrite(pinbackLightsHIGH);          
          
det check(); 
      }
      while (
det == 'w')   //if incoming data is a w, turn OFF back lights
      
{
          
digitalWrite(pinbackLightsLOW);
          
det check(); 
      }
}

int check()
{
  if (
Serial.available() > 0)    //Check for data on the serial lines.
  
{   
    
dataIn Serial.read();  //Get the character sent by the phone and store it in 'dataIn'.
        
if (dataIn == 'F')
        {     
          
determinant 'F';
        }  
        else if (
dataIn == 'B')
        { 
          
determinant 'B'
        }
        else if (
dataIn == 'L')  
        { 
          
determinant 'L';
        }
        else if (
dataIn == 'R')  
        { 
          
determinant 'R';
        } 
        else if (
dataIn == 'I')  
        { 
          
determinant 'I'
        }  
        else if (
dataIn == 'J')  
        {  
          
determinant 'J';
        }          
        else if (
dataIn == 'G'
        {
          
determinant 'G'
        }    
        else if (
dataIn == 'H')  
        {
          
determinant 'H'
        }   
        else if (
dataIn == 'S'
        {
          
determinant 'S';
        }
        else if (
dataIn == '0'
        {
          
velocity 0;    //"velocity" does not need to be returned.
        
}
        else if (
dataIn == '1'
        {
          
velocity 25;
        }
        else if (
dataIn == '2'
        {
          
velocity 50;
        }
        else if (
dataIn == '3'
        {
          
velocity 75;
        }
        else if (
dataIn == '4'
        {
          
velocity 100;
        }
        else if (
dataIn == '5'
        {
          
velocity 125;
        }
        else if (
dataIn == '6'
        {
          
velocity 150;
        }
        else if (
dataIn == '7'
        {
          
velocity 175;
        }
        else if (
dataIn == '8'
        {
          
velocity 200;
        }
        else if (
dataIn == '9'
        {
          
velocity 225;
        }
        else if (
dataIn == 'q'
        {
          
velocity 255;
        }
        else if (
dataIn == 'U'
        {
          
determinant 'U';
        }
        else if (
dataIn == 'u'
        {
          
determinant 'u';
        }
        else if (
dataIn == 'W'
        {
          
determinant 'W';
        }
       
        else if (
dataIn == 'w'
        {
          
determinant 'w';
        }
  }
return 
determinant;

cyberlab вне форума   Ответить с цитированием
Старый 10.03.2014, 20:54   #123
vladimirm2
Junior Member
 
Регистрация: 26.12.2013
Адрес: Хайфа
Сообщений: 10
Вес репутации: 0
vladimirm2 is an unknown quantity at this point
По умолчанию Re: Создаем робота своими руками

Теперь вопрос, а как-же его привязать к нашему роботу, чтобы все управление совпадало? Задачка...
vladimirm2 вне форума   Ответить с цитированием
Старый 10.03.2014, 21:13   #124
cyberlab
Senior Member
 
Регистрация: 25.11.2013
Сообщений: 116
Вес репутации: 0
cyberlab is an unknown quantity at this point
По умолчанию Re: Создаем робота своими руками

Поменяйте порты
Цитата:
int pinForwardBack = 13; //Pin that controls the car's Forward-Back motor.
int pinLeftRight = 12; //Pin that controls the car's Left-Right motor.
int pinBrakeLeftRight = 9; //Pin that enables/disables Left-Right motor.
int pinBrakeForwardBack = 8; //Pin that enables/disables Forward-Back motor.
int pinLeftRightSpeed = 3; //Pin that sets the speed for the Left-Right motor.
int pinForwardBackSpeed = 11; //Pin that sets the speed for the Forward-Back motor.
int pinfrontLights = 4; //Pin that activates the Front lights.
int pinbackLights = 7; //Pin that activates the Back lights.
cyberlab вне форума   Ответить с цитированием
Старый 10.03.2014, 21:16   #125
vladimirm2
Junior Member
 
Регистрация: 26.12.2013
Адрес: Хайфа
Сообщений: 10
Вес репутации: 0
vladimirm2 is an unknown quantity at this point
По умолчанию Re: Создаем робота своими руками

Спасибо! ) Но что-то у меня ничего не получается. Отключил вроде все строчки управления светом передних и задних фонарей, но при тестировании вылазят ошибки в коде. Потом, может, наоборот, в нашем скетче вместо цифровых команд прописать буквенные из новой программы, но как, может кто поможет и подскажет?

Последний раз редактировалось vladimirm2; 11.03.2014 в 00:54.
vladimirm2 вне форума   Ответить с цитированием
Старый 13.06.2014, 22:01   #126
sanyok
Junior Member
 
Регистрация: 12.03.2014
Сообщений: 3
Вес репутации: 0
sanyok is an unknown quantity at this point
По умолчанию Re: Создаем робота своими руками

Цитата:
Сообщение от Admin Посмотреть сообщение
Оптический энкодер, для измерения пройденного расстояния и углов поворота
Состоит из двух частей, из оптопары и диска с двадцатью отверстиями
Подскажите, пожалуйста, набор содержит оптопару и диски или есть только диски? Набор интересный и цена приемлемая
sanyok вне форума   Ответить с цитированием
Старый 13.06.2014, 23:27   #127
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Создаем робота своими руками

Диски в наборе есть, а вот оптопар к сожалению пока нет
Admin вне форума   Ответить с цитированием
Старый 22.11.2014, 21:24   #128
Vaneks
Junior Member
 
Регистрация: 11.01.2014
Сообщений: 17
Вес репутации: 0
Vaneks is an unknown quantity at this point
По умолчанию Re: Создаем робота своими руками

недавно случайно спалил драйвер движков, работает всего один мотор. второй еле крутится и его Н моост греется сильно. заказывать новый не хочется, долго ждать, могу ли я использовать микросхему L293d?
Vaneks вне форума   Ответить с цитированием
Старый 22.11.2014, 21:32   #129
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Создаем робота своими руками

А драйвер какой?
Admin вне форума   Ответить с цитированием
Старый 22.11.2014, 21:38   #130
Vaneks
Junior Member
 
Регистрация: 11.01.2014
Сообщений: 17
Вес репутации: 0
Vaneks is an unknown quantity at this point
По умолчанию Re: Создаем робота своими руками

использовать l293d как драйвер.
Vaneks вне форума   Ответить с цитированием
Ответ

Метки
сделать робота дома, робот, робота свими руками, robot, как сделать робота, платформа для робота


Здесь присутствуют: 29 (пользователей: 0 , гостей: 29)
 

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 18:13. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика