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

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


doc:1308:mgul.130080.001

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


Самоходная платформа для тестирования и отработки блоков полезных нагрузок

в состав нашей подвижной платформы входят:

  • Микроконтроллер arduino mega
  • Гусеничное шасси с 2 моторами
  • Драйвер для управления моторами
  • Ультразвуковой дальномер – предназначен для определения дальности до препятствия спереди
  • 3 инфракрасных датчика – предназначены для определения боковых препятствий, а также для определения ям границ ступенек
  • Bluetooth модуль – предназначен для получение управляющих команд, а также для передачи отладочной информации
  • Аккумуляторная батарея

Шасси

В нашем случаем передвижная платформа оснащена гусеничным шасси, которое управляется 2-мя мотор-редукторами, каждый из которых отвечает за движение одной из гусениц.

Микроконтроллер

В качестве микроконтроллера управления гусеничным шасси была использована плата Arduino Mega 2560. Она обладает большим количеством аналоговых, цифровых, коммуникационных и ШИМ выходов, что позволяет подключать к ней всё необходимое, для движения платформы, а также может пригодиться для дальнейшей разработки платформы.

Модуль драйвера двигателей L298N

Модуль драйвера двигателей L298N позволяет управлять двумя моторами постоянного тока, либо шаговым двигателем с потребляемым током до 2 Ампер.

Пары выводов (IN1, IN2) и (IN3, IN4) задают направление вращения моторов. Таким образом, подавая на выводы IN1, IN2 разноименные логические сигналы например (0 и 1) или (1 и 0) мы установим направление движения левого мотора. Установка одноименных логических сигналов любой из пар выводов например: (0 и 0) остановит движение мотора. Выводы ENABLE A, B (ENA привязан к IN1, IN2. ENB к IN3, IN4) отвечают за скорость движения моторов. Для регулировки скорости моторов, на «EN» выводы подается ШИМ (PWM) сигнал. Высокий логический уровень разрешает вращение моторов, низкий запрещает вне зависимости от состояния выводов «IN». На рис.а2 выводы «EN» замкнуты с высоким уровнем (+5V). Для этого на плате, рядом с выводами ENA и ENB находятся штырьки соединенные с +5V. Замыкаем выводы с помощью джамперов. В данном режиме мы не сможем регулировать скорость двигателей, они будут всегда вращаться в полную скорость (зато для управления экономится 2 вывода контроллера). Направление вращения будет задаваться по-прежнему, а вот для остановки в данном варианте, состояние выводов будет уже играть роль. Для остановки нужно будет подавать одноименные сигналы на выводы «IN».

int IN1 = 5;	// Input1 подключен к выводу 5 
int IN2 = 4;	// Input2 подключен к выводу 4
int IN3 = 3;	// Input3 подключен к выводу 3
int IN4 = 2;	// Input4 подключен к выводу 2
int ENA = 9;	// EnableA подключен к выводу 9
int ENB = 3;	// EnableB подключен к выводу 3
int i;

void setup()
{
	 pinMode (EN1, OUTPUT);	// объявляем наши выводы
	 pinMode (IN1, OUTPUT);
	 pinMode (IN2, OUTPUT);
	 pinMode (EN2, OUTPUT);
	 pinMode (IN4, OUTPUT);
	 pinMode (IN3, OUTPUT);
}

void loop()
{
 	digitalWrite (IN1, LOW);		// устанавливаем направление движения
 	digitalWrite (IN2, HIGH); 
 	digitalWrite (IN3, LOW);
 	digitalWrite (IN4, HIGH);
 	for (i = 50; i <= 180; ++i)
 	{
 		analogWrite(EN1, i);
 		analogWrite(EN2, i);
 		delay(30);
 	}
 	analogWrite (EN1, 0);		// останавливаем наши моторы
 	analogWrite (EN2, 0);
 	delay(500);
 	digitalWrite (IN1, HIGH);		// устанавливаем обратное направление
 	digitalWrite (IN2, LOW); 
 	digitalWrite (IN3, HIGH);
 	digitalWrite (IN4, LOW);
 	for (i = 50; i <= 180; ++i)
 	{
 		analogWrite(EN1, i);
 		analogWrite(EN2, i);
 		delay(30);
 	}
 	analogWrite (EN1, 0);
 	analogWrite (EN2, 0);
 	delay(8000);
}
doc/1308/mgul.130080.001.1486561433.txt.gz · Последние изменения: 2018/04/28 23:47 (внешнее изменение)