сигнализация авто на GY 521 и DFPlayer

genia1991
Offline
Зарегистрирован: 25.12.2019

viki13viki пишет:

DFPlayer + dinamik+arduino nano+mpu6050

 

надо сменить DFPlayer на SD модуль по скетчу

 

https://ардуино-ростов.рф/product/%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-sd/

viki13viki
Offline
Зарегистрирован: 14.11.2016

не он работает с мп3 и читает по нумерации 0001    0002 и так далее. у него встроена СД . менять не на что, это уже есть, купить другое пока не могу

viki13viki
Offline
Зарегистрирован: 14.11.2016

отлучусь на пару часов

genia1991
Offline
Зарегистрирован: 25.12.2019

viki13viki пишет:

не он работает с мп3 и читает по нумерации 0001    0002 и так далее. у него встроена СД . менять не на что, это уже есть, купить другое пока не могу

SD модуль не дорогой. рублей 30. Можно собрать даже самому .  там пару резисторов конвертор уровней и больше ничего нет.

DFplayer никогда не юзал. самое простое замыкать ножку воспроизведения. в момент когда надо )))

в нем UART вроде есть. вообще скорее всего там простое подключение должно быть

viki13viki
Offline
Зарегистрирован: 14.11.2016

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

genia1991
Offline
Зарегистрирован: 25.12.2019

здесь много инфы о плеере этом

https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299

viki13viki
Offline
Зарегистрирован: 14.11.2016

отлично, спасибо

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

// простая сигнализация
// датчик реагирует даже на постукивание 
// пальцем на противоположном конце стола
#include "Wire.h"
#include "I2Cdev.h"
   #include "MPU6050.h"
   #include "Arduino.h"
   #include "SoftwareSerial.h"
   #include "DFRobotDFPlayerMini.h"
   SoftwareSerial mySoftwareSerial(10, 11);                // RX, TX
   DFRobotDFPlayerMini myDFPlayer;
   int count;

MPU6050 mpu;
int16_t ax, ay, az;
int16_t gx, gy, gz;
long ACC, GYR;
long maxACC, maxGYR;
long trACC, trGYR;
 
void setup() {
  Wire.begin();
    mySoftwareSerial.begin(9600);
  Serial.begin(115200);
    if (!myDFPlayer.begin(mySoftwareSerial)) {            //Проверка
    Serial.println(F("Unable to begin:"));
    Serial.println(F("1.Please recheck the connection!"));
    Serial.println(F("2.Please insert the SD card!"));
    while(true);
    }
    Serial.println(F("Всё работает!!!"));
    
    myDFPlayer.volume(25);                                //Установка громкости (0~30).
    delay(15000);                                       // Задержка 40 секунд на настройку датчика.
    myDFPlayer.play(1);
    count = myDFPlayer.readFileCounts();                //Количество файлов
  mpu.initialize();
  mpu.setFullScaleAccelRange(MPU6050_ACCEL_FS_2);
  delay(2000);
  // "калибровка" максимальных значений
  for (int i = 0; i < 650; i++) { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); ACC = abs(ax) + abs(ay) + abs(az); GYR = abs(gx) + abs(gy) + abs(gz); if (ACC > maxACC) maxACC = ACC;
    if (GYR > maxGYR) maxGYR = GYR;
    delay(5);
  }
  maxACC = maxACC + trACC;
  maxGYR = maxGYR + trGYR;
}
void loop() {
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  // сумма модулей
  ACC = abs(ax) + abs(ay) + abs(az);
  GYR = abs(gx) + abs(gy) + abs(gz);
  if (ACC > maxACC || GYR > maxGYR) {
    Serial.println("KEK!");
    if(myDFPlayer.readState() == 512) {
    myDFPlayer.play(random(1,count));
    delay(100);
    }
    
    //delay(50);
  }
  delay(20);
}

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

    if (ACC > maxACC || GYR > maxGYR) {
    Serial.println("KEK!");

вот тут вставляю и стабильность датчика теряется

    delay(80);
    }

задержки менял, чутка помогают иногда но не на долго

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

genia1991
Offline
Зарегистрирован: 25.12.2019

может просадка была. а какой динамик?   усилителя не было на выходе?

viki13viki
Offline
Зарегистрирован: 14.11.2016

динамик великоват 8 ом. по даташиту плеера выход 3 ом вроде, конечно было из за этого, но факт что с лабораторником просадок нет. потестю в бусе и скажу, норм или нет

genia1991
Offline
Зарегистрирован: 25.12.2019

viki13viki пишет:

динамик великоват 8 ом. по даташиту плеера выход 3 ом вроде, конечно было из за этого, но факт что с лабораторником просадок нет. потестю в бусе и скажу, норм или нет

ок. ждем результатов

viki13viki
Offline
Зарегистрирован: 14.11.2016

genia1991 вы не в курсе каким макаром можно в строке

// "калибровка" максимальных значений
  for (int i = 0; i < 650; i++) { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); ACC = abs(ax) + abs(ay) + abs(az); GYR = abs(gx) + abs(gy) + abs(gz); if (ACC > maxACC) maxACC = ACC;

меняя число 650 регулируестя чувствительность. можно ли ее регулирывать например переменным резистором или кнопкой, например один клик это 400, два клика 600, три клика 700, четыри 800?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

viki13viki пишет:

genia1991 вы не в курсе ...

genia1991 здесь не по скетчам, он по девкам )))

svm
Offline
Зарегистрирован: 06.11.2016

viki13viki пишет:

динамик великоват 8 ом. по даташиту плеера выход 3 ом вроде, конечно было из за этого, но факт что с лабораторником просадок нет. потестю в бусе и скажу, норм или нет

Согласно закона Ома, если сопротивление нагрузки больше, то ток и соответственно потребляемая мощность будут меньше.  Значит и нагрузка на БП будет меньше и соответственно просадка. А вот лаять тише будет, хотя не факт, зависит от особенностей динамика.

viki13viki
Offline
Зарегистрирован: 14.11.2016

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

genia1991
Offline
Зарегистрирован: 25.12.2019

ua6em пишет:

viki13viki пишет:

genia1991 вы не в курсе ...

genia1991 здесь не по скетчам, он по девкам )))

нет тут тяночек :) 

особо не с кем знакомится лол )

genia1991
Offline
Зарегистрирован: 25.12.2019

  for (int i = 0; i < 650; i++) { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); ACC = abs(ax) + abs(ay) + abs(az); GYR = abs(gx) + abs(gy) + abs(gz); if (ACC > maxACC) maxACC = ACC;

 

вместо числа 650 надо поставить переменную для крутилки (перемен. сопротивление)

 
int val = 0;           // переменная для хранения считанного значения

  val = analogRead(A0);    // считываем напряжение с аналогового входа
 
 

 

genia1991
Offline
Зарегистрирован: 25.12.2019
 int val = 0;     

  val = analogRead(A0);    //  средняя ножка пота на пин A0


val     - поставить вместо 650 числа 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

genia1991 пишет:

нет тут тяночек :) 

Я как-то заявил нечто подобное, так Ворота вона как меня отбрил :-)

viki13viki
Offline
Зарегистрирован: 14.11.2016

спасибо genia1991 иду изучать правильную реализацию

genia1991
Offline
Зарегистрирован: 25.12.2019

вроде так. надо проверить код


// простая сигнализация
// датчик реагирует даже на постукивание 
// пальцем на противоположном конце стола
#include "Wire.h"
#include "I2Cdev.h"
   #include "MPU6050.h"
   #include "Arduino.h"
   #include "SoftwareSerial.h"
   #include "DFRobotDFPlayerMini.h"
   SoftwareSerial mySoftwareSerial(10, 11);                // RX, TX
   DFRobotDFPlayerMini myDFPlayer;
   int count;

MPU6050 mpu;
int16_t ax, ay, az;
int16_t gx, gy, gz;
long ACC, GYR;
long maxACC, maxGYR;
long trACC, trGYR;
 int val = 0; 

void setup() {
  Wire.begin();
    mySoftwareSerial.begin(9600);
  Serial.begin(115200);
    if (!myDFPlayer.begin(mySoftwareSerial)) {            //Проверка
    Serial.println(F("Unable to begin:"));
    Serial.println(F("1.Please recheck the connection!"));
    Serial.println(F("2.Please insert the SD card!"));
    while(true);
    }
    Serial.println(F("Всё работает!!!"));
    
    myDFPlayer.volume(25);                                //Установка громкости (0~30).
    delay(15000);                                       // Задержка 40 секунд на настройку датчика.
    myDFPlayer.play(1);
    count = myDFPlayer.readFileCounts();                //Количество файлов
  mpu.initialize();
  mpu.setFullScaleAccelRange(MPU6050_ACCEL_FS_2);
  delay(2000);
  }
  maxACC = maxACC + trACC;
  maxGYR = maxGYR + trGYR;
}
void loop() {
val = analogRead(A0);    //  средняя ножка пота на пин A0
  // "калибровка" максимальных значений
  for (int i = 0; i < val; i++) { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); ACC = abs(ax) + abs(ay) + abs(az); GYR = abs(gx) + abs(gy) + abs(gz); if (ACC > maxACC) maxACC = ACC;
    if (GYR > maxGYR) maxGYR = GYR;
    delay(5);
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  // сумма модулей
  ACC = abs(ax) + abs(ay) + abs(az);
  GYR = abs(gx) + abs(gy) + abs(gz);
  if (ACC > maxACC || GYR > maxGYR) {
    Serial.println("KEK!");
    if(myDFPlayer.readState() == 512) {
    myDFPlayer.play(random(1,count));
    delay(100);
    }
    
    //delay(50);
  }
  delay(20);
}

 

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

viki13viki пишет:

лает громко

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

viki13viki
Offline
Зарегистрирован: 14.11.2016

мне в бусе чтобы гавкал :), дернули двери внутри гав гав, будет слышно

genia1991
Offline
Зарегистрирован: 25.12.2019

ЕвгенийП пишет:

genia1991 пишет:

нет тут тяночек :) 

Я как-то заявил нечто подобное, так Ворота вона как меня отбрил :-)

ну была тут одна и вас всех увидела и сбежала навсегда :)

надо всем маччо аватарки сделать что бы рыбка ловилась лучше )))))))

 

viki13viki
Offline
Зарегистрирован: 14.11.2016

а диапазон val не нужно задавать? допустим от 0 до 800.... диапазон переменного резистора

b707
Offline
Зарегистрирован: 26.05.2017

ua6em пишет:

viki13viki пишет:

genia1991 вы не в курсе ...

genia1991 здесь не по скетчам, он по девкам )))

да лан, не трогай их, у них уровень примерно равный, полтора землекопа... пусть помогают друг другу

genia1991
Offline
Зарегистрирован: 25.12.2019

viki13viki пишет:

а диапазон val не нужно задавать? допустим от 0 до 800.... диапазон переменного резистора

нужно. сейчас по коду от 0 до 1023 (вместо 800) должно крутиться

viki13viki
Offline
Зарегистрирован: 14.11.2016

принял

genia1991
Offline
Зарегистрирован: 25.12.2019

думаю это поможет. только вставить надо правильно эту сторочку

val = map(val, 0, 1023, 0, 800);

70 пост 47 строчку надо добавить вместо коммента

viki13viki
Offline
Зарегистрирован: 14.11.2016

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

genia1991
Offline
Зарегистрирован: 25.12.2019

viki13viki пишет:

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

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

Тут есть такие кто может сразу все правильно сказать. у них компилятор встроенный в голове :)

 

я надеюсь сложностей с подключением потенциометра не будет. средняя ножка на A0

viki13viki
Offline
Зарегистрирован: 14.11.2016

я понимаю но ценю, по результатам отпишусь, после завтра получу новый плеер(вчера случайно спалил коротнув) и продолжу тестить

genia1991
Offline
Зарегистрирован: 25.12.2019

viki13viki пишет:

я понимаю но ценю, по результатам отпишусь, после завтра получу новый плеер(вчера случайно спалил коротнув) и продолжу тестить

а что коротнулось? может еще работать будет. даже просто отдельно уже как плеер

b707
Offline
Зарегистрирован: 26.05.2017

viki13viki пишет:

доведу до конца проэкт и выложу здесь, уверин многим пригодится

это вряд ли (с)

viki13viki
Offline
Зарегистрирован: 14.11.2016

b707 что не доведу? или что пригодится комуто? хотя не важно, это лиш ваше мнение.....

genia1991 стрельнула микруха, только перепайка ее...

genia1991
Offline
Зарегистрирован: 25.12.2019

viki13viki пишет:

b707 что не доведу? или что пригодится комуто? хотя не важно, это лиш ваше мнение.....

genia1991 стрельнула микруха, только перепайка ее...

ждем результатов тестов

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

viki13viki пишет:

b707 что не доведу? или что пригодится комуто? хотя не важно, это лиш ваше мнение.....

Это по поводу "пригодится".

И мнение - не только его.

Подумайте сами, кому могут пригодиться "стихи", написанные человеком, не владеющим языком.

viki13viki
Offline
Зарегистрирован: 14.11.2016

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

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

b707
Offline
Зарегистрирован: 26.05.2017

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

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

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

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

viki13viki пишет:

ну и ладно......если одному даже человеку это поможет, мне этого достаточно, а такой найдется и уверен не один.....

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

viki13viki
Offline
Зарегистрирован: 14.11.2016

тогда не заходите и не ковыряйтесь в этом мусоре, вам че места жалко для мусора? вам от этого не холодно не горяче, да я любитель и програмирование не идет мне, я раз где то когдато чтото задумал и хочется сделать, я не занимаюсь этим постоянно, проактики нету, по этому и тупой в этом, но это не значит что нужно все время заглядывать и говорить что я тупой не знаю элементарного и что это ни кому не нужно, это нужно мне и я тупой, по эту и хожу на форум, а иначе для чего форумы? блеснуть своими гиганскими яйцами? или только для профи? или для тех кто все знает? тогда нах нужны таки форумы? блин не обижайтесь..... не нравится тема которую вы увидели и что там тупой чел в виде меня пытается сделать чтото непонятное, блин проходите мимо... ищите темы где вам интересно и можете козырнуть своими знаниями, пипц какойто.... доделаю, скину, ждет genia1991, и больше нибуду здесь проявлятся, замучали уже....... ДА Я ТУПОЙ  ПРОГРАММИРОВАНИИ, Я В ДРУГИХ ДЕЛАХ МАСТЕР И УВЕРЕН ЧТО В ЭТИХ ДЕЛАХ У ВАС ПРОТИВ МЕНЯ ПРОСТО ПЕРЕПИЛИННЫЕ ЯИЧКИ. каждому входит своя тема, и он в ней мастер, ток не к лицу человеку мерятся свои достоинства унижая другово....

короче, не приходите пожалуйста.... хотя я увер вам это адреналин блеснуть собой....

b707
Offline
Зарегистрирован: 26.05.2017

viki13viki пишет:

короче, не приходите пожалуйста.... хотя я увер вам это адреналин блеснуть собой....

а что еще делать? - на форуме не так много активных тем.

Я, кстати, предлагал вам помощь - но вас же нужно подталкивать НЕЖНО, как старый тренер юную фигуристку... а я так не умею. И замечания по поводу своего кода вы не любите...

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

viki13viki
Offline
Зарегистрирован: 14.11.2016

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

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

viki13viki
Offline
Зарегистрирован: 14.11.2016

b707 ваш вопрос *а что еще делать? - на форуме не так много активных тем.

может вы всех и распугали? по этому люди и не создают тем? например как и я, это последняя моя тема.....

по ходу скоро вам не кому будет показывать свои знания.......

b707
Offline
Зарегистрирован: 26.05.2017

viki13viki пишет:

просто поймите во первых заучивать все у меня не получается, мне почти полтиник и куча забот и четверо детей, память забита

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

А вам, оказывается - "почти полтинник"  :) И память уже забита? чем, интересно? Знаете ли вы, что на этом форуме вы - один из самых молодых?

  Немного о себе - за пятьдесят, занялся ардуино всего 3 года назад. "Забитая память" отнюдь не мешает мне читать и запоминать новую информацию. А еще я одновременно с этим учу самостоятельно второй иностранный. Сейчас могу читать и переводить почти свободно. Через несколько лет, ближе к 60-ти - надеюсь выучить еще один или два языка.

