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

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

Вы когда-нибудь пробовали заваривать чай, но он получался слишком слабым или горьким? С этой простой и интересной проектной идеей вы сможете создать устройство, которое будет погружать чайный пакетик в воду ровно на то время, которое вам нужно. Вам нужно будет просто прикрепить пакетик, поставить чашку, и устройство сделает всю работу за вас!

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

Материалы:

  • Дерево толщиной 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 и другие порты. Загружайте код, чтобы заставить устройство работать.

Код

#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 принтер облегчает создание корпуса, но вы можете использовать другие методы, если у вас нет доступа к принтеру.

Надеюсь, вам понравился этот проект и вы будете наслаждаться идеальным чаем каждый день!

Росукс

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

  • СЕКРЕТЫ МАШУЩЕГО ПОЛЕТАСЕКРЕТЫ МАШУЩЕГО ПОЛЕТА
    ...Модель взлетала из любого положения. Достаточно было закрутить резиномотор, и двукрылая «птица», энергично оттолкнувшись крыльями, начинала стремительный разгон в небо. Выглядела она...
  • Автоматическая система поливаАвтоматическая система полива
    В этом проекте я покажу вам, как создать автоматизированную систему полива. Моя система создана для моей теплицы, но вы можете использовать общий принцип практически для всего и везде....
Тут можете оценить работу автора: