Инструменты пользователя

Инструменты сайта


doc:1602:mgul.160021.002

Это старая версия документа!


Отработка движения

Описание

Описание

- В движение платформу приводит двигатель мощностью 225w, прямая передача, соотношение зубов 21/64.
- Поворот рулевых колёс происходит с помощью простого механизма тяги, сервопривод вращает 15 мм плечо , которое прикреплено к регулируемому рычагу, который в свою очередь прикрепляется к тяге рулевых колёс.
- Точность поворота зависит от текущего веса робота, чем тяжелее, тем больше раз нужно подать команду поворота на сервопривод, существуют разумные границы поворота, чтобы не вывести из строя тягу или сервопривод.

Текст программы

Текст программы

#include <Servo.h>
#define Engine 7
#define RPWM 3
#define LPWM 4
#define Steering_Pin 5
#define Steering_Angle 5
int Engine_Speed_Now = 50;
int Steering_Pos = 45;
Servo Steering_Serv; 
void Engine_Parking_without_brake() { // отключение питания двигателя, остановка за счёт трения
  Serial.println("Engine_Parking_without_brake");
  digitalWrite(RPWM, LOW);
  digitalWrite(LPWM, LOW);
  delay(1000);
}
void Engine_Forward(){      // прямое вращение двигателя
  Serial.println("En_Forward");
  digitalWrite(RPWM, LOW);
  digitalWrite(LPWM, HIGH);
  for(int i=0;i<=Engine_Speed_Now;i++){ 
  analogWrite(Engine, Engine_Speed_Now);
  delay(10);
  }
}
void Engine_Back(){ //  обратное вращение двигателя
  Serial.println("Engine_Back");
  digitalWrite(LPWM, LOW);
  digitalWrite(RPWM, HIGH);
  for(int i=0;i<=Engine_Speed_Now;i++){
  analogWrite(Engine, Engine_Speed_Now);
  delay(10);
  }
}
void Steering_Forward(){      // рулевая прямо, требуется выравнивание поворотами левво\право, если нагрузна большая
  Steering_Pos = 45;
  Serial.println(" Steering_Forward(45) ");
  Steering_Serv.write(Steering_Pos);
}
void Steering_Left(){        // при нажатии рулевая немного налево, в зависимости от нагрузки платформы
  Serial.print("  Steering_Left  ");
  if(Steering_Pos > 15){
  Steering_Pos -= Steering_Angle;
  Serial.println(Steering_Pos);
  Steering_Serv.write(Steering_Pos);
}
}
void Steering_Right(){      // при нажатии рулевая немного направо, в зависимости от нагрузки платформы
  Serial.print("  Steering_Right  ");  
  if(Steering_Pos < 75){
  Steering_Pos += Steering_Angle;
  Serial.println(Steering_Pos);
  Steering_Serv.write(Steering_Pos);
}
}
void Engine_Speed_Up(){
  if(Engine_Speed_Now<254){
  Engine_Speed_Now+=10;
  Serial.print(Engine_Speed_Now);
  Serial.println("  Engine_Speed_Up  ");
}
 else
 Engine_Speed_Now=255;
}
void Engine_Speed_Down(){
  if(Engine_Speed_Now>50){
  Engine_Speed_Now-=10;
  Serial.print(Engine_Speed_Now); 
  Serial.println("  Engine_Speed_Down  ");
}
 else
 Engine_Speed_Now=50;
}
void setup() {
Serial.begin(38400);
Steering_Serv.attach(Steering_Pin);
pinMode(Engine, OUTPUT);
pinMode(RPWM, OUTPUT);
pinMode(LPWM, OUTPUT);
}
void loop() {

char key;
  if (Serial.available()> 0)
  key = Serial.read();
  switch(key){
    case 'W':
    Engine_Parking_without_brake();
    Engine_Forward();
    break;
    case 'A':
    Steering_Left();
    break;
    case 'S':
    Engine_Parking_without_brake();
    break;
    case 'D':
    Steering_Right();
    break;
    case 'Q':
    Engine_Speed_Down();
    break;
    case 'E':
    Engine_Speed_Up();
    break;
    case 'X':
    Engine_Parking_without_brake();
    Engine_Back();
    break;
    case 'F':
    Steering_Forward();
    break;
  }
}


Разработка необходимой телеметрии

Описание

Описание

Так как на платформе будут установлено 3 аккумулятора (7.2V на всю логику; 14.8V 10,8Аh двигатель , пневматика и манипулятор; 14,8V 3,4Ah резерв для двигателя,подключаемый)
- 5 Вольтметров с пиком в 25V
- 4 Амперметра ACS712-30A
- 10-осевой датчик от «Amperka.ru» (гироскоп,акселерометр,магнитометр,датчик давления)
- Датчик давления BPM180(внутри воздушного резервуара)
- 10 Датчиков температуры(двигатель,драйвер двигателя,сервопривод на рулевой,3 на аккумуляторы, 1 на бортовую эмв, 1 на Arduino)
- 2 Датчика влажности
- Сонар
Данные будут записываться на постоянной основе в бортовую эвм, а при утере сигнала Wi-fi будут передаваться по запросу оператору с помощью NRF20L01.


Разработка,конструирование и отладка системы пневматических стоек

Описание

Описание

Данная система разрабатывается для стабилизации положения робота при работе с манипулятором.
В данной системе используются следующие элементы:

НаименованиеКоличество
Пневматический цилиндр CDJ2B16 4
Штуцер М5х0,8 8
Коннектор на Х6 2
Шланг 3/5мм ?
Биполярный электромагнитный клапан 1
Электромагнитный клапан 2
Воздушный насос 1
Механический обратный клапан 1


Разработка и отладка управления при помощи модуля приёмопередатчика NRF24L01

Отработка получения телеметрии по запросу при помощи модуля приёмопередатчика NRF24L01

Разработка и конструирования собственного 6-осевого манипулятора

Сборка всех элементов

doc/1602/mgul.160021.002.1515963738.txt.gz · Последние изменения: 2018/04/28 23:47 (внешнее изменение)