Причем языки - это исключительно гимнастика для ума. Мне они вообще не нужны - я учу их просто так, для тренировки памяти и чтобы тратить время на что-то полезное, а не на телевизор и выпивку :)

Давйте-ка не ленитесь. После такого заявления вам никаких поблажек. Голову надо тренировать постоянно. Иначе альтцгеймер в 50 оет наступит.

viki13viki
Offline
Зарегистрирован: 14.11.2016

прекрасно, вы молодец, потдерживаю таких как вы, у меня огромная проблема с памятью, я уже вожу 25 лет машину а езжу до сих пор только по навигатору, НУ НЕТУ У МЕНЯ ПАМЯТИ,  в этом то и вся проблема.... по этому и тупой что памяти нету.... пробол год тренировать, не помогает. не знаю что еще вам сказать.... хотите принимайте это как оправдание, хотите нет, только хватит унижений и наездов. учителя бывают разные, я учу одно человека играть на гитаре, он хотел жене песню посвятить, ну не выходит у него.... я написал ему песню и обучаю его аккордам, и он счаслив и мне приятно..... хз ребята, я считаю если вы не за деньги то, творить добро другим людям своим умением и не заставлять человека сильно заморачивается если это его единичное желание.... это прекрасно, может вы считаете по другому.....

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Все правильно Вы пишете, viki13viki: новички на этом форуме должны иметь право нарушать Правила форума, демонстрировать явное неуважение к читателям, а также требовать от старожилов форума немедленного исполнения всех своих желаний. Старожилы же должны быть обязаны исполнять все прихоти новичков, даже если они технически неосуществимы (как, например, "подтолкнуть в нужном направлении", если запрещено указывать на ошибки?).

b707
Offline
Зарегистрирован: 26.05.2017

viki13viki пишет:

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

какое же оно у вас "единичное" ? Единичное - это когда вы спросили что-то, получили ответ и пошли дальше разбираться САМИ.

А у вас как - сначала вы пару лет на МаксеВВ ездили - это типа вы "вместе" делали борткомп для Опеля. Конечно,  на самом деле делал все Макс, а вы только непрерывно ныли "помоги тут, не получается", "а вот сделай еще это". Потом вы попытались найти себе подобную же няньку для проекта умного дома - но тут вас обломали сразу.  Теперь вы вздумали собрать сигнализацию, да не для себя, а для многих людей. Опять чужими мозгами, разумеется, вы ж по другому-то не умеете... То есть благое дело задумали вы. а делать будет кто-то другой?

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

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

viki13viki
Offline
Зарегистрирован: 14.11.2016

Выкладываю готовою версию. Что нам нужно

1.Arduino Nano или Mega2560

2.GY-521(mpu6050)

3.DFPlayer

4.Потенциометр 10 Ом

5.Гнездо для Jeck 3.5

6.Кнопка для сброса

7.Динамик на 3w - 8 Omh или колонки с USB питанием

8.Стабилизатор с 12в на 5в с USB гнездами для питания ардуино и колонк

9.Коробочка, в моем случае это коробочка от линз для глаз.

Схема выложина на Nano,но мне не понравилась как она работает,глючит, возможно мне попались обе бракованые. Я собрал все на Mega2560, совсем другое дело в работе, но подключение по той же схеме что и на Nano, но на Mega2560 много пинов на 5v и пинов GND, что делает не зависимым питание всех плат. Так же я вывел кнопку сброса, на всякий случай, цепляем кнопку на RESET и GND. Если кому интересно, коробочка синяя это от линз для глаз. Работает отлично, стабильно, чувствительность от оооочнь нежной до нулевой. При дергании ручки двери буса срабатывает лай, и при малейшем наклоне. Динамика действительно оказалось не достаточно, не учел что мой дом на колесах имеет около 5см изоляции, по этому вывел джек 3.5 и подсоеденил колонки с питанием по USB. В каком бы положении вы не оставили ручку чувствительности, при ключении идет считывание положения и запись в формулу. Я доволен, получился компактный апарат.Спасибо genia1991 за его человечность, понимание и подсказки

Скетч

// простая сигнализация
// датчик реагирует даже на постукивание 
// пальцем на противоположном конце стола
#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"
   #include "Arduino.h"
   #include "SoftwareSerial.h"
   #include "DFRobotDFPlayerMini.h"
   SoftwareSerial mySoftwareSerial(10, 11);                // RX, TX
   DFRobotDFPlayerMini myDFPlayer;
   int val = analogRead(A0);
   int count;

MPU6050 mpu;
int16_t ax, ay, az;
int16_t gx, gy, gz;
long ACC, GYR;
long maxACC, maxGYR;
long trACC, trGYR;
 
void setup() {
  pinMode(A0, INPUT);
  Wire.begin();
    mySoftwareSerial.begin(9600);
  Serial.begin(115200);
    if (!myDFPlayer.begin(mySoftwareSerial)) {            //Проверка
    Serial.println(F("Unable to begin:"));
    Serial.println(F("1.Please recheck the connection!"));
    Serial.println(F("2.Please insert the SD card!"));
    while(true);
    }
    Serial.println(F("Всё работает!!!"));
    
    myDFPlayer.volume(30);                                //Установка громкости (0~30).
    delay(15000);                                       // Задержка 40 секунд на настройку датчика.
    myDFPlayer.play(1);
    count = myDFPlayer.readFileCounts();                //Количество файлов
  mpu.initialize();
  mpu.setFullScaleAccelRange(MPU6050_ACCEL_FS_2);
  delay(2000);
  val = analogRead(A0);    //  средняя ножка пота на пин A0
  Serial.println(val);
  // "калибровка" максимальных значений
  for (int i = 0; i < val; i++) { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); ACC = abs(ax) + abs(ay) + abs(az); GYR = abs(gx) + abs(gy) + abs(gz); if (ACC > maxACC) maxACC = ACC;
    if (GYR > maxGYR) maxGYR = GYR;
    delay(5);
  }
  maxACC = maxACC + trACC;
  maxGYR = maxGYR + trGYR;
}
void loop() {
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  // сумма модулей
  ACC = abs(ax) + abs(ay) + abs(az);
  GYR = abs(gx) + abs(gy) + abs(gz);
  if (ACC > maxACC || GYR > maxGYR) {
    Serial.println("KEK!");
    if(myDFPlayer.readState() == 512) {
    myDFPlayer.play(random(1,count));
    delay(100);
    for (int i = 0; i < val; i++) { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); ACC = abs(ax) + abs(ay) + abs(az); GYR = abs(gx) + abs(gy) + abs(gz); if (ACC > maxACC) maxACC = ACC;
    if (GYR > maxGYR) maxGYR = GYR;
    delay(5);
    }
    }
    //delay(50);
  }
  delay(20);
}

схема

внутри

снаружи

P.S. Что касается b707 и Andriano. Походил я по темам и посмотрел ваши коменты. Практически ни одно дельного совета только фразочки для унижения и оскорбления. Я отписываюсь от форума и сайта в целом, катайте свои гиганские яйца дальше, я уже этого не увижу.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Супер!

viki13viki пишет:
катайте свои гиганские яйца дальше, я уже этого не увижу.
Как же Вы без этого-то? Вам этого будет не хватать :-)

b707
Offline
Зарегистрирован: 26.05.2017

а по коду вопрос можно?

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

val = analogRead(A0);    //  средняя ножка пота на пин A0
  Serial.println(val);
  // "калибровка" максимальных значений
  for (int i = 0; i < val; i++) { 
    mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); 
    ACC = abs(ax) + abs(ay) + abs(az); 
    GYR = abs(gx) + abs(gy) + abs(gz); 
     if (ACC > maxACC) maxACC = ACC;
    if (GYR > maxGYR) maxGYR = GYR;
    delay(5);
  }
  maxACC = maxACC + trACC;
  maxGYR = maxGYR + trGYR;

От положения ручки зависит только время выполнения этого цикла, ничего больше. Никакая "чувствительность" тут не регулируется.

да вы сами об этом пишете, у вас же все "работает отлично, стабильно" при чувствительности "от оооочнь нежной до нулевой. "