![]() |
|
|
#131 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Два модуля роботов не могут вместе существовать
Драйвера можно не трогать, а модули роботов снесите Установите заново cyberbot-3 и настройте его, настройки сохраните и перезапустите роутер |
|
|
|
|
|
#132 |
|
Senior Member
Регистрация: 07.01.2015
Адрес: Baku
Сообщений: 225
Вес репутации: 0 ![]() |
|
|
|
|
|
|
#133 |
|
Senior Member
Регистрация: 07.01.2015
Адрес: Baku
Сообщений: 225
Вес репутации: 0 ![]() |
Странно, управление заработало, а камера не работает, ни в модуле саибербот3 ни в модуле вебкам...
перезагрузил... великолепно робот стал откликаться быстрее на команды. Oтлично все заработало, теперь осталось придумать как прикрутить уровень заряда и второй датчик...не подскажете? Последний раз редактировалось elik745i; 30.08.2015 в 16:21. |
|
|
|
|
|
#134 | |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Можно к любому из них подключитьрезистивны й делитель для измерения напряжение |
|
|
|
|
|
|
#135 | |
|
Senior Member
Регистрация: 07.01.2015
Адрес: Baku
Сообщений: 225
Вес репутации: 0 ![]() |
Цитата:
Если кому понадобится использовать стандартные функции ардуино с нестандартным роботом вот мой код:Код:
/*
This sketch is for arduino nano/mini pro,
to be used for building 2 motor wheeled robots,
equipped with 2 servo actuators for camera control,
buzzer and lights.
For more details please visit this article:
http://cyber-place.ru/showthread.php?t=1896&page=14
and for detailed instructions on how to build and circuit diagram:
http://www.voltrans.az/?p=1340
Updated: 3Sep2015 - added CyberBot3 support.
Author: Elik745i
Site: www.voltrans.az for cyber-place.ru
*/
#include <Servo.h> // Подключаем библиотеку сервоприводов
// // Подключаем H-Bridge HG7881
#define HG7881_A_IA 10 // D10 --> Motor A Input A --> MOTOR A +
#define HG7881_A_IB 9 // D9 --> Motor A Input B --> MOTOR A -
#define HG7881_B_IA 11 // D11 --> Motor B Input A --> MOTOR B +
#define HG7881_B_IB 12 // D12 --> Motor B Input B --> MOTOR B -
// functional connections
#define MOTOR_A_PWM HG7881_A_IA // Motor A PWM Speed
#define MOTOR_A_DIR HG7881_A_IB // Motor A Direction
#define MOTOR_B_PWM HG7881_B_IA // Motor B PWM Speed
#define MOTOR_B_DIR HG7881_B_IB // Motor B Direction
#define DIR_DELAY 100 // brief delay for abrupt motor changes
#define tiltServopin 7 //tilt servo attached to pin 7
#define panServopin 8 //pan servo attached to pin 8
#define serialReceive 13 //Serial Receive Message indicator LED
#define moveLed 4 //LED indicating tank movement
#define light 6 //
#define moveDelay 1000
#define moveDelayturn 100
Servo tiltServo;
Servo panServo;
int val1 = 90;
const int servoAngle = 20;
const int minAngle = 0;
const int maxAngle = 180;
int lightState=0;
void setup()
{
Serial.begin( 57600 );
pinMode(serialReceive,OUTPUT);
pinMode(moveLed,OUTPUT);
pinMode( MOTOR_A_DIR, OUTPUT );
pinMode( MOTOR_A_PWM, OUTPUT );
digitalWrite( MOTOR_A_DIR, LOW );
digitalWrite( MOTOR_A_PWM, LOW );
pinMode( MOTOR_B_DIR, OUTPUT );
pinMode( MOTOR_B_PWM, OUTPUT );
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
// delay(40000); //wait for router to initialise
}
void loop()
{
if (Serial.available()) //Еесли что то пришло
{
digitalWrite(serialReceive,HIGH);
byte inByte = Serial.read();
switch (inByte) // Смотрим какая команда пришла
{
case 'x': // Остоновка робота
robot_stop();
break;
case 'W': // Движение вперед
robot_go();
break;
case 'D': // Поворот вправо
robot_right();
break;
case 'A': // Повопорт влево
robot_left();
break;
case 'S': // Движение назад
robot_back();
break;
case 'J': // Серво поднимается
if(val1<maxAngle){
tiltServo.attach(tiltServopin); // attaches the servo on pin 2
for(int i=0;i<servoAngle;i++){
tiltServo.write(val1+i); // sets the servo position according to the scaled value
delay(servoAngle);
}
val1=val1+servoAngle;
tiltServo.detach(); // detaches the servo on pin 2
}
break;
case 'U': // Серво опускается
if(val1>minAngle){
tiltServo.attach(tiltServopin); // attaches the servo on pin 2
for(int i=0;i<servoAngle;i++){
tiltServo.write(val1-i); // sets the servo position according to the scaled value
delay(servoAngle);
}
val1=val1-servoAngle;
tiltServo.detach(); // detaches the servo on pin 2
}
break;
case 'K': // Серво поворачивается влево
panServo.attach(panServopin); // attaches the servo on pin 2
panServo.write(180); // sets the servo position according to the scaled value
delay(200);
panServo.detach(); // detaches the servo on pin 2
break;
case 'H': // Серво поворачивается вправо
panServo.attach(panServopin); // attaches the servo on pin 2
panServo.write(0); // sets the servo position according to the scaled value
delay(200);
panServo.detach(); // detaches the servo on pin 2
break;
case 'B': // Бластер
break;
case 'C': // Клаксон
break;
case ']': // запрос состояния аналоговых датчиков
sendAnalog();
break;
case 'V': // Включить/Выключить фары
if (lightState==0){
digitalWrite(light,HIGH);
lightState=1;
}else{
digitalWrite(light,LOW);
lightState=0;
}
break;
}
digitalWrite(serialReceive,LOW);
}
}
void robot_stop()
{
digitalWrite( MOTOR_A_DIR, LOW );
digitalWrite( MOTOR_A_PWM, LOW );
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
delay( DIR_DELAY );
}
void robot_go(){
/*
digitalWrite( MOTOR_A_DIR, LOW );
digitalWrite( MOTOR_A_PWM, LOW );
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
delay( DIR_DELAY );
*/
digitalWrite( MOTOR_A_DIR, LOW ); // direction = forward
digitalWrite( MOTOR_A_PWM, HIGH );
digitalWrite( MOTOR_B_DIR, LOW ); // direction = forward
digitalWrite( MOTOR_B_PWM, HIGH ); // PWM speed = slow
delay(moveDelay);
}
void robot_back(){
/*
digitalWrite( MOTOR_A_DIR, LOW );
digitalWrite( MOTOR_A_PWM, LOW );
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
delay( DIR_DELAY );
*/
// set the motor speed and direction
digitalWrite( MOTOR_A_DIR, HIGH ); // direction = forward
digitalWrite( MOTOR_A_PWM, LOW );
digitalWrite( MOTOR_B_DIR, HIGH ); // direction = forward
digitalWrite( MOTOR_B_PWM, LOW ); // PWM speed = slow
delay(moveDelay);
}
void robot_left(){
/*
digitalWrite( MOTOR_A_DIR, LOW );
digitalWrite( MOTOR_A_PWM, LOW );
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
delay( DIR_DELAY );
*/
// set the motor speed and direction
digitalWrite( MOTOR_A_DIR, HIGH ); // direction = forward
digitalWrite( MOTOR_A_PWM, LOW );
digitalWrite( MOTOR_B_DIR, LOW ); // direction = forward
digitalWrite( MOTOR_B_PWM, HIGH ); // PWM speed = fast
delay(moveDelayturn);
}
void robot_right(){
/*
digitalWrite( MOTOR_A_DIR, LOW );
digitalWrite( MOTOR_A_PWM, LOW );
digitalWrite( MOTOR_B_DIR, LOW );
digitalWrite( MOTOR_B_PWM, LOW );
delay( DIR_DELAY );
*/
// set the motor speed and direction
digitalWrite( MOTOR_A_DIR, LOW ); // direction = forward
digitalWrite( MOTOR_A_PWM, HIGH );
digitalWrite( MOTOR_B_DIR, HIGH ); // direction = forward
digitalWrite( MOTOR_B_PWM, LOW ); // PWM speed = slow
delay(moveDelayturn);
}
void sendAnalog(){
int k = analogRead(A0);
int f = analogRead(A1);
Serial.write("{\"dat1\":\"");
Serial.print(k);
Serial.write("\",\"dat2\":\"");
Serial.print(f);
Serial.write("\"}");
}
Последний раз редактировалось elik745i; 05.09.2015 в 12:22. |
|
|
|
|
|
|
#136 |
|
Junior Member
Регистрация: 02.09.2015
Сообщений: 5
Вес репутации: 0 ![]() |
Доброго времени суток. На днях нашел шасси от игрушки типа танчик. На меге 16ой сделал контроль приводов, с терминала через FTDI переходник на W,S,A,D откликается, а с роутером подружить не смог. Роутер у меняDlink dir 300 b7. Я на нее сначала установил память на 8Мб, потом подрубил камеру и портанул cyberwrt. Все запускается, модуль устанавливается, картинка есть а управление не работает, на встроенном uart тишина. С консоли эхо от роутера приходит и лог при загрузке бежит. uart в системе определен как ttyS0. В скриптах и настройках Вашего модуля поменял порт, но результата нет. Подскажите как его запустить, хаб я не подключал в связи с его отсутствием. камера с ноутбука припаяна четырьмя проводами к роутеру. Подскажите, мне кажется что встроенный uart нужно переключить в какой то иной режим, так как вроде он логи слать не должен при загрузке если используется системой
|
|
|
|
|
|
#138 | |
|
Junior Member
Регистрация: 02.09.2015
Сообщений: 5
Вес репутации: 0 ![]() |
Цитата:
Последний раз редактировалось volter5000; 04.09.2015 в 13:34. |
|
|
|
|
|
|
#139 | |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Хочу вынести Ваш код в шапку темы |
|
|
|
|
|
|
#140 | |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Утилиту Serp можно установить с помощью модуля "Пакеты" |
|
|
|
|
![]() |
| Здесь присутствуют: 5 (пользователей: 0 , гостей: 5) | |
|
|