Как сделать робота дома (с картинками)

Оглавление:

Как сделать робота дома (с картинками)
Как сделать робота дома (с картинками)

Видео: Как сделать робота дома (с картинками)

Видео: Как сделать робота дома (с картинками)
Видео: Этими Сайтами Пользуются ВСЕ Майнкрафтеры | Майнкрафт Открытия 2024, Ноябрь
Anonim

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

Шаг

Часть 1 из 5: Сборка робота

1123333 1
1123333 1

Шаг 1. Соберите компоненты

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

  • Arduino Uno (или другой микроконтроллер)
  • 2 сервопривода на 360 градусов
  • 2 колеса, соответствующие сервопривода
  • 1 свободное колесо
  • 1 тестовая плата (макетная или проектная), которая не была припаяна (ищите тестовую плату с двумя положительными и отрицательными рядами с каждой стороны)
  • 1 датчик приближения (с четырехконтактным соединительным кабелем)
  • 1 кнопочный переключатель
  • 1 резистор 10кОм
  • 1 кабель USB A - B
  • 1 комплект бьющихся заголовков
  • 1 держатель для 6 батареек AA с розеткой постоянного тока 9 В.
  • 1 упаковка из 22 соединительных кабелей или одиночный кабель
  • Изоляция вперед-назад (двойной скотч) или клеевой пистолет
1123333 2
1123333 2

Шаг 2. Поверните батарейный отсек плоской задней стороной вверх

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

1123333 3
1123333 3

Шаг 3. Расположите два сервопривода в одном направлении в конце отсека для батареи

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

1123333 4
1123333 4

Шаг 4. Приклейте сервоприводы изоляцией или клеем

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

Теперь сервоприводы должны занимать половину места в задней части аккумуляторного отсека

1123333 5
1123333 5

Шаг 5. Прикрепите тестовую плату перпендикулярно оставшемуся пространству в батарейном отсеке

Эта тестовая плата будет немного нависать над передней частью батарейного отсека и расширяться в обе стороны. Прежде чем продолжить, убедитесь, что тестовая плата плотно прилегает. Ряд «А» должен быть ближе всего к сервоприводу.

1123333 6
1123333 6

Шаг 6. Присоедините микроконтроллер Arduino к верхней части сервопривода

Если вы прикрепите сервопривод правильно, плоская часть двух сервоприводов должна соприкасаться друг с другом. Прикрепите плату Arduino к этой плоской поверхности так, чтобы разъемы питания USB и Arduino были обращены вниз (в сторону от тестовой платы). Передняя часть Arduino будет перекрывать тестовую плату.

1123333 7
1123333 7

Шаг 7. Установите колеса на сервоприводы

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

1123333 8
1123333 8

Шаг 8. Установите свободное колесо на нижнюю часть тестовой платы

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

Если вы приобрели комплект, свободное колесо может иметь несколько клиньев, которые можно использовать, чтобы колесо свободно касалось земли

Часть 2 из 5: Подключение робота

1123333 9
1123333 9

Шаг 1. Отрежьте два 3-контактных разъема

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

1123333 10
1123333 10

Шаг 2. Вставьте два разъема в контакты 1-3 и 6-8 в ряду E на тестовой плате

Убедитесь, что они вставлены прочно или надежно.

1123333 11
1123333 11

Шаг 3. Соедините провода сервопривода с разъемом с черным проводом с левой стороны (контакты 1 и 6)

Это соединит сервопривод с тестовой платой. Убедитесь, что левый сервопривод подключен к левому жатке, а правый сервопривод подключен к правому жатке.

1123333 12
1123333 12

Шаг 4. Подключите красную перемычку от контактов C2 и C7 к контакту красной шины (положительный)

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

1123333 13
1123333 13

Шаг 5. Подключите черную перемычку от контактов B1 и B6 к синему контакту шины (заземление)

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

1123333 14
1123333 14

Шаг 6. Подключите белые перемычки от контактов 12 и 13 на Arduino к A3 и A8

Это позволит Arduino управлять сервоприводом и вращать колесо.

1123333 15
1123333 15

Шаг 7. Присоедините датчик к передней части тестовой платы

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

1123333 16
1123333 16

Шаг 8. Подключите черную перемычку от контакта I14 к первому синему контакту рельса слева от датчика

Это заземлит датчик.

1123333 17
1123333 17

Шаг 9. Подключите красную перемычку от контакта I17 к первому контакту красной направляющей справа от датчика

Это обеспечит питание датчика.

1123333 18
1123333 18

Шаг 10. Подключите белые перемычки от контакта I15 к контакту 9 на Arduino и от I16 к контакту 8

Это предоставит информацию от датчика микроконтроллеру.

Часть 3 из 5: Установка кабеля питания

1123333 19
1123333 19

Шаг 1. Переверните робота так, чтобы вы могли видеть внутри батарейный отсек

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

1123333 20
1123333 20

Шаг 2. Соедините красный провод со второй пружиной слева внизу

Убедитесь, что батарейный отсек правильно выровнен или ориентирован в правильном направлении.

1123333 21
1123333 21

Шаг 3. Соедините черный провод с последней пружиной справа внизу

Эти два провода помогут подать правильное напряжение на Arduino.

1123333 22
1123333 22

Шаг 4. Подключите красный и черный провода к красному и синему контактам, которые находятся на правой стороне задней части тестовой платы

Черный провод должен идти к контакту синей направляющей на контакте 30. Красный провод должен идти к контакту красной направляющей на контакте 30.

1123333 23
1123333 23

Шаг 5. Подключите черный провод от контакта GND на Arduino к задней части синей шины

Подключите провод к контакту 28 на синей направляющей.

1123333 24
1123333 24

Шаг 6. Подключите черный провод от задней части синей направляющей к передней части синей направляющей на штыре 29 обеих направляющих

Не подключайте красную рейку, так как вы можете повредить Arduino.

1123333 25
1123333 25

Шаг 7. Подключите красный провод от передней части красной шины к контакту 30 к контакту 5V на Arduino

Это обеспечит питание Arduino.

1123333 26
1123333 26

Шаг 8. Вставьте кнопочный переключатель в пространство между контактами 24-26

Этот переключатель позволит вам выключить робота, не отключая питание.

1123333 27
1123333 27

Шаг 9. Подключите красный провод от H24 к красной направляющей на следующем пустом контакте справа от датчика

Это обеспечит питание кнопки.

1123333 28
1123333 28

Шаг 10. Подключите резистор H26 к синей шине

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

1123333 29
1123333 29

Шаг 11. Подключите белый провод от G26 к контакту 2 на Arduino

Это позволит Arduino обнаруживать кнопки.

Часть 4 из 5: Установка программного обеспечения Arduino

1123333 30
1123333 30

Шаг 1. Загрузите и извлеките Arduino IDE

Именно здесь разрабатывается Arduino, позволяющий программировать инструкции, которые затем можно загрузить в свой микроконтроллер Arduino. Вы можете бесплатно скачать его с arduino.cc/en/main/software. Разархивируйте загруженный файл, дважды щелкнув файл и переместив содержащуюся в нем папку в легкодоступное место. Фактически вы не будете устанавливать программу, вместо этого вы просто запустите ее из папки, которая была извлечена двойным щелчком по arduino.exe.

1123333 31
1123333 31

Шаг 2. Подключите батарейный отсек к Arduino

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

1123333 32
1123333 32

Шаг 3. Вставьте Arduino в компьютер через USB

Скорее всего, Windows не распознает устройство.

1123333 33
1123333 33

Шаг 4. Нажмите

Win + R и введите devmgmt.msc.

Эта команда откроет диспетчер устройств.

1123333 34
1123333 34

Шаг 5. Щелкните правой кнопкой мыши Неизвестное устройство в разделе «Другие устройства» и выберите «Обновить программное обеспечение драйвера»

Если вы не видите этот параметр, нажмите «Свойства», выберите вкладку «Драйвер» и нажмите «Обновить драйвер».

1123333 35
1123333 35

Шаг 6. Выберите «Искать на моем компьютере драйверы»

Это позволит вам выбрать встроенные драйверы, поставляемые с Arduino IDE.

1123333 36
1123333 36

Шаг 7. Щелкните Обзор, затем откройте папку, которую вы извлекли ранее

В нем вы найдете папку с драйверами.

1123333 37
1123333 37

Шаг 8. Выберите папку с драйверами и нажмите ОК

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

Часть 5 из 5: Программирование роботов

1123333 38
1123333 38

Шаг 1. Откройте Arduino IDE, дважды щелкнув файл arduino.exe в папке IDE

Вас встретят с пустым проектом.

1123333 39
1123333 39

Шаг 2. Вставьте или вставьте следующий код, чтобы продвинуть своего робота

Приведенный ниже код будет поддерживать работу вашего Arduino.

#include // это добавляет в программу библиотеку «Servo» // следующая команда создает два сервообъекта Servo leftMotor; Сервопривод rightMotor; пустая настройка () {leftMotor.attach (12); // если вы случайно поменяли местами контакты для сервопривода, вы можете поменять их местами здесь rightMotor.attach (13); } void loop () {leftMotor.write (180); // при вращении на 360 градусов (непрерывное вращение) число 180 указывает сервоприводу двигаться «вперед» на полной скорости. rightMotor.write (0); // если оба значения равны 180, робот будет вращаться по кругу, потому что сервопривод перевернут. «0» указывает роботу двигаться «назад» на полной скорости. }

1123333 40
1123333 40

Шаг 3. Создайте и загрузите программу

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

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

1123333 41
1123333 41

Шаг 4. Добавьте функцию выключателя остановки (аварийный выключатель)

Добавьте следующий код в раздел «void loop ()» своего кода, чтобы добавить функцию выключателя остановки поверх функции «write ()».

if (digitalRead (2) == HIGH) // эта команда запускается при нажатии кнопки на выводе 2 Arduino {while (1) {leftMotor.write (90); // "90" - это нейтральное положение сервопривода, которое говорит сервоприводу прекратить вращение вправо Motor.write (90); }}

1123333 42
1123333 42

Шаг 5. Загрузите и проверьте свой код

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

#include // следующая команда создает два объекта Servo leftMotor servo; Сервопривод rightMotor; пустая настройка () {leftMotor.attach (12); rightMotor.attach (13); } void loop () {если (digitalRead (2) == HIGH) {в то время как (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }

Пример

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

#include Servo leftMotor; Сервопривод rightMotor; const int serialPeriod = 250; // этот код дает задержку вывода на консоль каждые 1/4 секунды (250 мс) unsigned long timeSerialDelay = 0; const int loopPeriod = 20; // этот код устанавливает частоту считывания датчика равной 20 мс, что составляет 50 Гц без знака long timeLoopDelay = 0; // этот код назначает функции TRIG и ECHO контактам на Arduino. Отрегулируйте числа здесь, если вы соедините их другим способом const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // этот код определяет два возможных состояния робота: продолжить движение вперед или повернуть налево #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = продолжить движение вперед (ПО УМОЛЧАНИЮ), 1 = повернуть налево void setup () {Serial.begin (9600); // этот датчик определяет конфигурацию вывода pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, ВХОД); // это назначает двигатель контактам Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // этот код обнаруживает "стоп" {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // этот код выводит сообщения отладки на последовательную консоль if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // этот код указывает датчику считывать и сохранять данные об измеренном расстоянии stateMachine (); timeLoopDelay = миллис (); }} void stateMachine () {if (state == DRIVE_FORWARD) // если препятствие не обнаружено {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // если перед роботом ничего нет. ultrasonicDistance будет отрицательным для некоторых ультразвуковых устройств, если нет препятствий {// движение вперед rightMotor.write (180); leftMotor.write (0); } else // если перед нами объект {state = TURN_LEFT; }} else if (state == TURN_LEFT) // если препятствие обнаружено, поверните налево {unsigned long timeToTurnLeft = 500; // поворот на 90 градусов занимает около 0,5 секунды. Вам может потребоваться отрегулировать это значение, если ваши колеса отличаются по размеру от размера в примере unsigned long turnStartTime = millis (); // сохраняем условие, когда робот начинает поворачиваться while ((millis () - turnStartTime) <timeToTurnLeft) // сохраняем этот цикл до тех пор, пока не пройдет timeToTurnLeft (500) {// поверните налево, помните, что когда оба значения «180», робот повернется. rightMotor.write (180); leftMotor.write (180); } состояние = DRIVE_FORWARD; }} void readUltrasonicSensors () {// это для ультразвукового датчика 2. Возможно, вам придется изменить эту команду, если вы используете другой датчик. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // подтягиваем вывод TRIG к высокому уровню как минимум на 10 микросекунд digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration / 2) / 29; } // следующее предназначено для отладки ошибок в консоли. void debugOutput () {если ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Серийный принт (ultrasonic2Distance); Serial.print («см»); Serial.println (); timeSerialDelay = millis (); }}

Рекомендуемые: