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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.10.2014, 21:33   #11
tanir196
Junior Member
 
Регистрация: 03.10.2014
Адрес: Балашиха
Сообщений: 12
Вес репутации: 0
tanir196 is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "Робот"

Код:
#include <CyberLib.h>  // Подключаем библиотеку
#include <Servo.h> // Подключаем библиотеку сервоприводов

Servo myservo1;
Servo myservo2;

long previousMillis; // Нужно для таймера
int LedStep = 0; // Счетчик для LED
int i;

#define robot_go {D4_Low; D5_High; D6_High; D7_Low;} 
#define robot_back {D4_High; D5_High; D6_High; D7_High;} 
#define robot_stop {D4_Low; D5_Low; D6_Low; D7_Low;} 
#define robot_rotation_right {D4_Low; D5_High; D6_High; D7_High;}
#define robot_rotation_left {D4_High; D5_High; D6_High; D7_Low;}
#define LED_ON {D13_High;} 
#define LED_OFF {D13_Low;} 
#define Headlamp_ON {D8_Low;} 
#define Headlamp_OFF {D8_High;}
#define Buzzer {tone(11, 494, 500);}
#define init {D4_Out; D5_Out; D6_Out; D7_Out; D8_Out; D13_Out;} 
uint8_t inByte;


void setup()  
{ 
  myservo1.attach(9); // Подключение сервоприводов к порту
  myservo2.attach(10); // Подключение сервоприводов к порту
  D11_Out;  D11_Low; // Динамик 
  Headlamp_OFF; // Фары выкл по умолчанию
  for(uint8_t i=0; i<12; i++) beep(80, random(100, 2000)); //звуковое оповещение готовности робота 
  init;  // Инициализация портов
  //Buzzer; // Инициализация портов динамика
  UART_Init(57600);// Инициализация порта для связи с роутером  
  wdt_enable (WDTO_500MS); 
}  

void loop()  
{ 
    unsigned long currentMillis = millis(); // Обновление таймера
      if (LedStep == 0 && currentMillis - previousMillis > 500){ // Задержка 0,5 сек. 
      previousMillis = currentMillis; // обновление таймер
      LED_ON;   // Включить
      LedStep = 1; // Счетчик шагов
    }

    if (LedStep == 1 && currentMillis - previousMillis > 500){ // Задержка 0,5 сек.
      previousMillis = currentMillis; // обновление таймер
      LED_OFF;  // Выключить
      LedStep = 2; // Счетчик шагов
    }

    if (LedStep == 2 && currentMillis - previousMillis > 500){ // Задержка 0,5 сек.
      LedStep = 0; // Счетчик шагов
    }
  
  if (UART_ReadByte(inByte)) //Еесли что то пришло
  {
    switch (inByte)  // Смотрим какая команда пришла
    {  
        case 'x': // Остоновка робота
          robot_stop;
        break; 
        
        case 'W': // Движение вперед
          robot_go;  
        break;  
        
        case 'D': // Повопорт влево
          robot_rotation_left; 
        break;

        case 'A': // Поворот вправо
          robot_rotation_right; 
        break; 
        
        case 'S': // Движение назад
          robot_back; 
        break; 
        
        case 'U': // Серво поднимается
          myservo1.write(i -= 20);  
        break; 
        
        case 'J': // Серво опускается
          myservo1.write(i += 20);
        break; 
        
        case 'H': // Серво поворачивается влево
         myservo2.write(i += 20); 
        break; 
        
        case 'K': // Серво поворачивается вправо    
         myservo2.write(i -= 20);
        break; 
        
        case 'Y': // Серво поворачивается 85
         myservo1.write(85);  
         myservo2.write(85);
        break; 
        
         case 'F': // Включить фары
         Headlamp_ON;
        break;
        
        case 'V': // Выключить фары
         Headlamp_OFF;
        break;
        
        case 'I': // Гудок
         Buzzer;
        break;
    }          
  } 
 wdt_reset();
}
tanir196 вне форума   Ответить с цитированием
 


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

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

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

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


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


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