да и вообще в коде хватает несуразностей и нелогичности...
зачем вы делаете "перекалибровку" после каждого срабатывания? - вы же этим загоняете уровень отсечки датчика все выше и выше, пока ваша "гав-гав" совсем не замолчит, как бусик не тряси.
и если вы вы делаете перекалибровку каждый раз, куда вы потеряли вот эти строчки, в сетапе они были, а в лупе их нет:
maxACC = maxACC + trACC;
maxGYR = maxGYR + trGYR;
и что они вообще делают?
Сразу скажу - что я догадываюсь, зачем они были нужны там, откуда вы этот код списали без малейшего понимания, но зачем они вам?
Короче, несмотря на то, что код вы как-то слепили и даже скомпилировали - что он делает и как работает - для вас темный лес.
интернет пополнился очередным треш-проектом, как злобные тролли b707 и Andriano и предупреждали.
P.S. Что касается b707 и Andriano. Походил я по темам и посмотрел ваши коменты. Практически ни одно дельного совета только фразочки для унижения и оскорбления. Я отписываюсь от форума и сайта в целом, катайте свои гиганские яйца дальше, я уже этого не увижу.
Вы считаете, что у меня хобби - ходить за новичками и подчищать их дерьмо?
Если хотите посмотреть на мой код, зайдите в ветку "Проекты". Мой код, конечно, не образец для подражания. Скажу больше - это жуткая эклектика объектно ориентированного и структурного программирования, к тому же использующая лишь подмножество Си++. Но он, по крайней мере, является осмысленным.
#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX подключение DFPlayer на каждый выход по резистору в 1кОм
DFRobotDFPlayerMini myDFPlayer;
MPU6050 mpu;
int val = analogRead(A0); //инициализация пина А0 , на среднюю ногу потенциометра
int count;
int16_t ax, ay, az;
int16_t gx, gy, gz;
long ACC, GYR; //сумма всех осей А и G
long maxACC, maxGYR; //записывает данные осей при старте для дальнейшего сравнения отклонений
int DIFa; //прибавление диапазона потенцеометра к значениям осей А записаным при запуске (для регулировки чувствительности)
int DIFg; //прибавление диапазона потенцеометра к значениям осей G записаным при запуске (для регулировки чувствительности)
void setup() {
pinMode(A0, INPUT); //подключаемый пин на потенциометер
Wire.begin();
mySoftwareSerial.begin(9600);
Serial.begin(115200);
if (!myDFPlayer.begin(mySoftwareSerial)) { //Проверка DFPlayer
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); // Задержка 15 секунд чтобы закрыть двери авто. можно выставить сколько желаете
myDFPlayer.play(1);
count = myDFPlayer.readFileCounts();
mpu.initialize();
mpu.setFullScaleAccelRange(MPU6050_ACCEL_FS_2); //чувстивтельность акселерометра от 2 до 16
delay(2000);
val = analogRead(A0); //средняя ножка на пин A0 потенциометер
// "калибровка" максимальных значений
for (int i = 0; i < 30; i++) {
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
ACC = abs(ax) + abs(ay) + abs(az); //суммирвание всех осей А
GYR = abs(gx) + abs(gy) + abs(gz); //суммирвание всех осей G
if (ACC > maxACC) maxACC = ACC; //сравнение суммы всех осей А и записаных при старте
if (GYR > maxGYR) maxGYR = GYR; //сравнение всех осей G и записаных при старте
delay(5);
}
}
void loop() {
val = analogRead(A0);
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); //считываем оси
// сумма модулей
ACC = abs(ax) + abs(ay) + abs(az); //суммирвание всех осей А
GYR = abs(gx) + abs(gy) + abs(gz); //суммирвание всех осей G
DIFa = maxACC+(val*15); //так как val имеет диапазон о 0...1023, увеличиваем его до от 0...15000. для добавления к максимальному значению для регулировки чувствительности. Чем больше добавляем тем меньше чувствительность.
DIFg = maxGYR+(val*15); //
if (ACC > DIFa || GYR > DIFg) //сравниваем реальные данные и (максимальное записаное значение осей при старте + потенциометр от 0...15000)
{
Serial.println("KEK!");
if (myDFPlayer.readState() == 512) //проверка на окончание проигранного файла
{
myDFPlayer.play(random(1, count)); //(random(1, count) проигрывает один файл в рандомном порядке
delay(100);
}
//delay(50);
}
delay(20);
}
Зашевелились :). Меня небыло, флюдить не о чем и засыпать дерьмом не кого. Ладно отвечу (последний раз). Andriano ваш вопрос "Вы считаете, что у меня хобби - ходить за новичками и подчищать их дерьмо?", ответ нет, ваше хобби добавлять дерьма. И своими проэктами не раскидывайтесь, итак знаю что вы умный, куда нам до вас..... Насчет смысл в этих строчках.... я все подписал. Может и не правильно, но это то что я смог придумать. Раскажу коротко.
При запуске записаные суммы максимума допустим 20000, в лупе идет сравнение, если реальные суммы отличаются, включается тревога. Я решил регулировать чувствительность так. Запись сумм осей 20000 при разных ударах она скачет от 20000 до 32000 зависит от силы удара, то есть 12000 диапазон. Этих 12000 я кинул на потенцеометр (дал 15000). Допустим слабый удар 20000-26000, средний 20000-28000, сильный 20000-32000. Добавляя потенциометром определенное количество тысячь к максимальной записе сумм осей при старте, тем самым отсекая, от слабых импульсов до сильных. Не знаю или правильно, но такая идея мне пришла.
Теперь b707, огорчу, ни где не крал, ни переписывал, придумывал и эксперементировал, моя идея (даже если не правильная),тестирую, вроде все работает как нужно. Вашу фраза "Ну не сами же вы это написали...", приму как комплемент, если конечно это не издевка. Нянек больше не ищу. Понял что дядя Вася из гаража, уже бесплатно не поможет (как это было раньше, ну вы же знаете.....). Люди стали говеными. Больше отвечать на ваши вопросы и провокации, не буду.
... Насчет смысл в этих строчках.... я все подписал. Может и не правильно, но это то что я смог придумать.
Сэр понимает разницу между вопросами "Что?" и "Зачем?"?
Смысл подразумевает именно ответ на вопрос "Зачем?", а в выложенном Вами коде то, что Вы по недоразумению считаете комментариями, лишь повторяет то, что написано справа от них, никак не поясняя, зачем это делается.
Ладно, не буду ходить вокруг да около, спрошу прямо:
- сэр слышал такое слово "вектор"?
- сэр знает, как считать длину вектора?
И вот после ответа на эти вопросы я снова задам:
Так каков смысл вычислений в строках 47-48 и 58-59?
b707, огорчу, ни где не крал, ни переписывал, придумывал и эксперементировал, моя идея (даже если не правильная),тестирую, вроде все работает как нужно. Вашу фраза "Ну не сами же вы это написали...", приму как комплемент, если конечно это не издевка.
нет, не издевка, можете вполне засчитать как комплимент. Код намного лучше первого варианта, в этом, как минимум, виден смысл, чего в предыдущем не было вовсе - были просто наобум накиданные операторы.
Но все эти похвалы - комплимент не вам, а коду. Я все еще не верю, что вы написали это сами. Так что и комплимент относится не к вам, а ктому кто реально это написал.
Цитата:
Нянек больше не ищу. Понял что дядя Вася из гаража, уже бесплатно не поможет (как это было раньше, ну вы же знаете.....). Люди стали говеными.
насчет людей вы правы. Люди не те. Вместо того чтоб чему-то научиться, книжки почитать - сразу начинают ныть "дядя вася помоги"
да и вообще в коде хватает несуразностей и нелогичности...
зачем вы делаете "перекалибровку" после каждого срабатывания? - вы же этим загоняете уровень отсечки датчика все выше и выше, пока ваша "гав-гав" совсем не замолчит, как бусик не тряси.
и если вы вы делаете перекалибровку каждый раз, куда вы потеряли вот эти строчки, в сетапе они были, а в лупе их нет:
и что они вообще делают?
Сразу скажу - что я догадываюсь, зачем они были нужны там, откуда вы этот код списали без малейшего понимания, но зачем они вам?
Короче, несмотря на то, что код вы как-то слепили и даже скомпилировали - что он делает и как работает - для вас темный лес.
интернет пополнился очередным треш-проектом, как злобные тролли b707 и Andriano и предупреждали.
P.S. Что касается b707 и Andriano. Походил я по темам и посмотрел ваши коменты. Практически ни одно дельного совета только фразочки для унижения и оскорбления. Я отписываюсь от форума и сайта в целом, катайте свои гиганские яйца дальше, я уже этого не увижу.
Вы считаете, что у меня хобби - ходить за новичками и подчищать их дерьмо?
Если хотите посмотреть на мой код, зайдите в ветку "Проекты". Мой код, конечно, не образец для подражания. Скажу больше - это жуткая эклектика объектно ориентированного и структурного программирования, к тому же использующая лишь подмножество Си++. Но он, по крайней мере, является осмысленным.
переделал скетч, может кому пригодится
Интересно, а каков смысл вычислений в строчках 47-48 и 58-59?
переделал скетч, может кому пригодится
признавайтесь, нашли няньку на другом форуме? Ну не сами же вы это написали...
Зашевелились :). Меня небыло, флюдить не о чем и засыпать дерьмом не кого. Ладно отвечу (последний раз). Andriano ваш вопрос "Вы считаете, что у меня хобби - ходить за новичками и подчищать их дерьмо?", ответ нет, ваше хобби добавлять дерьма. И своими проэктами не раскидывайтесь, итак знаю что вы умный, куда нам до вас..... Насчет смысл в этих строчках.... я все подписал. Может и не правильно, но это то что я смог придумать. Раскажу коротко.
При запуске записаные суммы максимума допустим 20000, в лупе идет сравнение, если реальные суммы отличаются, включается тревога. Я решил регулировать чувствительность так. Запись сумм осей 20000 при разных ударах она скачет от 20000 до 32000 зависит от силы удара, то есть 12000 диапазон. Этих 12000 я кинул на потенцеометр (дал 15000). Допустим слабый удар 20000-26000, средний 20000-28000, сильный 20000-32000. Добавляя потенциометром определенное количество тысячь к максимальной записе сумм осей при старте, тем самым отсекая, от слабых импульсов до сильных. Не знаю или правильно, но такая идея мне пришла.
Теперь b707, огорчу, ни где не крал, ни переписывал, придумывал и эксперементировал, моя идея (даже если не правильная),тестирую, вроде все работает как нужно. Вашу фраза "Ну не сами же вы это написали...", приму как комплемент, если конечно это не издевка. Нянек больше не ищу. Понял что дядя Вася из гаража, уже бесплатно не поможет (как это было раньше, ну вы же знаете.....). Люди стали говеными. Больше отвечать на ваши вопросы и провокации, не буду.
Меня небыло, флюдить не о чем и засыпать дерьмом не кого.
Ну, да, Вас не было - некому было срач раздувать и дерьмо на вентилятор подбрасывать :-(
Люди стали говеными.
Как-то не замечал, но вот почитал эту тему, посмотрел на Вас и ... пожалуй, соглашусь.
Меня небыло, флюдить не о чем
Да не, нормально обходились. Разных чудиков тут в достатке. Каждый день свежее пополнение. И каждый через одного с "может кому пригодится"
... Насчет смысл в этих строчках.... я все подписал. Может и не правильно, но это то что я смог придумать.
Сэр понимает разницу между вопросами "Что?" и "Зачем?"?
Смысл подразумевает именно ответ на вопрос "Зачем?", а в выложенном Вами коде то, что Вы по недоразумению считаете комментариями, лишь повторяет то, что написано справа от них, никак не поясняя, зачем это делается.
Ладно, не буду ходить вокруг да около, спрошу прямо:
- сэр слышал такое слово "вектор"?
- сэр знает, как считать длину вектора?
И вот после ответа на эти вопросы я снова задам:
Так каков смысл вычислений в строках 47-48 и 58-59?
b707, огорчу, ни где не крал, ни переписывал, придумывал и эксперементировал, моя идея (даже если не правильная),тестирую, вроде все работает как нужно. Вашу фраза "Ну не сами же вы это написали...", приму как комплемент, если конечно это не издевка.
нет, не издевка, можете вполне засчитать как комплимент. Код намного лучше первого варианта, в этом, как минимум, виден смысл, чего в предыдущем не было вовсе - были просто наобум накиданные операторы.
Но все эти похвалы - комплимент не вам, а коду. Я все еще не верю, что вы написали это сами. Так что и комплимент относится не к вам, а ктому кто реально это написал.
насчет людей вы правы. Люди не те. Вместо того чтоб чему-то научиться, книжки почитать - сразу начинают ныть "дядя вася помоги"
b707, до этого лучше было :-) жОстко, но жизненно))