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

Автоматизированный свайпер для Tinder и Bumble на Arduino UNO и шаговом двигателе

Компоненты и расходные материалы

Arduino UNO × 1
Шаговый двигатель BYJ48 (28-BYJ48) × 1
3D-печатаемые файлы × 1 набор
Сенсорный стилус для сенсорного экрана × 1

Приложения и онлайн-сервисы

О проекте

Предыстория

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

Быстрый обзор

Три шага: печать деталей, сборка и тест шагового двигателя, финальная сборка.

Шаг 1: Печать деталей

Файлы на Thingiverse: thing:2849598. Важно: база печатается с 50% заполнением для веса — чтобы не сдвигалась при свайпах.

Автоматизированный свайпер для Tinder и Bumble на Arduino UNO и шаговом двигателе

Шаг 2: Шаговый двигатель

Униполярный 28-BYJ48 + драйвер SBT0811 (любой совместимый с BYJ48 подойдет). Проводка к Arduino Uno:

Код внизу страницы. После загрузки двигатель вращается по часовой стрелке. Для противоположного направления (свайп вправо) поменяйте Direction = false на true.

Автоматизированный свайпер для Tinder и Bumble на Arduino UNO и шаговом двигателе
Автоматизированный свайпер для Tinder и Bumble на Arduino UNO и шаговом двигателе

Шаг 3: Финальная сборка

  1. Установите шаговый двигатель в базу (swiper-base). Закрепил 2 небольшими деревянными винтами в 3D-печать.
  2. Автоматизированный свайпер для Tinder и Bumble на Arduino UNO и шаговом двигателе
  3. Наденьте ручку свайпера (swiper handle) на вал двигателя.
  4. Автоматизированный свайпер для Tinder и Bumble на Arduino UNO и шаговом двигателе
  5. Калибровка высоты: поставьте конструкцию над телефоном, вставьте стилус в ручку до касания экрана.
  6. Автоматизированный свайпер для Tinder и Bumble на Arduino UNO и шаговом двигателе
  7. Закрепите стилус коротким винтом M3, чтобы не смещался при свайпах.
  8. Автоматизированный свайпер для Tinder и Bumble на Arduino UNO и шаговом двигателе

Финал: Свайпайте!

Поставьте конструкцию рядом с телефоном, откройте Tinder/Bumble, включите Arduino — и наблюдайте!

Автоматизированный свайпер для Tinder и Bumble на Arduino UNO и шаговом двигателе

Тестировал на 4 телефонах. На одном были проблемы: край экрана слишком чувствителен, свайп уходил в «назад». Лечится чехлом с поднятым краем — стилус не дотрагивается до края экрана.

Код

Swiper (Arduino)

Меняйте Direction = false на true для смены направления свайпа!

/* BYJ48 Stepper motor code
   Connect: IN1 >> D8, IN2 >> D9, IN3 >> D10, IN4 >> D11, VCC >> 5V, GND
   Written by: Mohannad Rawashdeh
   https://www.instructables.com/member/Mohannad+Rawashdeh/
   28/9/2013 */
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11

int Steps = 0;
boolean Direction = false; // true = свайп вправо
unsigned long last_time;
unsigned long currentMillis;
int steps_left = 4095;
long time;

void setup() {
  Serial.begin(115200);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

void loop() {
  while(steps_left > 0) {
    currentMillis = micros();
    if(currentMillis - last_time >= 1000) {
      stepper(1);
      time = time + micros() - last_time;
      last_time = micros();
      steps_left--;
    }
  }
  steps_left = 4095; // Сброс для следующего цикла
}

void stepper(int xw) {
  for (int x = 0; x < xw; x++) {
    switch(Steps) {
      case 0: digitalWrite(IN1, LOW);  digitalWrite(IN2, LOW);  digitalWrite(IN3, LOW);  digitalWrite(IN4, HIGH); break;
      case 1: digitalWrite(IN1, LOW);  digitalWrite(IN2, LOW);  digitalWrite(IN3, HIGH); digitalWrite(IN4, HIGH); break;
      case 2: digitalWrite(IN1, LOW);  digitalWrite(IN2, LOW);  digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);  break;
      case 3: digitalWrite(IN1, LOW);  digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);  break;
      case 4: digitalWrite(IN1, LOW);  digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW);  digitalWrite(IN4, LOW);  break;
      case 5: digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW);  digitalWrite(IN4, LOW);  break;
      case 6: digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);  digitalWrite(IN3, LOW);  digitalWrite(IN4, LOW);  break;
      case 7: digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);  digitalWrite(IN3, LOW);  digitalWrite(IN4, HIGH); break;
      default: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); break;
    }
    SetDirection();
  }
}

void SetDirection() {
  if(Direction == 1) Steps++;
  if(Direction == 0) Steps--;
  if(Steps > 7) Steps = 0;
  if(Steps < 0) Steps = 7;
}

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

  1. Шаговые двигатели: типы, характеристики и практические применения
  2. Интегрированные драйверы упрощают дизайн высокомощных шаговых двигателей
  3. Raspoulette: Прототип солнечной автономной системы двери курятника
  4. Simple Pi Robot — Сборка 2WD автономного ровера на Raspberry Pi
  5. DIY автономная турель Nerf — умный Nerf-пушка на шаговых двигателях, камере и Arduino
  6. Полнофункциональная библиотека для управления биполярным шаговым двигателем на Arduino
  7. SmartWay: GPS-трекер для детей на Arduino MKR Fox 1200 (Sigfox)
  8. Сервоприводы vs Шаговые двигатели: проясняем современную серую зону
  9. Понимание линейных моторов: от электрической энергии к точному линейному движению
  10. Серводвигатели: принцип работы и значение