Создайте высокопроизводительный радиоуправляемый танк с двухскоростной коробкой передач, напечатанный на 3D-принтере
В этом уроке я покажу вам, как я построил чудовище из распечатанного на 3D-принтере радиоуправляемого танка или радиоуправляемой гусеничной машины с чистым, полностью черным дизайном, крутым светодиодным освещением и двухскоростной коробкой передач. Да, я специально разработал коробку передач для этого танка, чтобы я мог выбирать более низкую или более высокую передачу в зависимости от местности или условий применения и таким образом получать либо более высокий крутящий момент, либо более высокую скорость.
Вы можете посмотреть следующее видео или прочитать письменное руководство ниже.
Обзор
Если вы следите за мной, возможно, вы знаете, что некоторое время назад я уже построил напечатанный на 3D-принтере радиоуправляемый танк, который был крутым, но немного недостаточно мощным. Именно поэтому сейчас для этой сборки я использую двигатель постоянного тока мощностью 200 Вт для каждой гусеницы, и в сочетании с этим редуктором у танка достаточно мощности, чтобы покорить любую местность или развлечься, делая с ним бернауты или пончики.
Говоря о развлечениях, я установил адресную светодиодную ленту для освещения, которая дает безграничные возможности для создания потрясающих световых эффектов. Для этого видео я сделал стробоскопический эффект полицейских огней, с ним так здорово ездить, особенно ночью
Что касается подвески, то с каждой стороны танк поддерживается тремя винтовыми пружинами и амортизаторами, на каждом из которых имеется по два опорных катка. Это позволяет машине плавно двигаться по неровной местности и преодолевать препятствия, сохраняя при этом хороший контакт гусениц с поверхностью.
Конечно, все напечатано на 3D-принтере, и 3D-файлы доступны для скачивания, так что вы можете создать его самостоятельно.
Для управления танком я использую дешевый коммерческий радиоуправляемый передатчик, который передает ему команды.
На танке имеется подходящий радиоуправляемый приемник, который принимает команды и передает их на микроконтроллер. Мозгом этой платформы является плата на базе микроконтроллера Atmega2560, и для простоты соединения всего этого я сделал специальную печатную плату, которую можно просто прикрепить поверх платы.
Тем не менее, теперь пристегнитесь, поскольку я проведу вас через весь процесс создания этого радиоуправляемого танка, начиная с проектирования, 3D-печати, сборки и подключения электронных компонентов и заканчивая программированием микроконтроллера.
Проектирование радиоуправляемого танка
Я разработал этот резервуар с помощью Onshape.
Onshape — это облачная 3D-система CAD и PDM профессионального уровня, которую я использую в своих проектах.
Я рекомендую инженерам-механикам и дизайнерам продуктов проверить Onshape. Вы и ваша компания можете использовать Onshape Professional бесплатно в течение 6 месяцев на https://Onshape.pro/HowtoMechatronics
Первоначальными входными параметрами для проектирования были двигатели постоянного тока или их размеры и частота вращения. Эти моторы довольно громоздки и имеют скорость 3000 об/мин. Это слишком высокие обороты для этого танка, поэтому я спроектировал коробку передач, которая снижает скорость до двух разных значений.
Эта коробка передач работает так же, как работает механическая коробка передач в автомобиле. Имеется переключатель передач, который вместо того, чтобы перемещать его вручную, здесь он перемещается с помощью серводвигателя, и он может выбрать, какой из двух наборов выходных шестерен будет задействован в качестве конечного выходного сигнала.
Начальное передаточное число коробки передач составляет 1,88:1, оно фиксированное, а затем мы можем выбрать либо низкую передачу с дополнительным передаточным числом 2,76:1, либо высокую передачу с передаточным числом 1:1. Таким образом, на более низкой передаче общее снижение скорости составляет 5,2, или это около 570 об/мин, а на более высокой передаче — всего на 1,88, или это около 1600 об/мин.
Более подробно, как работает редуктор, мы увидим чуть позже в этом видео, как будем его собирать.
Следующим входным параметром при проектировании танка стали доставшиеся мне RC-амортизаторы. В выдвинутом состоянии они имеют длину 70 мм и ход 15 мм. Я хотел добиться немного большего вертикального перемещения опорных катков, поэтому расположил их в такой конфигурации и получил расстояние вертикального перемещения 22 мм.
В дополнение к этому, поскольку это система тележек, в которой пара колес прикреплена к этой движущейся оси, колеса могут вращаться вокруг этой оси и, таким образом, могут совершать дополнительное вертикальное перемещение. Очевидно, это обеспечит более плавный ход и лучший контакт гусеницы с поверхностью под ней.
Если присмотреться к передним опорным каткам, то можно заметить, что они соединены с натяжным колесом спереди, обеспечивая динамическое натяжение гусеницы. Когда передние катки поднимаются вверх, окружность гусеницы становится меньше, и натяжение ослабевает.
При такой настройке, когда это происходит, натяжное колесо сдвигается вперед, чтобы натянуть гусеницу. С помощью этого соединения мы также можем статически натянуть гусеницу, регулируя этот болт и дистанционную гайку.
На задней стороне находится звездочка, состоящая из трех частей. В нем имеется муфта вала, а также левая и правая части звездочки, соединенные вместе тремя болтами М3.
Ключевым размером звездочки является шаг, поскольку он должен соответствовать шагу гусеницы. Шаг здесь составляет 11 мм, и я выбрал звездочку с 20 зубьями, что дало мне шаг звездочки около 69 мм. Идея заключалась в том, чтобы размер звездочки был достаточно большим, чтобы гусеница не выходила за пределы корпуса танка.
Шаг 11 мм фактически определялся конструкцией гусеницы. Моей целью было сделать звено гусеницы максимально компактным, чтобы его можно было соединить со следующим звеном с помощью всего лишь одной дополнительной детали или штифта, и при этом быть достаточно прочным, чтобы его можно было изготовить на 3D-принтере.
Кроме того, при 3D-печати я хотел избежать использования вспомогательного материала для детали, чего мне и удалось добиться с помощью этой конструкции.
Для соединения звеньев гусеницы друг с другом я планировал использовать штифты диаметром 2 мм, поэтому размер одной стороны составил 2,1 мм, чтобы обеспечить плотную посадку, а другую сторону - 2,4 мм, чтобы обеспечить свободную посадку, чтобы звенья гусеницы могли свободно вращаться.
Зубья звездочки входят в зацепление со звеньями гусеницы по внешней цилиндрической форме. Цилиндр гусеничного звена имеет радиус 4,4 мм, а звездочка — 4,9 мм, чтобы обеспечить свободную посадку и правильную работу.
Основной корпус, в котором все подключено, должен был быть достаточно большим, чтобы вместить две коробки передач и, конечно же, иметь место для электроники и аккумулятора. В результате габаритные размеры танка составили 547x397 мм. Это довольно большой размер, больше, чем обычное основание 3D-принтера, поэтому я разделил большие части на две части, чтобы мы могли напечатать их на 3D-принтере с основанием шириной 300 мм. Обратите внимание:если вы хотите распечатать ее на 3D-принтере меньшего размера (220 мм), модель необходимо разделить на 4 секции. Я также предоставлю эту версию в 3D-файлах.
Для сборки бака нам потребуются различные болты и гайки М3 и М4, а также некоторые резьбовые вставки и подшипники. Полный список всех компонентов, необходимых для этого проекта, вы можете найти ниже. Конечно, вы также можете найти 3D-модель и файлы STL, необходимые для 3D-печати.
3D-модель и файлы загрузки STL
Вы можете просмотреть 3D-модель этого радиоуправляемого танка прямо в веб-браузере с помощью Onshape.
Вы можете получить 3D-модель этого радиоуправляемого танка/платформы-робота, а также файлы STL для 3D-печати на сайте Cults3D.
3D-печать
Для печати большинства деталей этого танка я использовал 3D-принтер Creality Ender-3 V3 Plus.
При 3D-печати важно использовать функцию горизонтального расширения, или теперь в новом слайсере Creality Print, который я использовал, она называется компенсацией контура XY. Если мы оставим эти настройки по умолчанию, внешние размеры отпечатков, а также отверстия обычно будут меньше, чем у исходной модели, и у нас могут возникнуть проблемы со сборкой.
В слайсере Creality Print я использовал значение –0,07 для компенсации контура XY и плюс 0,07 для функции компенсации отверстий XY. Конечно, вам следует сделать несколько тестовых распечаток, чтобы увидеть, какие значения дадут наилучшие результаты на вашем 3D-принтере.
Для 3D-печати звеньев гусеницы я использовал плоты в качестве адгезии рабочей пластины, поскольку их базовая поверхность контакта с опорной плитой немного мала и может не приклеиться, если адгезия опорной плиты на вашем принтере не очень хорошая.
Creality Ender-3 V3 Plus имеет рабочую пластину размером 300x300 мм, поэтому я мог распечатать основную часть резервуара из двух частей. Даже в двух секциях детали по-прежнему довольно большие и заставляют 3D-принтер работать на пределе своих возможностей. Но Creality Ender-3 V3 Plus справился с этой задачей и отлично справился с печатью таких больших деталей.
Я могу порекомендовать этот 3D-принтер всем, кто ищет мощный и быстрый 3D-принтер большого объема. Это 3D-принтер CoreXZ, который может развивать скорость до 600 мм/с и благодаря прочной раме обеспечивает действительно хорошее качество печати. Благодарим Creality за предоставленный мне этот 3D-принтер.
Посетите магазин Creality Ender-3 V3 Plus — США:https://shrsl.com/4rtkk; Магазин в ЕС:http://shrsl.com/4rtkm; Амазонка:https://amzn.to/3VjEoRH
Сборка радиоуправляемого танка
Вот все детали, напечатанные на 3D-принтере, и мы можем приступить к сборке танка. Честно говоря, 3D-печати очень много. На печать всего уходит несколько дней, и не только время, но и несколько катушек нити.
Только для звеньев гусениц, поскольку всего их 214, нам нужно около 500 г и 30 часов 3D-печати. Для основной части резервуара требуется около 1 кг нити, если разделить ее на две секции, как здесь, 500 г и примерно от 12 до 18 часов на каждую секцию. Кроме того, многие детали необходимо напечатать на 3D-принтере с поддержкой, поэтому нам придется потратить некоторое время на очистку.
Спецификация
Вот список компонентов, необходимых для сборки этого проекта радиоуправляемого танка. Список электронных компонентов можно найти ниже в разделе принципиальных схем статьи.
M3x10 мм – 10
M3x16мм – 20
M3x20 мм – 10
M3x25 мм – 10
M3x30 мм – 10
M3x16мм с потайной головкой – 20
M4x16мм – 10
M4x35мм – 20
M4x40 мм – 20
M5x40 мм – 2 Контргайка M3 – 50
Контргайка M4 – 40
Гайка М5 – 6
Раскрытие информации:это партнерские ссылки. Как сотрудник Amazon, я зарабатываю на соответствующих покупках.
Электроника — принципиальная схема радиоуправляемого бака
Давайте рассмотрим электронику радиоуправляемого танка и объясним, как она работает. Мозгом этого радиоуправляемого танка является плата на базе микроконтроллера ATmega2560.
Вы можете получить компоненты, необходимые для этого проекта, по ссылкам ниже:
– 1к х1
– 2к х1
– 240 x1Амазонка | Алиэкспресс Конденсаторы
– 0,1 мкФ х1
– 1мкФ х1
– 400 мкФ х1
Амазонка | Алиэкспресс
Раскрытие информации:это партнерские ссылки. Как сотрудник Amazon, я зарабатываю на соответствующих покупках.
Индивидуальный дизайн печатной платы
Чтобы сохранить порядок в электронных компонентах, я разработал специальную печатную плату для радиоуправляемого танка. Печатная плата будет совместима с платой на базе микроконтроллера ATmega2560, которую можно будет установить непосредственно поверх нее.
Я заказал печатную плату в PCBWay. Здесь мы можем просто загрузить файл Gerber, выбрать свойства нашей платы и заказать ее по разумной цене.
Я не менял никаких свойств по умолчанию, за исключением цвета печатной платы, который я выбрал синим. Вы можете найти и загрузить Gerber в сообществе обмена проектами PCBWay, через которое вы также можете напрямую заказать печатную плату.
Завершение сборки радиоуправляемого бака
В этом разделе я объясню, как соединить все вместе и собрать этот радиоуправляемый танк.
Этот раздел все еще находится в разработке.
Программирование радиоуправляемого танка – код Arduino
В этом разделе я объясню, как работает код Arduino, лежащий в основе радиоуправляемого танка. Здесь вы можете скачать код:
Обзор кода
Итак, с помощью библиотеки IBusBM читаем входящие данные от RC Transmitter.
// Reading the data comming from the RC Transmitter
IBus.loop();
ch0 = IBus.readChannel(0); // ch0 - left and right;
ch1 = IBus.readChannel(1); // ch1 - forward and backward;
ch6 = IBus.readChannel(6); // ch6 - Gear shifter
ch7 = IBus.readChannel(7); // ch7 - Police light strobe effect
ch8 = IBus.readChannel(8); // ch8 - All white LEDs
ch9 = IBus.readChannel(9); // ch9 - Left and Right white LEDsCode language: JavaScript (javascript) Правый джойстик, каналы 0 и 1, используются для управления движением танка, левый кулисный переключатель, или канал 6, для управления сервоприводом переключения передач, а остальные три кулисы для управления светодиодами.
Преобразуем входящие данные в значения, подходящие для ШИМ-управления двигателями постоянного тока, а именно от 0 до 255.
// convert the incoming date into suitable PWM value
steeringValue = map(ch0, 1000, 2000, -205, 205); // 0 to 205 range because then I add +50 in order to avoid low PWM values as to motors won't start if so
motorSpeed = map(ch1, 1000, 2000, -205, 205);
motorSpeed = abs(motorSpeed);
leftMotorSpeed = 50 + motorSpeed + steeringValue; // 50 + (0-205) + (0 - 205 ) = 50 - 255 so this range from 50 to 255 is used as PWM value
rightMotorSpeed = 50 + motorSpeed - steeringValue;
leftMotorSpeed = constrain(leftMotorSpeed, 0, 255); // constrain the PWM value from 0 to 255
rightMotorSpeed = constrain(rightMotorSpeed, 0, 255);
// if PWM is lower than 52, set PWM value to 0
if (leftMotorSpeed < 52) {
leftMotorSpeed = 0;
}
if (rightMotorSpeed < 52) {
rightMotorSpeed = 0;
}
Code language: JavaScript (javascript) Мы отправляем значения ШИМ драйверам и двигателям, используя функцию AnalogWrite() соответствующим образом.
// if right joystick goes up > move forward
if (ch1 > 1510 && ch1 < 2000) {
digitalWrite(M1_RPWM, 0);
analogWrite(M1_LPWM, leftMotorSpeed);
digitalWrite(M2_RPWM, 0);
analogWrite(M2_LPWM, rightMotorSpeed);
}
// if right joystick goes down > move backward
if (ch1 > 1000 && ch1 < 1490) {
analogWrite(M1_RPWM, leftMotorSpeed);
digitalWrite(M1_LPWM, 0);
analogWrite(M2_RPWM, rightMotorSpeed);
digitalWrite(M2_LPWM, 0);
}
// if right joystick is in the middle, don't move
if (ch1 > 1490 && ch1 < 1510) {
if (leftMotorSpeed < 50 && rightMotorSpeed < 50) {
digitalWrite(M1_LPWM, 0);
digitalWrite(M1_RPWM, 0);
digitalWrite(M2_LPWM, 0);
digitalWrite(M2_RPWM, 0);
}
// if right joystick move just left or right, without going up or down, move the tank left or right (in place)
else if (ch0 < 1490 || ch0 > 1510) {
analogWrite(M1_RPWM, rightMotorSpeed);
analogWrite(M1_LPWM, leftMotorSpeed);
analogWrite(M2_RPWM, leftMotorSpeed);
analogWrite(M2_LPWM, rightMotorSpeed);
}
}Code language: JavaScript (javascript) Для серводвигателя и переключения передач вам следует настроить значения в соответствии с используемым сервоприводом.
//======= Gear shift ====
if (ch6 == 2000) {
myservo.write(140);
}
if (ch6 == 1000) {
myservo.write(40);
}Code language: JavaScript (javascript) Что касается управления светом, то проверяем, какая клавиша включена, и по ней приказываем зажигать каждый светодиод по отдельности по мере необходимости.
//===== LIGHTS Control ===
// Front and back lights LEDs control
if (ch9 == 2000) {
frontLeds[0] = CRGB (255, 255, 255);
frontLeds[1] = CRGB (255, 255, 255);
frontLeds[2] = CRGB (255, 255, 255);
frontLeds[3] = CRGB (255, 255, 255);
frontLeds[4] = CRGB (255, 255, 255);
frontLeds[5] = CRGB (0, 0, 0);
frontLeds[6] = CRGB (0, 0, 0);
frontLeds[7] = CRGB (0, 0, 0);
frontLeds[8] = CRGB (0, 0, 0);
frontLeds[9] = CRGB (0, 0, 0);
frontLeds[10] = CRGB (0, 0, 0);
frontLeds[11] = CRGB (255, 255, 255);
frontLeds[12] = CRGB (255, 255, 255);
frontLeds[13] = CRGB (255, 255, 255);
frontLeds[14] = CRGB (255, 255, 255);
frontLeds[15] = CRGB (255, 255, 255);
backLeftLeds[0] = CRGB ( 255, 0, 0);
backLeftLeds[1] = CRGB ( 255, 0, 0);
backLeftLeds[2] = CRGB ( 255, 0, 0);
backRightLeds[0] = CRGB ( 255, 0, 0);
backRightLeds[1] = CRGB ( 255, 0, 0);
backRightLeds[2] = CRGB ( 255, 0, 0);
}
if (ch9 != ch9State) {
if (ch9 == 1000) {
FastLED.clear();
}
ch9State = ch9;
FastLED.show();
}
// Front and back lights LEDs control
if (ch8 == 1500) {
frontLeds[0] = CRGB (255, 255, 255);
frontLeds[1] = CRGB (255, 255, 255);
frontLeds[2] = CRGB (255, 255, 255);
frontLeds[3] = CRGB (255, 255, 255);
frontLeds[4] = CRGB (255, 255, 255);
frontLeds[5] = CRGB (255, 255, 255);
frontLeds[6] = CRGB (255, 255, 255);
frontLeds[7] = CRGB (255, 255, 255);
frontLeds[8] = CRGB (255, 255, 255);
frontLeds[9] = CRGB (255, 255, 255);
frontLeds[10] = CRGB (255, 255, 255);
frontLeds[11] = CRGB (255, 255, 255);
frontLeds[12] = CRGB (255, 255, 255);
frontLeds[13] = CRGB (255, 255, 255);
frontLeds[14] = CRGB (255, 255, 255);
frontLeds[15] = CRGB (255, 255, 255);
backLeftLeds[0] = CRGB ( 255, 0, 0);
backLeftLeds[1] = CRGB ( 255, 0, 0);
backLeftLeds[2] = CRGB ( 255, 0, 0);
backRightLeds[0] = CRGB ( 255, 0, 0);
backRightLeds[1] = CRGB ( 255, 0, 0);
backRightLeds[2] = CRGB ( 255, 0, 0);
}
....and so on...Code language: JavaScript (javascript) Создание эффекта стробоскопа полицейских огней заняло у меня некоторое время, но получилось очень круто.
Тестирование резервуара, напечатанного на 3D-принтере
Загрузив код, мы сможем включить платформу робота и RC-передатчик для его тестирования. На дисплее передатчика мы можем увидеть напряжение LiPo батареи, а также напряжение приемника и передатчика.
Здесь мы также можем увидеть, как работает переключение передач в движении. Левым кулисным переключателем мы можем переключать передачи во время работы моторов. На самом деле так оно и есть.
Остальные 3 кулисных переключателя управляют освещением бака. Есть 4 разных режима. Пять светодиодов с каждой стороны белого цвета, второй режим - все белые светодиоды горят, третий режим - все белые светодиоды мигают и, конечно, самый крутой режим - стробоскопический эффект полицейских огней. Танк может двигаться с любым из этих режимов освещения.
Просто небольшое примечание. Поскольку светодиоды питаются от напряжения 5 В, поступающего от стабилизатора напряжения LM350, он может сильно нагреваться, особенно если используется режим всех белых светодиодов. Каждый светодиод потребляет около 50–60 мА тока белого цвета, то есть ток составляет почти 1 А.
LM350 может выдерживать ток до 3 А, но для этой цели ему требуется соответствующее охлаждение. Я разместил его в неправильном месте на печатной плате, поэтому не смог добавить подходящий радиатор. Я попробовал добавить несколько небольших радиаторов от шагового драйвера.
Они немного помогают, но все же, если все белые светодиоды будут гореть дольше, регулятор напряжения перегреется. Но на всех остальных режимах у нас все в порядке, поэтому я оставил все как есть. Если мы хотим решить эту проблему, мы можем добавить отдельный понижающий преобразователь с номинальным током 8 А. Этот понижающий преобразователь может получать питание от выходной клеммы 12 В, а его выходное напряжение 5 или 6 В, которое мы установили, может поступать на клемму 6 В на печатной плате, и мы можем использовать шину 6 В для питания светодиодов.
Тем не менее, я надеюсь, что вам понравилось это видео и вы узнали что-то новое. Получайте удовольствие от сборки и управления этим радиоуправляемым танком. Как я уже говорил ранее, в будущих видео я планирую внести некоторые улучшения в этот танк. Я мог бы добавить к нему роботизированную руку или, может быть, сделать снегоочиститель или что-то в этом роде. Так что следите за обновлениями.
Производственный процесс
- Подключение материалов через Bluetooth / Android / Arduino
- Как я могу устранить медленную течь в моей автомобильной шине?
- Как предотвратить дефекты литья по выплавляемым моделям для высококачественных деталей
- Что следует учитывать при выборе марки инструментальной стали
- Что такое ВТЛ? О, это токарно-карусельный станок!
- Введение в Die Sinker
- Карбонизация угля для производства кокса
- Курица
- Песочное печенье
- 4-контактный ШИМ-контроль вентилятора, 25 кГц, с Arduino Uno