или войти через:
Ваша корзина пока пуста
favorite_border
Доступно только зарегистрированным пользователям

DIY: Sneel — плавающий робот-змея под Arduino. Пошаговая инструкция по созданию

schedule 15.10.2013 в 15:15 link DIY Sneel робот-животное робот-змея Робот среднего уровня сложности
Содержание:
  1. Введение
  2. Видеопрезентация работы
  3. Шаг 1. Список необходимых материалов
  4. Шаг 2. Сделайте серводвигатель водонепроницаемым
  5. Шаг 3. Приготовьте главный каркас: отрежьте углеродное волокно
  6. Шаг 4. Прикрепите скобки к углеволокну
  7. Шаг 5. Прикрепите С-образные скобки
  8. Шаг 6. Установите сервоприводы на скобки
  9. Шаг 7. Установите С-образные пары
  10. Шаг 8. Прикрутите рожок серводвигателя к скобке
  11. Шаг 9. Схема
  12. Шаг 10. Загрузите программное обеспечение
  13. Шаг 11. Сделайте пульт дистанционного управления, или просто используйте XBee и компьютер
  14. Шаг 12. Соедините провода
  15. Шаг 13. Прикрепите батарейки
  16. Шаг 14. Установите выключатели и подготовьте крышки для головы и хвоста
  17. Шаг 15. Подготовьте насос для батарей и удлините тело робота
  18. Шаг 16. Замажьте крышки
  19. Шаг 17. Оденьте на робота «кожу»
  20. Шаг 18. Установите водный насос
  21. Шаг 19. Проверьте робота в реальных условиях!

Введение:

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

Sneel является результатом вдохновения Protei – международного  проекта по разработке парка роботов, беспилотных парусников и других устройств с открытым исходным кодом.
На этих изображениях Sneel совершает плавание в Сан-Франциско, Калифорния, на озере Spreckles в Golden Gate Park.

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

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









Видеопрезентация работы:



Шаг 1. Список необходимых материалов:

Механическое оборудование:
  • 5x скобок для сервоприводов Lynxmotion
  • 5x скобок формы С Lynxmotion
  • 5x специальных литых петель
  • уретановая трубка для сбора пыли размерами 5" x 2.5"
  • свернутый шланг
  • труба размерами 5/16" 
  • шланг 5/16" 
  • 2x вакуумных редуктора размерами от 2.5 до 1.25" 
  • 5x скобок для сервоприводов 
  • уретановый уплотнитель
  • морской смазочный материал
  • морской эпоксидный уплотнитель
  • уплотнительные кольца
  • углеродные волокна 3x (1/32 ", 1" x12 ")
  • кусок резины около 1/8 "толщиной, 2" x10 "
  • локтит (зеленый)
  • нейлоновый трос
Дополнительно:
  • внутренняя трубка или клапан для повышенного давления, подойдет насос для велосипеда
  • несколько упаковок геля кремниевой кислоты.
Электроника:
  • 10 серводвигателей (подойдут Hitec или Karbonite)
  • 3 6V NiMh аккумуляторы
  • Arduino UNO
  • 1 плата seeeduino mega
  • Xbee программа для анализа
  • 2x xbee 1 серии
  • xbee беспроводная плата
  • провод расширения серводвигателя
  • xbee выход: с 2-мя рядами по 10 штыревых контактов («папок») и 2 ряда штепсельных контактов («мамок»).
Инструменты:
  • провода
  • острогубцы
  • угловые ножницы
  • инструменты для зачистки проводов
  • небольшая отвертка
  • 4-40 шурупов и зубчатых гаек
  • 2-56 шурупов и зубчатых гаек
  • паяльник + припой
  • ножовка
  • сверло 3 мм
дополнительно: дреммель.






























Шаг 2. Сделайте серводвигатель водонепроницаемым:

Смотрите подробную инструкцию по фотографиям. Вкратце объясним это так:
  • намажьте морским уплотнителем вокруг двух швов пластика на сервоприводах, вокруг мест, где вставлены провода, и где крепятся шурупы
  • дайте двигателям высохнуть в течение 24 часов.
  • Открутите сервопривод (круглая верхняя часть серводвигателя)
  • примените смазку вокруг зубчатого валка и поместите уплотнительное кольцо вокруг валка
  • поместите обратно рожок сервопривода. Убедитесь, что он находится по центру (поверните его в одном направлении и убедитесь, что он вращается примерно на 90 градусов от центра в одном направлении и 90 градусов в другом направлении).
















Шаг 3. Приготовьте главный каркас: отрежьте углеродное волокно:

  • С помощью ножовки отрежьте кусок углеродного волокна на несколько частей по 4 дюйма (каждая полоса размером 12 "x1" должна быть сокращена в 3-х частях). Можно использовать дреммель, чтобы закруглить углы.
  • возьмите по одному кронштейну из каждого сервопривода по 3 дюйма. Отметьте на углеродном волокне два больших отверстия в линии скобки, так, чтобы можно было ввернуть их в углеродном волокне.
  • просверлите 4 отверстия в каждой части углеродного волокна с использованием 3 мм сверла
  • сделайте 7 4" отрезков.



















Шаг 4. Прикрепите скобки к углеволокну:
  • используя большие шурупы, которые имеются в обеих скобках, приложите вырезанные отверстия к отверстиям на скобках.
  • Закрепите болтами скобки и углеродные волокна. Убедитесь, что вы прикрутили болты именно на задней скобке, как показано на фото.













Шаг 5. Прикрепите С-образные скобки:
  • соедините кусок резины с С-образной скобкой в средней части (см. рисунок) и отрежьте 5 кусочков. Они будут составлять примерно 1" х  2"
  • приложите отрезанный кусок резины к одной из С-образных скобок, и нарисуйте точку на резине, где будут находиться два отверстия
  • используйте булавку, чтобы проткнуть отверстие в резине на двух пометках для отверстий
  • вставьте 2-56 болты от черной скобки через резину и через красную скобку
  • сделайте это с каждой парой черных и красных скобок.
Примечание: по картинкам видно происходящие вещи в несколько ином порядке, чем описано выше. Вы можете увидеть, как сервоприводы уже подключены к скобкам. Но это будет описано в следующих шагах.

















Шаг 6. Установите сервоприводы на скобки:
  • в комплекте с сервоприводами есть несколько частей. Возьмите небольшой прямоугольник
  • вставьте его во все четыре отверстия на серводвигателе. Обратите внимание, что резина имеет плоскую сторону. Эта сторона должна быть обращена наружу
  • на 5 сервоприводах поместите литые петли (если у вас есть С-образные скобки с подшипниками снизу)
  • установите сервопривод на скобку, как показано: должны сформироваться совместные пути на черной скобке сервопривода
  • закрепите 4x40 шурупы. Поместите гайку на дно и закрепите болтом.
































Шаг 7. Установите С-образные пары:
  • Установите красные скобки сервоприводов на С-кронштейны, а черные на черные кронштейны.
Красные:
Оденьте скобку через сервопривод и сопоставьте с кронштейном сервопривода, как показано на фото. Используйте болты и подшипники, чтобы закрепить скобку на месте.

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

Теперь вы должны иметь полную длину змеи и целостную структуру.
































Шаг 8. Прикрутите рожок серводвигателя к скобке:
  • Отметьте отверстия на скобках и сервомоторе
  • убедитесь, что ваш рожок находится по центру (вы можете вращать его в одном направлении и в другом направлении, а затем повернуть обратно в среднее положение, так что если вы помещаете скобку на выровненную с сервоприводом скобку, она будет смещаться в центральное положение
  • используйте небольшую отвертку, чтобы закрутить скобы и круглые пластиковые рожки сервопривода вместе.
Скобки и сервоприводы должны свободно вращаться. Вы должны применить немного смазки между двумя металлическими скобками, если есть трения.
Вы также можете применять локтит на некоторых из шурупов так, чтобы они не выходили из отверстий. Это очень надежное средство крепления. На данный момент, ваше тело змеи готово!













Шаг 9. Схема:
  • Подготовьте XBee плату (припаяйте 2 ряда штыревых контактов к 2 рядам 2мм XBee «мамок»)
  • вставьте XBee как показано на фото
  • возьмите щит серводвигателя от Seeed студии, просто используя его в качестве макетной платы. Это удобно, потому что все выводы питания в серводвигателе уже идут вместе с винтовыми клеммами для входа батареи. Не обращайте внимания на проводки, висящие с платы, сначала припаяйте штепсельные контакты для другого использования платы. Обрезанные концы вы можете видеть на фотографии.
  • если у вас есть щит сервопривода, припаяйте на винтовые клеммы две строки контактов, где 6V и GND от батареи будут подключены. Припаяйте штыревые контакты для того, чтобы щит серводвигателя был смонтирован с seeeduino (или Arduino) mega.
Примечание: Arduino Mega необходима не потому, что она имеет нужное количество выходов, а потому количествоо флэш-памяти в Arduino Uno не является достаточно большим.
  • соедините XBee контакт 1 (3.3V) с Arduino 3,3 контактом (см. красный провод)
  • соедините XBee-TX (контакт 2) с Arduino RX (контакт1) (см. желтый провод)
  • соедините XBee заземленный контакт 10 с Arduino GND (см. черный провод)
  • подсоедините питание от аккумулятора 6В с Arduino VIN контактом (зеленый провод).
  • припаяйте провода от всех цифровых выходных контактов (по мере использования).
  • разместите серво разъемы (красный, черный, белый) и вставьте внешние провода от Arduino к серво кабелям (белый провод).
Примечание: если Arduino должна быть размещена в передней части робота-змеи, соедините контакты от низа до верха от Arduino с сервоприводами, которые наиболее близки к голове).

Другими словами: первый сервопривод (когда змея движется вперед, сервопривод на голове) должен быть подсоединен к цифровому контакту 2, а сервопривод в хвосте должен быть подсоединен к цифровому контакту 11.
  • соедините проводами концы для подключения к 6В нижней части от аккумуляторов
  • вырежьте дополнительные куски металла (вы не должны делать этого, если вы начинаете с чистой платы и нет ни одного припаянного контакта со штепселем).


1 - xbee tx-> arduino rx



1 – xbee серии 1 с проводами, 2 – выход xbee



1 – цифровой выход для сервопривода





1 – контакт серводвигателя, подключенный к цифровым выходам Arduino 6В и GND





1 - RX контакт от xbee tx к arduino контакту 1 rx
2 – контакты цифрового выхода,
3 – заземленный (правый край) и 6 В питание (слева)









1 - питание и заземление от аккумулятора для питания сервоприводов.

Шаг 10. Загрузите программное обеспечение:

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

Загрузите исходный код отсюда.  Загрузите его на Arduino без подключения к XBee (когда XBee не включен в сеть). TX и RX контакты (контакты 1 и 0) на Arduino Mega используют ссылки, которые распространяют синусоидальную волну вниз по линии двигателей.

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





Шаг 11. Сделайте пульт дистанционного управления, или просто используйте XBee и компьютер:

Для этой версии робота-змеи различные входы (номера 1-6) влияют на поведение волнистых движений.

Вариант 1: xbee+компьютер
  • подключите XBee к программе анализа XBee
  • подключите XBee программу анализа к компьютеру через кабель USB
  • скачайте и откройте программу CoolTerm
  • нажмите кнопку "Настройки"
  • убедитесь, что скорость передачи данных установлена на 57600
  • Убедитесь в том, что после "PORT" компьютер говорит вам что-то вроде "usbserial-A700xxx". Если нет, выберите "RESCAN SERIAL PORTS".
  • нажмите OK.
  • нажмите "Connect"
  • убедитесь, что ваш XBee установлен на скорости передачи 57600.
Выберите "+ + +" (вы не могли бы видеть все, что написано в последовательном порту, если вы не проверили "локальное эхо" в конечной вкладке Параметры.)
Вы должны вернуться на "OK" в окне CoolTerm. Если это невозможно, XBee не будет установлен на указанной скорости. Для отладки вернитесь к «Настройкам» и выберите пункт "скорость 9600" и попробуйте еще раз.

Теперь вы ввели XBee в "командный режим".

Выберите "ATBD", а затем нажмите ENTER. (Не ждите слишком долго и выйдите в командный режим).
Вы должны получить соответствующую скорость передачи XBee, которая устанавливается в режиме. Если вы убедитесь, что плата установлена на скорости 57600, выберите "ATBD 6" и нажмите ENTER.

Далее вернитесь к вкладке "OK" и перейдите к "ATWR".

Теперь введите символы 1-6 в серийном окне, и если ваша змея включена, символы должны влиять на движение робота.
5 и 6 – обеспечивают скорость вращения сервоприводов
3 и 4 – обеспечивают период волны (скорость распространения вдоль линии сервоприводов)
1 и 2 – влияют на амплитуду волны

Визуализируйте в программном обеспечении, как волновое поведение зависит от различных параметров, или выберите  символы 1-6.

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

Если вы не хотите применять ваш компьютер, и хотите использовать пульт дистанционного управления, сделайте Arduino дистанционно управляемой. Для этого подключите её к XBee щиту, который установлен на Arduino (см. по картинкам). Сделайте 6 кнопок с входами. Для этого можно взломать джойстик, который имеет 2 дополнительные кнопки. Подключите кнопки к цифровым выводам 2-7 Arduino.

Добавьте следующий код к Arduino.

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















1 - 6 кнопки внутри этого джойстик, четыре на джойстик и две установленные на поверхности.





//Code written by Gabriella Levine to take inputs from button pins and output
//chars to the serial port

// set pin numbers:
const int buttonPin1 = 2;     // the number of the pushbutton pin
const int buttonPin2 = 3;     // the number of the pushbutton pin
const int buttonPin3 = 4;     // the number of the pushbutton pin
const int buttonPin4 = 5;     // the number of the pushbutton pin
const int buttonPin5 = 6;     // the number of the pushbutton pin
const int buttonPin6 = 7;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables
int buttonState1 = 0;         // variable for reading the pushbutton status
int buttonState3 = 0;         // variable for reading the pushbutton status
int buttonState2 = 0;         // variable for reading the pushbutton status
int buttonState4 = 0;         // variable for reading the pushbutton status
int buttonState5 = 0;         // variable for reading the pushbutton status
int buttonState6 = 0;         // variable for reading the pushbutton status

void setup() {
  Serial.begin(9600);
  // initialize the LED pin as an output:

  pinMode(ledPin, OUTPUT);     
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin1, INPUT);    
  pinMode(buttonPin2, INPUT);    
  pinMode(buttonPin3, INPUT);    
  pinMode(buttonPin4, INPUT);    
  pinMode(buttonPin5, INPUT);    
  pinMode(buttonPin6, INPUT);    
}

void loop(){

  if(Serial.available()>0){
    byte incomingByte = Serial.read();
    if(incomingByte=='1'||incomingByte=='2'||incomingByte=='6'||incomingByte=='5'||incomingByte=='0')
    {
      digitalWrite(ledPin, HIGH);
      delay(10);
      digitalWrite(ledPin, LOW);

    }
  }

  // read the state of the pushbutton value:
  buttonState1 = digitalRead(buttonPin1);
  buttonState2 = digitalRead(buttonPin2);
  buttonState3 = digitalRead(buttonPin3);
  buttonState4 = digitalRead(buttonPin4);
  buttonState5 = digitalRead(buttonPin5);
  buttonState6 = digitalRead(buttonPin6);

  // check if the pushbutton is pressed.

  if (buttonState1 == HIGH) {    

    Serial.print('1');
  }

  if (buttonState2 == HIGH) {
    Serial.print('2');
  }

  if (buttonState4 == HIGH) {
    Serial.print('4');
  }

  if (buttonState3 == HIGH) {
    Serial.print('3');
  }

  if (buttonState5 == HIGH) {
    Serial.print('5');
  }

  if (buttonState6 == HIGH) {
    Serial.print('6');
  }


  delay(10);

}



Шаг 12. Соедините провода:

Итак, что вы имели до этого: плата Arduino припаяна, закрепленная проводами и запрограммирована; тело робота-змеи построено.

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

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

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

















