Сігвей своїми руками. Як виготовити своїми руками сегвей Сігвей з бензиновим двигуном своїми руками


Гіроскутер усередині

Основні деталі

З чого складається гіроскутер? Якщо поглянути з боку, то гіроскутер є собою цікавий пристрій. Перше – це робоча платформа або дошка. Саме на неї встає людина і, намагаючись тримати баланс, керує, їздить чи падає. З боків від платформи є два колеса, саме вони дають нам можливість їздити і рухатися вперед або назад.

Спочатку розберемося із платформою. Робоча платформа поділена на дві частини, на праву та ліву частину. Саме для правої та лівої ноги. Зроблено це для того, щоб була можливість повертати праворуч або ліворуч, саме за рахунок натискання носком на ці платформи.

Як влаштований гіроскутер?

Міні-сігвей пристрій

Колеса

З боків ідуть два колеса. Зазвичай гіроскутери бувають 4-ох видів, і вони різняться за класом і розміром коліс. Перший клас гіроскутерів є дитячий гіроскутер з колесами діаметром 4.5 дюймів. Маленький розмірколіс робить гіроскутер дуже незручним і не прохідним у деяких ділянках дороги.

Наступний клас – це гіроскутер 6.5 дюймів. Він має вже більший діаметр коліс, але також призначений тільки для їзди по рівних поверхнях. Гіроскутер 8 дюймів є золотою серединою серед усіх гіробордів. Він має оптимальний розмірколіс, який може проїхати практично будь-якими дорогами.

І найбільшим є позашляховик усіх міні-сигвеїв - гіроскутер 10 дюймів. Це модель, яка має цікава особливістьКрім великих коліс, ці колеса мають камерну систему. Тобто колеса надувні, вони мають плавніший хід, і такі гіроскутери більш зносостійкі ніж менші прототипи.

Корпус

Корпус у всіх гіроскутерів зроблений з різних матеріалів, але з тією ж особливістю. Скрізь корпус закриває колеса, захищаючи від бризок, бруду, води, снігу та пилу. Гіроскутери з маленькими колесами 4.5 і 6 зазвичай роблять із звичайного пластику. Так як ці моделі призначені для їзди рівною дорогою, і розвивають не таку високу швидкість, то інженери вирішили не ставити дорогий пластик і не збільшувати тим самим ціну на гіроскутер.

У гіроскутера з 8-ми дюймовими колесами, корпуси роблять з різних матеріалів, як із простого пластику, так і з карбону, міцного магнієвого пластику. Такий пластик, здатний витримати практично будь-яку фізичну дію та удари. Карбон, наприклад, ще й легкий матеріал, тим самим він знижує навантаження на електродвигуни та зменшує швидкість розрядки батареї.

Двигуни

Після того, як ви знімите кришку, з боків ближче до колеса ви повинні побачити електродвигун. Електродвигуни бувають різної потужності. Середнє значення серед усіх міні-сигвеїв є показник 700 Ватт на обидва колеса. Або по 350 Ватт на одне колесо. Справа в тому, що електродвигуни у гіроскутерів працюють незалежно один від одного. Одне колесо може їхати з однією швидкістю, а друге з іншого, або вони можуть рухатись у різні боки, одне назад, інше вперед. Таким чином ця система надає гіроскутеру керованості.

Він стає більш чутливим до поворотів на великій швидкості. Також ви можете розвертатись на місця на 360 градусів. Чим вище потужність у двигуна, тим вище вантаж, що переноситься, і тим вище швидкість, але не завжди. Треба розуміти, що чим вища маса навантаження на платформу, тим нижча швидкість і швидше розряджається батарея. Тому гіроскутери з потужними двигунами коштують дорожче.

Система балансування

Система балансування складається і включає досить багато компонентів. Насамперед, це два гіроскопічні датчики, які розташовані в правій та лівій частині платформи. Якщо зняти кришку корпусу, можна побачити дві допоміжні плати, саме до них і приєднані гіроскопічні датчики. Допоміжні плати допомагають обробляти інформацію та відправляти її в процесор.

Далі в правій частині можна побачити основну плату, саме там стоїть 32 бітний процесор і здійснюється все управління і обчислення. Там же і стоїть програма, яка реагує на будь-яку зміну платформи праворуч чи ліворуч.

Якщо платформа нахиляється вперед, процесор, обробивши інформацію, посилає сигнал електродвигунам, які фізично утримують дошку в рівному положенні. Але якщо платформа нахиляється сильніше з певним тиском, колесо починає відразу рух уперед чи назад.

Потрібно обов'язково пам'ятати, що у всіх нинішніх гіроскутерах мають бути дві допоміжні плати для гіроскопічних датчиків і одна основна, де стоїть процесор. У старих моделях може стояти і двоплатна система, але з осені 2015 року, до стандарту було внесено зміну і тепер усі гіроскутери, міні-сигвеї робляться з трьома платами.

У китайських підробках або неякісних гіроскутерах може стояти одна плата, основна. На жаль, такий міні-сигвей має погані характеристики в управлінні. Може вібрувати або перекидати водія. А згодом вся система взагалі може вийти з ладу.

