![]() |
|
|
#1 |
|
Junior Member
Регистрация: 05.06.2015
Сообщений: 27
Вес репутации: 0 ![]() |
Всем привет!
Я новичёк в робототехнике, но у меня есть желание, сделать воздушного робота на основе роутера 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 градусов
}
http://www.poprobot.ru/home/zapuskbe...rnogodvigatela Если со всем этим разберусь, то сборка Зефирки и монтажа электроники много времени не займет. Последний раз редактировалось Goblin; 06.06.2015 в 07:20. |
|
|
|
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|