Шаг 13. Прикрепите батарейки:

На каждый сегмент углеродного волокна поместите батарейки с 6V/GND проводами, направленными вверх (в направлении верхней части сервоприводов) и к передней части робота.
Используйте две стяжки, чтобы обеспечить закрепленность батарей на углеродных волокнах.

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

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

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

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
















Шаг 14. Установите выключатели и подготовьте крышки для головы и хвоста:

В данном примере используется одна кнопка для водяного насоса (12В) и одна для Arduino / сервоприводов (6В питание). Водяной насос не может быть включен, если змея находится в воде. Таким образом, сначала нужно поместить змею, а затем включить насос. См. следующий шаг для крепления водяного насоса.

Отрежьте два куска резины около 1,75 "диаметром, так что бы они легко помещались в вакуумный редуктор. Отрежьте два куска кабеля около 2 футов в длину, в качестве тросов для поддержания тела робота под «кожей».

Для головы (рядом с Arduino):
  • Поместите кусок резины в вакуумный редуктор, и вырежьте небольшие щели, но достаточные, чтобы протянуть провода. Протяните строку через вакуумный редуктор так, чтобы было около 8 дюймов строки на внутренней стороне. Снаружи не должно быть слишком много проводов, а трос должен будет располагаться в хвосте.
  • Поместите обе кнопки вверху через вакуумный редуктор. Проведите провода (содержащие питание и заземление) вниз через отверстие в вакуумный редуктор. Таким образом, в общей сложности, следующие провода должны проходить через редуктор и резиновую прокладку: питание и заземление с обоих выключателей; одна строка; питание и заземления от насоса.
Для хвоста:
  • Просто натяните другую часть полоски (строки) до конца. Оставьте около 10 дюймов полоски внутри и еще немного снаружи. Эта строка действует исключительно в качестве страховочного троса. Вы в конечном итоге можете удлинить его путем присоединения к другой строке так, что бы иметь больше троса.
  • Теперь, припаяйте кнопку включения / выключения к красному 6V проводу, который подключается к винтовым зажимам, так что при включении Arduino включается и сервоприводы получают питание. Эта кнопка является главным источником включения / выключения.















Шаг 15. Подготовьте насос для батарей и удлините тело робота:

Добавьте два 4 " куска углеродного волокна к любому из концов змеи, так, чтобы голова и хвост расширились внешне на несколько дюймов.
  • Припаяйте вместе переходы батарей для прямого подключения к насосу. Также припаяйте другие устройства включения / выключения, чтобы красный провод находился между аккумулятором и насосом. Батареи располагаются рядом с Arduino
  • подключите аккумулятор к углеродному волокну со стяжками
Теперь ваш робот должен двигаться, когда батареи подключены к нему.













Шаг 16. Замажьте крышки:

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

Дайте смазке высохнуть около 24 часов.

















Шаг 17. Оденьте на робота «кожу»:
  • Добавьте немного геля кремниевой кислоты (силикагель) просто чтобы убедиться, что влага удачно поглощается.
  • добавьте термоклей к Arduino, чтобы убедиться, что провода не выходят из него.
  • если любой из сервоприводов имеет жесткие суставы или трение металла, добавьте немного смазки к трущимся частям.
  • затем протяните «кожу» со стороны Arduino по низу к другой стороне хвоста.
  • разрежьте трубку по длине, если она слишком длинная.
  • как только всё это направлено правильно, используйте строку с обеих сторон, чтобы поднять углеродные волокна полностью до конца вакуумной трубки. Завяжите узел для предотвращения скольжения.
  • установите крышки на голове и хвосте. Нанесите немного смазки, чтобы закрыть их.




























Комментарии: