+7-960-0655211 (Билайн)
+7-987-4207734 (МТС)
интернет-магазин
доставка по России и СНГ
работаем с 2010 года

Поедатель монет

ГлавнаяИнформацияСтатьи

Поедатель монет



Это еще одна версия "Голодного робота", который был сделан в 2018 году. Вы можете сделать этого робота без 3D-принтера. Все, что вам нужно, это коробка из-под чипсов, сервопривод, инфракрасный дальномер, Arduino и немного инструментов.

ПОДГОТОВКА



Список основных деталей:

• 1 х Arduino Nano
• 1 х инфракрасный датчик расстояния GP2Y0A21YK0F
• 1 х микросервопривод MG90 или подобный (FS90MG и т.д.)
• 2 х наклеиваемые глаза (могут быть к примеру, в магазинах, где продают бисер), не обязательно – можно и нарисовать
• нейлоновые стяжки
• соединительные провода
• 6 х пластиковые заглушки для провода или термоусадка
• 1 х клеевой пистолет
• немного картона или плотной бумаги

ПЕЧАТЬ ВЫКРОЙКИ



Чертежи для распечатки можно скачать по ссылке.

PDF с выкройкой распечатайте в оригинальном размере без перемасштабирования.

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





ДЕЛАЕМ КОРПУС

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







Теперь отрезаем прямоугольник по линии, как показано на следующем фото:



Приклеиваем его на банку с помощью клея и потом липкой лентой по краям:



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



Более безопасно прижать палец к ладони и прижать банку к столу рукой сверху:



Теперь ножницами отрежем по шаблону:



Теперь делаем отверстия для сервопривода и USB-шнура:











С выкройки отрезаем следующую полоску и делаем верхнюю часть:









Для рук вырезаем следующую часть выкройки:



Приклеиваем:



Вырезаем:



Делаем по шаблону четыре отверстия: 







Теперь прорезаем и сгибаем:









Вставляем качалку сервопривода и затем с помощью клеевого пистолета закрепляем:







Делаем деталь, которая будет приподымать голову:









Такие инфракрасные дальномеры обычно идут в комплекте с проводами, на одном конце которых есть разъём для подключения к дальномеру, а на обратной стороне провода ничего нет. Обрежем соединительные провода мама-мама и припаяем их к проводам дальномера, что бы его можно было подключить к Arduino. В зависимости, что у Вас есть в наличии и удобней (термоусадка, специальные колпачки, изолента и т.д.), то и используйте. В данном случае использовались колпачки:



Для подключения сервопривода можно сделать также:



Что бы не портить шнур, можно использовать соединительные провода папа-мама:



ПРОШИВКА

Если у Вас ещё не установлена Arduino IDE, загрузите её с на официального сайта и установите.

Если у Вас версия Arduino Nano c USB-UART на CH340 или CH341, драйвера для него можно скачать по ссылке.

Скетч для Arduino:

#include <Servo.h>

// let's make an instance of Servo
Servo armServo;

// this function automatically runs only once when the Arduino's power up
void setup() {

  // we use pin number 12 for control the robot.
  armServo.attach(12);
  // move the motor to default angle
  armServo.write(90);

  // pin A7 is for the distance sensor
  pinMode(A7, INPUT);

  // these 3 pins (pin0, pin1, pin13) are for turning on LEDs
  // Arduino nano already has 3 LEDs on these pins.
  pinMode(13, OUTPUT);
  pinMode(0, OUTPUT);
  pinMode(1, OUTPUT);
}

// in order to check coming hand,
// we will keep the sensor value these variables
int sensorValue = 0;
int prevSensorValue = 0;

// When the sensor value is hight than the THRESHOLD value,
// The code will call action();
const int THRESHOLD = 360;

void loop() {

  // read A7's analog value and asign the value into sensorValue
  sensorValue = analogRead(A7);

  // these two lines means that some object has come
  // from outside of Threshold to inside of it.
  if (prevSensorValue <= THRESHOLD) {
    if (sensorValue > THRESHOLD) {
      // It's time to action
      action();
    }
  }

  // regardless the action, save current sensor value prevSensorValue
  // so that we can check the direction
  prevSensorValue = sensorValue;

  // this delay controls how often this loop is running
  // without this delay, this loop runs too fast
  // then, the differences between previous and current sensor value
  // can not be meaningful.
  delay(10);
}


void action() {
  // call this function for turning on three LEDs all together
  led(true);

  // eating sequence
  // wait 1000ms (1 second)
  delay(1000);

  // let's use pin12 for motor control
  armServo.attach(12);
  // let's move the motor to degree '10' (move the arm up)
  armServo.write(10);

  // wait 300 ms
  delay(300);

  // let's move the motor to degree '70' (move the arm down)
  armServo.write(70);
  delay(500);

  // after ate
  delay(100);
  armServo.write(50);
  delay(250);
  armServo.write(70);
  delay(250);
  armServo.write(50);
  delay(250);
  armServo.write(70);
  delay(250);
  armServo.write(50);
  delay(250);
  armServo.write(70);
  delay(250);
  armServo.write(50);
  delay(250);
  armServo.write(90);
  delay(250);

  // release arm's torque
  armServo.detach();

  // call this function for turning off three LEDs all together
  led(false);
}

void led(bool onOff) {
  // pin 13's LED turns on when it is high
  // pin 0, 1's LED turn on when it is low
  if (onOff) {
    digitalWrite(13, HIGH);
    digitalWrite(0, LOW);
    digitalWrite(1, LOW);
  } else {
    digitalWrite(13, LOW);
    digitalWrite(0, HIGH);
    digitalWrite(1, HIGH);
  }
}

Загрузив скетч в Arduino Nano, переходим к установке деталей внутри корпуса.

С помощью клеевого пистолета закрепляем сервопривод и инфракрасный дальномер:







Подключаем Arduino Nano и размещаем её на дне корпуса:







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











Прикрепляем верх, приклеиваем или рисуем глаза:







На этом всё, наш робот, поедающий монеты готов:





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




Автор: HappyThingsMaker (Eunchan Park)
Перевод и адаптация: RobotoTehnika.ru