Автор Arduino Project Hub под ником ashraf_minhaj рассказывает, как сделать урну или коробку с лёгкой крышкой самооткрывающейся. Лицензия — LGPL.
Мастер составляет схему. Сервопривод — Tower Pro MG996R, запитать его следует так, чтобы стабилизатор, встроенный в Arduino, задействован не был.
Компоненты отдельно:
Мастер берёт рычаг из комплекта сервопривода:
Приклеивает его к такой самодельной детали:
Устанавливает всё это вместе на сервопривод:
Затем берёт дальномер:
Размещает его на самодельной урне под углом как показано ниже, а заодно и всё остальное устанавливает.
Сервопривод размещает так, чтобы он открывал крышку. Конструкция урны или коробки произвольная, при условии, что крышка лёгкая.
Сервопривод в положении, соответствующем открытой крышке:
Мастер заливает короткий скетч (30 строк), требующий этой библиотеки:
#include 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); // Measure the pulse input in echo pin duration = pulseIn(echoPin, HIGH); // Distance is half the duration devided by 29.1 (from datasheet) distance = (duration/2) / 29.1; // if distance less than 0.5 meter and more than 0 (0 or less means over range) if (distance = 0) { servo.write(50); delay(3000); } else { servo.write(160); } // Waiting 60 ms won't hurt any one delay(60); }
В программе можно подкорректировать углы поворота, особенно при применении сервопривода отличающегося типа, а также чувствительность дальномера. Мастер проверяет конструкцию:
Затем проделывает небольшой моддинг и снова проверяет:
Переделав аппаратную и программную части, можно получить самовыдвигающийся ящик стола.