6151浏览
查看: 6151|回复: 5

[讨论] 无意中挖到一份以前自己写的代码,拿出来给大家猜

[复制链接]
无意中挖到一份以前自己写的代码,拿出来给大家猜。秀硬件功能求代码的帖子网上多了,现在倒过来玩,看看大家口味如何。
这是一份Arduino IDE环境下写的程序,配有硬件实现其功能。代码后有注解,作为大家推理的线索。注解需要中文知识进行分析。

int Human_Sensor1 = 52; //凡闺房事,人所为也。
int Human_Sensor2 = 53;
int Ultra_Sonic[23]; //廿四耳目藏身下
int Ultra_Sonic_Trigger = 22;
float US_Distance[23]; //静待塌上春意闹。
float US_Previous_Distance[23];
float US_Former_Distance[23];
int Sound_Sensor = 49; //巫山云雨比翼时,承欢男女东窗刻。
int X_Vibration = 50; //卿卿我我,摇摇晃晃歪歪。
int Y_Vibration = 51;
int Execute = 48; //棒打鸳鸯
int Alert = 12; //当头棒喝
long Period = 60000;  //是贞是奸,尘埃落定终有时。
int Time_Stopper = 0; //凭谁记,司辰者。
int XY_Stopper = 0; //或牡丹花下,或龙虎相济。
int Sound_Stopper = 0; //亦莺声浪语。
float Z_Initial = 20; //塌上起伏多寡,盖以此计。
int Executed = 0; //一失足成千古恨,再回首已是百年身。
unsigned long Sampling_Period; //春宵一刻值千金,春宵三十分之一刻值三十三金。
unsigned long XY_Start;
unsigned long XY_Timer;
unsigned long XY_Ratio;
unsigned long Sound_Start;
unsigned long Sound_Timer;
String Message = ""; //运筹帷幄千里之外
int i;
long Manual_Delay = 0; //听回音,毋忘计时。
void setup() {
  Serial.begin(9600);
  for (i = 0; i < 24; i = i + 1) {
    Ultra_Sonic = i + 23;
  }
  for (i = 0; i < 24; i = i + 1) {
    pinMode(Ultra_Sonic, INPUT);
  }
  pinMode(Sound_Sensor, INPUT);
  pinMode(X_Vibration, INPUT);
  pinMode(Y_Vibration, INPUT);
  pinMode(Human_Sensor1, INPUT);
  pinMode(Human_Sensor2, INPUT);
  pinMode(Ultra_Sonic_Trigger, OUTPUT);
  pinMode(Execute, OUTPUT);
}
void loop() {
  if (digitalRead(Human_Sensor1) || digitalRead(Human_Sensor2) != 0) { //举头三寸无神明,乃机关也。人影莆动,视为号也。
    if (Time_Stopper == 0) { //观察期届,一元复始。
      Sampling_Period = millis();
      Time_Stopper = 1;
    }
    if (millis() - Sampling_Period <= Period) { //断一期内之贞奸
      Communication(); //通风报信
      if (digitalRead(X_Vibration) || digitalRead(Y_Vibration)) { //牵一发动全身
        if (XY_Stopper == 0) { //甫动,计时。
          XY_Start = millis();         
          XY_Stopper = 1;
        }
      }
      else { //入静,结算之。
        XY_Timer = XY_Timer + (millis() - XY_Start);
        XY_Stopper = 0;
      }
      if (millis() - Sampling_Period >= 0.5 * Period) { //情到浓时满室春,声震屋瓦却陷囵。
        if (digitalRead(Sound_Sensor)) { //大呼,计时。
          if (Sound_Stopper == 0) {
            Sound_Start = millis();
            Sound_Stopper = 1;
          }
        }
        else { //入静,结算之。
          Sound_Timer = Sound_Timer + (millis() - Sound_Start);
          Sound_Stopper = 0;
        }
        if (Sound_Timer >= 0.2 * Period) { //向使当初声未始,一生贞猥复谁知。
          Executed = 1; //一失声成千古恨,再回首已是百年身。
          Execution();
        }
      }
    }
    else {
      if (XY_Timer >= 0.5 * Period) { //无风起浪,非奸即盗。
        Executed = 1; //一失足成千古恨,再回首已是百年身。
        Execution();
      }
      Communication(); //通风报信
      XY_Timer = 0; //一期一判
      Time_Stopper = 0;
      Sound_Timer = 0;
      Sound_Stopper = 0;
    }
    Ultra_Sonic_Sensor(); //龙翻龟腾兔吮毫,百般动静皆为过。
  }
}
void Ultra_Sonic_Sensor() {
  pinMode(Ultra_Sonic_Trigger, LOW);
  Manual_Delay = 0; //休言光阴待人事,怠慢尔等监视工。
  Manual_Delay = 0;
  pinMode(Ultra_Sonic_Trigger, HIGH);
  Manual_Delay = 0;
  Manual_Delay = 0;
  Manual_Delay = 0;
  Manual_Delay = 0;
  Manual_Delay = 0;
  Manual_Delay = 0;
  Manual_Delay = 0;
  Manual_Delay = 0;
  Manual_Delay = 0;
  Manual_Delay = 0;
  pinMode(Ultra_Sonic_Trigger, LOW);
  for (i = 0; i < 24; i = i + 1){
    US_Distance = Z_Initial - pulseIn(Ultra_Sonic, HIGH) /58.00; //二十四桥明月夜,玉人何处教吹箫。
  }
}
void Communication() {
  for (i = 0; i < 24; i = i + 1) {
    Message = Message + String(US_Distance) + String('|');
  }
  XY_Ratio = XY_Timer / Period;
  Message = Message + String(XY_Ratio);
  Serial.println(Message);
  Message = "";
}
void Execution() {
  if (millis() %1000 < 500) { //亮灭
    pinMode(Execute, HIGH);
  }
  else {
    pinMode(Execute, LOW);
  }
}

P.S. 蘑菇云会员众欢迎猜测,猜中后本人亲手制作个吨位级的奖品。以上。

DGG  高级技师 来自手机

发表于 2018-3-9 15:34:52

kalimov 发表于 2018-3-9 15:09
无意中挖到一份以前自己写的代码,拿出来给大家猜。秀硬件功能求代码的帖子网上多了,现在倒过来玩,看看大 ...

这个是用来捉奸的么
回复

使用道具 举报

yoyojacky  初级技匠

发表于 2018-3-9 15:38:12

有超声波传感器,有人体红外热释传感器, 你是要捉奸隔壁老王啊.
回复

使用道具 举报

kalimov  中级技师
 楼主|

发表于 2018-3-9 15:42:05

不止捉老王,提示还能把老王变成老土或者老士……
回复

使用道具 举报

Zer0  见习技师

发表于 2018-3-12 10:42:47

除了能知道老王来了,还能知道老王“功夫”之高低,然后再“飞鸽传书”,又以绝学狮子吼击之......  实在佩服佩服!
回复

使用道具 举报

1973742214  高级技师

发表于 2018-3-13 17:55:20

打呀打呀打飞机
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail