Самодельный сигвей чертежи. Гироскутер: устройство, из чего состоит, схема и конструкция мини-сигвея. Что такое гироскутер

Если вы думаете, что гироскутер или мини-сигвей невозможно сделать дома своими руками и силами, то вы далеко заблуждаетесь. Как ни странно, в интернете есть много видео, где многие умельцы делают именно свой гироскутер. У некоторых он получается очень самодельный, но есть и те, кто смог по настоящему приблизиться к самой технологии создания и воспроизвести по настоящему интересную и качественную вещь. Так можно ли сделать гироскутер своими руками? Нам расскажет об этом Adrian Kundert - инженер и просто хороший человек.

Что такое гироскутер?

Как сделать гироскутер своими руками? Для того, чтобы понять как сделать самодельный гироскутер, нужно для начала понять - что такое гироскутер , из чего он состоит и что нужно для создания этого интересного средства передвижения. Гироскутер - это самосбалансированное средство передвижения, принцип работы которого стоит на системе гироскопических датчиков и внутренней технологии удержания баланса рабочей платформы. То есть когда мы включаем гироскутер, включается и система балансировки. Когда человек встает на гироскутер, начинается меняться положение платформы, эта информация считывается как раз гироскопическими датчиками.

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

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

Гироскутер состоит, из корпуса, стальной или металлической основы, на который и будет крепится вся электроника. Дальше идет два электродвигателя с той мощностью, чтобы была возможность ездить под весом человека до 80-90кг. Дальше идет материнская плата с процессором и две вспомогательные платы, на которых как раз и стоят гироскопические датчики. И конечно же аккумулятор и два колеса с одинаковым диаметром. Как сделать гироскутер? Для решения этого вопроса, нам понадобится добыть определенные детали конструкции самого гироборда.

Что же нам понадобится?

Как сделать гироскутер своими руками? Первое и основное что понадобится, это два электрических двигателя, с мощностью способных перевозить вес взрослого человека. Средняя мощность у заводских моделей составляет 350 Ватт, поэтому постараемся найти двигатели такой мощности.

Дальше конечно же нужно найти два одинаковых колеса, примерно 10-12 дюймов. Лучше побольше, так как электроники у нас будет много. Чтобы проходимость была выше и расстояние между платформой и землей было на нужном уровне.

Два аккумулятора, свинцово-кислотных, нужно выбрать номинальную мощность как минимум 4400 мА/ч, а лучше больше. Так как мы будем делать не металлическую конструкцию, но она будет весить больше чем оригинальный мини-сигвей или гироскутер.

Производство и процесс

Как сделать гироскутер, мощный и чтобы он сам держал баланс при езде? Сначала нужно построить план, какое именно средство передвижения нам понадобится. Нам нужно сделать довольно мощное средство передвижения с большими колесами и большой проходимостью по разным дорогам. Минимальное значение беспрерывной езды должно составлять 1-1.5 часа. Мы потратим примерно около 500 евро. Поставим беспроводную систему управления нашему гироскутеру. Поставим считывающее устройство неполадок и ошибок, вся информация будет идти на SD-карту.

Схема гироскутера

На схеме выше можно все четко увидеть: электродвигатели, аккумуляторы и прочее. Для начала нужно выбрать именно тот микроконтроллер, который и будет осуществлять управление. Из всех представленных на рынке микроконтроллеров Arduino мы с вами выберем UnoNano, и в качестве дополнительного чипа обработки информации будет выступать ATmega 328.

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

Микроконтроллер Arduino будет на скорости около 38400 БОД, использовать последовательную связь со схемой XBee. Мы будем использовать два гироскопических датчика InvenSense MPU 6050 на базе модулей GY-521. Они в свою очередь будут считывать информацию о положении платформы. Эти датчики достаточно точны для того, чтобы сделать мини-сигвей. Эти датчики будут расположены на двух дополнительных вспомогательных платах, которые будут осуществлять первичную обработку.

Мы будем использовать шину I2C, она имеет достаточную пропускную способность, чтобы быстро связывать с микроконтроллером Arduino. Гироскопический датчик имеющий адрес 0x68 имеет частоту обновления информации раз в 15 мс. Второй же датчик адресов 0x68 работает напрямую от микроконтроллера. У нас так же есть выключатель нагрузки, он переводит гироскутер в режим удержания баланса, тогда когда платформа находится в ровном положении. В этом режиме гироскутер остается на месте.

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

Двигатели же нужно равномерно распределить справа и слева по бокам платформы, а аккумулятор максимально посередине в специальной коробке. Крепим рулевой столб на обычные финты и присоединяем кнопку готовности к верхней части палки. То есть если что-то пошло не так и кнопка отжата, то гироскутер будет выключаться. В дальнейшем эту кнопку можно переделать в подножную часть или настроить на определенный наклон самой платформы, но мы пока делать этого не будем.

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

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

Настройка датчиков

Дальше производим настройку микроконтроллера, загружаем исходный код . Дальше нужно проверить правильную взаимосвязь между гироскопическими датчиками и датчиками поворотов. Используйте программу Arduino Terminal по программированию и настройке гироскутера. Обязательно нужно настроить ПИД регулятор баланса. Дело в том, что вы можете выбрать двигатели с другой мощностью и характеристиками, для них настройка будет другой.

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

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

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

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

Сигвей от англ. Segway – двухколесное средство передвижения стоя, оснащенное электроприводом. Еще их называют гироскутерами или электрическими самокатами.

Вы когда-нибудь задумывались, как работает Сигвей? В этом уроке мы постараемся показать вам, как сделать робота Ардуино, который уравновешивает себя точно так же, как Segway.

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

В итоге должен получиться примерно такой друг:

Схема робота

Модуль драйвера двигателя L298N:

Мотор редуктора постоянного тока с колесом:

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

Завершенный вариант самостоятельно балансирующего робота можно посмотреть на рисунке выше. В верхней части находятся шесть Ni-Cd-батарей для питания печатной платы. В промежутках между моторами используется 9-вольтовая батарея для драйвера двигателя.

Теория

В теории управления, удерживая некоторую переменную (в данном случае позицию робота), требуется специальный контроллер, называемый ПИД (пропорциональная интегральная производная). Каждый из этих параметров имеет «прирост», обычно называемый Kp, Ki и Kd. PID обеспечивает коррекцию между желаемым значением (или входом) и фактическим значением (или выходом). Разница между входом и выходом называется «ошибкой».

ПИД-регулятор уменьшает погрешность до наименьшего возможного значения, постоянно регулируя выход. В нашем самобалансирующем роботе Arduino вход (который является желаемым наклоном в градусах) устанавливается программным обеспечением. MPU6050 считывает текущий наклон робота и подает его на алгоритм PID, который выполняет вычисления для управления двигателем и удерживает робота в вертикальном положении.

PID требует, чтобы значения Kp, Ki и Kd были настроены на оптимальные значения. Инженеры используют программное обеспечение, такое как MATLAB, для автоматического вычисления этих значений. К сожалению, мы не можем использовать MATLAB в нашем случае, потому что это еще больше усложнит проект. Вместо этого мы будем настраивать значения PID. Вот как это сделать:

  1. Сделайте Kp, Ki и Kd равными нулю.
  2. Отрегулируйте Kp. Слишком маленький Kp заставит робота упасть, потому что исправления недостаточно. Слишком много Kp заставляет робота идти дико вперед и назад. Хороший Kp сделает так, что робот будет совсем немного отклоняться назад и вперед (или немного осциллирует).
  3. Как только Kp установлен, отрегулируйте Kd. Хорошее значение Kd уменьшит колебания, пока робот не станет почти устойчивым. Кроме того, правильное Kd будет удерживать робота, даже если его толькать.
  4. Наконец, установите Ki. При включении робот будет колебаться, даже если Kp и Kd установлены, но будет стабилизироваться во времени. Правильное значение Ki сократит время, необходимое для стабилизации робота.

Поведение робота можно посмотреть ниже на видео:

Код Ардуино самобалансирующего робота

Нам понадобилось четыре внешних библиотеки, для создания нашего робота. Библиотека PID упрощает вычисление значений P, I и D. Библиотека LMotorController используется для управления двумя двигателями с модулем L298N. Библиотека I2Cdev и библиотека MPU6050_6_Axis_MotionApps20 предназначены для чтения данных с MPU6050. Вы можете загрузить код, включая библиотеки в этом репозитории .

#include #include #include "I2Cdev.h" #include "MPU6050_6Axis_MotionApps20.h" #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif #define MIN_ABS_SPEED 20 MPU6050 mpu; // MPU control/status vars bool dmpReady = false; // set true if DMP init was successful uint8_t mpuIntStatus; // holds actual interrupt status byte from MPU uint8_t devStatus; // return status after each device operation (0 = success, !0 = error) uint16_t packetSize; // expected DMP packet size (default is 42 bytes) uint16_t fifoCount; // count of all bytes currently in FIFO uint8_t fifoBuffer; // FIFO storage buffer // orientation/motion vars Quaternion q; // quaternion container VectorFloat gravity; // gravity vector float ypr; // yaw/pitch/roll container and gravity vector //PID double originalSetpoint = 173; double setpoint = originalSetpoint; double movingAngleOffset = 0.1; double input, output; //adjust these values to fit your own design double Kp = 50; double Kd = 1.4; double Ki = 60; PID pid(&input, &output, &setpoint, Kp, Ki, Kd, DIRECT); double motorSpeedFactorLeft = 0.6; double motorSpeedFactorRight = 0.5; //MOTOR CONTROLLER int ENA = 5; int IN1 = 6; int IN2 = 7; int IN3 = 8; int IN4 = 9; int ENB = 10; LMotorController motorController(ENA, IN1, IN2, ENB, IN3, IN4, motorSpeedFactorLeft, motorSpeedFactorRight); volatile bool mpuInterrupt = false; // indicates whether MPU interrupt pin has gone high void dmpDataReady() { mpuInterrupt = true; } void setup() { // join I2C bus (I2Cdev library doesn"t do this automatically) #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin(); TWBR = 24; // 400kHz I2C clock (200kHz if CPU is 8MHz) #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif mpu.initialize(); devStatus = mpu.dmpInitialize(); // supply your own gyro offsets here, scaled for min sensitivity mpu.setXGyroOffset(220); mpu.setYGyroOffset(76); mpu.setZGyroOffset(-85); mpu.setZAccelOffset(1788); // 1688 factory default for my test chip // make sure it worked (returns 0 if so) if (devStatus == 0) { // turn on the DMP, now that it"s ready mpu.setDMPEnabled(true); // enable Arduino interrupt detection attachInterrupt(0, dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus(); // set our DMP Ready flag so the main loop() function knows it"s okay to use it dmpReady = true; // get expected DMP packet size for later comparison packetSize = mpu.dmpGetFIFOPacketSize(); //setup PID pid.SetMode(AUTOMATIC); pid.SetSampleTime(10); pid.SetOutputLimits(-255, 255); } else { // ERROR! // 1 = initial memory load failed // 2 = DMP configuration updates failed // (if it"s going to break, usually the code will be 1) Serial.print(F("DMP Initialization failed (code ")); Serial.print(devStatus); Serial.println(F(")")); } } void loop() { // if programming failed, don"t try to do anything if (!dmpReady) return; // wait for MPU interrupt or extra packet(s) available while (!mpuInterrupt && fifoCount < packetSize) { //no mpu data - performing PID calculations and output to motors pid.Compute(); motorController.move(output, MIN_ABS_SPEED); } // reset interrupt flag and get INT_STATUS byte mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus(); // get current FIFO count fifoCount = mpu.getFIFOCount(); // check for overflow (this should never happen unless our code is too inefficient) if ((mpuIntStatus & 0x10) || fifoCount == 1024) { // reset so we can continue cleanly mpu.resetFIFO(); Serial.println(F("FIFO overflow!")); // otherwise, check for DMP data ready interrupt (this should happen frequently) } else if (mpuIntStatus & 0x02) { // wait for correct available data length, should be a VERY short wait while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount(); // read a packet from FIFO mpu.getFIFOBytes(fifoBuffer, packetSize); // track FIFO count here in case there is > 1 packet available // (this lets us immediately read more without waiting for an interrupt) fifoCount -= packetSize; mpu.dmpGetQuaternion(&q, fifoBuffer); mpu.dmpGetGravity(&gravity, &q); mpu.dmpGetYawPitchRoll(ypr, &q, &gravity); input = ypr * 180/M_PI + 180; } }

Значения Kp, Ki, Kd могут работать или не работать. Если они этого не делают, выполните шаги, описанные выше. Обратите внимание, что наклона в коде установлен на 173 градуса. Вы можете изменить это значение, если хотите, но обратите внимание, что это угол наклона, которым должен поддерживаться роботом. Кроме того, если ваши двигатели слишком быстры, вы можете отрегулировать значения motorSpeedFactorLeft и motorSpeedFactorRight.

На этом пока всё. До встречи.

Китайский сигвей – фото внешнего вида

До недавнего времени я вообще не знал, как называется “ну, такая каталка на двух колёсах, ехать стоя”. Недавно узнал, что этот электросамокат на двух колесах называется Сегвей или Сигвей , по-английски – Segway . Кто до сих пор не понял, о чем речь – фото слева.

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

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

Слово “практически” меня всегда настораживает. Так и в этот раз.

Но обо всём по порядку.

Поломка сигвея

Моя история началась как раз с того, что человек на сигвее упал. Ехал на приличной скорости, и – носом в асфальт!

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

Странно, что контакты не пригорели и не слиплись намертво, впрочем, тогда бы выгорела проводка, т.к. при токе около 100 Ампер предусмотрено не было, а штатные предохранители остались целы.

Да, стоит сказать, что этот сигвей был дешевой подделкой, и куплен дней за десять до поломки. Всё было написано по китайски (насколько я разбираюсь в китайском), кроме “Warning!” Впрочем, о качестве сборки можно будет судить по фото.

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

Устройство сигвея. Разборка

Что мне конкретно понравилось – это колёса с солидными протекторами. То есть, предполагается, что этот самокат может использоваться в тяжелых условиях.

Однако, платы вообще не защищены от воздействия влаги, нет даже никакого лака. И вообще никаких резиновых прокладок от влаги не предусмотрено…

Руль прикручивается, его можно открутить при транспортировке:

Крепление руля. Вид спереди.

А вот вид сзади:

Предохранители и разъем зарядки

Видно два предохранителя по 50 А (схема сигвея будет чуть ниже), разъем заряда аккумулятора, над всем этим – “фары” в виде светодиодов на 12 В.

Верхняя панель. На ней – основные органы управления и индикации:

Верхняя панель сигвея

Вверху – дисплей, который показывает заряд батареи, ниже – предупреждения, которые необходимо внимательно прочитать, прежде чем становиться за руль. Если что непонятно – позвонить по телефону)

Три светодиода индицируют состояние сегвея: 1 – поворот влево, 2 – поворот вправо, 3 – горизонтальное положение (положение, в котором человек может становиться и начинать движение)

А что там свежего в группе ВК СамЭлектрик.ру ?

Подписывайся, и читай статью дальше:

Снимаем колёса.

Снято колесо

Сигвей со снятыми колесами

Снимаем переднюю панель.

Снимаем верхнюю крышку

Выглядит весьма непрезентабельно, но это только начало.

Передняя панель сзади. Провода откинуты. Замок снят.

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

Переменный резистор наклона руля

Сопротивление – 10 кОм, линейная характеристика.

Так и хочется сказать – “потроха”

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

Электронная начинка сигвея

Теперь подробнее рассмотрим электронику сигвея.

Вот фото подключения платы управления.

Устройство крупнее и подключение платы

Силовые транзисторы – IRF4110:

Силовые транзисторы платы управления

Именно парочка этих транзисторов и сгорела. При этом эта пара замкнула на себя питание аккумулятора, образовав КЗ.

Электронная схема сигвея – общий вид

Рассмотрим элементы схемы подробнее.

Электронная схема сигвея – общий вид – другой ракурс

Схема в общем не большая, разобьем её на несколько частей – приемник, контроллер, электронный гироскоп, драйвера транзисторов, силовые транзисторы, блок питания.

Микросхемки IC3, IC4 – это радиоканал, который позволяет управлять сигвеем с пульта. То есть, настраивать его, калибровать, блокировать, диагностировать.

Микросхема IC2 – контроллер ATMEGA 32A. Это сердце сигвея, точнее, мозг. Тут заложено самое главное – программа, алгоритм работы. Именно эта программа управляет вращением колёс и не дает человеку упасть.

Если контроллер – мозг, то гироскоп – это органы чувств. Гироскоп – это маленькая микросхемка INVENSENCE MPU6050. Это замечательное устройство представляет собой трехканальный измеритель положения в пространстве (наклон по трем осям) и трехканальный измеритель ускорения. Если кто помнит из физики, ускорение – это скорость изменения скорости. Честно, не понимаю, как в этот чип можно впихнуть такие измерители. Я до сих пор знал электромеханические гироскопы, а акселерометры знал только электронные. Теперь узнал, что бывают и такие, и используются очень широко, в основном в мобильной и автомобильной электронике.

На последнем фото также видно две микросхемы буферов CD4001 (это 2И-НЕ). Это для развязки контроллера и остальной схемы. Далее сигнал управления поступает на драйвера IR2184S, которые подают напряжения на затворы силовых полевиков, фото которых я давал выше.

Блок питания XL7015 – преобразователь DC-DC, из плавающего постоянного напряжения около 48В он путем преобразований на частоте несколько килогерц выдает стабильное постоянное напряжение 15В. Далее – обычная КРЕНка 7805 выдает 5 Вольт. Желтая топорная перемычка была, я тут ни при чём. А вот сгоревшая дорожка вверху справа – это путь питания 0В на управление, её пришлось восстанавливать.

Слаботочные элементы схемы сигвея соединяются через кросс-плату:

На эту плату приходят сигналы: от потенциометра руля, от кнопок наличия человека, к светодиодам панели управления. И уходят провода на главную плату.

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

Двигатель колеса с редуктором

Аккумулятор тоже не содержит никаких надписей:

Аккумулятор 48В

Входят два провода для зарядки (потоньше) и два выходных провода.

Видите искореженные места? Аккумулятор вообще никак не закреплен, болтается в сигвее, и бьётся об острые края ребер жесткости.

В общем, сделано на … короче, плохо сделано, и так или иначе скорая поломка сигвея была неизбежной.

Ещё примочка – преобразователь, также валялся на дне, замотан в плёнку. Поскольку светодиоды габаритных огней рассчитаны на напряжение 12 В, а аккумулятор – на 48 В, то используется преобразователь постоянного напряжения DC-DC 48-12 В:

Схема сибвея

Ремонт segway

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

Только в этом случае опять пострадает и чей-то нос.

Так что прогноз пессимистичный, покупайте только качественные вещи, особенно, если речь идёт о безопасности! Теперь понятно, почему на всех фото ездок на сигвее с надетым шлемом…

Езда на Segway

Езда на подобном оригинальном внедорожном сигвее (в спокойном режиме) показана на видео:

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


В этой статье будет рассмотрено создание самобалансирующегося средства передвижения или просто «Сегвей». Практически все материалы для создания данного устройства легкодоступны.

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

Материалы:


-Беспроводной модуль управления XBee.
-микроконтроллер Arduino
-аккумуляторы
-датчик InvenSense MPU-6050 на модуле “GY-521”,
-деревянные бруски
-кнопка
-два колеса
и прочее, указанное в статье и на фотографиях.

Шаг первый: Определение требуемых характеристик и проектирование системы.

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

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

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


На следующем изображении показана система работы привода гироскутера.


Выбор микроконтроллера для управления системами Сегвея разнообразен, автор система Arduino наиболее предпочтительна из-за своих ценовых категорий. Подойдут такие контроллеры как Arduino Uno, Arduino Nano или можно взять ATmega 328 для использования в качестве отдельного чипа.

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

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

За счет датчика InvenSense MPU-6050 на модуле “GY-521”, обрабатывающего ускорение и несущего в себе функции гироскопа, измеряются параметры наклона. Датчик был расположен на двух отдельных платах расширения. По шине l2c поддерживается связь с микроконтроллером Arduino. Причем датчик наклона с адресом 0x68 был запрограммирован таким образом, чтобы выполнять опрос каждый 20 мс и обеспечивать прерывание микроконтроллера Arduino. Другой датчик имеет адрес 0x69 и он подтянут прямо к Arduino.

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

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


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

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

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

Шаг третий: Электрическая схема.



Согласно приведенной схеме была осуществлена вся провода в корпусе Сегвея. Так же в соответствии с таблицей приведенной ниже были подключены все выводы микроконтроллера Arduino к мостовой схеме управления двигателем, а так же к датчикам балансировки.


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



Шаг четвертый: Тестирование и настройка устройства.


После проведения предыдущих этапов, автор получил модель Сегвея для тестирования.

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

Неужели такое сложное устройство, как сигвей, можно сделать самому? Оказывается, можно. Если приложить достаточно усердия и воспользоваться специальными знаниями. Что и сделал молодой инженер по имени Petter Forsberg, окончивший шведский технологический университет Чалмерса по специальности "Автоматизация и мехатроника".

Кроме знаний и умений, ему еще должны были понадобится немалые деньги, скажете вы. Да, деньги понадобились, но не много, около 300 евро, чтобы приобрести определенный набор деталей и оборудования. Результат его стараний - на этом видео:

Механика

Двигатели, колеса, цепи, шестерни и аккумуляторы были взяты от двух недорогих китайских электроскутеров. Двигатели позволяют обеспечить 24Вольт, 300Вт, 2750 оборотов в минуту.

Передача осуществляется от малой шестерни на моторе к большой шестерне на руле. Соотношение составляет примерно 6:1, такое высокое соотношение предпочтительнее, чтобы получить лучший крутящий момент и пониженную максимальную скорость. Передача на 12-дюймовом колесе была основана на механизме свободного хода, поэтому пришлось внести необходимые изменения, чтобы можно было водить колесо в обоих направлениях.

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

Чтобы иметь возможность поворачивать при управлении сегвеем с помощью наклона рулевой колонки влево и вправо был выполнен чертеж необходимой детали в программе SolidWorks, после чего она была изготовлена на станке с ЧПУ. Программа для станка была написана с применением CAMBAM. Этот же метод был использован для производства коробки для электроники и сборки блока экстренного торможения.

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

Для питания используются два свинцовых аккумулятора 12V 12Ah, которые применяются для моторов на 24V.

Электроника

Все печатные платы были изготовлены специально для этой разработки. Главная плата берет на себя вычисления, собирает данные от датчиков, таких как гироскоп (ADXRS614), акселерометр (ADXL203) и подстроечный потенциометр, на основании чего способна определить в каком направлении вы хотите повернуть.

Основной процессор AVR ATmega168. Соединение с ноутбуком производится по Bluetooth с использованием RN-41. Два H-моста преобразуют сигналы управления от основной платы на усилие для двигателей. Каждый H-мост имеет ATmega168, связь между платами осуществляется через UART. Вся электроника работает на отдельной батарее (LiPo 7.4V 900mAh).

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

Программное обеспечение

Программное обеспечение микроконтроллера в основном состоит из фильтра для гироскопа и акселерометра и цикла PD управления. Для теста были взяты два фильтра: Kalman и Complemenatry. Оказалось, что производительность их была очень похожа, но для Complemenatry фильтра требуется меньше вычислений, поэтому именно он был выбран для использования. Также были написаны приложения на Java, чтобы можно было видеть все значения датчиков и сигналов управления, состояния батареи и т.д.

Техническая сторона создания сегвея своими руками на этом видео: