Автоматизированный свайпер для Tinder и Bumble на Arduino UNO и шаговом двигателе
Компоненты и расходные материалы
| Arduino UNO | × | 1 |
| Шаговый двигатель BYJ48 (28-BYJ48) | × | 1 |
| 3D-печатаемые файлы | × | 1 набор |
| Сенсорный стилус для сенсорного экрана | × | 1 |
Приложения и онлайн-сервисы
- Arduino IDE
О проекте
Предыстория
Друзья завели мне Tinder, и как большинство пользователей, я быстро разочаровался в монотонности. Тогда я понял: я намного лучше инженер, чем потенциальный партнер, и собрал это из дешевого шагового двигателя, который валялся без дела. Теперь вы тоже можете делать более 800 свайпов в час на Tinder или Bumble!
Быстрый обзор
Три шага: печать деталей, сборка и тест шагового двигателя, финальная сборка.
Шаг 1: Печать деталей
Файлы на Thingiverse: thing:2849598. Важно: база печатается с 50% заполнением для веса — чтобы не сдвигалась при свайпах.
Шаг 2: Шаговый двигатель
Униполярный 28-BYJ48 + драйвер SBT0811 (любой совместимый с BYJ48 подойдет). Проводка к Arduino Uno:
- IN1 → D8
- IN2 → D9
- IN3 → D10
- IN4 → D11
- VCC → 5V
- GND → GND
Код внизу страницы. После загрузки двигатель вращается по часовой стрелке. Для противоположного направления (свайп вправо) поменяйте Direction = false на true.
Шаг 3: Финальная сборка
- Установите шаговый двигатель в базу (swiper-base). Закрепил 2 небольшими деревянными винтами в 3D-печать.
- Наденьте ручку свайпера (swiper handle) на вал двигателя.
- Калибровка высоты: поставьте конструкцию над телефоном, вставьте стилус в ручку до касания экрана.
- Закрепите стилус коротким винтом M3, чтобы не смещался при свайпах.
Финал: Свайпайте!
Поставьте конструкцию рядом с телефоном, откройте Tinder/Bumble, включите Arduino — и наблюдайте!
Тестировал на 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;
}
Производственный процесс
- Шаговые двигатели: типы, характеристики и практические применения
- Интегрированные драйверы упрощают дизайн высокомощных шаговых двигателей
- Raspoulette: Прототип солнечной автономной системы двери курятника
- Simple Pi Robot — Сборка 2WD автономного ровера на Raspberry Pi
- DIY автономная турель Nerf — умный Nerf-пушка на шаговых двигателях, камере и Arduino
- Полнофункциональная библиотека для управления биполярным шаговым двигателем на Arduino
- SmartWay: GPS-трекер для детей на Arduino MKR Fox 1200 (Sigfox)
- Сервоприводы vs Шаговые двигатели: проясняем современную серую зону
- Понимание линейных моторов: от электрической энергии к точному линейному движению
- Серводвигатели: принцип работы и значение