Оглавление:

OmniBoard: гибридный скейтборд и ховерборд с управлением по Bluetooth: 19 шагов (с изображениями)
OmniBoard: гибридный скейтборд и ховерборд с управлением по Bluetooth: 19 шагов (с изображениями)

Видео: OmniBoard: гибридный скейтборд и ховерборд с управлением по Bluetooth: 19 шагов (с изображениями)

Видео: OmniBoard: гибридный скейтборд и ховерборд с управлением по Bluetooth: 19 шагов (с изображениями)
Видео: Hoverboard via aerial drone footage 2024, Июль
Anonim
OmniBoard: гибридный скейтборд и ховерборд с управлением по Bluetooth
OmniBoard: гибридный скейтборд и ховерборд с управлением по Bluetooth

OmniBoard - это новый гибридный электрический скейтборд-ховерборд, которым можно управлять через приложение для смартфона через Bluetooth. Он может двигаться со всеми тремя степенями свободы, достигаемыми обеими досками вместе взятыми, двигаться вперед, вращаться вокруг своей оси и двигаться вбок.

Это позволяет вам двигаться в любом направлении, в котором вы хотите, а также выполнять изящные трюки, которые в противном случае вы бы не смогли выполнить с помощью обычного вида транспорта, такого как (электрические) скейтборды, гироскутеры, автомобили, велосипеды и т. Д.

Мы с другом решили создать OmniBoard как увлекательное упражнение и испытание, а также принять участие в некоторых конкурсах Instructables, а именно испытании колес. Мы хотели сделать что-то, чего раньше никогда не делали, что было бы круто и было бы полезно. Поскольку система общественного транспорта часто ненадежна, а движение по городу в утренние и дневные поездки на работу и с работы очень затруднено, полезен альтернативный вид транспорта, такой как езда на велосипеде или скейтборд. Электрические скейтборды и велосипеды полезны для поездок на дальние расстояния, но уже существует множество потребительских и домашних решений для этой темы. Поэтому мы решили в буквальном смысле изобрести велосипед и сделать новую и увлекательную OmniBoard.

Шаг 1. Инструменты и материалы

Инструменты и материалы
Инструменты и материалы
Инструменты и материалы
Инструменты и материалы
Инструменты и материалы
Инструменты и материалы

Система привода

  • (4) Омни колеса
  • (4) шкив с 60 зубьями
  • (4) шкив с 20 зубьями
  • (4) Ремень ГРМ GT2 (мы использовали 140 зубьев)
  • (8) Подшипник с внутренним диаметром 7 мм, внешним диаметром 19 мм *
  • (20) Крепежные винты M5 (или аналогичного размера), длиной примерно 25 мм *
  • (28) Гайки того же размера, что и крепежные винты *
  • (32) Шурупы для дерева № 2, длина 3/8 дюйма *
  • (16) Угловые кронштейны, предпочтительно с четырьмя отверстиями, должны находиться на расстоянии не менее 1/2 дюйма от угла до отверстия под винт *
  • Лист фанеры 1'x2 '*
  • Поверхность для скейтборда

Электроника:

Система привода

  • (4) Двигатели постоянного тока
  • (4) Электронные регуляторы скорости (ESC)
  • Плата распределения питания (PDB)
  • Силиконовый провод 16AWG - красный и черный
  • Параллельный разветвитель с разъемом XT90
  • Штекерный разъем XT90 с хвостовиком
  • (8 пар) пулевидный соединитель 4 мм
  • (4 пары) Разъемы XT60
  • (2) LiPo батареи

Дистанционное управление

  • Двусторонняя перфорированная плита *
  • Регулятор напряжения LM7805 *
  • Провода с твердым сердечником 24AWG - разные цвета *
  • Модуль Bluetooth HC-05 *
  • Arduino Uno v3 *
  • (32 контакта) двусторонние штекерные разъемы *
  • (12-контактный) односторонние заголовки штифтов для эля *

Инструменты:

  • Паяльная станция и припой
  • Кусачки
  • Инструмент для зачистки проводов
  • Плоскогубцы
  • Ножницы
  • Сверла: 1-3 / 8 ", 3/4", 1/4"

Оборудование

  • 3д принтер
  • Лазерный резак
  • Ленточная пила
  • Сверлильный станок

* Получено в местном магазине электроники или строительном магазине.

