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

Робот Arduino Ant Hexapod

<основной класс="главный сайт" id="главный">

В этом уроке я покажу вам, как я построил гексапод Arduino. Как следует из названия, у гексапода 6 ног, но в дополнение к этому у него также есть хвост или брюшко, голова, антенны, нижние челюсти и даже функциональные глаза. Все это делает гексапод похожим на муравья, поэтому мы также можем назвать его роботом-муравьем Arduino.

Вы можете посмотреть следующее видео или прочитать письменное руководство ниже.

Обзор

Для управления роботом я сделал специальное приложение для Android. В приложении есть 4 кнопки, с помощью которых мы можем дать команду роботу двигаться вперед или назад, а также повернуть влево или вправо. Наряду с этими основными функциями, робот также может двигать головой и хвостом, а также может кусаться, хватать и бросать предметы и даже атаковать.

Как я упоминал ранее, у робота есть функциональные глаза, или я специально спроектировал голову для ультразвукового датчика. Поэтому, если мы попытаемся коснуться головы робота или приблизить руку к датчику, робот изначально подготовится к атаке.

Если мы отойдем назад, робот отклонит атаку, но если мы приблизим к нему руку, он нападет и укусит нас. Так насколько это круто? Оставайтесь с нами, и вы узнаете, как именно я это делаю и как все работает.

Arduino Hexapod — 3D-модель робота-муравья

Как обычно, я начал с проектирования гексапода с помощью программного обеспечения для 3D-моделирования. У гексапода 6 ножек, каждая из которых состоит из 3 суставов или 3 сервоприводов. Это означает, что нам нужно всего 18 сервоприводов, и в моем случае я использовал сервоприводы MG996R.

На задней стороне у нас есть хвост, который приводится в движение другим сервоприводом MG996R. Голова этого робота-муравья имеет две степени свободы, либо она может вращаться и наклоняться, и опять же приводится в движение еще двумя сервоприводами. Таким образом, для этого проекта нам потребуется всего 21 сервопривод типа MG996R и дополнительно один микросервопривод меньшего размера SG90 для нижних челюстей.

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

Вы можете найти и скачать эту 3D-модель, а также изучить ее в своем браузере на Thangs.

Файлы STL:

3D-печать деталей

Я думаю, вы уже знаете, что будет дальше, и это 3D-печать частей робота. Я использовал 3D-принтер Creality CR-10 для всех распечаток, и он отлично справился со своей задачей. Самой сложной частью для печати была голова, потому что я хотел, чтобы это был один принт.

Для этой цели мне пришлось использовать угол свеса опоры 60 градусов, а также несколько блокирующих опор. В любом случае, Creality CR-10 отлично справился с задачей, и голова получилась идеальной.

Сборка гексапода Arduino

После того, как мы распечатали все детали, мы можем приступить к сборке гексапода. Начал со сборки ножек. Для крепления сервоприводов к печатным деталям я использовал болты и гайки М3, а также пружинные шайбы. Длина болтов должна быть не менее 12 мм, в моем случае я использовал болты длиной 16 мм.

Нам нужно около 200 болтов для всей сборки. Для соединения звеньев друг с другом мы используем круглые рожки, которые идут в комплекте с сервоприводом в качестве аксессуаров. Однако нам нужно просверлить на каждом из них отверстия диаметром 3 мм, чтобы болты могли пройти, или мы можем использовать металлические круглые рожки с резьбой М3, которые можно купить отдельно.

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

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

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

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

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

После закрепления ножек этот проект уже начал обретать форму и напоминать гексапод.

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

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

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

Затем у нас есть U-образный кронштейн, и здесь нам нужно прикрепить два круглых рожка для соединения двух сервоприводов для головы. Опять же, прежде чем прикрепить кронштейн к сервоприводу крена, нам нужно убедиться, что положение сервопривода находится посередине, чтобы он мог вращаться на 90 градусов в обоих направлениях.

Далее кронштейн сервопривода наклона. Итак, сначала нам нужно вставить болт M4 и закрепить его на U-образном кронштейне. Перед установкой двигателя наклона нам также необходимо вставить четыре болта M3, которые позже будут использоваться для крепления головки. Затем мы можем вставить сервопривод наклона в кронштейн и аккуратно прикрепить вал к круглому рупору. Здесь немного туго, но U-образный кронштейн может немного согнуться.

Наконец, нам нужно закрепить сервопривод болтами M3, и на этом головной механизм готов. Теперь он может как катиться, так и наклоняться.

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

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

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

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

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

Есть еще одна деталь, которую нужно добавить к голове, и это антенны. Для этой цели я использовал 3-миллиметровую проволоку, которую я обрезал длиной около 13 см и слегка согнул, чтобы получить желаемую форму. Я снова использовал несколько капель клея AC, чтобы прикрепить их к голове. Наконец, мы можем прикрепить головку к механизму поворота и наклона с помощью четырех ранее вставленных болтов.

Теперь голова полностью функциональна, она может вращаться, наклоняться и даже кусаться. Осталось установить еще две детали, напечатанные на 3D-принтере. Это хвост, который можно просто вставить в хвостовой кронштейн, и изогнутая крышка, которую мы фактически будем использовать в конце, чтобы скрыть электронику. Итак, это окончательный вид нашего робота-муравья, и мне очень нравится, как он получился в этой сине-белой цветовой комбинации.

Схема робота-муравья Arduino

Хорошо, теперь мы можем перейти к электронике. Вот принципиальная схема этого проекта, которая на самом деле проста, хотя и выглядит немного сложной из-за множества подключений сервоприводов.

Помимо 22 сервоприводов нам понадобится Bluetooth-модуль HC-05 для связи со смартфоном, а также конденсаторы и резисторы. Конечно, мозг робота — это плата Arduino, и в данном случае это Arduino Mega, потому что это единственная плата, которая может управлять более чем 12 сервоприводами с помощью библиотеки Servo.

Связанное руководство: Как работают серводвигатели и как управлять сервоприводами с помощью Arduino

Для питания робота я буду использовать аккумулятор 3S LiPo с напряжением около 12 В. Аккумуляторы LiPo могут выдерживать большее потребление тока, поэтому они подходят для этого проекта, потому что, если все сервоприводы включены одновременно при полной нагрузке, они могут потреблять около 10 ампер тока. Однако рабочее напряжение сервоприводов ограничено от 4,8 до 7,2 В, что означает, что мне нужно использовать понижающий преобразователь постоянного тока для преобразования 12 В в 5 В. Даже если мы используем 2S LiPo аккумулятор с напряжением около 7,4 В или 8,4 В при полной нагрузке, нам все равно нужно использовать понижающий преобразователь. Понижающий преобразователь, который я буду использовать для этого проекта, может выдерживать ток до 8 ампер, но я бы рекомендовал использовать один от 10 до 15 А, чтобы быть уверенным, что у вас будет достаточно мощности и он не перегреется. В моем случае максимальное потребление тока, которое я заметил от робота при движении, составляло около 6 ампер.

Компоненты, необходимые для этого проекта, можно получить по ссылкам ниже:

Проектирование печатной платы для Arduino Hexapod

Теперь, если мы попытаемся соединить все вместе, это будет довольно беспорядочно из-за множества соединений сервоприводов. Поэтому я разработал собственную печатную плату, используя бесплатное онлайн-программное обеспечение для проектирования схем EasyEDA. Эта печатная плата фактически будет действовать как Arduno Mega Shield для Hexapod, потому что мы сможем напрямую подключить ее поверх платы Arduino Mega. Я расположил соединения сервоприводов близко друг к другу и включил два больших конденсатора рядом с ними, чтобы поддерживать более стабильное напряжение. Также я включил соединение для модуля приемопередатчика NRF24L01 на случай, если мы захотим управлять роботом с помощью радиоуправления. Имеется несколько цифровых и аналоговых штыревых соединений, 5 В и заземление, два светодиодных соединения, а также соединение для контроля напряжения батареи. Напряжение батареи 12 В будет проходить через делитель напряжения, состоящий из двух резисторов R1 и R2, который снизит напряжение ниже 5 В, чтобы аналоговый вывод мог безопасно считывать его. Таким образом, мы будем знать, когда аккумулятор нужно будет зарядить.

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

Гербер-файл:

Затем я заказал печатную плату у JLCPCB, которая на самом деле является спонсором этого видео.

Здесь мы можем просто перетащить файл Gerber, и после загрузки мы можем просмотреть нашу плату в средстве просмотра Gerber. Если все в порядке, мы можем продолжить и выбрать свойства, которые мы хотим для нашей платы. В данном случае я выбрал синий цвет печатной платы, чтобы он соответствовал цвету платы Arduino. И все, теперь мы можем заказать просто нашу плату по разумной цене. Обратите внимание:если это ваш первый заказ в JLCPCB, вы можете получить до 10 печатных плат всего за 2 доллара США.

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

Сборка печатной платы

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

На этом этапе мы можем фактически вставить штыревые разъемы для всех соединений и использовать тот же метод, чтобы перевернуть печатную плату и припаять к ней все штырьки. В конце нам нужно припаять резисторы, конденсаторы и клеммные колодки. Вот и все, Arduino Mega Shield для нашего робота-муравья готов. Теперь мы можем просто вставить его в плату Arduino.

Далее нам нужно установить выходное напряжение понижающего преобразователя на 5В. Мы можем сделать это, отрегулировав потенциометр понижающего преобразователя. Здесь вы можете заметить, что я добавил выключатель питания на вход и подключил батарею 12 В к контакту 12 В на печатной плате, который будет использоваться только для контроля напряжения батареи.

Помните, что основной вход на печатную плату должен быть 5В.

Итак, теперь мы можем вставить компоненты электроники между двумя пластинами. Опять же, он немного тесноват, но все же мы можем все поместиться. Сначала идет батарея, которую я закрепил с помощью ленты, а поверх нее идет Arduino вместе с печатной платой, которую мы сделали. Далее мы можем подключить приемопередатчик NRF24L01 или только модуль Bluetooth в зависимости от того, какой тип связи мы будем использовать. Я также вставил светодиод для индикации необходимости перезарядки аккумулятора или в случае падения напряжения ниже 11 Вольт. Наконец, нам нужно подключить все сервоприводы к контактам сервоприводов. При этом убедитесь, что вы записали, к какому номеру контакта вы подключили каждый сервопривод. После того, как мы подключим все сервоприводы, мы можем просто поставить изогнутую крышку на верхнюю пластину, и мы фактически закончили этот проект.

Код Arduino Hexapod

Что осталось сделать в этом видео, так это посмотреть, как работает программа Arduino. Так как код немного длиннее, для лучшего понимания я буду размещать исходный код программы в разделах с описанием для каждого раздела. А в конце этой статьи я выложу полный исходный код.

Таким образом, для управления сервоприводами мы будем использовать базовую библиотеку Servo, а для связи Bluetooth нам также необходимо включить библиотеку SoftwareSerial. Сначала нам нужно определить все сервообъекты, а также некоторые переменные, необходимые для программы ниже.

#include <Servo.h>
#include <SoftwareSerial.h>

#define trigPin 7
#define echoPin 6
#define ledB 10

SoftwareSerial Bluetooth(12, 9); // Arduino(RX, TX) - HC-05 Bluetooth (TX, RX)

// Create servo object
Servo s24;
Servo s23;
Servo s22;Code language: Arduino (arduino)

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

void setup() {
  Serial.begin(38400);
  Bluetooth.begin(38400); // Default baud rate of the Bluetooth module
  Bluetooth.setTimeout(1);
  delay(20);
  pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin, INPUT); // Sets the echoPin as an Input
  pinMode(ledB, OUTPUT);
  // Head
  s15.attach(36, 600, 2400);
  s14.attach(35, 600, 2400);
  s13.attach(34, 600, 2400); //grip
  // Tail
  s5.attach(26, 600, 2400); // Tail
  // Leg 4
  s10.attach(31, 600, 2400);
  s11.attach(32, 600, 2400);
  s12.attach(33, 600, 2400); //rot
  // Leg 5
  s7.attach(28, 600, 2400);
  s8.attach(29, 600, 2400);
  s9.attach(30, 600, 2400); //rot
  // Leg 6
  s1.attach(22, 600, 2400);
  s2.attach(23, 600, 2400);
  s3.attach(24, 600, 2400); //rot
  // Leg 1
  s18.attach(39, 600, 2400);
  s17.attach(38, 600, 2400);
  s16.attach(37, 600, 2400); //rot
  // Leg 2
  s21.attach(42, 600, 2400);
  s20.attach(41, 600, 2400);
  s19.attach(40, 600, 2400); //rot
  // Leg 3
  s24.attach(45, 600, 2400);
  s23.attach(44, 600, 2400);
  s22.attach(43, 600, 2400); //rotCode language: Arduino (arduino)

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

// == Move to initial position
  // Head
  s15.write(72);
  s14.write(50);
  s13.write(90); // Grip
  
  s5.write(65); // Tail
  
  // Leg 4
  s10.write(65);
  s11.write(35);
  s12.write(40);
  // Leg 5
  s7.write(80);
  s8.write(50);
  s9.write(25);
  // Leg 6
  s1.write(90);
  s2.write(45);
  s3.write(60);

  // Leg 1
  s18.write(60);
  s17.write(90);
  s16.write(100);
  // Leg 2
  s21.write(50);
  s20.write(85);
  s19.write(75);
  // Leg 3
  s24.write(50);
  s23.write(80);
  s22.write(80);Code language: Arduino (arduino)

Когда дело доходит до программирования движения гексапода, есть несколько способов сделать это, например, используя прямую или обратную кинематику. Эти методы включают в себя серьезную математику, где положение каждого сустава рассчитывается на основе входных данных для желаемого конечного положения тела. Тем не менее, я решил сделать его немного менее сложным, потому что в любом случае сервоприводы, которые я использую, недостаточно хороши для такой задачи. Это потому, что мои сервоприводы являются дешевой версией сервопривода MG996R. У них нет нужного крутящего момента, и они не всегда располагаются точно в желаемом положении.

Итак, давайте посмотрим, как я заставил гексапод ходить. Я сделал отдельную пользовательскую функцию для перемещения каждой ноги. Цикл ног включает в себя две фазы, называемые махом и стойкой. В фазе переноса нога перемещается из начального положения в конечное по воздуху, а в фазе опоры нога перемещается из конечного положения обратно в исходное положение, при этом эффектор конца ноги касается земли. Таким образом, тело гексапода будет двигаться вперед.

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

void moveLeg1() {
  // Swign phase - move leg though air - from initial to final position
  // Rise the leg
  if (i1L1 <= 10) {
    s18.write(60 - i1L1 * 2);
    s17.write(90 - i1L1 * 3);
    i1L1++;
  }
  // Rotate the leg
  if (i2L1 <= 30) {
    s16.write(100 - i2L1);
    i2L1++;

  }
  // Move back to touch the ground
  if (i2L1 > 20 & i3L1 <= 10) {
    s18.write(40 + i3L1 * 2);
    s17.write(60 + i3L1 * 3);
    i3L1++;
  }
  // Stance phase - move leg while touching the ground
  // Rotate back to initial position
  if (i2L1 >= 30) {
    s16.write(70 + i4L1);
    i4L1++;
    l1status = HIGH;
  }
  // Reset the counters for repeating the process
  if (i4L1 >= 30) {
    i1L1 = 0;
    i2L1 = 0;
    i3L1 = 0;
    i4L1 = 0;
    i5L1 = 0;
  }
  // Each iteration or step is executed in the main loop section where there is also a delay time for controlling the speed of movement
}Code language: Arduino (arduino)

Таким образом, сначала два внешних сервопривода поднимают ногу, а третий сервопривод, соединенный с телом, начинает вращаться в определенном направлении. Когда третий сервопривод проходит 10 шагов до того, как он перестанет вращаться, мы начинаем перемещать два внешних сервопривода назад в то же положение, чтобы коснуться земли. Это завершает фазу маха, или ногу перемещают из исходного положения в конечное. Затем мы возвращаем третий сервопривод из конечного положения в начальное, и это завершает фазу стойки. После того, как ветвь выполнит один цикл, счетчики сбрасываются, и ветвь будет повторять цикл снова и снова. Каждая итерация или шаг выполняется в секции основного цикла, где также есть время задержки, которое контролирует скорость сервоприводов. Я сделал такие функции для всех остальных ног, а также некоторые дополнительные функции для перемещения ног в противоположном направлении для достижения обратного, левого и правого движения. Аналогичным образом, используя счетчики для отслеживания шагов, я запрограммировал остальные функции, такие как движение головы, движение хвоста, челюстей и так далее.

Так, например, если мы хотим переместить робота вперед, нам нужно вызвать шесть пользовательских функций moveLeg(), которые будут постоянно повторяться в основном цикле.

// Move forward
  if (m == 2) {
    moveLeg1();
    moveLeg3();
    moveLeg5();
    if (l1status == HIGH) {
      moveLeg2();
      moveLeg4();
      moveLeg6();
    }
  }Code language: Arduino (arduino)

Вы можете заметить, что 3 ноги смещены, поэтому, когда ноги с номерами 1, 3 и 5 находятся в фазе переноса, остальные три ноги, 2, 4 и 6, находятся в фазе опоры. Если мы хотим переместиться влево, мы вызываем соответствующие функции moveLeft().

На самом деле эти команды поступают от модуля Bluetooth или специально созданного приложения для Android на нашем смартфоне.

// Check for incoming data
  if (Bluetooth.available() > 0) {
    dataIn = Bluetooth.read();  // Read the dataCode language: Arduino (arduino)

Приложение Arduino Ant Robot для Android

Давайте теперь посмотрим на приложение и посмотрим, какие данные оно на самом деле отправляет в Arduino. Я создал приложение с помощью онлайн-приложения MIT App Inventor, и вот как оно работает.

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

Давайте взглянем на программу или блоки, стоящие за приложением.

Так, например, если мы нажмем кнопку «Вперед», блоки в операторе «если» будут выполнены. Это означает, что мы отправим число 2 в Arduino, и это выполнит набор функций продвижения вперед. В то же время мы можем заметить, что мы меняем изображение кнопки на другую выделенную версию того же изображения. Если мы снова нажмем ту же кнопку, теперь будут выполнены блоки в операторе «else», и это отправит число 0 на Arduino, что сбросит все счетчики и переместит робота в исходное положение. Также мы возвращаем исходное изображение этой кнопки. Поэтому я использовал тот же принцип для всех остальных кнопок.

Вот файл для загрузки вышеуказанного проекта MIT App Inventor, а также приложение для Android, готовое к установке на ваш смартфон:

Давайте взглянем еще на две функции программы Arduino:монитор напряжения батареи и ультразвуковой датчик.

// Monitor the battery voltage
    int sensorValue = analogRead(A3);
    float voltage = sensorValue * (5.00 / 1023.00) * 2.9; // Convert the reading values from 5v to suitable 12V i
    Serial.println(voltage);
    // If voltage is below 11V turn on the LED
    if (voltage < 11) {
      digitalWrite(ledB, HIGH);
    }
    else {
      digitalWrite(ledB, LOW);
    }Code language: Arduino (arduino)

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

// Get the distance from the ultrasonic sensor
    if (getDistance() > 40) {
      att = 0;
    }
    if (getDistance() <= 40) {
      att = 1;
      dataIn = 99;
    }Code language: Arduino (arduino)

Если впереди больше нет объекта, он прекратит атаку, а если объект все еще присутствует и находится ближе к голове, робот атакует.

// If there is an object in front of the sensor prepare for attack
  if (att == 1) {
    prepareAttack();
    if (aStatus == HIGH) {
      while (a == 0) {
        delay(2000);
        a = 1;
      }
      if (getDistance() > 30) {
        att = 2;
        a = 0;
        aStatus = LOW;
        initialPosHead();
      }
      if (getDistance() < 30) {
        att = 3;
        a = 0;
        aStatus = LOW;
        initialPosHead();
      }
    }
  }
  // If there is no longer object in front, dismiss the attack
  if (att == 2) {
    dismissAttack();
    if (aStatus == HIGH) {
      dataIn = 0;
      att = 0;
    }
  }
  // If there is closer to the sensor attack
  if (att == 3) {
    attack();
    if (attStatus == HIGH) {
      while (aa == 0) {
        delay(2000);
        aa = 1;
      } attStatus = LOW;
    }
    if (aStatus == HIGH) {
      while (a == 0) {
        delay(2000);
        a = 1;
      }
      dataIn = 0;
      att = 0;
      initialPosHead();
    }
  }Code language: Arduino (arduino)

Так что это почти все для этого видео.

Здесь вы можете скачать полный код для этого проекта Arduino Hexapod:

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


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

  1. Робот Raspberry Pi, управляемый через Bluetooth
  2. Робот с сервомотором избегает препятствий
  3. Робот-последователь линии
  4. Управление роботом Roomba с помощью Arduino и устройства Android
  5. Робот, управляемый речью
  6. Робот-пианино, управляемый Arduino:PiBot
  7. Littlearm 2C:создание напечатанной на 3D-принтере руки робота Arduino
  8. Автономный домашний робот-помощник
  9. Управление манипулятором Arduino с помощью приложения для Android
  10. Робот для супер-крутой навигации внутри помещений