HandMade32.ru - сделай своими руками

Гиропульт на Arduino

Рад снова приветствовать читателей сайта «У Самоделкина». Я любитель создавать электронные игрушки. Чего только я уже не делал. Это и роботы (на гусеничном ходу, на колесах, гексапод, квадропод) и танчики и машинки. И каждый раз я делал несколько вариантов на одном и том же шасси (платформе), которые в свою очередь, можно разделить на две группы. В первую входили варианты с автономным поведение модели. А во вторую управляемые. Способов реализации удаленного управления много. Я уже испробовал и радиопередатчик на 27 МГц и на 433 МГц, и инфракрасное управление, и Bluetooth, и Wi-Fi. Сегодня я остановлюсь на пульте, работающем на частоте 2.4 ГГц. Но просто поменять передающий модуль и написать новый скетч для уже готового пульта – слишком скучно. Поэтому добавим разнообразия. Мы будем делать пульт-ремешок на руку или гиропульт, без кнопок, определяющий положение кисти руки в пространстве и отправляющий соответствующие команды на управляемое устройство.

Покупаем все необходимое:

Arduino Pro Mini 3.3V 8 MHz
Радио модуль для Arduino nRF24L01+ мини
GY-521 — модуль с гироскопом, акселерометром на чипе MPU-6050
— Текстильная застежка или липучка в виде ленты шириной 20 мм
— Кнопка с фиксатором положения
— Соединительные провода
USB-TTL для заливки скетча
— Паяльник, припой, канифоль (стандартный набор)
— Изолента черная
— Термоклеевой пистолет
— Аккумулятор литиевый
Шаг 1 Подготовка аккумулятора.
Для питания нашего пульта будем использовать литиевый аккумулятор. Лучше всего купить такой аккумулятор с микросхемой – контролером. Так будет надежнее и срок службы аккумулятора продлите. Главное, чтобы об был не больше чем 60 х 40 мм. Аккумулятор большего размера будет плохо помещаться в руке. У меня такого не было, а ждать долгожданной посылке, как-то не по мне. Поэтому я покажу второй вариант, не самый безопасный, но рабочий. Берем аккумулятор от старого сотового телефона.
Гиропульт на Arduino
Если аккумулятор рабочий, можно припаяться к контактным площадкам, тогда аккумулятор будет подключаться через защитную микросхема. Но если напряжения на контактах нет – разбираем аккумулятор. Снимаем защитную пленку и пластиковые концы, вместе с платой.
Гиропульт на Arduino
Припаиваемся к местам, куда была подключена плата аккумулятора. Обычно корпус – это плюс, а маленький контакт в середине – минус. На всякий случай проверьте тестером или мультиметром, перед тем как припаивать провода.
Гиропульт на Arduino
Припаиваем два провода на плюс и два на минус. Одну пару выводим в колодку для зарядки аккумулятора. Минус от второй пары пока просто выводим наружу, плюс надо подключить через выключатель, а провод от выключателя, также, как и минус пока просто выводи в сторону. Главное не допускай короткого замыкания проводов аккумулятора!
Гиропульт на Arduino
Заматываем аккумулятор изолентой. Выключатель стоит приклеить с помощью термоклея. Корпус аккумулятора необходимо тщательно обмотать, чтобы не допустить случайный КЗ.
Гиропульт на Arduino
Отрезаем примерно 30 см от текстильной застежки или липучка. Разделяем на две части. Берем часть, которая мягкая и с ворсом. При помощи изоленты по краям аккумулятора приматываем его к части ленты. Посередине должен остаться участок, не замотанный изолентой, к нему будет прилепляться ответная часть от ленты. В ленте делаем небольшое отверстие, посередине и продеваем в него провод от аккумулятора.
Гиропульт на Arduino
Шаг 2 Подготовка электронной части пульта.
В качестве центрального контролера берем Arduino Pro Mini. Брать необходимо версию, работающую на частоте 8 МГц и от 3.3 V. Необходима именно эта версия по нескольким причинам. Во-первых, мы используем аккумулятор с напряжение 4.2 В, маловато для 5 В версии, а для повышающего напряжение модуля места нет. Во-вторых, радио модуль nRF24L01+ работает от 3.3 В, для его питания мы будем использовать стабилизатор напряжения Arduino, для отдельного стабилизатора напряжения, также, места нет. Ну и в-третьих, Arduino Pro Mini 3.3V 8MHz потребляет значительно меньше энергии, а вычислительной мощности для этого пульта достаточно. Припаиваем к Arduino провода Tx, Rx и GND и выводим к общую колодку для заливки скетчей. Также можно вывести и провод DTR для автоматической перезагрузки модуля при заливке скетча.
Гиропульт на Arduino
Теперь возьмем аккумулятор с ремешком. Поместим аккумулятор на ладонь, обернем ремешок вокруг руки, Arduino будет размещена на внешней стороне кисти руки. Отрезаем провод от аккумулятора, так чтобы он доставал до Arduino. На плате Arduino Pro Mini 3.3v стоит стабилизатор напряжения на 3.3v. Подключать плюсовой провод, идущий от кнопки выключения, мы будем к контакту RAW.

Берем в руки GY521. Этот маленький модуль позволяет определять положение и перемещение в пространстве. Используя его можно получить такие данные как углы крена, дифферента. Ориентироваться придется по вектору силы тяжести и скорости вращения. Также с помощью GY521 можно измерять температуру но мы это использовать не будем. В распоряжении модуля есть три оси перемещения. GY521 подключается по шине I2C. Припаиваем провода по следующей схеме
Гиропульт на Arduino
Расстояние между Arduino и GY521 должно быть пару миллиметров. Припаиваем провода согласно схеме.
Гиропульт на Arduino
Все провода можно зафиксировать при помощи термоклея, чтобы они не отвалились.
Переходим к радио модулю. Для этого пульта мы будем использовать nRF24L01+. Этот радио модуль работает на частоте 2.4 ГГц. На плате у него нет стабилизатора напряжения. А модуль работает от напряжения в 3.3 вольта. Поэтому работать он у нас будет от стабилизатора Arduino. У наиболее распространённых модулей размер платы 28,5 х 15,2 мм. Можно использовать такие модули, к ним легче припаивать провода, так как расстояние между контактами 2,54 мм.
Гиропульт на Arduino
Я рекомендую использовать nrf24l01 мини. У этой версии размер платы 18 х 12 мм. Пульт получается компактнее, и плата не выходит за пределы ленты. Единственный минус – расстояние между контактами 1,27 мм, паять проблематично.
Гиропульт на Arduino
Для начала припаиваем провода к нашему радио модулю.
Гиропульт на Arduino
Чтобы не отломать провода при зачистке и пайке к Arduino, замотайте место пайки изолентой.
Гиропульт на Arduino
Припаиваем провода к Arduino по следующей схеме:

nRF24L01+ Arduino
GND — GND
VCC — VCC
CE — 9
CSN — 10
SCK — 13
MOSI — 11
MISO — 12
IRQ — —

Чтобы все было компактно, не оставляйте большой запас проводов. Припаиваем все провода. Собранные все вместе модули
Гиропульт на Arduino
Размещаем всю электрику на ленте или ремешке, так чтобы модуль акселерометра GY521 располагался на внешней стороне кисти руки.
Гиропульт на Arduino
Теперь берем ответную часть от текстильной ленты. И накрываем этой частью всю нашу электрику.
Гиропульт на Arduino
Так как между частями ленты – Arduino и прочие модули, липнуть друг к другу они не будут. Чтобы не вываливались «потроха» нашего пульта, обматываем ленту изолентой.
Гиропульт на Arduino
Колодка для заливки скетча, будет находиться между частями ленты, изоленту наматываем до этой колодки. Таким образом у нас будет доступ к колодке, разъединив ленты до изоленты.

Шаг 3 Подготовка и заливка скетча.
Сегодня, как и всегда, для редактирования и заливки скетча воспользуемся Arduino IDE. Это самый распространённый и удобный, на мой взгляд, редактор. Скачиваем с официального сайта.

После установки среды разработки, добавляем в нее библиотеки. Для удобства я добавил все необходимые библиотеки в один архив. Скачав его, распаковываем и переписываем библиотеки в папку «libraries», находящуюся в директории с установленной Arduino IDE
libraries.rar

Теперь можно скачать мой скетч:
ard_gy521_nrf24.rar

Приемник можно установить в любую модель или робота на Arduino. Я для примера поставил на Тобби. Инструкцию по его изготовлению можно найти здесь.

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

Гиропульт на ArduinoГиропульт на ArduinoГиропульт на Arduino

administrator

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

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.