Шаг 2: как это работает

Как это работает
Как это работает

Omniboard - это электрический скейтборд и ховерборд в одном! Он может двигаться вперед и назад, из стороны в сторону и вращаться, и все это управляется джойстиком на вашем телефоне.

Omniboard приводится в движение четырьмя двигателями, каждый из которых прикреплен к всенаправленному колесу. Поскольку омни-колеса могут скользить вбок, изменение скорости и направления каждого двигателя позволяет доске двигаться в любом направлении, которое выбирает пользователь, как показано на изображении выше.

Шаг 3: Сборка осей всенаправленных колес

Сборка осей всенаправленных колес
Сборка осей всенаправленных колес
Сборка осей всенаправленных колес
Сборка осей всенаправленных колес
Сборка осей всенаправленных колес
Сборка осей всенаправленных колес
Сборка осей всенаправленных колес
Сборка осей всенаправленных колес

Детали, которые вам понадобятся для сборки осей:

  • (8) Прокладка подшипника, напечатанная на 3D-принтере
  • (4) Большая проставка шкива, напечатанная на 3D-принтере.
  • (8) подшипник
  • (4) всенаправленное колесо
  • (4) Большой шкив
  • (4) шпонка 3x3x80 мм

Во-первых, вы хотите надеть распорную втулку подшипника на конец вала, как показано. Прокладка сделана очень плотно, поэтому я рекомендую использовать тиски или молоток, чтобы надеть ее. Если он слишком свободен, сдвиньте его немного дальше по шпонке и прикрепите воротник. Вам не нужно беспокоиться о воротнике на другом конце.

Затем вы надеваете омни-колесо, а затем прокладку подшипника, обращенную в противоположном направлении. Теперь вы можете надеть подшипники (это не имеет значения, поскольку они не плотно прилегают), и это должно выглядеть как на картинке. Наконец, вы можете вставить длинные тонкие распорки шкивов в шкивы. На этом этапе не затягивайте установочные винты шкива и не кладите их на шпонку. Те придут позже.

Шаг 4: Резка и сверление самосвалов с всенаправленными колесами

Image
Image
Резка и сверление самосвалов с многоколесными колесами
Резка и сверление самосвалов с многоколесными колесами
Резка и сверление самосвалов с многоколесными колесами
Резка и сверление самосвалов с многоколесными колесами
Резка и сверление самосвалов с многоколесными колесами
Резка и сверление самосвалов с многоколесными колесами

Здесь пригодится ваш лазерный резак и фанера толщиной 3/8 дюйма! CAD для лазерной резки рамы прилагается в формате.dxf.

Затем вы просверлите два отверстия над крестиками, которые лазерный резак оставит на фанере. Немного меньший крест будет просверливаться сверлом 3/4 дюйма только на 1/4 дюйма, в то время как больший крест будет просверливаться сверлом 1-3 / 8 дюйма на всем протяжении. Это очень важно что вы помните, что для половины частей вырежьте отверстия диаметром 3/4 дюйма с одной стороны, а другую половину - с другой. Затем просверлите меньшее отверстие диаметром 3/8 дюйма в середине отверстий диаметром 3/4 дюйма на всем протяжении слоя, который вы не вырезали раньше.

Наконец, прикрутите угловые кронштейны к более коротким сторонам прямоугольных деталей. Теперь у вас есть почти все, что нужно для сборки всенаправленных грузовиков.

Шаг 5: Сборка всенаправленных колесных самосвалов

Сборка колесных тележек Omni
Сборка колесных тележек Omni
Сборка колесных тележек Omni
Сборка колесных тележек Omni
Сборка колесных тележек Omni
Сборка колесных тележек Omni

Теперь можно закончить сборку грузовика! Вам понадобятся детали из последних двух шагов плюс:

  • (4) Ремень привода ГРМ
  • (4) Маленькая проставка шкива, напечатанная на 3D-принтере
  • (4) Малый шкив
  • (4) Мотор

Наденьте на подшипники каждую фанерную сторону. Если отверстия диаметром 3/4 дюйма с трудом входят в подшипники, используйте Dremel, чтобы отшлифовать их немного шире. Как только они войдут, наденьте шкив на выступающую шпонку и затяните установочные винты. Вверните прямоугольную деталь в подшипник. выемка над омни-колесом.

На этом этапе убедитесь, что ваше омниколесо вращается свободно. В противном случае ваш шкив может зажимать фанеру. Поднимите его немного выше на замке.

Затем мы установим двигатели. Отверстия размером 1–3 / 8 дюйма слишком малы, поэтому медленно шлифуйте внутренний круг с помощью Dremel, пока двигатель не войдет в него плотно. Будьте осторожны, чтобы не с силой вставить двигатель и не деформировать его. Как только двигатель встанет на место, наденьте ремень на маленькие шкивы, затем маленькие шкивы через их проставки и на вал двигателя 3,175 мм. Затяните установочные винты.

Ради компактности и симметрии вы захотите разместить шкивы и ремни с одной стороны грузовика для двух из них, а с другой стороны - для двух других.

Шаг 6: Установка на платформу для скейтборда

Установка на платформу для скейтборда
Установка на платформу для скейтборда
Установка на платформу для скейтборда
Установка на платформу для скейтборда
Установка на платформу для скейтборда
Установка на платформу для скейтборда

Теперь мы собираемся прикрепить грузовики к платформе для скейтборда. Вы можете сделать свой из фанеры и наручной ленты; наш был взят со старого скейтборда.

Во-первых, вам нужно просверлить отверстия 1/4 дюйма с обеих сторон фанеры, как показано на рисунке. В каждое отверстие прикрепите угловой кронштейн с винтом M5 и двойной гайкой на внутренней стороне, чтобы предотвратить его соскальзывание. ослаблено из-за вибрации. Измерьте и просверлите отверстия, которые позволят вам установить грузовики как можно ближе к концам и под как можно более крутым углом конуса, оставаясь в пределах площади основания платформы. Теперь переверните его и проверьте под нагрузкой. !

Шаг 7: Пайка двигателей

Image
Image
Пайка двигателей
Пайка двигателей

Припаяйте 4-миллиметровые разъемы типа «папа» к проводу, который будет подключаться к двигателям, затем припаяйте этот провод к клеммам двигателя. Для организации кабеля каждый провод обрезается до 6 см и зачищается с обоих концов.

Совет: проще сначала припаять провода к коннекторам пули, а затем припаять их к двигателю, чем наоборот.

Чтобы припаять коннектор пули к проводу, наденьте его на изолированный зажим из кожи аллигатора руки помощи (поскольку тепло быстро рассеивается от корпуса коннектора пули к металлическому, теплопроводящему телу руки помощи). Затем налейте немного припоя на коннектор пули примерно наполовину и, удерживая железо в коннекторе, окуните провод в припой, как показано на видео. Затем выполните термоусадку провода и коннектора пули.

Затем поместите провод рядом с клеммой двигателя и удерживайте его в вертикальном положении рукой. Я использовал валик с припоем, чтобы перевернуть мотор. Затем припаяйте провод к клемме двигателя. Порядок и цвет проводов неоднозначны и не имеют значения, поскольку порядок может быть изменен на обратное вращение, что при необходимости будет выполнено на следующих этапах.

Шаг 8: Пайка разъемов аккумулятора ESC

Пайка разъемов аккумулятора ESC
Пайка разъемов аккумулятора ESC
Пайка разъемов аккумулятора ESC
Пайка разъемов аккумулятора ESC

Перед пайкой отрежьте немного термоусадки для каждого провода, который будет использоваться для изоляции открытых паяных концов.

Отрежьте один из выводов разъема аккумулятора, снимите с него изоляцию, вставьте термоусадочный элемент и припаяйте его к разъему XT60, при этом красный цвет подключается к положительной клемме XT60, а черный - к отрицательной клемме XT60.

Предупреждение: Обрежьте провода ESC только по одному, так как между положительной и отрицательной клеммами может быть заряжен конденсатор, который закоротит, если ножницы или кусачки прорежут оба сразу.

Чтобы припаять провод к разъему XT60, возьмитесь руками за корпус разъема XT60. Затем налейте немного припоя на клемму XT60 примерно наполовину и, удерживая паяльник на разъеме XT60, окуните провод в бассейн с жидким припоем, как показано на видео с предыдущего шага. После охлаждения сдвиньте термоусадку вниз, чтобы изолировать открытый конец, и нагрейте его сторонами паяльника.

Повторите это для остальных проводов разъемов аккумуляторной батареи ESC.

Шаг 9: Пайка платы распределения питания (PDB)

Пайка платы распределения питания (PDB)
Пайка платы распределения питания (PDB)
Пайка платы распределения питания (PDB)
Пайка платы распределения питания (PDB)
Пайка платы распределения питания (PDB)
Пайка платы распределения питания (PDB)
Пайка платы распределения питания (PDB)
Пайка платы распределения питания (PDB)

PDB будет принимать входные данные от двух литий-полимерных (LiPo) батарей с комбинированным напряжением и током 11,1 В и 250 А, соответственно, и распределять его по четырем ESC.

Совет: проще сначала припаять выводы штыревого разъема XT90 к контактным площадкам PDB, затем провода 16 AWG к ESC, а затем к этим проводам разъемы XT60.

Перед пайкой проводов обрежьте термоусадочную пленку по размеру каждого из проводов, чтобы ее можно было надеть на оголенный припаянный конец позже, чтобы предотвратить короткое замыкание.

Чтобы припаять провода к контактным площадкам PDB, я обнаружил, что проще всего использовать руки помощи, чтобы удерживать провода в вертикальном положении (особенно большой кабель XT90) и поместить его поверх PDB, лежащего на столе. Затем припаяйте провод вокруг контактной площадки PDB. Затем сдвиньте термоусадку вниз и нагрейте ее, чтобы изолировать схему.

Повторите это для остальных проводов ESC.

Чтобы припаять XT60, выполните предыдущий шаг, описывающий замену клеммы аккумулятора ESC на XT60.

Шаг 10: Подключение проводов

Подключение проводов
Подключение проводов

Подключите провода двигателя к клеммам разъема пули ESC. Затем подключите белый сигнальный контакт от ESC к контакту 9, а черный контакт заземления - к контакту GND на Arduino. Для крепления всех регуляторов скорости и проводов к плате использовались планки с двойным замком.

Чтобы проверить правильность вращения двигателей (вращение вперед), запустите пример кода на Arduino ниже.

#включают

Серводвигатель;

байт по часовой стрелке Speed = 110; беззнаковый длинный интервал = 1500; int motorPin = 9;

установка void ()

{Serial.begin (9600); мотор.приложение (motorPin); Serial.println («Начало теста»); }

пустой цикл ()

{motor.write (clockwiseSpeed); (скорость по часовой стрелке); Serial.println («Остановить двигатель от вращения»); задержка (интервал); }

Порядок подключения проводов от ESC к двигателю определяет вращение двигателя. Если двигатель вращается против часовой стрелки, запомните двигатель и измените логическое значение в коде контроллера на шаге «Программирование контроллера Omniboard». Если он вращается по часовой стрелке вперед, значит, вращение правильное. Сделайте это для каждого из четырех двигателей. Если двигатель не вращается, дважды проверьте все ваши разъемы, нет ли холодного припоя, приводящего к неплотному соединению.

Шаг 11: изменение режима ESC

Изменение режима ESC
Изменение режима ESC

По умолчанию очищенные ESC находятся в режиме тренировки. Об этом свидетельствует мигание светодиода. Чтобы программно управлять двигателем в обратном направлении, необходим режим набора высоты.

Чтобы получить доступ к этому режиму, подключите ESC к Arduino, подключив белый сигнальный контакт от ESC к контакту 9 и черный контакт заземления к контакту GND на Arduino. Затем загрузите и запустите следующую программу на плату Arduino:

#включают

Серводвигатель;

byte stopSpeed = 90; беззнаковый длинный интервал = 1500; int motorPin = 9;

установка void ()

{Serial.begin (9600); мотор.приложение (motorPin); Serial.println («Начало теста»); }

пустой цикл ()

{motor.write (stopSpeed); Serial.println («Остановить двигатель от вращения»); задержка (интервал); }

Включите ESC, затем нажмите и удерживайте кнопку программирования в течение двух секунд. Светодиодный индикатор теперь будет гореть постоянно, а не мигать, что означает, что режим был успешно изменен на режим лазания.

Шаг 12: взаимодействие с модулем Bluetooth и телефоном

Взаимодействие с модулем Bluetooth и телефоном
Взаимодействие с модулем Bluetooth и телефоном
Взаимодействие с модулем Bluetooth и телефоном
Взаимодействие с модулем Bluetooth и телефоном
Взаимодействие с модулем Bluetooth и телефоном
Взаимодействие с модулем Bluetooth и телефоном

