payaem.ru

Паяем — Все о электронике

Сборка робота на игрушке «Джип Монстр»

Привет всем.

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

На основе платы Arduino и на игрушечной машинке «Джип Монстр» построен этот робот. Обыкновенный робот без особых заморочек, движется, тормозит возле препятствий, которые считывает модуль и объезжает их, ищет другие пути для движения.

Весь процесс сборки показан на фотографиях.

Шаг 1: Материалы

Что нужно

1. Собственно сама игрушка «Джип Монстр»

2. Arduino Uno REV 3

3. Arduino Motor Shield

4. Параллакс — датчик детонации

5. Разъём 9-ти вольтовый

6. DC коаксиальный штепсель размера М

7. PC Board

8. Провода сцепления

9. Щелочная 9-ти вольтовая батарейка (Крона)

10. Термоусадочные трубки

Шаг 2: Снимаем крышку

Переверните машинку и выкрутите два винта, удерживающие крышку.

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

Шаг 3: Отсоединяем

Отключите двигатель от разъемов на плате.

Если ваша игрушка на дистанционном управлении, то просто отрежте провода мотора.

Шаг 4: Снимаем контроллер

Удалите винты, крепящие плату контроллера к машинке и вытащите его.

Шаг 5: Питание

Припаяйте штепсель к разъёму.

Красный провод нужно припаять к среднему контакту, а чёрный провод к внешнему контакту.

Шаг 6: Сверлим

Помещаем плату Arduino в кузов машинки.

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

Шаг 7: Маркировка для сверления

Установите батарейку 9 Вольт на нижней платформе. Сделайте две метки на каждой стороне батарейки и просверлите их.

Шаг 8: Присоединяем

Подсоедините 9-ти вольтовый разъём к батарейке. Прикрепите батарейку при помощи зажимов  и обрежьте лишнее.

Шаг 9: Arduino Motor Shield

Подключите Arduino Motor Shield в гнезда на Arduino Uno.

Шаг 10: Прикрепляем

Теперь можно этот «бутерброд» связать зажимами.

Шаг 11: Плата

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

Шаг 12: Припой

Припаиваем датчик к обрезанной плате.

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

Шаг 13: Вставляем

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

Шаг 14: Сверлим и закрепляем

Сверлим отверстия в плате и надёжно закрепляем её к игрушке.

Шаг 15

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

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

Шаг 16:

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

Шаг 17:

Соберите игрушку обратно, закрутите винты.

Шаг 18: Программа

Программируем нашу машинку.

Код прошивки для Arduino:

/*RC Car to Robot Conversionby Randy Sarafan

Used to convert an RC car into a robot that uses a PING sensor to avoid obstacles,and an Arduino motor shield for motor control.

For more information see:http://www.instructables.com/id/RC-Car-to-Robot/

Built atop Ping example code by Tom Igoe*/

// this constant won’t change. It’s the pin number// of the sensor’s output:const int pingPin = 7;

void setup() {

//establish motor direction toggle pinspinMode(12, OUTPUT); //drive motor — HIGH = forwards and LOW = backwardspinMode(13, OUTPUT); //turn motor — HIGH = left and LOW = right

//establish motor brake pinspinMode(9, OUTPUT); //brake (disable) the drive motorpinMode(8, OUTPUT); //brake (disable) the turn motor

//Turns brake off for drive motordigitalWrite(9, LOW);

//Turns brake on for turn motordigitalWrite(8, HIGH);

//Sets initial speed of drive motoranalogWrite(3, 200);

//Sets initial direction of drive motordigitalWrite(12, HIGH);}

void loop(){// establish variables for duration of the ping,// and the distance result in inches and centimeters:long duration, inches, cm;

// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:pinMode(pingPin, OUTPUT);digitalWrite(pingPin, LOW);delayMicroseconds(2);digitalWrite(pingPin, HIGH);delayMicroseconds(5);digitalWrite(pingPin, LOW);

// The same pin is used to read the signal from the PING))): a HIGH// pulse whose duration is the time (in microseconds) from the sending// of the ping to the reception of its echo off of an object.pinMode(pingPin, INPUT);duration = pulseIn(pingPin, HIGH);

// convert the time into a distanceinches = microsecondsToInches(duration);

////if objects are less than 12 inches away//the robot reverses and turns to the right//for 2 seconds//

if (inches < 12){

//brake drive motor and pause 1/10 seconddigitalWrite(9, HIGH);delay(100);

////setting turn motor//

//turn off brake for turn motordigitalWrite(8, LOW);

//set turn motor directiondigitalWrite(13, HIGH);

//activate turn motoranalogWrite(11, 255);

////setting drive motor//

//turn off brake of drive motordigitalWrite(9, LOW);

//set drive motor backwards directiondigitalWrite(12, LOW);

//activate the drive motoranalogWrite(3, 200);//backup for 2 secondsdelay(2000);

////stopping//

//brake both motorsdigitalWrite(8, HIGH);digitalWrite(9, HIGH);

}

////when nothing is within 12?//the robot simply drives forwards//

else{

////Setting drive motor//

//set drive motor forward directiondigitalWrite(12, HIGH);

//turn off brake of drive motordigitalWrite(9, LOW);

//activate drive motoranalogWrite(3, 200);

}

delay(100);}

long microsecondsToInches(long microseconds){// According to Parallax’s datasheet for the PING))), there are// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per// second). This gives the distance travelled by the ping, outbound// and return, so we divide by 2 to get the distance of the obstacle.// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdfreturn microseconds / 74 / 2;}

Или можете скачать код в архиве

Шаг 19

Датчик

  • Подключите зелёный провод от датчика Ping к цифровому выводу 7
  • Подключите чёрный провод от датчика Ping на землю
  • Подключите красный провод к питанию

Передний двигатель

  • Подключите красный провод от переднего двигателя к плюсу на канале В моторного щита
  • Подключите чёрный провод от переднего двигателя к минусу на канале B двигательного щита

Задний двигатель

  • Подключите красный провод от заднего двигателя плюсуна канале А
  • Подключите чёрный провод от заднего двигателя к минусу на канале А

Подключите 5V разъём на вход питания винта. Подключите заземляющий разъём на щите к входу основного разъёма винта.

Шаг 20: Поехали!

Вставьте 9-ти вольтовый штепсель в разъём Arduino, чтобы ваш робот получал питание.

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

Это всё. Робот готов и выполняет все свои функции. Всего вам доброго.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *