Сегодня Я покажу как сделать «Robobox» — коробочку которая не дает. А не давать она может все, что вы в нее положите. Или наоборот открываться, когда кто-то приближается к умной коробочке. Этот Arduino проект поможет познакомиться с работой сервопривода и ультразвукового датчика.
Нам понадобится
- Картонная коробочка
- Arduino
- Ультразвуковой дальномер HC-SR04
- Сервопривод
- Крепежи для сервопривода
- Батарейка крона 9В
- Двухсторонний скотч
- Зубочистка
- Провода папа-папа
- Провода папа-мама
Делаем умную коробочку Robobox
При помощи шурупов, соединяем крепежи от сервопривода.
Соединяем подготовленные крепежи и сервопривод. Обратите внимание, что для соединения крепежей используется по одному шурупу, для того, чтобы при движении они проворачивались.
Чтобы зафиксировать сервопривод в коробке, можно использовать двухсторонний скотч или клейкую ленту.
Сервопривод необходимо установить в угол коробки, шестеренкой к боковой стенке.
Далее необходимо соединить рычаг сервопривода и крышку коробки. Для этого отметьте место соединения и проделайте отверстие в крышке. Для фиксации можно использовать кусочек зубочистки.
Для установки ультразвукового дальномера, сделайте отверстия на лицевой стороне коробки и в них установите датчик.
В крышке коробки также понадобится сделать длинное отверстие для свободного хода рычага сервопривода. Длина этого отверстия выбирается экспериментальным путем. Рекомендую сделать сначала небольшое и по мере необходимости увеличивать его. Размер отверстия будет зависеть от формы и размера коробки.
Подключение электроники для умной коробки «Robobox»
Приступаем к подключению компонентов к микроконтроллеру.
Для начала подключим сервопривод. Он имеет три контакта:
- Красный — питание
- Коричневый — земля
- Оранжевый — управление
Провод управления подключаем к 9 пину Arduino. Землю и питание соответственно к пинам GND и 5V платы Arduino.
Ультразвуковой датчик дальности имеет четыре контакта:
- GND — земля
- VCC — питание 5В
- Echo — вход
- Trig — выход
Осталось залить скетч программы для умной коробочки в Arduino и подключить крону. Батарейка подключается в специальный разьем питания, расположенный рядом с USB портом.
Укладываем провода и накрываем всю электронику картонкой.
Код программы для умной коробочки «Robobox»
Для того, чтобы коробочка закрывалась при приближении к ней, необходимо установить первоначальное положение рычага в перпендикулярное положение в строке void setup() . А когда к ней кто-либо приближается, рычаг должен опуститься вниз.
Если необходимо, чтобы коробочка открывалась при приближении к ней, достаточно просто поменять местами значения положения рычага myServoWrite()
1
|
myServo.write;
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include <Servo.h> // подключение библиотеки
Servo myServo; // для работы с сервоприводом
#define trigPin 12 // объявление
#define echoPin 13 // переменных
void setup() { // настройка
pinMode(trigPin, OUTPUT); // портов
pinMode(echoPin, INPUT);
myServo.attach(9); // подключение управления сервоприводом к 9 пину
myServo.write(40); // установка начального положения рычага
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // чтобы начать измерения,
delayMicroseconds(10); // необходимо на вход trigPin подать высокий сигнал 5В на 10мкс
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); // с выхода echoPin считывается как долго был открыт порт
distance = (duration/2) / 29.1; // преобразование полученного параметра в дистанцию
// первое условие, если расстояние до коробки меньше либо равно 30
// в этом случае повернуть сервопривод на угол 90 градусов
if (distance <= 30) {
myServo.write(90);
}
else {
myServo.write(40); // если условие не выполняется, повернуть сервопривод в положение 40 градусов
}
delay(500); // задержка пол секунды
}
|
Ну и конечно, не забываем назвать нашу умную коробочку.
Заключение
Вот такой забавный Arduino проект, который позволяет понять принцип работы микроконтроллера и сделать классный крафт для развлечения.
Не плохо,мне понравилось
Скоро будет видео