[ Раскрыть online-чат / Закрыть ] · [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 5 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Модератор форума: nightmare, Huntswarrior, Aleks_Crow, {{TNT}}  
Робот на ардуино
Отправлено 03.06.2012 - 20:4361
Участник
17 сообщений
Мужчина
Евгений74, ты какое питание се ставил


Профиль Личное сообщение Дом. страница icq Skype
0
Отправлено 03.06.2012 - 20:5062
Участник
79 сообщений
Мужчина
Maxymilian, 6 штук ААА, вроде в статье писал про это


Профиль Личное сообщение Дом. страница icq Skype
14
Отправлено 03.06.2012 - 20:5763
БЛОГГЕР
101 сообщений
Мужчина
Quote (izobretatel-1)
Elektro, Дуина сервы не потянет(у меня не получилось). Для работы нескольких серв нужно питание подавать на них отдельно.
согласен с этим мнением. Но у меня было два вида серв, одна мини - она работала от встроенного стаба ардуины +5в, и две ХОРОШЕНЬКИЕ сервы (уже по крупнее) от встроенного стаба завести не получилось, потом я эти две ХОРОШЕНЬКИЕ сервы запитал от сетевого стобилизатора на 6в,

вы поймите ардуине и не нужно тянуть сервы, она лишь подает на них управляющий сигнал! если у вас мощный источник питания, то от него можно за питать ардуину и 100 сервоприводов, лиж бы источник потянул, а ардуина тут не причем. но если вы всю нагрузку вешете через пин +5 в на ардуине тогда это не справляется встроенный стабилизатор. а не дуина!


Профиль Личное сообщение Дом. страница icq Skype
9
Отправлено 03.06.2012 - 21:0764
Участник
79 сообщений
Мужчина
Elektro, Смотри что получается 7 серв - это манипулятор, 3 дальномера это 3 аналоговых входа, драйвер это 4 pin (у меня 6, дополнительно два я как понял используются для моторстоп, моторрун), 2 pin это блютуз, и еще 1 серва для вращения дальномера. Да если пожертвовать аналоговыми входами, то вроде все умещается. Про то, что ШИМ можно сгенерировать не знал, спасибо за совет. kind [p.s.] Ответил на почту


Профиль Личное сообщение Дом. страница icq Skype
14
Отправлено 03.06.2012 - 21:2165
БЛОГГЕР
101 сообщений
Мужчина
Quote (Евгений74)
моторстоп, моторрун

это типа электро тормоз? в принципе он и не нужен в простом рботе))
Quote (Евгений74)
Да если пожертвовать аналоговыми входами, то вроде все умещается.

еще есть такой вариант как расширение выходов с помощью сдиговых регистров например. http://robocraft.ru/blog/arduino/541.html

Добавлено (03.06.2012, 21:21)
---------------------------------------------
ну и если не хватает ардуины уно то есть и ардуино мега tongue



Профиль Личное сообщение Дом. страница icq Skype
9
Отправлено 19.06.2012 - 21:5166
Участник
79 сообщений
Мужчина
Изменения: переписал программу для поиска предметов. Впереди установил две оптопары, в качестве датчиков поверхности. Теперь робот сам может убирать со стола. kind


Вот видео, код выложу попозже, откомментировать надо. Может кому пригодится.



3279344.jpg (94.2 Kb)
Профиль Личное сообщение Дом. страница icq Skype
14
Администраторы
3417 сообщений
Мужчина
biggrin


Только дурак нуждается в порядке-гений господствует над хаосом...
Онлайн ЧАТ по робототехнике ! Заходи и общайся без регистрации =)
Профиль Личное сообщение Дом. страница icq Skype
34
Отправлено 19.06.2012 - 22:4668
БЛОГГЕР
101 сообщений
Мужчина
молодец! biggrin


Профиль Личное сообщение Дом. страница icq Skype
9
Отправлено 20.06.2012 - 08:3569
БЛОГГЕР
90 сообщений
Мужчина
я не понимаю что он говорит wacko переведите пожалуйста) было бы здорово если бы он мусор собирал "на себя" ,в богажник, а потом выкидывал в урну smile но все равно здорово!


