Волшебные руки
Мастер-классы, инструкции, полезные советы, рецепты.

Беспроводной звонок на крышу авто

23




Во Франции трамваи и автобусы имеют два вида звуковых сигналов: громкий гудок — для предупреждения транспорта, и колокольчик — для предупреждения пешеходов.

У автомобилей колокольчика нет, и все автомобилисты пользуются штатным автомобильным гудком. Как правило эти гудки очень громкие, что создает дополнительный шум и раздражает пешеходов.

Мастер решил сделать устройство, которое предупреждало бы пешеходов об опасности и не создавало лишнего шума. Устройство состоит из двух модулей, сопрягаемых с помощью Bluetooth. Один модуль (звонок) закрепляется с помощью магнитов на крыше или капоте, второй (кнопка) устанавливается в салоне автомобиля.

Инструменты и материалы:
-Arduino Nano — 2 шт;
-3D-принтер;
-Монтажная плата;
-1Электрокнопка;
-2 модуля Bluetooth HC-05;
-Серводвигатель SG90;
-Переключатель;
-Резистор 10 кОм;
-Регулятор напряжения (L7805CV);
-Конденсатор 100 нФ;
-Конденсатор300 нФ;
-Провода;
-Велосипедный звонок;
-8 неодимовых магнитов (диаметром 8 мм, толщиной 3 мм);
-4 винта М3 (длиной 10 мм);
-4 гайки М3;
-4 винта M2 (длиной 10 мм);
-4 гайки М2;
-2 батарейки 9В;

Шаг первый: подключение Bluetooth-модулей HC-05
Первый шаг в этом проекте — убедиться, что оба модуля HC-05 подключены правильно. Мастер проделывает следующую операцию:
Загружает пустой эскиз на плате Arduino;
Отключает плату Arduino;
Подключает модуль HC-05, как показано на рисунке;
Дальше нужно нажать кнопку сброса на модуле HC-05 и подключите плату Arduino, удерживая кнопку сброса (длительное медленное мигание указывает на режим AT-команд);
Затем нужно открыть Arduino IDE и монитор, убедитесь, что его скорость BAUD составляет 38400. Выбрать «Both NL and CR»;
Теперь нужно настроить модули один, как ведомый, а другой как ведущий.
Ведомый:
Вводит «AT + ROLE = 0» на мониторе, чтобы установить модуль в качестве подчиненного. Подтвердить «ОК».
Вводит «AT + ADDR?» И прописывает адрес, чтобы использовать его позже с главным модулем. Меняет «:» на «,»;
Ведущий:
Вводит «AT + ROLE = 1» на мониторе, чтобы установить модуль в качестве ведущего. Подтвердить «ОК».
Вводит «AT + CMODE = 0», чтобы подключиться только к одному устройству;
Введите «AT + BIND = адрес». С адресом, который получили от подчиненного модуля ранее.
Теперь, чтобы убедиться, что оба модуля соединяются правильно, нужно подключить обе платы к своим модулям. Обязательно переключите провода, соединяющие RX и TX:
Arduino RX теперь подключен к HC-05 TX;
Arduino TX теперь подключен к HC-05 RX.


Если все правильно, то модули должны войти в режим сопряжения.
Режим сопряжения (короткое быстрое мигание):

Режим AT-команды (длительное медленное мигание):

Парный режим (два коротких мигания, синхронизируются между обоими модулями):

Шаг второй: кнопка (электронная часть)
Схема довольно прост. Для питания Ардуино мастер использует 9В аккумулятор. Между ним и Ардуино установлен выключатель. Bluetooth-модульHC-05 подключается к Ардуино согласно схеме. Перед кнопкой устанавливается резистор.




Мастер собирает схему на монтажной плате. Затем плата будет установлена внутри корпуса. Для этого она должна соответствовать схеме.

Диаметр корпуса 78 мм. Плата размером 55×50 мм отлично впишется внутри корпуса. Плата крепится к корпусу винтами, которые расположены на расстоянии 30 мм друг от друга. По центру расположена кнопка диаметром 20 мм.

Дальше мастер загружает код.

/*
Bluetooth and magnetic bell: https://www.instructables.com/member/Matlek/
Bluetooth button sketch
The following code is a modified version of the "Button" example (http://www.arduino.cc/en/Tutorial/Button)
*/

const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
int buttonState = 0; // variable for reading the pushbutton status
String state;

void setup() {
Serial.begin(38400);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}

void loop() {
if (Serial.available() > 0) { // Checks whether data is comming from the serial port
state = Serial.read(); // Reads the data from the serial port
}
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
Serial.write(1);
delay(1000);
} else {
digitalWrite(ledPin, LOW);
Serial.write(0);
delay(1000);
}
}

Шаг третий: кнопка (корпус)
Корпус состоит из пяти деталей:
Корпус;
Крышка (чтобы закрыть коробку);
Крышка батарейного отсека;
Основание кнопки;
Верх кнопки;
Все детали мастер напечатал на 3D-принтере.




Корпус является основной частью проекта. Мастер постарался спроектировать корпус кнопки и звонка одинаковыми. Внутри корпуса есть отверстия для крепления платы, а по центру отверстие для кнопки.

Снизу корпус закрывается крышкой, в которой расположен батарейный отсек. По периметру крышки устанавливаются магниты.

Батарейный отсек закрывается крышкой.

Файлы для печати можно скачать ниже.
Battery_cover.stl
Button_base.stl
Button_box.stl
Button_top_bell.stl
Button_top_pedestrian-cyclist.stl
Lid.stl
Шаг четвертый: звонок (электроника)
В схеме звонка так же присутствует Ардуино и модуль HC-05. В дополнении установлен сервопривод и регулятор напряжения, поскольку привод питается от 5В. Питание всей схемы от 9В аккумулятора.



Схема также монтируется на плате. Ее размеры обусловлены размерами 3D-печатного корпуса.
Плата должна умещаться внутри диска диаметром 79 мм. Идеально подходит плата размером 55×50 мм.
Для ее крепления используются четыре винта.

Код довольно прост: если Arduino получает команду «1» через Bluetooth- модуль HC-05, это означает, что кнопка была нажата. Включается серводвигатель и приводит в действие рычаг звонка. Затем он возвращается в исходное положение.

/*
Bluetooth and magnetic bell: https://www.instructables.com/member/Matlek/
Bluetooth bell sketch
*/

int state = 0;
#include
Servo myservo;

void setup() {
myservo.attach(5);
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(38400); // Default communication rate of the Bluetooth module

}

void loop() {
if (Serial.available() > 0) { // Checks whether data is comming from the serial port
state = Serial.read(); // Reads the data from the serial port
}
Serial.println(state, DEC);
if (state == 1) {
myservo.write(70);
delay(500);
myservo.write(140);
delay(1000);// wait for a second
}
}

Шаг пятый: звонок (корпус)
Сам корпус;
Крепление для звонка;
Крышка;
Крышка батарейного отсека;
Корпус имеет ту же форму, что и кнопка Bluetooth (цилиндр с таким же диаметром и высотой).
Вместо отверстия для основания кнопки в верхней части этого окна имеется Т-образное отверстие. Это отверстие нужно, чтобы провод серводвигателя мог попасть внутрь коробки.

Крепление для звонка мастер изначально проектировал как одно целое с корпусом,но в ходе работ разделил их (файлы содержат обе версии для печати).
Крепление имеет место для установки серводвигателя и штифт для крепления звонка.





Battery_cover.stl
Bell_box.stl
Lid.stl

Сборка звонка проста и не должна вызвать затруднений. На нижнюю крышку корпуса приклеиваются четыре неодимовых магнита для крепления звонка к крыше или капоту автомобиля.


Шаг пятый: хранение
Для хранения обеих частей устройства мастер напечатал кольца с бортиками.



Support.stl

Все готово и в заключении мастер высказывает несколько замечаний.

Во-первых, ему понравилось готовое изделие, но есть несколько недостатков. Например, световая индикация при синхронизации блютус-модулей видна в темной мастерской, но на свету индикаторов не видно. Решением моет быть или установка более ярких светодиодов или вывод их на лицевую сторону.

Во-вторых, магниты хоть и держат устройство, но для надежности лучше было бы добавить еще несколько штук по периметру.

В заключении, на видео можно посмотреть, как пример работы устройства, так и пример его изготовления.

Оставьте ответ