Умная корзина для мусора на Arduino с автоматическим открыванием крышки
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Arduino UNO | 1 |
| Ультразвуковой датчик HC-SR04 (Generic) | 1 |
| Сервопривод Tower Pro MG996R | 1 |
| UTSOURCE Electronic Parts | 1 |
Приложения и онлайн-сервисы
- Arduino IDE
О проекте
Всё становится умнее, верно? Так почему бы не сделать умной свою мусорную корзину? Эта корзина открывает и закрывает крышку, если видит мусор перед собой. Вам просто нужно поднести мусор к ней, и она автоматически откроется и будет ждать, пока вы не загрузите больше, а затем через определенную задержку автоматически закроется. Посмотрите видео, чтобы увидеть, что именно она умеет.
Начнем.
Шаг 1: Компоненты
- Arduino Uno (любая плата)
- Сервопривод (я использую микросерво SG90)
- Ультразвуковой датчик HC-SR04
- Рычаг сервопривода (рядом с серво на фото 2)
- Картон (просто кусок)
- Мусорная корзина
Шаг 2: Сборка схемы
Схема очень простая. Поскольку серво и сонар потребляют мало энергии, их можно питать напрямую от 5V Arduino. Только помните, что Arduino нужно питать более чем 7.4 В постоянного тока или хотя бы 7В.
- Серво данные (желтый) → пин 3 Arduino
- Серво VCC (красный) → 5V Arduino
- Серво земля (черный/серый) → GND Arduino
- Сонар Trig → пин 6 Arduino
- Сонар Echo → пин 5 Arduino
- VCC → 5V Arduino
- GND → GND Arduino
Шаг 3: Подключение рычага сервопривода
Возьмите этот рычаг сервопривода и приклейте его к длинному куску картона с термоклеем или другим клеем. Можно также использовать палочку от мороженого вместо картона. Затем подключите длинный рычаг к сервоприводу.
Шаг 4: Установка сервопривода и сонар-датчика на мусорную корзину
Установите сонар-датчик, смотрящий вверх, на корзину так. Затем добавьте сервопривод как на фото 2 и 3, чтобы серво мог вращаться вверх.
Шаг 5: Код
Ссылка на код: https://github.com/ashraf-minhaj/Trash-bot
Я запрограммировал Arduino так, что если он видит любой мусор (буквально что угодно) в диапазоне 50 см, серво поворачивается на 50 градусов и поднимает верхнюю крышку корзины, так что крышка открывается, ждет три секунды, затем автоматически поворачивается на 160 градусов, и верхняя крышка закрывается. Теперь у вас есть автооткрывающаяся/закрывающаяся мусорная корзина-робот.
#include <Servo.h>
Servo servo;
int const trigPin = 6;
int const echoPin = 5;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servo.attach(3);
}
void loop() {
int duration, distance;
digitalWrite(trigPin, HIGH);
delay(1);
digitalWrite(trigPin, LOW);
// Измеряем длину импульса на пине echo
duration = pulseIn(echoPin, HIGH);
// Расстояние = половина длительности / 29.1 (из даташита)
distance = (duration/2) / 29.1;
// если расстояние меньше или равно 0.5 метра и больше 0 (0 или меньше означает за пределами диапазона)
if (distance <= 50 && distance >= 0) {
servo.write(50);
delay(3000);
} else {
servo.write(160);
}
// Ожидание 60 мс не навредит
delay(60);
}
Шаг 6: Готово
Теперь просто подайте питание на Arduino более чем 7В и у вас есть робот-мусорная корзина.
Спасибо.
[Если вам понравилась моя работа, пожалуйста, поддержите меня, подписавшись на мой YouTube-канал]
Код
arduino trash-bot code (C/C++)
#include <Servo.h>
Servo servo;
int const trigPin = 6;
int const echoPin = 5;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servo.attach(3);
}
void loop() {
int duration, distance;
digitalWrite(trigPin, HIGH);
delay(1);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance <= 50 && distance >= 0) {
servo.write(50);
delay(3000);
} else {
servo.write(160);
}
delay(60);
}
Схемы
Схема подключения доступна во вложениях. Код на GitHub: https://github.com/ashraf-minhaj/Trash-bot
Производственный процесс
- Эволюция и инженерия современных мусоровозов
- Интеллектуальное умное мусорное ведро: оптимизация сбора отходов с IoT-датчиками
- Сборка Bluetooth-робота-шпиона на Arduino с управлением с телефона
- FlickMote: жестовое IR-пульт для умного дома на Arduino 101 и ультразвуковом датчике
- DIY Arduino TV-B-Gone: универсальный пульт для выключения любого телевизора
- Создание пользовательских LED-часов с будильником — видно с 12 метров
- Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
- Find Me: Умный поисковик вещей на Arduino и Bluetooth
- Оптимизированные решения питания для проектов на Arduino
- Крестики-нолики на Arduino с матрицей MAX7219 и картонным корпусом