моя группа Вконтакте посвещённая робототехнике http://vkontakte.ru/BeamRobots
Профиль Личное сообщение Дом. страница icq Skype
0
Отправлено 23.06.2012 - 09:3870
Участник
79 сообщений
Мужчина
izobretatel-1, Озвучку вырезал из мультфильма робот Wall-e (робот уборщик). Он просто произносит Waall-e. laugh . Урна да было бы здорово. Это следующий шаг. Понадобятся энкодеры, возможно компас. Робот сваливает мусор в определенных координатах, где находится ведро под мусор.

Добавлено (21.06.2012, 16:17)
---------------------------------------------
Вот код к работе робота, к видео выложенному выше. При написании программы кроме освоенных операторов if - else, циклов for, был применен цикл while. Что по мне, так очень удобный цикл. Код откомментирован, но возможно не идеальный. wink . Так как опыт программирования не большой.

Code
#include <Servo.h>
#include <LMotorShield.h>

LMotorShield lms;
int ledPin = 13;                // Кнопка включения мп3
int ledPin1 = 12;                // кнопка перемотки мп3
int i;
int j;
int p[18]; // массив, здесь будем записывать данные с ИК дальномера в разных его положениях   
int gp,gp1,gp2,g;
int b;
void setup() {
{    
     Serial.begin(9600);
    lms.begin(LMS_SERVOS);
}
pinMode(ledPin,OUTPUT);        
pinMode(ledPin1,OUTPUT);      
pinMode(3,OUTPUT); // Motor A скорость
pinMode(7,OUTPUT); // Motor A направление
pinMode(11,OUTPUT); // Motor B скорость
pinMode(8,OUTPUT); // Motor B направление
pinMode(2,OUTPUT); // Motor A стоп, пуск
pinMode(4,OUTPUT); // Motor B стоп, пуск
}
void Forward() { // Подпрограмма движения робота вперед
digitalWrite(3,HIGH);
digitalWrite(7,LOW);
analogWrite(11,240);// здесь скоростью вращения колеса регулируем прямолинейность движения
digitalWrite(8,LOW);
}
void Backward(){ // Подпрограмма движения робота назад
digitalWrite(3,HIGH);
digitalWrite(7,HIGH);
digitalWrite(11,HIGH);
digitalWrite(8,HIGH);
}
void motorStop(){ // Подпрограмма остановки мотора

digitalWrite(4,HIGH);
digitalWrite(2,HIGH);
}
void motorRun(){ // Подпрограмма запуска мотора

digitalWrite(2,LOW);
digitalWrite(4,LOW);
}
void Spin_Left(){ // Вращение в лево
digitalWrite(11,HIGH);
digitalWrite(8,LOW);
digitalWrite(3,HIGH);
digitalWrite(7,HIGH);
}
void Spin_Right(){ // Вращение в право
digitalWrite(3,HIGH);
digitalWrite(7,LOW);
digitalWrite(11,HIGH);
digitalWrite(8,HIGH);
}
void loop()
{
lms.servoWrite(2,15); // раскрываем лапки
   delay(100);   
   lms.servoWrite(4,160); // раскрываем лапки
   delay(100);     
lms.servoWrite(1,0);
delay(200);
j=0;    
for (j=0;j<18;j++){  // для j от 0 до 18
lms.servoWrite(1,j*10); // вращение сервы по 10 градусов

gp=analogRead(0); // считываем данные с ИК радара
delay(50);
p[j]=gp; // записываем это значение в массив
Serial.println(p[j]); // выводим на экран

gp2=(analogRead(2)); // считываем значение датчиков плоскости
gp1=(analogRead(1));
g=min(gp1,gp2);      // выбираем минимальное значение из двух
   if (g<4){           // Если значение близко к 0, то отходим назад и разворачиваемся
     motorRun();
     Backward();
     delay(500);
     Spin_Left();
     delay(600);
     motorStop();
   }

   if (p[j]<160){     // если значение с дальномера меньше 150, (примерно 25 см.), то шаг вперед   
     motorRun();
     Forward();
     delay (50);
     motorStop();}
else {              // Иначе
     digitalWrite(ledPin1, HIGH); // нажимаем кнопку перемотка
     delay(100);
     digitalWrite(ledPin1, LOW); // отпускаем кнопку перемотка
     delay(100);
     
     lms.servoWrite(1,90); // поворачиваем голову вперед
     delay(200);
            
     gp=analogRead(0);    // считываем данные с ИК радара
     Serial.println(gp);
     while(gp<160){       // поворачиваемся, пока не заметим предмет    
     motorRun();
     if (j>9){            // если предмет с лева, то
     Spin_Left();// поворот в сторону объекта
     }
     else {              // иначе поворот вправо
     Spin_Right();
     }
     delay (10);
     motorStop();
     gp=analogRead(0); // считываем данные с ИК радара   
     delay(50);     
     }
       
   gp=analogRead(0); // считываем данные с ИК радара
   delay(50);
   while(gp<400){    //Двигаемся вперед пока предмет не будет на расстоянии 10 см.
   motorRun();    
   Forward();    // движение до объекта
   delay (50); // время движения
   motorStop();
   gp=analogRead(0); // считываем данные с ИК радара
   delay(50);
   }
   lms.servoWrite(1,0); // убираем голову в сторону, чтобы она не мешала захвату предмета и транспортировке
   delay(100);
   motorRun();    
   Forward();    // движение до объекта
   delay (700); // время движения
   motorStop();
     
   lms.servoWrite(2,140); // захват первой лапой
   delay(500);   
   lms.servoWrite(4,15); // захват второй лапой
   delay(100);
       
   gp2=(analogRead(2));
   gp1=(analogRead(1));
   g=min(gp1,gp2);
   while(g>4) // движение после захвата до конца плоскости.
    {
      gp2=(analogRead(2));
      gp1=(analogRead(1));
      Serial.println(gp2);
      g=min(gp1,gp2);
      motorRun();
      Forward();
      delay(5);
      motorStop();}
        
     lms.servoWrite(2,15); // раскрываем лапки
     delay(100);   
     lms.servoWrite(4,160); // раскрываем лапки
     delay(100);       
      
     digitalWrite(ledPin, HIGH); // нажимаем кнопку стоп
     delay(150);
     digitalWrite(ledPin, LOW); // отпускаем кнопку стоп
     delay(100);
      
     motorRun();
     Backward();
     delay(100);
     Spin_Right();
     delay(600);
   }
   }
   }

Добавлено (23.06.2012, 09:38)
---------------------------------------------
Подскажите компас для Ардуины. Бюджетный и доступный в применении вариант. Сам пока нашел вот такой http://www.goodluckbuy.com/3-axis-....le.html . Может кто сталкивался с таким?



Профиль Личное сообщение Дом. страница icq Skype
14
Отправлено 25.06.2012 - 09:4271
Участник
97 сообщений
Мужчина
ага, очень круто


Профиль Личное сообщение Дом. страница icq Skype
2
Отправлено 17.12.2013 - 23:3772
Начальная группа
1 сообщений
Мужчина
Доброй ночи все! Если не сложно подскажите новичку какие запчасти надо прикупить что бы собрать такого??? В начале читал список но некоторые моменты не понятно а именно что за оптопара какой еще драйвер можно применит и что использовалось для воспроизведение звука??? Зарание спасибо


Профиль Личное сообщение Дом. страница icq Skype
0
Отправлено 12.01.2014 - 12:1073
Участник
79 сообщений
Мужчина
Blender, Начинай собирать по порядку, станет все понятно. Драйвер можно и другой, программный код только придется немного подправить.


Профиль Личное сообщение Дом. страница icq Skype
14
Отправлено 15.06.2014 - 15:2974
Начальная группа
3 сообщений
Мужчина
Подскажите, к каким пинам подключаются три сервы, дальномер, оптопары???


Профиль Личное сообщение Дом. страница icq Skype
0
Администраторы
3417 сообщений
Мужчина
Цитата Подскажите, к каким пинам подключаются три сервы, дальномер, оптопары??? ()
undefined

- ну вообще-то начинают с того, что у вас есть уже и к чему вы там хотите все это подключать. Телепаты тут есть, но мы временно их не оплачиваем ))


Только дурак нуждается в порядке-гений господствует над хаосом...
Онлайн ЧАТ по робототехнике ! Заходи и общайся без регистрации =)
Профиль Личное сообщение Дом. страница icq Skype
34
  • Страница 5 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск: