Кормушка CHONK

Источник:

ОБНОВЛЕНИЕ от 02.03.2025!!!

После того, как я начал распечатывать и собирать податчик, в сборке выявилось несколько нестыковок. Основная проблема была с валом, поэтому я обновил его конструкцию (2 лопасти вместо 4 и соединение с серводвигателем винтом М2).
Еще одно небольшое изменение, которое я внес, касалось корпуса механизма: я немного увеличил отверстия, в которых находится вал; теперь он вдавлен до тех пор, пока не сядет на место.

Я также решил распечатать сам корпус в ориентации, противоположной запланированной (также обновил картинки в инструкции ниже).
Добавлены новые фотографии и видео проекта.

--------------------------------------------------------------------------------------------------

CHONK — это, по сути, автоматизированная система, которая раздает еду, когда ваш питомец подходит достаточно близко. Ультразвуковой датчик обнаруживает присутствие вашего питомца, а серводвигатель управляет механизмом выдачи на основе логики близости и синхронизации в коде.

Используемое оборудование и программное обеспечение:

Аппаратное обеспечение:

Микроконтроллер UNO R3/Micro/Nano ESP32/ESP32
Ультразвуковой датчик (HC-SR04)
Серводвигатель MG90
Макетная плата и перемычки
Винт М2

Программное обеспечение:

Ардуино IDE
Солидворкс
Бамбу Студия
Схема подключения:

Ультразвуковой датчик:

VCC -> 5 В на ESP32
GND -> GND на ESP32
TRIG -> GPIO 23 на ESP32
ЭХО -> GPIO 22 на ESP32

Серводвигатель:

VCC -> 5 В на ESP32 (или при необходимости внешний источник питания)
GND -> GND на ESP32
Управление -> GPIO 26 на ESP32
Код:

Я старался сделать код максимально простым. Это ссылка на сайт, с которого я скачал исходный код: https://wokwi.com, но я его немного усовершенствовал с помощью AI, чтобы он более подходил для этой цели.

В коде используется микроконтроллер ESP32 для управления серводвигателем на основе измерений расстояния ультразвуковым датчиком. Когда объект обнаруживается в пределах заданного порога расстояния, серводвигатель поворачивается на определенный угол, имитируя открытие и закрытие двери. Серводвигатель открывает дверь только при обнаружении объекта на указанном расстоянии, а между последующими активациями существует задержка, чтобы избежать непрерывного срабатывания.

#include

#define TRIG_PIN 23 // Контакт ESP32 GPIO23 подключен к контакту TRIG ультразвукового датчика

#define ECHO_PIN 22 // Контакт ESP32 GPIO22, подключенный к контакту ECHO ультразвукового датчика

#define SERVO_PIN 26 // Вывод ESP32 GPIO26, подключенный к выводу серводвигателя

#define DISTANCE_THRESHOLD 10 // Порог расстояния в сантиметрах

Сервопривод; // Создаем сервообъект для управления серводвигателем

// Переменные для измерения расстояния и времени

float period_us, distance_cm;

беззнаковый longlastActivatedTime = 0;

беззнаковый длинный период задержки = 10000; // Период задержки 10 секунд в миллисекундах

недействительная настройка() {

Серийный.начало(9600); // Инициализируем последовательный порт

pinMode (TRIG_PIN, ВЫХОД); // Устанавливаем вывод ESP32 как выход для вывода TRIG

pinMode (ECHO_PIN, INPUT); // Устанавливаем вывод ESP32 в качестве входа для вывода ECHO

servo.attach(SERVO_PIN); // Подключаем сервопривод к контакту 26

серво.запись(0); // Инициализируем положение сервопривода на 0 градусов (дверь закрыта)

}

