Как собрать робота дома (с иллюстрациями)

Оглавление:

Как собрать робота дома (с иллюстрациями)
Как собрать робота дома (с иллюстрациями)

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

Видео: Как собрать робота дома (с иллюстрациями)
Видео: Неделя 1 Знакомство со SketchUp - 06 Импорт и масштабирование изображения 2024, Май
Anonim

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

Шаги

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

1123333 1
1123333 1

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

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

  • Arduino Uno (или другой микроконтроллер)
  • 2 сервопривода непрерывного вращения
  • 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 из 6: Подключение робота

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 из 6: Подключение питания

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 из 6: Установка программного обеспечения Arduino

1123333 30
1123333 30

Шаг 1. Загрузите и распакуйте IDE Arduino

Это среда разработки 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. Выберите «Найти на моем компьютере драйверы»

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

1123333 36
1123333 36

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

Внутри вы найдете папку «драйверы».

1123333 37
1123333 37

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

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

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

1123333 38
1123333 38

Шаг 1. Запустите IDE Arduino, дважды щелкнув файл 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); // при непрерывном вращении 180 указывает сервоприводу двигаться "вперед" на полной скорости. rightMotor. написать (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; Сервопривод rightMotor; пустая настройка () {leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) {в то время как (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }

Часть 6 из 6: Пример

Шаг 1. Следуйте примеру

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

#include Servo leftMotor; Сервопривод rightMotor; const int serialPeriod = 250; // это ограничивает вывод на консоль до одного раза в 1/4 секунды 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 {// повернуть налево, помните, что когда оба установлены на "180", он повернется. rightMotor.write (180); leftMotor.write (180); } состояние = DRIVE_FORWARD; }} void readUltrasonicSensors () {// это для ультразвукового датчика 2. Возможно, вам придется изменить эти команды, если вы используете другой датчик. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // поддерживает высокий уровень триггерного вывода не менее 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 (); }}

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