Оглавление:

Гусеничный электрический лонгборд: 16 шагов (с изображениями)
Гусеничный электрический лонгборд: 16 шагов (с изображениями)

Видео: Гусеничный электрический лонгборд: 16 шагов (с изображениями)

Видео: Гусеничный электрический лонгборд: 16 шагов (с изображениями)
Видео: Электро Самокат на пульте управления 2024, Ноябрь
Anonim
Гусеничный электрический лонгборд
Гусеничный электрический лонгборд
Гусеничный электрический лонгборд
Гусеничный электрический лонгборд
Гусеничный электрический лонгборд
Гусеничный электрический лонгборд
Гусеничный электрический лонгборд
Гусеничный электрический лонгборд

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

(Это школьный проект на 3 недели)

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

Этот проект требует навыков пайки и будет стоить около 500 евро.

Материалы:

Все материалы и ссылки на поставщиков находятся в ведомости материалов.

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

  • Паяльник + олово
  • Плоскогубцы
  • Пистолет для горячего клея
  • Набор отверток и шестигранных ключей
  • Пинцет иногда может пригодиться
  • Кусачки / стриппер

В этом проекте используются токарный станок, лазерный резак и 3D-принтер!

Шаг 2: Замена колес и подготовка грузовика

Замена колес и подготовка грузовика
Замена колес и подготовка грузовика
Замена колес и подготовка грузовика
Замена колес и подготовка грузовика
Замена колес и подготовка грузовика
Замена колес и подготовка грузовика
Замена колес и подготовка грузовика
Замена колес и подготовка грузовика

Прежде всего, я снял эти маленькие белые колеса со своего лонгборда. Затем я снял шариковые подшипники и вставил их в оранжевые колеса диаметром 90 мм.

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

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

Шаг 3: Крепление двигателя для резки и сварки

Крепление двигателя для резки и сварки
Крепление двигателя для резки и сварки
Крепление двигателя для резки и сварки
Крепление двигателя для резки и сварки
Крепление двигателя для резки и сварки
Крепление двигателя для резки и сварки

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

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

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

Шаг 4: Установка двигателя и ремня

Установка мотора и ремня
Установка мотора и ремня
Установка мотора и ремня
Установка мотора и ремня
Установка мотора и ремня
Установка мотора и ремня

Используйте 4 полужирных шрифта M4 * 14, чтобы закрепить двигатель на креплении.

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

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

Затяните гайку на грузовике, чтобы колесо не упало, и все.

Шаг 5: электрические схемы

Схемы подключения
Схемы подключения
Схемы подключения
Схемы подключения
Схемы подключения
Схемы подключения

Компоненты электроники были подключены согласно схемам выше.

Первый - это полная схема электроники.

На второй схеме показаны все подключения электрической части лонгборда, 6s UBEC to 12V переходит к следующей схеме. На этой схеме показана схема источников света и датчиков, которыми управляет Raspberry Pi.

Как вы, наверное, уже видели, у экрана tft есть женский заголовок, который занимает много контактов. Контакты, которые нам нужны для последовательной связи с модулем GPS. Поэтому я припаял провода к нужным нам контактам (рис. 4-6) к гнезду, которое подключается к Pi.

Шаг 6: Подключение BMS

Подключение BMS
Подключение BMS
Подключение BMS
Подключение BMS
Подключение BMS
Подключение BMS

Я использовал comsa42 его intructables для схемы подключения.

Я использовал балансировочную доску BMS (система управления батареями), чтобы зарядить свои липо, чтобы я мог оставить их в своем корпусе и заряжать их с помощью «умного зарядного устройства» через водонепроницаемое гнездо постоянного тока.

Я припаял два кабеля для порта зарядки на BMS, один на P- (черный), а другой на P + (красный). (Эти кабели не должны быть такими толстыми, так как через них будет проходить только 2 ампера. порт зарядки)

ПРИМЕЧАНИЕ. Вначале я использовал разъем постоянного тока с винтами, но позже заменил его водонепроницаемым разъемом постоянного тока из спецификации. Пока не припаивайте вилку, иначе у вас возникнут проблемы, когда вы захотите вставить ее в свой корпус.

