Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Так что у меня дома лежала куча запчастей. Я хотел участвовать в соревнованиях по сумо, которые должны были появиться через несколько месяцев, но у меня не было бота. Вместо того, чтобы покупать бота или использовать существующий дизайн, который потребовал бы от меня покупки вещей для проекта, я пошел дальше и сделал своего собственного бота по собственному дизайну из моих собственных частей. Для этого урока вам понадобится следующее.
- Здесь можно найти по одному экземпляру каждой детали, напечатанной на 3D-принтере.
- Аккумулятор на 7,4 вольт или две батареи 18650.
- Держатель батареи при необходимости.
- Arduino uno.
- Защитный экран Arduino uno.
- USB-кабель для Arduino.
- Настольный источник питания (опция).
- Зарядное устройство (опционально).
- Провода и их много.
- Сервоприводы непрерывного вращения с металлическими зубчатыми колесами стандартного размера.
- Два датчика ИК-переключателя.
- Сервоприводы 7 см.
- Переключатель включения и выключения.
Этот код постоянно меняется. Код этого робота можно найти здесь. Это самая последняя версия кода проекта. Наслаждаться!
Шаг 1: Сборка
- Робот использует два сервопривода с металлическими шестернями. Вам нужно будет вкрутить их с помощью болтов и гаек m3, чтобы сервоприводы внутри шасси были обращены наружу в обоих направлениях. Сервоприводы могут войти в робота только одним способом, так что это будет довольно просто.
- Присоедините сервоприводы.
- Прикрепите инфракрасные датчики так, чтобы они смотрели вниз перед роботом. Они прикреплены двумя винтами через отверстия M3 в передней части робота. В нижней части робота есть прорези, через которые они могут смотреть. Будьте осторожны: датчики не захватывают корпус и не могут видеть сквозь прорези. Вы узнаете об этом больше позже, когда мы протестируем робота, чтобы убедиться, что ваша ручная работа сработала.
- Поместите датчик HC-SR04 в два отверстия, обращенных снаружи робота изнутри. Отверстия расположены в передней части корпуса.
- Поместите Arduino Uno внутрь корпуса так, чтобы на нем был щит.
-
Соедините все вместе в соответствии с приведенным ниже списком.
- Питание от выбранного источника питания до переключателя питания. Подключите к переключателю положительный или отрицательный вывод. Если вы выбрали отрицательный провод, он будет вашим заземлением, а если вы выберете положительный провод, это будет провод источника питания. Другой провод в зависимости от того, положительный он или отрицательный, будет вашим положительным или отрицательным.
- Подключите положительный вывод к vin на Arduino и положительный провод на сервоприводах.
- Подключите землю к земле на сервоприводах и Arduino.
- Подключите 5 В от регулятора 5 В на Arduino ко всем положительным клеммам на каждом из датчиков.
- Подключите датчики к заземлению на Arduino.
- Наконец, подключите контакт 7 на Arduino к правому ИК-датчику, контакт 6 к левому ИК-датчику, контакт 8 к одному из сервоприводов, контакт 9 к последнему сервоприводу.
Предупреждение: неправильное подключение робота может привести к его дыму и разрушению электроники
Шаг 2: Первые признаки жизни
Предупреждение: Не подключайте робота к компьютеру, когда он включен или когда сервоприводы подключены. Несоблюдение этого правила может привести к повреждению вашего компьютера
int mode = 3;
Эта строка кода выше является ключевой переменной для робота. Если оно равно каждому номеру, указанному ниже, он выполняет следующие действия.
- Пока он равен нулю, робот движется по определенной схеме.
- Если режим равен единице, робот распечатывает вывод на компьютер показаний каждого из датчиков.
- Когда равно двум, робот избегает краев и препятствий, если сталкивается с ними.
- Робот борется с другими ботами.
Это различные режимы робота, используемые для тестирования и помощи роботу в продвижении. Вам нужно будет изменить это «3» на ноль на первом шаге этого руководства.
Теперь загрузите код в робота. Вы увидите, как он движется вперед, назад, влево и вправо в указанном порядке.
Шаг 3. Он видит
int mode = 0;
Измените следующую переменную на «1», если предыдущий шаг был выполнен. Теперь, когда он подключен к вашему последовательному монитору на Arduino, он распечатает то, что видит ваш робот. «0» означает, что краевые датчики что-то видят. «1» означает, что края не видны. Если вы заметили, что логика перевернута, обратите внимание на это для будущих шагов.
Не беспокойтесь о датчике пинга. В любом случае у меня это еще не работает. Этот робот находится в стадии интенсивной разработки.
Шаг 4: можно избежать края стола
void Avoid () {
интервал sensorStateLeft = digitalRead (leftSensor);
int sensorStateRight = digitalRead (rightSensor);
задержка (50);
if (Ping.ping_cm ()> = 15 && sensorStateLeft == 0 && sensorStateRight == 0) {
left.write (0); right.write (90);
}
if (Ping.ping_cm () <= 15 && Ping.ping_cm ()! = 0 || sensorStateLeft == 1 || sensorStateRight == 1) {
left.write (90);
right.write (0); }
}
Этот код выше - это код, вызываемый, когда режим равен двум. Если предыдущий шаг был выполнен, измените режим на «2».
Если датчики инвертированы, не стесняйтесь инвертировать «sensorStateLeft» и «sensorStateRight» в каждом из операторов «if», чтобы они равнялись другому числу, чем они были заданы, то есть либо «1», либо «0».
Теперь робот может избегать края арены сумо. Он почти готов к бою. Не стесняйтесь протестировать его, чтобы увидеть, работает он или нет.
Шаг 5: СРАЖАЙТЕСЬ
Ваше сумо готово к битве с небольшими изменениями кода. Измените режим, чтобы он был равен «3», и при необходимости инвертируйте логику в пустоте «Сумо». Теперь ваш робот должен избегать края арены, но не может обнаружить других роботов. Он в основном избегает краев арены и движется достаточно быстро, чтобы можно было надеяться, что он может столкнуть робота с края стола. Наслаждаться!
Шаг 6: Заключение
Ваш робот готов. Если есть какие-либо проблемы или комментарии по этому проекту, дайте мне знать. Я невероятно открыт для отзывов, потому что понятия не имею, был ли это хорошо сделанный урок или нет. Наслаждаться!