недействительный цикл() {

// Генерируем 10-микросекундный импульс на вывод TRIG

digitalWrite(TRIG_PIN, ВЫСОКИЙ);

задержкамикросекунды (10);

digitalWrite(TRIG_PIN, LOW);

// Измеряем длительность импульса с вывода ECHO

длительность_us = импульсВход (ECHO_PIN, ВЫСОКИЙ);

// Рассчитываем расстояние в сантиметрах

расстояние_см = 0,017 * длительность_нас;

unsigned long currentTime = millis();

// Проверяем, находится ли расстояние ниже порога и прошел ли период задержки

if (distance_cm = DelayPeriod) {

серво.запись(90); // Поворот серводвигателя на 90 градусов (открытая дверь)

задержка(1000); // Держим дверь открытой 1 секунду

серво.запись(0); // Закрываем дверь

LastActivatedTime = CurrentTime; // Обновляем время последней активации

}

// Выводим измеренное расстояние на последовательный монитор

Serial.print(«Расстояние: „);

13:35
14
Нет комментариев. Ваш будет первым!

Ссылка появится после регистрации

Похожие модели

держатель микрофона yaesu ft450
это простой держатель микрофона дляПодробнее
8-контактный краевой разъем карты (например, марки амфено...
I needed this for a project. STEP filesПодробнее
Переключатель на 4 аркадные кнопки......
Я разработал этот блок для четырехПодробнее
Держатель щупов для осциллографа Rigol DHO (804)
Легко печатаемый защелкивающийсяПодробнее
Крышка осциллографа Rigol 804 (800-900 серия)
Защелкивающаяся крышка для осциллографовПодробнее
Линки для пайки "третья рука"
Стандартные звенья типа Loc-LineПодробнее
USB-вытяжка C для пайки (+ прочный корпус)........
Я хотел, чтобы вентилятор отсасывалПодробнее
Носимый чехол для Seeed Xiao (ремешок 22 мм)........
Это чехол, напечатанный на 3D-принтереПодробнее
Лабораторный блок питания - корпус блока питания Riden RK..
Компактный чехол для модулей RidenПодробнее
BIGTREETECH BTT Relay V1.2 Крепление на DIN-рейку........
Модель от Фабиана не была доступна воПодробнее
Модульная система Pegboard - Макетные платы........
Когда я впервые нашел «ВертикальнуюПодробнее
Wemos D1 mini (крепление на DIN-рейку)
Это крепление для Wemos D1 mini. WemosПодробнее
Реле для крепления на DIN-рейку
Нужно распечатать: 2 шт. файлаПодробнее
Нагрузочная катушка любительского радио........
Это мой прототип самодельной загрузочнойПодробнее
Чехол Heltec v3 для Meshtastic
**Вы можете приобрести этот и другие ужеПодробнее
Komplettes Stativ mit Kugelkopf-Adapter und Gehäuse für e..
Комплектная модель для мини-стата дляПодробнее
Корпус BrickLight
Корпус, состоящий из двух частейПодробнее
Чехол на камеру ESO32-CAM
Чехол на камеру ESO32-CAM+ DevelopmentПодробнее
ULTIMATE Devboard (без поддержки) для двигателей n20, Ard..
Сопло .6. Высота слоя .2. КреплениямПодробнее
Настенное крепление модуля светодиодного дисплея 192*192 ..
Простая пластина для настенногоПодробнее
Я люблю Ардунио
ПОЕХАЕМ, Ардунио (запускать из esp32Подробнее
Lolin32 lite открытый корпус с зажимом DIN........
I added the 2 models together. Подробнее
2,4-дюймовый TFT-дисплей Zoll Gehäuse Schräg........
Dieses flache Gehäuse для 2,4-дюймовогоПодробнее
Крепление тумблера - поддержка прерывателя на подставке (..
Завидуете ли вы свободному подключениюПодробнее
Датчик CO2 TTGO Настольная подставка под углом 45 градусо..
Датчик CO2 TTGO Настольная подставка подПодробнее
Я люблю Ардунио
ПОЕХАЕМ, Ардунио (запускать из esp32Подробнее
Чехол Flip_C3
Я создал этот корпус, чтобы можно былоПодробнее
Магнитное крепление на стену 4 дюйма........
Я переделал модель, потому что стопорныеПодробнее
Угловой футляр и крепление
Эта модель представляет собойПодробнее
Крепление для силиконовых лент (5,6 мм x 11,6 мм) и код д..
Fixation pour Ruban del En Silicone (5,6Подробнее
Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.