Это старая версия документа!
Как достать соседа
- Платформы: 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-модуль).