Схема внутрішнього пристроюуправління гіроскутером не така складна, як здається. Вся система зроблена так, щоб максимально швидко реагувати на будь-яку поведінку платформи. Розрахунок йде в частки секунди і з вражаючою точністю.

Батарея

Система живлення гіроскутера здійснюється від двох або більше акумуляторів. У стандартних недорогих моделях зазвичай ставлять акумулятор потужністю 4400 мА/год. Акумулятор відповідає за роботу всієї системи в цілому та забезпечення її електроенергією, тому батарея має бути якісною та фірмовою. Зазвичай використовують акумулятори двох брендів – це Samsung та LG.

Також акумулятори відрізняються класом. Є низькорівневі батареї класів 1С, 2С. Такі акумулятори зазвичай ставлять на гіроскутери з 4.5 та 6.5 дюймовими колесами. Все з тієї ж причини, тому що ці гіроскутери призначені для рівних доріг, асфальту, мармуру або підлоги.

Гіроскутери з 8-ми дюймовими колесами зазвичай ставлять акумулятори середнього класу типу 3С, це вже більш надійна модель батареї. Вона не відключатиметься при різкій зупинці або при наїзді на бордюр або в яму.

У більш колісних 10-ти дюймових моделях зазвичай ставлять акумулятори 5С класу. Цей гіроскутер здатний їздити практично будь-якими дорогами, землею, калюжами, ямами. Тому батарея потрібна більш надійна.

Основний принцип влаштування гіроскутера зумовлений утримання рівноваги. При великій вазіводія гіроскутеру потрібно більше електроенергії для здійснення маневрів та руху.

інше

У багатьох гіроскутерах також ставлять Bluetooth систему та колонки. За допомогою неї ви зможете слухати улюблену музику та кататися з друзями. Але ця система ще дає можливість під'єднувати свій смартфон до гіроскутера та стежити за станом свого засобу пересування. Можна стежити за середньою швидкістю, дивитися яку відстань ви подолали. Налаштувати максимальну допустиму швидкість та багато чого ще.

Ще на багатьох моделях стоїть підсвічування, воно висвітлює вам шлях у темряві і так само може яскраво блимати в такт з музикою. Але треба пам'ятати, що музика та підсвічування сильно садять батарею. Багато хто взагалі відключає підсвічування, щоб збільшити запас ходу.

Висновок

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

Зараз все більш популярним стає невелика платформа, що саморухається, з двома колесами, так званий Сігвей, який винайшов Дін Камен. Помічаючи труднощі, з якими стикається людина у візку при сходженні на тротуар, він побачив можливість створити транспортний засіб, який може допомогти людям пересуватися без особливих зусиль. Камен застосував на практиці свою ідею про створення платформи, що самобалансується. Перша модель була випробувана у 2001 році та це був автомобіль з кнопками на ручці. Вона була розроблена для людей з обмеженими можливостямиі дозволяла їм самостійно пересуватися навіть пересіченою місцевістю. Нова модельстала відома як "Сігвей РТ", і вже дозволяла рулити, нахиляючи ліворуч або праворуч важіль. У 2004 році вона почала продаватися в Європі та Азії. Ціна просунутих сучасних моделейНаприклад, Segway PTi2 - близько 5000 доларів. У Останнім часомкитайські та японські компанії створюють пристрої з різними модифікаціямита новаторською конструкцією. Деякі навіть роблять подібні транспортні засоби тільки з одним колесом, але розглянемо класичний Сігвей.


Segway складається з платформи та двох коліс, розміщених поперечно з приводом від двох електромоторів. Сама система стабілізується складною електронною схемою, яка керує двигунами, беручи до уваги не тільки нахили водія, але й стан транспортного засобу, що дозволяє йому залишатися у вертикальному стабільному положенні. Водій, стоячи на платформі, контролює швидкість, просто переміщуючи ручку вперед або назад, при нахилі вправо або вліво - поворот. Плата керування відстежує сигнали відповідних датчиків руху та орієнтування (схожі на ті, що дозволяють смартфонам змінювати орієнтацію екрану), щоб допомогти бортовому мікропроцесору точно орієнтувати платформу. Головний секрет segway не так в електромеханічній частині, як у коді, який враховує фізику руху зі значною математичною точністю обробки даних та передбачення поведінки.

Сігвей оснащений двома безщітковими електромоторами, зробленими із застосуванням сплаву неодим-залізо-бору, здатними розвивати потужність до 2 кВт завдяки літій-полімерному акумулятору.

Деталі для Сігвея

Для створення Сігвея потрібно два мотори-редуктори з колесами, акумулятор, електронна схема, платформа та кермо.

Потужність двигуна недорогих моделейприблизно 250W, що забезпечує швидкість до 15 км/год, із відносно низьким споживанням струму. Прямо крутити колеса не можуть, тому що висока кількість обертів цих моторів не дозволяють отримати потрібну тягу. Аналогічно тому, що відбувається, коли ви використовуєте передач вашого велосипеда: за рахунок збільшення передатного відношення загубиться швидкість, але збільшиться зусилля до педалі.

Платформа розташована нижче за осі моторів. Батарея, вага якої досить висока, також знаходяться під підніжкою у симетричному положенні, що гарантує навіть без водія на борту Сігвей залишається у вертикальному положенні. Крім того, внутрішня механічна стабільність допоможе вузлу електронної стабілізації, яка є повністю активною, коли водій присутній. Присутність людини на платформі піднімає центр ваги вище осі колеса, що робить систему нестабільною - це вже компенсуватиме платі електроніки.

В принципі, таку річ можна зробити і самому, купивши потрібний блокелектроніки на китайському сайті (вони є у продажу). Монтаж всіх частин здійснюється гвинтами та гайками (не шурупи). Особливу увагумає бути приділено належному натягу ланцюга. Кріплення батарей здійснюється через U-подібні хомути з невеликими гумовими прокладками, щоб забезпечити потрібний тиск. Рекомендується додавати двосторонній скотч між батареєю і платформою, так щоб не було прослизання. Контрольна панель повинна бути вставлена ​​між двома батареями та кріпиться спеціальними розпірками.

Важіль управління може бути, а може й ні – адже зараз популярні моделі сигвеїв і без нього (мінісігвей). Загалом річ ​​цікава і не дуже дорога, оскільки, за інформацією від знайомих, закупівельна оптова ціна в Китаї всього 100 доларів.

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

Що таке гіроскутер?

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

Ці датчики зчитують будь-яку зміну положення щодо земної поверхніабо точки від якої йде гравітаційний вплив. Після зчитування інформація подається на допоміжні плати, які знаходяться по обидва боки платформи. Так як датчики і самі електродвигуни працюють незалежно один від одного, то надалі нам знадобляться два електродвигуни. Від допоміжних плат інформація в обробленому вигляді вже йде в материнську плату з мікропроцесором. Там уже із необхідною точністю виконується програма утримання балансу.

Тобто якщо платформа нахиляється вперед приблизно на кілька градусів, то двигунам подається сигнал на рух у зворотний напрямок і платформа вирівнюється. Також виконується і нахил в інший бік. Якщо ж гіроскутер нахиляється на більший градус, то програма одразу розуміє, що йде команда про рух вперед або назад електродвигунам. Якщо гіроскутер нахиляється більше ніж на 45 градусів, то двигуни і сам гіроскутер вимикається.

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

Що нам знадобиться?

Як зробити гіроскутер своїми руками? Перше та основне що знадобиться, це два електричних двигуназ потужністю здатних перевозити вагу дорослої людини. Середня потужність у заводських моделей становить 350 Ватт, тому спробуємо знайти двигуни такої потужності.

Далі звичайно потрібно знайти два однакових колеса, приблизно 10-12 дюймів. Краще більше, оскільки електроніки у нас буде багато. Щоб прохідність була вищою та відстань між платформою та землею була на потрібному рівні.

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

Виробництво та процес

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

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

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

Але як зробити гіроскутер безпечним? Два акумулятори у нас будуть приєднані послідовно, так ми отримаємо потрібну напругу. Для електродвигунів, якраз і знадобиться здвоєна бруківка. Буде поставлено кнопку готовності, за натисканням якої і надходитиме живлення на двигуни. При віджиманні цієї кнопки двигуни і сам гіроскутер буде відключатися. Потрібно це для здійснення безпечної їзди самого водія та нашого автомобіля.

Мікроконтролер Arduino буде на швидкості близько 38 400 БОД, використовувати послідовний зв'язокзі схемою 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 mp // 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 ці значення для 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; // Визначте, що MPU роз'єднувати pin має велику передачу dmpDataReady() ( mpuInterrupt = true; ) Void setup() ( // join I2C bus (I2Cdev library не буде цього автоматично) #if I2CDEV_IMPLEMENTATION =. ), TWBR = 24; // 400kHz I2C clock (200kHz if CPU є 8MHz) // Supply your own gyro offsets here, scaled for min sensitivity mpu.setXGyroOffset(220); mpu.setYGyroOffset(76); mpu.setZGyroOffset(-85); chip / / Make sure it worked (returns 0 if so) if (devStatus == 0) ( // Turn on the DMP, now that it"s ready mpu.setDMPEnabled(true); , dmpDataReady, RISING); 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 / failed (code ")); Serial.print(devStatus); Serial.println(F(")")); ) return // wait for MPU interrupt or extra packet(s) available while (!mpuInterrupt &&< 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 // (Ці 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.

На цьому поки що все. До зустрічі.

Невже такий складний пристрій, як сигвей, можна зробити самому? Виявляється, можна. Якщо докласти достатньо старанності та скористатися спеціальними знаннями. Що й зробив молодий інженер на ім'я 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, щоб можна було бачити всі значення датчиків і сигналів управління, стану батареї і т.д.

Технічна сторона створення сегвею своїми руками на цьому відео: