这是什么

2024校EEA举办无人车的循迹避障赛。欣然规往。

Map.

为什么去做这个

兴趣啊,混蛋!难道还是为了什么生计什么未来什么饭碗而去的嘛?

咋做的

刚开始和队友是有甚大的意淫的,企图先整个初号机出来,选方案就选了挺久,然后参考了很多用nano主控,车架也是上便宜的亚克力,循迹依靠pwm调值,随便整个五路红外循迹接个面包板在来三节电池代码写写就完事。二代机直接上PID然后再优化机械结构,换更好电机之类的。

事实上发现,这调试的东西也太多了。问题很多,情况非常多,是一开始所预想不到的。实现代码逻辑就得有不同的思路,前期兴致勃勃到,后期就是坚持就是成功,代码从开始的立志优化到最完美,到后来的能跑就行,一优化就又g了。不停的测试和排查故障是会令人烦躁的,例如:我误读要求以为要循迹两圈,然后抓耳挠腮写检测逻辑,最后基于队友原来代码写的是:

void loop() {
  if(digitalRead(Button) == 0){
    if (i < 5){
      if(distance >25){
        delay(10);
        xunxian();
      }
      else{
        bizhang();
      }
    }
    else{
      Motor(0, 0);
    }
  }
  else{
    Motor(0,0);
  }
}

...
xunxian()
...
else if (SL2 == 0 && SL1 == 0 && SR1 == 0 && SR2 == 0 && (SR3 == 0 || SL3 == 0)) {
    Motor(108+v,118+v);
    delay(10);
    i++;
  }
...

这样一坨我也不知道怎么形容的构思,直接给队友后面调车造成很大的困扰,虽然最后发现是电池电快无了,导致循迹都出现问题带不动电机转向。

尝试过五路红外和光电之后都不行,那个b传感器不稳定于是乎就有一堆的误判,然后就谜之操作。后来直接上了六路灰度直接爽飞,进入下一个阶段的debug。

其实,笔者觉得不管是竞赛还是折腾东西,就是一个盛大的debug过程。世界就是一个巨大的草台班子。长期的游戏让我练就了被队友嬉笑怒骂不形于色的本领,我可以保证不首先使用言语攻击假想敌的家人,也保证不第一个给队友上压力。其次菜了得承认。最后,要有一颗折腾的心,这方面可能EOS教会我的更多一些,遇见不同种类,不同方式的问题刁难,有一些是很值得记录下来的,我以后也一定趁着自己还清醒要写文章记录一下。

这样看下来,折腾的那些便不足为奇了,本就是一直折腾的青春,我倒是不介意多学点多折腾点东西。最后是一拍脑袋想起来我还有电池,刚好能完赛没犯病。看下比赛可以看到很多还值得学的东西,pwm调速是肯定比不上pid的,然后机械结构的优化,比如某大跌在现场指出可以把传感器架设在中间,会有利于车的性能提升。可以参考到很多组不同的实现思路,这个比赛本身的意义就已经彰显,大学缺乏思维的相互碰撞和激发,当然大多数人是不经意间的,教会你东西的可能是一个话都讲不上几句的类陌生人。

然后我在反思,如果我失败了,一如我之前的些奇奇怪怪bug,有的时候tty都进不去,社区的方案也都尝试过了。失败了,我还会记录这些吗。答案很有可能是否,我会去自恃自己的记忆,而永远去逃避问题不了解其内容,也就是自身的进步仍然是基于一种脆弱的优越者假想甚至是自负论。还是不在tech里讨论自由意志和个人发展的孰优孰劣,多学多做就好。

(完篇的时候,时钟正好停在自己的十九岁生日的最后一分钟,很奇妙的体验,自己已经立下决心将所有节日以平常心看待,看淡生活的种种波澜,也不相信知天命的话术,但仍会下意识有所注意,感慨小时候那个一到生日就期盼着别人祝福的单纯的我,已经过去这么久了啊。静静地等待这一分钟流逝过去。经历自己变老真的是一件奇妙的事情啊,不过我也无悔去肆意地挥霍我的青春。)

DONE.