Arduino, объезд препятствий на раме автомобиля............
Концепция дизайна
Эта модель предназначена для создания базового автомобиля для обхода препятствий, управляемого Arduino. Рама обеспечивает прочную основу для монтажа компонентов, необходимых для создания небольшого проекта робототехники.
Цель
Основное использование — в образовательной среде или проектах DIY, чтобы получить практический опыт работы с электроникой и робототехникой. Его можно легко настроить с помощью дополнительных датчиков и компонентов для повышения функциональности.
Рекомендации по печати
Чтобы обеспечить долговечность, печатайте PLA или PETG с высокой плотностью заполнения. При необходимости используйте вспомогательный материал для деталей сложной геометрической формы.
Инструкции по сборке
После печати начните с прикрепления колес и двигателей к основ��ой раме. Установите Arduino и драйвер двигателя на предусмотренные платформы, обеспечив безопасность всех электронных компонентов. Подключите компоненты, следуя стандартным автомобильным направляющим для проводов Arduino, гарантируя, что ультразвуковой датчик будет расположен вверх для правильного обнаружения препятствий.
Я использовал контроллер двигателя L298N, Arduino Uno R3, а также стандартные двигатели Arduino и датчик ультразвука.
если вам нужен код вот он:
интервал тригПин = 9; // триггерный вывод HC-SR04
интервал эхоПин = 10; // Эхо-контакт HC-SR04
int revleft4 = 4; //ОБРАТНОЕ движение левого мотора
int fwdleft5 = 5; //Вперед движение левого мотора
int revright6 = 6; //ОБРАТНОЕ движение правого двигателя
интервал fwdright7 = 7; //Вперед движение правого мотора
большая продолжительность, расстояние;
недействительная настройка() {
задержка(случайное(500,2000)); // задержка на случайное время
Сери��ный.начало(9600);
pinMode(revleft4, ВЫХОД); // устанавливаем контакты двигателя как выход
pinMode (fwdleft5, ВЫХОД);
pinMode (revright6, ВЫХОД);
pinMode(fwdright7, ВЫХОД);
pinMode (trigPin, ВЫХОД); // устанавливаем триггерный вывод как выход
pinMode(echoPin, INPUT); //устанавливаем эхо-контакт в качестве входа для захвата отраженных волн
}
недействительный цикл() {
digitalWrite(trigPin, LOW);
задержкамикросекунды (2);
digitalWrite(trigPin, ВЫСОКИЙ); // отправляем волны на 10 человек
задержкамикросекунды (10);
длительность = импульсВход(эхоПин, ВЫСОКИЙ); // получаем отраженные волны
расстояние = продолжительность / 58,2; // конвертируем в расстояние
задержка(10);
// Если вы не получаете правильных движений вашего робота, измените номера контактов
если (расстояние > 19)
{
digitalWrite(fwdright7, ВЫСОКИЙ); // двигаться вперед
digitalWrite(revright6, LOW);
digitalWrite(fwdleft5, ВЫСОКИЙ);
digitalWrite(revleft4, LOW);
}
если (расстояние < 18)
{
digitalWrite(fwdright7, LOW); //Стоп
digitalWrite(revright6, LOW);
digitalWrite(fwdleft5, LOW);
digitalWrite(revleft4, LOW);
задержка(500);
digitalWrite(fwdright7, LOW); //переместить обратное слово
digitalWrite(revright6, ВЫСОКИЙ);
digitalWrite(fwdleft5, LOW);
digitalWrite(revleft4, ВЫСОКИЙ);
задержка(500);
digitalWrite(fwdright7, LOW); //Стоп
digitalWrite(revright6, LOW);
digitalWrite(fwdleft5, LOW);
digitalWrite(revleft4, LOW);
задержка(100);
digitalWrite(fwdright7, ВЫСОКИЙ);
digitalWrite(revright6, LOW);
digitalWrite(revleft4, LOW);
digitalWrite(fwdleft5, LOW);
задержка(500);
}
}





























