Умный водяной пистолет с датчиком движения на Arduino Nano
Компоненты и материалы
| Arduino Nano R3 | ×1 |
| PIR-датчик движения (универсальный) | ×1 |
| Беспаечная макетная плата (половинного размера) | ×1 |
| Транзистор NPN общего назначения (2N3904) | ×1 |
| Резистор 330 Ом (подойдет и близкое значение) | ×1 |
Необходимые инструменты
- Лазерный резак (для изготовления корпуса)
О проекте
Этот проект вдохновлен работой Tinkernut — «Arduino Motion Detecting Squirt Gun». Автор хотел повторить идею, но не смог найти Raid Auto Trigger в Китае. На Taobao был найден похожий водяной пистолет за ¥78.80, который оказалось гораздо проще модифицировать: не требовалось вмешиваться во внутреннюю механику, достаточно было адаптировать кнопку под макетную плату и Arduino.
Шаг 1: Взлом водяного пистолета
Процесс модификации показан на серии фотографий. Суть — разобрать пистолет, получить доступ к контактам кнопки и вывести их для подключения к Arduino. Внутренний механизм остается нетронутым.
Шаг 2: Подключение к Arduino
Сначала настраивается и тестируется PIR-датчик движения с Arduino Nano. Ниже приведен код для проверки работы датчика через последовательный порт:
/* PIR sensor */
int calibrationTime = 10;
int outputPin = 2;
int inputPin = 4;
int pirState = LOW;
int val = 0;
void setup() {
pinMode(outputPin, OUTPUT);
pinMode(inputPin, INPUT);
digitalWrite(outputPin, LOW);
Serial.begin(9600);
Serial.print("calibrating sensor ");
for(int i = 0; i < calibrationTime; i++){
Serial.print(".");
delay(1000);
}
Serial.println(" done");
Serial.println("SENSOR ACTIVE");
delay(50);
}
void loop(){
val = digitalRead(inputPin);
if (val == HIGH) {
digitalWrite(outputPin, HIGH);
if (pirState == LOW) {
Serial.println("Motion detected!");
pirState = HIGH;
}
} else {
digitalWrite(outputPin, LOW);
if (pirState == HIGH){
Serial.println("Motion ended!");
pirState = LOW;
}
}
}
После проверки датчика подключается водяной пистолет через транзисторный ключ (схема на фото). Используется резистор 330 Ом на базе транзистора 2N3904. Код включает 10-секундную задержку для калибровки датчика при включении.
Для корпуса использовался лазерный резак (деревянный корпус), но подойдет и 3D-печать. Готовое устройство срабатывает при обнаружении движения и брызгает водой.
Производственный процесс
- Эволюция насосных водяных пистолетов: от изобретения к мировому лидеру рынка
- Управление светодиодом с PIR-датчиком движения на Raspberry Pi
- Создание потрясающей системы Ambilight для монитора на Arduino
- Создание классической игры Pong на Arduino UNO с OLED-дисплеем: пошаговый урок
- Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino
- Цифровой стадиометр на Arduino: отслеживание роста лазерным датчиком VL53L0X
- Детектор аудиочастот на Arduino: измеряем пик громкости с высокочувствительным модулем
- Интерактивный LED-дисплей в двери с PIR-датчиком — новогоднее приветствие на Arduino
- Крестики-нолики на Arduino с матрицей MAX7219 и картонным корпусом
- Сенсорная башня на Arduino Cloud: Мониторинг температуры, движения и газа