Как достать соседа с перфоратором
- Платформы: Iskra JS
- Языки программирования: JavaScript
- Тэги: перфоратор, сосед, батарея, молоток
Что это?
Достал сосед с перфоратором? Соберите автоматизированное устройство, которое заставит задуматься шумного умельца: «А не мешаю ли я жить другим?».
Что нам понадобится?
- Молоток
- Хомуты для крепления труб
- Железная пластина
- Крепёжные элементы: винты, саморезы, гайки
Как собрать?
- Расширьте одно из отверстий в центре панели структора «крепление Arduino 7×8 шипов», проденьте в него болт и зафиксируйте снизу гайкой. Диаметр болта зависит от выбранного хомута для крепления корпуса к трубе.
- Закрепите платформу Iskra JS на панели #структора «крепление Arduino 7×8 шипов» с помощью акриловых стоек. Стойки закрепите на панели винтами, сверху установите платформу и зафиксируйте гайками.
- Установите Troyka Shield на плату Iskra JS.
- Закрепите модуль сенсора вибрации с помощью саморезов на панели #структора «3×3 шипа».
- Подключите сенсор вибрации к аналоговому пину
A5
Troyka Shield. - Подключите сервопривод через 3-х проводной шлейф к
8
пину Troyka Shield. В итоге должна получиться следующая схема: - Прикрепите боковые панели («пластины 7×6 шипов») к основанию корпуса устройства («крепление Arduino 7×8 шипов») и на одной из них закрепите панельку #структора с датчиком вибрации.
- Используя «лицевую панель Arduino c microUSB-интерфейсом 4×6 шипов» и рейки #структора соберите лицевую часть корпуса.
- Прикрепите заднюю панель («пластина 6×6 шипов») к основанию корпуса. Установите верхнюю панель («пластина 7×8 шипов»), прикрепив её к передней, задней и боковым стенкам корпуса.
- Прикрутите хомут для крепления труб к основанию собранного корпуса.
- Возьмите железную пластину и согните её с двух сторон под 90 градусов в разных направлениях.
- Закрепите два хомута на нижнем основанию железной пластины с помощью болтов.
- Установите сервопривод через соединительную скобу на верхней части пластины.
- C помощью дрели или шуруповёрта просверлите 3 отверстия в молотке и через втулку прикрепите молоток к сервоприводу.
- Должна получится такая конструкция
- Прошейте Iskra JS программой приведённой ниже.
Теперь с помощью хомутов крепите устройство к батареи и пусть молот судьбы восстановит справедливость.
Алгоритм
- После подключения питания считываем данные с сенсора
- если значение превысило порог, стучим молотком по батарее
- повторяем цикл снова и снова
Исходный код
- radiatorbang.js
// подключаем модуль сервопривода к пину 8 var servo = require('@amperka/servo').connect(P8); // задаем количество и длительность каждого стука молотка (нот мелодии) var massMelody =[400, 400, 400, 150, 150, 400, 150, 150, 150, 400, 150]; // объявляем вспомогательные переменные var len = massMelody.length; var servoWork = false; var count = 0; // читаем значения с сенсора вибрации каждые 10 миллисекунд setInterval(function() { // создаём переменную и записываем в неё текущее значения сенсора вибрации var sensorVal = analogRead(A5); // если значение сенсора вибрации превысило допустимый порог if (sensorVal > 0.01) { // вызываем функцию стука молотком по батареи servoBang(); } }, 10); function servoBang() { // если сервопривод еще не отбил предыдущий запрос (стук), выходим из функции if (servoWork === true) { return; } // переходим в рабочий режим молотка servoWork = true; // проверяем все ли ноты мы отыграли if (count < len) { setTimeout(function() { // в зависимости от длительности текущей ноты опускаем молоток вниз servo.write(60); print('DOWN'); // по истечении 150 миллисекунд поднимаем молоток вверх setTimeout(function() { servo.write(30); print('UP'); // увеличиваем счётчик нот на единицу count++; print(count); // переходим в режим ожидания молотка новой команды servoWork = false; // вызываем функцию следующего стука servoBang(); // если вся мелодия отыграла по батареи if (count === len) { // через 300 миллисекунд переходим в режим ожидания новой команды setTimeout(function() { servoWork = false; count = 0; print('End'); }, 300); } }, 150); }, massMelody[count]); } }
Демонстрация работы устройства
Что дальше?
Время проведения ремонтных работ строго регламентировано. Оптимизируйте автоответчик, добавив в него часы реального времени (Troyka-модуль), задайте график «тихих часов» и наслаждайтесь законной тишиной.
Ваш сосед не фанат перфоратора, а любитель шумных тусовок? Добавив в устройство датчик шума (Troyka-модуль), вы сможете передать привет по батарее и ему.