Я подключил две батареи последовательно к одному из купленных мной «XT60 2 pack in series plug». Я подключил этот штекер к гнезду и припаял к нему толстый красно-черный провод. Красный провод идет к B + и BMS, а черный - к B-.

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

ПРИМЕЧАНИЕ. В середине я соединил землю с плюсом следующего аккумулятора, но в этом нет необходимости, потому что последовательный разъем уже это делает.

Шаг 7: выключатель (кнопка петли)

Переключатель включения / выключения (кнопка петли)
Переключатель включения / выключения (кнопка петли)
Переключатель включения / выключения (кнопка петли)
Переключатель включения / выключения (кнопка петли)
Переключатель включения / выключения (кнопка петли)
Переключатель включения / выключения (кнопка петли)

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

Сначала я припаял провод к штекеру (рис. 2-4), а затем несколько 3,5-миллиметровых коннекторов к гнезду XT90.

Чтобы подключить его к батареям, я использовал штекер XT60 с гнездом XT60, но с перерывом в красном проводе. Затем я припаял концевые соединители к концам, где я разрезал провод пополам, чтобы я мог подключить гнездовой разъем XT90 вместо того, чтобы паять его непосредственно на кабель. Итак, подключите его и вуаля, включение / выключение готово.

Шаг 8: VESC, индикатор заряда батареи и разъем UBEC

VESC, индикатор заряда батареи и разъем UBEC
VESC, индикатор заряда батареи и разъем UBEC
VESC, индикатор заряда батареи и разъем UBEC
VESC, индикатор заряда батареи и разъем UBEC
VESC, индикатор заряда батареи и разъем UBEC
VESC, индикатор заряда батареи и разъем UBEC

Я сделал свои собственные «3 параллельно к 1 разъему», склеив 3 разъема XT60 вместе (рис. 1) и припаяв провод к плюсовым выводам дерева и провод к негативам (рис. 2-6). Затем я припаял к нему штекер и защитил оголенные кабели черной лентой. (рис 7-9)

VESC и индикатор

Припаяйте вилку XT60 к кабелям питания VESC и к кабелям индикатора заряда батареи / напряжения.

uBEC

Отключите 2 балансировочных кабеля и припаяйте вилку к вилке XT60. Гнездовые концы подключаются к входной стороне uBEC (преобразователя напряжения).

ПРИМЕЧАНИЕ: я обрезал балансирные тросы немного короче, но это была ошибка, поэтому оставьте их нетронутыми;)

Шаг 9: Датчик двигателя к Vesc

Датчик двигателя к Vesc
Датчик двигателя к Vesc
Датчик двигателя к Vesc
Датчик двигателя к Vesc
Датчик двигателя к Vesc
Датчик двигателя к Vesc

Используйте два шаговых кабеля для подключения датчика двигателя к VESC. Двигатель имеет 5 контактов, 2 для питания и дерево для датчиков Холла (1 контакт на датчик Холла).

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

Используйте термоусадочные трубки и скотч, чтобы все было надежно! Когда это будет сделано, остается только разместить их в правильном порядке от VESC до двигателя.

Шаг 10: Блок питания Raspberry Pi

Блок питания Raspberry Pi
Блок питания Raspberry Pi
Блок питания Raspberry Pi
Блок питания Raspberry Pi
Блок питания Raspberry Pi
Блок питания Raspberry Pi

Нам нужен преобразователь 12 В в 5 В, который будет питать Raspberry Pi через USB, поэтому я сразу подумал о автомобильном зарядном устройстве. Это дешевое и практичное решение.

ПРИМЕЧАНИЕ: прежде чем мы его откроем, вы должны убедиться, что вы помните, какой из них является портом, который может выдавать 2,1 А, потому что Pi нуждается в этом.

Итак, снимите наклейку и открутите верхнюю часть автомобильного заряда, затем ослабьте штифт снизу. После этого он легко откроется, припаяйте пружину (+12 В) и металлический изогнутый объект (GND) и замените их двумя из этих балансирных проводов (припаяйте вилку к печатной плате).

Когда это было сделано, я проверил, все ли в порядке, подключив разъем постоянного тока к проводам и подключив его к источнику питания моей светодиодной лампы, и измерил выходное напряжение USB (два внешних - + 5V и GND).

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

ПРИМЕЧАНИЕ: проверьте полярность на зарядном устройстве, потому что она может быть другой.

Шаг 11: Подключение Pi, света и GPS

Подключение Pi, света и GPS
Подключение Pi, света и GPS
Подключение Pi, света и GPS
Подключение Pi, света и GPS
Подключение Pi, света и GPS
Подключение Pi, света и GPS
Подключение Pi, света и GPS
Подключение Pi, света и GPS

Теперь мощность для фонарей.

Мы получаем 12 В от нашего uBEC, и оно нам нужно для наших передних фонарей, задних фонарей и автомобильного зарядного устройства. Raspberry Pi не может обеспечить достаточный ток или напряжение для питания светодиодов, поэтому нам придется использовать транзистор. 12 В будет использоваться в качестве источника питания, а Raspberry Pi будет включать и выключать их, управляя базой транзистора NPN (2N222: рис. 2), поэтому давайте припаяем его к макетной плате.

Во-первых, задний фонарь находится сзади лонгборда, а Raspberry Pi будет спереди, поэтому кабель придется удлинить (рис. 3-5). Задний фонарь имеет 3 провода. Черный (отрицательный), желтый (ходовой / задний фонарь), красный (стоп-сигнал / стоп-сигнал). Но поскольку разница между тормозом и ходовым светом очень мала, я предпочитаю использовать красный провод, а желтый оставлю в покое. Вставьте длинный штыревой провод в предусмотренный для него металл заднего фонаря и согните его до тех пор, пока он не перестанет высвобождаться. Проделайте это с черным и красным проводом.

Задние фонари припаиваем параллельно. Потом макетная плата. Припаяйте концы двух балансировочных проводов к плате и используйте медный провод, чтобы распределить напряжение 12 В по всей плате. Затем добавьте транзисторы: один для передних фонарей и один для задних фонарей. Коллектор -> 12 В, эмиттер -> GND и база к резистору, а затем к проводу с гнездовым концом, который будет соответствовать контактам GPIO Raspberry Pi (контакты 20 и 21). Автомобильное зарядное устройство может питаться от 12 В, затем вставьте кабель USB в правильный вход USB и вставьте конец micro USB в Raspberry Pi.

Подключения GPS:

PI GPS

3,3 В -> Vin

GND -> GND

RX -> TX

TX -> RX

ПРИМЕЧАНИЕ. Только 2 контакта базы транзистора нуждаются во внешнем резисторе для ограничения тока. Фарам они не нужны, потому что они встроены в светодиоды.

Шаг 12: жилье

Корпус
Корпус
Корпус
Корпус
Корпус
Корпус

Я обернул части, которые соединяются вместе, полиэтиленовой пленкой, чтобы убедиться, что все провода надежно закреплены, и чтобы потом было легче вставить i в корпус. Я разработал все детали в изобретателе и распечатал их на своем 3D-принтере. Предоставляются все файлы изобретателя (.ipt) и файлы принтера / слайсера (.stl). Дизайн очень простой.

Задняя сторона (детали электрического лонгборда)

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

Антенна от модуля gps длинная, очень длинная. Поэтому я вытащил два конца из коробки и загнул проволоку в эту часть корпуса.

ПРИМЕЧАНИЕ: Используйте маленькие винты, длина которых не превышает толщины лонгборда!

Как только это стало хорошо, я заменил свой тестовый разъем постоянного тока на водонепроницаемый. Я припаял несколько проводов с коннекторами типа «мама» к проводам и коннекторам «папа» на проводах, которые прикреплены к плате BMS. Еще раз, провода не должны быть такими толстыми, потому что зарядное устройство выдает всего около 2 ампер. Также будет легче подключить разъем в случае с некоторыми проводами меньшего размера…

Лицевая сторона (raspberry pi с GPS и подсветкой)

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

ПРИМЕЧАНИЕ. Будьте осторожны, вставляя tft-экран в корпус, чтобы не повредить кабели, управляющие сенсорным экраном. Это случилось со мной…

Шаг 13: Базовая настройка Pi

Прежде всего, нам понадобится SD-карта с Raspbian. Вы можете скачать raspbian здесь. После загрузки мы можем установить raspbian на SD-карту. Вы можете установить программное обеспечение с помощью Win32Discmanager или etcher на свой компьютер.

После его установки вам нужно будет добавить файл с именем ssh без расширения, чтобы включить SSH на пи. Как только это будет сделано, вы можете загрузить raspberry и добавить его в свою сеть.

Pi не будет иметь подключения к вашей сети, поэтому вам нужно будет установить адрес APIPA, это IP-адрес, который будет иметь пи, когда у него нет подключения к сети. Откройте файл cmdline.txt на SD-карте и добавьте адрес APIPI. Например: ip = 169.254.10.5.

ПРИМЕЧАНИЕ: Убедитесь, что все стоит на одной линии, иначе это не сработает!

Вставьте SD в PI, подключите сетевой кабель от пи к компьютеру, а затем подключите питание.

После этого вы можете использовать Putty или, если вы используете Mac, просто используйте терминал для создания SSH-соединения.

ssh [email protected]

Добавление беспроводного подключения:

Чтобы добавить новую сеть к вашему пи, вы можете ввести эту команду:

echo ENTER_ ВАШ ПАРОЛЬ | wpa_passphrase ENTER_YOUR_SSID >>

/etc/wpa_supplicant/wpa_supplicant.conf

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

ssh pi @ IP_FROM_PI

Постоянное обнаружение своего IP-адреса немного раздражает, поэтому давайте настроим имя хоста, чтобы мы могли использовать его вместо этого (для этого требуется установка Bonjour на ПК с Windown).

sudo raspi-config nonint имя_хоста CHOOSE_A_HOSTNAME

ПРИМЕЧАНИЕ: Чтобы использовать имя хоста в будущем, вы должны ввести правило SSH следующим образом:

ssh USER@YOUR_HOSTNAME.local

Мы должны быть уверены, что система и пакеты pi обновлены:

Введите следующую команду, чтобы понять это:

sudo apt-get update && sudo apt-get upgrade

Шаг 14: поставьте проект на свой Pi

Новый пользователь

Я создал нового пользователя longboard для этого проекта:

Для этого нам нужно будет зайти в корень

судо -i

Adduser longboard Новый пароль:> l0ngb0 @ rd Полное имя:> electric longboard

Остальное можно оставить пустым. Далее нам нужно будет предоставить пользователю longboard права sudo.

adduser longboard sudo

После этого мы вернемся к нашему пользователю лонгборда.

su longboard

Пакеты

Установка некоторых пакетов для проекта. Пакеты для размещения сайта и базы данных

python3 -m pip install --user --upgrade pip == 9.0.3

sudo apt install -y python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3 rabbitmq-server

База данных коннекторов, веб-сайт пакетов и библиотеки для GPS / tijdzone Detectie

python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib argon2 libgeos-dev pytz tzwhere

Настройка базы данных

Проверить статус mysql

sudo systemctl статус mysql

Введя эту команду, вы можете увидеть, что MySQL слушает только 127.0.0.1 -> недоступен из сети, только локальный (на самом себе).

ss -lt | grep mysql

Запустить клиента как ру

sudo mysql

Создать пользователей:

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'project-admin' @ ‘localhost ', ОПРЕДЕЛЕННЫЙ‘@ min_l0ngb0 @ rd’;

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'project-longboard' @ 'localhost', ИДЕНТИФИЦИРОВАННЫЙ 'l0ngb0 @ rd';

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

СОЗДАТЬ БАЗУ ДАННЫХ longboard_db;

ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА longboard_db. * 'Project-admin' @ 'localhost' С ОПЦИЕЙ GRANT; > GRANT SELECT, INSERT, UPDATE, DELETE ON longboard_db. * TO 'project-longboard' @ 'localhost'; > ПРИВИЛЕГИИ ПРОМЫВКИ;

Запустите сценарий sql для создания таблиц, он также создаст пользователя по умолчанию для веб-сайта:

(имя пользователя: longboard, пароль: test):

источник / главная / логборд / лонгборд / лонгборд_db.sql;

выход

Проверьте, сработал ли запуск файла:

echo 'показать таблицы;' | mysql longboard_db -t -u проект-админ -p

Создайте каталог longboard и клонируйте мой проект из github

mkdir longboard && cd longboard

git clone

Если вы использовали то же имя каталога и пользователя, что и я, вам не следует изменять файлы в каталоге conf.

Если вы этого не сделали, вам следует настроить файлы (> sudo nano conf / filename.extension)

Как только пути будут правильными, вы должны скопировать файлы в системный каталог. Есть дерево сервисов.

  • Один для киоска на локальном хосте.
  • Один для модуля gps с подключением к базе данных
  • Один для сайта, доступного в вашей сети

sudo cp conf / project1 - *. служба / etc / systemd / system /

sudo systemctl daemon-reload> sudo systemctl start project1- *> sudo systemctl status project1- *

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

(Если предыдущий шаг завершился неудачно, вам следует проверить пути в файлах конфигурации)

sudo systemctl включить project1- *

Настройка сервиса nginx:

  • скопируйте conf / nginx в 'sites-available' (и дайте ему лучшее имя)
  • удалить ссылку на default-config
  • ссылка на новый конфиг / nginx
  • перезапустите, чтобы активировать изменения

sudo cp conf / nginx / etc / nginx / сайты-доступные / проект1

sudo rm / etc / nginx / sites-enabled / default> sudo ln -s / etc / nginx / sites-available / project1 / etc / nginx / sites-enabled / project1> sudo systemctl restart nginx.service

Проверьте, выжил ли nginx:

sudo systemctl status nginx.service

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

Шаг 15: Настройка режима киоска Raspberry Pi

Настройка режима киоска Raspberry Pi
Настройка режима киоска Raspberry Pi

Установка пакетов

sudo apt-get install chromium-browser x11-xserver-utils unclutter

Введите файл автозапуска пользователя pi:

sudo nano / etc / xdg / lxsession / LXDE-pi / автозапуск

Вам нужно будет закомментировать (поставить # перед строкой) существующее правило:

# @ xscreensaver -no-splash

Затем добавьте эти строки под строкой заставки

@xset s выкл.

@xset -dpms @xset s noblank @ Chrome-browser --noerrdialogs --kiosk https://127.0.0.1:8080/ --overscroll-history-navigation = 0 --incognito --disable-pinch

Нажмите ctrl-O, а затем ctrl-X, чтобы записать и выйти из файла, а теперь введите:

sudo raspi-config

Оттуда перейдите к boot_behaviour и измените этот параметр на загрузку в режиме рабочего стола и войдите в систему как пользователь pi по умолчанию.

ПРИМЕЧАНИЕ: чтобы выйти из режима киоска, вы можете ввести

sudo killall Chrome-browser.

Это закроет все экземпляры браузера Chrome.

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

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

Когда Pi загрузится, вы увидите IP-адрес на экране tft вместе со списком всех пользователей платы.

С этого экрана вы можете начать сеанс в автономном режиме. Вы также можете управлять своим светом. Если вы введете IP-адрес в своем браузере, вы попадете на экран входа в систему. Вы можете войти в систему с помощью пользователя по умолчанию «доска» (пароль: test). или вы можете создать новую учетную запись. Как только это будет сделано, вы увидите свою панель управления. Здесь вы можете увидеть свой маршрут поездки и общее расстояние, время в пути. Если вы перейдете на вкладку longboard, вы можете увидеть текущее местоположение доски, вы можете переключить свет и начать запись сеанса. После того, как вы нажмете «начать сеанс», PI будет постоянно определять местоположение и сохранять его в базе данных, пока вы не нажмете «остановить сеанс». Если у GPS нет исправления, сеанс не может быть запущен, вы получите предупреждение в верхней части экрана. Ваши сеансы будут отображаться на карте Google.

Конкурс "Сделай движение"
Конкурс "Сделай движение"
Конкурс "Сделай движение"
Конкурс "Сделай движение"

Финалист конкурса Make it Move

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