Перейти к содержанию
Симферопольский Форум

Нужна помощь по скетчу


MedicusAmicus

Рекомендуемые сообщения

ТЗ: ночное освещение коридора.

Ардуинка измеряет освещенность и, ультразвуковым дальномером HC-SR04, - расстояние до препятствия.

 

Если темно и расстояние уменьшилось - зажечь свет.

Все бы работало неплохо, кроме: периодически дальномер выдает ошибку в расстоянии - 1-2 измерения, что приводит к ложным срабатываниям.

Попробовал усреднение из отсюда - не помогло.

Люди добрые! Помогите, кто чем может!

 

Костыли под катом

 

#define LDR_PIN A1 //пин фоторезистора
//#define POT_PIN A2 //пин регулятора
#define RELAY_PIN A0 //пин реле

#define S_TRIG 3 //триггер звука
#define S_ECHO 4 //ловим эхо


const byte averageFactor = 10;   // коэффициент сглаживания показаний (0 = не сглаживать)
                               // чем выше, тем больше "инерционность"                                
int RANGE = 178; //предел дистанции обнаружения
int impulseTime = 180;            // считанное значение
int sensorDistance; 

unsigned long previousMillis1 = 0;      //храним время последнего Включения света
unsigned long interval = 10000;     	//интервал работы (10 секунд)

void setup() {
 Serial.begin(9600); 
 pinMode (RELAY_PIN, OUTPUT);
 pinMode (S_TRIG, OUTPUT);
  }


void loop() {
 // put your main code here, to run repeatedly:
  
 int light = analogRead(LDR_PIN); //читаем освещенность
 int tres = 400; // analogRead(POT_PIN); //читаем порог  
 
 bool dark = (light < tres); //сравниваем освещенность с порогом
     Serial.println("light \t tres \t dark \t distance \t needLight");
     Serial.print(light); Serial.print("\t"); 	
     Serial.print (tres);Serial.print("\t");      
     Serial.print(dark);Serial.print("\t");
     
     digitalWrite(S_TRIG, HIGH);   /* Подаем импульс на вход trig дальномера */
     delayMicroseconds(10); // равный 10 микросекундам 
     digitalWrite(S_TRIG, LOW); // Отключаем 

 impulseTime=pulseIn(S_ECHO, HIGH); // Замеряем длину импульса 

   //фильтр случайных срабатываний
   if (averageFactor > 0)        // усреднение показаний для устранения "скачков"
 {      
  int oldimpulseTime = impulseTime;
   impulseTime = (oldimpulseTime * (averageFactor - 1) + impulseTime) / averageFactor;  
   // <новое среднее> = (<старое среднее>*4 + <текущее значение>) / 5
 }
   sensorDistance=impulseTime/58; // Пересчитываем в сантиметры 
   
   Serial.print(sensorDistance); Serial.print("\t "); // Выводим на порт  
bool NeedLight = (sensorDistance<RANGE && dark);
  	
 if (NeedLight == 1)  
 {
   analogWrite (RELAY_PIN, 255); // горит 
   previousMillis1 = millis(); // отсчёт отсрочки начинается сначала...
 }
 // Прошло время выключаем свет
  	if (previousMillis1 && (millis()-previousMillis1 >= interval)) 
 {
   analogWrite (RELAY_PIN, 0); // не горит 
   previousMillis1 = 0;
 }
  Serial.println (NeedLight);
   
   delay (1000);
}

 

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

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

 

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

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Не понял смысла фильтра.

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

 

П.С. а детектором движения обойтись нельзя? Есть с встроенным фотореле.


Я детей вообще то боюсь, милостивый мой государь, - шумливы, жестоки и себялюбивы, а коли дети правят державой? ©Юлиан Семёнов

Ничего не делается к лучшему © Борис Раушенбах

Люди, люди — это самое главное. Люди дороже даже денег. © Ф.М. Достоевский

Ссылка на комментарий
Поделиться на другие сайты

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

 

Пример для чайника?

 

 

а детектором движения обойтись нельзя? Есть с встроенным фотореле

нельзя, ибо железо уже распаяно, надо отладить.

 

И на эту дуину еще функций навешано будет, свет - для разминки-ознакомления.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

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

 

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

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

С телефлна ничего не напишу.

Смысл — цикл N раз. Внутри чтение, суммирование в общую сумму, пауза если датчик этого требует. По окончании циклов общую сумму делим на N — это будет среднее.


Я детей вообще то боюсь, милостивый мой государь, - шумливы, жестоки и себялюбивы, а коли дети правят державой? ©Юлиан Семёнов

Ничего не делается к лучшему © Борис Раушенбах

Люди, люди — это самое главное. Люди дороже даже денег. © Ф.М. Достоевский

Ссылка на комментарий
Поделиться на другие сайты

MedicusAmicus,

 

 

А можно лог срабатывания дальномера? Правильного и ложного.

 

 

 

  impulseTime=pulseIn(S_ECHO, HIGH); // Замеряем длину импульса 
 //Добавить
 Serial.print(impulseTime);

Подключаем Оптический гигабитный интернет в Симферополе и районе.

+79787647406

http://lugovoe.su

Ссылка на комментарий
Поделиться на другие сайты

Смысл — цикл N раз. Внутри чтение, суммирование в общую сумму, пауза если датчик этого требует. По окончании циклов общую сумму делим на N — это будет среднее.

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

Ссылка на комментарий
Поделиться на другие сайты

Пэтро,

берем например цикл 3 раза и выбираем минимальное значение

 

181

153 !!!!!

184

180

Итог - ложняк

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

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

 

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

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Ошибся, не минимальное, а максимальное.

184 !!!

итог - все верно

Если врет в обе стороны от среднего, то мин и макс это ложно


Я детей вообще то боюсь, милостивый мой государь, - шумливы, жестоки и себялюбивы, а коли дети правят державой? ©Юлиан Семёнов

Ничего не делается к лучшему © Борис Раушенбах

Люди, люди — это самое главное. Люди дороже даже денег. © Ф.М. Достоевский

Ссылка на комментарий
Поделиться на другие сайты

Врет в минус.

Попробую цикл на 3 измерения

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

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

 

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

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Таким образом пойдет?


const int numReadings = 3;    //количество измерений
int impulseTimeArray [numReadings]; 	// данные, считанные с дальномера
int index = 0;                              // индекс для значения, которое считывается в данный момент
int maximum_ImpulseTime = 0;                // максимальное значение из массива

