![]() |
![]() |
#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) | |
|
|