Модуль Bluetooth HC-05 позволяет Arduino подключаться к телефону для беспроводного управления скейтбордом через приложение. Поскольку я обнаружил проблемы с некоторыми неисправными интерфейсами модуля Bluetooth, было бы лучше сначала проверить его, прежде чем паять окончательную схему, Мы будем использовать 4 из 6 контактов на модуле Bluetooth. Это: Tx (передача), Rx (прием), 5 В и GND (земля). Подключите контакты Tx и Rx модуля Bluetooth HC-05 к контактам 10 и 11 на Arduino соответственно. Затем подключите контакты 5V и GND к контактам с такой же меткой на Arduino.

В приложении Blynk добавьте виджеты Bluetooth и кнопок, как показано на изображениях выше. Затем назначьте кнопке цифровой вывод D13, который подключен к встроенному светодиоду на Arduino Uno.

Загрузите и запустите следующий код в Arduino с подключенным модулем bluetooth и откройте монитор последовательного порта, чтобы проверить, подключен ли модуль bluetooth. Затем переключите кнопку включения / выключения и наблюдайте за изменением встроенного светодиода на Arduino.

#define BLYNK_PRINT Серийный номер

#включают

#включают

// Вы должны получить токен аутентификации в приложении Blynk.

// Заходим в настройки проекта (значок ореха). char auth = "Ваш токен аутентификации";

SoftwareSerial SerialBLE (10, 11); // RX, TX

BLYNK_WRITE (V1)

