• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

PC Управляемый робот и Arduino



 

 

Конструкция может быть сделана на основе Xigbee на основе меньшего робота, добавив Xigbee с обеих сторон.  Блок Adafruit Motor Shield использует ИС регистры сдвига. Данные приводятся в последовательном режиме, который преобразуется в параллель с помощью переключающего регистра IC.

Соединение выглядит следующим образом.

 

Совет по включению регистра

Регистр сдвига в Motors

 

 

После сборки робота сделайте соединение, как показано на следующей диаграмме. Перемычка питания на защитном кожухе двигателя работает как «Переключение на двигатель», она будет полезна при отладке.

 

 

Сборка робота, управляемого ПК, просто не требует сборки дополнительных настроек, чем базовые шасси Phantom, Arduino Board и Shield. Трудно найти GND и положительный вывод питания двигателя. Передайте следующий код в Arduino. Робот должен двигаться в прямом направлении, если он этого не делает, замените провод двигателя. например, если левый двигатель вращается в обратном направлении, а правый двигатель вращается в прямом направлении, тогда вам необходимо поменять провода на клемме M3.

 

// Robo India Robotic Motion Tutorial
 // Эти коды запускают робот в прямом направлении.
 // Декларация щитовых контактов
 int dataPin = 8;        
 int latchPin = 12;
 int clockPin = 4;
 int en = 7;
 void setup ()
 {
 pinMode (dataPin, OUTPUT );  // Настройка экрана двигателя.
 pinMode (latchPin, OUTPUT );
 pinMode (clockPin, OUTPUT );
 pinMode (en, OUTPUT );    
 digitalWrite (ru, LOW ); 
 forward ();  // Это funtion для движения вперед робота
 }
 void loop ()
 {
 }
 void forward ( void ) {
 digitalWrite (latchPin, LOW );            
 shiftOut (dataPin, clockPin, LSBFIRST , 3);
 digitalWrite (latchPin, HIGH );  
 }
 void backward ( void ) {
 digitalWrite (latchPin, LOW );            
 shiftOut (dataPin, clockPin, LSBFIRST , 164);
 digitalWrite (latchPin, HIGH );  
 }
 void turn_left ( void ) {
 digitalWrite (latchPin, LOW );            
 shiftOut (dataPin, clockPin, LSBFIRST , 161);
 digitalWrite (latchPin, HIGH );  
 }
 void turn_right ( void ) {
 digitalWrite (latchPin, LOW );            
 shiftOut (dataPin, clockPin, LSBFIRST , 38);
 digitalWrite (latchPin, HIGH );  
 }
 void halt ( void ) {
 digitalWrite (latchPin, LOW );            
 shiftOut (dataPin, clockPin, LSBFIRST , 32);
 digitalWrite (latchPin, HIGH );  
 }

 

 

Программа для управляемых ПК роботов. Эта программа считывает последовательные данные и действует соответственно. Подробная информация о данных упоминается заранее.

 

Он имеет следующую предопределенную функцию для движения робота

 

1. forward (): движение вперед робота.

2. назад (): назад движение робота.

3. turn_left (): для поворота влево.

4. turn_right (): для поворота направо.

5. halt (): для остановки робота.

 

Код

 

// Robo India PC Controlled Tutorial
// www.roboindia.com
// declaring Motor Shield
int dataPin = 8;        
int latchPin = 12;
int clockPin = 4;
int en = 7;
void setup()
{   // setting up Motor Shield. 
    pinMode(dataPin, OUTPUT);      
    pinMode(latchPin, OUTPUT);
    pinMode(clockPin, OUTPUT);
    pinMode(en, OUTPUT);    
    digitalWrite(en, LOW);   
    Serial.begin(9600); // Intializing Serial Communication.
}
void loop()
{
while(Serial.available())
  {     
  char option = Serial.read();
  switch (option)
  {
    case 70:   // 70 is ASCII code for - F
    forward();
    break;
    case 66:   // 66 is ASCII code for - B
    backward();
    break;
    case 76:   // 76 is ASCII code for - L
    turn_left();
    break;
    case 82:   // 82 is ASCII code for - R
    turn_right();
    break;
    case 83:  // 83 is ASCII code for - S
    halt();
    break; 
  }
}
}
void forward(void){  // function for forward movement. 
        digitalWrite(latchPin, LOW);            
        shiftOut(dataPin, clockPin, LSBFIRST, 3);
        digitalWrite(latchPin, HIGH);  
}
void backward(void){   // function for forward movement. 
        digitalWrite(latchPin, LOW);            
        shiftOut(dataPin, clockPin, LSBFIRST, 164);
        digitalWrite(latchPin, HIGH);  
}
void turn_left(void){   // function for left turn. 
        digitalWrite(latchPin, LOW);            
        shiftOut(dataPin, clockPin, LSBFIRST, 161);
        digitalWrite(latchPin, HIGH);  
}
void turn_right(void){   // function for Right turn. 
        digitalWrite(latchPin, LOW);            
        shiftOut(dataPin, clockPin, LSBFIRST, 38);
        digitalWrite(latchPin, HIGH);  
}
void halt(void){        // function for stopping robot. 
        digitalWrite(latchPin, LOW);             
        shiftOut(dataPin, clockPin, LSBFIRST, 32);
        digitalWrite(latchPin, HIGH);  
}

 

Программное обеспечение, которое мы используем здесь, отправляет последовательные данные в компьютер со скоростью 9600 бод. Данные и связанные с ними операции заключаются в следующем:

 

Вперед - F

Назад - B

Слева - L

Правильно - R

Стоп - S

 

Вы можете протестировать программу робота на последовательном терминале, отправив вышеупомянутый набор символов.

 

После загрузки извлеките папку и запустите файл .exe. Вам нужно будет отключить USB-кабель arduino, повторно подключить его и ввести номер порта. и нажмите кнопку «Открыть». Если вы введете правильный номер порта, будут активированы другие функции. Перед закрытием программного обеспечения нажмите кнопку закрытия.

 

Этот моторный блок основан на щите Adafruit Motor Shield.

 

 

В начало обзора



Купить радиодетали для ремонта
 



Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 372



          

Радио для всех© 2024