Робот заварить чай

Чай заварить робот

Ви коли-небудь пробували заварювати чай, але він виходив надто слабким чи гірким? З цією простою і цікавою проектною ідеєю ви зможете створити пристрій, який занурюватиме чайний пакетик у воду рівно на той час, який вам потрібно. Вам потрібно буде просто прикріпити пакетик, поставити чашку і пристрій зробить всю роботу за вас!

Необхідні матеріали та інструменти

Матеріали:

  • Дерево завтовшки 4 мм
  • Arduino Uno
  • Серво (наприклад, SG90)
  • Ультразвуковий датчик
  • Провід та стрічкові кабелі для Arduino
  • Ізоляційна стрічка
  • Двосторонній скотч
  • Прищіпка (або інший маленький затискач)
  • Чашка

Інструменти:

  • 3D принтер
  • Лазерний різак для дерева
  • Клейовий пістолет

Крок 1: Вирізання дерев’яної основи

Крок 1: Вирізання дерев'яної основи

Крок 1: Вирізання дерев'яної основи

Для початку нам потрібно підготувати основу нашого пристрою. Для цього виріжте з 4 мм дерева деталі за наданим шаблоном за допомогою лазерного різака.

Крок 2: Складання дерев’яної основи

Крок 2: Складання дерев'яної основи

Після вирізки всіх дерев’яних деталей, ми приступаємо до збирання. Вам знадобляться:

  • Ізоляційна стрічка
  • Двосторонній скотч
  • Гарячий клей
  • Ультразвуковий датчик

Почніть із кріплення ультразвукового датчика до передньої панелі, використовуючи гарячий клей для фіксації. Потім зберіть основу, з’єднавши дві базові пластини двостороннього скотчу. Продовжуйте складання, прикріплюючи бічні та верхні панелі, створюючи коробку.

Крок 3: Друк корпусу для Arduino

Крок 3: Друк корпусу для Arduino

Для захисту та монтажу Arduino використовуйте 3D принтер для друку корпусу. Завантажте та роздрукуйте файли .stl для верхньої та нижньої частини корпусу. Зберіть корпус, помістивши всередину Arduino і закривши його верхньою частиною.

Крок 4: Підключення електроніки

Крок 4: Підключення електроніки

Тепер давайте оживимо наш пристрій. Вам знадобляться:

  • Arduino Uno у корпусі
  • Ультразвуковий датчик
  • Серво
  • Провід та стрічкові кабелі для Arduino
  • Двосторонній скотч або гарячий клей

Підключіть датчик та серво до Arduino за схемою, використовуючи GND, VCC, TRIG, ECHO та інші порти. Завантажуйте код, щоб змусити пристрій працювати.

Код для Arduino

#include <Servo.h>

// pins
const int trigPin = 2; // trig pin for ultrasonic sensor
const int echoPin = 3; // echo pin for ultrasonic sensor
const int servoPin = 4; // pin for writing to servo

// distance
float minCheckDistance = 2.0; // min check distance in CM
float maxCheckDistance = 8.0; // max check distance in CM
float echoDuration, distance;
float averageDistance[10] = {0};

// servo
Servo serv;
const int minPos = 75; // servo maximum position while dipping
const int maxPos = 100; // servo minimum position while dipping
const int restingPos = 130; // servo resting position when not dipping
int targetPos = restingPos;
int pos = restingPos;

// time
unsigned long time = millis();
unsigned long startTime = time;
unsigned long dipDuration = 60000; // duration of comenced dipping in miliseconds
bool dipping = false;
bool reset = false;

void setup() {
  // enbable pins
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  serv.attach(servoPin);
  serv.write(pos);
  delay(300);
}

void loop() {
  time = millis();

  // insert a distance into the array
  distance = checkDistance();
  for(int i=0; i < 9; i++){
    averageDistance[i] = averageDistance[i+1];
  }
  averageDistance[9] = distance;

  // handle the setting down cup and removing it again
  if(checkAverageDistance()){
    if(time >= startTime+dipDuration && dipping){
      dipping = false;
      reset = true;
    }else if(!dipping && !reset){
      startTime = time;
      dipping = true;
    }
  }else if(!checkAverageDistance()){
    dipping = false;
    reset = false;
  }

  // handle servo
  if(!dipping){
    targetPos = restingPos;
  }else{
    if (pos >= maxPos){
      targetPos = minPos;
    }else if(pos <= minPos){
      targetPos = maxPos;
    }
  }

  moveServo();

  delay(50);
}

void moveServo(){
    if (pos < targetPos){
      pos += 1;
      serv.write(pos);
    }else if (pos > targetPos){
      pos -= 1;
      serv.write(pos);
    }
}

float checkAverageDistance(){
  // check if the average distance in the last 10 echoes is still around our target (3 echoes or more)
  int avg = 0;
  for (byte i=0; i < 10; i++){
    if (averageDistance[i] <= maxCheckDistance && averageDistance[i] >= minCheckDistance){
      avg++;
    }
  }
  return avg >= 3;
}

float checkDistance(){
  // pulse the signal so we get echoes
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  echoDuration = pulseIn(echoPin, HIGH);
  return (echoDuration * 0.0343) / 2;
}

Крок 5: Фінальна збірка

Крок 5: Фінальна збірка

Для останнього кроку нам потрібно прикріпити прищіпку для чайного пакетика. Використовуйте двосторонній скотч або гарячий клей для кріплення прищіпки до кінця дерев’яного важеля. Потім з’єднайте важіль із серво, використовуючи скотч або клей.

Крок 6: Фінальне тестування

Крок 6: Фінальне тестування

Тепер настав час протестувати вашу чайну машинку. Підключіть Arduino до джерела живлення, зафіксуйте чайний пакетик прищіпкою та поставте чашку з гарячою водою на пристрій. Насолоджуйтесь ідеально завареним чаєм!

Поширені запитання

Чи можна використовувати інший тип дерева? Так, але переконайтеся, що його товщина становить близько 4 мм, щоб усі деталі добре підходили одна до одної.

Який датчик найкраще використовувати? Ми використовували ультразвуковий датчик, але можна спробувати інші види датчиків, якщо ви впевнені в їх точності.

Чи можу я налаштувати тривалість і глибину занурення чайного пакетика? Так, у коді ви можете змінити значення minPos, maxPos, dipDuration та restingPos під свої переваги.

Чи потрібно мені використовувати 3D принтер? 3D принтер полегшує створення корпусу, але ви можете використовувати інші методи, якщо ви не маєте доступу до принтера.

Сподіваюся, вам сподобався цей проект і ви будете насолоджуватися ідеальним чаєм щодня!

Росукс

Рекомендуєм почитати

  • АВТОНОМНІ ПРОБНИКИ
    Функція перевірки цілісності електричних ланцюгів є зараз практично в будь-якому комбінованому електровимірювальному приладі. І, як показує практика, це одне з найпоширеніших ними завдань....
  • ПОБУДУВАВ — І В ПОДОРОЖ
    Моє технічне творчість розпочалося з того часу, як я себе пам'ятаю. Звісно, все почалося з моделей і різних корисних дрібниць. Мої прості вироби виготовлялися в кінці загального подвір'я,...