{int pinValue = param.asInt (); // присвоение переменной входящего значения от вывода V1}

установка void ()

{Serial.begin (9600); // консоль отладки SerialBLE.begin (9600); Blynk.begin (SerialBLE, авторизация); Serial.println («Ожидание соединений…»); }

пустой цикл ()

{Blynk.run (); }

Шаг 13: пайка Arduino Shield

Пайка Arduino Shield
Пайка Arduino Shield
Пайка Arduino Shield
Пайка Arduino Shield
Пайка Arduino Shield
Пайка Arduino Shield
Пайка Arduino Shield
Пайка Arduino Shield

Чтобы очистить схему и отсоединить перемычки от прототипа, мы будем паять экран Arduino, который подключается к каждому из ESC и модулю Bluetooth, а также к источнику питания Arduino.

Припаяйте следующую схему, приведенную выше, на двустороннюю перфорированную плату.

Сначала я определил размеры и подключил двухсторонние штыревые разъемы к разъемам Arduino, а затем припаял их к верхней стороне монтажной платы с обеих сторон. После того, как они были припаяны, я снял их с платы Arduino, чтобы припаять нижнюю часть платы. Затем я припаял односторонние штыревые разъемы ESC в 4 наборах по 3 шт. На нижней стороне перфорированной платы. После этого я поставил Bluetooth-модуль HC-05 вертикально и припаял разъемы к нижней стороне монтажной платы.

Поскольку для модуля Bluetooth требуется входное напряжение 5 В, а PDB регулируется только до 12 В, я использовал LM7805 для понижения тока, чтобы ограничить потребление тока от Arduino. Этот же источник питания 5 В также подключен к выводу 5 В на Arduino, так что Arduino может получать питание через экран, а не через дополнительный адаптер цилиндрического разъема.

Контакты LM7805 были припаяны к нижней стороне перфорированной платы, а компонент регулятора напряжения находился наверху перфорированной платы, как показано на изображении выше. Я припаял все силовые соединения к каждому из компонентов, а также к разъемам ESC и Bluetooth-модулю HC-05, как описано на схеме. Затем выход 12 В PDB был припаян к контакту входа VCC (крайний левый) и контакту заземления (средний) регулятора напряжения LM7805. Наконец, каждый из заголовков сигнальных контактов ESC и контакты Tx и Rx модуля Bluetooth HC-05 подключаются к цифровым контактам Arduino через двусторонние штекерные разъемы контактов, как показано на схеме.

Шаг 14: Создание приложения с помощью Blynk

Создание приложения через Blynk
Создание приложения через Blynk

Omniboard будет управляться через Bluetooth с любого смартфона через приложение Blynk. Blynk - это приложение для Android и iOS, которое позволяет использовать модули и виджеты, которые могут взаимодействовать с несколькими микроконтроллерами с поддержкой Bluetooth или беспроводной связи или модулями Bluetooth / беспроводной связи, такими как HC-05.

1. Установите Blynk на свой телефон.

2. Создайте учетную запись и войдите в систему.

3. Создайте новый проект и назовите его. Я назвал свой «Контроллер Omniboard», выбрал Arduino Uno в качестве микроконтроллера и выбрал Bluetooth в качестве типа интерфейса.

4. Перетащите на экран следующие виджеты: Bluetooth, Карта, 2 кнопки и Джойстик.

Шаг 15: взаимодействие виджетов с Arduino

Взаимодействие виджетов с Arduino
Взаимодействие виджетов с Arduino
Взаимодействие виджетов с Arduino
Взаимодействие виджетов с Arduino
Взаимодействие виджетов с Arduino
Взаимодействие виджетов с Arduino

Кнопка будет использоваться для переключения между режимами ховерборда и скейтборда. Режим Hoverboard позволяет точно контролировать вращение и стрейфинг при сохранении крейсерской скорости. В то время как режим скейтборда дает точный контроль скорости и вращения вперед. Джойстик будет управлять скейтбордом с двумя степенями свободы, которые меняются переключателем. На карте будет отображаться ваше текущее местоположение, а также путевые точки для других мест. Bluetooth позволяет интерфейсу подключаться к модулю Bluetooth.

Настройки джойстика:

Выберите «Объединить» в качестве типа выхода и назначьте его виртуальному контакту V1

Настройка кнопок:

  • Назовите первую кнопку «Режим наведения», а вторую - «Круиз-контроль».
  • Назначьте выход первой кнопки виртуальному контакту V2 и измените режим на «Switch».
  • Назначьте выход второй кнопки виртуальному контакту V3 и измените режим на «Switch».
  • Переименуйте переключатели первых кнопок как «Hover» и «Skate» и сохраните «ON» и «OFF».

Настройки карты:

Назначьте вход V4

Настройки Bluetooth:

Выберите виджет Bluetooth в приложении Blynk и подключитесь к своему модулю. Пароль по умолчанию для модуля Bluetooth - «1234».

Шаг 16: Программирование контроллера Omniboard

Программирование контроллера Omniboard
Программирование контроллера Omniboard
Программирование контроллера Omniboard
Программирование контроллера Omniboard
Программирование контроллера Omniboard
Программирование контроллера Omniboard

Динамика Omniboard была запрограммирована на основе алгоритма динамики, взятого из раздела «Как это работает». Каждая из 3 степеней свободы, вперед, стрейф и вращение рассчитываются независимо и накладываются друг на друга, чтобы обеспечить полный диапазон управления движением Omniboard. Управление каждым двигателем линейно пропорционально движению джойстика. Загрузите и запустите следующий код в Arduino.

#define BLYNK_PRINT Серийный номер

#включают

#включают

#включают

Серводвигатель FR; Серводвигатель FL; Серводвигатель BR; Серводвигатель BL;

bool motorFRrev = true;

bool motorFLrev = true; bool motorBRrev = true; bool motorBLrev = true;

float motorFRang = 330.0 * PI / 180.0;

float motorFLang = 30.0 * PI / 180.0; поплавковый моторBRang = 210.0 * PI / 180.0; поплавковый моторBLang = 150.0 * PI / 180.0;

поплавковый моторFRspeedT;

поплавковый мотор FLspeedT; поплавковый мотор BRspeedT; поплавковый мотор BLspeedT;

поплавковый мотор FRspeedR;

поплавковый мотор FLspeedR; поплавковый мотор BRspeedR; поплавковый моторBLspeedR;

float maxAccel = 10;

byte forwardSpeed = 110;

byte backSpeed = 70; byte stopSpeed = 90; // переход к экспериментально определенному числу

int cruiseControl;

int yawMode;

// Вы должны получить токен аутентификации в приложении Blynk.

// Заходим в настройки проекта (значок ореха). char auth = "8523d5e902804a8690e61caba69446a2";

SoftwareSerial SerialBLE (10, 11); // RX, TX

BLYNK_WRITE (V2) {cruiseControl = param.asInt ();}

BLYNK_WRITE (V3) {yawMode = param.asInt ();} WidgetMap myMap (V4);

BLYNK_WRITE (V1)

{int x = параметр [0].asInt (); int y = параметр [1].asInt ();

если (! cruiseControl) calcTranslation (x, y);

если (yawMode) calcRotation (x, y); иначе {motorFRspeedR = 0; motorFLspeedR = 0; motorBRspeedR = 0; motorBLspeedR = 0; } writeToMotors (); }

установка void ()

{motorFR.attach (9); motorFL.attach (6); мотор BR.attach (5); motorBL.attach (3); задержка (1500); // ждать инициализации двигателей // Консоль отладки Serial.begin (9600);

SerialBLE.begin (9600);

Blynk.begin (SerialBLE, авторизация);

Serial.println («Ожидание соединений…»);

// Если вы хотите удалить все точки:

//myMap.clear ();

int index = 1;

float lat = 43,653172; float lon = -79.384042; myMap.location (индекс, широта, долгота, «значение»); }

пустой цикл ()

{Blynk.run (); }

void calcTranslation (int joyX, int joyY)

{float normX = (joyX - 127.0) /128.0; float normY = (joyY - 127.0) /128.0; motorFRspeedT = (normY * cos (motorFRang) + normX * sin (motorFRang)) * (1-2 * motorFRrev); motorFLspeedT = (normY * cos (motorFLang) + normX * sin (motorFLang)) * (1-2 * motorFLrev); motorBRspeedT = (normY * cos (motorBRang) + normX * sin (motorBRang)) * (1-2 * motorBRrev); motorBLspeedT = (normY * cos (motorBLang) + normX * sin (motorBLang)) * (1-2 * motorBLrev); }

void calcRotation (int joyX, int joyY)

{float normX = (joyX - 127.0) /128.0; float normY = (joyY - 127.0) /128.0; motorFRspeedR = joyX * (1-2 * motorFRrev); motorFLspeedR = -joyX * (1-2 * motorFLrev); motorBRspeedR = -joyX * (1-2 * motorBRrev); motorBLspeedR = joyX * (1-2 * motorBLrev); }

void writeToMotors ()

{float motorFRspeed = motorFRspeedT + motorFRspeedR; float motorFLspeed = motorFLspeedT + motorFLspeedR; float motorBRspeed = motorBRspeedT + motorBRspeedR; float motorBLspeed = motorBLspeedT + motorBLspeedR;

long motorFRmapped = map ((long) (100 * motorFRspeed), -100, 100, backSpeed, forwardSpeed);

long motorFLmapped = map ((long) (100 * motorFLspeed), -100, 100, backSpeed, forwardSpeed); long motorBRmapped = map ((long) (100 * motorBRspeed), -100, 100, backSpeed, forwardSpeed); long motorBLmapped = map ((long) (100 * motorBLspeed), -100, 100, backSpeed, forwardSpeed); motorFR.write (motorFRmapped); motorFL.write (motorFLmapped); motorBR.write (motorBRmapped); motorBL.write (motorBLmapped); }

Шаг 17: Установка корпуса электроники

Установка корпуса электроники
Установка корпуса электроники
Установка корпуса электроники
Установка корпуса электроники
Установка корпуса электроники
Установка корпуса электроники
Установка корпуса электроники
Установка корпуса электроники

Чтобы все провода и детали не свисали со дна, распечатайте прикрепленный корпус на 3D-принтере, а затем прикрутите его к скейтборду с помощью винтов M5.

Шаг 18: Покраска

Рисование
Рисование
Рисование
Рисование
Рисование
Рисование

Вдохновением для дизайна верхней деки послужили схемы и узоры печатной платы. Для этого сначала нижняя часть скейтборда покрывается моей малярной лентой. Затем вся верхняя дека покрывается белой краской. После высыхания он маскируется негативом схемы, а затем перекрашивается черным слоем. Затем аккуратно снимите маскировку с верхнего слоя и вуаля, скейтборд выглядит круто.

Я рекомендую вам персонализировать дизайн для вашего собственного омниборда и проявить свою творческую свободу.

Шаг 19: Тест и демонстрация

Image
Image

Второй приз конкурса Wheels Contest 2017

Конкурс дистанционного управления 2017
Конкурс дистанционного управления 2017

Первый приз в конкурсе Remote Control Contest 2017

Рекомендуемые: