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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.06.2015, 21:24   #1
Goblin
Junior Member
 
Регистрация: 05.06.2015
Сообщений: 27
Вес репутации: 0
Goblin is an unknown quantity at this point
Smile AirBot Zefir

Всем привет!

Я новичёк в робототехнике, но у меня есть желание, сделать воздушного робота на основе роутера TL-WR703N и прошивки CyberWtr.

За основу взять летательный аппарат Зефир:
https://youtu.be/1DIjHMABM7g

Процесс сборки:
https://youtu.be/K4EO5_E8euQ

Компоненты электроники (то что есть в наличии):
1. KV2200 двигатель + XXD 30A ESC
2. Ardunio NANO CH340
3. Серво SG90 - 2 шт.
4. Usb Hub.
5. Роутер WT3020
6. Webcam Logitech QuickCam E3500

Щас пытаюсь разобраться с управлением сервомоторов.
Скетч:
Код:
#include <CyberLib.h> 
#include <Servo.h> 

Servo leftservo; 
Servo rightservo; 

long previousMillis;
uint8_t LedStep = 0; // Счетчик
int i; 
boolean light_stat;
uint8_t inByte; 


#define init {D4_Out; D5_Out; D6_Out; D7_Out; D8_Out; D11_Out; D12_Out;}  

void setup()   
{  
  leftservo.attach(9); // Подключение сервоприводов к порту 
  rightservo.attach(10); // Подключение сервоприводов к порту 
  init;  // Инициализация портов 
  D11_Low; // Динамик  OFF
  randomSeed(A6_Read); //Получить случайное значение   
  horn(); //звуковое оповещение готовности робота  
  UART_Init(57600);// Инициализация порта для связи с роутером   
   
  leftservo.write(90);  // Повернуть левый серво на 0 градусов
  rightservo.write(90);  // Повернуть правый серво на 0 градусов

}   

void loop()   
{  


  if (UART_ReadByte(inByte)) //Если что то пришло 
  { 
  
  

    switch (inByte)  // Смотрим какая команда пришла 
    {   
        case 'x': // Газ
          gas(); 
        break;  
         
        case 'W': // Движение вниз 
	
          bottom();   
        break;   
         
        case 'D': // Поворотjт влево 
          robot_rotation_left();  
        break; 

        case 'A': // Поворот вправо 
          robot_rotation_right();  
        break;  
         
        case 'S': // Движение назад 
         top();  
        break;  
         
        case 'U': // Камера поднимается вверх
           
        break;  
         
        case 'J': // Камера опускается вниз 
         
        break;  
         
        case 'H': // Камера поворачивается  вправо
        
        break;  
         
        case 'K': // Камера поворачивается влево      
        
        break;  
         
         case 'B': //  Бластер 
         D12_High; 
        break; 
        
        case 'C': // Клаксон 
         horn(); 
        break; 
         
        case 'V': // Включить/Выключить фары 
        if(light_stat)
        {
         D8_Low;
         light_stat=false;
        } else 
              {
               D8_High;
               light_stat=true;
              }
        break; 
    }  
         
  }  

} 

void horn()
{
  for(uint8_t i=0; i<12; i++) beep(70, random(100, 2000));  //звуковое оповещение 
}

void bottom() 
{ 
  leftservo.write(45);  // Повернуть левый серво влево на 45 градусов
  rightservo.write(45);  // Повернуть правый серво влево на 45 градусов
   delay(150);
    leftservo.write(90);  // Повернуть левый серво влево на 45 градусов
  rightservo.write(90);  // Повернуть правый серво влево на 45 градусов
} 

void gas() 
{ 
  leftservo.write(45);  // Повернуть левый серво влево на 45 градусов
  rightservo.write(45);  // Повернуть правый серво влево на 45 градусов
   
} 

void top() 
{ 
 leftservo.write(135);  // Повернуть левый серво влево на 45 градусов
  rightservo.write(135);  // Повернуть правый серво влево на 45 градусов 
    delay(150);
    leftservo.write(90);  // Повернуть левый серво влево на 45 градусов
  rightservo.write(90);  // Повернуть правый серво влево на 45 градусов
} 

void robot_rotation_left() 
{ 
  leftservo.write(45);  // Повернуть левый серво влево на 45 градусов
  rightservo.write(135);  // Повернуть правый серво влево на 45 градусов
   delay(150);
    leftservo.write(90);  // Повернуть левый серво влево на 45 градусов
  rightservo.write(90);  // Повернуть правый серво влево на 45 градусов 
} 

void robot_rotation_right() 
{ 
  leftservo.write(135);  // Повернуть левый серво влево на 45 градусов
  rightservo.write(45);  // Повернуть правый серво влево на 45 градусов
    delay(150);
    leftservo.write(90);  // Повернуть левый серво влево на 45 градусов
  rightservo.write(90);  // Повернуть правый серво влево на 45 градусов
}
На очереди запуск KV2200 двигатель + XXD 30A ESC
http://www.poprobot.ru/home/zapuskbe...rnogodvigatela

Если со всем этим разберусь, то сборка Зефирки и монтажа электроники много времени не займет.

Последний раз редактировалось Goblin; 06.06.2015 в 07:20.
Goblin вне форума   Ответить с цитированием
 


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

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

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

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


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


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