Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Робот с сервомотором избегает препятствий

Компоненты и расходные материалы

Arduino UNO
× 1
Микро-серводвигатель SG90
× 1
Ультразвуковой датчик SparkFun - HC-SR04
× 1
Комплект шасси робота - 2WD с двигателями постоянного тока
× 1
Перемычки (общие)
× 1
Arduino MotorShield Rev3
× 1

Необходимые инструменты и машины

Паяльник (универсальный)

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Все о проекте

Я изучаю медиа-дизайн в Университете мультимедиа в Сайберджайе, Малайзия. Это мой гамма-год изучения медиаискусства, интерактивный дизайн - это предмет, который научит студентов тому, как использовать компоненты Arduino и как это работает. Итак, в моем последнем задании я выбрал робота с обходом препятствий в качестве своего собственного проекта и узнал, как работают все компоненты.

Шаг 1:

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

Шаг 2:

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

Шаг 3:

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

Шаг 4:

Нам нужно будет сложить плату Arduino и плату Motor Shield, Motor Shield будет складываться на плату Arduino. Пример ниже:

Шаг 5:

Перейдем к плате Motor Shield. Этот экран обеспечивает питание двигателей и серводвигателя, двигателям требуется большой ток, и этот экран может обеспечивать ток до 600 мА для каждого двигателя. Нам нужно припаять / закрепить провода двигателей постоянного тока на плате двигателя. Если провода вашего двигателя постоянного тока достаточно длинные, чтобы дотянуться до щита двигателя, это подойдет, в противном случае вам может потребоваться использовать внешние перемычки (независимо от того, является ли перемычка папа / мама), отрежьте головку перемычки и убедитесь, что внутри появляется медная линия. (Вам нужно будет отрезать резину перемычки, чтобы появилась медная проволока). И вам нужно припаять внешние провода к проводам двигателя постоянного тока. Пример:

Затем подключите левый провод мотора к разъему M1 моторного щита. Правый провод двигателя будет подключаться к разъему M3 от платы экрана двигателя. Пример:

Шаг 6:

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

После этого нам нужно будет подготовить перемычки «папа» и «мама», чтобы припаять их к 5V, GND, аналоговому контакту 4 и аналоговому контакту 5. Перед этим нам нужно будет найти провода перемычки «мама» и «папа» одинакового цвета и разрезать их пополам. . Почему должны быть одного цвета? Во-первых, нам легко распознать, какой провод для какой части. Во-вторых, белая перемычка «папа» будет припаяна к белой перемычке «мама», которая подключается к 5В. Перемычка черного цвета будет припаяна к перемычке с внутренней резьбой, а мужская перемычка будет припаяна к земле. Оранжевый цвет папа перемычки будет припаян к оранжевой перемычке с розеткой, оранжевый перемычка перемычка будет припаяна к аналоговому выводу 5. Наконец, что не менее важно, коричневая вилка перемычки будет припаяна к коричневой перемычке с внутренней резьбой, а затем к ней будет припаяна вилка перемычки коричневого цвета. Аналоговый вывод 4. Пример:

Шаг 7:

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

Шаг 8. Перейдите к ультразвуковому датчику

От проводов перемычек «мама» и «папа», которые мы только что припаяли, белая перемычка (5 В) (перемычка на участке «мама») будет подключаться к контакту VCC ультразвукового датчика. Черная перемычка (GND) (перемычка с гнездом на месте) подключается к контакту GND. Коричневая перемычка (аналоговый вывод 4) (перемычка на участке «мама») подключается к выводу Echo. Перемычка оранжевого цвета (аналоговый вывод 5) (перемычка на участке «мама») подключается к контакту TRIG.

Шаг 9:

Наконец, серводвигатель подключается к слоту servo_2. Примечание * (Существует несколько типов серводвигателей. Возможно, вам потребуется найти в Интернете информацию о том, как они подключаются к слоту servo_2). Ниже представлена ​​моя собственная версия слота сервопривода.

Последний шаг:код

Для этого робота, избегающего препятствий, нам понадобятся 3 библиотеки:библиотека Motor Shield для драйвера Motor Shield, библиотека New Ping для ультразвукового датчика. В-третьих, это Arduino IDE. Ниже приведены ссылки для загрузки библиотек:

  • Библиотека Motor Shield
  • Новая библиотека Ping

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

Видео для тестирования:

Код

  • IDE Arduino
IDE Arduino C #
Скопируйте и вставьте код в Arduino IDE, затем загрузите на свою плату Arduino
 #include  #include  #include  #define TRIG_PIN A4 #define ECHO_PIN A5 # define MAX_DISTANCE_POSSIBLE 1000 #define MAX_SPEED 150 // #define MOTORS_CALIBRATION_OFFSET 3 # define COLL_DIST 20 #define TURN_DIST COLL_DIST + 10 Сонар NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE_POSSIBLE); AF_DCMotor leftMotor12 (3, MOTHZOR) AF_DCMotor rightMotor (1, MOTOR12_8KHZ); Сервомотор NeckControllerServoMotor; int pos =0; int maxDist =0; int maxAngle =0; int maxRight =0; int maxLeft =0; int maxFront =0; int course =0; int curDist =0; String motorSet =""; int speedSet =0; void setup () {NeckControllerServoMotor.attach (10); NeckControllerServoMotor.write (90); задержка (2000); checkPath (); motorSet ="ВПЕРЕД"; NeckControllerServoMotor.write (90); moveForward ();} недействительный цикл () {checkForward (); checkPath ();} void checkPath () {int curLeft =0; int curFront =0; int curRight =0; int curDist =0; NeckControllerServoMotor.write (144); задержка (120); для (pos =144; pos> =36; pos- =18) {NeckControllerServoMotor.write (pos); задержка (90); checkForward (); curDist =readPing (); если (curDist  curDist) {maxAngle =pos;} if (pos> 90 &&curDist> curLeft) {curLeft =curDist;} if (pos ==90 &&curDist> curFront) {curFront =curDist;} if (pos <90 &&curDist> curRight) {curRight =curDist;}} maxLeft =curLeft; maxRight =curRight; maxFront =curFront;} void setCourse () {if (maxAngle <90) {turnRight ();} if (maxAngle> 90) {turnLeft ();} maxLeft =0; maxRight =0; maxFront =0;} недействительным checkCourse () {moveBackward (); задержка (500); moveStop (); setCourse ();} void changePath () {if (pos <90) {lookLeft ();} if (pos> 90) {lookRight ();}} int readPing () {задержка (70); беззнаковый int uS =sonar.ping (); int cm =uS / US_ROUNDTRIP_CM; return cm;} void checkForward () {if (motorSet =="ВПЕРЕД") {leftMotor.run (ВПЕРЕД); rightMotor.run (ВПЕРЕД); }} void checkBackward () {if (motorSet =="НАЗАД") {leftMotor.run (НАЗАД); rightMotor.run (НАЗАД); }} void moveStop () {leftMotor.run (ВЫПУСК); rightMotor.run (RELEASE);} void moveForward () {motorSet ="FORWARD"; leftMotor.run (ВПЕРЕД); rightMotor.run (ВПЕРЕД); для (speedSet =0; speedSet  

Схема


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

  1. Простой робот Pi
  2. Робот-последователь линии
  3. Управление роботом Roomba с помощью Arduino и устройства Android
  4. Управление серводвигателем с помощью Arduino и MPU6050
  5. Автономный домашний робот-помощник
  6. Самодельная рука робота Arduino - управляемая жестами рук
  7. Управление манипулятором Arduino с помощью приложения для Android
  8. Робот для супер-крутой навигации внутри помещений
  9. Что такое серводвигатель?
  10. Сопряжение редукторов с серводвигателями