- Saved searches
- Use saved searches to filter your results more quickly
- License
- WilliamDemirci/Arduino-4WD-Mecanum-controlled-by-Android-app
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Шасси с манипулятором и управлением по Bluetooth
- Вступление
- Управление
- Электроника
- Модуль Bluetooth HC-05
- Сервоприводы манипулятора
- Мотор-редукторы
- Bluetooth
- Программа
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Arduino 4WD Mecanum controlled by Android app
License
WilliamDemirci/Arduino-4WD-Mecanum-controlled-by-Android-app
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Arduino 4WD Mecanum controlled by Android app
Arduino 4WD Mecanum controlled by an Android app using an Arduino Mega 2560, a L293D motor shield and a HC-05 Bluetooth Module.
The APK of the application can be downloaded here APK.
How to use the application?
- Switch on the Arduino and the HC-05 Bluetooth module.
- On your smartphone, scan the available Bluetooth devices and associate with the HC-05 Bluetooth module with the default password «1234».
- A joystrick and two buttons to control the robot
- A seekbar to control speed
- A switch in the top left to switch to night mode
- A button to disconnect from the robot
Don’t forget to cross RX and TX!
Motor shield wiring (L293D)
How is the robot controlled?
The frames are in the following form: sxxyyy
— «s» for «start» allows us to know when a frame starts
— «xx» is the value of the movement performed by the user. For example, if the joystick is pushed forward to go straight, the movement will be «03».
— «yyy» is the value of the speed chosen by the user. For example, if the speed is at maximum, the value will be «255».
For this example, the final result is as follows: s03255
To summarize: 1 header letter + two movement digits + three speed digits
How to use the application on another robot?
- Retrieve the data received by Bluetooth and separate them if necessary
receivedData = Serial1.readStringUntil(‘s’); // split received data into frames delimited by a ‘s’
move = receivedData.substring(0,2).toInt(); // split two first digits to get movement value
speed = receivedData.substring(2,5).toInt(); // split three last digits to get speed value - Perform the processing according to the data received.
For example:
moveRobot(move, speed);
MIT License. See the LICENSE file for details.
Feel free to contact me if I can optimize the code or if there is an errorr. I’m a newbie. Thank you!
About
Arduino 4WD Mecanum controlled by Android app
Шасси с манипулятором и управлением по Bluetooth
В этом пошаговом руководстве рассматривается создание дистанционно управляемого робота на основе двухколёсного шасси и манипулятора. Управляется робот по Bluetooth из мобильного Android-приложения.
Arduino UNO и Genuino UNO × 1
Манипулятор с двумя степенями свободы (захват и основание) × 1
Модуль Bluetooth HC-05 × 1
Шилд драйвера моторов на L293D × 1
Шасси 2WD Smart Robot × 1
NiMH аккумулятор 5В 1500мАч (4 АА аккумулятора последовательно) × 1
Комплект соединительных проводов Папа-Папа для макетной платы × 1
Программы и онлайн-сервисы:
Вступление
Из этого пошагового руководства вы узнаете, как создать робота с манипулятором и управлением с Android устройства. Приложение создано с помощью App Inventor. Каждая часть проекта будет рассмотрена отдельно:
- Как управлять сервоприводами
- Как управлять мотор-редукторами с коллекторными моторами
- Как использовать Bluetooth модуль HC-05
- Как управлять роботом с помощью мобильного телефона
Надеюсь, что это руководство раскрывает все аспекты, необходимые для создания подобного робота.
Управление
Прежде всего, мы должны знать, как робот будет принимать команды. Для передачи данных используется модуль Bluetooth, который подключается к Android устройству (смартфон, планшет), на котором запущено приложение, созданное в App Inventor. На данный момент нам нужно знать, что мы отправляем команды роботу с нашего мобильного приложения по Bluetooth.
Электроника
Комплект шасси очень прост в сборке, но это занимает некоторое время. Наборов шасси много, следуйте инструкциям по сборке, прилагаемым к вашему набору шасси.
Собранное шасси, используемое мной, выглядит так:
MotorShield для Arduino позволяет управлять мотор-редукторами, установленными на нашем шасси. Если вы подключите такие мотор-редукторы на прямую к плате Arduino, она выйдет из строя. Это связано с тем, что каждому такому мотору требуется не менее 80 мА, а максимальный ток, который может обеспечить каждый порт или вывод Arduino, составляет 30мА. Суммарный ток всего микроконтроллера, не более 150ма. Поэтому не пытайтесь подключить такие или более мощные моторы напрямую к плате Arduino.
Шилд моторов помогает вам управлять направлением движения шасси, например, двигаться вперед, назад, повернуть или остановиться.
Драйвер моторов L293D позволяет управлять двумя коллекторными моторами. На плате таких драйвера два, т.е. суммарно можно управлять до 4 коллекторными моторами. Драйвер позволяет задавать направление вращения для каждого мотора, а также использовать ШИМ для регулировки скорости вращения.
Шилд разработан для установки в некоторые платы Arduino, например, Uno или Mega. Для удобства подключения, и чтобы иметь возможность использовать контакты Arduino, к выводам сверху припаять PLS штекер.
Сам шилд моторов устанавливается на Arduino следующим образом:
Если используется другая плата, например, NANO, подключить к ней шилд моторов можно с помощью соединительных проводов.
Модуль Bluetooth HC-05
Это модуль UART-моста, который позволяет без проводов управлять роботом.
Вместо модуля HC-05 можно использовать другой подобный. Модули HC-05 бывают немного разные, но это не существенно. У используемого модуля выведено 6 контактов, для работы используется только средние четыре контакта (RX, TX, GND, +5V):
5В на модуле Bluetooth к 5v на Arduino
GND на модуле Bluetooth к GND на Arduino
Rx на модуле Bluetooth к Tx на Arduino
Tx на модуле Bluetooth к Rx на Arduino
Обратите внимание, что Rx подключается к Tx, а не Tx к Tx и Rx к Rx. Вывод Rx (receiver, приёмник) служит только для приёма данных, а Tx (transmitter, передатчик) только для передачи. По аналогии, это как динамик и микрофон — динамик излучает звуки, а микрофон их регистрирует и «соединять» микрофон с микрофоном или динамик с динамиком не имеет смысла.
Сервоприводы манипулятора
У сервоприводов 3 провода: красный (плюс питания), коричневый (земля), желтый или оранжевый (управляющий).
Не запитывайте сервоприводы от платы Arduino или она выйдет из строя, т.к. не рассчитана на такие большие токи — каждый сервопривод может потреблять два и более ампера, на что схема питания Arduino совершенно не рассчитана.
Для питания используйте внешний источник питания. В данном случае используется аккумулятор, а для тестов можно подключить к внешнему блоку питания или сразу. Земля (GND) источника питания (аккумулятора или внешнего блока питания) и Arduino должны быть соединены.
Красный провод к плюсу питания внешнего источника питания. Коричневый провод и к земле внешнего источника питания и к земле Arduino. Оранжевые провода к любым цифровым выводам на Arduino.
Я подключил сервоприводы к выводам d9 и d10:
Если вы подключите к другим выводам, не забудьте в этих двух строчка поменять числа, в соответствии с тем, куда вы подключили сервоприводы.
Мотор-редукторы
В зависимости от набора, провода к моторам уже могут быть припаяны или как в моём случае, их нужно было припаять самостоятельно.
У коллекторных моторов нет полярности, т.е. нет положительного и отрицательного выводов. В зависимости от того, на какие выводы будет подано + и -, от этого будет зависеть направление вращения мотора.
После того, как провода припаяны к моторам, подключаем их к мотор-шилду.
Моторы можно подключить к выводам «Мотор 1» и «Мотор 2» или «Мотор 3» и «Мотор 4». В данном случае моторы подключены к выводам «Мотор 1» и «Мотор 2», если подключите к 3 и 4, не забудьте внести изменения в коде.
Аккумулятор подключается к специальному разъёму на плате шилда. Что бы было легко отключать питание, аккумулятор можно подключать через разъём или на проводе «+питания» припаять выключатель.
Сервоприводы можно подключить на прямую к шилду моторов, для этого на нём есть два разъёма.
В случаях, когда напряжение аккумулятора проседает из-за сильно мощных сервоприводов или для сервоприводов хочется использовать аккумулятор с большим напряжением, можно использовать второй аккумулятор. При использовании двух аккумуляторов, сигнальные провода от сервоприводов подключаются к выводам шилда, а +питания и земля к аккумулятору. Также обязательно соединить землю аккумулятора с землёй Arduino или сервошилда (на разъёме к которому подключаются моторы, средний вывод — это земля).
Bluetooth
Схема подключения модуля bluetooth к плате Arduino:
Модуль подключается к аппаратному последовательному интерфейсу Arduino, по которому загружается скетч. Чтобы модуль не мешал программированию, перед загрузкой скетча отключите ему питание (провод +5В), а после загрузки скетча снова подключите.
Это демонстрационный проект, возможно вам захочется на его основе сделать что-то своё и при программировании нужно будет часто загружать скетч. В таком случае постоянно отключать питание будет не очень удобно и модуль блютуза можно подключить к другим выводам Arduino – загрузка скетча будет производиться по аппаратному UART, а для блютуза использовать программную реализацию. Программный UART реализован в библиотеке SoftwareSerial.
Программа
#include #include AF_DCMotor motorR(1); AF_DCMotor motorL(2); Servo elbowServo; Servo gripperServo; int command; void setup() < gripperServo.attach(9); elbowServo.attach(10); Serial.begin(9600); motorR.setSpeed(255); motorL.setSpeed(255); > void loop() < command = Serial.read(); /* ARM Code */ if (command >= 1 && command 180) //elbow servo move according to the thumb position on the mob app between 0 -- 180 . < elbowServo.write(command); >else if (command == 205) //Gripper Move To Angle 0 < gripperServo.write(0); > else if (command == 206) //Gripper movw to angle 90 < gripperServo.write(90); > else if (command == 207) //gripper move to angle 180 < gripperServo.write(180); > /* CAR CODE */ else if (command == 200) < motorR.run(FORWARD); motorL.run(FORWARD); >else if (command == 201) < motorR.run(FORWARD); motorL.run(BACKWARD); >else if (command == 202) < motorR.run(RELEASE); motorL.run(RELEASE); >else if (command == 203) < motorR.run(BACKWARD); motorL.run(FORWARD); >else if (command == 204) < motorR.run(BACKWARD); motorL.run(BACKWARD); >else if (command == 0) < motorR.run(RELEASE); motorL.run(RELEASE); >>
Для работы скетча нужны две библиотеки, AFMotor и Servo. Если они не подключены, подключить их можно в диспетчере библиотек. AFMotor в менеджере библиотек называется «Adafruit Motor Shield library», для используемого шилда подходит первая версия библиотеки.
Автор: Ahmed Ibrahim Ahmed
Перевод : RobotoTehnika.ru