void loop() {
.......
impulseTime=pulseIn(S_ECHO, HIGH); // Замеряем длину импульса 
     // собираем массив из 3 измерений
   impulseTimeArray [index] = impulseTime; 
  	// продвигаемся к следующему значению в массиве:  
   index = index + 1;   
  	// если мы в конце массива...
 if (index >= numReadings)              
  	// ...возвращаемся к началу: 
   index = 0;
  	// ищем в массиве максимум  
for(int i = 0; i < numReadings; i++) maximum_ImpulseTime = max(impulseTimeArray[i], maximum_ImpulseTime);

 

 

АПД: не пойдет.

данные "замораживаются" на последнем значении массива

Изменено пользователем MedicusAmicus

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

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

 

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

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Круто, только зачем массив.

 

 

int oldimpulseTime = 0;
for(int i = 0; i < numReadings; i++)
{
  digitalWrite(S_TRIG, HIGH);   /* Подаем импульс на вход trig дальномера */
  delayMicroseconds(10); // равный 10 микросекундам 
  digitalWrite(S_TRIG, LOW); // Отключаем 

  impulseTime=pulseIn(S_ECHO, HIGH);
  if (impulseTime > oldimpulseTime)
  {
      oldimpulseTime = impulseTime;
  }
}
impulseTime = oldimpulseTime;

Ссылка на комментарий
Поделиться на другие сайты

Ошибок стало в три раза больше angry.gif

 

#define LDR_PIN A1 //пин фоторезистора
#define RELAY_PIN A0 //пин реле

#define S_TRIG 3 //триггер звука
#define S_ECHO 4 //ловим эхо

const int numReadings = 3;    //количество измерений
 int distance=0; 
 int impulseTime=0;
 int RANGE = 150; //предел дистанции обнаружения
 int tres = 400;  //порог освещенности

unsigned long previousMillis1 = 0;      //храним время последнего Включения света
unsigned long interval = 10000; 		//интервал работы (10 секунд)

void setup() {
 // put your setup code here, to run once:
 pinMode (RELAY_PIN, OUTPUT);
 pinMode (S_TRIG, OUTPUT);

}
 
 
void loop() {
 
  Serial.begin(9600); 
 int light = analogRead(LDR_PIN); //читаем освещенность
   bool dark = (light < tres); //сравниваем освещенность с порогом
     Serial.println("light \t tres \t dark \t distance \t needLight");
     Serial.print(light);   	Serial.print("\t");
     Serial.print(tres);        Serial.print("\t");
     Serial.print(dark);        Serial.print("\t");
	
	int oldimpulseTime = 0;
for(int i = 0; i < numReadings; i++)
{
  digitalWrite(S_TRIG, HIGH);   /* Подаем импульс на вход trig дальномера */
  delayMicroseconds(10); // равный 10 микросекундам 
  digitalWrite(S_TRIG, LOW); // Отключаем 

  impulseTime=pulseIn(S_ECHO, HIGH);
  if (impulseTime > oldimpulseTime)
  {
  	oldimpulseTime = impulseTime;
  }
}
 impulseTime = oldimpulseTime;

 distance=impulseTime/58; // Пересчитываем в сантиметры 
	
 Serial.print(distance); // Выводим на порт 
 Serial.print("\t \t ");
bool needLight = (distance<RANGE && dark);
 
 if (needLight == 1) // Если расстояние менее предела 
   {
   analogWrite (RELAY_PIN, 255); // горит 
   previousMillis1 = millis(); // отсчёт отсрочки начинается сначала...
 }
 // Прошло время выключаем свет
  	if (previousMillis1 && (millis()-previousMillis1 >= interval)) 
 {
   analogWrite (RELAY_PIN, 0); // не горит 
   previousMillis1 = 0;
 }
  Serial.println (needLight);
   
   delay (1000);}

 

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

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

 

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

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Ошибок стало в три раза больше

 

Мне не на чем отлаживать, я пока ардуинку только в теории видел, код как идея был. Так, визуально, не вижу проблемы.

Ссылка на комментарий
Поделиться на другие сайты

Так, визуально, не вижу проблемы.

 

Так отож...

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

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

 

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

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Складываем 4 значения делим на 4. т.е. усредняем по 4м значениям..

 

(181 + 153 + 184 + 180 )/4 = 174.5

 

опрашиваем еще раз

(например)

 

(140 + 143 + 131 + 157 )/4 = 142.75

 

 

 

#define LDR_PIN A1 //пин фоторезистора
#define RELAY_PIN A0 //пин реле

#define S_TRIG 3 //триггер звука
#define S_ECHO 4 //ловим эхо

const int numReadings = 3;    //количество измерений
 int distance=0; 
 int impulseTime=0;
 int RANGE = 150; //предел дистанции обнаружения
 int tres = 400;  //порог освещенности

unsigned long previousMillis1 = 0;      //храним время последнего Включения света
unsigned long interval = 10000;                 //интервал работы (10 секунд)

void setup() {
 // put your setup code here, to run once:
 pinMode (RELAY_PIN, OUTPUT);
 pinMode (S_TRIG, OUTPUT);

}
 
 
void loop() {
 
  Serial.begin(9600); 
 int light = analogRead(LDR_PIN); //читаем освещенность
   bool dark = (light < tres); //сравниваем освещенность с порогом
     Serial.println("light \t tres \t dark \t distance \t needLight");
     Serial.print(light);      Serial.print("\t");
     Serial.print(tres);        Serial.print("\t");
     Serial.print(dark);        Serial.print("\t");
       
int impulseTime = 0; //сбрасываем счетчик
for(int i = 0; i < numReadings; i++)
{
  digitalWrite(S_TRIG, HIGH);   /* Подаем импульс на вход trig дальномера */
  delayMicroseconds(10); // равный 10 микросекундам 
  digitalWrite(S_TRIG, LOW); // Отключаем 

///////////////////////////////////////////////////////////////////////////////////////
  impulseTime = impulsetime + pulseIn(S_ECHO, HIGH); // складываем серию импульсов[/b]
///////////////////////////////////////////////////////////////////////////////////////
}
 ///////////////////////////////////////////////////////////////////////
  impulseTime = impulseTime / numReadings; // вычисляем среднее
 //////////////////////////////////////////////////////////////////////

 distance=impulseTime/58; // Пересчитываем в сантиметры 
       
 Serial.print(distance); // Выводим на порт 
 Serial.print("\t \t ");
bool needLight = (distance<RANGE && dark);
 
 if (needLight == 1) // Если расстояние менее предела 
   {
   analogWrite (RELAY_PIN, 255); // горит 
   previousMillis1 = millis(); // отсчёт отсрочки начинается сначала...
 }
 // Прошло время выключаем свет
       if (previousMillis1 && (millis()-previousMillis1 >= interval)) 
 {
   analogWrite (RELAY_PIN, 0); // не горит 
   previousMillis1 = 0;
 }
  Serial.println (needLight);
   
   delay (1000);}

Подключаем Оптический гигабитный интернет в Симферополе и районе.

+79787647406

http://lugovoe.su

Ссылка на комментарий
Поделиться на другие сайты

Пэтро, спасибо за попытку, но теперь абсолютно все значения неверны. Из предыдущих 180 получилось 130-140-150.

Попробую зайти с другой стороны - 3 вложенных цикла с проверкой distance<RANGE

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

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

 

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

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

мало циклов — одна ошибка дает большое отклонение. Если датчик позволяет часто опрашивать без критического роста ошибки, то циклов надо 20-30.


Я детей вообще то боюсь, милостивый мой государь, - шумливы, жестоки и себялюбивы, а коли дети правят державой? ©Юлиан Семёнов

Ничего не делается к лучшему © Борис Раушенбах

Люди, люди — это самое главное. Люди дороже даже денег. © Ф.М. Достоевский

Ссылка на комментарий
Поделиться на другие сайты

Вы так и не скинули сравнение логов, где нужно сработать и не нужно.

 

Надо больше дебаг информации, я лично не понимаю почему оно может не сработать.

Подключаем Оптический гигабитный интернет в Симферополе и районе.

+79787647406

http://lugovoe.su

Ссылка на комментарий
Поделиться на другие сайты

Пэтро,

181

153 !!!!!

184

180

Итог - ложняк

 

Такого лога недостаточно? На фоне потока верных данных - единичные провалы.

Пока выкрутился так:

 

 

#define LDR_PIN A1 //пин фоторезистора
#define RELAY_PIN A0 //пин реле

#define S_TRIG 3 //триггер звука
#define S_ECHO 4 //ловим эхо

unsigned int distance=0; 
unsigned int impulseTime=0;
 int RANGE = 150; //предел дистанции обнаружения
 int tres = 400;  //порог освещенности

unsigned long previousMillis1 = 0;      //храним время последнего Включения света
unsigned long interval = 10000; 				//интервал работы (10 секунд)

boolean CLOSE0, CLOSE1, CLOSE2;  

void setup() {
[size=2]  pinMode (RELAY_PIN, OUTPUT);[/size]
 pinMode (S_TRIG, OUTPUT);
}
  
void loop() 
{
 Serial.begin(9600); 
 int light = analogRead(LDR_PIN); //читаем освещенность
   boolean dark = (light < tres); //сравниваем освещенность с порогом
     Serial.println("light \t tres \t dark \t distance  \t CLOSE0  \t CLOSE1 \t CLOSE2  \t needLight");
     Serial.print(light);      Serial.print("\t");
     Serial.print(tres);        Serial.print("\t");
     Serial.print(dark);        Serial.print("\t");
       
  digitalWrite(S_TRIG, HIGH);   /* Подаем импульс на вход trig дальномера */
  delayMicroseconds(10); // равный 10 микросекундам 
  digitalWrite(S_TRIG, LOW); // Отключаем 

  impulseTime = pulseIn(S_ECHO, HIGH); 
  distance=impulseTime/58; // Пересчитываем в сантиметры 
  Serial.print(distance);    Serial.print("\t ");
  CLOSE0 = distance<RANGE;
	Serial.print (CLOSE0); Serial.print("\t");
	delay (50);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////   
 //начинаем проверки
   if (CLOSE0 == 1) //итерация1
       {
       digitalWrite(S_TRIG, HIGH);   /* Подаем импульс на вход trig дальномера */
       delayMicroseconds(10); // равный 10 микросекундам 
       digitalWrite(S_TRIG, LOW); // Отключаем 
		CLOSE1 = (pulseIn(S_ECHO, HIGH)/58) <RANGE;
		Serial.print (CLOSE1); Serial.print("\t");
		delay (50);
       }
			if (CLOSE1 == 1)  //итерация2
			{
			digitalWrite(S_TRIG, HIGH);   /* Подаем импульс на вход trig дальномера */
			delayMicroseconds(10); // равный 10 микросекундам 
			digitalWrite(S_TRIG, LOW); // Отключаем 
			CLOSE2 = (pulseIn(S_ECHO, HIGH)/58) <RANGE;
			Serial.print (CLOSE2); Serial.print("\t");
			delay (50);
			}
   boolean CLOSE = (CLOSE0 && CLOSE1 && CLOSE2);
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////        
boolean needLight = (CLOSE && dark);
 
 if (needLight == 1) // Если расстояние менее предела 
   {
   analogWrite (RELAY_PIN, 255); // горит 
   previousMillis1 = millis(); // отсчёт отсрочки начинается сначала...
   }
 // Прошло время выключаем свет
       if (previousMillis1 && (millis()-previousMillis1 >= interval)) 
 {
   analogWrite (RELAY_PIN, 0); // не горит 
   previousMillis1 = 0;
 }
  Serial.println (needLight);
  delay (1000);
}

 

 

Поставил на проверку.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

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

 

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

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

На фоне потока верных данных - единичные провалы.

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

Подключаем Оптический гигабитный интернет в Симферополе и районе.

+79787647406

http://lugovoe.su

Ссылка на комментарий
Поделиться на другие сайты

Я тоже в раздумьях.

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

Усредненная версия снижает чувствительность к тому же.

Или увеличивать количество элементов в усреднении, или снижать порог. И то, и другое нежелательно. Срабатывать должен при пороге 160-170, а общая дистанция 180

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

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

 

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

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

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


Я детей вообще то боюсь, милостивый мой государь, - шумливы, жестоки и себялюбивы, а коли дети правят державой? ©Юлиан Семёнов

Ничего не делается к лучшему © Борис Раушенбах

Люди, люди — это самое главное. Люди дороже даже денег. © Ф.М. Достоевский

Ссылка на комментарий
Поделиться на другие сайты

Три датчика - перебор для одного коридора.

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

И согласовывать их тоже придется с учетом эха.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

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

 

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

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Ну тогда делать три измерения - если совпали (±%), то считать достоверным.


Я детей вообще то боюсь, милостивый мой государь, - шумливы, жестоки и себялюбивы, а коли дети правят державой? ©Юлиан Семёнов

Ничего не делается к лучшему © Борис Раушенбах

Люди, люди — это самое главное. Люди дороже даже денег. © Ф.М. Достоевский

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

Загрузка...

Чат

Чат

Please enter your display name

×
×
  • Создать...